summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Will Burr <wgb@google.com> 2022-08-31 23:37:41 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2022-08-31 23:37:41 +0000
commita2e9019b6dc6dd10a2f31e0eba31e6200d963d1b (patch)
tree8ac1a077408d9e64bc2c8accb6fc69fb476e4225
parentae685a115d7ee3f09b6681ac8969cc150db0386f (diff)
parent73ae1f3fe7ddf1c33050866b0532aa74a1d3734c (diff)
Merge "ActivityManagerService: add SdkSandbox-Client-Package header" into tm-qpr-dev am: 73ae1f3fe7
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19693812 Change-Id: Ibf50e462fc7352ba2ba190c8809b97b3f39a7cce Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--services/core/java/com/android/server/am/ActivityManagerService.java28
1 files changed, 28 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 3def9aa5969e..24293b9b9fde 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -8745,12 +8745,40 @@ public class ActivityManagerService extends IActivityManager.Stub
if (process.info.isInstantApp()) {
sb.append("Instant-App: true\n");
}
+
if (isSdkSandboxUid(process.uid)) {
+ final int appUid = Process.getAppUidForSdkSandboxUid(process.uid);
+ try {
+ String[] clientPackages = pm.getPackagesForUid(appUid);
+ // In shared UID case, don't add the package information
+ if (clientPackages.length == 1) {
+ appendSdkSandboxClientPackageHeader(sb, clientPackages[0], callingUserId);
+ }
+ } catch (RemoteException e) {
+ Slog.e(TAG, "Error getting packages for client app uid: " + appUid, e);
+ }
sb.append("SdkSandbox: true\n");
}
}
}
+ private void appendSdkSandboxClientPackageHeader(StringBuilder sb, String pkg, int userId) {
+ final IPackageManager pm = AppGlobals.getPackageManager();
+ sb.append("SdkSandbox-Client-Package: ").append(pkg);
+ try {
+ final PackageInfo pi = pm.getPackageInfo(pkg, 0, userId);
+ if (pi != null) {
+ sb.append(" v").append(pi.getLongVersionCode());
+ if (pi.versionName != null) {
+ sb.append(" (").append(pi.versionName).append(")");
+ }
+ }
+ } catch (RemoteException e) {
+ Slog.e(TAG, "Error getting package info for SDK sandbox client: " + pkg, e);
+ }
+ sb.append("\n");
+ }
+
private static String processClass(ProcessRecord process) {
if (process == null || process.getPid() == MY_PID) {
return "system_server";