Loading services/vr/hardware_composer/vr_composer.cpp +21 −0 Original line number Diff line number Diff line #include "vr_composer.h" #include <binder/IPCThreadState.h> #include <binder/PermissionCache.h> namespace android { namespace dvr { namespace { bool CheckPermission() { const android::IPCThreadState* ipc = android::IPCThreadState::self(); const pid_t pid = ipc->getCallingPid(); const uid_t uid = ipc->getCallingUid(); const bool permission = PermissionCache::checkPermission( String16("android.permission.RESTRICTED_VR_ACCESS"), pid, uid); if (!permission) ALOGE("permission denied to pid=%d uid=%u", pid, uid); return permission; } } // namespace VrComposer::VrComposer() {} Loading @@ -11,6 +29,9 @@ binder::Status VrComposer::registerObserver( const sp<IVrComposerCallback>& callback) { std::lock_guard<std::mutex> guard(mutex_); if (!CheckPermission()) return binder::Status::fromStatusT(PERMISSION_DENIED); if (callback_.get()) { ALOGE("Failed to register callback, already registered"); return binder::Status::fromStatusT(ALREADY_EXISTS); Loading Loading
services/vr/hardware_composer/vr_composer.cpp +21 −0 Original line number Diff line number Diff line #include "vr_composer.h" #include <binder/IPCThreadState.h> #include <binder/PermissionCache.h> namespace android { namespace dvr { namespace { bool CheckPermission() { const android::IPCThreadState* ipc = android::IPCThreadState::self(); const pid_t pid = ipc->getCallingPid(); const uid_t uid = ipc->getCallingUid(); const bool permission = PermissionCache::checkPermission( String16("android.permission.RESTRICTED_VR_ACCESS"), pid, uid); if (!permission) ALOGE("permission denied to pid=%d uid=%u", pid, uid); return permission; } } // namespace VrComposer::VrComposer() {} Loading @@ -11,6 +29,9 @@ binder::Status VrComposer::registerObserver( const sp<IVrComposerCallback>& callback) { std::lock_guard<std::mutex> guard(mutex_); if (!CheckPermission()) return binder::Status::fromStatusT(PERMISSION_DENIED); if (callback_.get()) { ALOGE("Failed to register callback, already registered"); return binder::Status::fromStatusT(ALREADY_EXISTS); Loading