diff options
author | Adam Lesinski <adamlesinski@google.com> | 2017-04-26 21:49:53 -0700 |
---|---|---|
committer | Adam Lesinski <adamlesinski@google.com> | 2017-04-26 21:55:31 -0700 |
commit | 4ca56978a9aea3f021a54ed9265de10811984d94 (patch) | |
tree | 1634b01c81b725ff3d286b7a8bf6cd16682cf7eb /tools/aapt2/Debug.cpp | |
parent | 9e55fcbdc254da098bb792f460296ff0649c3b00 (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.cpp | 8 |
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(); |