تطوير الأجهزة المخصّصة

توضّح هذه الصفحة العديد من المهام التي قد تحتاج إلى تنفيذها إذا كنت بصدد إعداد إصدار لجهازك الخاص.

إنشاء إعدادات مخصّصة للفلاش

يتم تحديد تعليمات Fastboot في عنصر يُعرف باسم fastboot-info.txt. إذا أنشأت عدة أهداف، سيكون لديك عدة ملفات fastboot-info.txt في $OUT_DIR. ويشير الرمز $ANDROID_PRODUCT_OUT إلى أحدث استهداف أنشأته. تعرض هذه الصفحة قائمة بالمهام التي يجب أن ينفّذها fastboot ويمكن إعادة إنشائها باستخدام m fastboot_info. يمكنك تقديم منطق وميض مخصّص من خلال تعديل الملف fastboot-info.txt.

يتوافق ملف fastboot-info.txt مع الأوامر التالية:

  • flash %s: يضيء قسمًا معيّنًا. تتضمّن الوسيطات الاختيارية --slot-other,filename_path, and--apply-vbmeta`.
  • update-super: تعديل القسم الفائق
  • if-wipe: يتم تشغيل بعض المكوّنات الأخرى بشكل مشروط في حال تحديد عملية محو.
  • erase %s: يمحو قسمًا معيّنًا (يمكن استخدامه فقط مع if-wipe -> على سبيل المثال if-wipe erase cache).

تحديد حالة قفل الفلاش

إذا كنت بصدد إنشاء برنامج خفي مخصّص لبرنامج flashboot (يُعرف باسم flashbootd) لجهاز، عليك أن تتمكّن من الحصول على برنامج الإقلاع وحالة قفل برنامج الإقلاع. يرسل getFlashLockState() @SystemApi حالة برنامج الإقلاع، وتعرض واجهة برمجة التطبيقات PersistentDataBlockManager.getFlashLockState() حالة قفل برنامج الإقلاع على الأجهزة المتوافقة.

القيمة المعروضة الحالات الطبية
FLASH_LOCK_UNKNOWN يتم عرض هذه الحالة فقط على الأجهزة التي تمت ترقيتها إلى الإصدار 7.x من نظام التشغيل Android أو إصدار أحدث والتي لم تكن تتوافق سابقًا مع التغييرات في برنامج الإقلاع المطلوبة للحصول على حالة قفل الفلاش، وذلك إذا كانت تتوافق مع إمكانية قفل/فتح الفلاش.
  • يجب أن تكون الأجهزة الجديدة التي تعمل بالإصدار 7.x من نظام التشغيل Android أو إصدار أحدث في حالة FLASH_LOCK_LOCKED أو FLASH_LOCK_UNLOCKED.
  • يجب أن تعرض الأجهزة التي تتم ترقيتها إلى الإصدار 7.x من نظام التشغيل Android أو إصدار أحدث ولا تتوافق مع إمكانية فتح/قفل الشاشة FLASH_LOCK_LOCKED.
FLASH_LOCK_LOCKED يتم عرض هذا الرمز من خلال أي جهاز لا يتيح فتح قفل الجهاز أو قفله (أي أنّ الجهاز يكون مقفلاً دائمًا)، أو أي جهاز يتيح فتح قفل الجهاز أو قفله ويكون في حالة القفل.
FLASH_LOCK_UNLOCKED يتم عرض هذه الحالة من خلال أي جهاز يتيح قفل/فتح القفل باستخدام الضوء الوامض ويكون في حالة فتح القفل.

على المصنّعين اختبار القيم التي تعرضها الأجهزة التي تتضمّن برامج إقلاع مقفلة وغير مقفلة. على سبيل المثال، يحتوي مشروع AOSP على تنفيذ مرجعي يعرض قيمة استنادًا إلى السمة ro.boot.flash.locked الخاصة بالتشغيل. يمكن العثور على نموذج الرمز في الأدلة التالية:

  • frameworks/base/services/core/java/com/android/server/PersistentDataBlockService.java
  • frameworks/base/core/java/android/service/persistentdata/PersistentDataBlockManager.java