توسعه دستگاه سفارشی

این صفحه چندین کار را توضیح می‌دهد که ممکن است در صورت راه‌اندازی ساختنی برای دستگاه خود، لازم باشد انجام دهید.

یک پیکربندی فلش سفارشی ایجاد کنید

دستورالعمل های 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 وضعیت بوت لودر را منتقل می کند و API سیستم 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 حاوی یک پیاده سازی مرجع است که مقداری را بر اساس ویژگی boot ro.boot.flash.locked برمی گرداند. کد نمونه در دایرکتوری های زیر قرار دارد:

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