2 points par GN⁺ 2025-11-05 | 1 commentaires | Partager sur WhatsApp
  • 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
    1. x-load.bin – bootloader de premier niveau (X-Loader for OMAP)
    2. u-boot.bin – bootloader de second niveau (Das U-Boot, adresse 0x80100000)
    3. 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

 
GN⁺ 2025-11-05
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

    • Ce projet m’intéresse aussi beaucoup. J’utilise une combinaison chaudière Vitodens 100 + Ecobee + pompe à chaleur, mais chaque système fonctionne de son côté, ce qui est pénible
      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
    • Je me demande si ce projet fonctionne aussi avec les systèmes HVAC à air pulsé
    • Quand j’ai remplacé autrefois une chaudière Vaillant, j’ai essayé d’installer moi-même une carte OpenTherm, mais le fabricant me l’a interdit en disant que cela annulerait la garantie
      Mon essai avec OpenTherm s’est arrêté là
    • Sur une vieille chaudière Worcester Bosch, j’utilise ems-esp pour contrôler la température de départ en fonction de la température extérieure. C’est aussi géré avec Home Assistant
    • Je me demande s’il existe un bon contrôleur multizone pour Home Assistant
  • 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

    • Google a déjà abandonné ces appareils. À ce stade, j’y vois simplement une tentative de redonner vie à des déchets électroniques
      Ce n’est pas parfait, mais permettre de réutiliser des appareils morts a tout de même de la valeur
    • J’aimerais monter un petit serveur en pile de SBC pour faire tourner moi-même plusieurs services à la maison
      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 trouve ce projet génial. Le fait d’avoir rétroconçu le Nest Thermostat pour créer un nouveau firmware est impressionnant
      Je peux comprendre l’absence actuelle de politique de confidentialité, vu que le projet en est encore à ses débuts
    • Je pense que ce genre de réaction négative explique pourquoi les bons projets ont du mal à avancer en ligne
  • 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

    • Il dit attendre la soumission de code bug bounty proposée par Louis Rossman. Si cela se concrétise, ce serait formidable
      Issue GitHub associée
    • J’ai désormais du mal à croire aux promesses de « bientôt publié »
  • 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

    • Ce n’est qu’une clause de non-responsabilité.
      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

    • Il ne reste aujourd’hui plus personne de cette époque chez Google.
      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

    • Ce n’est pas parce qu’il n’y a plus de connexion réseau qu’il faut jeter un thermostat qui fonctionne
    • Le marketing est au fond l’art du mensonge.
      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

    • Il existe aussi des thermostats Z-Wave plutôt que WiFi, mais je préfère HTTP ou MQTT
      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
    • Ecobee nécessite toujours une connexion cloud, mais un contrôle local est possible via l’intégration HomeKit
      Dans Home Assistant aussi, cela fonctionne bien via l’intégration HomeKit d’Apple