From ea18c501d4a4ec05e44fac264ea28bce9dc4763a Mon Sep 17 00:00:00 2001 From: Patrick Baumann Date: Mon, 5 Mar 2018 12:44:33 -0800 Subject: [PATCH] Adds instant app visibility to instumentation This change grants visibility to instant apps of instrumentation components that are targetting their package name. This allows instrumentation tests to run just as installed apps do. Change-Id: I3786390986cf9a65472da888257833f5b294a937 Fixes: 73078297 Test: manual - connected test passes as instant app Test: atest EphemeralTest passes --- .../com/android/server/pm/PackageManagerService.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 651368381d58e..06d35333aba17 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -4096,8 +4096,15 @@ public class PackageManagerService extends IPackageManager.Stub return false; } if (callerIsInstantApp) { - // request for a specific component; if it hasn't been explicitly exposed, filter + // request for a specific component; if it hasn't been explicitly exposed through + // property or instrumentation target, filter if (component != null) { + final PackageParser.Instrumentation instrumentation = + mInstrumentation.get(component); + if (instrumentation != null + && isCallerSameApp(instrumentation.info.targetPackage, callingUid)) { + return false; + } return !isComponentVisibleToInstantApp(component, componentType); } // request for application; if no components have been explicitly exposed, filter