Merge "idmap: include idmap version in check for stale file"

am: 609887a980

Change-Id: I4779cd92041fe33a95c0034c539c48989ca8e6df
This commit is contained in:
Adam Lesinski
2017-09-06 20:36:28 +00:00
committed by android-build-merger
3 changed files with 10 additions and 6 deletions

View File

@@ -104,13 +104,17 @@ fail:
}
}
uint32_t cached_target_crc, cached_overlay_crc;
uint32_t version, cached_target_crc, cached_overlay_crc;
String8 cached_target_path, cached_overlay_path;
if (!ResTable::getIdmapInfo(buf, N, NULL, &cached_target_crc, &cached_overlay_crc,
if (!ResTable::getIdmapInfo(buf, N, &version, &cached_target_crc, &cached_overlay_crc,
&cached_target_path, &cached_overlay_path)) {
return true;
}
if (version != ResTable::IDMAP_CURRENT_VERSION) {
return true;
}
if (cached_target_path != target_apk_path) {
return true;
}

View File

@@ -59,7 +59,6 @@ namespace android {
#endif
#define IDMAP_MAGIC 0x504D4449
#define IDMAP_CURRENT_VERSION 0x00000001
#define APP_PACKAGE_ID 0x7f
#define SYS_PACKAGE_ID 0x01
@@ -246,11 +245,11 @@ static bool assertIdmapHeader(const void* idmap, size_t size) {
}
const uint32_t version = htodl(*(reinterpret_cast<const uint32_t*>(idmap) + 1));
if (version != IDMAP_CURRENT_VERSION) {
if (version != ResTable::IDMAP_CURRENT_VERSION) {
// We are strict about versions because files with this format are
// auto-generated and don't need backwards compatibility.
ALOGW("idmap: version mismatch in header (is 0x%08x, expected 0x%08x)",
version, IDMAP_CURRENT_VERSION);
version, ResTable::IDMAP_CURRENT_VERSION);
return false;
}
return true;
@@ -6855,7 +6854,7 @@ status_t ResTable::createIdmap(const ResTable& overlay,
uint32_t* data = (uint32_t*)*outData;
*data++ = htodl(IDMAP_MAGIC);
*data++ = htodl(IDMAP_CURRENT_VERSION);
*data++ = htodl(ResTable::IDMAP_CURRENT_VERSION);
*data++ = htodl(targetCrc);
*data++ = htodl(overlayCrc);
const char* paths[] = { targetPath, overlayPath };

View File

@@ -1933,6 +1933,7 @@ public:
void** outData, size_t* outSize) const;
static const size_t IDMAP_HEADER_SIZE_BYTES = 4 * sizeof(uint32_t) + 2 * 256;
static const uint32_t IDMAP_CURRENT_VERSION = 0x00000001;
// Retrieve idmap meta-data.
//