- Firmware personnalisé pour les appareils Nest Thermostat de 1re et 2e génération, conçu pour remplacer le bootloader et le noyau via l’interface OMAP DFU
- Après le flash, l’appareil cesse de se connecter aux serveurs Nest/Google et bascule pour communiquer avec la plateforme indépendante NoLongerEvil
- Le trafic réseau est redirigé vers un serveur API rétroconçu, ce qui permet de conserver les fonctions existantes tout en donnant un contrôle total sur les données et les réglages utilisateur
- Le processus d’installation comprend l’entrée en mode DFU, le flash du bootloader (
x-load, u-boot) et du noyau (uImage), puis l’enregistrement du compte et l’association de l’appareil
- L’objectif est de supprimer la dépendance au cloud et de restaurer la propriété de l’appareil, avec une volonté affichée d’open source et de soutien au mouvement right-to-repair
Vue d’ensemble
- Ce projet fournit des outils et des images pour installer un firmware personnalisé sur un Nest Thermostat
- Utilise l’interface OMAP DFU (Device Firmware Update) pour remplacer le bootloader et le noyau
- Le nouvel firmware ne peut être accepté qu’en mode DFU
- Après le flash, l’appareil ne communique plus avec les serveurs Nest/Google et se connecte à la plateforme NoLongerEvil
- Cela permet à l’utilisateur d’obtenir un contrôle total sur le fonctionnement et les données du thermostat
Fonctionnement
- Le firmware personnalisé modifie les composants du bootloader et du noyau pour rediriger le trafic réseau vers un serveur spécifié
- Ce serveur est un clone de serveur Nest API rétroconçu, permettant à l’appareil de fonctionner de façon autonome
- En interceptant la couche de communication, l’appareil est amené à croire qu’il est connecté à l’infrastructure officielle de Nest
- Cette approche permet de préserver la compatibilité avec le logiciel existant tout en supprimant la dépendance au cloud de Google
Procédure d’installation
- Après avoir cloné le dépôt, installer les paquets requis (libusb, etc.) selon l’OS
- Linux :
build-essential, libusb-1.0-0-dev, gcc, pkg-config
- macOS : Xcode Command Line Tools et installation de libusb via Homebrew
- Exécuter
build.sh pour détecter automatiquement l’OS puis compiler l’outil omap_loader
- Avant d’exécuter
install.sh, il faut basculer l’appareil en mode DFU
- Vérifier la charge (au moins 50 %), retirer l’appareil du mur, connecter l’USB, redémarrer (maintenir 10 à 15 secondes)
- Une fois en mode DFU, le flash de
x-load, u-boot, uImage s’effectue automatiquement
- Une fois le démarrage terminé, le logo NoLongerEvil s’affiche ; compter environ 3 à 4 minutes
- Enregistrer un compte sur le site nolongerevil.com, puis associer l’appareil
- Sur l’appareil Nest : Settings → Nest App → Get Entry Code pour afficher le code
- La connexion de l’appareil est terminée une fois le code saisi dans le tableau de bord
Composants flashés
- Trois binaires principaux sont flashés pendant l’installation
- x-load.bin – bootloader de premier niveau (X-Loader for OMAP)
- u-boot.bin – bootloader de second niveau (Das U-Boot, adresse
0x80100000)
- uImage – image du noyau Linux (adresse
0x80A00000)
- Après le flash, l’appareil démarre à partir de
0x80100000 (u-boot)
Sécurité et précautions
- Cet outil fournit un accès bas niveau au processus de boot de l’appareil
- Son usage est recommandé uniquement sur un appareil appartenant à l’utilisateur
- Un firmware incorrect présente un risque d’endommagement irréversible de l’appareil (brick)
- Il s’agit d’un logiciel expérimental ; son usage est déconseillé sur un appareil essentiel au chauffage ou à la climatisation
Crédits et engagement open source
- La technologie sous-jacente s’appuie sur les travaux de plusieurs chercheurs en sécurité
- grant-h / ajb142 : outil de bootloader USB OMAP
omap_loader
- exploiteers (GTVHacker) : recherche sur l’attaque Nest DFU ayant démontré la possibilité d’un firmware personnalisé sur les appareils de 1re et 2e génération
- FULU et ses soutiens : programme de bug bounty pour Nest Learning Thermostat Gen 1/2
- Le projet soutient la transparence et le mouvement right-to-repair
- Les images du firmware et le code du serveur API backend seront bientôt publiés en open source
- Avec l’objectif de permettre à la communauté d’auditer, d’améliorer et d’héberger sa propre infrastructure
Références
1 commentaires
Commentaires sur Hacker News
Si votre chaudière prend en charge OpenTherm, je recommande d’essayer le projet de thermostat SAT
Il permet la compensation météo, la compensation à faible charge et le contrôle PID, avec une régulation à la précision prise en charge par le capteur de température (dans mon cas ±0.02°C)
Le pilotage se fait avec Home Assistant, ce qui permet d’avoir à la fois des économies d’énergie et un meilleur confort
Les données en temps réel sont visibles sur un tableau de bord Grafana ou sur Emoncms
Par exemple, Ecobee ne prend pas en charge le contrôle à plusieurs niveaux de la chaudière et ne s’intègre pas non plus avec la pompe à chaleur, ce qui crée des déséquilibres de température d’une pièce à l’autre
Un jour, j’aimerais installer des capteurs de température HA dans toute la maison pour décider automatiquement quel système faire passer en priorité selon l’heure
Mon essai avec OpenTherm s’est arrêté là
Cela ressemble simplement à l’utilisation d’un autre service fermé, NoLongerEvil, à la place de Google
Quel que soit son nom, on ne sait pas s’il est digne de confiance.
Pour qu’il le soit vraiment, je pense qu’il faut un firmware et un backend entièrement open source
Pour l’instant, on en est à détourner le trafic du firmware Google vers un autre serveur, donc j’aimerais voir un backend auto-hébergeable et un processus de build publiés
Modification : il semble que le backend sera bientôt publié en open source, donc j’attends ça avec intérêt
Ce n’est pas parfait, mais permettre de réutiliser des appareils morts a tout de même de la valeur
Depuis le contrôleur Nest jusqu’au serveur Minecraft, je voudrais tout gérer avec Kubernetes léger, en remplaçant des nœuds au besoin
Pour l’instant, ce n’est qu’une image firmware connectée à un service fermé
On ne peut même pas changer la destination de connexion, et il n’y a aucune politique de confidentialité
La connexion se fait avec un compte GitHub appartenant à Microsoft, et l’authentification est gérée par clerk.com
Puisque cela doit bientôt devenir open source, j’attends de voir
Je peux comprendre l’absence actuelle de politique de confidentialité, vu que le projet en est encore à ses débuts
Sur la page "Open Source" du site du tableau de bord, il n’y a que le firmware, sans code côté serveur
Avec le seul firmware, il est difficile de considérer cela comme un logiciel entièrement libre
Modification : en regardant de plus près, il est indiqué que le backend sera bientôt lui aussi publié en open source
Issue GitHub associée
Il y a un avertissement disant de ne pas utiliser ce firmware sur un thermostat indispensable au chauffage ou à la climatisation
Ayant déjà subi une panne de thermostat qui a fait monter la température de la maison à un niveau dangereux, je pense qu’il faut prendre ce genre d’avertissement au sérieux
Moi, je compte continuer à utiliser mon thermostat analogique Honeywell rond qui fonctionne très bien depuis des décennies
J’ai choisi une autre approche et j’ai conçu moi-même une nouvelle carte PCB
Je l’ai faite pour permettre un contrôle firmware à 100 %, et j’ai partagé le processus de rétro-ingénierie de l’interface LCD
J’espère que l’exploit de Cody permettra d’écrire un firmware complètement nouveau
J’espère vraiment que ce projet réussira
J’ai autrefois travaillé avec l’équipe de développement des Nest 1re et 2e générations, et cette équipe tenait vraiment au produit
Ils n’auraient sans doute jamais pris la décision d’arrêter le service de cette façon
Même quand nous étions là, nos avis n’étaient pas pris en compte
La phrase disant que « nous sommes engagés en faveur de la transparence et du mouvement pour le droit à la réparation » me donne de l’espoir
C’est vraiment absurde qu’une entreprise qui se disait soucieuse de l’environnement ait transformé de cette façon les appareils de ses utilisateurs en déchets
On dirait une décision prise simplement pour réduire les coûts du cloud ou vendre de nouveaux produits
Ces entreprises ne poursuivent que le profit, pas la protection de l’environnement.
Certaines sont en plus impliquées dans des conflits internationaux et des questions de droits humains
Lien vers le rapport de l’ONU
Je cherche un thermostat moins dépendant du cloud
J’utilise deux Nest et c’est devenu trop frustrant, donc je veux un produit qui s’intègre directement à Home Assistant
Les produits qui prennent en charge à la fois le WiFi et une API sont presque inexistants, et Venstar est à peu près le seul à le faire, mais j’ai abandonné à cause de son module WiFi instable
La structure du firmware est aussi particulière, donc je n’essaie plus
Dans Home Assistant aussi, cela fonctionne bien via l’intégration HomeKit d’Apple