Loading libs/binder/ActivityManager.cpp +34 −0 Original line number Diff line number Diff line Loading @@ -75,6 +75,20 @@ status_t ActivityManager::registerUidObserver(const sp<IUidObserver>& observer, return DEAD_OBJECT; } status_t ActivityManager::registerUidObserverForUids(const sp<IUidObserver>& observer, const int32_t event, const int32_t cutpoint, const String16& callingPackage, const int32_t uids[], size_t nUids, /*out*/ sp<IBinder>& observerToken) { sp<IActivityManager> service = getService(); if (service != nullptr) { return service->registerUidObserverForUids(observer, event, cutpoint, callingPackage, uids, nUids, observerToken); } // ActivityManagerService appears dead. Return usual error code for dead service. return DEAD_OBJECT; } status_t ActivityManager::unregisterUidObserver(const sp<IUidObserver>& observer) { sp<IActivityManager> service = getService(); Loading @@ -85,6 +99,26 @@ status_t ActivityManager::unregisterUidObserver(const sp<IUidObserver>& observer return DEAD_OBJECT; } status_t ActivityManager::addUidToObserver(const sp<IBinder>& observerToken, const String16& callingPackage, int32_t uid) { sp<IActivityManager> service = getService(); if (service != nullptr) { return service->addUidToObserver(observerToken, callingPackage, uid); } // ActivityManagerService appears dead. Return usual error code for dead service. return DEAD_OBJECT; } status_t ActivityManager::removeUidFromObserver(const sp<IBinder>& observerToken, const String16& callingPackage, int32_t uid) { sp<IActivityManager> service = getService(); if (service != nullptr) { return service->removeUidFromObserver(observerToken, callingPackage, uid); } // ActivityManagerService appears dead. Return usual error code for dead service. return DEAD_OBJECT; } bool ActivityManager::isUidActive(const uid_t uid, const String16& callingPackage) { sp<IActivityManager> service = getService(); Loading libs/binder/IActivityManager.cpp +52 −0 Original line number Diff line number Diff line Loading @@ -77,6 +77,30 @@ public: return OK; } virtual status_t registerUidObserverForUids(const sp<IUidObserver>& observer, const int32_t event, const int32_t cutpoint, const String16& callingPackage, const int32_t uids[], size_t nUids, /*out*/ sp<IBinder>& observerToken) { Parcel data, reply; data.writeInterfaceToken(IActivityManager::getInterfaceDescriptor()); data.writeStrongBinder(IInterface::asBinder(observer)); data.writeInt32(event); data.writeInt32(cutpoint); data.writeString16(callingPackage); data.writeInt32Array(nUids, uids); status_t err = remote()->transact(REGISTER_UID_OBSERVER_FOR_UIDS_TRANSACTION, data, &reply); if (err != NO_ERROR || ((err = reply.readExceptionCode()) != NO_ERROR)) { return err; } err = reply.readStrongBinder(&observerToken); if (err != NO_ERROR || ((err = reply.readExceptionCode()) != NO_ERROR)) { return err; } return OK; } virtual status_t unregisterUidObserver(const sp<IUidObserver>& observer) { Parcel data, reply; Loading @@ -89,6 +113,34 @@ public: return OK; } virtual status_t addUidToObserver(const sp<IBinder>& observerToken, const String16& callingPackage, int32_t uid) { Parcel data, reply; data.writeInterfaceToken(IActivityManager::getInterfaceDescriptor()); data.writeStrongBinder(observerToken); data.writeString16(callingPackage); data.writeInt32(uid); status_t err = remote()->transact(ADD_UID_TO_OBSERVER_TRANSACTION, data, &reply); if (err != NO_ERROR || ((err = reply.readExceptionCode()) != NO_ERROR)) { return err; } return OK; } virtual status_t removeUidFromObserver(const sp<IBinder>& observerToken, const String16& callingPackage, int32_t uid) { Parcel data, reply; data.writeInterfaceToken(IActivityManager::getInterfaceDescriptor()); data.writeStrongBinder(observerToken); data.writeString16(callingPackage); data.writeInt32(uid); status_t err = remote()->transact(REMOVE_UID_FROM_OBSERVER_TRANSACTION, data, &reply); if (err != NO_ERROR || ((err = reply.readExceptionCode()) != NO_ERROR)) { return err; } return OK; } virtual bool isUidActive(const uid_t uid, const String16& callingPackage) { Parcel data, reply; Loading libs/binder/include_activitymanager/binder/ActivityManager.h +8 −0 Original line number Diff line number Diff line Loading @@ -82,7 +82,15 @@ public: const int32_t event, const int32_t cutpoint, const String16& callingPackage); status_t registerUidObserverForUids(const sp<IUidObserver>& observer, const int32_t event, const int32_t cutpoint, const String16& callingPackage, const int32_t uids[], size_t nUids, /*out*/ sp<IBinder>& observerToken); status_t unregisterUidObserver(const sp<IUidObserver>& observer); status_t addUidToObserver(const sp<IBinder>& observerToken, const String16& callingPackage, int32_t uid); status_t removeUidFromObserver(const sp<IBinder>& observerToken, const String16& callingPackage, int32_t uid); bool isUidActive(const uid_t uid, const String16& callingPackage); int getUidProcessState(const uid_t uid, const String16& callingPackage); status_t checkPermission(const String16& permission, const pid_t pid, const uid_t uid, int32_t* outResult); Loading libs/binder/include_activitymanager/binder/IActivityManager.h +12 −0 Original line number Diff line number Diff line Loading @@ -35,7 +35,16 @@ public: const int32_t event, const int32_t cutpoint, const String16& callingPackage) = 0; virtual status_t registerUidObserverForUids(const sp<IUidObserver>& observer, const int32_t event, const int32_t cutpoint, const String16& callingPackage, const int32_t uids[], size_t nUids, /*out*/ sp<IBinder>& observerToken) = 0; virtual status_t unregisterUidObserver(const sp<IUidObserver>& observer) = 0; virtual status_t addUidToObserver(const sp<IBinder>& observerToken, const String16& callingPackage, int32_t uid) = 0; virtual status_t removeUidFromObserver(const sp<IBinder>& observerToken, const String16& callingPackage, int32_t uid) = 0; virtual bool isUidActive(const uid_t uid, const String16& callingPackage) = 0; virtual int32_t getUidProcessState(const uid_t uid, const String16& callingPackage) = 0; virtual status_t checkPermission(const String16& permission, Loading @@ -51,6 +60,9 @@ public: OPEN_CONTENT_URI_TRANSACTION = IBinder::FIRST_CALL_TRANSACTION, REGISTER_UID_OBSERVER_TRANSACTION, UNREGISTER_UID_OBSERVER_TRANSACTION, REGISTER_UID_OBSERVER_FOR_UIDS_TRANSACTION, ADD_UID_TO_OBSERVER_TRANSACTION, REMOVE_UID_FROM_OBSERVER_TRANSACTION, IS_UID_ACTIVE_TRANSACTION, GET_UID_PROCESS_STATE_TRANSACTION, CHECK_PERMISSION_TRANSACTION, Loading Loading
libs/binder/ActivityManager.cpp +34 −0 Original line number Diff line number Diff line Loading @@ -75,6 +75,20 @@ status_t ActivityManager::registerUidObserver(const sp<IUidObserver>& observer, return DEAD_OBJECT; } status_t ActivityManager::registerUidObserverForUids(const sp<IUidObserver>& observer, const int32_t event, const int32_t cutpoint, const String16& callingPackage, const int32_t uids[], size_t nUids, /*out*/ sp<IBinder>& observerToken) { sp<IActivityManager> service = getService(); if (service != nullptr) { return service->registerUidObserverForUids(observer, event, cutpoint, callingPackage, uids, nUids, observerToken); } // ActivityManagerService appears dead. Return usual error code for dead service. return DEAD_OBJECT; } status_t ActivityManager::unregisterUidObserver(const sp<IUidObserver>& observer) { sp<IActivityManager> service = getService(); Loading @@ -85,6 +99,26 @@ status_t ActivityManager::unregisterUidObserver(const sp<IUidObserver>& observer return DEAD_OBJECT; } status_t ActivityManager::addUidToObserver(const sp<IBinder>& observerToken, const String16& callingPackage, int32_t uid) { sp<IActivityManager> service = getService(); if (service != nullptr) { return service->addUidToObserver(observerToken, callingPackage, uid); } // ActivityManagerService appears dead. Return usual error code for dead service. return DEAD_OBJECT; } status_t ActivityManager::removeUidFromObserver(const sp<IBinder>& observerToken, const String16& callingPackage, int32_t uid) { sp<IActivityManager> service = getService(); if (service != nullptr) { return service->removeUidFromObserver(observerToken, callingPackage, uid); } // ActivityManagerService appears dead. Return usual error code for dead service. return DEAD_OBJECT; } bool ActivityManager::isUidActive(const uid_t uid, const String16& callingPackage) { sp<IActivityManager> service = getService(); Loading
libs/binder/IActivityManager.cpp +52 −0 Original line number Diff line number Diff line Loading @@ -77,6 +77,30 @@ public: return OK; } virtual status_t registerUidObserverForUids(const sp<IUidObserver>& observer, const int32_t event, const int32_t cutpoint, const String16& callingPackage, const int32_t uids[], size_t nUids, /*out*/ sp<IBinder>& observerToken) { Parcel data, reply; data.writeInterfaceToken(IActivityManager::getInterfaceDescriptor()); data.writeStrongBinder(IInterface::asBinder(observer)); data.writeInt32(event); data.writeInt32(cutpoint); data.writeString16(callingPackage); data.writeInt32Array(nUids, uids); status_t err = remote()->transact(REGISTER_UID_OBSERVER_FOR_UIDS_TRANSACTION, data, &reply); if (err != NO_ERROR || ((err = reply.readExceptionCode()) != NO_ERROR)) { return err; } err = reply.readStrongBinder(&observerToken); if (err != NO_ERROR || ((err = reply.readExceptionCode()) != NO_ERROR)) { return err; } return OK; } virtual status_t unregisterUidObserver(const sp<IUidObserver>& observer) { Parcel data, reply; Loading @@ -89,6 +113,34 @@ public: return OK; } virtual status_t addUidToObserver(const sp<IBinder>& observerToken, const String16& callingPackage, int32_t uid) { Parcel data, reply; data.writeInterfaceToken(IActivityManager::getInterfaceDescriptor()); data.writeStrongBinder(observerToken); data.writeString16(callingPackage); data.writeInt32(uid); status_t err = remote()->transact(ADD_UID_TO_OBSERVER_TRANSACTION, data, &reply); if (err != NO_ERROR || ((err = reply.readExceptionCode()) != NO_ERROR)) { return err; } return OK; } virtual status_t removeUidFromObserver(const sp<IBinder>& observerToken, const String16& callingPackage, int32_t uid) { Parcel data, reply; data.writeInterfaceToken(IActivityManager::getInterfaceDescriptor()); data.writeStrongBinder(observerToken); data.writeString16(callingPackage); data.writeInt32(uid); status_t err = remote()->transact(REMOVE_UID_FROM_OBSERVER_TRANSACTION, data, &reply); if (err != NO_ERROR || ((err = reply.readExceptionCode()) != NO_ERROR)) { return err; } return OK; } virtual bool isUidActive(const uid_t uid, const String16& callingPackage) { Parcel data, reply; Loading
libs/binder/include_activitymanager/binder/ActivityManager.h +8 −0 Original line number Diff line number Diff line Loading @@ -82,7 +82,15 @@ public: const int32_t event, const int32_t cutpoint, const String16& callingPackage); status_t registerUidObserverForUids(const sp<IUidObserver>& observer, const int32_t event, const int32_t cutpoint, const String16& callingPackage, const int32_t uids[], size_t nUids, /*out*/ sp<IBinder>& observerToken); status_t unregisterUidObserver(const sp<IUidObserver>& observer); status_t addUidToObserver(const sp<IBinder>& observerToken, const String16& callingPackage, int32_t uid); status_t removeUidFromObserver(const sp<IBinder>& observerToken, const String16& callingPackage, int32_t uid); bool isUidActive(const uid_t uid, const String16& callingPackage); int getUidProcessState(const uid_t uid, const String16& callingPackage); status_t checkPermission(const String16& permission, const pid_t pid, const uid_t uid, int32_t* outResult); Loading
libs/binder/include_activitymanager/binder/IActivityManager.h +12 −0 Original line number Diff line number Diff line Loading @@ -35,7 +35,16 @@ public: const int32_t event, const int32_t cutpoint, const String16& callingPackage) = 0; virtual status_t registerUidObserverForUids(const sp<IUidObserver>& observer, const int32_t event, const int32_t cutpoint, const String16& callingPackage, const int32_t uids[], size_t nUids, /*out*/ sp<IBinder>& observerToken) = 0; virtual status_t unregisterUidObserver(const sp<IUidObserver>& observer) = 0; virtual status_t addUidToObserver(const sp<IBinder>& observerToken, const String16& callingPackage, int32_t uid) = 0; virtual status_t removeUidFromObserver(const sp<IBinder>& observerToken, const String16& callingPackage, int32_t uid) = 0; virtual bool isUidActive(const uid_t uid, const String16& callingPackage) = 0; virtual int32_t getUidProcessState(const uid_t uid, const String16& callingPackage) = 0; virtual status_t checkPermission(const String16& permission, Loading @@ -51,6 +60,9 @@ public: OPEN_CONTENT_URI_TRANSACTION = IBinder::FIRST_CALL_TRANSACTION, REGISTER_UID_OBSERVER_TRANSACTION, UNREGISTER_UID_OBSERVER_TRANSACTION, REGISTER_UID_OBSERVER_FOR_UIDS_TRANSACTION, ADD_UID_TO_OBSERVER_TRANSACTION, REMOVE_UID_FROM_OBSERVER_TRANSACTION, IS_UID_ACTIVE_TRANSACTION, GET_UID_PROCESS_STATE_TRANSACTION, CHECK_PERMISSION_TRANSACTION, Loading