Shimboot
ading2210 (vk6#7391)

Website GitHub Discord

Shimboot is a collection of scripts for patching a Chrome OS RMA shim to serve as a bootloader for a standard Linux distribution. It allows you to boot a full desktop Debian install on a Chromebook, without needing to unenroll it or modify the firmware.

Prebuilt Images:

  • Prebuilt images are available here. If there is not a prebuilt image for your board, you must manually build the shimboot image.
  • For these prebuilt images, the root password is "root". The name of the default user is "user" and its password is "user" as well. You should change these credentials as soon as possible.

    Instructions

      Build Instructions:

    1. Find the board name of your Chromebook. You can search for the model name on chrome100.dev.
    2. Clone this repository and CD into it.
    3. Run `sudo ./build_complete.sh [board_name]` to download the required data and build the disk image.
    4. Alternatively, you can run each of the steps manually below:

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

    Booting the Image:

    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.
    7. Change the root password and regular user password by running `sudo passwd root` and `passwd user`.