Include calling uid proc state in CameraService reject log.

Bug: 123762288
Test: builds.
Change-Id: Ibaf080a7c60e52af014664f882cc37e0920353fe
gugelfrei
Varun Shah 5 years ago
parent 8d14f5ccff
commit b42f1ebb71

@ -968,11 +968,14 @@ Status CameraService::validateClientPermissionsLocked(const String8& cameraId,
// Make sure the UID is in an active state to use the camera
if (!mUidPolicy->isUidActive(callingUid, String16(clientName8))) {
int32_t procState = mUidPolicy->getProcState(callingUid);
ALOGE("Access Denial: can't use the camera from an idle UID pid=%d, uid=%d",
clientPid, clientUid);
return STATUS_ERROR_FMT(ERROR_DISABLED,
"Caller \"%s\" (PID %d, UID %d) cannot open camera \"%s\" from background",
clientName8.string(), clientUid, clientPid, cameraId.string());
"Caller \"%s\" (PID %d, UID %d) cannot open camera \"%s\" from background ("
"calling UID %d proc state %" PRId32 ")",
clientName8.string(), clientUid, clientPid, cameraId.string(),
callingUid, procState);
}
// If sensor privacy is enabled then prevent access to the camera
@ -2731,6 +2734,19 @@ bool CameraService::UidPolicy::isUidActiveLocked(uid_t uid, String16 callingPack
return active;
}
int32_t CameraService::UidPolicy::getProcState(uid_t uid) {
Mutex::Autolock _l(mUidLock);
return getProcStateLocked(uid);
}
int32_t CameraService::UidPolicy::getProcStateLocked(uid_t uid) {
int32_t procState = ActivityManager::PROCESS_STATE_UNKNOWN;
if (mMonitoredUids.find(uid) != mMonitoredUids.end()) {
procState = mMonitoredUids[uid].first;
}
return procState;
}
void CameraService::UidPolicy::UidPolicy::addOverrideUid(uid_t uid,
String16 callingPackage, bool active) {
updateOverrideUid(uid, callingPackage, active, true);

@ -542,6 +542,7 @@ private:
void unregisterSelf();
bool isUidActive(uid_t uid, String16 callingPackage);
int32_t getProcState(uid_t uid);
void onUidGone(uid_t uid, bool disabled);
void onUidActive(uid_t uid);
@ -558,6 +559,7 @@ private:
virtual void binderDied(const wp<IBinder> &who);
private:
bool isUidActiveLocked(uid_t uid, String16 callingPackage);
int32_t getProcStateLocked(uid_t uid);
void updateOverrideUid(uid_t uid, String16 callingPackage, bool active, bool insert);
Mutex mUidLock;

Loading…
Cancel
Save