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

Commit f61ae2de authored by dcashman's avatar dcashman
Browse files

Add SYSTEM_DIR check to upgrade-key-set verification.

Bug: 21697139
Change-Id: I7e6ce3d7f231e0ca5da1f501c80342a04f6c2a1e
parent 5f185270
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -6166,9 +6166,16 @@ public class PackageManagerService extends IPackageManager.Stub {
                }
            } else {
                if (!checkUpgradeKeySetLP(pkgSetting, pkg)) {
                    throw new PackageManagerException(INSTALL_FAILED_UPDATE_INCOMPATIBLE, "Package "
                            + pkg.packageName + " upgrade keys do not match the "
                    if ((parseFlags & PackageParser.PARSE_IS_SYSTEM_DIR) == 0) {
                        throw new PackageManagerException(INSTALL_FAILED_UPDATE_INCOMPATIBLE,
                                "Package " + pkg.packageName + " upgrade keys do not match the "
                                + "previously installed version");
                    } else {
                        pkgSetting.signatures.mSignatures = pkg.mSignatures;
                        String msg = "System package " + pkg.packageName
                            + " signature changed; retaining data.";
                        reportSettingsProblem(Log.WARN, msg);
                    }
                } else {
                    // We just determined the app is signed correctly, so bring
                    // over the latest parsed certs.