Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ef05c905 authored by Will Burr's avatar Will Burr Committed by Automerger Merge Worker
Browse files

Merge "ActivityManagerService: add SdkSandbox-Client-Package header" into...

Merge "ActivityManagerService: add SdkSandbox-Client-Package header" into tm-qpr-dev am: 73ae1f3f am: a2e9019b

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19693812



Change-Id: I3df7c53cf2aaf9d922f00b7249e82fbf3d0b7336
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents cb5cbf1e a2e9019b
Loading
Loading
Loading
Loading
+28 −0
Original line number Diff line number Diff line
@@ -8748,12 +8748,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";