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

Commit 4941184c authored by Eric Chiang's avatar Eric Chiang Committed by Automerger Merge Worker
Browse files

Merge "Fix PackageInfo not being queried per user" into udc-dev am: eddeee81

parents 3f46f1b0 eddeee81
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -3018,7 +3018,7 @@ public class AccountManagerService
        final long identityToken = clearCallingIdentity();
        try {
            // Distill the caller's package signatures into a single digest.
            final byte[] callerPkgSigDigest = calculatePackageSignatureDigest(callerPkg);
            final byte[] callerPkgSigDigest = calculatePackageSignatureDigest(callerPkg, userId);

            // if the caller has permission, do the peek. otherwise go the more expensive
            // route of starting a Session
@@ -3182,12 +3182,12 @@ public class AccountManagerService
                .write();
    }

    private byte[] calculatePackageSignatureDigest(String callerPkg) {
    private byte[] calculatePackageSignatureDigest(String callerPkg, int userId) {
        MessageDigest digester;
        try {
            digester = MessageDigest.getInstance("SHA-256");
            PackageInfo pkgInfo = mPackageManager.getPackageInfo(
                    callerPkg, PackageManager.GET_SIGNATURES);
            PackageInfo pkgInfo = mPackageManager.getPackageInfoAsUser(
                    callerPkg, PackageManager.GET_SIGNATURES, userId);
            for (Signature sig : pkgInfo.signatures) {
                digester.update(sig.toByteArray());
            }