اعتبارًا من 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
حالة
برنامج الإقلاع، ويعرض 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
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","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-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],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`"]]