From 5b4264823b7d164f17db794cc32ab5167ee57e59 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. (cherry picked from commit c8aa8ff300761a2d8b1c4770bf38a4b30fe566cd) Bug: 111895153 Bug: 123778117 Test: manual Exempt-From-Owner-Approval: cherry-pick Merged-In: Id386ebd1be7329ab1ea9657187dfbabb4f1bf73c Change-Id: Id386ebd1be7329ab1ea9657187dfbabb4f1bf73c --- .../java/com/android/server/pm/dex/ArtManagerService.java | 4 +++- 1 file changed, 3 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 a8be07d76b588..08dea7f577a15 100644 --- a/services/core/java/com/android/server/pm/dex/ArtManagerService.java +++ b/services/core/java/com/android/server/pm/dex/ArtManagerService.java @@ -480,8 +480,10 @@ 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()) { + if (appInfo.isPrivilegedApp() || appInfo.isDefaultToDeviceProtectedStorage()) { // Privileged apps prefer to load trusted code so they don't use compiled 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 +