Shimboot
ading2210 (vk6#7391)

Website GitHub Discord

Collection of scripts for patching a Chrome OS RMA shim to serve as a bootloader for a standard Linux distribution. Allows booting a full desktop Debian install without unenrolling modifying firmware.

Build

    Instructions

  1. Grab a Chrome OS RMA Shim from somewhere. Most of them have already been leaked and aren't too difficult to find.
  2. Download a Chrome OS recovery image for your board.
  3. Clone this repository and cd into it.
  4. Run mkdir -p data/rootfs to create a directory to hold the rootfs.
  5. Run sudo ./build_rootfs.sh data/rootfs bookworm to build the base rootfs.
  6. Run sudo ./patch_rootfs.sh path_to_shim path_to_reco data/rootfs to patch the base rootfs and add any needed drivers.
  7. Run sudo ./build.sh image.bin path_to_shim data/rootfs to generate a disk image at `image.bin`.

Usage

  1. Obtain a shimboot image by downloading a prebuilt one or building it yourself.
  2. Flash the shimboot image to a USB drive or SD card. Use the Chromebook Recovery Utility or dd if you're on Linux.
  3. Enable developer mode on your Chromebook. If the Chromebook is enrolled, follow the instructions on the sh1mmer website (see the "Executing on Chromebook" section).
  4. Plug the USB into your Chromebook and enter recovery mode. It should detect the USB and run the shimboot bootloader.
  5. Boot into Debian and log in with the username and password that you configured earlier. The default username/password for the prebuilt images is user/user.
  6. Expand the rootfs partition so that it fills up the entire disk by running sudo growpart /dev/sdX 4 (replacing sdX with the block device corresponding to your disk) to expand the partition, then running sudo resize2fs /dev/sdX to expand the filesystem.