Loading camera/camera_platform.aconfig +10 −0 Original line number Diff line number Diff line Loading @@ -246,3 +246,13 @@ flag { purpose: PURPOSE_FEATURE } } flag { namespace: "camera_platform" name: "query_process_state" description: "In opChanged, query the process state from AM instead of relying on mUidPolicy" bug: "378016494" metadata { purpose: PURPOSE_BUGFIX } } services/camera/libcameraservice/CameraService.cpp +14 −6 Original line number Diff line number Diff line Loading @@ -4550,6 +4550,17 @@ status_t CameraService::BasicClient::notifyCameraClosing() { return OK; } int32_t CameraService::getUidProcessState(int32_t uid) { const auto& activityManager = getActivityManager(); int32_t procState = ActivityManager::PROCESS_STATE_NONEXISTENT; if (activityManager != nullptr) { procState = activityManager->getUidProcessState(uid, toString16(kServiceName)); } else { ALOGE("%s: getActivityManager returned nullptr.", __FUNCTION__); } return procState; } void CameraService::BasicClient::opChanged(int32_t op, const String16&) { ATRACE_CALL(); if (mAppOpsManager == nullptr) { Loading Loading @@ -4606,12 +4617,9 @@ void CameraService::BasicClient::opChanged(int32_t op, const String16&) { [&](const auto& attr) { uid = static_cast<uid_t>(attr.uid); }); const auto& activityManager = getActivityManager(); if (activityManager != nullptr) { procState = activityManager->getUidProcessState(uid, toString16(kServiceName)); } else { ALOGD("%s: getActivityManager returned nullptr.", __FUNCTION__); } procState = getUidProcessState(uid); } else if (flags::query_process_state()) { procState = getUidProcessState(getClientUid()); } else { procState = sCameraService->mUidPolicy->getProcState(getClientUid()); } Loading services/camera/libcameraservice/CameraService.h +2 −0 Original line number Diff line number Diff line Loading @@ -691,6 +691,8 @@ private: return activityManager; } static int32_t getUidProcessState(int32_t uid); /** * Typesafe version of device status, containing both the HAL-layer and the service interface- * layer values. Loading Loading
camera/camera_platform.aconfig +10 −0 Original line number Diff line number Diff line Loading @@ -246,3 +246,13 @@ flag { purpose: PURPOSE_FEATURE } } flag { namespace: "camera_platform" name: "query_process_state" description: "In opChanged, query the process state from AM instead of relying on mUidPolicy" bug: "378016494" metadata { purpose: PURPOSE_BUGFIX } }
services/camera/libcameraservice/CameraService.cpp +14 −6 Original line number Diff line number Diff line Loading @@ -4550,6 +4550,17 @@ status_t CameraService::BasicClient::notifyCameraClosing() { return OK; } int32_t CameraService::getUidProcessState(int32_t uid) { const auto& activityManager = getActivityManager(); int32_t procState = ActivityManager::PROCESS_STATE_NONEXISTENT; if (activityManager != nullptr) { procState = activityManager->getUidProcessState(uid, toString16(kServiceName)); } else { ALOGE("%s: getActivityManager returned nullptr.", __FUNCTION__); } return procState; } void CameraService::BasicClient::opChanged(int32_t op, const String16&) { ATRACE_CALL(); if (mAppOpsManager == nullptr) { Loading Loading @@ -4606,12 +4617,9 @@ void CameraService::BasicClient::opChanged(int32_t op, const String16&) { [&](const auto& attr) { uid = static_cast<uid_t>(attr.uid); }); const auto& activityManager = getActivityManager(); if (activityManager != nullptr) { procState = activityManager->getUidProcessState(uid, toString16(kServiceName)); } else { ALOGD("%s: getActivityManager returned nullptr.", __FUNCTION__); } procState = getUidProcessState(uid); } else if (flags::query_process_state()) { procState = getUidProcessState(getClientUid()); } else { procState = sCameraService->mUidPolicy->getProcState(getClientUid()); } Loading
services/camera/libcameraservice/CameraService.h +2 −0 Original line number Diff line number Diff line Loading @@ -691,6 +691,8 @@ private: return activityManager; } static int32_t getUidProcessState(int32_t uid); /** * Typesafe version of device status, containing both the HAL-layer and the service interface- * layer values. Loading