diff options
| author | 2014-05-06 10:37:30 -0700 | |
|---|---|---|
| committer | 2014-05-06 11:14:17 -0700 | |
| commit | 41ccffd58512f1fa1aeb9ad288cbb667899ff1be (patch) | |
| tree | 43d46ff4a785515b903d652371ba4fb997c88ba3 | |
| parent | 52f84884433f3875f4b1bc5595b8d5a2d6fb3d99 (diff) | |
Automatically create non-/data dalvik-cache directories
Bug: 14471634
Change-Id: Ie8ae4537102352dc1b270e9b65e681adf3631a80
| -rw-r--r-- | runtime/utils.cc | 6 | ||||
| -rwxr-xr-x | test/etc/push-and-run-test-jar | 2 |
2 files changed, 5 insertions, 3 deletions
diff --git a/runtime/utils.cc b/runtime/utils.cc index ee2cca4b64..c332bdf815 100644 --- a/runtime/utils.cc +++ b/runtime/utils.cc @@ -1169,10 +1169,12 @@ const char* GetAndroidData() { std::string GetDalvikCacheOrDie(const char* subdir, const bool create_if_absent) { CHECK(subdir != nullptr); - const std::string dalvik_cache_root(StringPrintf("%s/dalvik-cache/", GetAndroidData())); + const char* android_data = GetAndroidData(); + const std::string dalvik_cache_root(StringPrintf("%s/dalvik-cache/", android_data)); const std::string dalvik_cache = dalvik_cache_root + subdir; if (create_if_absent && !OS::DirectoryExists(dalvik_cache.c_str())) { - if (StartsWith(dalvik_cache_root, "/tmp/")) { + // Don't create the system's /data/dalvik-cache/... because it needs special permissions. + if (strcmp(android_data, "/data") != 0) { int result = mkdir(dalvik_cache_root.c_str(), 0700); if (result != 0 && errno != EEXIST) { PLOG(FATAL) << "Failed to create dalvik-cache directory " << dalvik_cache_root; diff --git a/test/etc/push-and-run-test-jar b/test/etc/push-and-run-test-jar index e0d2f1decf..6cf79985a9 100755 --- a/test/etc/push-and-run-test-jar +++ b/test/etc/push-and-run-test-jar @@ -150,7 +150,7 @@ fi JNI_OPTS="-Xjnigreflimit:512 -Xcheck:jni" -cmdline="cd $DEX_LOCATION && mkdir -p dalvik-cache/{arm,arm64,mips,x86,x86_64} && export ANDROID_DATA=$DEX_LOCATION && export DEX_LOCATION=$DEX_LOCATION && \ +cmdline="cd $DEX_LOCATION && export ANDROID_DATA=$DEX_LOCATION && export DEX_LOCATION=$DEX_LOCATION && \ $INVOKE_WITH $gdb /system/bin/dalvikvm$TARGET_SUFFIX $FLAGS $gdbargs -XXlib:$LIB $ZYGOTE $JNI_OPTS $INT_OPTS $DEBUGGER_OPTS $BOOT_OPT -cp $DEX_LOCATION/$TEST_NAME.jar Main" if [ "$DEV_MODE" = "y" ]; then echo $cmdline "$@" |