2 pontos por GN⁺ 2025-11-05 | 1 comentários | Compartilhar no WhatsApp
  • Firmware customizado para dispositivos Nest Thermostat de 1ª e 2ª geração, com estrutura que substitui o bootloader e o kernel pela interface OMAP DFU
  • Após o flashing, o dispositivo interrompe a conexão com os servidores da Nest/Google e passa a se comunicar com a plataforma independente NoLongerEvil
  • Redireciona o tráfego de rede para um servidor de API obtido por engenharia reversa, mantendo as funções existentes enquanto permite controle total dos dados e das configurações pelo usuário
  • O processo de instalação é composto por entrada no modo DFU, flashing do bootloader (x-load, u-boot) e do kernel (uImage), além das etapas de cadastro da conta e vinculação do dispositivo
  • Tem como objetivo eliminar a dependência da nuvem e recuperar a propriedade do dispositivo, além de declarar apoio ao open source e ao movimento right-to-repair

Visão geral

  • Este projeto fornece ferramentas e imagens para instalar firmware customizado no Nest Thermostat
    • Usa a interface OMAP DFU (Device Firmware Update) para substituir o bootloader e o kernel
    • O novo firmware só pode ser aceito no modo DFU
  • Após o flashing, o dispositivo não se comunica com os servidores da Nest/Google e se conecta à plataforma NoLongerEvil
    • Com isso, o usuário obtém controle total sobre o funcionamento e os dados do termostato

Como funciona

  • O firmware customizado modifica componentes do bootloader e do kernel para redirecionar o tráfego de rede a um servidor especificado
    • Esse servidor é uma réplica do servidor da API da Nest obtida por engenharia reversa, permitindo que o dispositivo opere de forma independente
  • A camada de comunicação é interceptada para que o dispositivo reconheça como se estivesse conectado à infraestrutura oficial da Nest
    • Dessa forma, mantém a compatibilidade com o software existente e remove a dependência da nuvem do Google

Procedimento de instalação

  • Após clonar o repositório, instale os pacotes necessários (como libusb) de acordo com o sistema operacional
    • Linux: build-essential, libusb-1.0-0-dev, gcc, pkg-config
    • macOS: Xcode Command Line Tools e instalação do libusb via Homebrew
  • Execute build.sh para detectar automaticamente o sistema operacional e compilar a ferramenta omap_loader
  • Antes de executar install.sh, é preciso colocar o dispositivo no modo DFU
    • Verifique a carga da bateria (50% ou mais), remova da parede, conecte via USB e reinicie (segure por 10 a 15 segundos)
    • Ao entrar no modo DFU, o flashing de x-load, u-boot, uImage é feito automaticamente
  • Após a conclusão da inicialização, o logotipo NoLongerEvil é exibido; o processo leva cerca de 3 a 4 minutos
  • Registre uma conta no site nolongerevil.com e depois vincule o dispositivo
    • No dispositivo Nest, acesse Settings → Nest App → Get Entry Code para verificar o código
    • Ao inserir o código no painel, a conexão do dispositivo é concluída

Componentes gravados no flashing

  • Durante a instalação, três binários principais são gravados
    1. x-load.bin – bootloader de primeiro estágio (X-Loader for OMAP)
    2. u-boot.bin – bootloader de segundo estágio (Das U-Boot, endereço 0x80100000)
    3. uImage – imagem do kernel Linux (endereço 0x80A00000)
  • Após o flashing, o dispositivo inicia a execução em 0x80100000 (u-boot)

Segurança e cuidados

  • Esta ferramenta fornece acesso de baixo nível ao processo de boot do dispositivo
    • Recomenda-se o uso apenas em dispositivos de propriedade do usuário
    • Firmware incorreto pode causar danos ao dispositivo (brick)
  • Por se tratar de software experimental, recomenda-se não usar em dispositivos essenciais para aquecimento ou resfriamento

Créditos e compromisso com open source

  • A tecnologia de base depende do trabalho de vários pesquisadores de segurança
    • grant-h / ajb142: ferramenta de bootloader USB para OMAP omap_loader
    • exploiteers (GTVHacker): a pesquisa Nest DFU Attack demonstrou a viabilidade de firmware customizado em dispositivos de 1ª e 2ª geração
    • FULU e apoiadores: suporte ao bug bounty do Nest Learning Thermostat Gen 1/2
  • O projeto apoia a transparência e o movimento right-to-repair
    • As imagens de firmware e o código do servidor de API de backend devem ser disponibilizados em open source em breve
    • A ideia é permitir que a comunidade audite, melhore e hospede sua própria infraestrutura

Materiais de referência

1 comentários

 
GN⁺ 2025-11-05
Comentários do Hacker News
  • Se a sua caldeira suportar OpenTherm, recomendo usar o projeto de termostato SAT
    Ele permite compensação climática, compensação de baixa carga e controle PID, então o controle fica na precisão suportada pelo sensor de temperatura (no meu caso, ±0,02°C)
    É operado pelo Home Assistant, e dá para ganhar economia de energia e conforto ao mesmo tempo
    Os dados em tempo real podem ser vistos no dashboard do Grafana ou no Emoncms

    • Também tenho muito interesse nesse projeto. Uso uma combinação de caldeira Vitodens 100 + Ecobee + bomba de calor, e é incômodo porque cada sistema funciona separado
      Por exemplo, o Ecobee não suporta controle em múltiplos estágios da caldeira, e também não se integra com a bomba de calor, então há desequilíbrio de temperatura entre os cômodos
      Um dia quero instalar sensores de temperatura do HA pela casa toda, para decidir automaticamente qual sistema priorizar em cada horário
    • Fico curioso se esse projeto também funciona com HVAC de ar forçado
    • No passado, ao trocar uma caldeira Vaillant, tentei instalar eu mesmo uma placa OpenTherm, mas o fabricante impediu dizendo que isso anularia a garantia
      No fim, minha tentativa com OpenTherm terminou ali
    • Em uma caldeira Worcester Bosch antiga, estou usando ems-esp para controlar a temperatura de ida com base na temperatura externa. Isso também é gerenciado pelo Home Assistant
    • Queria saber se existe algum controlador multizona bom para Home Assistant
  • Isso parece simplesmente usar outro serviço fechado chamado NoLongerEvil no lugar do Google
    Seja qual for o nome, não tem como saber se eles são confiáveis.
    Para ser realmente confiável, acho que seria necessário firmware e backend totalmente open source
    No momento, está mais no nível de hackear o firmware do Google e redirecionar o tráfego para outro servidor, então espero que publiquem um backend auto-hospedável e o processo de build
    Edit: estou animado ao saber que pretendem abrir o código do backend em breve

    • O Google já abandonou esses dispositivos. No momento, vejo isso apenas como uma tentativa de ressuscitar lixo eletrônico
      Mesmo não sendo perfeito, já tem valor permitir que um aparelho morto volte a ser usado
    • Quero montar um pequeno servidor em pilha de SBCs para rodar vários serviços da casa por conta própria
      Desde o controlador do Nest até um servidor de Minecraft, quero administrar tudo com Kubernetes leve e operar trocando nós sempre que necessário
  • No estado atual, isso é apenas uma imagem de firmware que se conecta a um serviço fechado
    Nem dá para mudar para onde ela se conecta, e também não há política de privacidade
    O login é feito com conta do GitHub, de propriedade da Microsoft, e a autenticação é processada pelo clerk.com
    Como deve se tornar open source em breve, vou esperar

    • Acho esse projeto muito legal. É impressionante terem feito engenharia reversa do Nest Thermostat para criar um novo firmware
      Consigo entender a falta de política de privacidade por ainda estar em estágio inicial
    • Acho que esse tipo de reação negativa é um dos motivos pelos quais bons projetos têm dificuldade na internet
  • A página "Open Source" do site do dashboard tem apenas o firmware e não inclui o código do lado do servidor
    Só o firmware torna difícil considerar isso software totalmente livre
    Edit: olhando com mais atenção, diz que o backend também será open source em breve

    • Dizem que estão esperando o envio de código do bug bounty proposto por Louis Rossman. Se der certo, pode ficar muito legal
      Issue relacionada no GitHub
    • Já não consigo confiar muito nesse papo de “vai sair em breve”
  • Há um aviso dizendo para não usar este firmware em um termostato essencial para aquecimento/refrigeração
    Já tive uma experiência em que uma falha no termostato fez a temperatura da casa subir a níveis perigosos, então esse tipo de aviso deve ser levado a sério

    • Isso é só uma cláusula de isenção de responsabilidade.
      Pretendo continuar usando meu termostato analógico redondo da Honeywell, que funciona bem há décadas
  • Tomei outra abordagem e projetei uma nova PCB eu mesmo
    Fiz isso de forma que fosse possível ter 100% de controle do firmware, e compartilhei o processo de engenharia reversa da interface LCD
    Espero que o exploit do Cody permita gravar um firmware totalmente novo

  • Espero muito que esse projeto dê certo
    No passado, trabalhei com a equipe de desenvolvimento do Nest de 1ª e 2ª geração, e aquele time realmente se importava com o produto
    Eles não teriam tomado a decisão de encerrar o serviço dessa forma

    • Hoje já não sobrou ninguém daquela época no Google.
      Mesmo quando ainda estávamos lá, nossas opiniões não eram levadas em conta
  • Fiquei esperançoso ao ver a frase de que eles estão comprometidos com a transparência e com o movimento pelo direito ao reparo

  • É realmente absurdo uma empresa que dizia se preocupar com o meio ambiente ter transformado os aparelhos dos usuários em lixo desse jeito
    Parece apenas uma decisão para economizar custos de nuvem ou vender produtos novos

    • Só porque não há conexão de rede, não significa que seja preciso jogar fora um termostato funcional
    • Marketing é, no fim, a arte da mentira.
      Empresas assim buscam lucro acima do meio ambiente.
      Além disso, algumas delas também estão envolvidas em conflitos internacionais e questões de direitos humanos
      Link para o relatório da ONU
  • Estou procurando um termostato com menos dependência da nuvem
    Uso dois Nest e isso é frustrante demais, então quero um produto que se integre diretamente ao Home Assistant

    • Existem termostatos baseados em Z-Wave em vez de Wi‑Fi, mas eu prefiro HTTP ou MQTT
      Quase não há produtos que suportem Wi‑Fi + API ao mesmo tempo; a Venstar era praticamente a única opção, mas desisti por causa do módulo Wi‑Fi instável
      A estrutura do firmware também era estranha, então não tentei mais
    • O Ecobee ainda exige conexão com a nuvem, mas o controle local é possível via integração com HomeKit
      No Home Assistant ele também funciona bem por meio da integração com HomeKit