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

4 days ago 5

  • 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에서 계정 등록 후 기기 연동
    • 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 서버 코드를 곧 오픈소스로 공개 예정
    • 커뮤니티가 자체 인프라를 감사·개선·호스팅할 수 있도록 지원

참고 자료

Read Entire Article