From 6c5f36d3d9d82a390048eb386e0eca46cd9e1e2e Mon Sep 17 00:00:00 2001 From: David Brazdil Date: Mon, 19 Mar 2018 11:49:44 +0000 Subject: [PATCH] Temporarily whitelist platform test packages for hidden API Platform unit tests need to be exempt from hidden API checks but the APCT infrastructure ignores the corresponding flag in AndroidTest.xml. Whitelist these packages in ActivityManagerService until the problem is resolved to allow for hidden API blacklist to be merged. Bug: 64382372 Bug: 74963051 Test: make Change-Id: I9480b244dd47bf9c28f41057bdb31717274dd511 --- .../server/am/ActivityManagerService.java | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 5f605c4b5c802..c8b05ff3ae459 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -21764,6 +21764,54 @@ public class ActivityManagerService extends IActivityManager.Stub // INSTRUMENTATION // ========================================================= + private static String[] HIDDENAPI_EXEMPT_PACKAGES = { + "com.android.bluetooth.tests", + "com.android.managedprovisioning.tests", + "com.android.frameworks.coretests", + "com.android.frameworks.coretests.binderproxycountingtestapp", + "com.android.frameworks.coretests.binderproxycountingtestservice", + "com.android.frameworks.tests.net", + "com.android.frameworks.tests.uiservices", + "com.android.coretests.apps.bstatstestapp", + "com.android.servicestests.apps.conntestapp", + "com.android.frameworks.servicestests", + "com.android.frameworks.utiltests", + "com.android.mtp.tests", + "android.mtp", + "com.android.documentsui.tests", + "com.android.shell.tests", + "com.android.systemui.tests", + "com.android.testables", + "android.net.wifi.test", + "com.android.server.wifi.test", + "com.android.frameworks.telephonytests", + "com.android.providers.contacts.tests", + "com.android.providers.contacts.tests2", + "com.android.settings.tests.unit", + "com.android.server.telecom.tests", + "com.android.vcard.tests", + "com.android.providers.blockednumber.tests", + "android.settings.functional", + "com.android.notification.functional", + "com.android.frameworks.dexloggertest", + "com.android.server.usb", + "com.android.providers.downloads.tests", + "com.android.emergency.tests.unit", + "com.android.providers.calendar.tests", + "com.android.settingslib", + "com.android.rs.test", + "com.android.printspooler.outofprocess.tests", + "com.android.cellbroadcastreceiver.tests.unit", + "com.android.providers.telephony.tests", + "com.android.carrierconfig.tests", + "com.android.phone.tests", + "com.android.service.ims.presence.tests", + "com.android.providers.setting.test", + "com.android.frameworks.locationtests", + "com.android.frameworks.coretests.privacy", + "com.android.settings.ui", + }; + public boolean startInstrumentation(ComponentName className, String profileFile, int flags, Bundle arguments, IInstrumentationWatcher watcher, IUiAutomationConnection uiAutomationConnection, @@ -21846,6 +21894,14 @@ public class ActivityManagerService extends IActivityManager.Stub } boolean disableHiddenApiChecks = (flags & INSTRUMENTATION_FLAG_DISABLE_HIDDEN_API_CHECKS) != 0; + + // TODO: Temporary whitelist of packages which need to be exempt from hidden API + // checks. Remove this as soon as the testing infrastructure allows to set + // the flag in AndroidTest.xml. + if (Arrays.asList(HIDDENAPI_EXEMPT_PACKAGES).contains(ai.packageName)) { + disableHiddenApiChecks = true; + } + ProcessRecord app = addAppLocked(ai, defProcess, false, disableHiddenApiChecks, abiOverride); app.instr = activeInstr;