summaryrefslogtreecommitdiff
path: root/tools/aapt2/Debug.cpp
diff options
context:
space:
mode:
authorAdam Lesinski <adamlesinski@google.com>2017-04-26 21:49:53 -0700
committerAdam Lesinski <adamlesinski@google.com>2017-04-26 21:55:31 -0700
commit4ca56978a9aea3f021a54ed9265de10811984d94 (patch)
tree1634b01c81b725ff3d286b7a8bf6cd16682cf7eb /tools/aapt2/Debug.cpp
parent9e55fcbdc254da098bb792f460296ff0649c3b00 (diff)
AAPT2: Add workaround for non-standard package IDs
The dynamic ref table used to map build-time IDs to runtime IDs is mainly used for shared resource libraries and has a few built-in mappings (app 0x7f and framework 0x01). Using a non-standard package ID like 0x80 causes a failure in package ID lookup. The solution is to ship the dynamic_ref_table with an identity mapping with any resource table that uses a non-standard package ID. Adds some tests to ensure this works correctly. Bug: 37498913 Test: make libandroidfw_tests Test: make aapt2_tests Change-Id: Ic3f67942384d34e7fdcbc94ded360e940e3ebc8a
Diffstat (limited to 'tools/aapt2/Debug.cpp')
-rw-r--r--tools/aapt2/Debug.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/tools/aapt2/Debug.cpp b/tools/aapt2/Debug.cpp
index 60b01e372d7b..b872ebbeb159 100644
--- a/tools/aapt2/Debug.cpp
+++ b/tools/aapt2/Debug.cpp
@@ -274,7 +274,13 @@ class XmlPrinter : public xml::Visitor {
if (!attr.namespace_uri.empty()) {
std::cerr << attr.namespace_uri << ":";
}
- std::cerr << attr.name << "=" << attr.value << "\n";
+ std::cerr << attr.name;
+
+ if (attr.compiled_attribute) {
+ std::cerr << "(" << attr.compiled_attribute.value().id.value_or_default(ResourceId(0x0))
+ << ")";
+ }
+ std::cerr << "=" << attr.value << "\n";
}
const size_t previous_size = prefix_.size();