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

Commit bec18ede authored by Hai Zhang's avatar Hai Zhang
Browse files

Unflag ignoring APEX packages in UPS (i.e. in V+)

This unflags the change in ag/26801886 now that it has reached nextfood.

Bug: 301320911
Test: presubmit
Change-Id: Id4bf9b281697868f88e29576407a8aa48661a7f9
parent 002f3f1e
Loading
Loading
Loading
Loading
+0 −11
Original line number Diff line number Diff line
@@ -155,14 +155,3 @@ flag {
    description: "Use runtime permission state to determine appop state"
    bug: "266164193"
}

flag {
    name: "ignore_apex_permissions"
    is_fixed_read_only: true
    namespace: "permissions"
    description: "Ignore APEX pacakges for permissions on V+"
    bug: "301320911"
    metadata {
        purpose: PURPOSE_BUGFIX
    }
}
+1 −2
Original line number Diff line number Diff line
@@ -1054,8 +1054,7 @@ public class ParsingPackageUtils {

        // An Apex package shouldn't have permission declarations
        final boolean isApex = (flags & PARSE_APEX) != 0;
        if (android.permission.flags.Flags.ignoreApexPermissions()
                && isApex && !pkg.getPermissions().isEmpty()) {
        if (isApex && !pkg.getPermissions().isEmpty()) {
            return input.error(
                    INSTALL_PARSE_FAILED_MANIFEST_MALFORMED,
                    pkg.getPackageName()
+4 −5
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package com.android.server.permission.access

import android.permission.flags.Flags
import android.util.Slog
import com.android.modules.utils.BinaryXmlPullParser
import com.android.modules.utils.BinaryXmlSerializer
@@ -79,7 +78,7 @@ private constructor(
            setPackageStates(packageStates)
            setDisabledSystemPackageStates(disabledSystemPackageStates)
            packageStates.forEach { (_, packageState) ->
                if (Flags.ignoreApexPermissions() && packageState.isApex) {
                if (packageState.isApex) {
                    return@forEach
                }
                mutateAppIdPackageNames()
@@ -107,7 +106,7 @@ private constructor(
        newState.mutateUserStatesNoWrite()[userId] = MutableUserState()
        forEachSchemePolicy { with(it) { onUserAdded(userId) } }
        newState.externalState.packageStates.forEach { (_, packageState) ->
            if (Flags.ignoreApexPermissions() && packageState.isApex) {
            if (packageState.isApex) {
                return@forEach
            }
            upgradePackageVersion(packageState, userId)
@@ -133,7 +132,7 @@ private constructor(
            setPackageStates(packageStates)
            setDisabledSystemPackageStates(disabledSystemPackageStates)
            packageStates.forEach { (packageName, packageState) ->
                if (Flags.ignoreApexPermissions() && packageState.isApex) {
                if (packageState.isApex) {
                    return@forEach
                }
                if (packageState.volumeUuid == volumeUuid) {
@@ -161,7 +160,7 @@ private constructor(
            with(it) { onStorageVolumeMounted(volumeUuid, packageNames, isSystemUpdated) }
        }
        packageStates.forEach { (_, packageState) ->
            if (Flags.ignoreApexPermissions() && packageState.isApex) {
            if (packageState.isApex) {
                return@forEach
            }
            if (packageState.volumeUuid == volumeUuid) {
+1 −1
Original line number Diff line number Diff line
@@ -81,7 +81,7 @@ class AppIdPermissionPolicy : SchemePolicy() {

    override fun MutateStateScope.onUserAdded(userId: Int) {
        newState.externalState.packageStates.forEach { (_, packageState) ->
            if (Flags.ignoreApexPermissions() && packageState.isApex) {
            if (packageState.isApex) {
                return@forEach
            }
            evaluateAllPermissionStatesForPackageAndUser(packageState, userId, null)
+8 −8
Original line number Diff line number Diff line
@@ -1445,7 +1445,7 @@ class PermissionService(private val service: AccessCheckingService) :
        val packageStates = packageManagerLocal.withUnfilteredSnapshot().use { it.packageStates }
        service.mutateState {
            packageStates.forEach { (packageName, packageState) ->
                if (Flags.ignoreApexPermissions() && packageState.isApex) {
                if (packageState.isApex) {
                    return@forEach
                }
                val androidPackage = packageState.androidPackage ?: return@forEach
@@ -1880,7 +1880,7 @@ class PermissionService(private val service: AccessCheckingService) :
        packageManagerLocal.withUnfilteredSnapshot().use { snapshot ->
            service.mutateState {
                snapshot.packageStates.forEach { (_, packageState) ->
                    if (Flags.ignoreApexPermissions() && packageState.isApex) {
                    if (packageState.isApex) {
                        return@forEach
                    }
                    with(policy) { resetRuntimePermissions(packageState.packageName, userId) }
@@ -1925,7 +1925,7 @@ class PermissionService(private val service: AccessCheckingService) :

        packageManagerLocal.withUnfilteredSnapshot().use { snapshot ->
            snapshot.packageStates.forEach { (_, packageState) ->
                if (Flags.ignoreApexPermissions() && packageState.isApex) {
                if (packageState.isApex) {
                    return@forEach
                }
                val androidPackage = packageState.androidPackage ?: return@forEach
@@ -1943,7 +1943,7 @@ class PermissionService(private val service: AccessCheckingService) :
        val permissions = service.getState { with(policy) { getPermissions() } }
        packageManagerLocal.withUnfilteredSnapshot().use { snapshot ->
            snapshot.packageStates.forEach packageStates@{ (_, packageState) ->
                if (Flags.ignoreApexPermissions() && packageState.isApex) {
                if (packageState.isApex) {
                    return@packageStates
                }
                val androidPackage = packageState.androidPackage ?: return@packageStates
@@ -2072,7 +2072,7 @@ class PermissionService(private val service: AccessCheckingService) :

        val appIdPackageNames = MutableIndexedMap<Int, MutableIndexedSet<String>>()
        packageStates.forEach { (_, packageState) ->
            if (Flags.ignoreApexPermissions() && packageState.isApex) {
            if (packageState.isApex) {
                return@forEach
            }
            appIdPackageNames
@@ -2328,7 +2328,7 @@ class PermissionService(private val service: AccessCheckingService) :
        isInstantApp: Boolean,
        oldPackage: AndroidPackage?
    ) {
        if (Flags.ignoreApexPermissions() && packageState.isApex) {
        if (packageState.isApex) {
            return
        }

@@ -2358,7 +2358,7 @@ class PermissionService(private val service: AccessCheckingService) :
        params: PermissionManagerServiceInternal.PackageInstalledParams,
        userId: Int
    ) {
        if (Flags.ignoreApexPermissions() && androidPackage.isApex) {
        if (androidPackage.isApex) {
            return
        }

@@ -2414,7 +2414,7 @@ class PermissionService(private val service: AccessCheckingService) :
        sharedUserPkgs: List<AndroidPackage>,
        userId: Int
    ) {
        if (Flags.ignoreApexPermissions() && packageState.isApex) {
        if (packageState.isApex) {
            return
        }