diff options
author | Eugene Susla <eugenesusla@google.com> | 2017-04-25 12:24:34 -0700 |
---|---|---|
committer | Eugene Susla <eugenesusla@google.com> | 2017-04-25 12:57:23 -0700 |
commit | d74e65944d6c4b19d3d959c7269f50cb06638798 (patch) | |
tree | 25f2c3fd0027cf22f00b903b19e49ef457bf5599 | |
parent | cd68c334bad676e4b29db77c78f61eb48fd75df1 (diff) |
Drop uses-feature requirement for system process
Fixes: 37673382
Test: go through setup wizard and ensure no exception from bug report
is present
Change-Id: I5a64586c1baec54ae579f47771546493f82b19df
-rw-r--r-- | services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java index 9bb0f867f20a..16b6ca8596af 100644 --- a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java +++ b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java @@ -244,7 +244,7 @@ public class CompanionDeviceManagerService extends SystemService implements Bind } private void checkCallerIsSystemOr(String pkg, int userId) throws RemoteException { - if (getCallingUserId() == UserHandle.USER_SYSTEM) { + if (isCallerSystem()) { return; } @@ -294,6 +294,11 @@ public class CompanionDeviceManagerService extends SystemService implements Bind } private void checkUsesFeature(String pkg, int userId) { + if (isCallerSystem()) { + // Drop the requirement for calls from system process + return; + } + FeatureInfo[] reqFeatures = getPackageInfo(pkg, userId).reqFeatures; String requiredFeature = PackageManager.FEATURE_COMPANION_DEVICE_SETUP; int numFeatures = ArrayUtils.size(reqFeatures); @@ -306,10 +311,14 @@ public class CompanionDeviceManagerService extends SystemService implements Bind } } - private int getCallingUserId() { + private static int getCallingUserId() { return UserHandle.getUserId(Binder.getCallingUid()); } + private static boolean isCallerSystem() { + return getCallingUserId() == UserHandle.USER_SYSTEM; + } + private ServiceConnection createServiceConnection( final AssociationRequest request, final IFindDeviceCallback findDeviceCallback, |