Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/S-PScripts/chromebook-utilities/llms.txt

Use this file to discover all available pages before exploring further.

Developer Mode is a special operating state in ChromeOS that disables verified boot and grants access to a full Linux shell, the ability to sideload applications, and low-level system utilities. It is a prerequisite for many exploits, including running Sh1mmer shims, executing unenrollment payloads, and installing custom firmware via tools like MrChromebox. The tradeoff is significant: toggling developer mode always triggers a complete wipe of all local data, and many school-managed devices have developer mode administratively blocked via FWMP (Firmware Management Parameters).
Enabling or disabling developer mode wipes all local data on your Chromebook. Back up anything important to Google Drive or an external drive before proceeding. This includes downloads, Linux containers, and anything not synced to the cloud.
Your school or organization may have disabled the ability to enter developer mode entirely. If the device re-enrolls or refuses to proceed past the OS verification screen, FWMP may be blocking it. Some unenrollment exploits (e.g., BR1CK or BadRecovery) can work around this restriction.

Enable Developer Mode

1

Enter Recovery Mode

Press Power + Refresh (↻) + Escape simultaneously. Your Chromebook will reboot and display a screen that says “ChromeOS is missing or damaged” or “Insert a recovery device”.
2

Trigger Developer Mode

On the recovery screen, press Ctrl + D. A new screen will appear asking you to confirm turning OS verification off.
3

Confirm OS Verification Off

At the “Turn OS verification OFF” screen, press Enter as prompted. The device will display a screen indicating that OS verification is now OFF and will beep.
4

Boot into Developer Mode

Press Ctrl + D (or wait for the timer) and your device will boot automatically. The first boot in developer mode takes several minutes as the device transitions. Subsequent boots will show the OS verification screen — press Ctrl + D each time to boot, or wait for the 30-second auto-boot timer.

Disable Developer Mode

There are two methods to exit developer mode, depending on which screen your device shows on boot. Method 1 — “You are in developer mode” screen (black screen):
1

Restart your Chromebook

Reboot and wait for the “You are in developer mode” black screen to appear.
2

Select Return to Secure Mode

Use the arrow keys to highlight “Return to secure mode”.
3

Confirm

Press Enter. The device will wipe and return to verified/secure mode.
Method 2 — “OS Verification is OFF” screen (white screen):
1

Restart your Chromebook

Reboot and wait for the “OS Verification is OFF” white screen to appear.
2

Press Space

Press the Space key as indicated on-screen.
3

Confirm

Press Enter to confirm. The device will wipe and return to verified/secure mode.

Fakemurk (Fake Developer Mode)

Fakemurk, created by Mercury Workshop, blends your Chromebook in with the rest in the Admin console by making the OS believe it is in verified mode while you secretly retain full developer-mode shell access. It achieves this by replacing the crossystem binary — which reports device state to the Google Admin Console — with a patched version that always reports developer mode as off.
Fakemurk requires an already-unenrolled Chromebook with developer mode enabled. It is not a standalone unenrollment tool.
Prerequisites:
  • An unenrolled Chromebook already in developer mode
  • MrChromebox’s RW_LEGACY firmware installed (https://mrchromebox.tech/#fwscript)
  • Recommended: recover to a v107 recovery image first for best compatibility
Installation: Open chrome-untrusted://crosh, type shell, and run the following commands one by one:
sudo -i
bash <(curl -SLk https://github.com/MercuryWorkshop/fakemurk/releases/latest/download/fakemurk.sh)
Follow all on-screen directions. Your Chromebook will reboot when the script completes.
If you get an error about a read-only filesystem during installation, run fsck -f $(rootdev) and reboot before retrying.
After installation, Fakemurk replaces Crosh with mush, a drop-in shell replacement that provides:
  • Extension disabler — toggle any extension on or off
  • Root shell — full bash access as root
  • Pollen editor — modify non-Device administrator policies
  • Emergency revert — instantly undo all Fakemurk changes
By default, Fakemurk also unlocks the ability to install any Chrome Web Store extension, sign in with any Google account type, and install APKs via Google Play.
Fakemurk does not fake your ChromeOS version number. The longer you stay on an old version, the more suspicious it may appear in the Admin console. Periodically recover to v107, unenroll via Sh1mmer, update to the latest stable version, and re-run Fakemurk.
If Crosh is blocked by an extension, go to your Downloads folder (not Google Drive), create a folder named disable-extensions, and no extensions will load — allowing Crosh access. Delete the folder afterward to use Mush.

Powerwash

A Powerwash performs a factory reset of ChromeOS, wiping all local data without fully disabling developer mode. It is useful for clearing enrollment flags, resetting a device to a clean state, or re-attempting unenrollment steps.
1

Sign out

Sign out of your Chromebook from the user session.
2

Initiate Powerwash

Press and hold Ctrl + Alt + Shift + R on the sign-in screen.
3

Confirm

Select Restart, then in the dialog that appears select PowerwashContinue.
4

Complete setup

Follow the on-screen prompts and sign in with your Google account.
If Powerwash is blocked via policy, you can trigger it by attempting to enable developer mode — this forces the same data wipe.

Avoid Accidental Re-Enrollment

After unenrolling, ChromeOS may automatically re-enroll your device on the next setup. The method to prevent this depends on your ChromeOS version.
Run this command in any root shell, then Powerwash:
vpd -i RW_VPD -s check_enrollment=0
Run these commands in a developer mode root shell (or a shim with Ctrl+U boot), then Powerwash:
vpd -i RW_VPD -s check_enrollment=0
tpm_manager_client take_ownership
cryptohome --action=remove_firmware_management_parameters
Powerwash, enter developer mode, open VT2 (Ctrl + Alt + →), and run the following (type > and >> exactly as shown). Then switch back out of VT2 and finish device setup without rebooting:
echo --enterprise-enable-unified-state-determination=never >/tmp/chrome_dev.conf
echo --enterprise-enable-forced-re-enrollment=never >>/tmp/chrome_dev.conf
echo --enterprise-enable-initial-enrollment=never >>/tmp/chrome_dev.conf
mount --bind /tmp/chrome_dev.conf /etc/chrome_dev.conf
initctl restart ui
Powerwash, enter developer mode, open VT2 (Ctrl + Alt + →), and run the following. Then switch back out of VT2 and finish device setup without rebooting:
echo --enterprise-enable-state-determination=never >/tmp/chrome_dev.conf
mount --bind /tmp/chrome_dev.conf /etc/chrome_dev.conf
initctl restart ui
Credits: OlyB, Titanium Network

Build docs developers (and LLMs) love