Hack House and this project are the official winners of the FULU Bounty for Nest Learning Thermostat Gen 1/2
Hardware Alternative: If you're interested in the hardware side of things, check out https://sett.homes for a drop-in PCB replacement option.
Choose the installation method that works best for you:
The easiest way to get started. Download our GUI installer that handles everything automatically.
If the GUI installer doesn't work for you, follow the manual installation steps below. This method uses command-line tools to flash the firmware.
Host your own No Longer Evil server infrastructure. Requires technical expertise.
This directory contains the tools and firmware needed to flash custom firmware to Nest Thermostat devices using the OMAP DFU (Device Firmware Update) interface.
You will need to have a Linux or MacOS computer available.
The custom firmware flashes the device with modified bootloader and kernel components that redirect all network traffic from the original Nest/Google servers to a server we specify. This server hosts a reverse-engineered replica of their API, allowing the thermostat to function independently while giving you complete control over your device data and settings.
By intercepting the communication layer, the thermostat believes it's communicating with the official Nest infrastructure, but instead connects to the No Longer Evil platform. This approach ensures full compatibility with the device's existing software while breaking free from Google's cloud dependency.
git clone https://github.com/codykociemba/NoLongerEvil-Thermostat.git
cd NoLongerEvil-ThermostatBefore building, you'll need to install some required packages:
sudo apt-get update
sudo apt-get install build-essential libusb-1.0-0-dev gcc pkg-configFirst, install Xcode Command Line Tools:
xcode-select --installThen install libusb using Homebrew (the build script will attempt to install this automatically if missing):
# Install Homebrew if you don't have it
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install libusb
brew install libusb pkg-configchmod +x build.sh
./build.shThe build script will automatically detect your operating system and build the appropriate binary.
IMPORTANT: You must start the installer script BEFORE rebooting the device.
chmod +x install.sh
./install.shNote for macOS: You may need to grant USB permissions. If you encounter permission issues, check System Preferences β Security & Privacy.
The script will wait for the device to enter DFU mode.
Follow these steps carefully:
- Charge the device - Ensure your Nest Thermostat is properly charged (at least 50% battery recommended)
- Remove from wall - Remove the Nest from its back plate/wall mount
- Connect via USB - Plug the Nest into your computer using a micro USB cable
- Wait for the installer - Make sure the
install.shscript is running and waiting - Reboot the device - Press and hold down on the display for 10-15 seconds until the device reboots
- DFU mode active - Once it reboots, the device will enter DFU mode and the installer script will recognize it and begin flashing
The firmware installer will automatically detect the device and flash the custom bootloader (x-load, u-boot) and kernel (uImage).
After the firmware is flashed successfully, you should see our NLE logo on the device screen.
Important:
- Keep the device plugged in via USB
- Wait for the device to complete its boot sequence (this may take 3-4 minutes)
- Do not disconnect or power off the device during this time
Once the device has fully rebooted:
- Visit https://nolongerevil.com in your web browser
- Register an account (or sign in if you already have one)
- Navigate to your Dashboard
You will see a "No devices" screen that prompts you for an entry code.
To link your Nest device to your No Longer Evil account:
- On your Nest device, navigate to: Settings β Nest App β Get Entry Code
- The device will display a unique entry code
- Enter this code on the No Longer Evil dashboard
- Your device is now linked and ready to use!
This tool provides low-level access to the device's boot process. Use responsibly:
- Only use on devices you own
- Improper firmware can brick your device (Don't sue me bro)
This project builds upon the excellent work of several security researchers and developers:
- grant-h / ajb142 - omap_loader, the USB bootloader tool used to flash OMAP devices
- exploiteers (GTVHacker) - Original research and development of the Nest DFU attack, which demonstrated the ability to flash custom firmware to Nest devices gen 1 & gen 2
- FULU and all bounty backers - For funding the Nest Learning Thermostat Gen 1/2 bounty and supporting the right-to-repair movement
Without their groundbreaking research, open-source contributions, and advocacy for device ownership rights, this work would not be possible. Thank you!
We are committed to transparency and the right-to-repair movement. The firmware images and backend API server code will be open sourced soon, allowing the community to audit, improve, and self-host their own infrastructure.