From d74e65944d6c4b19d3d959c7269f50cb06638798 Mon Sep 17 00:00:00 2001 From: Eugene Susla Date: Tue, 25 Apr 2017 12:24:34 -0700 Subject: [PATCH] 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 --- .../companion/CompanionDeviceManagerService.java | 13 +++++++++++-- 1 file 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 9bb0f867f20a6..16b6ca8596af2 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,