summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Susla <eugenesusla@google.com>2017-04-25 12:24:34 -0700
committerEugene Susla <eugenesusla@google.com>2017-04-25 12:57:23 -0700
commitd74e65944d6c4b19d3d959c7269f50cb06638798 (patch)
tree25f2c3fd0027cf22f00b903b19e49ef457bf5599
parentcd68c334bad676e4b29db77c78f61eb48fd75df1 (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.java13
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,