NoLongerEvil-Thermostat – firmware untuk Nest generasi 1 dan 2
(github.com/codykociemba)- Firmware kustom untuk perangkat Nest Thermostat generasi 1 dan 2, dengan struktur yang mengganti bootloader dan kernel melalui antarmuka OMAP DFU
- Setelah flashing, perangkat menghentikan koneksi ke server Nest/Google dan beralih untuk berkomunikasi dengan platform NoLongerEvil yang independen
- Lalu lintas jaringan dialihkan ke server API hasil rekayasa balik sehingga fungsi yang ada tetap dipertahankan sambil memungkinkan kontrol penuh atas data dan pengaturan pengguna
- Proses instalasi terdiri dari tahap masuk ke mode DFU, flashing bootloader (
x-load,u-boot) dan kernel (uImage), lalu pendaftaran akun dan penautan perangkat - Bertujuan untuk melepaskan ketergantungan cloud dan memulihkan kepemilikan perangkat, serta menyatakan dukungan untuk open source dan gerakan right-to-repair
Ikhtisar
- Proyek ini menyediakan alat dan image untuk memasang firmware kustom pada Nest Thermostat
- Menggunakan antarmuka OMAP DFU (Device Firmware Update) untuk mengganti bootloader dan kernel
- Firmware baru hanya dapat diterima saat berada dalam mode DFU
- Setelah flashing, perangkat tidak lagi berkomunikasi dengan server Nest/Google, melainkan terhubung ke platform NoLongerEvil
- Dengan ini, pengguna memperoleh kontrol penuh atas perilaku termostat dan datanya
Cara kerja
- Firmware kustom memodifikasi komponen bootloader dan kernel untuk mengalihkan lalu lintas jaringan ke server yang ditentukan
- Server tersebut adalah server tiruan hasil rekayasa balik atas Nest API, sehingga perangkat dapat beroperasi secara mandiri
- Lapisan komunikasi dicegat agar perangkat menganggap dirinya terhubung ke infrastruktur resmi Nest
- Dengan cara ini, kompatibilitas dengan perangkat lunak yang ada tetap terjaga sekaligus menghilangkan ketergantungan pada Google Cloud
Prosedur instalasi
- Setelah meng-clone repositori, pasang paket yang diperlukan (seperti libusb) sesuai OS
- Linux:
build-essential,libusb-1.0-0-dev,gcc,pkg-config - macOS: Xcode Command Line Tools dan instalasi libusb berbasis Homebrew
- Linux:
- Jalankan
build.shuntuk mendeteksi OS secara otomatis lalu membangun alat omap_loader - Sebelum menjalankan
install.sh, perangkat harus dialihkan ke mode DFU- Periksa daya baterai (minimal 50%), lepaskan dari dinding, sambungkan USB, lalu reboot (tekan 10~15 detik)
- Saat masuk mode DFU, x-load, u-boot, dan uImage akan di-flash secara otomatis
- Setelah boot selesai, logo NoLongerEvil ditampilkan, memerlukan sekitar 3~4 menit
- Daftarkan akun di situs web nolongerevil.com lalu tautkan perangkat
- Di perangkat Nest, buka Settings → Nest App → Get Entry Code untuk melihat kode
- Masukkan kode di dashboard untuk menyelesaikan koneksi perangkat
Komponen yang di-flash
- Saat instalasi, tiga biner utama berikut di-flash
- x-load.bin – bootloader tahap 1 (X-Loader for OMAP)
- u-boot.bin – bootloader tahap 2 (Das U-Boot, alamat
0x80100000) - uImage – image kernel Linux (alamat
0x80A00000)
- Setelah flashing, perangkat mulai berjalan dari
0x80100000(u-boot)
Keamanan dan hal yang perlu diperhatikan
- Alat ini memberikan akses tingkat rendah ke proses boot perangkat
- Disarankan hanya digunakan pada perangkat yang Anda miliki sendiri
- Firmware yang salah berisiko merusak perangkat (brick)
- Ini adalah perangkat lunak eksperimental, sehingga disarankan untuk tidak digunakan pada perangkat yang penting bagi pemanas atau pendingin ruangan
Kredit dan komitmen open source
- Teknologi dasarnya bergantung pada riset dari sejumlah peneliti keamanan
- grant-h / ajb142: alat bootloader USB OMAP
omap_loader - exploiteers (GTVHacker): riset Nest DFU Attack yang membuktikan kemungkinan firmware kustom pada perangkat generasi 1 dan 2
- FULU dan para sponsor: dukungan bug bounty untuk Nest Learning Thermostat Gen 1/2
- grant-h / ajb142: alat bootloader USB OMAP
- Proyek ini mendukung transparansi dan gerakan right-to-repair
- Image firmware dan kode server API backend akan segera dirilis sebagai open source
- Mendukung komunitas untuk mengaudit, meningkatkan, dan meng-host infrastruktur mereka sendiri
1 komentar
Opini Hacker News
Jika boiler mendukung OpenTherm, saya merekomendasikan mencoba proyek termostat SAT
Mendukung kompensasi cuaca, kompensasi beban rendah, dan kontrol PID, sehingga pengendalian bisa mengikuti presisi yang didukung sensor suhu (dalam kasus saya ±0.02°C)
Dioperasikan lewat Home Assistant, sehingga bisa mendapatkan penghematan energi sekaligus kenyamanan
Data real-time dapat dilihat di dashboard Grafana atau Emoncms
Misalnya, Ecobee tidak mendukung kontrol bertingkat pada boiler, dan juga tidak terintegrasi dengan heat pump, sehingga terjadi ketidakseimbangan suhu antar-ruangan
Suatu hari saya ingin memasang sensor suhu HA di seluruh rumah agar sistem bisa otomatis menentukan sistem mana yang diprioritaskan untuk dijalankan berdasarkan waktu
Akhirnya percobaan OpenTherm berhenti sampai di situ
Ini tampak seperti sekadar memakai layanan tertutup lain bernama NoLongerEvil alih-alih Google
Apa pun namanya, tidak ada jaminan mereka layak dipercaya.
Agar benar-benar bisa dipercaya, saya rasa perlu ada firmware dan backend yang sepenuhnya open source
Saat ini levelnya masih meretas firmware Google lalu mengalihkan trafik ke server lain, jadi saya berharap backend yang bisa self-host dan proses build-nya dibuka
Edit: saya menantikan karena katanya backend akan segera dirilis sebagai open source
Memang tidak sempurna, tetapi tetap bermakna jika perangkat yang mati bisa dipakai lagi
Dari controller Nest sampai server Minecraft, saya ingin mengelolanya dengan Kubernetes ringan dan mengoperasikannya dengan cara mengganti node saat diperlukan
Saat ini ini hanyalah image firmware yang terhubung ke layanan tertutup
Kita bahkan tidak bisa mengubah ke mana ia terhubung, dan juga tidak ada kebijakan privasi
Login menggunakan akun GitHub milik Microsoft, dan autentikasinya ditangani oleh clerk.com
Katanya akan segera di-open-source, jadi saya menunggu
Saya bisa memahami belum adanya kebijakan privasi karena ini masih tahap awal
Di halaman "Open Source" pada situs dashboard hanya ada firmware dan tidak ada kode sisi server
Hanya dengan firmware saja, rasanya sulit menyebutnya perangkat lunak bebas sepenuhnya
Edit: setelah saya lihat lebih saksama, tertulis bahwa backend juga akan segera dirilis sebagai open source
Isu GitHub terkait
Ada peringatan yang menyebutkan agar “jangan memakai firmware ini pada termostat yang penting untuk pemanasan/pendinginan”
Saya pernah mengalami suhu rumah naik ke tingkat berbahaya karena termostat rusak, jadi peringatan seperti ini harus dipertimbangkan dengan serius
Saya berencana tetap memakai termostat analog bulat Honeywell saya yang sudah bekerja baik selama puluhan tahun
Saya mengambil pendekatan lain dan merancang PCB baru sendiri
Saya membuatnya agar bisa dikendalikan firmware 100%, dan saya membagikan proses reverse engineering antarmuka LCD
Saya berharap exploit Cody memungkinkan penulisan firmware yang benar-benar baru
Saya sangat berharap proyek ini berhasil
Saya pernah bekerja bersama tim pengembang Nest generasi 1 dan 2, dan tim itu benar-benar peduli pada produknya
Mereka tidak akan membuat keputusan untuk menghentikan layanan dengan cara seperti ini
Bahkan saat kami masih ada pun, pendapat kami tidak didengar
Saya menaruh harapan setelah membaca kalimat bahwa mereka berkomitmen pada transparansi dan gerakan hak untuk memperbaiki
Sungguh keterlaluan bahwa perusahaan yang katanya peduli lingkungan justru mengubah perangkat pengguna menjadi sampah dengan cara seperti ini
Ini tampak seperti keputusan yang semata-mata diambil untuk menghemat biaya cloud atau menjual produk baru
Perusahaan-perusahaan seperti ini hanya mengejar keuntungan, bukan lingkungan.
Selain itu, sebagian dari mereka juga terlibat dalam konflik internasional dan isu hak asasi manusia
Tautan laporan PBB
Saya sedang mencari termostat yang tidak terlalu bergantung pada cloud
Saya memakai dua Nest dan sudah sangat frustrasi, jadi saya ingin produk yang bisa terintegrasi langsung dengan Home Assistant
Produk yang mendukung WiFi + API hampir tidak ada, dan hanya Venstar yang agak mendekati, tetapi saya menyerah karena modul WiFi yang tidak stabil
Struktur firmwarenya juga aneh, jadi saya tidak mencoba lagi
Di Home Assistant juga bekerja baik melalui integrasi HomeKit