تشير حالة الجهاز إلى مدى سهولة إعادة تحميل البرامج على الجهاز و
ما إذا كان يتم فرض عملية إثبات الملكية. حالات الجهاز هي LOCKED
و
UNLOCKED
. تمنع أجهزة LOCKED
من إعادة تحميل برمجيًا
برامج جديدة على الجهاز، في حين تسمح أجهزة UNLOCKED
بالتعديل.
عند تشغيل الجهاز، يتحقّق مشغّل الإقلاع أولاً مما إذا كان الجهاز
LOCKED
أو UNLOCKED
. إذا كان الجهاز
UNLOCKED
، يعرض أداة تحميل البرامج الثابتة تحذيرًا للمستخدم ثم يتابع
عملية التمهيد حتى إذا لم يتم توقيع نظام التشغيل المحمَّل بواسطة جذر الثقة.
إذا كان الجهاز LOCKED
، ينفِّذ برنامج الإقلاع الخطوات الواردة في التحقّق من التشغيل للتحقّق من برنامج الجهاز. لا يتم تشغيل أجهزة LOCKED
إلا إذا كان
نظام التشغيل المحمَّل موقَّعًا بشكل صحيح من خلال جذر الثقة. لمزيد من التفاصيل، يُرجى الاطّلاع على
مسار التمهيد.
تغيير حالة الجهاز
لتغيير حالة جهاز، استخدِم
الأمر fastboot flashing [unlock | lock]
. لحماية data
المستخدم، تؤدي جميع عمليات النقل إلى محو أقسام البيانات وطلب confirmation
المستخدم قبل حذف البيانات.
من المتوقّع أن يحدث الانتقال من UNLOCKED
إلى LOCKED
عندما
يشتري المستخدم جهاز تطوير مُستخدَمًا. نتيجةً لقفل الجهاز، يجب أن يثق العميل بأنّه في حالة أنشأتها الشركة المصنّعة للجهاز، ما دام لم يتم عرض أي تحذير. من المتوقّع أن يتم الانتقال من LOCKED
إلى
UNLOCKED
عندما يريد المطوّر إيقاف
التحقّق على الجهاز لأغراض التطوير.
جذر الثقة
جذر الثقة هو مفتاح التشفير المستخدَم لتوقيع نسخة Android المخزّنة على الجهاز. لا يعرف سوى سازندِي الأجهزة الجزء الخاص من جذر الثقة، ويتم استخدامه لتوقيع كل إصدار من Android مخصّص للتوزيع. يتم تضمين الجزء العلني من جذر الثقة في الجهاز ويُخزَّن في مكان لا يمكن التلاعب به (عادةً ما يكون تخزينًا للقراءة فقط).
عند تحميل نظام التشغيل Android، يستخدم أداة تحميل التشغيل جذر الثقة للتحقّق من الأصالة. لمزيد من التفاصيل حول هذه العملية، يُرجى الاطّلاع على مقالة التحقّق من التشغيل. قد تحتوي الأجهزة على مشغّلات تحميل متعددة، وبالتالي قد يتم استخدام مفاتيح تشفير متعددة.
جذر ثقة يمكن للمستخدم ضبطه
يمكن للأجهزة السماح للمستخدم بشكل اختياري بضبط جذر الثقة (مثلاً، مفتاح عام). يمكن للأجهزة، وأجهزة Google Pixel على وجه التحديد، استخدام قاعدة ثقة هذه التي يمكن للمستخدم ضبطها لميزة "التشغيل المتحقّق منه" بالإضافة إلى قاعدة ثقة المضمّنة.
في حال تنفيذ جذر الثقة الذي يمكن للمستخدم ضبطه، يجب تنفيذه بطريقة تجعل:
- يجب تأكيد العملية بشكلٍ فعلي لضبط/محو جذر الثقة الذي يمكن للمستخدم ضبطه.
- لا يمكن للمستخدم النهائي إلا ضبط جذر الثقة الذي يمكنه ضبطه. ولا يمكن ضبطه في المصنع أو في أي مرحلة وسيطة قبل حصول المستخدم النهائي على الجهاز.
- يتم تخزين جذر الثقة الذي يمكن للمستخدم ضبطه في مساحة تخزين تُثبت عدم التلاعب بها. تعني ميزة التحقّق من التلاعب أنّه من الممكن رصد ما إذا كان نظام Android قد تلاعب بالبيانات، على سبيل المثال، إذا تم استبدالها أو تغييرها.
- في حال ضبط موثوق به يمكن للمستخدم ضبطه، يجب أن يسمح الجهاز بتشغيل إصدار من Android موقَّع باستخدام موثوق به مضمّن أو موثوق به يمكن للمستخدم ضبطه.
- في كل مرة يتم فيها تشغيل الجهاز باستخدام جذر الثقة الذي يمكن للمستخدم ضبطه، يجب إعلامه
بأنّ الجهاز يحمِّل إصدارًا مخصّصًا من Android. على سبيل المثال، الشاشات التحذيرية، يُرجى الاطّلاع على
LOCKED
الأجهزة التي تم ضبط مفاتيح مخصّصة لها.
من بين طرق تنفيذ ميزة "جذر الثقة" التي يمكن للمستخدم ضبطها، توفير مشاركة افتراضية
لا يمكن إعادة تحميلها أو محوها إلا عندما يكون الجهاز في حالة
UNLOCKED
. تستخدم أجهزة Google Pixel 2 هذا النهج ويُطلق على القسم الافتراضي اسم avb_custom_key
. تنسيق
البيانات في هذا القسم هو نتيجة الأمر
avbtool extract_public_key
. في ما يلي مثال على كيفية ضبط
جذر الثقة الذي يمكن للمستخدم ضبطه:
avbtool extract_public_key --key key.pem --output pkmd.bin
fastboot flash avb_custom_key pkmd.bin
يمكن محو جذر الثقة الذي يمكن للمستخدم ضبطه من خلال إصدار:
fastboot erase avb_custom_key