Explicitly collect manifest digests.
Previously it was a side effect of collectCertificates(). Bug: 15740334 Change-Id: I2e044fdcc1c86ce730b9570bfbecf873366325e1
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user