From bff33b8c31b42dff8d4d7164e68858ef16cabc86 Mon Sep 17 00:00:00 2001 From: Artur Satayev Date: Wed, 27 Jan 2021 16:00:26 +0000 Subject: [PATCH] Do not propogate test api access flags to Zygote. The flow has been replaced by @ChangeId ALLOW_TEST_API_ACCESS, making old approach obsolete. Bug: 147113465 Test: atest CameraEvictionTest#testBasicCamera2ActivityEviction Merged-In: I0bf109fa78212d6d71ba85d25f80e27e8e7cd900 Merged-In: I0e58b6924744590afaadec6a6230aa9d552b2f6f Change-Id: I9cf8f80abb0165d4aefbf943bade57f5e031904b Exempt-From-Owner-Approval: cp Bug: 178391911,147113465 (cherry picked from commit a27cd30535f92813e4da81be25dfec4541cc9d50) --- core/java/com/android/internal/os/Zygote.java | 9 +-------- .../server/am/ActivityManagerService.java | 20 +++++-------------- .../com/android/server/am/ProcessList.java | 11 +++------- 3 files changed, 9 insertions(+), 31 deletions(-) diff --git a/core/java/com/android/internal/os/Zygote.java b/core/java/com/android/internal/os/Zygote.java index 0381a75d722b0..527d10f0d00aa 100644 --- a/core/java/com/android/internal/os/Zygote.java +++ b/core/java/com/android/internal/os/Zygote.java @@ -103,7 +103,7 @@ public final class Zygote { */ public static final int PROFILE_FROM_SHELL = 1 << 15; - /* + /** * Enable using the ART app image startup cache */ public static final int USE_APP_IMAGE_STARTUP_CACHE = 1 << 16; @@ -116,13 +116,6 @@ public final class Zygote { */ public static final int DEBUG_IGNORE_APP_SIGNAL_HANDLER = 1 << 17; - /** - * Disable runtime access to {@link android.annotation.TestApi} annotated members. - * - *

This only takes effect if Hidden API access restrictions are enabled as well. - */ - public static final int DISABLE_TEST_API_ENFORCEMENT_POLICY = 1 << 18; - public static final int MEMORY_TAG_LEVEL_MASK = (1 << 19) | (1 << 20); /** * Enable pointer tagging in this process. diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 686adbb7b7936..5c78e6f463760 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -8211,20 +8211,11 @@ public class ActivityManagerService extends IActivityManager.Stub false /* mountExtStorageFull */, abiOverride, zygotePolicyFlags); } + // TODO: Move to ProcessList? @GuardedBy("this") final ProcessRecord addAppLocked(ApplicationInfo info, String customProcess, boolean isolated, boolean disableHiddenApiChecks, boolean mountExtStorageFull, String abiOverride, int zygotePolicyFlags) { - return addAppLocked(info, customProcess, isolated, disableHiddenApiChecks, - false /* disableTestApiChecks */, mountExtStorageFull, abiOverride, - zygotePolicyFlags); - } - - // TODO: Move to ProcessList? - @GuardedBy("this") - final ProcessRecord addAppLocked(ApplicationInfo info, String customProcess, boolean isolated, - boolean disableHiddenApiChecks, boolean disableTestApiChecks, - boolean mountExtStorageFull, String abiOverride, int zygotePolicyFlags) { ProcessRecord app; if (!isolated) { app = getProcessRecordLocked(customProcess != null ? customProcess : info.processName, @@ -8259,8 +8250,7 @@ public class ActivityManagerService extends IActivityManager.Stub mPersistentStartingProcesses.add(app); mProcessList.startProcessLocked(app, new HostingRecord("added application", customProcess != null ? customProcess : app.processName), - zygotePolicyFlags, disableHiddenApiChecks, disableTestApiChecks, - mountExtStorageFull, abiOverride); + zygotePolicyFlags, disableHiddenApiChecks, mountExtStorageFull, abiOverride); } return app; @@ -16943,11 +16933,12 @@ public class ActivityManagerService extends IActivityManager.Stub || (flags & INSTR_FLAG_DISABLE_HIDDEN_API_CHECKS) != 0; boolean disableTestApiChecks = disableHiddenApiChecks || (flags & INSTR_FLAG_DISABLE_TEST_API_CHECKS) != 0; + if (disableHiddenApiChecks || disableTestApiChecks) { enforceCallingPermission(android.Manifest.permission.DISABLE_HIDDEN_API_CHECKS, "disable hidden API checks"); - enableTestApiAccess(ii.packageName); + enableTestApiAccess(ai.packageName); } // TODO(b/158750470): remove @@ -16965,8 +16956,7 @@ public class ActivityManagerService extends IActivityManager.Stub } ProcessRecord app = addAppLocked(ai, defProcess, false, disableHiddenApiChecks, - disableTestApiChecks, mountExtStorageFull, abiOverride, - ZYGOTE_POLICY_FLAG_EMPTY); + mountExtStorageFull, abiOverride, ZYGOTE_POLICY_FLAG_EMPTY); app.setActiveInstrumentation(activeInstr); activeInstr.mFinished = false; activeInstr.mSourceUid = callingUid; diff --git a/services/core/java/com/android/server/am/ProcessList.java b/services/core/java/com/android/server/am/ProcessList.java index b6e632d42d8ec..e2c020af1b02d 100644 --- a/services/core/java/com/android/server/am/ProcessList.java +++ b/services/core/java/com/android/server/am/ProcessList.java @@ -1769,8 +1769,8 @@ public final class ProcessList { */ @GuardedBy("mService") boolean startProcessLocked(ProcessRecord app, HostingRecord hostingRecord, - int zygotePolicyFlags, boolean disableHiddenApiChecks, boolean disableTestApiChecks, - boolean mountExtStorageFull, String abiOverride) { + int zygotePolicyFlags, boolean disableHiddenApiChecks, boolean mountExtStorageFull, + String abiOverride) { if (app.pendingStart) { return true; } @@ -1914,10 +1914,6 @@ public final class ProcessList { throw new IllegalStateException("Invalid API policy: " + policy); } runtimeFlags |= policyBits; - - if (disableTestApiChecks) { - runtimeFlags |= Zygote.DISABLE_TEST_API_ENFORCEMENT_POLICY; - } } String useAppImageCache = SystemProperties.get( @@ -2360,8 +2356,7 @@ public final class ProcessList { final boolean startProcessLocked(ProcessRecord app, HostingRecord hostingRecord, int zygotePolicyFlags, String abiOverride) { return startProcessLocked(app, hostingRecord, zygotePolicyFlags, - false /* disableHiddenApiChecks */, false /* disableTestApiChecks */, - false /* mountExtStorageFull */, abiOverride); + false /* disableHiddenApiChecks */, false /* mountExtStorageFull */, abiOverride); } @GuardedBy("mService")