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

Commit b47c5fe7 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Unflag ignoring APEX packages in UPS (i.e. in V+)" into main

parents 9e31c414 bec18ede
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
        }