diff options
| author | David Brazdil <dbrazdil@google.com> | 2018-01-24 21:36:44 +0000 |
|---|---|---|
| committer | android-build-merger <android-build-merger@google.com> | 2018-01-24 21:36:44 +0000 |
| commit | 6dea42ae0fde52b97fbe13acc70ff9df1a60c0dd (patch) | |
| tree | 5388f197dd0103f01425a907b711b9da837a767e /core/java | |
| parent | f343e33dd50bd03d4c537339988ba99ca1076a47 (diff) | |
| parent | 2a8c24be18dfc3d7cb3f405bee898613b23a212e (diff) | |
Merge "Set DEXOPT_DISABLE_HIDDEN_API_CHECKS for system apps"
am: 2a8c24be18
Change-Id: I51ce5aa51ca72200639244caa018323911cc54ae
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/content/pm/ApplicationInfo.java | 7 | ||||
| -rw-r--r-- | core/java/com/android/internal/os/ZygoteInit.java | 9 |
2 files changed, 15 insertions, 1 deletions
diff --git a/core/java/android/content/pm/ApplicationInfo.java b/core/java/android/content/pm/ApplicationInfo.java index 664bcbca6aba..80fc8e3c2f16 100644 --- a/core/java/android/content/pm/ApplicationInfo.java +++ b/core/java/android/content/pm/ApplicationInfo.java @@ -1458,6 +1458,13 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { /** * @hide */ + public boolean isAllowedToUseHiddenApi() { + return isSystemApp(); + } + + /** + * @hide + */ public boolean isForwardLocked() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_FORWARD_LOCK) != 0; } diff --git a/core/java/com/android/internal/os/ZygoteInit.java b/core/java/com/android/internal/os/ZygoteInit.java index 21f1fb652794..89a70fc0c9a2 100644 --- a/core/java/com/android/internal/os/ZygoteInit.java +++ b/core/java/com/android/internal/os/ZygoteInit.java @@ -98,6 +98,10 @@ public class ZygoteInit { private static final String SOCKET_NAME_ARG = "--socket-name="; + /* Dexopt flag to disable hidden API access checks when dexopting SystemServer. + * Must be kept in sync with com.android.server.pm.Installer. */ + private static final int DEXOPT_DISABLE_HIDDEN_API_CHECKS = 1 << 10; + /** * Used to pre-load resources. */ @@ -565,7 +569,10 @@ public class ZygoteInit { if (dexoptNeeded != DexFile.NO_DEXOPT_NEEDED) { final String packageName = "*"; final String outputPath = null; - final int dexFlags = 0; + // Dexopt with a flag which lifts restrictions on hidden API usage. + // Offending methods would otherwise be re-verified at runtime and + // we want to avoid the performance overhead of that. + final int dexFlags = DEXOPT_DISABLE_HIDDEN_API_CHECKS; final String compilerFilter = systemServerFilter; final String uuid = StorageManager.UUID_PRIVATE_INTERNAL; final String seInfo = null; |
