2 पॉइंट द्वारा GN⁺ 2025-11-05 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Nest Thermostat के 1st और 2nd gen डिवाइसों के लिए custom firmware, जो OMAP DFU इंटरफ़ेस के जरिए bootloader और kernel को बदलने वाली संरचना पर आधारित है
  • फ्लैश करने के बाद डिवाइस Nest/Google सर्वरों से कनेक्शन बंद कर देता है और स्वतंत्र NoLongerEvil platform से संचार करने लगता है
  • नेटवर्क ट्रैफ़िक को reverse-engineered API server की ओर redirect करके, मौजूदा फ़ीचर बनाए रखते हुए user data और settings पर पूरा नियंत्रण संभव होता है
  • इंस्टॉलेशन प्रक्रिया DFU mode में जाना, bootloader (x-load, u-boot) और kernel (uImage) फ्लैश करना, account registration और device linking जैसे चरणों से बनी है
  • लक्ष्य cloud dependency हटाना और device ownership वापस पाना है, साथ ही open source release और right-to-repair movement के समर्थन को स्पष्ट करता है

अवलोकन

  • यह प्रोजेक्ट Nest Thermostat पर custom firmware इंस्टॉल करने के लिए tools और images प्रदान करता है
    • OMAP DFU(Device Firmware Update) इंटरफ़ेस का उपयोग करके bootloader और kernel को बदला जाता है
    • नया firmware केवल DFU mode में ही स्वीकार किया जा सकता है
  • फ्लैशिंग के बाद डिवाइस Nest/Google सर्वरों से संचार नहीं करता, बल्कि NoLongerEvil platform से जुड़ता है
    • इससे उपयोगकर्ता thermostat के व्यवहार और data पर पूरा नियंत्रण प्राप्त कर सकता है

यह कैसे काम करता है

  • custom firmware bootloader और kernel components को modify करके नेटवर्क ट्रैफ़िक को तय सर्वर की ओर redirect करता है
    • यह सर्वर Nest API का reverse-engineered clone server है, जिससे डिवाइस स्वतंत्र रूप से काम कर सकता है
  • communication layer को intercept करके डिवाइस को ऐसा महसूस कराया जाता है मानो वह आधिकारिक Nest infrastructure से जुड़ा हो
    • इस तरीके से मौजूदा software के साथ compatibility बनी रहती है और Google cloud dependency हट जाती है

इंस्टॉलेशन प्रक्रिया

  • repository clone करने के बाद, OS के अनुसार ज़रूरी packages (जैसे libusb) इंस्टॉल करें
    • Linux: build-essential, libusb-1.0-0-dev, gcc, pkg-config
    • macOS: Xcode Command Line Tools और Homebrew आधारित libusb इंस्टॉलेशन
  • build.sh चलाने पर OS अपने-आप detect होता है और omap_loader tool build होता है
  • install.sh चलाने से पहले डिवाइस को DFU mode में ले जाना ज़रूरी है
    • charging status जाँचें (50% या अधिक), दीवार से अलग करें, USB connect करें, reboot करें (10~15 सेकंड दबाकर)
    • DFU mode में जाने पर x-load, u-boot, uImage अपने-आप फ्लैश हो जाते हैं
  • boot पूरा होने के बाद NoLongerEvil logo दिखाई देता है, इसमें लगभग 3~4 मिनट लगते हैं
  • वेबसाइट nolongerevil.com पर account register करने के बाद डिवाइस लिंक करें
    • Nest डिवाइस में Settings → Nest App → Get Entry Code पर जाकर code देखें
    • dashboard में code दर्ज करने पर डिवाइस कनेक्ट हो जाता है

फ्लैश किए जाने वाले components

  • इंस्टॉलेशन के दौरान तीन मुख्य binaries फ्लैश की जाती हैं
    1. x-load.bin – पहला चरण bootloader (X-Loader for OMAP)
    2. u-boot.bin – दूसरा चरण bootloader (Das U-Boot, address 0x80100000)
    3. uImage – Linux kernel image (address 0x80A00000)
  • फ्लैशिंग के बाद डिवाइस 0x80100000(u-boot) से execution शुरू करता है

सुरक्षा और सावधानियाँ

  • यह tool डिवाइस boot process तक low-level access देता है
    • इसे केवल उपयोगकर्ता के स्वामित्व वाले डिवाइस पर ही उपयोग करने की सिफारिश की जाती है
    • गलत firmware से डिवाइस खराब होने (brick होने) का जोखिम है
  • यह experimental software है, इसलिए heating या cooling के लिए आवश्यक डिवाइसों पर इसका उपयोग न करने की सलाह दी जाती है

क्रेडिट और open source वादा

  • आधारभूत तकनीक कई security researchers के शोध पर निर्भर है
    • grant-h / ajb142: OMAP USB bootloader tool omap_loader
    • exploiteers (GTVHacker): Nest DFU Attack शोध, जिसने 1st और 2nd gen डिवाइसों पर custom firmware की संभावना साबित की
    • FULU और sponsors: Nest Learning Thermostat Gen 1/2 bug bounty support
  • प्रोजेक्ट transparency और right-to-repair movement का समर्थन करता है
    • firmware images और backend API server code को जल्द open source के रूप में जारी करने की योजना है
    • ताकि community अपने infrastructure का audit, improvement और hosting कर सके

संदर्भ सामग्री

1 टिप्पणियां

 
GN⁺ 2025-11-05
Hacker News राय
  • अगर आपका boiler OpenTherm को सपोर्ट करता है, तो SAT thermostat project आज़माने की सिफारिश करता हूँ
    इसमें weather compensation, low-load compensation, और PID control संभव है, इसलिए तापमान sensor जितनी precision सपोर्ट करता है (मेरे मामले में ±0.02°C), उतनी ही सटीकता से control होता है
    इसे Home Assistant से operate किया जाता है, और इससे energy saving व comfort दोनों मिल सकते हैं
    real-time data Grafana dashboard या Emoncms में देखा जा सकता है

    • मुझे भी इस project में काफी दिलचस्पी है। मैं Vitodens 100 boiler + Ecobee + heat pump का सेटअप इस्तेमाल करता हूँ, लेकिन हर system अलग-अलग काम करता है, इसलिए असुविधा होती है
      उदाहरण के लिए, Ecobee boiler के multi-stage control को सपोर्ट नहीं करता, और heat pump के साथ भी integrate नहीं होता, इसलिए कमरों के बीच तापमान असंतुलन हो जाता है
      कभी न कभी मैं पूरे घर में HA temperature sensors लगाना चाहता हूँ, ताकि समय के हिसाब से अपने-आप तय हो सके कि किस system को प्राथमिकता देकर चलाना है
    • जानना चाहता हूँ कि क्या यह project forced-air HVAC पर भी काम करता है
    • पहले Vaillant boiler बदलते समय मैंने खुद OpenTherm board लगाने की कोशिश की थी, लेकिन manufacturer ने warranty void कहकर रोक दिया
      आखिरकार OpenTherm की कोशिश वहीं खत्म हो गई
    • पुराने Worcester Bosch boiler पर मैं ems-esp का उपयोग करके outdoor temperature के आधार पर flow temperature control कर रहा हूँ। यह भी Home Assistant से manage होता है
    • Home Assistant के लिए कोई अच्छा multi-zone controller है क्या, यह जानना चाहता हूँ
  • यह बस Google की जगह NoLongerEvil नाम की एक और बंद service इस्तेमाल करने जैसा लगता है
    नाम कुछ भी हो, यह भरोसेमंद है या नहीं, कहना मुश्किल है
    सच में भरोसा करने लायक होने के लिए पूरी तरह open source firmware और backend चाहिए, ऐसा मुझे लगता है
    अभी तो यह Google firmware को hack करके traffic को दूसरे server पर मोड़ने जैसा है, इसलिए उम्मीद है कि self-hostable backend और build process भी public किए जाएँगे
    संपादन: backend को जल्द open source करने वाले हैं, यह सुनकर उम्मीद है

    • Google इन devices को पहले ही छोड़ चुका है। अभी इसे बस e-waste को फिर से ज़िंदा करने की कोशिश मानता हूँ
      यह परफेक्ट नहीं है, फिर भी मरे हुए device को दोबारा इस्तेमाल लायक बनाना मायने रखता है
    • मैं एक छोटा SBC stack server बनाकर घर की कई services खुद चलाना चाहता हूँ
      Nest controller से लेकर Minecraft server तक सब कुछ lightweight Kubernetes से manage करूँ, और ज़रूरत पड़ने पर nodes बदलता रहूँ — कुछ ऐसा करना चाहता हूँ
  • फिलहाल यह सिर्फ एक firmware image है जो किसी बंद service से जुड़ती है
    इसे कहाँ connect होना है, यह भी बदला नहीं जा सकता, और privacy policy भी नहीं है
    login Microsoft के स्वामित्व वाले GitHub account से होता है, और authentication clerk.com संभालता है
    कहा जा रहा है कि जल्द open source होगा, इसलिए इंतज़ार कर रहा हूँ

    • मुझे यह project शानदार लगता है। Nest Thermostat को reverse engineer करके नया firmware बनाना वाकई प्रभावशाली है
      अभी privacy policy न होना शुरुआती चरण होने की वजह से समझा जा सकता है
    • मुझे लगता है कि ऐसी नकारात्मक प्रतिक्रियाएँ ही online अच्छे projects के लिए काम करना मुश्किल बना देती हैं
  • dashboard site के "Open Source" page पर सिर्फ firmware है, server-side code नहीं
    सिर्फ firmware होने से इसे पूरी तरह free software कहना मुश्किल है
    संपादन: ध्यान से देखा तो लिखा है कि backend भी जल्द open source किया जाएगा

    • कहा गया है कि Louis Rossman द्वारा सुझाए गए bug bounty code submission का इंतज़ार है। अगर सब ठीक रहा तो बढ़िया होगा
      संबंधित GitHub issue
    • “जल्द जारी होगा” जैसी बातों पर अब आसानी से भरोसा नहीं होता
  • एक चेतावनी है कि “इस firmware को heating/cooling के लिए ज़रूरी thermostat में इस्तेमाल न करें”
    पहले thermostat खराब होने के कारण घर का तापमान खतरनाक स्तर तक बढ़ जाने का अनुभव हो चुका है, इसलिए ऐसी चेतावनी को गंभीरता से लेना चाहिए

    • वह सिर्फ एक disclaimer है
      मैं तो दशकों से ठीक चल रहे analog Honeywell round thermostat का इस्तेमाल जारी रखने वाला हूँ
  • मैंने दूसरा रास्ता अपनाकर नया PCB खुद design किया
    इसे इस तरह बनाया कि 100% firmware control संभव हो, और LCD interface reverse engineering process भी साझा की
    उम्मीद है कि Cody का exploit पूरी तरह नया firmware लिखने की सुविधा देगा

  • मैं सच में चाहता हूँ कि यह project सफल हो
    पहले मैंने Nest 1st gen, 2nd gen development team के साथ काम किया था, और वह टीम product को लेकर बेहद गंभीर थी
    वे लोग इस तरह service बंद करने का फैसला नहीं लेते

    • अब Google में उस समय के लोग कोई नहीं बचे हैं
      जब हम वहाँ थे, तब भी हमारी राय नहीं सुनी जाती थी
  • “हम transparency और right to repair movement के लिए प्रतिबद्ध हैं” यह पंक्ति देखकर उम्मीद जगी है

  • जो company पर्यावरण की बात करती थी, उसका इस तरह users के devices को कचरा बना देना सच में बेतुका है
    यह बस cloud cost बचाने या नए products बेचने का फैसला लगता है

    • सिर्फ network connection न होने की वजह से काम कर रहे thermostat को फेंकने की ज़रूरत नहीं है
    • marketing आखिरकार झूठ बोलने की कला ही है
      ऐसी कंपनियाँ पर्यावरण से ज़्यादा मुनाफे का पीछा करती हैं
      और इनमें से कुछ अंतरराष्ट्रीय संघर्षों और मानवाधिकार मुद्दों में भी उलझी हुई हैं
      UN report link
  • मैं कम cloud-dependent thermostat ढूँढ रहा हूँ
    दो Nest इस्तेमाल करता हूँ और उनसे बहुत परेशान हूँ, इसलिए ऐसा product चाहिए जो Home Assistant के साथ सीधे integrate हो

    • Z-Wave-based thermostat भी हैं जो WiFi नहीं इस्तेमाल करते, लेकिन मैं HTTP या MQTT को प्राथमिकता देता हूँ
      WiFi + API दोनों सपोर्ट करने वाले products लगभग नहीं हैं, Venstar ही कुछ हद तक संभव था, लेकिन उसके unstable WiFi module की वजह से छोड़ दिया
      उसका firmware structure भी अजीब है, इसलिए अब और कोशिश नहीं कर रहा
    • Ecobee में अब भी cloud connection चाहिए, लेकिन HomeKit integration के ज़रिए local control संभव है
      Home Assistant में भी HomeKit integration के साथ यह अच्छी तरह काम करता है