From 935a1560a7356ee2b93d83f5e3a7d26d68eee387 Mon Sep 17 00:00:00 2001 From: Mohammad Samiul Islam Date: Tue, 12 Mar 2019 16:52:56 +0000 Subject: [PATCH] Use AndroidManifest to fill PackageInfo from apex Some of the applicationInfo was hard coded while some packageInfo was missing. Using AndroidManifest, they are completed as much as possible. For remaining missing values, sane defaults are used where possible. Bug: 124043099 Test: 1. added more assert rules in PackageParserTest.java 2. atest PackageParserTest Change-Id: I950283d822966ee2cb97f7bf13b7f55bb1227946 --- .../android/content/pm/PackageParser.java | 53 +++++++++++++----- .../coretests/res/raw/com_android_tzdata.apex | Bin 1286419 -> 979219 bytes .../android/content/pm/PackageParserTest.java | 20 +++++-- 3 files changed, 55 insertions(+), 18 deletions(-) diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java index b480939ae450c..35d1eac5c0ad0 100644 --- a/core/java/android/content/pm/PackageParser.java +++ b/core/java/android/content/pm/PackageParser.java @@ -166,6 +166,9 @@ public class PackageParser { private static final float DEFAULT_PRE_Q_MIN_ASPECT_RATIO = 1.333f; private static final float DEFAULT_PRE_Q_MIN_ASPECT_RATIO_WATCH = 1f; + private static final int DEFAULT_MIN_SDK_VERSION = 1; + private static final int DEFAULT_TARGET_SDK_VERSION = 0; + // TODO: switch outError users to PackageParserException // TODO: refactor "codePath" to "apkPath" @@ -466,6 +469,8 @@ public class PackageParser { public final int versionCodeMajor; public final int revisionCode; public final int installLocation; + public final int minSdkVersion; + public final int targetSdkVersion; public final VerifierInfo[] verifiers; public final SigningDetails signingDetails; public final boolean coreApp; @@ -484,7 +489,8 @@ public class PackageParser { int revisionCode, int installLocation, List verifiers, SigningDetails signingDetails, boolean coreApp, boolean debuggable, boolean multiArch, boolean use32bitAbi, - boolean useEmbeddedDex, boolean extractNativeLibs, boolean isolatedSplits) { + boolean useEmbeddedDex, boolean extractNativeLibs, boolean isolatedSplits, + int minSdkVersion, int targetSdkVersion) { this.codePath = codePath; this.packageName = packageName; this.splitName = splitName; @@ -505,6 +511,8 @@ public class PackageParser { this.extractNativeLibs = extractNativeLibs; this.isolatedSplits = isolatedSplits; this.isSplitRequired = isSplitRequired; + this.minSdkVersion = minSdkVersion; + this.targetSdkVersion = targetSdkVersion; } public long getLongVersionCode() { @@ -1712,6 +1720,8 @@ public class PackageParser { int installLocation = PARSE_DEFAULT_INSTALL_LOCATION; int versionCode = 0; int versionCodeMajor = 0; + int targetSdkVersion = DEFAULT_TARGET_SDK_VERSION; + int minSdkVersion = DEFAULT_MIN_SDK_VERSION; int revisionCode = 0; boolean coreApp = false; boolean debuggable = false; @@ -1749,7 +1759,7 @@ public class PackageParser { } } - // Only search the tree when the tag is directly below + // Only search the tree when the tag is the direct child of tag int type; final int searchDepth = parser.getDepth() + 1; @@ -1800,13 +1810,25 @@ public class PackageParser { PackageManager.INSTALL_PARSE_FAILED_MANIFEST_MALFORMED, " tag requires 'android:name' attribute"); } + } else if (TAG_USES_SDK.equals(parser.getName())) { + for (int i = 0; i < attrs.getAttributeCount(); ++i) { + final String attr = attrs.getAttributeName(i); + if ("targetSdkVersion".equals(attr)) { + targetSdkVersion = attrs.getAttributeIntValue(i, + DEFAULT_TARGET_SDK_VERSION); + } + if ("minSdkVersion".equals(attr)) { + minSdkVersion = attrs.getAttributeIntValue(i, DEFAULT_MIN_SDK_VERSION); + } + } } } return new ApkLite(codePath, packageSplit.first, packageSplit.second, isFeatureSplit, configForSplit, usesSplitName, isSplitRequired, versionCode, versionCodeMajor, revisionCode, installLocation, verifiers, signingDetails, coreApp, debuggable, - multiArch, use32bitAbi, useEmbeddedDex, extractNativeLibs, isolatedSplits); + multiArch, use32bitAbi, useEmbeddedDex, extractNativeLibs, isolatedSplits, + minSdkVersion, targetSdkVersion); } /** @@ -8350,6 +8372,7 @@ public class PackageParser { } } + // TODO(b/129261524): Clean up API public static PackageInfo generatePackageInfoFromApex(File apexFile, boolean collectCerts) throws PackageParserException { PackageInfo pi = new PackageInfo(); @@ -8369,25 +8392,27 @@ public class PackageParser { } } - // TODO(b/123086053) properly fill in the ApplicationInfo with data from AndroidManifest + PackageParser.ApkLite apk = PackageParser.parseApkLite(apexFile, parseFlags); + + // Properly fill in the ApplicationInfo with data from AndroidManifest // Add ApplicationInfo to the PackageInfo. + // TODO(b/129267599) ApplicationInfo ai = new ApplicationInfo(); + ai.packageName = apk.packageName; ai.sourceDir = apexFile.getPath(); ai.flags = ApplicationInfo.FLAG_SYSTEM | ApplicationInfo.FLAG_INSTALLED; ai.enabled = true; - ai.targetSdkVersion = 28; - ai.targetSandboxVersion = 0; - pi.applicationInfo = ai; - - - // TODO(b/123052859): We should avoid these repeated calls to parseApkLite each time - // we want to generate information for APEX modules. - PackageParser.ApkLite apk = PackageParser.parseApkLite(apexFile, parseFlags); + ai.minSdkVersion = apk.minSdkVersion; + ai.targetSdkVersion = apk.targetSdkVersion; + ai.targetSandboxVersion = PARSE_DEFAULT_TARGET_SANDBOX; + ai.setVersionCode(apk.getLongVersionCode()); pi.packageName = apk.packageName; - ai.packageName = apk.packageName; + pi.splitNames = new String[]{apk.splitName}; pi.setLongVersionCode(apk.getLongVersionCode()); - ai.setVersionCode(apk.getLongVersionCode()); + pi.applicationInfo = ai; + pi.coreApp = apk.coreApp; + if (collectCerts) { if (apk.signingDetails.hasPastSigningCertificates()) { diff --git a/core/tests/coretests/res/raw/com_android_tzdata.apex b/core/tests/coretests/res/raw/com_android_tzdata.apex index 72294dead2de528f580e7a4cfd25593c9e355977..06ea8fad6393b399e7c96344c2525939e495c082 100644 GIT binary patch delta 56971 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 ZtkRav`BM>=Y$$mu7beBnK)ZX;zW}jhvgZH* delta 50261 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

Cm{XXp20V`*Y685RMbRil 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 DzQmB+ diff --git a/core/tests/coretests/src/android/content/pm/PackageParserTest.java b/core/tests/coretests/src/android/content/pm/PackageParserTest.java index aa0e0cdae2653..0798c0c0805a3 100644 --- a/core/tests/coretests/src/android/content/pm/PackageParserTest.java +++ b/core/tests/coretests/src/android/content/pm/PackageParserTest.java @@ -500,18 +500,30 @@ public class PackageParserTest { File apexFile = copyRawResourceToFile("com.android.tzdata.apex", R.raw.com_android_tzdata); PackageInfo pi = PackageParser.generatePackageInfoFromApex(apexFile, false); - assertEquals("com.google.android.tzdata", pi.packageName); assertEquals("com.google.android.tzdata", pi.applicationInfo.packageName); - assertEquals(1, pi.getLongVersionCode()); + assertTrue(pi.applicationInfo.enabled); + assertEquals(28, pi.applicationInfo.targetSdkVersion); assertEquals(1, pi.applicationInfo.longVersionCode); + + assertEquals("com.google.android.tzdata", pi.packageName); + assertTrue(pi.splitNames.length > 0); + assertEquals(1, pi.getLongVersionCode()); assertNull(pi.signingInfo); + assertNull(pi.signatures); + assertTrue(pi.isApex); pi = PackageParser.generatePackageInfoFromApex(apexFile, true); - assertEquals("com.google.android.tzdata", pi.packageName); assertEquals("com.google.android.tzdata", pi.applicationInfo.packageName); - assertEquals(1, pi.getLongVersionCode()); + assertTrue(pi.applicationInfo.enabled); + assertEquals(28, pi.applicationInfo.targetSdkVersion); assertEquals(1, pi.applicationInfo.longVersionCode); + + assertEquals("com.google.android.tzdata", pi.packageName); + assertTrue(pi.splitNames.length > 0); + assertEquals(1, pi.getLongVersionCode()); assertNotNull(pi.signingInfo); + assertNotNull(pi.signatures); assertTrue(pi.signingInfo.getApkContentsSigners().length > 0); + assertTrue(pi.isApex); } }