- Nest Thermostat için 1. ve 2. nesil cihazlara yönelik özel firmware; OMAP DFU arayüzü üzerinden bootloader ve kernel değiştiren bir yapıya sahip
- Flash işlemi sonrasında cihaz Nest/Google sunucularıyla bağlantıyı keser ve bağımsız NoLongerEvil platformu ile iletişim kuracak şekilde geçiş yapar
- Ağ trafiğini tersine mühendislikle çözümlenmiş API sunucusuna yönlendirerek mevcut işlevleri korurken kullanıcı verileri ve ayarları üzerinde tam kontrol sağlar
- Kurulum süreci; DFU moduna geçiş, bootloader (
x-load, u-boot) ve kernel (uImage) flashlama, hesap kaydı ve cihaz eşleme adımlarından oluşur
- Hedefi bulut bağımlılığını kaldırmak ve cihaz sahipliğini geri kazanmak olup, açık kaynak yayımlama ve right-to-repair hareketine desteğini açıkça belirtir
Genel bakış
- Bu proje, Nest Thermostat üzerine özel firmware kurmak için araçlar ve imajlar sunar
- Bootloader ve kernel değiştirmek için OMAP DFU(Device Firmware Update) arayüzünü kullanır
- Yeni firmware yalnızca DFU modunda kabul edilebilir
- Flash işlemi sonrasında cihaz Nest/Google sunucularıyla iletişim kurmaz ve NoLongerEvil platformuna bağlanır
- Böylece kullanıcı, termostatın davranışı ve verileri üzerinde tam kontrol elde eder
Çalışma şekli
- Özel firmware, bootloader ve kernel bileşenlerini değiştirerek ağ trafiğini belirlenen sunucuya yönlendirir
- Bu sunucu, Nest API'sinin tersine mühendislikle oluşturulmuş bir kopya sunucusu olup cihazın bağımsız çalışmasını sağlar
- İletişim katmanını araya girerek cihazın resmî Nest altyapısına bağlıymış gibi davranmasını sağlar
- Bu yöntemle mevcut yazılımla uyumluluk korunur ve Google bulut bağımlılığı ortadan kaldırılır
Kurulum prosedürü
- Depoyu klonladıktan sonra, işletim sistemine göre gerekli paketler (
libusb vb.) kurulur
- Linux:
build-essential, libusb-1.0-0-dev, gcc, pkg-config
- macOS: Xcode Command Line Tools ve Homebrew tabanlı
libusb kurulumu
build.sh çalıştırılarak işletim sistemi otomatik algılanır ve omap_loader aracı derlenir
install.sh çalıştırılmadan önce cihaz DFU moduna alınmalıdır
- Şarj durumunu kontrol etme (%50 ve üzeri), duvardan sökme, USB bağlama, yeniden başlatma (10~15 saniye basılı tutma)
- DFU moduna girildiğinde
x-load, u-boot, uImage otomatik olarak flashlanır
- Açılış tamamlandıktan sonra NoLongerEvil logosu görüntülenir, bu işlem yaklaşık 3~4 dakika sürer
- nolongerevil.com web sitesinde hesap kaydı yaptıktan sonra cihaz eşlenir
- Nest cihazında Settings → Nest App → Get Entry Code yoluyla kod görüntülenir
- Kod pano üzerinde girildiğinde cihaz bağlantısı tamamlanır
Flashlanan bileşenler
- Kurulum sırasında üç ana ikili dosya flashlanır
- x-load.bin – 1. aşama bootloader (OMAP için X-Loader)
- u-boot.bin – 2. aşama bootloader (Das U-Boot, adres
0x80100000)
- uImage – Linux kernel imajı (adres
0x80A00000)
- Flash işleminden sonra cihaz çalışmaya
0x80100000 (u-boot) adresinden başlar
Güvenlik ve dikkat edilmesi gerekenler
- Bu araç, cihazın boot sürecine düşük seviyeli erişim sağlar
- Yalnızca kullanıcının sahip olduğu cihazlarda kullanılması önerilir
- Yanlış firmware, cihazın zarar görmesi (brick) riskini taşır
- Deneysel bir yazılımdır; ısıtma veya soğutma için kritik öneme sahip cihazlarda kullanılmaması tavsiye edilir
Katkılar ve açık kaynak taahhüdü
- Temel teknoloji, çeşitli güvenlik araştırmacılarının çalışmalarına dayanır
- grant-h / ajb142: OMAP USB bootloader aracı
omap_loader
- exploiteers (GTVHacker): Nest DFU Attack araştırmasıyla 1. ve 2. nesil cihazlarda özel firmware olasılığını kanıtladı
- FULU ve destekçiler: Nest Learning Thermostat Gen 1/2 bug bounty desteği
- Proje, şeffaflığı ve right-to-repair hareketini destekler
- Firmware imajları ile backend API sunucusu kodu yakında açık kaynak olarak yayımlanacak
- Topluluğun kendi altyapısını denetlemesi, geliştirmesi ve barındırması desteklenecek
Referanslar
1 yorum
Hacker News görüşleri
Kazanınız OpenTherm destekliyorsa SAT thermostat project kullanmanızı tavsiye ederim
Hava kompanzasyonu, düşük yük kompanzasyonu ve PID kontrolü sunuyor; bu sayede sıcaklık sensörünün desteklediği hassasiyetle kontrol sağlanıyor (benim durumumda ±0.02°C)
Home Assistant ile kontrol ediliyor ve aynı anda hem enerji tasarrufu hem de konfor sağlanabiliyor
Gerçek zamanlı veriler Grafana dashboard veya Emoncms üzerinden görülebilir
Örneğin Ecobee, kazanın çok kademeli kontrolünü desteklemiyor ve heat pump ile de entegre olmuyor; bu yüzden odalar arasında sıcaklık dengesizliği oluşuyor
Bir gün evin tamamına HA sıcaklık sensörleri kurup, günün saatine göre hangi sistemi önce çalıştıracağına otomatik karar veren bir yapı kurmak istiyorum
Sonunda OpenTherm denemem orada sona erdi
Bu, sadece Google yerine NoLongerEvil adlı başka bir kapalı servis kullanmak gibi görünüyor
Adı ne olursa olsun, güvenilir olup olmadıklarını bilemeyiz.
Gerçekten güvenilebilir olması için tamamen açık kaynak firmware ve backend gerektiğini düşünüyorum
Şu anda Google firmware'ini hackleyip trafiği başka bir sunucuya yönlendirme seviyesinde; bu yüzden self-host edilebilir bir backend ve derleme sürecinin de yayımlanmasını umuyorum
Düzeltme: backend'i yakında açık kaynak olarak yayımlayacaklarını söylüyorlar, bunu merakla bekliyorum
Mükemmel olmasa da, ölü cihazları tekrar kullanılabilir hale getirmesi anlamlı
Nest controller'dan Minecraft server'a kadar her şeyi lightweight Kubernetes ile yönetip, gerektiğinde node değiştirerek işletmek istiyorum
Şu anda bu sadece kapalı bir servise bağlanan bir firmware image
Nereye bağlandığını değiştiremiyorsunuz ve ortada bir gizlilik politikası da yok
Giriş Microsoft'a ait GitHub hesabıyla yapılıyor ve kimlik doğrulamayı clerk.com üstleniyor
Yakında açık kaynak yapılacağını söyledikleri için bekliyorum
Henüz bir gizlilik politikasının olmamasını, erken aşamada olduğu için anlayabiliyorum
Dashboard sitesindeki "Open Source" sayfasında yalnızca firmware var, sunucu tarafı kodu yok
Sadece firmware ile buna tam anlamıyla özgür yazılım demek zor
Düzeltme: Daha dikkatli bakınca backend'in de yakında açık kaynak olarak yayımlanacağı yazıyor
İlgili GitHub issue
“Bu firmware'i ısıtma/soğutma için kritik olan thermostat'larda kullanmayın” şeklinde bir uyarı var
Geçmişte thermostat arızası yüzünden ev sıcaklığının tehlikeli seviyelere çıktığını yaşadım; bu yüzden böyle uyarıları ciddiye almak gerekir
Ben onlarca yıldır sorunsuz çalışan analog Honeywell yuvarlak thermostat'ımı kullanmaya devam edeceğim
Ben başka bir yaklaşım seçip yeni bir PCB'yi kendim tasarladım
Bunu firmware tarafından %100 kontrol edilebilir hale getirdim ve LCD arayüzünü reverse engineer etme sürecini paylaştım
Cody'nin exploit'inin tamamen yeni bir firmware yazılmasına imkân vermesini umuyorum
Bu projenin mutlaka başarılı olmasını istiyorum
Geçmişte Nest 1. nesil ve 2. nesil geliştirme ekibiyle çalıştım; ekip ürünü gerçekten önemsiyordu
Böyle bir hizmet sonlandırma kararını onların almış olacağını sanmıyorum
Biz oradayken bile görüşlerimiz dikkate alınmıyordu
“Biz şeffaflık ve onarma hakkı hareketine bağlıyız” ifadesini görünce umutlandım
Çevreyi önemsediğini söyleyen bir şirketin bu şekilde kullanıcı cihazlarını çöpe dönüştürmesi gerçekten saçma
Sanki sadece bulut maliyetlerinden kısmak ya da yeni ürün satmak için alınmış bir karar gibi görünüyor
Böyle şirketler çevreden çok kârı önemser.
Üstelik bazıları uluslararası çatışmalar ve insan hakları sorunlarıyla da ilişkilendiriliyor
BM raporu bağlantısı
Buluta daha az bağımlı thermostat arıyorum
İki Nest kullanıyorum ve artık çok bunaldım; Home Assistant ile doğrudan entegre olan bir ürün istiyorum
Hem WiFi hem API destekleyen ürün neredeyse yok; Venstar buna en çok yaklaşanı ama kararsız WiFi modülü yüzünden vazgeçtim
Firmware yapısı da garip olduğundan artık uğraşmıyorum
Home Assistant'ta da HomeKit entegrasyonuyla iyi çalışıyor