summaryrefslogtreecommitdiff
path: root/tools/aapt2/Debug.cpp
diff options
context:
space:
mode:
authorRyan Mitchell <rtmitchell@google.com>2018-10-29 02:21:50 -0700
committerRyan Mitchell <rtmitchell@google.com>2018-11-06 00:10:26 +0000
commite4e989ccba19f9bfad44d070873d67e7a3fd29c4 (patch)
tree35b0df5967d8878063bb98bbc0c8c1e5fd2508b7 /tools/aapt2/Debug.cpp
parentcfc152af9cbfc47ed4c8ab8a8b6e9ee4214206ea (diff)
RRO: Added partition policies for overlays
<overlayable> tags can now have policy elements that indicate which partition the overlay apk must reside on in order to be allowed to overlay a resource. This change only adds parsing of <policy> and encoding of policy in the proto ResourceTable. A later change will add the encoding of policy and overlayable in the binary APK. <overlayable> <policy type="system|vendor|product|product_services|public" > <item type="string" name="oof" /> </policy> </overlayable> Bug: 110869880 Test: make aapt2_tests Change-Id: I8d4ed7b0e01f981149c6e3190af1681073b79b03
Diffstat (limited to 'tools/aapt2/Debug.cpp')
-rw-r--r--tools/aapt2/Debug.cpp25
1 files changed, 23 insertions, 2 deletions
diff --git a/tools/aapt2/Debug.cpp b/tools/aapt2/Debug.cpp
index 0a517ab8a2de..0bc5221245ca 100644
--- a/tools/aapt2/Debug.cpp
+++ b/tools/aapt2/Debug.cpp
@@ -306,8 +306,29 @@ void Debug::PrintTable(const ResourceTable& table, const DebugPrintTableOptions&
break;
}
- if (entry->overlayable) {
- printer->Print(" OVERLAYABLE");
+ for (size_t i = 0; i < entry->overlayable_declarations.size(); i++) {
+ printer->Print((i == 0) ? " " : "|");
+ printer->Print("OVERLAYABLE");
+
+ if (entry->overlayable_declarations[i].policy) {
+ switch (entry->overlayable_declarations[i].policy.value()) {
+ case Overlayable::Policy::kProduct:
+ printer->Print("_PRODUCT");
+ break;
+ case Overlayable::Policy::kProductServices:
+ printer->Print("_PRODUCT_SERVICES");
+ break;
+ case Overlayable::Policy::kSystem:
+ printer->Print("_SYSTEM");
+ break;
+ case Overlayable::Policy::kVendor:
+ printer->Print("_VENDOR");
+ break;
+ case Overlayable::Policy::kPublic:
+ printer->Print("_PUBLIC");
+ break;
+ }
+ }
}
printer->Println();