- Custom Firmware für Geräte der 1. und 2. Generation des Nest Thermostat, die Bootloader und Kernel über die OMAP-DFU-Schnittstelle ersetzt
- Nach dem Flashen trennt das Gerät die Verbindung zu Nest-/Google-Servern und wechselt zur Kommunikation mit der unabhängigen NoLongerEvil-Plattform
- Leitet den Netzwerkverkehr auf einen per Reverse Engineering nachgebildeten API-Server um, sodass bestehende Funktionen erhalten bleiben und sich Nutzerdaten sowie Einstellungen vollständig kontrollieren lassen
- Der Installationsprozess umfasst das Wechseln in den DFU-Modus, das Flashen von Bootloadern (
x-load, u-boot) und Kernel (uImage) sowie die Registrierung des Kontos und die Verknüpfung des Geräts
- Ziel ist die Befreiung von Cloud-Abhängigkeit und die Wiederherstellung der Gerätehoheit; außerdem wird die Open-Source-Veröffentlichung und die Unterstützung der Right-to-Repair-Bewegung ausdrücklich genannt
Überblick
- Dieses Projekt stellt Werkzeuge und Images bereit, um Custom Firmware auf dem Nest Thermostat zu installieren
- Es verwendet die OMAP-DFU-(Device Firmware Update)-Schnittstelle, um Bootloader und Kernel zu ersetzen
- Neue Firmware kann nur im DFU-Modus angenommen werden
- Nach dem Flashen kommuniziert das Gerät nicht mehr mit Nest-/Google-Servern, sondern verbindet sich mit der NoLongerEvil-Plattform
- Dadurch erhält der Nutzer die vollständige Kontrolle über Verhalten und Daten des Thermostats
Funktionsweise
- Die Custom Firmware modifiziert Bootloader- und Kernel-Komponenten, um den Netzwerkverkehr auf einen festgelegten Server umzuleiten
- Dieser Server ist ein per Reverse Engineering nachgebildeter Nest-API-Server, sodass das Gerät unabhängig betrieben werden kann
- Durch das Abfangen der Kommunikationsschicht wird dem Gerät vermittelt, dass es mit der offiziellen Nest-Infrastruktur verbunden ist
- So bleiben Kompatibilität mit der bestehenden Software erhalten und die Abhängigkeit von der Google-Cloud entfällt
Installationsverfahren
- Nach dem Klonen des Repositorys werden je nach OS die erforderlichen Pakete (u. a. libusb) installiert
- Linux:
build-essential, libusb-1.0-0-dev, gcc, pkg-config
- macOS: Xcode Command Line Tools und libusb-Installation über Homebrew
- Durch Ausführen von
build.sh wird das OS automatisch erkannt und das Tool omap_loader gebaut
- Vor dem Ausführen von
install.sh muss das Gerät in den DFU-Modus versetzt werden
- Ladezustand prüfen (mindestens 50 %), von der Wand abnehmen, per USB verbinden, neu starten (10–15 Sekunden gedrückt halten)
- Beim Eintritt in den DFU-Modus werden
x-load, u-boot, uImage automatisch geflasht
- Nach Abschluss des Bootvorgangs wird das NoLongerEvil-Logo angezeigt; der Vorgang dauert etwa 3–4 Minuten
- Auf der Website nolongerevil.com ein Konto registrieren und anschließend das Gerät verknüpfen
- Auf dem Nest-Gerät unter Settings → Nest App → Get Entry Code den Code anzeigen lassen
- Nach Eingabe des Codes im Dashboard ist die Geräteverbindung abgeschlossen
Geflashte Komponenten
- Bei der Installation werden drei zentrale Binärdateien geflasht
- x-load.bin – Bootloader der ersten Stufe (X-Loader für OMAP)
- u-boot.bin – Bootloader der zweiten Stufe (Das U-Boot, Adresse
0x80100000)
- uImage – Linux-Kernel-Image (Adresse
0x80A00000)
- Nach dem Flashen startet das Gerät die Ausführung bei
0x80100000 (u-boot)
Sicherheit und Hinweise
- Dieses Tool bietet Low-Level-Zugriff auf den Bootprozess des Geräts
- Die Verwendung wird nur bei Geräten empfohlen, die sich im Eigentum des Nutzers befinden
- Falsche Firmware kann das Gerät beschädigen oder unbrauchbar machen (bricken)
- Es handelt sich um experimentelle Software; von der Nutzung in für Heizung oder Kühlung unverzichtbaren Geräten wird abgeraten
Credits und Open-Source-Zusage
- Die zugrunde liegende Technik basiert auf der Arbeit mehrerer Sicherheitsforscher
- grant-h / ajb142: OMAP-USB-Bootloader-Tool
omap_loader
- exploiteers (GTVHacker): Forschung zum Nest-DFU-Angriff, die die Möglichkeit von Custom Firmware auf Geräten der 1. und 2. Generation belegt
- FULU und Unterstützer: Bug-Bounty-Unterstützung für Nest Learning Thermostat Gen 1/2
- Das Projekt unterstützt Transparenz und die Right-to-Repair-Bewegung
- Die Firmware-Images und der Backend-API-Server-Code sollen in Kürze als Open Source veröffentlicht werden
- Die Community soll dadurch eigene Infrastruktur prüfen, verbessern und hosten können
Referenzmaterial
1 Kommentare
Hacker-News-Kommentare
Wenn dein Heizkessel OpenTherm unterstützt, würde ich das SAT-Thermostat-Projekt empfehlen
Es unterstützt Wetterkompensation, Teillastkompensation und PID-Regelung, sodass mit der vom Temperatursensor unterstützten Genauigkeit geregelt wird (in meinem Fall ±0,02 °C)
Gesteuert wird es über Home Assistant, und man bekommt gleichzeitig Energieeinsparung und Komfort
Echtzeitdaten lassen sich im Grafana-Dashboard oder in Emoncms ansehen
Ecobee unterstützt zum Beispiel keine mehrstufige Regelung des Heizkessels und ist auch nicht mit der Wärmepumpe integriert, sodass zwischen den Räumen Temperaturungleichgewichte entstehen
Irgendwann möchte ich im ganzen Haus HA-Temperatursensoren installieren, damit automatisch entschieden wird, welches System je nach Tageszeit bevorzugt laufen soll
Damit war mein OpenTherm-Versuch dann beendet
Das wirkt einfach so, als würde man statt Google einen anderen geschlossenen Dienst namens NoLongerEvil verwenden
Wie der Name auch lautet, ob sie vertrauenswürdig sind, lässt sich nicht sagen.
Wirklich vertrauenswürdig wäre es aus meiner Sicht erst mit vollständig Open-Source-Firmware und Backend
Im Moment ist es eher so, dass die Google-Firmware gehackt und der Traffic auf andere Server umgeleitet wird, deshalb hoffe ich auf ein veröffentlichtes selbst hostbares Backend und einen offengelegten Build-Prozess
Bearbeitung: Ich freue mich darauf, dass das Backend bald als Open Source veröffentlicht werden soll
Es ist nicht perfekt, aber es hat trotzdem einen Wert, tote Geräte wieder nutzbar zu machen
Vom Nest-Controller bis zum Minecraft-Server würde ich das gern mit leichtgewichtigem Kubernetes verwalten und so betreiben, dass ich bei Bedarf einfach Knoten austauschen kann
Aktuell ist es einfach nur ein Firmware-Image, das sich mit einem geschlossenen Dienst verbindet
Man kann nicht einmal ändern, wohin es sich verbindet, und es gibt auch keine Datenschutzerklärung
Die Anmeldung erfolgt über ein GitHub-Konto von Microsoft, die Authentifizierung übernimmt clerk.com
Es soll bald Open Source werden, also warte ich erst einmal ab
Dass es noch keine Datenschutzrichtlinie gibt, kann ich in diesem frühen Stadium nachvollziehen
Auf der „Open Source“-Seite der Dashboard-Website gibt es nur die Firmware und keinen serverseitigen Code
Nur mit der Firmware allein lässt sich das kaum als vollständig freie Software betrachten
Bearbeitung: Bei genauerem Hinsehen steht dort, dass auch das Backend bald als Open Source veröffentlicht wird
Zugehöriges GitHub-Issue
Es gibt eine Warnung, dass man diese Firmware nicht in Thermostaten verwenden soll, die für Heizung/Kühlung essenziell sind
Ich hatte früher einmal einen Thermostatdefekt, durch den die Temperatur im Haus auf ein gefährliches Niveau stieg, deshalb sollte man solche Warnungen ernst nehmen
Ich werde meinen seit Jahrzehnten zuverlässig funktionierenden analogen runden Honeywell-Thermostat weiter benutzen
Ich habe mich für einen anderen Ansatz entschieden und selbst eine neue PCB entworfen
So ist 100% Firmware-Kontrolle möglich, und ich habe den Reverse-Engineering-Prozess der LCD-Schnittstelle geteilt
Ich hoffe, Codys Exploit macht es möglich, komplett neue Firmware zu schreiben
Ich hoffe wirklich, dass dieses Projekt Erfolg hat
Ich habe früher mit dem Entwicklungsteam für Nest der 1. und 2. Generation zusammengearbeitet, und dieses Team hat das Produkt ernst genommen
Sie hätten sich nicht für eine Abschaltung des Dienstes auf diese Weise entschieden
Auch als wir noch dort waren, wurden unsere Meinungen nicht berücksichtigt
Der Satz „Wir engagieren uns für Transparenz und die Right-to-Repair-Bewegung“ macht mir Hoffnung
Es ist wirklich absurd, dass ein Unternehmen, das angeblich an die Umwelt denkt, auf diese Weise Geräte seiner Nutzer zu Müll macht
Es wirkt einfach wie eine Entscheidung, um Cloud-Kosten zu sparen oder neue Produkte zu verkaufen
Solche Unternehmen verfolgen nur Gewinn statt Umweltschutz.
Außerdem sind manche von ihnen auch in internationale Konflikte und Menschenrechtsprobleme verwickelt
UN-Bericht-Link
Ich suche nach einem Thermostat mit möglichst geringer Cloud-Abhängigkeit
Ich nutze zwei Nest-Geräte und finde das inzwischen sehr frustrierend, deshalb möchte ich ein Produkt, das sich direkt mit Home Assistant integrieren lässt
Produkte, die sowohl WLAN als auch eine API unterstützen, gibt es fast nicht; nur Venstar kommt dem noch am ehesten nahe, aber wegen des instabilen WLAN-Moduls habe ich es aufgegeben
Auch die Firmware-Struktur ist ungewöhnlich, deshalb versuche ich es nicht weiter
Auch in Home Assistant funktioniert es über die HomeKit-Anbindung gut