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

Commit 25b2ed03 authored by Andreas Gampe's avatar Andreas Gampe Committed by Gerrit Code Review
Browse files

Merge "Installd: Add a swap override flag"

parents 5e8dcf1c 5041a4e6
Loading
Loading
Loading
Loading
+36 −7
Original line number Diff line number Diff line
@@ -933,20 +933,49 @@ static int wait_child(pid_t pid)
}

/*
 * Whether dexopt should use a swap file when compiling an APK. If kAlwaysProvideSwapFile, do this
 * on all devices (dex2oat will make a more informed decision itself, anyways). Otherwise, only do
 * this on a low-mem device.
 * Whether dexopt should use a swap file when compiling an APK.
 *
 * If kAlwaysProvideSwapFile, do this on all devices (dex2oat will make a more informed decision
 * itself, anyways).
 *
 * Otherwise, read "dalvik.vm.dex2oat-swap". If the property exists, return whether it is "true".
 *
 * Otherwise, return true if this is a low-mem device.
 *
 * Otherwise, return default value.
 */
static bool kAlwaysProvideSwapFile = true;
static bool kAlwaysProvideSwapFile = false;
static bool kDefaultProvideSwapFile = true;

static bool ShouldUseSwapFileForDexopt() {
    if (kAlwaysProvideSwapFile) {
        return true;
    }

    char low_mem_buf[PROPERTY_VALUE_MAX];
    property_get("ro.config.low_ram", low_mem_buf, "");
    return (strcmp(low_mem_buf, "true") == 0);
    // Check the "override" property. If it exists, return value == "true".
    char dex2oat_prop_buf[PROPERTY_VALUE_MAX];
    if (property_get("dalvik.vm.dex2oat-swap", dex2oat_prop_buf, "") > 0) {
        if (strcmp(dex2oat_prop_buf, "true") == 0) {
            return true;
        } else {
            return false;
        }
    }

    // Shortcut for default value. This is an implementation optimization for the process sketched
    // above. If the default value is true, we can avoid to check whether this is a low-mem device,
    // as low-mem is never returning false. The compiler will optimize this away if it can.
    if (kDefaultProvideSwapFile) {
        return true;
    }

    bool is_low_mem = check_boolean_property("ro.config.low_ram");
    if (is_low_mem) {
        return true;
    }

    // Default value must be false here.
    return kDefaultProvideSwapFile;
}

/*