2 puan yazan GN⁺ 2025-11-05 | 1 yorum | WhatsApp'ta paylaş
  • 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
    1. x-load.bin – 1. aşama bootloader (OMAP için X-Loader)
    2. u-boot.bin – 2. aşama bootloader (Das U-Boot, adres 0x80100000)
    3. 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

 
GN⁺ 2025-11-05
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

    • Ben de bu projeye çok ilgiliyim. Vitodens 100 boiler + Ecobee + heat pump kombinasyonu kullanıyorum ama her sistem birbirinden bağımsız çalıştığı için rahatsız edici
      Ö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
    • Bu projenin forced-air HVAC sistemlerinde de çalışıp çalışmadığını merak ediyorum
    • Geçmişte Vaillant kazanımı değiştirirken OpenTherm kartını kendim takmaya çalışmıştım ama üretici bunun garantiyi geçersiz kılacağını söyleyerek engel oldu
      Sonunda OpenTherm denemem orada sona erdi
    • Eski bir Worcester Bosch kazanında dış hava sıcaklığına göre akış sıcaklığını kontrol etmek için ems-esp kullanıyorum. Bunu da yine Home Assistant ile yönetiyorum
    • Home Assistant için iyi bir multi-zone controller olup olmadığını merak ediyorum
  • 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

    • Google bu cihazları zaten terk etti. Şu anda bunu sadece e-waste'i yeniden hayata döndürme girişimi olarak görüyorum
      Mükemmel olmasa da, ölü cihazları tekrar kullanılabilir hale getirmesi anlamlı
    • Evdeki çeşitli servisleri kendim çalıştırmak için küçük bir SBC stack server kurmak istiyorum
      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

    • Bence bu proje harika. Nest Thermostat'ı reverse engineer edip yeni firmware yazmış olmaları etkileyici
      Henüz bir gizlilik politikasının olmamasını, erken aşamada olduğu için anlayabiliyorum
    • Böyle olumsuz tepkilerin internette iyi projelerin zorlanmasının nedeni olduğunu düşünüyorum
  • 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

    • Louis Rossman'ın önerdiği bug bounty kod gönderimini beklediklerini söylüyorlar. Yolunda giderse güzel olabilir
      İlgili GitHub issue
    • “Yakında yayımlanacak” sözüne artık pek güvenemiyorum
  • “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

    • Bu sadece bir sorumluluk reddi ifadesi
      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

    • Şu anda Google'da o dönemden kimse kalmadı.
      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

    • Ağ bağlantısı yok diye çalışan bir thermostat'ı atmak gerekmez
    • Pazarlama sonuçta yalan söyleme sanatıdır.
      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

    • WiFi yerine Z-Wave tabanlı thermostat'lar da var ama ben HTTP veya MQTT tercih ediyorum
      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
    • Ecobee hâlâ bulut bağlantısı gerektiriyor ama HomeKit entegrasyonu üzerinden yerel kontrol mümkün
      Home Assistant'ta da HomeKit entegrasyonuyla iyi çalışıyor