We're hiring!
*

Quick hack: Removing the Chromebook Write-Protect screw

Robert Foss avatar

Robert Foss
March 08, 2017

Share this post:

Reading time:

Before being able to write firmware data to any production Chromebook device, the Write-Protect screw has to be removed.

This post will look specifically at removing the WP screw from a Chell (HP Chromebook 13 G1) device, and verifying that it has been successfully removed.

To actually flash firmware to Chromebook machines, a device called a Servo is needed. While these devices aren't available publicly, they can be produced freely or possibly requested from Google if you are contributing code to the ChromiumOS project.

Removing the Write-Protect screw

WP screw on Chell Chromebook

So this is what the WP screw looks like on a Chell Chromebook. This may or may not be what you will find in other devices. But if you take a close look, you will notice that the copper pad that the the screw attaches against is split into parts that are bridged by a screw being inserted.

Disable Write-Protect

So this is the part that requires a Servo device. And a ChromiumOS checkout, for some help setting one up, have a look at my previous post.

# Go to your ChromiumOS checkout
cd /opt/chromiumos

# Enter dev environment
cros_sdk

# Set device variable
export BOARD=chell

# Connect to Chromebook using a Servo device
sudo servod -b $BOARD &

# Disable WP
# This step may vary depending on the hardware of your actual Chromebook
dut-control fw_wp:off
sudo /usr/sbin/flashrom -p ft2232_spi:type=servo-v2 --wp-disable
sudo /usr/sbin/flashrom -p ec --wp-disable

 

References

ChromiumOS Servo
Setting up a ChromiumOS dev environment

 

Thanks!

This post has been a part of work undertaken by my employer Collabora.

 

Original post

Search the newsroom

Latest Blog Posts

Building Tyr in Rust: CSF architecture and booting the MCU

14/05/2026

See how Tyr moves beyond MCU firmware boot to build the group, queue, VM, submission, and completion paths needed to run real Vulkan workloads…

Optimizing memory access in NIR

07/05/2026

A complete breakdown of Mesa’s NIR compiler detailing how it optimizes shader memory access with SSA promotion, deref analysis, copy propagation,…

BlueZ-powered Auracast broadcasting on Genio 700

05/05/2026

Collabora brought Bluetooth Auracast broadcasting to MediaTek Genio 700 for Embedded World 2026. Here's the complete, fully Open Source…

Making the invisible audible: Building an OpenXR experience for ocean protection

22/04/2026

Using our XR expertise, Collabora created a standalone XR experience for our 1% for the Planet partner, SOMAR, to showcase the direct impact…

Bringing BitNet to ExecuTorch via Vulkan

17/04/2026

BitNet-style ternary brings LLM inference to ExecuTorch via its Vulkan backend, enabling much smaller, bandwidth-efficient models with portable…

Re-thinking framebuffers in PanVK

23/03/2026

PanVK’s new framebuffer abstraction for Mali GPUs removes OpenGL-specific constraints, unlocking more flexible tiled rendering features…

Open Since 2005 logo

Our website only uses a strictly necessary session cookie provided by our CMS system. To find out more please follow this link.

Collabora Limited © 2005-2026. All rights reserved. Privacy Notice. Sitemap.