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

Commit e2319e46 authored by ctso's avatar ctso Committed by Steve Kondik
Browse files

DexOpt anything on /system in /cache/dalvik-cache

Change-Id: Id41d37047f2fcb90d513ac091dfcb85492473689

Allow property to disable dexopt on /cache

Change-Id: Ic74707c4bead387bbf82e4c6d5037efc2d2ebeaf
parent ddd25e44
Loading
Loading
Loading
Loading
+12 −3
Original line number Diff line number Diff line
@@ -475,6 +475,7 @@ int create_cache_path(char path[PKG_PATH_MAX], const char *src)
    char *tmp;
    int srclen;
    int dstlen;
    char dexopt_data_only[PROPERTY_VALUE_MAX];

    srclen = strlen(src);

@@ -487,7 +488,15 @@ int create_cache_path(char path[PKG_PATH_MAX], const char *src)
        return -1;
    }

    dstlen = srclen + strlen(DALVIK_CACHE_PREFIX) + 
    const char *cache_path = DALVIK_CACHE_PREFIX;
    if (!strncmp(src, "/system", 7)) {
        property_get("dalvik.vm.dexopt-data-only", dexopt_data_only, "");
        if (strcmp(dexopt_data_only, "1") != 0) {
            cache_path = DALVIK_SYSTEM_CACHE_PREFIX;
        }
    }

    dstlen = srclen + strlen(cache_path) + 
        strlen(DALVIK_CACHE_POSTFIX) + 1;
    
    if (dstlen > PKG_PATH_MAX) {
@@ -495,11 +504,11 @@ int create_cache_path(char path[PKG_PATH_MAX], const char *src)
    }

    sprintf(path,"%s%s%s",
            DALVIK_CACHE_PREFIX,
            cache_path,
            src + 1, /* skip the leading / */
            DALVIK_CACHE_POSTFIX);
    
    for(tmp = path + strlen(DALVIK_CACHE_PREFIX); *tmp; tmp++) {
    for(tmp = path + strlen(cache_path); *tmp; tmp++) {
        if (*tmp == '/') {
            *tmp = '@';
        }
+1 −0
Original line number Diff line number Diff line
@@ -73,6 +73,7 @@
#define SDCARD_DIR_PREFIX  getenv("ASEC_MOUNTPOINT")

#define DALVIK_CACHE_PREFIX   "/data/dalvik-cache/"
#define DALVIK_SYSTEM_CACHE_PREFIX "/cache/dalvik-cache/"
#define DALVIK_CACHE_POSTFIX  "/classes.dex"

#define UPDATE_COMMANDS_DIR_PREFIX  "/system/etc/updatecmds/"