diff options
author | jhenrique09 <jhenrique09.mcz@hotmail.com> | 2021-02-08 00:06:36 -0300 |
---|---|---|
committer | alk3pInjection <webmaster@raspii.tech> | 2021-09-24 18:03:53 +0800 |
commit | a0502d2ca5cd0f6261715faee8321f0331f19741 (patch) | |
tree | 7d6101e296be9b24c873601a91037df96749693d | |
parent | d6357492605501092ebf0c13082088fa4b5f1ac8 (diff) |
libcameraservice: Remove restrictions for faceunlock service
Change-Id: I6248937629cd8190f46503eef31a1db7c5d54510
-rw-r--r-- | services/camera/libcameraservice/CameraService.cpp | 8 | ||||
-rw-r--r-- | services/camera/libcameraservice/CameraService.h | 3 |
2 files changed, 9 insertions, 2 deletions
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp index fcccd262fe..0b1b827cf5 100644 --- a/services/camera/libcameraservice/CameraService.cpp +++ b/services/camera/libcameraservice/CameraService.cpp @@ -2891,6 +2891,10 @@ String16 CameraService::BasicClient::getPackageName() const { return mClientPackageName; } +bool CameraService::BasicClient::isFaceUnlockPackage() const { + std::string cpn = String8(mClientPackageName).string(); + return cpn.compare("org.pixelexperience.faceunlock") == 0; +} int CameraService::BasicClient::getClientPid() const { return mClientPid; @@ -2951,7 +2955,7 @@ status_t CameraService::BasicClient::startCameraOps() { mClientPackageName, /*startIfModeDefault*/ false, mClientFeatureId, String16("start camera ") + String16(mCameraIdStr)); - if (res == AppOpsManager::MODE_ERRORED) { + if (!isFaceUnlockPackage() && res == AppOpsManager::MODE_ERRORED) { ALOGI("Camera %s: Access for \"%s\" has been revoked", mCameraIdStr.string(), String8(mClientPackageName).string()); return PERMISSION_DENIED; @@ -2959,7 +2963,7 @@ status_t CameraService::BasicClient::startCameraOps() { // If the calling Uid is trusted (a native service), the AppOpsManager could // return MODE_IGNORED. Do not treat such case as error. - if (!mUidIsTrusted && res == AppOpsManager::MODE_IGNORED) { + if (!isFaceUnlockPackage() && !mUidIsTrusted && res == AppOpsManager::MODE_IGNORED) { ALOGI("Camera %s: Access for \"%s\" has been restricted", mCameraIdStr.string(), String8(mClientPackageName).string()); // Return the same error as for device policy manager rejection diff --git a/services/camera/libcameraservice/CameraService.h b/services/camera/libcameraservice/CameraService.h index 685ed5ee1d..a192202199 100644 --- a/services/camera/libcameraservice/CameraService.h +++ b/services/camera/libcameraservice/CameraService.h @@ -295,6 +295,9 @@ public: // Override rotate-and-crop AUTO behavior virtual status_t setRotateAndCropOverride(uint8_t rotateAndCrop) = 0; + // Return if current package is face unlock + virtual bool isFaceUnlockPackage() const; + protected: BasicClient(const sp<CameraService>& cameraService, const sp<IBinder>& remoteCallback, |