summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Andreas Gampe <agampe@google.com> 2015-01-07 22:16:11 +0000
committer Android Git Automerger <android-git-automerger@android.com> 2015-01-07 22:16:11 +0000
commit555ea653bae019379eb8d1aa70dfcb86789c19d3 (patch)
tree3f8531d275210be44f8e98d3562b8de74cf4352a
parent516fa49183b8fbd010e619dea4d041b24d784503 (diff)
parentec64c0b6e639b743398fb543218100fdaf9a7f69 (diff)
am ec64c0b6: am 022b1ba1: Merge "Core/jni: Disallow relocation for decryption"
* commit 'ec64c0b6e639b743398fb543218100fdaf9a7f69': Core/jni: Disallow relocation for decryption
-rw-r--r--core/jni/AndroidRuntime.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp
index 149d7bcb5f0f..88fa8f77e8eb 100644
--- a/core/jni/AndroidRuntime.cpp
+++ b/core/jni/AndroidRuntime.cpp
@@ -696,6 +696,14 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv)
if (skip_compilation) {
addOption("-Xcompiler-option");
addOption("--compiler-filter=verify-none");
+
+ // We skip compilation when a minimal runtime is brought up for decryption. In that case
+ // /data is temporarily backed by a tmpfs, which is usually small.
+ // If the system image contains prebuilts, they will be relocated into the tmpfs. In this
+ // specific situation it is acceptable to *not* relocate and run out of the prebuilts
+ // directly instead.
+ addOption("--runtime-arg");
+ addOption("-Xnorelocate");
} else {
parseCompilerOption("dalvik.vm.dex2oat-filter", dex2oatCompilerFilterBuf,
"--compiler-filter=", "-Xcompiler-option");