How To Root A Chromebook

How To Root A Chromebook

Reading time1 min
#Technology#Linux#Security#ChromebookRooting#ChromeOS#Firmware

How to Root a Chromebook: Engineering-Level Control Beyond Chrome OS Limits

Chromebooks rarely escape their intended use case: secure, browser-centric, and tamper-resistant. For engineers requiring full shell access, custom kernel modules, or more than Crostini’s containerization, native rooting and custom firmware open new capabilities—from low-level debugging to running a pure Linux environment with kernel hooks.

Many production scenarios—embedded device development, cross-compiling, or deploying advanced networking tools—are limited by Chrome OS defaults. Standard Chrome OS only exposes user-level namespaces; root access and unrestricted package management remain off-limits by design. The techniques below reflect practical field experience, with a focus on data preservation and recovery in case of errors.


Rooting: Use Cases and Limitations

Root access on a Chromebook unlocks:

  • Full interaction with / (root) filesystem.
  • Bootloader-level changes (custom SeaBIOS/UEFI firmware).
  • Ability to replace Chrome OS entirely (e.g., GalliumOS, Arch Linux ARM).
  • Running low-level utilities: tcpdump, custom drivers, kernel upgrades.

Trade-offs:

  • Verified boot disabled (integrity not checked on startup).
  • Chrome OS updates and Play Store integrity are broken post-modification.
  • Recovery tools must be prepared in advance; errors can render the device non-bootable.

Initial Preparation

Before proceeding:

PrerequisiteDetail
BackupMove all user data to cloud or encrypted USB (all data lost).
ChargerRooting and firmware ops can drag on; insufficient power = risk of brick.
Chrome OS VersionSome steps differ for versions >= 108. Check with chrome://version before starting.
USB Drive8GB+ for recovery image and potential firmware transfer.
Terminal SkillsFamiliarity with Bash, dd, and basic shell utilities is mandatory.

Step 1: Enable Developer Mode

  1. Power off.
  2. Hold ESC + Refresh (F3), then press Power.
  3. On the "Chrome OS is missing or damaged" screen, press Ctrl+D.
  4. At the prompt, press Enter to confirm Developer Mode.
  5. Device wipes itself, verifies OS, then reboots in Developer Mode (10–15 min, depending on model and eMMC speed).

Note:
A persistent boot warning stays visible. Press Ctrl+D to bypass. Verified boot is now off.


Step 2: Access crosh, Shell, and Privileged Escalation

  • Press Ctrl+Alt+T to invoke crosh.
  • Enter:
    shell
    
  • For persistent root shell:
    sudo su -
    

Tip:
On some ARM Chromebooks, sudo su - drops you to a minimal environment. Validate $PATH and auto-mount settings before proceeding.


Step 3: System Imaging (Critical)

A full eMMC dump prevents unfixable mistakes.

dd if=/dev/mmcblk0 of=/mnt/stateful_partition/chromeos_full_backup.img bs=8M status=progress
  • status=progress (available in coreutils ≥8.24) provides live feedback.
  • Move the resulting .img to external storage—Chromebooks often wipe /mnt/stateful_partition during recovery.

Gotcha:
Inadequate storage on the persistent partition (seen on eMMC <32GB) will silently truncate output.


Step 4: Chroot Linux with Crouton (Partial Root—Most Flexible)

Crouton is optimal for dual environments: Chrome OS + full Linux chroot (without wiping firmware). Useful in dev/test, not for low-level firmware or kernel work.

cd ~/Downloads
curl -O https://github.com/dnschneid/crouton/releases/download/v2.7.1/crouton
sudo sh ./crouton -t xfce

Swap -t xfce for -t gnome, -t i3, or graphicless -t cli-extra as needed.

To launch:

sudo startxfce4

Limitation:
Crouton leverages shared kernel; hardware access is mediated by Chrome OS. Kernel extensions and some filesystem ops remain off-limits.


Step 5: Flash Custom Firmware (Full Root, Non-Reversible)

For engineers needing direct legacy boot, alternate distros, or full UEFI, flashing custom firmware is required.

MrChromebox Utility:

cd ~
curl -LO https://mrchromebox.tech/firmware-util.sh
sudo bash firmware-util.sh

Key menu operations in the script:

  • Install/Update Full ROM Firmware — Required for full Linux distro replacement.
  • Backup current firmware — Always back up (.bin file) to USB/external media.

Known Issue:
On certain Apollo Lake and Geminilake devices, Full ROM flash will break hardware-verified boot paths. Recovery is only possible via flash programmer (e.g., CH341A + SOIC8 clip). See MrChromebox docs for unsupported models.


Step 6: Expand Root Privileges with Crostini (Linux VM in Chrome OS 75+)

Containerized Linux (Crostini/termina) comes pre-installed in Chrome OS ≥75. Partial root, good for advanced dev, but no firmware access.

Root setup:

sudo su -
passwd  # Set root password

sudo persistence and package management work; kernel ops do not. Useful for PyTorch, TensorFlow, Docker, and other modern dev dependencies.


Safety, Recovery, and Reversion

Critical:

  • Recovery media must be created before firmware modifications. Use Chromebook Recovery Utility.
  • Firmware mistakes: physical disassembly and SPI flashing often required—prepare for physical tools if attempting full root.

Revert to stock:

  1. Power off.
  2. On boot warning, press Spacebar; confirm to wipe, verify, and restore factory state.
  3. Data is destroyed.

Error Example:
A failed firmware flash may present:

ERROR: Unable to erase/write EC flash

Immediate recovery is unavailable; only board-level interventions available.


Practical Example: Replacing Chrome OS with GalliumOS

Assume firmware flashing is complete.

  • Boot from USB with GalliumOS live image:
    sudo fdisk /dev/mmcblk0  # Partition as needed
    sudo dd if=galliumos.iso of=/dev/mmcblk0p1 bs=16M status=progress
    
  • Reboot, remove USB.

Observation:
Some trackpads and WiFi require out-of-tree kernel modules. Keep a USB Ethernet adapter on hand—hardware support isn’t guaranteed.


Non-obvious Tip

Developer switches may be hidden under a screw or physical tab—especially on post-2017 devices ("no more physical dev switches!"). Opening the case is sometimes the only way.
Check MrChromebox’s Firmware Database for status before you start.


Rooting a Chromebook, whether for penetration testing, deep learning development, or embedded application build pipelines, requires engineering rigor and respect for hardware constraints. Engineers should weigh operational benefits (kernels, drivers, full package managers) against permanent warranty loss and device bricking potential. With the right images and backups, the process is repeatable and, if not risk-free, at least manageable.


References: