Ab dem 27. März 2025 empfehlen wir, android-latest-release
anstelle von aosp-main
zu verwenden, um AOSP zu erstellen und Beiträge dazu zu leisten. Weitere Informationen finden Sie unter Änderungen am AOSP.
Entwicklung benutzerdefinierter Geräte
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Auf dieser Seite werden verschiedene Aufgaben beschrieben, die Sie ausführen müssen, wenn Sie einen Build für Ihr eigenes Gerät einrichten.
Benutzerdefinierte Flash-Konfiguration erstellen
Die Fastboot-Anleitungen sind in einem Artefakt namens fastboot-info.txt
definiert. Wenn Sie mehrere Ziele erstellen, befinden sich im $OUT_DIR mehrere fastboot-info.txt
-Dateien. $ANDROID_PRODUCT_OUT
verweist auf das aktuellste Ziel, das Sie erstellt haben. Auf dieser Seite sind die Aufgaben aufgeführt, die von fastboot ausgeführt werden sollen. Sie kann mit m fastboot_info
neu generiert werden. Sie können eine benutzerdefinierte Blinklogik einführen, indem Sie die Datei fastboot-info.txt
ändern.
Die fastboot-info.txt
-Datei unterstützt die folgenden Befehle:
flash %s
: Eine bestimmte Partition wird geflasht. Optionale Argumente sind --slot-other,
filename_path, and
--apply-vbmeta.
update-super
: Aktualisiert die Superpartition.
if-wipe
: Eine andere Komponente wird bedingt ausgeführt, wenn ein Löschen angegeben wird.
erase %s
: Löscht eine bestimmte Partition. Kann nur in Verbindung mit if-wipe
verwendet werden, z. B. if-wipe erase cache
).
Status der Blitzsperre ermitteln
Wenn Sie einen benutzerdefinierten Flashboot-Daemon (flashbootd) für ein Gerät erstellen, müssen Sie den Bootloader und den Sperrstatus des Bootloaders abrufen können. Der getFlashLockState()
@SystemApi
überträgt den Bootloaderstatus und die PersistentDataBlockManager.getFlashLockState()
-System-API gibt den Sperrstatus des Bootloaders auf konformen Geräten zurück.
Rückgabewert |
Krankheiten |
FLASH_LOCK_UNKNOWN |
Wird nur von Geräten zurückgegeben, die auf Android 7.x oder höher umgestellt wurden und zuvor die Bootloader-Änderungen nicht unterstützt haben, die zum Abrufen des Status der Flash-Sperre erforderlich sind, wenn sie die Funktion zum Sperren/Entsperren des Flash-Speichers unterstützt haben.
- Neue Geräte mit Android 7.x oder höher müssen sich entweder im Status
FLASH_LOCK_LOCKED oder FLASH_LOCK_UNLOCKED befinden.
- Geräte, die auf Android 7.x oder höher aktualisiert werden und das Flashen, Entsperren und Sperren nicht unterstützen, sollten den Status
FLASH_LOCK_LOCKED zurückgeben.
|
FLASH_LOCK_LOCKED |
Geräte, die nicht das Blinken zum Sperren/Entsperren unterstützen (d. h. das Gerät ist immer gesperrt) oder Geräte, die das Blinken zum Sperren/Entsperren unterstützen und gesperrt sind. |
FLASH_LOCK_UNLOCKED |
Wird von allen Geräten zurückgegeben, die das Blinken zur Sperr-/Entsperrung unterstützen und entsperrt sind. |
Hersteller sollten die von Geräten mit gesperrtem und entsperrtem Bootloader zurückgegebenen Werte testen. AOSP enthält beispielsweise eine Referenzimplementierung, die einen Wert basierend auf der Boot-Property ro.boot.flash.locked
zurückgibt. Der Beispielcode befindet sich in den folgenden Verzeichnissen:
frameworks/base/services/core/java/com/android/server/PersistentDataBlockService.java
frameworks/base/core/java/android/service/persistentdata/PersistentDataBlockManager.java
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-07-27 (UTC)."],[],[],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`"]]