# NoLongerEvil-Thermostat – Nest 1세대·2세대용 펌웨어

> Clean Markdown view of GeekNews topic #24154. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=24154](https://news.hada.io/topic?id=24154)
- GeekNews Markdown: [https://news.hada.io/topic/24154.md](https://news.hada.io/topic/24154.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-11-05T11:32:52+09:00
- Updated: 2025-11-05T11:32:52+09:00
- Original source: [github.com/codykociemba](https://github.com/codykociemba/NoLongerEvil-Thermostat)
- Points: 2
- Comments: 1

## Topic Body

- Nest Thermostat의 **1·2세대 기기용 커스텀 펌웨어**로, OMAP DFU 인터페이스를 통해 부트로더와 커널을 교체하는 구조  
- 플래싱 후 기기는 **Nest/Google 서버와의 연결을 중단**하고, 독립적인 **NoLongerEvil 플랫폼**과 통신하도록 전환  
- 네트워크 트래픽을 **역공학된 API 서버**로 리디렉션해 기존 기능을 유지하면서 사용자 데이터와 설정을 완전 제어 가능  
- 설치 과정은 DFU 모드 진입, 부트로더(x-load, u-boot) 및 커널(uImage) 플래싱, 계정 등록 및 기기 연동 단계로 구성  
- **클라우드 종속 해제와 기기 소유권 회복**을 목표로 하며, 오픈소스 공개와 **right-to-repair 운동** 지지를 명시  

---

### 개요
- 이 프로젝트는 **Nest Thermostat**에 커스텀 펌웨어를 설치하기 위한 도구와 이미지 제공  
  - OMAP DFU(Device Firmware Update) 인터페이스를 사용해 부트로더와 커널을 교체  
  - DFU 모드에서만 새로운 펌웨어 수용 가능  
- 플래싱 후 기기는 **Nest/Google 서버와 통신하지 않으며**, **NoLongerEvil 플랫폼**과 연결  
  - 이를 통해 사용자가 온도조절기 동작과 데이터에 대한 완전한 제어 확보  

### 작동 방식
- 커스텀 펌웨어는 **부트로더와 커널 구성요소를 수정**해 네트워크 트래픽을 지정된 서버로 리디렉션  
  - 해당 서버는 **Nest API를 역공학한 복제 서버**로, 기기가 독립적으로 작동 가능  
- 통신 계층을 가로채어 기기가 공식 Nest 인프라와 연결된 것처럼 인식하게 함  
  - 이 방식으로 **기존 소프트웨어와의 호환성 유지** 및 **Google 클라우드 의존성 제거**  

### 설치 절차
- 리포지토리 클론 후, OS별로 **필수 패키지(libusb 등)** 설치  
  - Linux: `build-essential`, `libusb-1.0-0-dev`, `gcc`, `pkg-config`  
  - macOS: Xcode Command Line Tools 및 Homebrew 기반 libusb 설치  
- `build.sh` 실행으로 OS 자동 감지 후 **omap_loader 도구 빌드**  
- `install.sh` 실행 전 기기를 DFU 모드로 전환해야 함  
  - 충전 상태 확인(50% 이상), 벽면 분리, USB 연결, 재부팅(10~15초 누름)  
  - DFU 모드 진입 시 자동으로 **x-load, u-boot, uImage** 플래싱  
- 부팅 완료 후 **NoLongerEvil 로고 표시**, 약 3~4분 소요  
- 웹사이트 [nolongerevil.com](https://nolongerevil.com)에서 계정 등록 후 기기 연동  
  - Nest 기기에서 **Settings → Nest App → Get Entry Code**로 코드 확인  
  - 대시보드에 코드 입력 시 기기 연결 완료  

### 플래싱 구성 요소
- 설치 시 세 가지 주요 바이너리 플래싱  
  1. **x-load.bin** – 1단계 부트로더 (X-Loader for OMAP)  
  2. **u-boot.bin** – 2단계 부트로더 (Das U-Boot, 주소 0x80100000)  
  3. **uImage** – Linux 커널 이미지 (주소 0x80A00000)  
- 플래싱 후 기기는 0x80100000(u-boot)에서 실행 시작  

### 보안 및 주의사항
- 이 도구는 **기기 부트 프로세스에 대한 저수준 접근**을 제공  
  - 사용자 소유 기기에서만 사용 권장  
  - 잘못된 펌웨어는 기기 손상(브릭) 위험 존재  
- 실험적 소프트웨어로, **난방·냉방에 필수적인 기기에는 사용 금지** 권고  

### 크레딧 및 오픈소스 약속
- 기반 기술은 여러 보안 연구자들의 연구에 의존  
  - **grant-h / ajb142**: OMAP USB 부트로더 도구 `omap_loader`  
  - **exploiteers (GTVHacker)** : Nest DFU Attack 연구로 1·2세대 기기 커스텀 펌웨어 가능성 입증  
  - **FULU** 및 후원자들: Nest Learning Thermostat Gen 1/2 버그바운티 지원  
- 프로젝트는 **투명성과 right-to-repair 운동**을 지지  
  - 펌웨어 이미지와 백엔드 API 서버 코드를 **곧 오픈소스로 공개 예정**  
  - 커뮤니티가 자체 인프라를 감사·개선·호스팅할 수 있도록 지원  

### 참고 자료
- [OMAP Loader by ajb142](https://github.com/ajb142/omap_loader)  
- [Nest DFU Attack by exploiteers](https://github.com/exploiteers/NestDFUAttack)

## Comments



### Comment 45895

- Author: neo
- Created: 2025-11-05T11:32:52+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=45813343) 
- 보일러가 **OpenTherm**을 지원한다면 [SAT 온도조절기 프로젝트](https://github.com/Alexwijn/SAT)를 써보길 추천함  
  날씨 보정, 저부하 보정, PID 제어가 가능해서 온도 센서가 지원하는 정밀도(내 경우 ±0.02°C)로 제어됨  
  **Home Assistant**로 조작하며, 에너지 절약과 쾌적함을 동시에 얻을 수 있음  
  실시간 데이터는 [Grafana 대시보드](https://gasboiler.grafana.net/public-dashboards/8d44381aafa94fe9bdc87839d8845ada)나 [Emoncms](https://emoncms.org/app/view?name=MyBoilerIdealLogicH24OpenthermSAT&readkey=1d29c637a4817acdf6e6e271850c9026)에서 볼 수 있음
  - 나도 이 프로젝트에 관심이 많음. **Vitodens 100 보일러 + Ecobee + 히트펌프** 조합을 쓰는데, 각 시스템이 따로 놀아서 불편함  
    예를 들어 Ecobee는 보일러의 다단 제어를 지원하지 않고, 히트펌프와도 연동되지 않아 방마다 온도 불균형이 생김  
    언젠가 집 전체에 **HA 온도 센서**를 설치해서, 시간대별로 어떤 시스템을 우선 가동할지 자동으로 결정하도록 만들고 싶음
  - 이 프로젝트가 **강제 송풍 HVAC**에도 작동하는지 궁금함
  - 예전에 Vaillant 보일러를 교체하면서 OpenTherm 보드를 직접 설치하려 했는데, 제조사에서 **보증 무효**라며 막았음  
    결국 OpenTherm 시도는 거기서 끝났음
  - 오래된 Worcester Bosch 보일러에는 **ems-esp**를 써서 외기 온도 기반으로 유량 온도를 제어하고 있음. 역시 Home Assistant로 관리함
  - Home Assistant용 **멀티존 제어기** 중 괜찮은 게 있는지 궁금함

- 이건 단순히 Google 대신 **NoLongerEvil**이라는 또 다른 폐쇄형 서비스를 쓰는 것처럼 보임  
  이름이 뭐든, 그들이 신뢰할 만한지는 알 수 없음.  
  진짜로 믿을 수 있으려면 **완전한 오픈소스 펌웨어와 백엔드**가 필요하다고 생각함  
  지금은 Google 펌웨어를 해킹해서 트래픽을 다른 서버로 돌리는 수준이라, **자체 호스팅 가능한 백엔드**와 빌드 프로세스가 공개되길 바람  
  수정: 백엔드를 곧 오픈소스로 공개할 예정이라니 기대 중임
  - Google은 이미 이 기기들을 버렸음. 지금은 그저 **e-waste를 되살리는 시도**라고 봄  
    완벽하진 않아도, 죽은 기기를 다시 쓸 수 있게 해주는 건 의미 있음
  - 나는 작은 **SBC 스택 서버**를 만들어 집안의 여러 서비스를 직접 돌리고 싶음  
    Nest 컨트롤러부터 Minecraft 서버까지 **경량 Kubernetes**로 관리하고, 필요할 때마다 노드를 교체하는 식으로 운영하고 싶음

- 현재는 단순히 **폐쇄형 서비스에 연결되는 펌웨어 이미지**일 뿐임  
  어디로 연결되는지도 바꿀 수 없고, **개인정보 처리방침**도 없음  
  로그인은 Microsoft 소유의 GitHub 계정으로 하고, 인증은 clerk.com이 처리함  
  곧 오픈소스화될 예정이라니 기다려봄  
  - 나는 이 프로젝트가 멋지다고 생각함. **Nest Thermostat를 리버스 엔지니어링**해서 새 펌웨어를 만든 거라니 대단함  
    아직 프라이버시 정책이 없는 건 초기 단계라 이해할 수 있음
  - 이런 부정적인 반응이 온라인에서 **좋은 프로젝트가 힘들어지는 이유**라고 생각함

- 대시보드 사이트의 ["Open Source" 페이지](https://nolongerevil.com/)에는 펌웨어만 있고 **서버 측 코드**는 없음  
  펌웨어만으론 완전한 자유 소프트웨어라고 보기 어려움  
  수정: 자세히 보니 곧 백엔드도 오픈소스로 공개된다고 되어 있음
  - Louis Rossman이 제시한 **버그바운티 코드 제출**을 기다리고 있다 함. 잘 풀리면 멋질 듯함  
    [관련 GitHub 이슈](https://github.com/codykociemba/NoLongerEvil-Thermostat/issues/8#issuecomment-3487509464)
  - “곧 공개된다”는 말엔 이제 **신뢰가 잘 안 감**

- “이 펌웨어를 난방/냉방에 필수적인 온도조절기에 사용하지 말라”는 경고가 있음  
  예전에 온도조절기 고장으로 **집안 온도가 위험 수준까지 올라간 경험**이 있어서, 이런 경고는 진지하게 고려해야 함
  - 그건 단순한 면책문구일 뿐임.  
    나는 수십 년째 잘 작동하는 **아날로그 Honeywell 원형 온도조절기**를 계속 쓸 생각임

- 나는 다른 접근을 택해서 **새 PCB를 직접 설계**함  
  100% 펌웨어 제어가 가능하도록 만들었고, [LCD 인터페이스 리버스 엔지니어링 과정](https://sett.homes/blogs/updates/the-lcd-display-reverse-engineering-the-display-interface)을 공유했음  
  Cody의 익스플로잇이 완전히 새 펌웨어를 쓸 수 있게 해주길 기대함

- 이 프로젝트가 꼭 성공하길 바람  
  예전에 **Nest 1세대, 2세대 개발팀**과 함께 일했는데, 그 팀은 제품에 진심이었음  
  그들이 이런 식으로 서비스를 종료하자는 결정을 내리진 않았을 것임
  - 지금은 Google에 그때 사람들 아무도 남아 있지 않음.  
    우리가 있을 때도 **의견이 반영되지 않았음**

- “우리는 **투명성과 수리할 권리 운동**에 헌신하고 있다”는 문구를 보고 기대 중임

- 환경을 생각한다던 회사가 이런 식으로 **사용자 기기를 쓰레기로 만든 것**은 정말 어이없음  
  단지 클라우드 비용을 아끼거나 새 제품을 팔기 위한 결정 같음
  - 네트워크 연결이 안 된다고 해서 **작동하는 온도조절기**를 버릴 필요는 없음
  - 마케팅은 결국 **거짓말의 예술**임.  
    이런 기업들은 환경보다 이익만을 추구함.  
    게다가 일부는 **국제 분쟁과 인권 문제**에도 연루되어 있음  
    [UN 보고서 링크](https://www.ohchr.org/en/press-releases/2025/09/israel-has-committed-genocide-gaza-strip-un-commission-finds)

- **클라우드 의존이 적은 온도조절기**를 찾고 있음  
  Nest 두 대를 쓰는데 너무 답답해서, Home Assistant와 직접 연동되는 제품을 원함
  - WiFi가 아닌 **Z-Wave 기반 온도조절기**도 있지만, 나는 HTTP나 MQTT를 선호함  
    WiFi + API를 모두 지원하는 제품은 거의 없고, Venstar만이 그나마 가능하지만 **불안정한 WiFi 모듈** 때문에 포기했음  
    펌웨어 구조도 특이해서 더 이상 시도하지 않음
  - **Ecobee**는 여전히 클라우드 연결이 필요하지만, **HomeKit 통합**을 통해 로컬 제어가 가능함  
    Home Assistant에서도 HomeKit 연동으로 잘 작동함
