Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d74e6594 authored by Eugene Susla's avatar Eugene Susla
Browse files

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
parent cd68c334
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
@@ -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,