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

Commit 511c3aa9 authored by Eugene Susla's avatar Eugene Susla Committed by Android (Google) Code Review
Browse files

Merge "Fix auto revoke installer whitelist APIs" into rvc-dev

parents ee124991 64c88c07
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -291,6 +291,9 @@
    <uses-permission android:name="android.permission.ACCESS_TV_TUNER" />
    <uses-permission android:name="android.permission.TUNER_RESOURCE_ACCESS" />

    <!-- Permissions required for CTS test - AutoRevokeTest -->
    <uses-permission android:name="android.permission.WHITELIST_AUTO_REVOKE_PERMISSIONS" />

    <application android:label="@string/app_label"
                android:theme="@android:style/Theme.DeviceDefault.DayNight"
                android:defaultToDeviceProtectedStorage="true"
+5 −3
Original line number Diff line number Diff line
@@ -1289,6 +1289,7 @@ public class PermissionManagerService extends IPermissionManager.Stub {

        final AndroidPackage pkg = mPackageManagerInt.getPackage(packageName);
        final int callingUid = Binder.getCallingUid();
        final int packageUid = UserHandle.getUid(userId, pkg.getUid());

        if (!checkAutoRevokeAccess(pkg, callingUid)) {
            return false;
@@ -1296,7 +1297,7 @@ public class PermissionManagerService extends IPermissionManager.Stub {

        if (mAppOpsManager
                .checkOpNoThrow(AppOpsManager.OP_AUTO_REVOKE_MANAGED_BY_INSTALLER,
                        callingUid, packageName)
                        packageUid, packageName)
                != MODE_ALLOWED) {
            // Whitelist user set - don't override
            return false;
@@ -1305,7 +1306,7 @@ public class PermissionManagerService extends IPermissionManager.Stub {
        final long identity = Binder.clearCallingIdentity();
        try {
            mAppOpsManager.setMode(AppOpsManager.OP_AUTO_REVOKE_PERMISSIONS_IF_UNUSED,
                    callingUid, packageName,
                    packageUid, packageName,
                    whitelisted ? MODE_IGNORED : MODE_ALLOWED);
        } finally {
            Binder.restoreCallingIdentity(identity);
@@ -1338,6 +1339,7 @@ public class PermissionManagerService extends IPermissionManager.Stub {

        final AndroidPackage pkg = mPackageManagerInt.getPackage(packageName);
        final int callingUid = Binder.getCallingUid();
        final int packageUid = UserHandle.getUid(userId, pkg.getUid());

        if (!checkAutoRevokeAccess(pkg, callingUid)) {
            return false;
@@ -1346,7 +1348,7 @@ public class PermissionManagerService extends IPermissionManager.Stub {
        final long identity = Binder.clearCallingIdentity();
        try {
            return mAppOpsManager.checkOpNoThrow(
                    AppOpsManager.OP_AUTO_REVOKE_PERMISSIONS_IF_UNUSED, callingUid, packageName)
                    AppOpsManager.OP_AUTO_REVOKE_PERMISSIONS_IF_UNUSED, packageUid, packageName)
                    == MODE_IGNORED;
        } finally {
            Binder.restoreCallingIdentity(identity);