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

Commit 5455f682 authored by Kenny Root's avatar Kenny Root
Browse files

Update PackageSetting flags when updating

Commit 5e03e2ca moved from
PacakgeParser.Package to PackageSetting which revealed that we weren't
updating the pkgFlags when replacing an existing application.

Add flags to PackageSetting so that deletion of the package later succeeds.

Change-Id: I2e0d4e07da31f48b68601f3f3240966b6e17dbdf
parent 25c925e6
Loading
Loading
Loading
Loading
+1 −4
Original line number Original line Diff line number Diff line
@@ -8118,10 +8118,7 @@ public class PackageManagerService extends IPackageManager.Stub {


        // Delete application code and resources
        // Delete application code and resources
        if (deleteCodeAndResources) {
        if (deleteCodeAndResources) {
            // TODO can pick up from PackageSettings as well
            outInfo.args = createInstallArgs(packageFlagsToInstallFlags(ps), ps.codePathString,
            int installFlags = isExternal(ps) ? PackageManager.INSTALL_EXTERNAL : 0;
            installFlags |= isForwardLocked(ps) ? PackageManager.INSTALL_FORWARD_LOCK : 0;
            outInfo.args = createInstallArgs(installFlags, ps.codePathString,
                    ps.resourcePathString, ps.nativeLibraryPathString);
                    ps.resourcePathString, ps.nativeLibraryPathString);
        }
        }
        return true;
        return true;
+8 −4
Original line number Original line Diff line number Diff line
@@ -566,6 +566,10 @@ final class Settings {
        if (p.signatures.mSignatures == null) {
        if (p.signatures.mSignatures == null) {
            p.signatures.assignSignatures(pkg.mSignatures);
            p.signatures.assignSignatures(pkg.mSignatures);
        }
        }
        // Update flags if needed.
        if (pkg.applicationInfo.flags != p.pkgFlags) {
            p.pkgFlags = pkg.applicationInfo.flags;
        }
        // If this app defines a shared user id initialize
        // If this app defines a shared user id initialize
        // the shared user signatures as well.
        // the shared user signatures as well.
        if (p.sharedUser != null && p.sharedUser.signatures.mSignatures == null) {
        if (p.sharedUser != null && p.sharedUser.signatures.mSignatures == null) {
@@ -2616,9 +2620,9 @@ final class Settings {
                pw.print("    installerPackageName="); pw.println(ps.installerPackageName);
                pw.print("    installerPackageName="); pw.println(ps.installerPackageName);
            }
            }
            pw.print("    signatures="); pw.println(ps.signatures);
            pw.print("    signatures="); pw.println(ps.signatures);
            pw.print("    permissionsFixed="); pw.print(ps.permissionsFixed);
            pw.print("    permissionsFixed="); pw.println(ps.permissionsFixed);
            pw.print("    haveGids="); pw.println(ps.haveGids);
            pw.print("    haveGids="); pw.println(ps.haveGids);
            pw.print("    pkgFlags=0x"); pw.print(Integer.toHexString(ps.pkgFlags));
            pw.print("    pkgFlags="); printFlags(pw, ps.pkgFlags, FLAG_DUMP_SPEC);
            pw.print("    installStatus="); pw.println(ps.installStatus);
            pw.print("    installStatus="); pw.println(ps.installStatus);
            for (UserInfo user : users) {
            for (UserInfo user : users) {
                pw.print("    User "); pw.print(user.id); pw.print(": ");
                pw.print("    User "); pw.print(user.id); pw.print(": ");