The ChromeOS Firmware Utility Script simplifies the most common functions most users need when interacting with the firmware on their ChromeOS device.
It can be run from ChromeOS, or any Linux distribution which has a full shell. It cannot be run via WSL or a virtualized environment (ie, a ChromeOS penguin shell)
Currently, it allows the user to:Install/Update the RW_LEGACY firmware (allows dual booting of ChromeOS + Linux)
Install/Update coreboot/UEFI Full ROM firmware (for running Linux/Windows without ChromeOS)
Set the Boot Options (GBB Flags) (only for stock ChromeOS firmware)
Set the device's Hardware ID (only for stock ChromeOS firmware)
Remove the ChromeOS Developer/Recovery mode Bitmaps (only for stock ChromeOS firmware)
Restore the ChromeOS Bitmaps (only for stock ChromeOS firmware)
Restore the Stock Firmware (only for devices which have not reached EOL)
At startup, the Firmware Utility Script will automatically detect the device, OS, and current firmware details, and show a customized menu options based on this information. Some options may be greyed-out/disabled for some devices. Because most of these operations are being done to normally read-only parts of the firmware, the firmware write protect will need to be removed for most of the script's functions. This is documented for each function below, and the script will likewise check and display the write-protect state for each function that requires it to be disabled.
IMPORTANT
This script must be run **as a normal/non-root user**. Running it as root will break things. DO NOT RUN 'SUDO SU' BEFORE RUNNING THE SCRIPT CMD BELOW.
And do note that in the script command below, it's `-LO` (L capital O), not L zero.
To download and run this script under ChromeOS or Linux, from a terminal/shell type:
It can be run from ChromeOS, or any Linux distribution which has a full shell. It cannot be run via WSL or a virtualized environment (ie, a ChromeOS penguin shell)
Currently, it allows the user to:Install/Update the RW_LEGACY firmware (allows dual booting of ChromeOS + Linux)
Install/Update coreboot/UEFI Full ROM firmware (for running Linux/Windows without ChromeOS)
Set the Boot Options (GBB Flags) (only for stock ChromeOS firmware)
Set the device's Hardware ID (only for stock ChromeOS firmware)
Remove the ChromeOS Developer/Recovery mode Bitmaps (only for stock ChromeOS firmware)
Restore the ChromeOS Bitmaps (only for stock ChromeOS firmware)
Restore the Stock Firmware (only for devices which have not reached EOL)
At startup, the Firmware Utility Script will automatically detect the device, OS, and current firmware details, and show a customized menu options based on this information. Some options may be greyed-out/disabled for some devices. Because most of these operations are being done to normally read-only parts of the firmware, the firmware write protect will need to be removed for most of the script's functions. This is documented for each function below, and the script will likewise check and display the write-protect state for each function that requires it to be disabled.
IMPORTANT
This script must be run **as a normal/non-root user**. Running it as root will break things. DO NOT RUN 'SUDO SU' BEFORE RUNNING THE SCRIPT CMD BELOW.
And do note that in the script command below, it's `-LO` (L capital O), not L zero.
To download and run this script under ChromeOS or Linux, from a terminal/shell type:
cd; curl -LO mrchromebox.tech/firmware-util.sh && sudo bash firmware-util.sh and press
[ENTER].
If you encounter certificate related errors when downloading the script from ChromeOS, then add -k to the curl command and script command to bypass SSL certificate checking as so:
If you encounter certificate related errors when downloading the script from ChromeOS, then add -k to the curl command and script command to bypass SSL certificate checking as so:
cd; curl -LOk mrchromebox.tech/firmware-util.sh && sudo bash firmware-util.sh and press [ENTER].
NOTE
Starting with ChromeOS R117, this script must be run from a VT2 terminal (from login screen: [CTRL+ALT+F2], login chronos); it cannot be run from a crosh shell ([CTRL+ALT+T] when logged in) due to the removal of sudo, or from a crostini (penguin) terminal; crostini is a virtualized container and lacks the necessary access to read or modify the firmware.
NOTE
Starting with ChromeOS R117, this script must be run from a VT2 terminal (from login screen: [CTRL+ALT+F2], login chronos); it cannot be run from a crosh shell ([CTRL+ALT+T] when logged in) due to the removal of sudo, or from a crostini (penguin) terminal; crostini is a virtualized container and lacks the necessary access to read or modify the firmware.
![]() |
Firmware Utility Script Chromebook |
Firmware Utility Script, on device with stock firmware and WP enabled
![]() |
Firmware Utility Script Chromebook |
Firmware Utility Script, on device with stock firmware and WP disabled
![]() |
Firmware Utility Script Chromebook |
Firmware Utility Script, on device with Full ROM firmware and WP disabled
In the screenshots above, only the script functions available for the device and current firmware are enabled (cyan text); unavailable functions are in grey. Features which require the firmware WP to be disabled are clearly labeled as such, along with the ability of that function to be used based on the current WP state.
In the screenshots above, only the script functions available for the device and current firmware are enabled (cyan text); unavailable functions are in grey. Features which require the firmware WP to be disabled are clearly labeled as such, along with the ability of that function to be used based on the current WP state.