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

Commit 2a81b4c9 authored by Svetoslav Ganov's avatar Svetoslav Ganov Committed by android-build-merger
Browse files

[DO NOT MERGE] Don't accidentally delete renamed packages

am: e2c85890

Change-Id: Icbd85ddfc76e50553414bd47860370cdc442b796
parents 1e0055bb e2c85890
Loading
Loading
Loading
Loading
+31 −0
Original line number Diff line number Diff line
@@ -2167,6 +2167,18 @@ public class PackageManagerService extends IPackageManager.Stub {
            mFirstBoot = !mSettings.readLPw(sUserManager.getUsers(false));
            // Clean up orphaned packages for which the code path doesn't exist
            // and they are an update to a system app - caused by bug/32321269
            final int packageSettingCount = mSettings.mPackages.size();
            for (int i = packageSettingCount - 1; i >= 0; i--) {
                PackageSetting ps = mSettings.mPackages.valueAt(i);
                if (!isExternal(ps) && (ps.codePath == null || !ps.codePath.exists())
                        && mSettings.getDisabledSystemPkgLPr(ps.name) != null) {
                    mSettings.mPackages.removeAt(i);
                    mSettings.enableSystemPackageLPw(ps.name);
                }
            }
            if (mFirstBoot) {
                requestCopyPreoptedFiles();
            }
@@ -3126,8 +3138,12 @@ public class PackageManagerService extends IPackageManager.Stub {
        flags = updateFlagsForPackage(flags, userId, packageName);
        enforceCrossUserPermission(Binder.getCallingUid(), userId,
                false /* requireFullPermission */, false /* checkShell */, "get package info");
        // reader
        synchronized (mPackages) {
            // Normalize package name to hanlde renamed packages
            packageName = normalizePackageNameLPr(packageName);
            final boolean matchFactoryOnly = (flags & MATCH_FACTORY_ONLY) != 0;
            PackageParser.Package p = null;
            if (matchFactoryOnly) {
@@ -3328,8 +3344,12 @@ public class PackageManagerService extends IPackageManager.Stub {
        flags = updateFlagsForApplication(flags, userId, packageName);
        enforceCrossUserPermission(Binder.getCallingUid(), userId,
                false /* requireFullPermission */, false /* checkShell */, "get application info");
        // writer
        synchronized (mPackages) {
            // Normalize package name to hanlde renamed packages
            packageName = normalizePackageNameLPr(packageName);
            PackageParser.Package p = mPackages.get(packageName);
            if (DEBUG_PACKAGE_INFO) Log.v(
                    TAG, "getApplicationInfo " + packageName
@@ -3351,6 +3371,11 @@ public class PackageManagerService extends IPackageManager.Stub {
        return null;
    }
    private String normalizePackageNameLPr(String packageName) {
        String normalizedPackageName = mSettings.mRenamedPackages.get(packageName);
        return normalizedPackageName != null ? normalizedPackageName : packageName;
    }
    @Override
    public void freeStorageAndNotify(final String volumeUuid, final long freeStorageSize,
            final IPackageDataObserver observer) {
@@ -19702,6 +19727,9 @@ Slog.v(TAG, ":: stepped forward, applying functor at tag " + parser.getName());
    private void assertPackageKnown(String volumeUuid, String packageName)
            throws PackageManagerException {
        synchronized (mPackages) {
            // Normalize package name to handle renamed packages
            packageName = normalizePackageNameLPr(packageName);
            final PackageSetting ps = mSettings.mPackages.get(packageName);
            if (ps == null) {
                throw new PackageManagerException("Package " + packageName + " is unknown");
@@ -19716,6 +19744,9 @@ Slog.v(TAG, ":: stepped forward, applying functor at tag " + parser.getName());
    private void assertPackageKnownAndInstalled(String volumeUuid, String packageName, int userId)
            throws PackageManagerException {
        synchronized (mPackages) {
            // Normalize package name to handle renamed packages
            packageName = normalizePackageNameLPr(packageName);
            final PackageSetting ps = mSettings.mPackages.get(packageName);
            if (ps == null) {
                throw new PackageManagerException("Package " + packageName + " is unknown");