summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Mitchell <rtmitchell@google.com>2020-04-30 10:25:53 -0700
committerRyan Mitchell <rtmitchell@google.com>2020-04-30 10:31:14 -0700
commit95f024289bca153eb562f011e4fe767bc6519c79 (patch)
treee19830b4e3cd6c98766455ea18009f210114a908
parentac774e3304d1c52d1f9057aabaa39bcb1249c656 (diff)
Treat non-integer target SDK as version 10000
Currently aapt2 treats non-integer target SDK values as SDK level 0. This resulted in incorrect implied permission dumps. This change causes aapt2 to treat non-integer SDK values as version 10000. Bug: 155391001 Test: aapt2 dump badging CtsSkQPTestCases.apk Change-Id: Ie4312a827974a7a10b40b12f8f23d264d1b1999a
-rw-r--r--tools/aapt2/dump/DumpManifest.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/tools/aapt2/dump/DumpManifest.cpp b/tools/aapt2/dump/DumpManifest.cpp
index e7a82034c77a..4a6bfd031284 100644
--- a/tools/aapt2/dump/DumpManifest.cpp
+++ b/tools/aapt2/dump/DumpManifest.cpp
@@ -91,6 +91,7 @@ enum {
};
const std::string& kAndroidNamespace = "http://schemas.android.com/apk/res/android";
+constexpr int kCurrentDevelopmentVersion = 10000;
/** Retrieves the attribute of the element with the specified attribute resource id. */
static xml::Attribute* FindAttribute(xml::Element *el, uint32_t resd_id) {
@@ -325,7 +326,7 @@ class ManifestExtractor {
ConfigDescription config;
config.orientation = android::ResTable_config::ORIENTATION_PORT;
config.density = android::ResTable_config::DENSITY_MEDIUM;
- config.sdkVersion = 10000; // Very high.
+ config.sdkVersion = kCurrentDevelopmentVersion; // Very high.
config.screenWidthDp = 320;
config.screenHeightDp = 480;
config.smallestScreenWidthDp = 320;
@@ -622,6 +623,8 @@ class UsesSdkBadging : public ManifestExtractor::Element {
}
if (target_sdk) {
extractor()->RaiseTargetSdk(*target_sdk);
+ } else if (target_sdk_name) {
+ extractor()->RaiseTargetSdk(kCurrentDevelopmentVersion);
}
}