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

Commit 0feb7574 authored by Alex Buynytskyy's avatar Alex Buynytskyy Committed by Android (Google) Code Review
Browse files

Merge "Detect duplicate addChecksums calls."

parents 173fbed4 373a01c3
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1227,6 +1227,7 @@ public class PackageInstaller {
         *                  {@link PackageManager#requestChecksums}.
         * @throws SecurityException if called after the session has been
         *                           committed or abandoned.
         * @throws IllegalStateException if checksums for this file have already been added.
         * @deprecated  do not use installer-provided checksums,
         *              use platform-enforced checksums
         *              e.g. {@link Checksum#TYPE_WHOLE_MERKLE_ROOT_4K_SHA256}
+7 −5
Original line number Diff line number Diff line
@@ -991,12 +991,14 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
            assertCallerIsOwnerOrRootLocked();
            assertPreparedAndNotCommittedOrDestroyedLocked("addChecksums");

            for (Checksum checksum : checksums) {
                List<CertifiedChecksum> fileChecksums = mChecksums.get(name);
                if (fileChecksums == null) {
                    fileChecksums = new ArrayList<>();
                    mChecksums.put(name, fileChecksums);
            if (mChecksums.containsKey(name)) {
                throw new IllegalStateException("Duplicate checksums.");
            }

            List<CertifiedChecksum> fileChecksums = new ArrayList<>();
            mChecksums.put(name, fileChecksums);

            for (Checksum checksum : checksums) {
                fileChecksums.add(new CertifiedChecksum(checksum, initiatingPackageName,
                        mainCertificateBytes));
            }