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

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

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

يتم تحديد تعليمات 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).

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

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

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

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

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