Urządzenia flashujące

Na tej stronie znajdują się szczegółowe informacje dotyczące uruchamiania kompilacji na określonych urządzeniach. Te szczegóły uzupełniają informacje w części Budowanie systemu Android .

Budowanie fastboota i adb

Jeśli nie masz jeszcze fastboot i adb , możesz je zbudować za pomocą zwykłego systemu kompilacji. Skorzystaj z instrukcji w Budowanie systemu Android i zastąp główne polecenie make tym:

make fastboot adb

Aby uzyskać szczegółowe informacje na temat mostka debugowania systemu Android (ADB), zobacz Most debugowania systemu Android (ADB).

Uruchamianie w trybie fastboot

Możesz flashować urządzenie, gdy jest ono w trybie bootloadera fastboot . Aby przejść do trybu fastboot , gdy urządzenie przechodzi zimny rozruch, użyj kombinacji klawiszy wymienionych w Kombinacje klawiszy Fastboot.

Możesz także użyć polecenia adb reboot bootloader aby ponownie uruchomić komputer bezpośrednio w programie ładującym. Pełne instrukcje można znaleźć w instrukcjach flashowania .

Odblokowanie bootloadera

Możesz flashować niestandardowy system tylko wtedy, gdy pozwala na to bootloader. Należy jednak pamiętać, że bootloader jest domyślnie zablokowany. Możesz odblokować program ładujący, ale spowoduje to usunięcie danych użytkownika ze względu na prywatność. Po odblokowaniu usuwane są wszystkie dane z urządzenia, czyli zarówno prywatne dane aplikacji, jak i udostępnione dane dostępne przez USB (w tym zdjęcia i filmy). Przed próbą odblokowania bootloadera wykonaj kopię zapasową wszystkich ważnych plików na urządzeniu.

Musisz odblokować bootloader tylko raz i w razie potrzeby możesz go ponownie zablokować.

Odblokowywanie ostatnich urządzeń

Wszystkie urządzenia Nexus i Pixel wydane od 2014 r. (począwszy od Nexusa 6 i Nexusa 9) mają przywracane ustawienia fabryczne, a odblokowanie programu ładującego wymaga wieloetapowego procesu.

  1. Aby włączyć odblokowanie OEM na urządzeniu:
    1. W Ustawieniach dotknij Informacje o telefonie , a następnie siedem razy dotknij Numer kompilacji .
    2. Gdy zobaczysz komunikat Jesteś teraz programistą! , naciśnij przycisk Wstecz .
    3. W Ustawieniach dotknij System , następnie Opcje programisty i włącz odblokowywanie OEM i debugowanie USB . (Jeśli odblokowanie OEM jest wyłączone, połącz się z Internetem, aby urządzenie mogło zalogować się przynajmniej raz. Jeśli pozostaje wyłączone, karta SIM Twojego urządzenia może być zablokowana przez operatora i nie można odblokować programu ładującego.)
  2. Uruchom ponownie bootloader i użyj fastboot , aby go odblokować.
    • W przypadku nowszych urządzeń (2015 i nowsze):
      fastboot flashing unlock
    • W przypadku starszych urządzeń (2014 i starsze):
      fastboot oem unlock
    Wskazówka: jeśli przed ponownym uruchomieniem widzisz komunikat „adb devices”, ale fastboot lub skrypt flash działają nieprawidłowo, przyczyną mogą być problemy z kablem USB. Wypróbuj inny port i/lub przełączaj złącza. Jeśli używasz portu USB C w komputerze, wypróbuj zamiast niego port USB A.
  3. Potwierdź odblokowanie na ekranie.

Ponowne zablokowanie bootloadera

Aby ponownie zablokować bootloader:

  • W przypadku nowszych urządzeń (2015 i nowsze):
    fastboot flashing lock
  • W przypadku starszych urządzeń (2014 i starsze):
    fastboot oem lock

Korzystanie ze stanów blokady lampy błyskowej

Funkcja API systemu getFlashLockState() przesyła stan programu ładującego, a funkcja API systemu PersistentDataBlockManager.getFlashLockState() zwraca stan blokady programu ładującego na zgodnych urządzeniach.

Wartość zwracana Warunki
FLASH_LOCK_UNKNOWN Zwracane tylko w przypadku urządzeń zaktualizowanych do wersji Android 7.x lub nowszej, które wcześniej nie obsługiwały zmian w programie ładującym wymaganych do uzyskania stanu blokady pamięci flash, jeśli obsługiwały funkcję blokowania/odblokowywania pamięci flash.
  • Nowe urządzenia z systemem Android 7.x lub nowszym muszą mieć stan FLASH_LOCK_LOCKED lub FLASH_LOCK_UNLOCKED .
  • Urządzenia zaktualizowane do wersji Android 7.x lub nowszej, które nie obsługują funkcji odblokowania/blokowania poprzez flashowanie, powinny zwrócić stan FLASH_LOCK_LOCKED .
FLASH_LOCK_LOCKED Zwracany przez dowolne urządzenie, które nie obsługuje migającego blokowania/odblokowywania (tzn. urządzenie jest zawsze zablokowane) lub dowolne urządzenie, które obsługuje migające blokowanie/odblokowywanie i jest w stanie zablokowanym.
FLASH_LOCK_UNLOCKED Zwrócone przez dowolne urządzenie obsługujące flashowanie blokady/odblokowania i będące w stanie odblokowanym.

Producenci powinni przetestować wartości zwracane przez urządzenia z zablokowanymi i odblokowanymi programami ładującymi. Na przykład projekt Android Open Source Project (AOSP) zawiera implementację referencyjną, która zwraca wartość na podstawie właściwości rozruchowej ro.boot.flash.locked . Przykładowy kod znajduje się w następujących katalogach:

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

Wybór wersji urządzenia

Zalecane kompilacje urządzeń są dostępne w menu lunch , do którego można uzyskać dostęp po uruchomieniu polecenia lunch bez argumentów. Aby uzyskać dodatkowe informacje na temat polecenia lunch , zobacz Wybieranie celu . Aby zapoznać się z listą celów kompilacji, zobacz Cele kompilacji .

Możesz pobrać obrazy fabryczne i pliki binarne urządzeń Pixel i Nexus ze strony Developers.google.com . Aby zapoznać się z plikami do pobrania, zobacz pliki binarne urządzenia . Aby uzyskać szczegółowe informacje i dodatkowe zasoby, zobacz Uzyskiwanie zastrzeżonych plików binarnych .

Urządzenie Kryptonim Konfiguracja kompilacji
Pixela 7 Pro gepard aosp_cheetah-userdebug
Piksel 7 pantera aosp_panther-userdebug
Pixela 6 Pro kruk aosp_raven-userdebug
Piksel 6 wilga aosp_oriole-userdebug
Piksel 5 redfin aosp_redfin-userdebug
Piksel 4a 5G cierń aosp_bramble-userdebug
Piksel 4a słoneczna ryba aosp_sunfish-userdebug
Pixela 4XL koral aosp_coral-userdebug
Piksel 4 płomień aosp_flame-userdebug
Pixela 3a XL bonito aosp_bonito-userdebug
Piksel 3a sargo aosp_sargo-userdebug
Piksel 3 XL kreskowanie aosp_crosshatch-userdebug
Piksel 3 niebieska Linia aosp_blueline-userdebug
Piksel 2XL tajmen aosp_taimen-userdebug
Piksel 2 sandacz aosp_walleye-userdebug
Piksel XL marlin aosp_marlin-userdebug
Piksel żaglica aosp_sailfish-userdebug
HiKey wycieczka hikey-userdebug
Nexusa 6P wędkarz aosp_angler-userdebug
Nexusa 5X byczek aosp_bullhead-userdebug
Nexusa 6 szamu aosp_shamu-userdebug
Gracz Nexusa fugu aosp_fugu-userdebug
Nexusa 9 volantis (flądra) aosp_flounder-userdebug
Nexus 5 (GSM/LTE) młotek aosp_hammerhead-userdebug
Nexus 7 (Wi-Fi) brzytwa (flo) aosp_flo-userdebug
Nexus 7 (komórkowy) razorg (deb) aosp_deb-userdebug
Nexusa 10 mantara (manta) full_manta-userdebug
Nexus 4 occam (mako) full_mako-userdebug
Nexus 7 (Wi-Fi) nakasi (grupnik) full_grouper-userdebug
Nexus 7 (komórkowy) nakasig (tilapia) full_tilapia-userdebug
Galaxy Nexus (GSM/HSPA+) jakju (maguro) full_maguro-userdebug
Galaxy Nexus (Verizon) mysid (toro) √aosp_toro-userdebug
Galaxy Nexus (eksperymentalny) mysidspr (toroplus) aosp_toroplus-userdebug
Motorola Xoom (Wi-Fi w USA) skrzydłowy full_wingray-userdebug
Nexus S soju (crespo) full_crespo-userdebug
Nexusa S 4G sojus (crespo4g) full_crespo4g-userdebug

Flashowanie urządzenia

Możesz sflashować cały system Android za pomocą jednego polecenia; w ten sposób sprawdza się, czy flashowany system jest kompatybilny z zainstalowanym programem ładującym i radiem, zapisuje razem partycje rozruchową, odzyskiwania i systemową, a następnie uruchamia ponownie system. Flashowanie usuwa również wszystkie dane użytkownika, podobnie jak fastboot oem unlock .

Aby sflashować urządzenie:

  1. Rozpakuj plik obrazu do własnego katalogu.
  2. Ustaw zmienną środowiskową ANDROID_PRODUCT_OUT tak, aby wskazywała ten sam katalog, który został użyty w kroku 1.
  3. Przełącz urządzenie w tryb fastboot , przytrzymując odpowiednią kombinację klawiszy podczas uruchamiania lub używając następującego polecenia:
    adb reboot bootloader
  4. Gdy urządzenie znajdzie się w trybie szybkiego uruchamiania, uruchom:
    fastboot flashall -w
    Opcja -w czyści partycję /data na urządzeniu; jest to przydatne przy pierwszym flashowaniu określonego urządzenia, ale poza tym jest niepotrzebne.

Flashowanie konfiguracji

Instrukcje Fastboot są zapisane w artefakcie o nazwie fastboot-info.txt, który znajduje się w $ANDROID_PRODUCT_OUT/* Ta dokumentacja .txt zawiera listę zadań do wykonania przez fastboot i może zostać ponownie wygenerowana poprzez m fastboot_info . Modyfikując ten plik, można wprowadzić niestandardową logikę flashowania

obsługiwane polecenia:

  1. flash %s : Flashowanie danej partycji. Opcjonalne argumenty to --slot-other, {filename_path}, --apply-vbmeta
  2. update-super : Aktualizuje super partycję
  3. if-wipe : Warunkowo uruchom inną funkcję, jeśli określono opcję czyszczenia
  4. Erase %s : Usuń daną partycję (można użyć tylko w połączeniu) za pomocą if-wipe -> np. if-wipe erase cache

Przywracanie urządzeń do stanu fabrycznego

Obrazy fabryczne dla urządzeń Google są dostępne w sekcji Obrazy fabryczne dla urządzeń Nexus i Pixel . Obrazy fabryczne Motorola Xoom są dystrybuowane bezpośrednio przez firmę Motorola.

Rozwiąż błędy związane z odmową uprawnień

Domyślnie w większości systemów Linux nieuprzywilejowani użytkownicy nie mają dostępu do portów USB. Jeśli zobaczysz błąd odmowy uprawnień, zapoznaj się z instrukcjami Android Studio dotyczącymi Konfigurowania urządzenia do programowania .

Jeśli ADB był już uruchomiony i nie może połączyć się z urządzeniem, możesz zatrzymać ADB za pomocą adb kill-server . To polecenie powoduje ponowne uruchomienie ADB z nową konfiguracją.