Neutering the “developer mode” screen on your Chromebook

I am the proud owner of two Chromebooks – one Samsung Series 3 ARM Chromebook and one Samsung 550 Chromebook. Like many serial tinkerers the frowny/sick developer “warning” screen, which you get if you want to overwrite the operating system having to enable developer mode, is more of a pain than anything, much as I recognise it is for security. Having to press CTRL + D at every boot, or wait 30 seconds and endure a loud, audible beep is not my idea of slick fun. Happily, it is possible to all but disable this screen, by rewriting the BIOS with the correct “flags”. This leaves the screen enabled, but it only displays for 2 seconds, and there is no beep. Unhappily, you have to physically open the Chromebook up and disable the inbuilt BIOS write protect to take advantage of this.

The procedure is a follows:

  • Open Chromebook and enable/disable write protect jumper
  • Read existing BIOS using flashrom
  • Write new BIOS file with correct flags using gbb_utility
  • Write new BIOS file to BIOS using flashrom

Before proceeding, be warned that you could brick your Chromebook if you do something wrong. This is not for the faint-hearted. Do not come running/crying to me if it doesn’t work, and you are left with a tasteful paperweight!

Having said that, even if you do brick the device it is possible to rewrite a known, good BIOS using a Bus Pirate to get your Chromebook running again. I have mine ordered after bricking my Samsung 550 trying to enable VMX (hardware virtualisation extensions). When it arrives I shall write a post dedicated to that.

  • Open Chromebook and enable/disable write protect jumper

The Developer Information for Chrome OS devices page has a separate page dedicated to each device. Disassembly generally involves removing screws from the bottom of the device (including under the rubber feet), and carefully wiggling and prizing apart the case.

On the Series 3 ARM Chromebook the jumper is a sticker and screw next to the USB 3.0 port (denoted by blue plastic). You have to remove both the sticker AND the screw to disable the BIOS write protect (the latter of which caught me out, as I decided to put the non rubber foot screws back in before writing the BIOS and then was frustrated to find I couldn’t actually write the BIOS).

On the Samsung 550 Chromebook the jumper is a small white affair that you have to short yourself, somehow. After some experimentation I used a small watch screwdriver (the same one I used to get the case off) gently wedged in between the pins to have the desired effect, carefully turning the Chromebook over with the screwdriver in place.

In both cases you need to “cut” the battery. This is done by removing the power then putting a paper clip into the hole directly beneath the track pad for a few seconds. Otherwise the Chromebook will not know the BIOS write-protect has been disabled. Then, of course, plug the power back in before you do anything BIOS related.

  • Read existing BIOS using flashrom

This is possibly the easiest step of the entire process. Firstly log into Chrome OS (if you aren’t in Chrome OS, but already have an alternate OS installed you can build a Chromium OS image on another machine and chroot into that over a filesystem mounted via SSH and the network, or you can be old fashioned and just write it to a USB stick ;)

Then, open a terminal (CTRL-ALT-T), type “shell”, and then “sudo -s”, then navigate to your Downloads directory (just somewhere handy which is read/write to save the file to) “cd /home/user/*/Downloads”. Then type “flashrom -r bios.bin” which will read the existing BIOS and write it to the Downloads directory. That’s that part done.

You should get a message similar to:

  • Write new BIOS file with correct flags using gbb_utility

Next we will use the gbb_utility to write a new BIOS file containing the flag we want to neuter the Developer mode screen “gbb_utility –set –flags=0x01 bios.bin”:

  • Write new BIOS file to BIOS using flashrom

To write the file to the BIOS we use “flashrom” again – “flashrom -w”, make sure you have the sticker and screw removed, or the jumper suitably shorted as previously discussed:

Congratulations you should now have a developer mode screen which flashes by in 2 seconds and doesn’t beep!

48 thoughts on “Neutering the “developer mode” screen on your Chromebook”

  1. Thank you, worked great on my Acer C720! For other C720 owners, just remember to remove the write protection screw and follow the commands and no more annoying Dev Mode boot screen!

  2. Great guide! One tip, you do not have to ‘cut the battery’, at least on the Samsung Series 3 ARM Chromebook. Just run “flashrom –wp-disable” right before “flashrom -w”. After it’s done writing and you see SUCCESS, run “flashrom –wp-enable” to turn write protection back on (I put the screw back in too).

  3. Thanks for the tip.

    Any tips for how to revive the XE303 after disabling write protect if ChromeOS is “missing or damaged” and cannot be recovered using chrome recovery utilites? This prevents you from getting into developer mode in the first place, as it gives you the warning, then bounces back to the “missing or damaged” screen. Thanks for any help.

  4. Thanks for your answer. On my acer c710 there is no screw. There are two contactas that have to be conectet with aluminium foil to disable the write lock. Good to know that I can remove the foil afterwards. Thank you

  5. Hi Mr Lewis.
    I deleted chrome os, when boot form usb everything is ok but when reboot after instalation don’t boot from ssd .

    sorry for my english, is not my native lenguage

  6. Hi Mr Lewis.
    I deleted chrome os, when boot form usb everything is ok but when reboot after instalation don’t boot from ssd .

    sorry for my english, is not my native lenguage
    chromeboo c710 parrot fishcoffin

  7. success! first time on c720.

    Had to remove the screw while flashing + I had do copy bios to /tmp instead of /…/Download because the Download not there :)

    Thanks John

  8. So just one (ok maybe two…) question(s):

    How exactly does that command work? Does it set a flag while building it or do you need to somehow insert it into some file?

    Also, is there any way to disable the space bar on the screen at least? I’m fine with the two seconds but if spacebar becomes a big red button for that time I’m just as likely to wipe out crouton as before

    ok, final question. I promise.
    I read a couple of the other pages on this site and they said something about my acer chromebook 15 only having one of two “something” (idk what I’m even getting into here) and was kind of looking to see what exactly I can do on it, what I can’t, whether or not it will allow normal chrome os to run, and whether I have device specific stuff I need to pay attention to

  9. Admittedly I’m very new to this and have little clue where to start. I would actually love it if it were explained to me just how it works and what everything is like I’m 4.

    1. Right, well you should flash the updated legacy slot using the script on the download page then, as well as setting GBB flags to 0x489 to make sure that pressing the space bar doesn’t bugger things up.

      I have the full HD version of the Acer Chromebook 15 (which is the same as the C910) and I can tell you Linux works well on it.

  10. So I don’t have to disable any write protect or bridge any contacts?

    Also, I read something on some pages here about when flashing firmware that chrome OS might no longer work while other OS’s do. Was that just for your custom ones with custom partitioning or was that extending past that?

    Sorry if I’m being annoying, I know I’m a newbie to this and really don’t want to royally screw something up because I make a bad assumption

    1. Not to flash the RW_LEGACY region, no. Only if you want to make it the default and also safeguard the dev screen from the dreaded “space bar”.

      That’s aimed at full custom ROMs and BOOT_STUB’s, not RW_LEGACY. You’re not as annoying as the other guy. ;)

  11. And is the 0x489 just disabling the space bar? If i can I would like to get what appears to be the result of the 0x01 flag where it shortens it, or even completely disable the recovery screen.

  12. OK, so I ran that script and tried setting the flags with gbb-utility but it gave me an error that I need to disable write protect and that no changes were made, so do I in the end still need to disable write protect?

    1. As I think I already told you, there is currently no full custom ROM or custom BOOT_STUB for Broadwell Chromebooks. And, there’s so far no technically good reason to produce one. Plus, you will have to keep it regardless if you want to keep running ChromeOS.

    1. Okay then. If you run the script again choosing option 3, that will take you back to the stock BOOT_STUB – the rest of the ROM wouldn’t have been touched if you choose option 2, so this takes you back to stock.

  13. Hi,
    what would be the best choice to “save me from the space bar” an allow to dual boot ChromeOS and legacy OS?

    Looking at the gbb flags (by running /usr/share/vboot/bin/ ) I think it would be 0x400 (or 0x401), which should default to legacy and dev mode when I press Ctrl+D, is that correct?

Leave a Reply