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

Commit 5eef187e authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Ignore manifest exemption" into rvc-dev

parents 7aebdf0f ce76fb5d
Loading
Loading
Loading
Loading
+4 −19
Original line number Diff line number Diff line
@@ -54,7 +54,6 @@ import android.os.Bundle
import android.os.Process.myUserHandle
import android.os.UserHandle
import android.os.UserManager
import android.permission.PermissionManager
import android.printservice.PrintService
import android.provider.DeviceConfig
import android.provider.Settings
@@ -118,7 +117,6 @@ import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.Job
import kotlinx.coroutines.async
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import java.util.Date
import java.util.Random
import java.util.concurrent.TimeUnit.DAYS
@@ -490,15 +488,6 @@ suspend fun isPackageAutoRevokePermanentlyExempt(
suspend fun isPackageAutoRevokeExempt(
    context: Context,
    pkg: LightPackageInfo
) = isPackageAutoRevokeExempt(context, pkg, withContext(IPC) {
    context.getSystemService<PermissionManager>()
            .getAutoRevokeExemptionGrantedPackages()
})

private suspend fun isPackageAutoRevokeExempt(
    context: Context,
    pkg: LightPackageInfo,
    manifestExemptPackages: Set<String>
): Boolean {
    val packageName = pkg.packageName
    val packageUid = pkg.uid
@@ -515,15 +504,11 @@ private suspend fun isPackageAutoRevokeExempt(
            return false
        }

        if (pkg.targetSdkVersion <= android.os.Build.VERSION_CODES.Q &&
                TeamfoodSettings.get(context)?.enabledForPreRApps != true) {
            // Q- packages exempt by default
            return true
        } else {
            // R+ packages only exempt with manifest attribute
            return packageName in manifestExemptPackages
        }
        // Q- packages exempt by default, except for dogfooding
        return pkg.targetSdkVersion <= android.os.Build.VERSION_CODES.Q &&
                TeamfoodSettings.get(context)?.enabledForPreRApps != true
    }
    // Check whether user/installer exempt
    return whitelistAppOpMode != MODE_ALLOWED
}