From fa1e9d7ad0e3f5b7fce37dbdc3f5ad889274ee43 Mon Sep 17 00:00:00 2001 From: Adam Lesinski Date: Tue, 24 Jan 2017 16:16:09 -0800 Subject: AAPT: Fix --feature-of to allow non-public symbol visibility Test: manual Change-Id: Iada18b201c6463011002f96285a64c64565a6e1c --- tools/aapt/ResourceTable.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'tools/aapt/ResourceTable.cpp') diff --git a/tools/aapt/ResourceTable.cpp b/tools/aapt/ResourceTable.cpp index 661409e3d4bc..b9bf7991edb3 100644 --- a/tools/aapt/ResourceTable.cpp +++ b/tools/aapt/ResourceTable.cpp @@ -2204,8 +2204,10 @@ uint32_t ResourceTable::getResId(const String16& package, package.string(), package.size(), &specFlags); if (rid != 0) { - if (onlyPublic) { - if ((specFlags & ResTable_typeSpec::SPEC_PUBLIC) == 0) { + if (onlyPublic && (specFlags & ResTable_typeSpec::SPEC_PUBLIC) == 0) { + // If this is a feature split and the resource has the same + // package name as us, then everything is public. + if (mPackageType != AppFeature || mAssetsPackage != package) { return 0; } } -- cgit v1.2.3-59-g8ed1b