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

Commit a246eb5b authored by Philip P. Moltmann's avatar Philip P. Moltmann
Browse files

Don't expand loc permission on fresh Q install

Only expand loc permissions on P->Q upgrade.

Test: - Upgraded from P->Q: Saw permissions expanded
      - Fresh install of Q and then "atest
      GtsPermissionTestCases:com.google.android.permission.gts.DefaultPermissionGrantPolicyTest#testDefaultGrantsWithRemoteExceptions"
Fixes: 131427665

Change-Id: I5c33577215566a7b7766a53f58c5ac5a6b7b4ee8
parent 6d5e1f3d
Loading
Loading
Loading
Loading
+38 −22
Original line number Diff line number Diff line
@@ -78,7 +78,18 @@ class RuntimePermissionsUpgradeController {
                        | PackageManager.GET_PERMISSIONS);
        final int appCount = apps.size();

        if (currentVersion <= 0) {
        final boolean sdkUpgradedFromP;
        if (currentVersion <= -1) {
            Log.i(LOG_TAG, "Upgrading from Android P");

            sdkUpgradedFromP = true;

            currentVersion = 0;
        } else {
            sdkUpgradedFromP = false;
        }

        if (currentVersion == 0) {
            Log.i(LOG_TAG, "Grandfathering SMS and CallLog permissions");

            final List<String> smsPermissions = Utils.getPlatformPermissionNamesOfGroup(
@@ -105,6 +116,7 @@ class RuntimePermissionsUpgradeController {
        }

        if (currentVersion == 1) {
            if (sdkUpgradedFromP) {
                Log.i(LOG_TAG, "Expanding location permissions");

                for (int i = 0; i < appCount; i++) {
@@ -120,8 +132,8 @@ class RuntimePermissionsUpgradeController {
                            continue;
                        }

                    final AppPermissionGroup group = AppPermissionGroup.create(context, app, perm,
                            false);
                        final AppPermissionGroup group = AppPermissionGroup.create(context, app,
                                perm, false);
                        final AppPermissionGroup bgGroup = group.getBackgroundPermissions();

                        if (group.areRuntimePermissionsGranted()
@@ -134,6 +146,10 @@ class RuntimePermissionsUpgradeController {
                        break;
                    }
                }
            } else {
                Log.i(LOG_TAG, "Not expanding location permissions as this is not an upgrade "
                        + "from Android P");
            }

            currentVersion = 2;
        }