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

Commit 408ca766 authored by Hai Zhang's avatar Hai Zhang
Browse files

Don't set REVOKED_COMPAT for modern apps.

Otherwise the permission will be revoked in restorePermissionState(),
even if it's not a legacy app.

Fixes: 142615915
Fixes: 142680771
Test: atest PermissionTest
Test: atest PermissionFlagsTest
Test: atest SplitPermissionTest
Change-Id: I7e222054ca66c2dff252240f5a6016f5e02c2ade
parent f11cb156
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -68,6 +68,7 @@ import android.hardware.camera2.CameraDevice.CAMERA_AUDIO_RESTRICTION;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Binder;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
@@ -1398,6 +1399,12 @@ public class AppOpsService extends IAppOpsService.Stub {
    }

    private void updatePermissionRevokedCompat(int uid, int switchCode, int mode) {
        PackageManagerInternal packageManagerInternal = LocalServices.getService(
                PackageManagerInternal.class);
        if (packageManagerInternal.getUidTargetSdkVersion(uid) >= Build.VERSION_CODES.M) {
            return;
        }

        PackageManager packageManager = mContext.getPackageManager();
        String[] packageNames = packageManager.getPackagesForUid(uid);
        if (ArrayUtils.isEmpty(packageNames)) {