summaryrefslogtreecommitdiff
path: root/tools/aapt2/dump
diff options
context:
space:
mode:
author Anton Hansson <hansson@google.com> 2018-12-11 13:52:17 +0000
committer Anton Hansson <hansson@google.com> 2018-12-12 13:17:26 +0000
commitcd2d8e2021e1d91765f61357d9585bd6969f93bb (patch)
treeb458969b8f6c188d3b5946e6e4aa5178c6cb2655 /tools/aapt2/dump
parent754fbf92a11e54e3ee437469801265ed7beaa5db (diff)
Make aapt2 dump badging print overlay info
This adds the contents of the manifest <overlay> tag to the output of aapt2 dump badging. Sample output: overlay: targetPackage='android' priority='1' isStatic='false' Bug: 119938467 Test: aapt2 dump badging \ $ANDROID_PRODUCT_OUT/vendor/overlay/framework-res__auto_generated_rro.apk Change-Id: Ie9d904e6206ff8cf092744e630ee6f496672673c
Diffstat (limited to 'tools/aapt2/dump')
-rw-r--r--tools/aapt2/dump/DumpManifest.cpp49
1 files changed, 47 insertions, 2 deletions
diff --git a/tools/aapt2/dump/DumpManifest.cpp b/tools/aapt2/dump/DumpManifest.cpp
index 11a4074cd3cd..e17fb4783a45 100644
--- a/tools/aapt2/dump/DumpManifest.cpp
+++ b/tools/aapt2/dump/DumpManifest.cpp
@@ -43,8 +43,10 @@ enum {
PERMISSION_ATTR = 0x01010006,
EXPORTED_ATTR = 0x01010010,
GRANT_URI_PERMISSIONS_ATTR = 0x0101001b,
+ PRIORITY_ATTR = 0x0101001c,
RESOURCE_ATTR = 0x01010025,
DEBUGGABLE_ATTR = 0x0101000f,
+ TARGET_PACKAGE_ATTR = 0x01010021,
VALUE_ATTR = 0x01010024,
VERSION_CODE_ATTR = 0x0101021b,
VERSION_NAME_ATTR = 0x0101021c,
@@ -77,8 +79,11 @@ enum {
ISGAME_ATTR = 0x10103f4,
VERSION_ATTR = 0x01010519,
CERT_DIGEST_ATTR = 0x01010548,
- REQUIRED_FEATURE_ATTR = 0x1010557,
- REQUIRED_NOT_FEATURE_ATTR = 0x1010558,
+ REQUIRED_FEATURE_ATTR = 0x01010557,
+ REQUIRED_NOT_FEATURE_ATTR = 0x01010558,
+ IS_STATIC_ATTR = 0x0101055a,
+ REQUIRED_SYSTEM_PROPERTY_NAME_ATTR = 0x01010565,
+ REQUIRED_SYSTEM_PROPERTY_VALUE_ATTR = 0x01010566,
COMPILE_SDK_VERSION_ATTR = 0x01010572,
COMPILE_SDK_VERSION_CODENAME_ATTR = 0x01010573,
VERSION_MAJOR_ATTR = 0x01010577,
@@ -1586,6 +1591,44 @@ class OriginalPackage : public ManifestExtractor::Element {
}
};
+
+/** Represents <overlay> elements. **/
+class Overlay : public ManifestExtractor::Element {
+ public:
+ Overlay() = default;
+ const std::string* target_package = nullptr;
+ int priority;
+ bool is_static;
+ const std::string* required_property_name = nullptr;
+ const std::string* required_property_value = nullptr;
+
+ void Extract(xml::Element* element) override {
+ target_package = GetAttributeString(FindAttribute(element, TARGET_PACKAGE_ATTR));
+ priority = GetAttributeIntegerDefault(FindAttribute(element, PRIORITY_ATTR), 0);
+ is_static = GetAttributeIntegerDefault(FindAttribute(element, IS_STATIC_ATTR), false) != 0;
+ required_property_name = GetAttributeString(
+ FindAttribute(element, REQUIRED_SYSTEM_PROPERTY_NAME_ATTR));
+ required_property_value = GetAttributeString(
+ FindAttribute(element, REQUIRED_SYSTEM_PROPERTY_VALUE_ATTR));
+ }
+
+ void Print(text::Printer* printer) override {
+ printer->Print(StringPrintf("overlay:"));
+ if (target_package) {
+ printer->Print(StringPrintf(" targetPackage='%s'", target_package->c_str()));
+ }
+ printer->Print(StringPrintf(" priority='%d'", priority));
+ printer->Print(StringPrintf(" isStatic='%s'", is_static ? "true" : "false"));
+ if (required_property_name) {
+ printer->Print(StringPrintf(" requiredPropertyName='%s'", required_property_name->c_str()));
+ }
+ if (required_property_value) {
+ printer->Print(StringPrintf(" requiredPropertyValue='%s'", required_property_value->c_str()));
+ }
+ printer->Print("\n");
+ }
+};
+
/** * Represents <package-verifier> elements. **/
class PackageVerifier : public ManifestExtractor::Element {
public:
@@ -2166,6 +2209,7 @@ T* ElementCast(ManifestExtractor::Element* element) {
{"meta-data", std::is_base_of<MetaData, T>::value},
{"manifest", std::is_base_of<Manifest, T>::value},
{"original-package", std::is_base_of<OriginalPackage, T>::value},
+ {"overlay", std::is_base_of<Overlay, T>::value},
{"package-verifier", std::is_base_of<PackageVerifier, T>::value},
{"permission", std::is_base_of<Permission, T>::value},
{"provider", std::is_base_of<Provider, T>::value},
@@ -2215,6 +2259,7 @@ std::unique_ptr<ManifestExtractor::Element> ManifestExtractor::Element::Inflate(
{"manifest", &CreateType<Manifest>},
{"meta-data", &CreateType<MetaData>},
{"original-package", &CreateType<OriginalPackage>},
+ {"overlay", &CreateType<Overlay>},
{"package-verifier", &CreateType<PackageVerifier>},
{"permission", &CreateType<Permission>},
{"provider", &CreateType<Provider>},