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

Commit 29cd5b83 authored by David Sehr's avatar David Sehr Committed by android-build-merger
Browse files

Merge \"Simplify code paths computation, allow adb root to dump\" into nyc-dev

am: 1c4da665

Change-Id: Iad4d8712725819b35d9d25956fd82ff70ef3467d
parents ce2c5fa4 1c4da665
Loading
Loading
Loading
Loading
+5 −12
Original line number Diff line number Diff line
@@ -7520,9 +7520,11 @@ public class PackageManagerService extends IPackageManager.Stub {
                throw new IllegalArgumentException("Unknown package: " + packageName);
            }
        }
        /* Only the shell or the app user should be able to dump profiles. */
        /* Only the shell, root, or the app user should be able to dump profiles. */
        int callingUid = Binder.getCallingUid();
        if (callingUid != Process.SHELL_UID && callingUid != pkg.applicationInfo.uid) {
        if (callingUid != Process.SHELL_UID &&
            callingUid != Process.ROOT_UID &&
            callingUid != pkg.applicationInfo.uid) {
            throw new SecurityException("dumpProfiles");
        }
@@ -7530,16 +7532,7 @@ public class PackageManagerService extends IPackageManager.Stub {
            Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "dump profiles");
            final int sharedGid = UserHandle.getSharedAppGid(pkg.applicationInfo.uid);
            try {
                final File codeFile = new File(pkg.applicationInfo.getCodePath());
                List<String> allCodePaths = Collections.EMPTY_LIST;
                if (codeFile != null && codeFile.exists()) {
                    try {
                        final PackageLite codePkg = PackageParser.parsePackageLite(codeFile, 0);
                        allCodePaths = codePkg.getAllCodePaths();
                    } catch (PackageParserException e) {
                        // Well, we tried.
                    }
                }
                List<String> allCodePaths = pkg.getAllCodePathsExcludingResourceOnly();
                String gid = Integer.toString(sharedGid);
                String codePaths = TextUtils.join(";", allCodePaths);
                mInstaller.dumpProfiles(gid, packageName, codePaths);