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

Commit b2228efa authored by John Wu's avatar John Wu Committed by Automerger Merge Worker
Browse files

Merge "Revert "Revert "Update PackageInfo APIs to reflect shared UID st...""...

Merge "Revert "Revert "Update PackageInfo APIs to reflect shared UID st..."" into tm-dev am: 40249e41

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17124773

Change-Id: Ib4456e50413537b811b1bf502373481c9f196283
parents 2b31983a 40249e41
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -121,6 +121,9 @@ public abstract class PackageManager {
    /** {@hide} */
    public static final boolean APPLY_DEFAULT_TO_DEVICE_PROTECTED_STORAGE = true;

    /** {@hide} */
    public static final boolean ENABLE_SHARED_UID_MIGRATION = true;

    /**
     * This exception is thrown when a given package, application, or component
     * name cannot be found.
+19 −12
Original line number Diff line number Diff line
@@ -1944,6 +1944,12 @@ public class PackageParser {
        TypedArray sa = res.obtainAttributes(parser,
                com.android.internal.R.styleable.AndroidManifest);

        int maxSdkVersion = 0;
        if (PackageManager.ENABLE_SHARED_UID_MIGRATION) {
            maxSdkVersion = sa.getInteger(
                    com.android.internal.R.styleable.AndroidManifest_sharedUserMaxSdkVersion, 0);
        }
        if (maxSdkVersion == 0 || maxSdkVersion >= Build.VERSION.RESOURCES_SDK_INT) {
            String str = sa.getNonConfigurationString(
                    com.android.internal.R.styleable.AndroidManifest_sharedUserId, 0);
            if (str != null && str.length() > 0) {
@@ -1958,6 +1964,7 @@ public class PackageParser {
                pkg.mSharedUserLabel = sa.getResourceId(
                        com.android.internal.R.styleable.AndroidManifest_sharedUserLabel, 0);
            }
        }

        pkg.installLocation = sa.getInteger(
                com.android.internal.R.styleable.AndroidManifest_installLocation,
+4 −10
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.server.pm;

import android.annotation.IntDef;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.SystemProperties;

@@ -59,22 +60,15 @@ public final class SharedUidMigration {
    @Retention(RetentionPolicy.SOURCE)
    public @interface Strategy {}

    @Strategy
    private static final int DEFAULT = BEST_EFFORT;

    /**
     * All shared UID migration is disabled.
     * This is not a strategy that can be set with system properties.
     * To disable shared UID migration, change {@link #DEFAULT} to this value.
     */
    private static final int DISABLED = 0;

    /**
     * Whether shared UID migration is fully disabled. Disabled means the sharedUserMaxSdkVersion
     * attribute will be directly ignored in the parsing phase.
     */
    @SuppressWarnings("ConstantConditions")
    public static boolean isDisabled() {
        return DEFAULT == DISABLED;
        return !PackageManager.ENABLE_SHARED_UID_MIGRATION;
    }

    /**
@@ -88,7 +82,7 @@ public final class SharedUidMigration {

        final int s = SystemProperties.getInt(PROPERTY_KEY, DEFAULT);
        // No transition strategies can be used (http://b/221088088)
        if (s > BEST_EFFORT || s <= DISABLED) {
        if (s > BEST_EFFORT || s < NEW_INSTALL_ONLY) {
            return DEFAULT;
        }
        return s;
+6 −0
Original line number Diff line number Diff line
@@ -122,6 +122,12 @@ public class PackageInfoUtils {
        info.isStub = pkg.isStub();
        info.coreApp = pkg.isCoreApp();

        if (pkgSetting != null && !pkgSetting.hasSharedUser()) {
            // It is possible that this shared UID app has left
            info.sharedUserId = null;
            info.sharedUserLabel = 0;
        }

        if ((flags & PackageManager.GET_ACTIVITIES) != 0) {
            final int N = pkg.getActivities().size();
            if (N > 0) {