Od 27 marca 2025 r. zalecamy używanie android-latest-release
zamiast aosp-main
do kompilowania i wspołtworzenia AOSP. Więcej informacji znajdziesz w artykule o zmianach w AOSP.
Tworzenie niestandardowych urządzeń
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Na tej stronie znajdziesz opisy kilku zadań, które możesz musieć wykonać, jeśli konfigurujesz wersję na własne urządzenie.
Tworzenie niestandardowej konfiguracji flash
Instrukcje szybkiego uruchamiania są zdefiniowane w artefakcie o nazwie fastboot-info.txt
. Jeśli tworzysz wiele obiektów docelowych, w folderze $OUT_DIR znajdziesz wiele plików fastboot-info.txt
. $ANDROID_PRODUCT_OUT
wskazuje najnowszy cel, który został przez Ciebie utworzony. Ta strona zawiera listę zadań do wykonania przez fastboot i może zostać wygenerowana ponownie za pomocą m fastboot_info
. Możesz wprowadzić niestandardową logikę migania, modyfikując plik fastboot-info.txt
.
Plik fastboot-info.txt
obsługuje te polecenia:
flash %s
: flashowanie określonego partycjonowania. Opcjonalne argumenty to:
--slot-other,
filename_path, and
--apply-vbmeta`.
update-super
: aktualizuje super partycję.
if-wipe
: warunkowo uruchamia inny komponent, jeśli jest określony wipe.
erase %s
: kasuje dany podział (może być używany tylko w połączeniu z if-wipe
-> np. if-wipe erase cache
).
Określanie stanu blokady lampy błyskowej
Jeśli kompilujesz niestandardowy demon flashboot (flashbootd) na potrzeby urządzenia, musisz mieć możliwość uzyskania stanu programu rozruchowego i stanu blokady programu rozruchowego. getFlashLockState()
@SystemApi
przesyła stan programu rozruchowego, a PersistentDataBlockManager.getFlashLockState()
system API zwraca stan blokady programu rozruchowego na zgodnych urządzeniach.
Zwracana wartość |
Schorzenia |
FLASH_LOCK_UNKNOWN |
Zwracane tylko przez urządzenia, które są aktualizowane do Androida 7.x lub nowszego i nie obsługują zmian w programie rozruchowym wymaganych do zablokowania flasha, jeśli obsługują funkcję blokowania/odblokowywania flasha.
- Nowe urządzenia z Androidem 7.x lub nowszym muszą być w stanie
FLASH_LOCK_LOCKED lub FLASH_LOCK_UNLOCKED .
- Urządzenia, które są aktualizowane do Androida 7.x lub nowszego i nie obsługują funkcji flash unlock/lock, powinny zwracać stan
FLASH_LOCK_LOCKED .
|
FLASH_LOCK_LOCKED |
Zwracane przez dowolne urządzenie, które nie obsługuje migania blokady/odblokowania (czyli urządzenie jest zawsze zablokowane) lub dowolne urządzenie, które obsługuje miganie blokady/odblokowania i jest w stanie zablokowanym. |
FLASH_LOCK_UNLOCKED |
Zwracane przez każde urządzenie, które obsługuje miganie podczas blokowania/odblokowywania i jest w stanie odblokowanym. |
Producenci powinni przetestować wartości zwracane przez urządzenia z zablokowanym i odblokowanym bootloaderem. Na przykład AOSP zawiera implementację referencyjną, która zwraca wartość na podstawie właściwości ro.boot.flash.locked
boot. Przykładowy kod znajduje się w tych katalogach:
frameworks/base/services/core/java/com/android/server/PersistentDataBlockService.java
frameworks/base/core/java/android/service/persistentdata/PersistentDataBlockManager.java
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-27 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 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`"]]