From fdc9fe8dc0af53ae2868bd42145f88ea50ac2925 Mon Sep 17 00:00:00 2001 From: Artur Satayev Date: Wed, 27 Nov 2019 15:17:25 +0000 Subject: [PATCH] Swap default for disableTestApiChecks. There are more runners than those updated in tradefed/testtype/, which donot/cannot push --no-test-api-checks arg to `am instrument`. Instead reverse the default, so that by default `am instrument` disables test api enforcement policy. Test: atest CtsHiddenApiBlacklistApi27TestCases \ CtsHiddenApiBlacklistApi28TestCases \ CtsHiddenApiBlacklistCurrentApiTestCases \ CtsHiddenApiBlacklistDebugClassTestCases \ CtsHiddenApiBlacklistTestApiTestCases \ CtsAppSecurityHostTestCases:android.appsecurity.cts.ExternalStorageHostTest#testMediaEscalation \ CtsAppSecurityHostTestCases:android.appsecurity.cts.StorageHostTest#testVerify \ CtsAppSecurityHostTestCases:android.appsecurity.cts.DirectBootHostTest#testDirectBootNative Exempt-From-Owner-Approval: small fix Bug: 133832325 Change-Id: Id1870cdd4bb0a51bddede24afd7f87d6e5ec766c --- cmds/am/src/com/android/commands/am/Am.java | 6 +++++- cmds/am/src/com/android/commands/am/Instrument.java | 2 +- .../com/android/server/am/ActivityManagerShellCommand.java | 4 ++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/cmds/am/src/com/android/commands/am/Am.java b/cmds/am/src/com/android/commands/am/Am.java index 22e1d0187f01c..bdb83804d9030 100644 --- a/cmds/am/src/com/android/commands/am/Am.java +++ b/cmds/am/src/com/android/commands/am/Am.java @@ -175,7 +175,11 @@ public class Am extends BaseCommand { } else if (opt.equals("--no-hidden-api-checks")) { instrument.disableHiddenApiChecks = true; } else if (opt.equals("--no-test-api-checks")) { - instrument.disableTestApiChecks = true; + // TODO(satayev): remove this option, only kept for backwards compatibility with + // cached tradefed instance + instrument.disableTestApiChecks = false; + } else if (opt.equals("--no-test-api-access")) { + instrument.disableTestApiChecks = false; } else if (opt.equals("--no-isolated-storage")) { instrument.disableIsolatedStorage = true; } else if (opt.equals("--user")) { diff --git a/cmds/am/src/com/android/commands/am/Instrument.java b/cmds/am/src/com/android/commands/am/Instrument.java index 6afd7c40c1c17..2adbc1f6e1aed 100644 --- a/cmds/am/src/com/android/commands/am/Instrument.java +++ b/cmds/am/src/com/android/commands/am/Instrument.java @@ -86,7 +86,7 @@ public class Instrument { String logPath = null; public boolean noWindowAnimation = false; public boolean disableHiddenApiChecks = false; - public boolean disableTestApiChecks = false; + public boolean disableTestApiChecks = true; public boolean disableIsolatedStorage = false; public String abi = null; public int userId = UserHandle.USER_CURRENT; diff --git a/services/core/java/com/android/server/am/ActivityManagerShellCommand.java b/services/core/java/com/android/server/am/ActivityManagerShellCommand.java index d9e4844209d07..59070c706a9c0 100644 --- a/services/core/java/com/android/server/am/ActivityManagerShellCommand.java +++ b/services/core/java/com/android/server/am/ActivityManagerShellCommand.java @@ -3029,7 +3029,7 @@ final class ActivityManagerShellCommand extends ShellCommand { pw.println(" --receiver-permission : Require receiver to hold permission."); pw.println(" instrument [-r] [-e ] [-p ] [-w]"); pw.println(" [--user | current]"); - pw.println(" [--no-hidden-api-checks [--no-test-api-checks]]"); + pw.println(" [--no-hidden-api-checks [--no-test-api-access]]"); pw.println(" [--no-isolated-storage]"); pw.println(" [--no-window-animation] [--abi ] "); pw.println(" Start an Instrumentation. Typically this target is in the"); @@ -3049,7 +3049,7 @@ final class ActivityManagerShellCommand extends ShellCommand { pw.println(" --user | current: Specify user instrumentation runs in;"); pw.println(" current user if not specified."); pw.println(" --no-hidden-api-checks: disable restrictions on use of hidden API."); - pw.println(" --no-test-api-checks: disable restrictions to test APIs, if hidden"); + pw.println(" --no-test-api-access: do not allow access to test APIs, if hidden"); pw.println(" API checks are enabled."); pw.println(" --no-isolated-storage: don't use isolated storage sandbox and "); pw.println(" mount full external storage");