From eebd276715783df06f0e4720ccc709b59e551c59 Mon Sep 17 00:00:00 2001 From: Eugene Susla Date: Thu, 15 Jun 2017 11:22:57 -0700 Subject: [PATCH] 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 --- .../server/companion/CompanionDeviceManagerService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java index 73f1705e35df2..4810f4fe8c822 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(