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

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

إنشاء تكوين فلاش مخصص

يتم تعريف تعليمات 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 يتم إرجاعه فقط من خلال الأجهزة التي تقوم بالترقية إلى Android 7.x أو أعلى والتي لم تكن تدعم مسبقًا تغييرات أداة تحميل التشغيل المطلوبة للحصول على حالة قفل الفلاش إذا كانت تدعم إمكانية القفل/فتح القفل الوامض.
  • يجب أن تكون الأجهزة الجديدة التي تعمل بنظام التشغيل Android 7.x أو الإصدارات الأحدث في حالة FLASH_LOCK_LOCKED أو FLASH_LOCK_UNLOCKED .
  • الأجهزة التي تقوم بالترقية إلى Android 7.x أو الإصدارات الأحدث والتي لا تدعم إمكانية إلغاء القفل/القفل الوامضة يجب أن تُرجع حالة 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