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

Commit 032f2b24 authored by Jeff Sharkey's avatar Jeff Sharkey
Browse files

Explicitly collect manifest digests.

Previously it was a side effect of collectCertificates().

Bug: 15740334
Change-Id: I2e044fdcc1c86ce730b9570bfbecf873366325e1
parent 7a2d46f3
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -2876,6 +2876,7 @@ public abstract class PackageManager {
            PackageParser.Package pkg = parser.parseMonolithicPackage(apkFile, 0);
            if ((flags & GET_SIGNATURES) != 0) {
                parser.collectCertificates(pkg, 0);
                parser.collectManifestDigest(pkg);
            }
            PackageUserState state = new PackageUserState();
            return PackageParser.generatePackageInfo(pkg, null, flags, 0, 0, null, state);
+2 −0
Original line number Diff line number Diff line
@@ -744,6 +744,8 @@ public class PackageParser {
     * {@code AndroidManifest.xml}, {@code true} is returned.
     */
    public void collectManifestDigest(Package pkg) throws PackageParserException {
        pkg.manifestDigest = null;

        // TODO: extend to gather digest for split APKs
        try {
            final StrictJarFile jarFile = new StrictJarFile(pkg.codePath);
+2 −0
Original line number Diff line number Diff line
@@ -4182,6 +4182,7 @@ public class PackageManagerService extends IPackageManager.Stub {
        try {
            pp.collectCertificates(pkg, parseFlags);
            pp.collectManifestDigest(pkg);
        } catch (PackageParserException e) {
            mLastScanError = e.error;
            return false;
@@ -10225,6 +10226,7 @@ public class PackageManagerService extends IPackageManager.Stub {
        try {
            pp.collectCertificates(pkg, parseFlags);
            pp.collectManifestDigest(pkg);
        } catch (PackageParserException e) {
            res.returnCode = e.error;
            return;