diff options
author | Eugene Susla <eugenesusla@google.com> | 2017-06-15 11:22:57 -0700 |
---|---|---|
committer | Eugene Susla <eugenesusla@google.com> | 2017-06-15 18:30:44 +0000 |
commit | eebd276715783df06f0e4720ccc709b59e551c59 (patch) | |
tree | d5a227a406233a84f0b6b8c0c9453d46f8b74659 /services/companion | |
parent | ffd8343ba87c7cdf84287b91972b987ffc41d4fb (diff) |
Fix companion uses-permission enforcement
Fixes: b/62662686
Test: Call CompanionDeviceManager#associate from app without uses-permission
declaration
Ensure exception is thrown
Call the method from app with the declaration
Ensure no exception is thrown
In debug mode catch the #isCallerSystem call from NotificationManagerService
(which runs in the system process) and ensure it passes the check
Change-Id: I26e5d2a7f5e63a346d4ab50b9ded1ec7dbc246a5
Diffstat (limited to 'services/companion')
-rw-r--r-- | services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java index 73f1705e35df..4810f4fe8c82 100644 --- a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java +++ b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java @@ -47,6 +47,7 @@ import android.os.IBinder; import android.os.IDeviceIdleController; import android.os.IInterface; import android.os.Parcel; +import android.os.Process; import android.os.RemoteException; import android.os.ResultReceiver; import android.os.ServiceManager; @@ -345,7 +346,7 @@ public class CompanionDeviceManagerService extends SystemService implements Bind } private static boolean isCallerSystem() { - return getCallingUserId() == UserHandle.USER_SYSTEM; + return Binder.getCallingUid() == Process.SYSTEM_UID; } private ServiceConnection createServiceConnection( |