Search for RRO both in SKU subdir and in vendor/overlay
Currently, if the "ro.boot.vendor.overlay.subdir" property is set, we only search in the subdir. It seems more powerful to search both in there and in the standard /vendor/overlay directory. Also, RRO packages have the "priority" attribute in the <overlay> attribute in AndroidManifest.xml which serves for disambiguation. Bug: 32202741 Change-Id: I7acff1b7f0e153830924047349f003295648a53b
This commit is contained in:
@@ -187,18 +187,17 @@ static void verifySystemIdmaps()
|
||||
argv[argc++] = AssetManager::IDMAP_DIR;
|
||||
|
||||
// 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.
|
||||
// use OVERLAY_DIR/<value of OVERLAY_SKU_DIR_PROPERTY> in addition to OVERLAY_DIR.
|
||||
char subdir[PROP_VALUE_MAX];
|
||||
int len = __system_property_get(AssetManager::OVERLAY_SKU_DIR_PROPERTY, subdir);
|
||||
String8 overlayPath;
|
||||
if (len > 0) {
|
||||
overlayPath = String8(AssetManager::OVERLAY_DIR) + "/" + subdir;
|
||||
} else {
|
||||
overlayPath = String8(AssetManager::OVERLAY_DIR);
|
||||
String8 overlayPath = String8(AssetManager::OVERLAY_DIR) + "/" + subdir;
|
||||
if (stat(overlayPath.string(), &st) == 0) {
|
||||
argv[argc++] = overlayPath.string();
|
||||
}
|
||||
}
|
||||
if (stat(overlayPath.string(), &st) == 0) {
|
||||
argv[argc++] = overlayPath.string();
|
||||
if (stat(AssetManager::OVERLAY_DIR, &st) == 0) {
|
||||
argv[argc++] = AssetManager::OVERLAY_DIR;
|
||||
}
|
||||
|
||||
// Finally, invoke idmap (if any overlay directory exists)
|
||||
|
||||
@@ -74,7 +74,7 @@ public:
|
||||
static const char* OVERLAY_DIR;
|
||||
/*
|
||||
* 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
|
||||
* APKs in OVERLAY_DIR/<value of OVERLAY_SKU_DIR_PROPERTY> in addition to
|
||||
* OVERLAY_DIR.
|
||||
*/
|
||||
static const char* OVERLAY_SKU_DIR_PROPERTY;
|
||||
|
||||
Reference in New Issue
Block a user