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

Commit e406b58f 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 am: d99c0380

parents cb185509 d99c0380
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());
            }