OSDN Git Service

AAPT: treat "-I" with lower precedence than main APK for dumping.
authorDonald Chai <dchai@google.com>
Fri, 13 Oct 2017 04:00:45 +0000 (21:00 -0700)
committerandroid-build-team Robot <android-build-team-robot@google.com>
Fri, 27 Oct 2017 14:44:14 +0000 (14:44 +0000)
commitb9474a64b317d4fb36a6fa78f96137cc68db1a96
treeb55a8028605b273b0df33d0ca1ee1f1be7ba95cf
parent0a3a474e46e41803fb7dd18d5653ce052916e5ca
AAPT: treat "-I" with lower precedence than main APK for dumping.

This is the desired behavior if resource IDs may overlap, and also happens to
improve the behavior of:

  aapt dump -I base.apk badging feature.apk

when both APKs use the same package name with different package IDs
(base=0x7F, feature=0x80).  Previously, the final call to
DynamicRefTable::addMapping was for base.apk, and all references to 0x80 were
rewritten in DynamicRefTable::lookupResourceId to 0x7F.  After this
change resources defined in both APKs are resolved correctly.

Note that this is a bit of kludge, and APKs should use different names
to avoid conflating the package IDs.

Fixes: 67070085
Bug: 64058531
Test: manual with sample in b/67070085#comment2
Change-Id: I285adb6f44a297440b08fc7a1f9ad73c700eb9bc
(cherry picked from commit d1ac6e1f9ea3a4d6c0d6d4a118c61526b8234a5f)
(cherry picked from commit 94251fac62b12f030c404132a395fdef73e7ab29)
tools/aapt/Command.cpp