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 Original line Diff line number Diff line
@@ -3018,7 +3018,7 @@ public class AccountManagerService
        final long identityToken = clearCallingIdentity();
        final long identityToken = clearCallingIdentity();
        try {
        try {
            // Distill the caller's package signatures into a single digest.
            // 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
            // if the caller has permission, do the peek. otherwise go the more expensive
            // route of starting a Session
            // route of starting a Session
@@ -3182,12 +3182,12 @@ public class AccountManagerService
                .write();
                .write();
    }
    }


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