از 27 مارس 2025، توصیه می کنیم از android-latest-release
به جای aosp-main
برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
توسعه دستگاه سفارشی
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
این صفحه چندین کار را توضیح میدهد که ممکن است در صورت راهاندازی ساختنی برای دستگاه خود، لازم باشد انجام دهید.
یک پیکربندی فلش سفارشی ایجاد کنید
دستورالعمل های 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
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Custom device development\n\nThis page explains several tasks you might need to perform if you're\nsetting up a build for your own device.\n\nCreate a custom flash configuration\n-----------------------------------\n\nFastboot instructions are defined in an artifact called `fastboot-info.txt`. If\nyou build multiple targets, you'll have multiple `fastboot-info.txt` files in\nthe \u003cvar translate=\"no\"\u003e$OUT_DIR\u003c/var\u003e. And, `$ANDROID_PRODUCT_OUT` points to the\nmost current target you built. This page list the tasks for fastboot to execute\nand can be regenerated using `m fastboot_info`. You can introduce custom\nflashing logic by modifying the `fastboot-info.txt` file.\n\nThe `fastboot-info.txt` file supports these commands:\n\n- `flash %s`: Flashes a given partition. Optional arguments include `--slot-other,`\u003cvar translate=\"no\"\u003efilename_path\u003c/var\u003e`, and`--apply-vbmeta\\`.\n- `update-super`: Updates the super partition.\n- `if-wipe`: Conditionally runs some other component if a wipe is specified.\n- `erase %s`: Erases a given partition (can only be used in conjunction with `if-wipe` -\\\u003e eg. `if-wipe erase cache`).\n\nDetermine flash lock state\n--------------------------\n\nIf you're building a custom flashboot daemon (flashbootd) for a device, you need\nto be able to obtain bootloader and bootloader lock state. The\n`getFlashLockState()` `@SystemApi` transmits the bootloader\nstate and the `PersistentDataBlockManager.getFlashLockState()` system\nAPI returns the bootloader's lock status on compliant devices.\n\n| Return value | Conditions |\n|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `FLASH_LOCK_UNKNOWN` | Returned only by devices upgrading to Android 7.x or higher that didn't previously support the bootloader changes required to get the flash lock status if they supported flashing lock/unlock capability. - New devices running Android 7.x or higher must be in either a `FLASH_LOCK_LOCKED` or `FLASH_LOCK_UNLOCKED` state. - Devices upgrading to Android 7.x or higher that don't support flashing unlock/lock capability should return a `FLASH_LOCK_LOCKED` state. |\n| `FLASH_LOCK_LOCKED` | Returned by any device that doesn't support flashing lock/unlock (that is, the device is always locked), or any device that supports flashing lock/unlock and is in the locked state. |\n| `FLASH_LOCK_UNLOCKED` | Returned by any device that supports flashing lock/unlock and is in the unlocked state. |\n\nManufacturers should test the values returned by devices with locked and\nunlocked bootloaders. For example, AOSP\ncontains a reference implementation that returns a value based on the\n`ro.boot.flash.locked` boot property. Example code is located in the\nfollowing directories:\n\n- `frameworks/base/services/core/java/com/android/server/PersistentDataBlockService.java`\n- `frameworks/base/core/java/android/service/persistentdata/PersistentDataBlockManager.java`"]]