summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jakub Adamek <jakuba@google.com> 2016-09-30 09:19:09 +0100
committer Jakub Adamek <jakuba@google.com> 2016-10-03 10:14:12 +0100
commitc03d9483f0380fb7babfdeb11d6762bc6c8d784c (patch)
tree1586b9da530a3ae49bfd79e9745f9a1c9b19b483
parentc350547dcffec2ca490f881019c08cd4339251dc (diff)
Change name of overlay subdir property to sku.
Also move the SKU subdirectories directly under /vendor/overlay. Bug: 31692079 Change-Id: I68c712b13918cc99629534580ee4f77d9e5b3823
-rw-r--r--core/jni/android_util_AssetManager.cpp19
-rw-r--r--core/jni/fd_utils-inl.h9
-rw-r--r--include/androidfw/AssetManager.h7
-rw-r--r--libs/androidfw/AssetManager.cpp3
4 files changed, 17 insertions, 21 deletions
diff --git a/core/jni/android_util_AssetManager.cpp b/core/jni/android_util_AssetManager.cpp
index 77d03433134b..da9415d10b73 100644
--- a/core/jni/android_util_AssetManager.cpp
+++ b/core/jni/android_util_AssetManager.cpp
@@ -186,18 +186,19 @@ static void verifySystemIdmaps()
argv[argc++] = AssetManager::TARGET_APK_PATH;
argv[argc++] = AssetManager::IDMAP_DIR;
- // Directories to scan for overlays: if OVERLAY_SUBDIR_PROPERTY is defined,
- // use OVERLAY_SUBDIR/<value of OVERLAY_SUBDIR_PROPERTY>/ if exists, otherwise
+ // Directories to scan for overlays: if OVERLAY_SKU_DIR_PROPERTY is defined,
+ // use OVERLAY_DIR/<value of OVERLAY_SKU_DIR_PROPERTY> if exists, otherwise
// use OVERLAY_DIR if exists.
char subdir[PROP_VALUE_MAX];
- int len = __system_property_get(AssetManager::OVERLAY_SUBDIR_PROPERTY, subdir);
+ int len = __system_property_get(AssetManager::OVERLAY_SKU_DIR_PROPERTY, subdir);
+ String8 overlayPath;
if (len > 0) {
- String8 subdirPath = String8(AssetManager::OVERLAY_SUBDIR) + "/" + subdir;
- if (stat(subdirPath.string(), &st) == 0) {
- argv[argc++] = subdirPath.string();
- }
- } else if (stat(AssetManager::OVERLAY_DIR, &st) == 0) {
- argv[argc++] = AssetManager::OVERLAY_DIR;
+ overlayPath = String8(AssetManager::OVERLAY_DIR) + "/" + subdir;
+ } else {
+ overlayPath = String8(AssetManager::OVERLAY_DIR);
+ }
+ if (stat(overlayPath.string(), &st) == 0) {
+ argv[argc++] = overlayPath.string();
}
// Finally, invoke idmap (if any overlay directory exists)
diff --git a/core/jni/fd_utils-inl.h b/core/jni/fd_utils-inl.h
index 5c17b23adacd..af2706911949 100644
--- a/core/jni/fd_utils-inl.h
+++ b/core/jni/fd_utils-inl.h
@@ -260,16 +260,13 @@ class FileDescriptorInfo {
// Whitelist files needed for Runtime Resource Overlay, like these:
// /system/vendor/overlay/framework-res.apk
- // /system/vendor/overlay-subdir/pg/framework-res.apk
+ // /system/vendor/overlay/PG/android-framework-runtime-resource-overlay.apk
// /data/resource-cache/system@vendor@overlay@framework-res.apk@idmap
- // /data/resource-cache/system@vendor@overlay-subdir@pg@framework-res.apk@idmap
- // See AssetManager.cpp for more details on overlay-subdir.
+ // /data/resource-cache/system@vendor@overlay@PG@framework-res.apk@idmap
static const char* kOverlayDir = "/system/vendor/overlay/";
- static const char* kOverlaySubdir = "/system/vendor/overlay-subdir/";
static const char* kApkSuffix = ".apk";
- if ((android::base::StartsWith(path, kOverlayDir)
- || android::base::StartsWith(path, kOverlaySubdir))
+ if (android::base::StartsWith(path, kOverlayDir)
&& android::base::EndsWith(path, kApkSuffix)
&& path.find("/../") == std::string::npos) {
return true;
diff --git a/include/androidfw/AssetManager.h b/include/androidfw/AssetManager.h
index 0b2280239260..099d82eb564f 100644
--- a/include/androidfw/AssetManager.h
+++ b/include/androidfw/AssetManager.h
@@ -73,12 +73,11 @@ public:
static const char* IDMAP_BIN;
static const char* OVERLAY_DIR;
/*
- * If OVERLAY_SUBDIR_PROPERTY is set, search for runtime resource overlay
- * APKs in OVERLAY_SUBDIR/<value of OVERLAY_SUBDIR_PROPERTY>/ rather than in
+ * If OVERLAY_SKU_DIR_PROPERTY is set, search for runtime resource overlay
+ * APKs in OVERLAY_DIR/<value of OVERLAY_SKU_DIR_PROPERTY> rather than in
* OVERLAY_DIR.
*/
- static const char* OVERLAY_SUBDIR;
- static const char* OVERLAY_SUBDIR_PROPERTY;
+ static const char* OVERLAY_SKU_DIR_PROPERTY;
static const char* TARGET_PACKAGE_NAME;
static const char* TARGET_APK_PATH;
static const char* IDMAP_DIR;
diff --git a/libs/androidfw/AssetManager.cpp b/libs/androidfw/AssetManager.cpp
index 6fb57fafe5c0..daf35921b13d 100644
--- a/libs/androidfw/AssetManager.cpp
+++ b/libs/androidfw/AssetManager.cpp
@@ -76,10 +76,9 @@ static volatile int32_t gCount = 0;
const char* AssetManager::RESOURCES_FILENAME = "resources.arsc";
const char* AssetManager::IDMAP_BIN = "/system/bin/idmap";
const char* AssetManager::OVERLAY_DIR = "/vendor/overlay";
+const char* AssetManager::OVERLAY_SKU_DIR_PROPERTY = "ro.boot.vendor.overlay.sku";
const char* AssetManager::TARGET_PACKAGE_NAME = "android";
const char* AssetManager::TARGET_APK_PATH = "/system/framework/framework-res.apk";
-const char* AssetManager::OVERLAY_SUBDIR = "/system/vendor/overlay-subdir";
-const char* AssetManager::OVERLAY_SUBDIR_PROPERTY = "ro.boot.vendor.overlay.subdir";
const char* AssetManager::IDMAP_DIR = "/data/resource-cache";
namespace {