Verifying CalyxOS builds
Factory images
- Factory images starting from July 2021 are signed using minisign
- Linux:
- Arch Linux:
sudo pacman -S minisign
- Fedora:
sudo dnf install minisign
- Ubuntu:
sudo add-apt-repository ppa:savoury1/minisign && sudo apt update && sudo apt install minisign
- Debian:
sudo apt install minisign
- Others: See https://github.com/jedisct1/minisign#compilation--installation
- Arch Linux:
- macOS:
- Official binary: https://github.com/jedisct1/minisign/releases/download/0.11/minisign-0.11-macos.zip
- Homebrew:
brew install minisign
- Windows:
- Official binary: https://github.com/jedisct1/minisign/releases/download/0.11/minisign-0.11-win64.zip
- Chocolatey:
choco install minisign
- Scoop:
scoop install minisign
Verification
- Download the factory image and signature files from Get CalyxOS
- Download the public key, minisign.pub
- Place all 3 files in the same folder, and then run:
minisign -Vm akita-factory-24509000.zip -p minisign.pub
# akita is Pixel 8a, replace with your device
It should output (comment may differ as per release):
Signature and comment signature verified
Trusted comment: CalyxOS 5.9.0 - July 2024 Security update
Additional verification
- The minisign public key has been GPG signed by Nicholas Merrill
- OpenPGP Fingerprint:
BC2C B9C4 993C 086F FDAD 8D20 5905 C9C7 4693 488B
- Download the public key, minisign.pub
- Download the signature, minisign.pub.sig
- Place both files in the same folder, and then run:
gpg --keyserver keys.openpgp.org --recv-keys BC2CB9C4993C086FFDAD8D205905C9C74693488B
gpg --verify minisign.pub.sig minisign.pub
It should output:
gpg: Signature made Sat 10 Jul 2021 05:15:55 AM IST
gpg: using RSA key BC2CB9C4993C086FFDAD8D205905C9C74693488B
gpg: checking the trustdb
gpg: marginals needed: 3 completes needed: 1 trust model: pgp
gpg: depth: 0 valid: 2 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 2u
gpg: Good signature from "Nicholas Merrill <nick@calyx.com>" [unknown]
gpg: aka "Nicholas Merrill <nick@calyx.net>" [unknown]
gpg: aka "Nicholas Merrill <nick@calyxinstitute.org>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: BC2C B9C4 993C 086F FDAD 8D20 5905 C9C7 4693 488B
Checksums
- SHA256 checksums are available for all factory images and OTA updates.
- You can run the below command and make sure the hash matches what’s shown on Get CalyxOS or CalyxOS OTA updates
- You can also simply append
.sha256sum
to the download URL for any file to get them, e.g. https://release.calyxinstitute.org/akita-factory-24509000.zip.sha256sum
Linux
sha256sum akita-factory-24509000.zip
# akita is Pixel 8a, replace with your device
It should output:
66d091f4788ea93cd9a4e5be8ecd5de4ea74c29785e99343aa106bed3bea62f3 akita-factory-24509000.zip
macOS
shasum -a 256 akita-factory-24509000.zip
# akita is Pixel 8a, replace with your device
It should output:
66d091f4788ea93cd9a4e5be8ecd5de4ea74c29785e99343aa106bed3bea62f3 akita-factory-24509000.zip
Windows
certUtil -hashfile akita-factory-24509000.zip SHA256
# akita is Pixel 8a, replace with your device
It should output:
SHA256 hash of akita-factory-24509000.zip:
66d091f4788ea93cd9a4e5be8ecd5de4ea74c29785e99343aa106bed3bea62f3
CertUtil: -hashfile command completed successfully.
Mirrors
-
The public key, signatures, and sha256 checksums are also stored in a git repository which is mirrored to multiple places.
Hint: You can press t
on these pages to quick jump to a filename (e.g. akita-factory-24509000
)