عمليات OTA المستندة إلى الحظر

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

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

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

ملاحظة: يجب أن يكون لديك نظام حظر تحديثات البرامج التلقائية صالح قبل استخدام dm-verity.

الاقتراحات

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

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

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

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

عمليات نقل البيانات عبر الهواء (OTA) للملفّات مقابل عمليات نقل البيانات عبر الهواء للبيانات المحظورة

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

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

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

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

تعديل الأنظمة غير المعدَّلة

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

  • حجم التنزيل:

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

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

    الشكل 1: مقارنة أحجام تحديثات OTA لجهاز Nexus 6 بين إصدارَي Android 5.0 وAndroid 5.1 (تغييرات مختلفة في الإصدار المستهدف)

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

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

تعديل الأنظمة المعدَّلة

بالنسبة إلى الأجهزة التي تعمل بالإصدار 5.0 من نظام التشغيل Android وتحتوي على أقسام نظام معدَّلة:

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