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

Commit b57d3d22 authored by Adam Lesinski's avatar Adam Lesinski Committed by Android (Google) Code Review
Browse files

Merge "Revert "Newly create idmap only when it is outdated"" into oc-dev

parents 2c201405 b6182b30
Loading
Loading
Loading
Loading
+2 −23
Original line number Original line Diff line number Diff line
@@ -1997,8 +1997,6 @@ binder::Status InstalldNativeService::idmap(const std::string& targetApkPath,


    int idmap_fd = -1;
    int idmap_fd = -1;
    char idmap_path[PATH_MAX];
    char idmap_path[PATH_MAX];
    struct stat target_apk_stat, overlay_apk_stat, idmap_stat;
    bool outdated = false;


    if (flatten_path(IDMAP_PREFIX, IDMAP_SUFFIX, overlay_apk,
    if (flatten_path(IDMAP_PREFIX, IDMAP_SUFFIX, overlay_apk,
                idmap_path, sizeof(idmap_path)) == -1) {
                idmap_path, sizeof(idmap_path)) == -1) {
@@ -2006,22 +2004,8 @@ binder::Status InstalldNativeService::idmap(const std::string& targetApkPath,
        goto fail;
        goto fail;
    }
    }


    if (stat(idmap_path, &idmap_stat) < 0 ||
            stat(target_apk, &target_apk_stat) < 0 ||
            stat(overlay_apk, &overlay_apk_stat) < 0) {
        outdated = true;
    } else if (idmap_stat.st_mtime < target_apk_stat.st_mtime ||
            idmap_stat.st_mtime < overlay_apk_stat.st_mtime) {
        outdated = true;
    }

    if (outdated) {
    unlink(idmap_path);
    unlink(idmap_path);
    idmap_fd = open(idmap_path, O_RDWR | O_CREAT | O_EXCL, 0644);
    idmap_fd = open(idmap_path, O_RDWR | O_CREAT | O_EXCL, 0644);
    } else {
        idmap_fd = open(idmap_path, O_RDWR);
    }

    if (idmap_fd < 0) {
    if (idmap_fd < 0) {
        ALOGE("idmap cannot open '%s' for output: %s\n", idmap_path, strerror(errno));
        ALOGE("idmap cannot open '%s' for output: %s\n", idmap_path, strerror(errno));
        goto fail;
        goto fail;
@@ -2035,11 +2019,6 @@ binder::Status InstalldNativeService::idmap(const std::string& targetApkPath,
        goto fail;
        goto fail;
    }
    }


    if (!outdated) {
        close(idmap_fd);
        return ok();
    }

    pid_t pid;
    pid_t pid;
    pid = fork();
    pid = fork();
    if (pid == 0) {
    if (pid == 0) {