OTAs القائمة على الكتلة

يمكنك تمكين تحديثات عبر الهواء (OTA) القائمة على الحظر للأجهزة الجديدة التي تعمل بنظام Android 5.0. OTA هي الآلية التي من خلالها تقوم الشركات المصنعة الأصلية بتحديث قسم النظام الخاص بالجهاز عن بُعد:

  • تستخدم إصدارات Android 5.0 والإصدارات الأحدث حظر تحديثات OTA للتأكد من أن كل جهاز يستخدم نفس القسم بالضبط. بدلاً من مقارنة الملفات الفردية وحوسبة التصحيحات الثنائية ، يتعامل Block OTA مع القسم بأكمله كملف واحد ويحسب تصحيحًا ثنائيًا واحدًا ، مما يضمن أن القسم الناتج يحتوي بالضبط على البتات المقصودة. يتيح ذلك لصورة نظام الجهاز تحقيق نفس الحالة عبر fastboot أو OTA.
  • استخدم Android 4.4 والإصدارات السابقة تحديثات OTA للملف ، والتي ضمنت احتواء الأجهزة على محتويات ملفات وأذونات وأوضاع مماثلة ، ولكنها سمحت للبيانات الوصفية مثل الطوابع الزمنية وتخطيط التخزين الأساسي بالتنوع بين الأجهزة بناءً على طريقة التحديث.

نظرًا لأن حظر OTA يضمن أن كل جهاز يستخدم نفس القسم ، فإنه يتيح استخدام dm-verity لتوقيع قسم النظام بشكل مشفر. للحصول على تفاصيل حول dm-verity ، راجع التمهيد الذي تم التحقق منه .

ملاحظة: يجب أن يكون لديك نظام OTA عامل قبل استخدام dm-verity.

التوصيات

بالنسبة للأجهزة التي تعمل بنظام Android 5.0 أو أحدث ، استخدم حظر تحديثات OTA في ذاكرة القراءة فقط الخاصة بالمصنع. لإنشاء OTA قائم على الكتلة للتحديثات اللاحقة ، مرر الخيار --block إلى ota_from_target_files .

بالنسبة للأجهزة التي تعمل بنظام Android 4.4 أو إصدار أقدم ، استخدم ملف تحديثات OTA. في حين أنه من الممكن نقل الأجهزة عن طريق إرسال حظر OTA كامل لنظام Android 5.0 أو إصدار أحدث ، فإنه يتطلب إرسال OTA كامل أكبر بكثير من OTA التدريجي (وبالتالي لا يُنصح بذلك).

نظرًا لأن dm-verity يتطلب دعم أداة تحميل التشغيل الموجودة فقط في الأجهزة الجديدة التي يتم شحنها مع Android 5.0 أو أحدث ، لا يمكنك تمكين dm-verity للأجهزة الحالية.

يمكن للمطورين الذين يعملون على نظام Android OTA (صورة الاسترداد والبرامج النصية التي تنشئ OTAs) مواكبة التغييرات من خلال الاشتراك في القائمة البريدية android-ota@googlegroups.com .

ملف مقابل حظر OTAs

أثناء OTA المستند إلى ملف ، يحاول Android تغيير محتويات قسم النظام في طبقة نظام الملفات (على أساس كل ملف على حدة). لا يضمن التحديث كتابة الملفات بترتيب ثابت ، أو الحصول على وقت آخر تعديل متسق أو كتلة فائقة ، أو حتى وضع الكتل في نفس الموقع على جهاز الحظر. لهذا السبب ، تفشل OTA المستندة إلى الملفات على جهاز يدعم dm-verity ؛ بعد محاولة OTA ، لا يتم تمهيد الجهاز.

أثناء OTA القائم على الكتلة ، يقدم Android للجهاز الفرق بين الصورتين الكتليتين (بدلاً من مجموعتين من الملفات). يتحقق التحديث من بناء جهاز مقابل خادم البناء المقابل على مستوى الكتلة (أسفل نظام الملفات) باستخدام إحدى الطرق التالية:

  • تحديث كامل . يعد نسخ صورة النظام بالكامل أمرًا بسيطًا ويجعل إنشاء التصحيح أمرًا سهلاً ولكنه ينشئ أيضًا صورًا كبيرة يمكن أن تجعل تطبيق التصحيحات باهظة الثمن.
  • تحديث تزايدي . يؤدي استخدام أداة الاختلاف الثنائي إلى إنشاء صور أصغر ويجعل تطبيق التصحيح سهلاً ، ولكنه يستهلك الكثير من الذاكرة عند إنشاء التصحيح نفسه.

ملاحظة: يضع adb fastboot نفس البتات على الجهاز تمامًا مثل OTA الكامل ، لذا فإن الوميض متوافق مع block OTA.

تحديث الأنظمة غير المعدلة

بالنسبة للأجهزة التي تحتوي على أقسام نظام غير معدلة تعمل بنظام Android 5.0 ، تظل عملية التنزيل والتثبيت لكتلة OTA كما هي بالنسبة لملف OTA. ومع ذلك ، قد يتضمن تحديث OTA نفسه واحدًا أو أكثر من الاختلافات التالية:

  • حجم التنزيل . تكون تحديثات OTA الكاملة للكتلة بنفس حجم تحديثات OTA للملف الكامل تقريبًا ، ويمكن أن تكون التحديثات الإضافية أكبر ببضعة ميغا بايت فقط.

    مقارنة أحجام OTA

    الشكل 1. مقارنة أحجام Nexus 6 OTA بين إصدارات Android 5.0 و Android 5.1 (تغييرات متنوعة في بنية الهدف)

    بشكل عام ، تكون تحديثات OTA للكتل التزايدية أكبر من تحديثات OTA للملفات المتزايدة بسبب:

    • حفظ البيانات . تحافظ OTA المستندة إلى الكتلة على المزيد من البيانات (البيانات الوصفية للملف ، وبيانات dm-verity ، وتخطيط ext4 ، وما إلى ذلك) من OTA المستندة إلى الملفات.
    • اختلافات خوارزمية الحساب . في تحديث OTA للملف ، إذا كان مسار الملف متطابقًا في كلا البناءين ، فإن حزمة OTA لا تحتوي على بيانات لهذا الملف. في تحديث OTA للكتلة ، يعتمد تحديد تغيير طفيف أو معدوم في ملف على جودة خوارزمية حساب التصحيح وتخطيط بيانات الملف في كل من النظام المصدر والهدف.
  • الحساسية من خلل في الفلاش وذاكرة الوصول العشوائي . في حالة تلف ملف ، ينجح ملف OTA طالما أنه لا يلمس الملف التالف ، ولكن يفشل حظر OTA إذا اكتشف أي تلف في قسم النظام.

تحديث الأنظمة المعدلة

بالنسبة للأجهزة ذات أقسام النظام المعدلة التي تعمل بنظام Android 5.0:

  • كتلة تزايدي تفشل تحديثات OTA . قد يتم تعديل قسم النظام أثناء adb remount أو نتيجة لبرامج ضارة. يسمح ملف OTA ببعض التغييرات على القسم ، مثل إضافة ملفات ليست جزءًا من المصدر أو الهدف. ومع ذلك ، لا يتسامح حظر OTA مع الإضافات إلى القسم ، لذلك سيحتاج المستخدمون إلى تثبيت OTA كامل فوق أي تعديلات في قسم النظام) أو وميض صورة نظام جديدة لتمكين OTAs في المستقبل.
  • محاولات تغيير الملفات المعدلة تسبب فشل التحديث . بالنسبة لكل من تحديثات OTA الخاصة بالملف والملف ، إذا حاولت OTA تغيير ملف تم تعديله ، يفشل تحديث OTA.
  • محاولات الوصول إلى الملفات المعدلة تولد أخطاء (dm-verity فقط) . بالنسبة لتحديثات OTA الخاصة بالملف والكتلة ، إذا تم تمكين dm-verity وحاول OTA الوصول إلى الأجزاء المعدلة من نظام ملفات النظام ، فإن OTA يولد خطأ.