diff options
author | 2020-05-04 17:40:52 +0000 | |
---|---|---|
committer | 2020-05-04 18:07:46 +0000 | |
commit | 94ea7ac7e071de6904a3ec7c0deec7efac93b6e3 (patch) | |
tree | bdc9dd6570f61d35a8f3b94a2b2f454249249aa4 | |
parent | ef6532c9d46439e4773435c10624d097a53978df (diff) |
Revert "Add isUidActiveOrForeground for camera/audio to use."
Revert submission 10829580-isUidForeground
Reason for revert: In CameraService.cpp, before this change, around "am.isUidActive", there was up to 300 ms retry. After this change, the code could move forward fast without retry, but at "mAppOpsManager->startOpNoThrow" call, for the same reason as uid is not updated fast enough, "mAppOpsManager->startOpNoThrow" could also fail.
This CL does not really fix the root cause, but it changes the timing and now the code fails at "mAppOpsManager->startOpNoThrow" call.
Also the timing change may also cause recent multiple CTS test failures.
Bug: 154570809, 155032617, 154849083
Reverted Changes:
Iffed63293:Add isUidActiveOrForeground() for camera/audio to ...
I3685e0c8d:Add isUidActiveOrForeground() for camera/audio to ...
I51ed1fe78:Add isUidActiveOrForeground for camera/audio to us...
Change-Id: I9fbeb190c5a0ac640ad5be8140fe4aaeb7cfe33d
-rw-r--r-- | libs/binder/ActivityManager.cpp | 9 | ||||
-rw-r--r-- | libs/binder/IActivityManager.cpp | 12 | ||||
-rw-r--r-- | libs/binder/include/binder/ActivityManager.h | 38 | ||||
-rw-r--r-- | libs/binder/include/binder/IActivityManager.h | 4 |
4 files changed, 20 insertions, 43 deletions
diff --git a/libs/binder/ActivityManager.cpp b/libs/binder/ActivityManager.cpp index 4f2709d91a..5e4c98fc7a 100644 --- a/libs/binder/ActivityManager.cpp +++ b/libs/binder/ActivityManager.cpp @@ -98,15 +98,6 @@ int32_t ActivityManager::getUidProcessState(const uid_t uid, const String16& cal return PROCESS_STATE_UNKNOWN; } -bool ActivityManager::isUidActiveOrForeground(const uid_t uid, const String16& callingPackage) -{ - sp<IActivityManager> service = getService(); - if (service != nullptr) { - return service->isUidActiveOrForeground(uid, callingPackage); - } - return false; -} - status_t ActivityManager::linkToDeath(const sp<IBinder::DeathRecipient>& recipient) { sp<IActivityManager> service = getService(); if (service != nullptr) { diff --git a/libs/binder/IActivityManager.cpp b/libs/binder/IActivityManager.cpp index 9e1249baf4..1eb5363ae2 100644 --- a/libs/binder/IActivityManager.cpp +++ b/libs/binder/IActivityManager.cpp @@ -104,18 +104,6 @@ public: } return reply.readInt32(); } - - virtual bool isUidActiveOrForeground(const uid_t uid, const String16& callingPackage) - { - Parcel data, reply; - data.writeInterfaceToken(IActivityManager::getInterfaceDescriptor()); - data.writeInt32(uid); - data.writeString16(callingPackage); - remote()->transact(IS_UID_ACTIVE_OR_FOREGROUND_TRANSACTION, data, &reply); - // fail on exception - if (reply.readExceptionCode() != 0) return false; - return reply.readInt32() == 1; - } }; // ------------------------------------------------------------------------------------ diff --git a/libs/binder/include/binder/ActivityManager.h b/libs/binder/include/binder/ActivityManager.h index 0bb6d28da4..9108e31758 100644 --- a/libs/binder/include/binder/ActivityManager.h +++ b/libs/binder/include/binder/ActivityManager.h @@ -46,24 +46,25 @@ public: PROCESS_STATE_PERSISTENT = 0, PROCESS_STATE_PERSISTENT_UI = 1, PROCESS_STATE_TOP = 2, - PROCESS_STATE_BOUND_TOP = 3, - PROCESS_STATE_FOREGROUND_SERVICE = 4, - PROCESS_STATE_BOUND_FOREGROUND_SERVICE = 5, - PROCESS_STATE_IMPORTANT_FOREGROUND = 6, - PROCESS_STATE_IMPORTANT_BACKGROUND = 7, - PROCESS_STATE_TRANSIENT_BACKGROUND = 8, - PROCESS_STATE_BACKUP = 9, - PROCESS_STATE_SERVICE = 10, - PROCESS_STATE_RECEIVER = 11, - PROCESS_STATE_TOP_SLEEPING = 12, - PROCESS_STATE_HEAVY_WEIGHT = 13, - PROCESS_STATE_HOME = 14, - PROCESS_STATE_LAST_ACTIVITY = 15, - PROCESS_STATE_CACHED_ACTIVITY = 16, - PROCESS_STATE_CACHED_ACTIVITY_CLIENT = 17, - PROCESS_STATE_CACHED_RECENT = 18, - PROCESS_STATE_CACHED_EMPTY = 19, - PROCESS_STATE_NONEXISTENT = 20, + PROCESS_STATE_FOREGROUND_SERVICE_LOCATION = 3, + PROCESS_STATE_BOUND_TOP = 4, + PROCESS_STATE_FOREGROUND_SERVICE = 5, + PROCESS_STATE_BOUND_FOREGROUND_SERVICE = 6, + PROCESS_STATE_IMPORTANT_FOREGROUND = 7, + PROCESS_STATE_IMPORTANT_BACKGROUND = 8, + PROCESS_STATE_TRANSIENT_BACKGROUND = 9, + PROCESS_STATE_BACKUP = 10, + PROCESS_STATE_SERVICE = 11, + PROCESS_STATE_RECEIVER = 12, + PROCESS_STATE_TOP_SLEEPING = 13, + PROCESS_STATE_HEAVY_WEIGHT = 14, + PROCESS_STATE_HOME = 15, + PROCESS_STATE_LAST_ACTIVITY = 16, + PROCESS_STATE_CACHED_ACTIVITY = 17, + PROCESS_STATE_CACHED_ACTIVITY_CLIENT = 18, + PROCESS_STATE_CACHED_RECENT = 19, + PROCESS_STATE_CACHED_EMPTY = 20, + PROCESS_STATE_NONEXISTENT = 21, }; ActivityManager(); @@ -76,7 +77,6 @@ public: void unregisterUidObserver(const sp<IUidObserver>& observer); bool isUidActive(const uid_t uid, const String16& callingPackage); int getUidProcessState(const uid_t uid, const String16& callingPackage); - bool isUidActiveOrForeground(const uid_t uid, const String16& callingPackage); status_t linkToDeath(const sp<IBinder::DeathRecipient>& recipient); diff --git a/libs/binder/include/binder/IActivityManager.h b/libs/binder/include/binder/IActivityManager.h index 1815ecc67f..e0248f6624 100644 --- a/libs/binder/include/binder/IActivityManager.h +++ b/libs/binder/include/binder/IActivityManager.h @@ -39,15 +39,13 @@ public: virtual void unregisterUidObserver(const sp<IUidObserver>& observer) = 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 bool isUidActiveOrForeground(const uid_t uid, const String16& callingPackage) = 0; enum { OPEN_CONTENT_URI_TRANSACTION = IBinder::FIRST_CALL_TRANSACTION, REGISTER_UID_OBSERVER_TRANSACTION, UNREGISTER_UID_OBSERVER_TRANSACTION, IS_UID_ACTIVE_TRANSACTION, - GET_UID_PROCESS_STATE_TRANSACTION, - IS_UID_ACTIVE_OR_FOREGROUND_TRANSACTION, + GET_UID_PROCESS_STATE_TRANSACTION }; }; |