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

Commit eddeee81 authored by Eric Chiang's avatar Eric Chiang Committed by Android (Google) Code Review
Browse files

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

parents 03a42573 d33e27f8
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());
            }