diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java index 5d55b0a11bd4c..84153848dac13 100644 --- a/core/java/android/content/pm/PackageManager.java +++ b/core/java/android/content/pm/PackageManager.java @@ -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); diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java index c8acd66f3b2d2..dc937a5fef460 100644 --- a/core/java/android/content/pm/PackageParser.java +++ b/core/java/android/content/pm/PackageParser.java @@ -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); diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 2f40f2ab19e2c..2f52564140e71 100755 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -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;