diff options
| author | 2022-08-31 23:37:41 +0000 | |
|---|---|---|
| committer | 2022-08-31 23:37:41 +0000 | |
| commit | a2e9019b6dc6dd10a2f31e0eba31e6200d963d1b (patch) | |
| tree | 8ac1a077408d9e64bc2c8accb6fc69fb476e4225 | |
| parent | ae685a115d7ee3f09b6681ac8969cc150db0386f (diff) | |
| parent | 73ae1f3fe7ddf1c33050866b0532aa74a1d3734c (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.java | 28 |
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"; |