Loading core/jni/android_util_AssetManager.cpp +5 −1 Original line number Diff line number Diff line Loading @@ -178,7 +178,11 @@ static void verifySystemIdmaps() // Directories to scan for overlays: if OVERLAY_THEME_DIR_PROPERTY is defined, // use OVERLAY_DIR/<value of OVERLAY_THEME_DIR_PROPERTY> in addition to OVERLAY_DIR. char subdir[PROP_VALUE_MAX]; int len = __system_property_get(AssetManager::OVERLAY_THEME_DIR_PROPERTY, subdir); int len = __system_property_get(AssetManager::OVERLAY_THEME_DIR_PERSIST_PROPERTY, subdir); if (len == 0) { len = __system_property_get(AssetManager::OVERLAY_THEME_DIR_PROPERTY, subdir); } if (len > 0) { String8 overlayPath = String8(AssetManager::OVERLAY_DIR) + "/" + subdir; if (stat(overlayPath.string(), &st) == 0) { Loading core/jni/fd_utils-inl.h +3 −3 Original line number Diff line number Diff line Loading @@ -260,11 +260,11 @@ class FileDescriptorInfo { } // Whitelist files needed for Runtime Resource Overlay, like these: // /system/vendor/overlay/framework-res.apk // /system/vendor/overlay/PG/android-framework-runtime-resource-overlay.apk // /vendor/overlay/framework-res.apk // /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@PG@framework-res.apk@idmap static const char* kOverlayDir = "/system/vendor/overlay/"; static const char* kOverlayDir = "/vendor/overlay/"; static const char* kApkSuffix = ".apk"; if (android::base::StartsWith(path, kOverlayDir) Loading libs/androidfw/AssetManager.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -74,6 +74,7 @@ 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_THEME_DIR_PROPERTY = "ro.boot.vendor.overlay.theme"; const char* AssetManager::OVERLAY_THEME_DIR_PERSIST_PROPERTY = "persist.vendor.overlay.theme"; const char* AssetManager::TARGET_PACKAGE_NAME = "android"; const char* AssetManager::TARGET_APK_PATH = "/system/framework/framework-res.apk"; const char* AssetManager::IDMAP_DIR = "/data/resource-cache"; Loading libs/androidfw/include/androidfw/AssetManager.h +5 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,11 @@ public: * OVERLAY_DIR. */ static const char* OVERLAY_THEME_DIR_PROPERTY; /** * If OVERLAY_THEME_DIR_PERSIST_PROPERTY, use it to override * OVERLAY_THEME_DIR_PROPERTY. */ static const char* OVERLAY_THEME_DIR_PERSIST_PROPERTY; static const char* TARGET_PACKAGE_NAME; static const char* TARGET_APK_PATH; static const char* IDMAP_DIR; Loading services/core/java/com/android/server/pm/PackageManagerService.java +10 −1 Original line number Diff line number Diff line Loading @@ -471,6 +471,12 @@ public class PackageManagerService extends IPackageManager.Stub { * VENDOR_OVERLAY_DIR. */ private static final String VENDOR_OVERLAY_THEME_PROPERTY = "ro.boot.vendor.overlay.theme"; /** * Same as VENDOR_OVERLAY_THEME_PROPERTY, except persistent. If set will override whatever * is in VENDOR_OVERLAY_THEME_PROPERTY. */ private static final String VENDOR_OVERLAY_THEME_PERSIST_PROPERTY = "persist.vendor.overlay.theme"; private static int DEFAULT_EPHEMERAL_HASH_PREFIX_MASK = 0xFFFFF000; private static int DEFAULT_EPHEMERAL_HASH_PREFIX_COUNT = 5; Loading Loading @@ -2289,7 +2295,10 @@ public class PackageManagerService extends IPackageManager.Stub { // Collect vendor overlay packages. (Do this before scanning any apps.) // For security and version matching reason, only consider // overlay packages if they reside in the right directory. String overlayThemeDir = SystemProperties.get(VENDOR_OVERLAY_THEME_PROPERTY); String overlayThemeDir = SystemProperties.get(VENDOR_OVERLAY_THEME_PERSIST_PROPERTY); if (overlayThemeDir.isEmpty()) { overlayThemeDir = SystemProperties.get(VENDOR_OVERLAY_THEME_PROPERTY); } if (!overlayThemeDir.isEmpty()) { scanDirTracedLI(new File(VENDOR_OVERLAY_DIR, overlayThemeDir), mDefParseFlags | PackageParser.PARSE_IS_SYSTEM Loading Loading
core/jni/android_util_AssetManager.cpp +5 −1 Original line number Diff line number Diff line Loading @@ -178,7 +178,11 @@ static void verifySystemIdmaps() // Directories to scan for overlays: if OVERLAY_THEME_DIR_PROPERTY is defined, // use OVERLAY_DIR/<value of OVERLAY_THEME_DIR_PROPERTY> in addition to OVERLAY_DIR. char subdir[PROP_VALUE_MAX]; int len = __system_property_get(AssetManager::OVERLAY_THEME_DIR_PROPERTY, subdir); int len = __system_property_get(AssetManager::OVERLAY_THEME_DIR_PERSIST_PROPERTY, subdir); if (len == 0) { len = __system_property_get(AssetManager::OVERLAY_THEME_DIR_PROPERTY, subdir); } if (len > 0) { String8 overlayPath = String8(AssetManager::OVERLAY_DIR) + "/" + subdir; if (stat(overlayPath.string(), &st) == 0) { Loading
core/jni/fd_utils-inl.h +3 −3 Original line number Diff line number Diff line Loading @@ -260,11 +260,11 @@ class FileDescriptorInfo { } // Whitelist files needed for Runtime Resource Overlay, like these: // /system/vendor/overlay/framework-res.apk // /system/vendor/overlay/PG/android-framework-runtime-resource-overlay.apk // /vendor/overlay/framework-res.apk // /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@PG@framework-res.apk@idmap static const char* kOverlayDir = "/system/vendor/overlay/"; static const char* kOverlayDir = "/vendor/overlay/"; static const char* kApkSuffix = ".apk"; if (android::base::StartsWith(path, kOverlayDir) Loading
libs/androidfw/AssetManager.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -74,6 +74,7 @@ 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_THEME_DIR_PROPERTY = "ro.boot.vendor.overlay.theme"; const char* AssetManager::OVERLAY_THEME_DIR_PERSIST_PROPERTY = "persist.vendor.overlay.theme"; const char* AssetManager::TARGET_PACKAGE_NAME = "android"; const char* AssetManager::TARGET_APK_PATH = "/system/framework/framework-res.apk"; const char* AssetManager::IDMAP_DIR = "/data/resource-cache"; Loading
libs/androidfw/include/androidfw/AssetManager.h +5 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,11 @@ public: * OVERLAY_DIR. */ static const char* OVERLAY_THEME_DIR_PROPERTY; /** * If OVERLAY_THEME_DIR_PERSIST_PROPERTY, use it to override * OVERLAY_THEME_DIR_PROPERTY. */ static const char* OVERLAY_THEME_DIR_PERSIST_PROPERTY; static const char* TARGET_PACKAGE_NAME; static const char* TARGET_APK_PATH; static const char* IDMAP_DIR; Loading
services/core/java/com/android/server/pm/PackageManagerService.java +10 −1 Original line number Diff line number Diff line Loading @@ -471,6 +471,12 @@ public class PackageManagerService extends IPackageManager.Stub { * VENDOR_OVERLAY_DIR. */ private static final String VENDOR_OVERLAY_THEME_PROPERTY = "ro.boot.vendor.overlay.theme"; /** * Same as VENDOR_OVERLAY_THEME_PROPERTY, except persistent. If set will override whatever * is in VENDOR_OVERLAY_THEME_PROPERTY. */ private static final String VENDOR_OVERLAY_THEME_PERSIST_PROPERTY = "persist.vendor.overlay.theme"; private static int DEFAULT_EPHEMERAL_HASH_PREFIX_MASK = 0xFFFFF000; private static int DEFAULT_EPHEMERAL_HASH_PREFIX_COUNT = 5; Loading Loading @@ -2289,7 +2295,10 @@ public class PackageManagerService extends IPackageManager.Stub { // Collect vendor overlay packages. (Do this before scanning any apps.) // For security and version matching reason, only consider // overlay packages if they reside in the right directory. String overlayThemeDir = SystemProperties.get(VENDOR_OVERLAY_THEME_PROPERTY); String overlayThemeDir = SystemProperties.get(VENDOR_OVERLAY_THEME_PERSIST_PROPERTY); if (overlayThemeDir.isEmpty()) { overlayThemeDir = SystemProperties.get(VENDOR_OVERLAY_THEME_PROPERTY); } if (!overlayThemeDir.isEmpty()) { scanDirTracedLI(new File(VENDOR_OVERLAY_DIR, overlayThemeDir), mDefParseFlags | PackageParser.PARSE_IS_SYSTEM Loading