diff options
-rw-r--r-- | core/java/android/app/LoadedApk.java | 2 | ||||
-rw-r--r-- | include/androidfw/AttributeFinder.h | 7 | ||||
-rw-r--r-- | libs/androidfw/AssetManager.cpp | 6 | ||||
-rw-r--r-- | libs/androidfw/ResourceTypes.cpp | 3 | ||||
-rw-r--r-- | tools/aapt/ResourceTable.cpp | 5 |
5 files changed, 18 insertions, 5 deletions
diff --git a/core/java/android/app/LoadedApk.java b/core/java/android/app/LoadedApk.java index c2bf28a..3eebfc6 100644 --- a/core/java/android/app/LoadedApk.java +++ b/core/java/android/app/LoadedApk.java @@ -601,7 +601,7 @@ public final class LoadedApk { final int N = packageIdentifiers.size(); for (int i = 0; i < N; i++) { final int id = packageIdentifiers.keyAt(i); - if (id == 0x01 || id == 0x7f) { + if (id == 0x01 || id == 0x7f || id == 0x3f) { continue; } diff --git a/include/androidfw/AttributeFinder.h b/include/androidfw/AttributeFinder.h index acf7056..be0f1bd 100644 --- a/include/androidfw/AttributeFinder.h +++ b/include/androidfw/AttributeFinder.h @@ -74,6 +74,7 @@ private: // Package Offsets (best-case, fast look-up). Iterator mFrameworkStart; + Iterator mCMFrameworkStart; Iterator mAppStart; // Worst case, we have shared-library resources. @@ -99,6 +100,9 @@ void BackTrackingAttributeFinder<Derived, Iterator>::jumpToClosestAttribute(cons case 0x01: mCurrent = mFrameworkStart; break; + case 0x3f: + mCurrent = mCMFrameworkStart; + break; case 0x7f: mCurrent = mAppStart; break; @@ -132,6 +136,9 @@ void BackTrackingAttributeFinder<Derived, Iterator>::markCurrentPackageId(const case 0x01: mFrameworkStart = mCurrent; break; + case 0x3f: + mCMFrameworkStart = mCurrent; + break; case 0x7f: mAppStart = mCurrent; break; diff --git a/libs/androidfw/AssetManager.cpp b/libs/androidfw/AssetManager.cpp index 2dc1c96..ed7808a 100644 --- a/libs/androidfw/AssetManager.cpp +++ b/libs/androidfw/AssetManager.cpp @@ -75,6 +75,7 @@ static const char* kDefaultVendor = "default"; static const char* kAssetsRoot = "assets"; static const char* kAppZipName = NULL; //"classes.jar"; static const char* kSystemAssets = "framework/framework-res.apk"; +static const char* kCMSDKAssets = "framework/org.cyanogenmod.platform-res.apk"; static const char* kResourceCache = "resource-cache"; static const char* kAndroidManifest = "AndroidManifest.xml"; @@ -340,7 +341,10 @@ bool AssetManager::addDefaultAssets() String8 path(root); path.appendPath(kSystemAssets); - return addAssetPath(path, NULL); + String8 pathCM(root); + pathCM.appendPath(kCMSDKAssets); + + return addAssetPath(path, NULL) & addAssetPath(pathCM, NULL); } int32_t AssetManager::nextAssetPath(const int32_t cookie) const diff --git a/libs/androidfw/ResourceTypes.cpp b/libs/androidfw/ResourceTypes.cpp index 62aabb1..320486d 100644 --- a/libs/androidfw/ResourceTypes.cpp +++ b/libs/androidfw/ResourceTypes.cpp @@ -60,6 +60,7 @@ namespace android { #define IDMAP_CURRENT_VERSION 0x00000001 #define APP_PACKAGE_ID 0x7f +#define CMSDK_PACKAGE_ID 0x3f #define SYS_PACKAGE_ID 0x01 static const bool kDebugStringPoolNoisy = false; @@ -6232,6 +6233,7 @@ DynamicRefTable::DynamicRefTable(uint8_t packageId) // Reserved package ids mLookupTable[APP_PACKAGE_ID] = APP_PACKAGE_ID; mLookupTable[SYS_PACKAGE_ID] = SYS_PACKAGE_ID; + mLookupTable[CMSDK_PACKAGE_ID] = CMSDK_PACKAGE_ID; } status_t DynamicRefTable::load(const ResTable_lib_header* const header) @@ -6539,7 +6541,6 @@ bool ResTable::getIdmapInfo(const void* idmap, size_t sizeBytes, return true; } - #define CHAR16_TO_CSTR(c16, len) (String8(String16(c16,len)).string()) #define CHAR16_ARRAY_EQ(constant, var, len) \ diff --git a/tools/aapt/ResourceTable.cpp b/tools/aapt/ResourceTable.cpp index d5a09d8..1f736d0 100644 --- a/tools/aapt/ResourceTable.cpp +++ b/tools/aapt/ResourceTable.cpp @@ -2825,8 +2825,9 @@ status_t ResourceTable::flatten(Bundle* bundle, const sp<const ResourceFilter>& for (size_t i = 0; i < basePackageCount; i++) { size_t packageId = table.getBasePackageId(i); String16 packageName(table.getBasePackageName(i)); - if (packageId > 0x01 && packageId != 0x7f && - packageName != String16("android")) { + if (packageId > 0x01 && packageId != 0x7f && packageId != 0x3f && + packageName != String16("android") + && packageName != String16("cyanogenmod.platform")) { libraryPackages.add(sp<Package>(new Package(packageName, packageId))); } } |