From c8aa8ff300761a2d8b1c4770bf38a4b30fe566cd Mon Sep 17 00:00:00 2001 From: Mathieu Chartier Date: Wed, 6 Feb 2019 12:54:23 -0800 Subject: [PATCH] Disable view compiler for protected storage Protected storage has selinux restrictions that currently prevent views being generated there. Bug: 111895153 Bug: 123778117 Test: manual Change-Id: Id386ebd1be7329ab1ea9657187dfbabb4f1bf73c --- .../java/com/android/server/pm/dex/ArtManagerService.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/pm/dex/ArtManagerService.java b/services/core/java/com/android/server/pm/dex/ArtManagerService.java index 23705db884f55..9948a3ad47da3 100644 --- a/services/core/java/com/android/server/pm/dex/ArtManagerService.java +++ b/services/core/java/com/android/server/pm/dex/ArtManagerService.java @@ -480,10 +480,13 @@ public class ArtManagerService extends android.content.pm.dex.IArtManager.Stub { final String apkPath = pkg.baseCodePath; final ApplicationInfo appInfo = pkg.applicationInfo; final String outDexFile = appInfo.dataDir + "/code_cache/compiled_view.dex"; - if (appInfo.isPrivilegedApp() || appInfo.isEmbeddedDexUsed()) { + if (appInfo.isPrivilegedApp() || appInfo.isEmbeddedDexUsed() + || appInfo.isDefaultToDeviceProtectedStorage()) { // Privileged apps prefer to load trusted code so they don't use compiled views. // If the app is not privileged but prefers code integrity, also avoid compiling // views. + // Also disable the view compiler for protected storage apps since there are + // selinux permissions required for writing to user_de. return false; } Log.i("PackageManager", "Compiling layouts in " + packageName + " (" + apkPath +