Disable view compiler for protected storage

Protected storage has selinux restrictions that currently prevent
views being generated there.

(cherry picked from commit c8aa8ff300)

Bug: 111895153
Bug: 123778117
Test: manual
Exempt-From-Owner-Approval: cherry-pick

Merged-In: Id386ebd1be7329ab1ea9657187dfbabb4f1bf73c
Change-Id: Id386ebd1be7329ab1ea9657187dfbabb4f1bf73c
This commit is contained in:
Mathieu Chartier
2019-02-06 12:54:23 -08:00
parent 6bb71b0322
commit 5b4264823b

View File

@@ -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 +