Merge "Skip idmap1 generation if target defines overlayable" into qt-dev
This commit is contained in:
@@ -3510,6 +3510,7 @@ struct ResTable::Package
|
||||
ResStringPool keyStrings;
|
||||
|
||||
size_t typeIdOffset;
|
||||
bool definesOverlayable = false;
|
||||
};
|
||||
|
||||
// A group of objects describing a particular resource package.
|
||||
@@ -6861,6 +6862,10 @@ status_t ResTable::parsePackage(const ResTable_package* const pkg,
|
||||
ALOGW("Found multiple library tables, ignoring...");
|
||||
}
|
||||
} else {
|
||||
if (ctype == RES_TABLE_OVERLAYABLE_TYPE) {
|
||||
package->definesOverlayable = true;
|
||||
}
|
||||
|
||||
status_t err = validate_chunk(chunk, sizeof(ResChunk_header),
|
||||
endPos, "ResTable_package:unknown");
|
||||
if (err != NO_ERROR) {
|
||||
@@ -7138,6 +7143,11 @@ status_t ResTable::createIdmap(const ResTable& targetResTable,
|
||||
return UNKNOWN_ERROR;
|
||||
}
|
||||
|
||||
// Idmap is not aware of overlayable, exit since policy checks can't be done
|
||||
if (targetResTable.mPackageGroups[0]->packages[0]->definesOverlayable) {
|
||||
return UNKNOWN_ERROR;
|
||||
}
|
||||
|
||||
const ResTable_package* targetPackageStruct =
|
||||
targetResTable.mPackageGroups[0]->packages[0]->package;
|
||||
const size_t tmpNameSize = arraysize(targetPackageStruct->name);
|
||||
|
||||
Reference in New Issue
Block a user