Loading libs/binder/IServiceManager.cpp +14 −6 Original line number Diff line number Diff line Loading @@ -36,6 +36,9 @@ namespace android { sp<IServiceManager> defaultServiceManager() { static Mutex gDefaultServiceManagerLock; static sp<IServiceManager> gDefaultServiceManager; if (gDefaultServiceManager != nullptr) return gDefaultServiceManager; { Loading Loading @@ -74,10 +77,13 @@ bool checkCallingPermission(const String16& permission, int32_t* outPid, int32_t bool checkPermission(const String16& permission, pid_t pid, uid_t uid) { static Mutex gPermissionControllerLock; static sp<IPermissionController> gPermissionController; sp<IPermissionController> pc; gDefaultServiceManagerLock.lock(); gPermissionControllerLock.lock(); pc = gPermissionController; gDefaultServiceManagerLock.unlock(); gPermissionControllerLock.unlock(); int64_t startTime = 0; Loading @@ -101,11 +107,11 @@ bool checkPermission(const String16& permission, pid_t pid, uid_t uid) } // Object is dead! gDefaultServiceManagerLock.lock(); gPermissionControllerLock.lock(); if (gPermissionController == pc) { gPermissionController = nullptr; } gDefaultServiceManagerLock.unlock(); gPermissionControllerLock.unlock(); } // Need to retrieve the permission controller. Loading @@ -121,9 +127,9 @@ bool checkPermission(const String16& permission, pid_t pid, uid_t uid) } else { pc = interface_cast<IPermissionController>(binder); // Install the new permission controller, and try again. gDefaultServiceManagerLock.lock(); gPermissionControllerLock.lock(); gPermissionController = pc; gDefaultServiceManagerLock.unlock(); gPermissionControllerLock.unlock(); } } } Loading @@ -142,6 +148,8 @@ public: virtual sp<IBinder> getService(const String16& name) const { static bool gSystemBootCompleted = false; sp<IBinder> svc = checkService(name); if (svc != nullptr) return svc; Loading libs/binder/Static.cpp +0 −9 Original line number Diff line number Diff line Loading @@ -75,13 +75,4 @@ TextOutput& aerr(gStderrTextOutput); Mutex& gProcessMutex = *new Mutex; sp<ProcessState> gProcess; // ------------ IServiceManager.cpp Mutex gDefaultServiceManagerLock; sp<IServiceManager> gDefaultServiceManager; #ifndef __ANDROID_VNDK__ sp<IPermissionController> gPermissionController; #endif bool gSystemBootCompleted = false; } // namespace android libs/binder/include/private/binder/Static.h +0 −12 Original line number Diff line number Diff line Loading @@ -21,10 +21,6 @@ #include <binder/IBinder.h> #include <binder/ProcessState.h> #ifndef __ANDROID_VNDK__ #include <binder/IPermissionController.h> #endif #include <binder/IServiceManager.h> namespace android { Loading @@ -35,12 +31,4 @@ extern Vector<int32_t> gTextBuffers; extern Mutex& gProcessMutex; extern sp<ProcessState> gProcess; // For IServiceManager.cpp extern Mutex gDefaultServiceManagerLock; extern sp<IServiceManager> gDefaultServiceManager; #ifndef __ANDROID_VNDK__ extern sp<IPermissionController> gPermissionController; #endif extern bool gSystemBootCompleted; } // namespace android Loading
libs/binder/IServiceManager.cpp +14 −6 Original line number Diff line number Diff line Loading @@ -36,6 +36,9 @@ namespace android { sp<IServiceManager> defaultServiceManager() { static Mutex gDefaultServiceManagerLock; static sp<IServiceManager> gDefaultServiceManager; if (gDefaultServiceManager != nullptr) return gDefaultServiceManager; { Loading Loading @@ -74,10 +77,13 @@ bool checkCallingPermission(const String16& permission, int32_t* outPid, int32_t bool checkPermission(const String16& permission, pid_t pid, uid_t uid) { static Mutex gPermissionControllerLock; static sp<IPermissionController> gPermissionController; sp<IPermissionController> pc; gDefaultServiceManagerLock.lock(); gPermissionControllerLock.lock(); pc = gPermissionController; gDefaultServiceManagerLock.unlock(); gPermissionControllerLock.unlock(); int64_t startTime = 0; Loading @@ -101,11 +107,11 @@ bool checkPermission(const String16& permission, pid_t pid, uid_t uid) } // Object is dead! gDefaultServiceManagerLock.lock(); gPermissionControllerLock.lock(); if (gPermissionController == pc) { gPermissionController = nullptr; } gDefaultServiceManagerLock.unlock(); gPermissionControllerLock.unlock(); } // Need to retrieve the permission controller. Loading @@ -121,9 +127,9 @@ bool checkPermission(const String16& permission, pid_t pid, uid_t uid) } else { pc = interface_cast<IPermissionController>(binder); // Install the new permission controller, and try again. gDefaultServiceManagerLock.lock(); gPermissionControllerLock.lock(); gPermissionController = pc; gDefaultServiceManagerLock.unlock(); gPermissionControllerLock.unlock(); } } } Loading @@ -142,6 +148,8 @@ public: virtual sp<IBinder> getService(const String16& name) const { static bool gSystemBootCompleted = false; sp<IBinder> svc = checkService(name); if (svc != nullptr) return svc; Loading
libs/binder/Static.cpp +0 −9 Original line number Diff line number Diff line Loading @@ -75,13 +75,4 @@ TextOutput& aerr(gStderrTextOutput); Mutex& gProcessMutex = *new Mutex; sp<ProcessState> gProcess; // ------------ IServiceManager.cpp Mutex gDefaultServiceManagerLock; sp<IServiceManager> gDefaultServiceManager; #ifndef __ANDROID_VNDK__ sp<IPermissionController> gPermissionController; #endif bool gSystemBootCompleted = false; } // namespace android
libs/binder/include/private/binder/Static.h +0 −12 Original line number Diff line number Diff line Loading @@ -21,10 +21,6 @@ #include <binder/IBinder.h> #include <binder/ProcessState.h> #ifndef __ANDROID_VNDK__ #include <binder/IPermissionController.h> #endif #include <binder/IServiceManager.h> namespace android { Loading @@ -35,12 +31,4 @@ extern Vector<int32_t> gTextBuffers; extern Mutex& gProcessMutex; extern sp<ProcessState> gProcess; // For IServiceManager.cpp extern Mutex gDefaultServiceManagerLock; extern sp<IServiceManager> gDefaultServiceManager; #ifndef __ANDROID_VNDK__ extern sp<IPermissionController> gPermissionController; #endif extern bool gSystemBootCompleted; } // namespace android