summaryrefslogtreecommitdiffstats
path: root/cmds
diff options
context:
space:
mode:
authorBrian Carlstrom <bdc@google.com>2014-07-30 14:37:11 -0700
committerBrian Carlstrom <bdc@google.com>2014-08-04 11:25:45 -0700
commit538998f204d1e542e235de9e7ce18ef4dc68c9cc (patch)
tree6f4184408b07e6a9787ffbf3c35f05c67f2f57db /cmds
parentcf51ba1360ee13459830a0502b0d454d0145544f (diff)
downloadframeworks_native-538998f204d1e542e235de9e7ce18ef4dc68c9cc.zip
frameworks_native-538998f204d1e542e235de9e7ce18ef4dc68c9cc.tar.gz
frameworks_native-538998f204d1e542e235de9e7ce18ef4dc68c9cc.tar.bz2
Disable compilation based on vold.decrypt. [frameworks/native]
Bug: 15165413 Change-Id: Ibc39ab82e02e42345c6e2667ac45884f2e0cf7a4
Diffstat (limited to 'cmds')
-rw-r--r--cmds/installd/commands.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/cmds/installd/commands.c b/cmds/installd/commands.c
index 09321c2..a7cf0ac 100644
--- a/cmds/installd/commands.c
+++ b/cmds/installd/commands.c
@@ -642,6 +642,13 @@ static void run_dex2oat(int zip_fd, int oat_fd, const char* input_file_name,
bool have_dex2oat_flags = property_get("dalvik.vm.dex2oat-flags", dex2oat_flags, NULL) > 0;
ALOGV("dalvik.vm.dex2oat-flags=%s\n", dex2oat_flags);
+ // If we booting without the real /data, don't spend time compiling.
+ char vold_decrypt[PROPERTY_VALUE_MAX];
+ bool have_vold_decrypt = property_get("vold.decrypt", vold_decrypt, "") > 0;
+ bool skip_compilation = (have_vold_decrypt &&
+ (strcmp(vold_decrypt, "trigger_restart_min_framework") == 0 ||
+ (strcmp(vold_decrypt, "1") == 0)));
+
static const char* DEX2OAT_BIN = "/system/bin/dex2oat";
static const char* RUNTIME_ARG = "--runtime-arg";
@@ -696,7 +703,10 @@ static void run_dex2oat(int zip_fd, int oat_fd, const char* input_file_name,
if (have_dex2oat_Xmx_flag) {
sprintf(dex2oat_Xmx_arg, "-Xmx%s", dex2oat_Xmx_flag);
}
- if (have_dex2oat_compiler_filter_flag) {
+ if (skip_compilation) {
+ strcpy(dex2oat_compiler_filter_arg, "--compiler-filter=interpret-only");
+ have_dex2oat_compiler_filter_flag = true;
+ } else if (have_dex2oat_compiler_filter_flag) {
sprintf(dex2oat_compiler_filter_arg, "--compiler-filter=%s", dex2oat_compiler_filter_flag);
}