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

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

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

يتم تحديد تعليمات 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() system API حالة قفل برنامج الإقلاع على الأجهزة المتوافقة.

القيمة المعروضة الحالات الطبية
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