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

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

Control revoke-on-upgrade behavior for loc perm

By default: Revoke on upgrade, but can be disabled by setting the
location_permissions_upgrade_to_Q_mode to anything but 0.

Bug: 127285709
Test: Built
Change-Id: I8eb10a563d1f80779ed32823d3b28093ac8f94dd
parent aa437e99
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import static android.content.Context.MODE_PRIVATE;
import static android.content.pm.PackageManager.FLAG_PERMISSION_POLICY_FIXED;
import static android.content.pm.PackageManager.FLAG_PERMISSION_SYSTEM_FIXED;
import static android.content.pm.PackageManager.GET_PERMISSIONS;
import static android.provider.Settings.Secure.LOCATION_PERMISSIONS_UPGRADE_TO_Q_MODE;
import static android.util.Xml.newSerializer;

import static com.android.packageinstaller.Constants.DELAYED_RESTORE_PERMISSIONS_FILE;
@@ -39,6 +40,7 @@ import android.os.Build;
import android.os.UserHandle;
import android.permission.PermissionManager;
import android.permission.PermissionManager.SplitPermissionInfo;
import android.provider.Settings;
import android.text.TextUtils;
import android.util.Log;
import android.util.Xml;
@@ -416,7 +418,9 @@ public class BackupHelper {
            // Clear location permission on upgrade to Q or later
            String group = getGroupOfPlatformPermission(permName);
            if (backupPlatformVersion < Build.VERSION_CODES.Q && TextUtils.equals(group,
                    Manifest.permission_group.LOCATION)) {
                    Manifest.permission_group.LOCATION)
                    && Settings.Secure.getInt(context.getContentResolver(),
                    LOCATION_PERMISSIONS_UPGRADE_TO_Q_MODE, 0) == 0) {
                return Collections.emptyList();
            }