diff options
| author | Adam Lesinski <adamlesinski@google.com> | 2014-09-19 23:28:24 +0000 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2014-09-19 23:28:24 +0000 |
| commit | 3ae4ac218c56d1603c8b3cc27fe788fea9be4c9f (patch) | |
| tree | db798646e19fb100c7581a90fab95317402e48dd /libs/androidfw | |
| parent | 964c1d2fed9ba31a547be39b51100f9bc1ee7b76 (diff) | |
| parent | 0fa7511db2ec1e2326938f92262d00f23876307e (diff) | |
| download | frameworks_base-3ae4ac218c56d1603c8b3cc27fe788fea9be4c9f.zip frameworks_base-3ae4ac218c56d1603c8b3cc27fe788fea9be4c9f.tar.gz frameworks_base-3ae4ac218c56d1603c8b3cc27fe788fea9be4c9f.tar.bz2 | |
am 60040044: am 9ee3ba23: am e7e9ad6d: am 863b1a90: am 19f9d54f: Merge "Fix backwards compat problem with AAPT public attrs" into lmp-dev
* commit '6004004428a93a03657b513d62eeaab660db0896':
Fix backwards compat problem with AAPT public attrs
Diffstat (limited to 'libs/androidfw')
| -rw-r--r-- | libs/androidfw/ResourceTypes.cpp | 38 | ||||
| -rwxr-xr-x | libs/androidfw/tests/data/basic/build | 4 |
2 files changed, 41 insertions, 1 deletions
diff --git a/libs/androidfw/ResourceTypes.cpp b/libs/androidfw/ResourceTypes.cpp index ff18b13..672a8ee 100644 --- a/libs/androidfw/ResourceTypes.cpp +++ b/libs/androidfw/ResourceTypes.cpp @@ -5393,6 +5393,44 @@ const char16_t* StringPoolRef::string16(size_t* outLen) const { return NULL; } +bool ResTable::getResourceFlags(uint32_t resID, uint32_t* outFlags) const { + if (mError != NO_ERROR) { + return false; + } + + const ssize_t p = getResourcePackageIndex(resID); + const int t = Res_GETTYPE(resID); + const int e = Res_GETENTRY(resID); + + if (p < 0) { + if (Res_GETPACKAGE(resID)+1 == 0) { + ALOGW("No package identifier when getting flags for resource number 0x%08x", resID); + } else { + ALOGW("No known package when getting flags for resource number 0x%08x", resID); + } + return false; + } + if (t < 0) { + ALOGW("No type identifier when getting flags for resource number 0x%08x", resID); + return false; + } + + const PackageGroup* const grp = mPackageGroups[p]; + if (grp == NULL) { + ALOGW("Bad identifier when getting flags for resource number 0x%08x", resID); + return false; + } + + Entry entry; + status_t err = getEntry(grp, t, e, NULL, &entry); + if (err != NO_ERROR) { + return false; + } + + *outFlags = entry.specFlags; + return true; +} + status_t ResTable::getEntry( const PackageGroup* packageGroup, int typeIndex, int entryIndex, const ResTable_config* config, diff --git a/libs/androidfw/tests/data/basic/build b/libs/androidfw/tests/data/basic/build index fa4a9fe..036e468 100755 --- a/libs/androidfw/tests/data/basic/build +++ b/libs/androidfw/tests/data/basic/build @@ -1,6 +1,8 @@ #!/bin/bash -aapt package -M AndroidManifest.xml -S res --split fr,de -F bundle.apk -f && \ +PATH_TO_FRAMEWORK_RES=$(gettop)/prebuilts/sdk/current/android.jar + +aapt package -M AndroidManifest.xml -S res -I $PATH_TO_FRAMEWORK_RES --split fr,de -F bundle.apk -f && \ unzip bundle.apk resources.arsc && \ mv resources.arsc basic.arsc && \ xxd -i basic.arsc > basic_arsc.h && \ |
