Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d7f3a7b0 authored by Adam Lesinski's avatar Adam Lesinski Committed by android-build-merger
Browse files

Merge "idmap: include idmap version in check for stale file" am: 609887a9

am: a1599208

Change-Id: Ib8510f7a156ef71926b1e3f339aa4426981d4745
parents aed34723 a1599208
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -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;
        }
+3 −4
Original line number Diff line number Diff line
@@ -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 };
+1 −0
Original line number Diff line number Diff line
@@ -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.
    //