heads/initrd/bin
Kyle Rankin 887c79065e
Add GUI package update handler w/ checksum update function
Part of the Heads workflow involves handling legitimate changes to /boot
as part of the package manager. This is a challenging workflow to handle
as package managers on many systems work in a completely unattended way
(and some even reboot first, apply updates, and then reboot again).

We need to be able to detect changes that are potentially caused by a
package manager so to do that I've set up a trigger within the OS
(currently just for Debian) that runs both before and after package
updates. It verifies the signatures in /boot and if they fail before
package updates it creates a log file in
/boot/kexec_package_trigger_pre.txt. If they fail after package updates
run /boot/kexec_package_trigger_post.txt is created. These files contain
the following fields:

CHANGED_FILES: A list of files in /boot that failed the sha256sum check
UPDATE_INITRAMFS_PACKAGE: An (optional) list of packages known to
trigger initramfs changes

Following those fields is a list of log output from the last package
manager run which contains its own formatted fields (I'm pulling from
/var/lib/dpkg/info).

When a user selects a boot option, gui-init first verifies the
checksums just to catch errors before calling kexec-select-boot. If
there are any errors it looks for these package logs and if they exist,
it displays appropriate warnings. If the files are absent it displays a
more generic warning. The user is also given an opportunity to re-sign
the /boot hashes.
2018-04-03 15:20:34 -07:00
..
flashrom-kgpe-d16-openbmc.sh Board, linux and coreboot configs 2018-03-01 00:40:46 -05:00
flashrom-kgpe-d16.sh Board, linux and coreboot configs 2018-03-01 00:40:46 -05:00
flashrom-x230.sh copy file and compute sha256 before flashing 2017-04-12 06:50:18 -04:00
generic-init Ensure recovery for failed default boot 2017-09-02 14:13:29 -04:00
gpgv Enable gpg with card support (issue #32) 2017-04-05 17:59:49 -04:00
gui-init Add GUI package update handler w/ checksum update function 2018-04-03 15:20:34 -07:00
kexec-boot Moved network init to a separate bootscript 2018-03-10 15:40:07 -08:00
kexec-insert-key Allow boot without unseal of TPM LUKS key 2017-09-02 14:13:29 -04:00
kexec-iso-init Strip invalid leading/trailing '/' from script params 2017-09-02 14:13:29 -04:00
kexec-parse-boot Strip invalid leading/trailing '/' from script params 2017-09-02 14:13:29 -04:00
kexec-save-default Cleanup of init to support server and desktop 2018-02-25 11:51:19 -08:00
kexec-save-key Allow TPM LUKS key to be set during default selection 2017-09-02 14:13:29 -04:00
kexec-seal-key remove trailing / on the /boot device parameter 2017-07-17 12:43:14 -04:00
kexec-select-boot Merge branch 'add_gui_hash_alert' of https://github.com/kylerankin/heads 2018-03-08 14:41:44 -05:00
kexec-sign-config Add OHCI and UHCI drivers to initrd. 2018-02-15 22:59:22 +08:00
kexec-unseal-key Allow boot without unseal of TPM LUKS key 2017-09-02 14:13:29 -04:00
mount-usb Cleanup of init to support server and desktop 2018-02-25 11:51:19 -08:00
network-init-recovery Moved network init to a separate bootscript 2018-03-10 15:40:07 -08:00
poweroff Ensure recovery for failed default boot 2017-09-02 14:13:29 -04:00
qubes-measure-luks qubes init script and improved TPM disk encryption with LUKS headers (issue #123 and #6) 2017-04-01 23:02:00 -04:00
reboot Ensure recovery for failed default boot 2017-09-02 14:13:29 -04:00
seal-totp import the seal/unseal totp scripts since they are very specialized to the heads install, skip owner password if not required (issue #151) 2017-04-12 06:49:39 -04:00
tpm-reset helper to do a forcible TPM reset (issue #27) 2017-04-12 06:45:15 -04:00
unseal-totp print and update the timestamp on the TOTP while waiting for disk unlock code 2017-04-12 08:28:31 -04:00
usb-init Cleanup of init to support server and desktop 2018-02-25 11:51:19 -08:00
usb-scan Allow TPM LUKS key to be set during default selection 2017-09-02 14:13:29 -04:00
wget-measure.sh wget and measure files into the PCR 2017-03-27 18:03:29 -04:00
x230-flash.init load usb-storage module in x230-flash.init 2017-04-16 17:37:14 -04:00