قفل/فتح أداة تحميل التشغيل

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

الدخول إلى محمل الإقلاع

لإصدار أوامر fastboot ، يجب أن تكون في وضع أداة تحميل التشغيل. إحدى الطرق للقيام بذلك هي إرسال أمر adb adb reboot bootloader . تسمح لك بعض الهواتف أيضًا بإعادة التشغيل في أداة تحميل التشغيل عن طريق الضغط على مجموعة المفاتيح (خفض مستوى الصوت عادةً) أثناء تشغيل الجهاز.

فتح محمل الإقلاع

بمجرد الدخول في وضع أداة تحميل التشغيل، لإلغاء قفل أداة تحميل التشغيل وتمكين إعادة تحميل الأقسام، قم بتشغيل أمر fastboot flashing unlock على الجهاز. بعد الإعداد، يستمر وضع إلغاء القفل خلال عمليات إعادة التشغيل.

يجب أن ترفض الأجهزة أمر fastboot flashing unlock ما لم يتم ضبط get_unlock_ability على 1 . إذا تم التعيين على 0 ، فسيحتاج المستخدم إلى التمهيد إلى الشاشة الرئيسية، وفتح قائمة الإعدادات > النظام > خيارات المطور وتمكين خيار إلغاء قفل OEM (الذي يضبط get_unlock_ability على 1 ). بعد الإعداد، يستمر هذا الوضع خلال عمليات إعادة التشغيل وإعادة ضبط بيانات المصنع.

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

يجب إعادة ضبط كافة ذاكرة الوصول العشوائي (RAM) التي لم تتم الكتابة فوقها بالفعل أثناء عملية fastboot flashing unlock . يمنع هذا الإجراء الهجمات التي تقرأ محتويات ذاكرة الوصول العشوائي المتبقية من التمهيد السابق. وبالمثل، يجب على الأجهزة غير المؤمنة مسح ذاكرة الوصول العشوائي (RAM) عند كل تشغيل (ما لم يؤدي ذلك إلى تأخير غير مقبول)، ولكن يجب أن تترك المنطقة مستخدمة لـ ramoops للنواة.

قفل محمل الإقلاع

لقفل أداة تحميل التشغيل وإعادة ضبط الجهاز، قم بتشغيل أمر fastboot flashing lock على الجهاز. يجب شحن الأجهزة المخصصة للبيع بالتجزئة في حالة القفل (مع إرجاع get_unlock_ability 0 ) لضمان عدم تمكن المهاجمين من اختراق الجهاز عن طريق تثبيت نظام جديد أو صورة تمهيد.

ضبط خصائص القفل/الفتح

يجب تعيين الخاصية ro.oem_unlock_supported في وقت الإنشاء استنادًا إلى ما إذا كان الجهاز يدعم إلغاء القفل الوامض.

  • إذا كان الجهاز يدعم إلغاء القفل الوامض، فاضبط ro.oem_unlock_supported على 1 .
  • إذا كان الجهاز لا يدعم فتح القفل الوامض، فاضبط ro.oem_unlock_supported على 0 .

إذا كان الجهاز يدعم إلغاء القفل الوامض، فيجب أن يشير برنامج تحميل التشغيل إلى حالة القفل عن طريق ضبط متغير سطر أوامر kernel androidboot.flash.locked على 1 إذا كان مقفلاً أو على 0 إذا كان مقفلاً. يجب تعيين هذا المتغير في bootconfig بدلاً من سطر أوامر kernel في Android 12.

بالنسبة للأجهزة التي تدعم dm-verity ، استخدم ro.boot.verifiedbootstate لتعيين قيمة ro.boot.flash.locked على 0 ؛ يؤدي هذا إلى فتح أداة تحميل التشغيل إذا كانت حالة التمهيد التي تم التحقق منها باللون البرتقالي.

حماية الأقسام الهامة

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

يجب أن يتطلب الانتقال من حالة القفل إلى حالة إلغاء القفل تفاعلاً فعليًا مع الجهاز. يشبه هذا التفاعل تأثيرات تشغيل أمر fastboot flashing unlock ولكنه يتطلب من المستخدم الضغط على زر فعلي على الجهاز. يجب ألا تسمح الأجهزة بالانتقال برمجيًا من lock critical إلى unlock critical دون تفاعل فعلي، ويجب ألا يتم شحن الأجهزة في حالة unlock critical .