What You’ll Need
Compatible Device
Nest Generation 1 or 2 thermostatCheck compatibility →
Computer
Linux or macOS⚠️ Windows NOT supported (including WSL)
USB Cable
Mini USB (Gen 1) or Micro USB (Gen 2)Must be data-capable, not charge-only
For Gen 1 Only
Phillips screwdriverMetal tweezers/conductive tool
Step 1: Download Firmware Installer
Download the firmware installer for your operating system:Download for macOS
macOS (Universal)Intel & Apple Silicon (M1/M2/M3/M4)Click to download
Download for Linux
Linux (x64)Ubuntu, Debian, Fedora, etc.Click to download
Step 2: Prepare the Installer
- Linux (AppImage)
- macOS
-
Make the AppImage executable:
-
Install dependencies:
-
Run the AppImage:
AppImage files are self-contained and don’t need extraction. You can also double-click the file in your file manager after making it executable.
Installer not working? Try manual installation
Installer not working? Try manual installation
If the pre-built installer doesn’t work for you, you can run it manually from source:
- Linux
- macOS
This will run the installer directly from source using Electron. The installer GUI will open just like the pre-built version.
Step 3: Launch the Installer
-
Open the NoLongerEvil installer app
- Linux: Run
./NoLongerEvil-*.AppImageor double-click the AppImage file - macOS: Double-click NoLongerEvil.app
- Linux: Run
- The installer GUI will open - Follow the on-screen instructions in the installer
-
The installer will guide you through the process, including:
- Selecting your device generation (Gen 1 or Gen 2)
- Entering DFU mode
- Flashing the firmware
- Setting up your device
USB Permissions: You may be prompted to grant USB permissions:
- macOS: System Preferences → Security & Privacy → Allow USB access
- Linux: May need to run with
sudoor add udev rules if you get permission errors
The rest of this guide provides detailed manual instructions for each step. However, the installer app will walk you through everything - you can simply follow the GUI prompts instead of reading the steps below.
Step 4: Enter DFU Mode
The process differs between Generation 1 and Generation 2 devices. Choose the instructions for your device:- Generation 2 (Easy)
- Generation 1 (Advanced)
Gen 2: Simple Reboot Method
Follow these steps carefully:- Boot device on backplate - IMPORTANT: Connect your Nest to the wall backplate and let it fully boot to the home screen. This ensures the battery is charged and the device is ready.
- Remove from wall - Once fully booted, remove the Nest from its back plate/wall mount
- Start the installer - Make sure the
install.shscript is running and waiting for the device - Connect via USB - Plug the Nest into your computer using a micro USB cable
- 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
Step 5: Wait for Boot
After the firmware is flashed successfully, you should see the No Longer Evil 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
Step 6: Register Account
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
Step 7: Link Your Device
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!
Step 8: Reinstall on Wall
Once everything is working:- Align the Nest with the backplate on the wall
- Push gently until it clicks into place
- The device will reconnect to HVAC power and charge
🎉 Success!
Your Nest Thermostat is now running No Longer Evil and connected to your account!What Gets Flashed
The firmware installation process installs three components:- x-load.bin - First-stage bootloader (X-Loader for OMAP)
- u-boot.bin - Second-stage bootloader (Das U-Boot) loaded at address 0x80100000
- uImage - Linux kernel image loaded at address 0x80A00000
Something Went Wrong?
Device won't enter DFU mode
Device won't enter DFU mode
Firmware installer doesn't detect device
Firmware installer doesn't detect device
Thermostat won't boot after flashing
Thermostat won't boot after flashing
See Boot Issues
Entry code doesn't work
Entry code doesn't work
Device won't connect to WiFi
Device won't connect to WiFi
See Network Issues
Credits & Acknowledgments
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
- guyman70718 - cuckoo_loader_gen1 guide and teardown documentation for Gen 1 DFU mode access
- FULU and all bounty backers - For funding the Nest Learning Thermostat Gen 1/2 bounty and supporting the right-to-repair movement
Get Help
Join our Discord community or open a GitHub issue for assistance


