XIAOMI Gateway (إصدار الاتحاد الأوروبي - Lumi.gateway.mieu01) تم الاستيلاء عليها

Xiaomi Zigbee Gateway Hack

في هذه المقالة ، أود أن أشارك معك أفضل ممارساتي ونجاحاتي في تحليل بوابة Xiaomi (الإصدار مع توصيل اليورو مع I take.ru). سأخبرك بكيفية تثبيت برنامج بديل عليه ، وكيفية استعادة بوابة ببرنامج محو وحتى إحياء بوابة باستخدام U-Boot -مسح.

--------- الكثير من الصور -------------



بادئ ذي بدء ، سأخبرك بكيفية الاتصال بلوحة البوابة والحصول على الجذر.

أولاً ، بعض التفاصيل حول البوابة.

تتناول هذه المقالة إصدار العبّارة الذي بني على المعالج imx6ull .

بعض المواصفات الفنية للمجلس:

  • Wifi RTL8723BS - يتم تحميل برنامج التشغيل منه لسبب ما بشكل منفصل.
  • وحدة المعالجة المركزية IMX6ULL
  • رام 256 ميجابايت
  • روم 256 ميجابايت
  • وحدة ZIgbee على أساس JN5169.

على اللوحة ، يتم عرض قيم الخدمة و P2 و P4. من الناحية المثالية ، يتم تصنيعها تحت pogopins ، ولكن من الأسهل لحامها.

P2 هو Wart 0 من المعالج حيث يتم عرض جميع معلومات الخدمة ، و bootbox وإدارة النظام ، يمكنك استخدام أي محول usb-uart.

P4 - USB OTG ، الذي يستخدم لتحميل البرامج الثابتة إلى nand. (بصفتي OTG كامل ، حتى النهاية لم أتمكن من بدء تشغيله ، عند الاتصال ، تم الكشف عن الجهاز ، ولكن يبدو أن هناك شيء آخر مفقود).



لوحة محول USB الصينية مناسبة بشكل مثالي للألقاب P4.



بعد أن يتم لحام كل شيء وتوصيله ، تحتاج أولاً إلى الحصول على الجذر.

قمت بذلك وفقًا لهذه التعليمات (رابط إلى الدليل) ، ولكن مع القليل من التوضيح بعد النقطة 5 ، تحتاج إلى كتابة أمر التمهيدخلاف ذلك ، يجلس النظام وينتظر الأمر ، ربما تمت كتابة التعليمات على أمل أن يفهم الجميع لينكس.

لسبب ما ، لم يتم تشغيل خادم SSH وفقًا للتعليمات وتم تشغيله فقط عن طريق بدء الأمر يدويًا لبدء /etc/init.d/dropbear start.

في الخطوة التالية ، بعد تلقي الجذر ، قمت بنسخ محتويات النظام باستخدام WinScp (نختار وضع SCP عند إنشاء الاتصال).

علاوة على ذلك ، تحتاج إلى نسخ احتياطي للنظام بالكامل ، في حالة ما إذا أدت التجارب إلى عواقب حزينة (كما فعلت ، لكنني لم أقم بعمل نسخة احتياطية). تنقسم

ذاكرة الفلاش للبوابة إلى 4 أقسام.



كما اتضح ، ليس هناك الكثير من المساحة الحرة أيضًا ، بينما في الذاكرة هناك الكثير من الملفات المكررة المختلفة.



بعد اللعب لبضع ساعات ، قمت بتغيير شيء ما في البرنامج وتوقف تحميل البوابة :)

الآن ، دعنا نكتشف كيفية إحياء هذه القطعة من الحديد وملئها بأي شيء.
تنفيذ الإجراءات فقط إذا كان لديك لبنة!


يحتوي معالج Imx6ULL على جميع المعلومات في نموذج مفتوح ، وتتوفر جميع لوحات البيانات والأدلة المرجعية على موقع الشركة المصنعة بعد التسجيل.

كان U-boot لا يزال يتحمل في وجهي ... ولكن بينما كنت أحاول التعافي ، قمت بنسخ أمر إضافي عن طريق الخطأ ومسحت الناند بالكامل. و u-boot ، كما اتضح ، كان في ناندا. وحصل على لبنة.

يدعم المعالج أوضاع التمهيد المختلفة. في الدليل المرجعي ، تم وصفهم جميعًا.



عادة ما تحتوي لوحات التطوير على مفاتيح ، ولكن لا يوجد شيء من هذا القبيل. تصف ورقة البيانات أي نوع من الدايم هو المعالج.



ثم قدم الصينيون أيضًا هدية لطيفة جدًا. لقد أحضروهم إلى مكان ملائم للغاية وكادوا يوقعون عليها)

على اللوحة بجوار المعالج ، يتم لحام مقاومين ، حيث تناسب دبابيس وضع التمهيد فقط.



هذه المقاومات هما مجرد تبديل لأوضاع التمهيد ، ويتم ضبطها افتراضيًا على nand ، ولكن بتحريك كل منهما إلى الجانب نحصل على وضع التمهيد التسلسلي.

لقد نقلت بوابتي إلى وضع التمهيد التسلسلي ، وبطريقة ما يكون هذا الوضع أكثر ملاءمة لاختبار البرامج الثابتة المختلفة.

لتحميل البرامج الثابتة ، يتم استخدام أداة ملكية من NXP mfgtools. الشيء الوحيد فيه هو إعداد ملف تعريف للمعالج.

تنزيل mfgtools. تم إعداد الأرشيف بالفعل مع جميع الإعدادات اللازمة.

نقوم بتوصيل البوابة عبر USB. في وضع التمهيد التسلسلي ، ستحاول البوابة تنزيل البرامج الثابتة عبر واجهة USB وسيظهر جهاز HID جديد على الكمبيوتر.

سوف يعلمك Mfgtools بدوره أنه يرى جهازًا جديدًا.



في بعض الأحيان لا يرى الكمبيوتر ذلك ، مع ما يتصل به لا أستطيع أن أقول.

بعد أن ترى الأداة ، انقر فوق ابدأ ، وستبدأ عملية تنزيل البرنامج الثابت.
ستعمل الأداة على تنسيق nand وتغمر ubut الجديدة و kernel و dtb و rootfs. تم تجميع الجذور في الأرشيف من قبل صديق ألكسندر فارونوف ، قام بتجميع بنية Linux نظيفة على Yocto. تم سحب أقسام U-boot و Kernel و DTB من البرامج الثابتة الأصلية للبوابة.

في تجميع Linux هذا ، سيتم تشغيل نظام نظيف فقط ، ولن يكون هناك المزيد (زيجبي أيضا لا يعمل بعد ).

بعد أن تعمل الأداة في حالتي ، لن تقوم البوابة بأي شيء وتحميلها أيضًا ، لأننا نتذكر المعالج في وضع التمهيد التسلسلي.

لذلك ، يجب إعطاؤه صورة قابلة للتمهيد من U-boot. في الأرشيف مع mfgtools هناك أداة إضافية uuu تقوم بتحميل U-boot في ذاكرة الوصول العشوائي للوحة ، دعنا نذهب إلى المجلد الذي يحتوي عليه.
نقوم بإغلاق mfgtools وإعادة توصيل البوابة بواحدة جديدة ، يجب الكشف عن جهاز HID مرة أخرى ، وبعد ذلك نقوم بتنفيذ الأمر.

uuu u-boot-small.imx

سيبدأ اللوحة في التحميل ، ولكن نظرًا لأنه لا يحتوي على env ، فسوف يستيقظ بعد تحميل U-boot. في وحدة تحكم البوابة ، نقوم بتنفيذ أمرين ، نسجل ENV للتحميل.

setenv bootargs 'console=ttymxc0,115200 ubi.mtd=3 root=ubi0:rootfs rootfstype=ubifs cma=96M mtdparts=gpmi-nand:3m(boot),7m(kernel),1m(dtb),-(rootfs)'

وبدء تشغيل التمهيد ، تبدأ البوابة بالتحميل من nanda ومن البرامج الثابتة التي قمنا بتحميلها.



بشكل عام ، هذا كل شيء. في mfgtools ، في المجلد files \ Profiles \ Linux \ OS Firmware \ ، توجد جميع ملفات البرامج الثابتة ، واستبدالها والتي يمكنك تحميل أي نظام متوافق. حاولت تنزيل Openwrt.



يتم تحميل النظام ، ولكن ما زلت لم أحسب كيفية تحريك النواة الصحيحة ، وأين أحصل عليها.

آمل من خلال الجهود المشتركة أن نستمر في الوصول بهذه البوابة إلى نهايتها المنطقية)
النسخ الاحتياطي لأدلة البوابة . برقية للمناقشة .

All Articles