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

Commit 95f02428 authored by Ryan Mitchell's avatar Ryan Mitchell
Browse files

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
parent ac774e33
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -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);
    }
  }