Poniższy artykuł opisuje sposób instalacji obrazu systemu Android na przykładzie telefonu Google Pixel 2 XL. Ten sposób można wykorzystać nie tylko do instalacji nowszej wersji systemu, przeinstalowania obecnej, ale również wgrania starszego Androida, gdy chcemy wykonać tak zwany downgrade.
Spis treści:
- Przygotowanie telefonu
- Pobranie narzędzi do synchronizacji telefonu z komputerem
- Pobranie obrazu systemu Android
- Instalacja obrazu systemu Android
- Zakończenie instalacji
- Proces instalacji w Windows Power Shell
Przygotowanie telefonu
Włączamy „Opcje programistyczne”:
- Wchodzimy w systemowe „Ustawienia” > „System” > „Informacje o telefonie„.
- Siedem razy klikamy opcję „Numer kompilacji” – powinien wyświetlić się dymek z napisem „Teraz jesteś programistą!„.
- Przechodzimy do poprzedniego okna, czyli „Ustawienia” > „System„.
- Wchodzimy w „Opcje programistyczne„.
- Włączamy opcje „Debugowanie USB” i „Zdjęcie blokady OEM„.
Pobranie narzędzi do synchronizacji telefonu z komputerem
Pobieramy pełne środowisko programistyczne „Android Studio” lub tylko „SDK Platform Tools„.
Jeżeli pobraliśmy „Android Studio„, to instalujemy to środowisko. Natomiast, jeżeli pobraliśmy „SDK Platform Tools„, to rozpakowujemy plik na przykład przy pomocy darmowego programu 7-zip, lub klikając go prawym klawiszem myszki i wybierając opcję „Wyodrębnij wszystkie„.
W celu ułatwienia sobie korzystania z narzędzia „SDK Platform Tools” sugeruję dodanie go do zmiennych środowiskowych w systemie Windows 10. Ułatwi to wywoływanie poleceń.
W celu dodania narzędzia „SDK Platform Tools” do zmiennych środowiskowych należy:
- Kliknąć przycisk Start .
- Wyszukać narzędzie „Edytuj zmienne środowiskowe systemu” i je uruchomić.
- W oknie „Właściwości systemu” i zakładce „Zaawansowane” kliknąć „Zmienne środowiskowe„.
- W oknie „Zmienne środowiskowe” w sekcji „Zmienne systemowe” kliknąć zmienną „Path„.
Kliknąć przycisk „Edytuj„. - W oknie „Edycja zmiennej środowiskowej” kliknąć przycisk „Nowy„.
- W polu, które się wyświetli, należy podać ścieżkę do narzędzia „SDK Platform Tools„, np. „C:\Users\LiKoT\Downloads\platform-tools_r29.0.5-windows\platform-tools„.
- W oknie „Edycja zmiennej środowiskowej” kliknąć przycisk OK.
- W oknie „Zmienne środowiskowe” kliknąć przycisk OK.
- W oknie „Właściwości systemu” kliknąć przycisk OK.
Pobranie obrazu systemu Android
- Ze strony developers.google.com/android/images pobieramy obraz systemu Android, np. 8.0.0 (OPD1.170816.010, Sep 2017) dla naszego urządzenia. W tym przypadku Google Pixel 2 XL.
- Rozpakowujemy pobrany plik na przykład przy pomocy darmowego programu 7-zip, lub klikając go prawym klawiszem myszki i wybierając opcję „Wyodrębnij wszystkie„.
Instalacja obrazu systemu Android
- Wchodzimy do rozpakowanego katalogu, np. „\taimen-opd1.170816.010-factory-c796ddb4\taimen-opd1.170816.010„.
- Na klawiaturze przytrzymujemy lewy klawisz Shift i klikamy prawym klawiszem myszki w „Eksploratorze plików„, aby wywołać menu kontekstowe.
- Z kontekstowego menu wybieramy opcję „Otwórz tutaj okno programu PowerShell„.
- Uruchomiony telefon podłączamy do komputera przy pomocy kabla USB.
- Sprawdzamy, czy urządzenie widoczne jest przez komputer, wpisując polecenie:
adb devices
- Jeżeli na telefonie wyświetli się prośba o autoryzację:
Zezwalać na debugowanie USB? Odcisk cyfrowy kluczas RSA komputera to: AA:BB:CC:DD:EE:FF:GG:HH:II:JJ:KK:LL:MM:NN:OO:PP [] Zawsze zezwalaj z tego komputera
a w Windows PowerShell komunikat „unauthorized”
List of devices attached * daemon not running; starting now at tcp:5037 * daemon started successfully 807KPDT2003762 unauthorized
zatwierdzamy prośbę, klikając przycisk „Zezwalaj” na ekranie telefonu.
- Wpisujemy polecenie wymuszające uruchomienie bootloader telefonu
adb reboot bootloader
- Sprawdzamy, czy w tym trybie urządzenie widoczne jest przez komputer, wpisując:
fastboot devices
- Odblokowujemy bootloader, wpisując*:
fastboot flashing unlock_critical
*polecenie „fastboot flashing unlock_critical” używa się w przypadku, gdy operację wykonujemy na telefonie Google Pixel 2 XL. W przypadku innych urządzeń wystarczy polecenie „fastboot flashing unlock„.
- Po tej operacji na telefonie pojawi się okno, w którym należy zgodzić się na odblokowanie.
Unlocking the bootloader allows you to install a custom operating system (OS) on this phone. A custom OS is not subject to the same level of testing as the original OS, and can cause your phone and installed apps to stop working propetly. Software integrity cannot be guaranteed with a custom OS, so any data stored on the phone while the bootloader is unlocked may be at risk. To prevent unauthorized access to your personal data, unlocking the bootloader will also delete all personal data on your phone.
Musimy klawiszem pogłośnienia dźwięków (volume up) przejść na pozycję „UNLOCK TO BOOTLOADER” i zatwierdzić klikając włącznik telefonu.
- Gdy bootloader poprawnie się odblokuje, co będzie widoczne po wpisie „Device state: unlocked„, wpisujemy nazwę skryptu wykonującego instalację obrazu systemu
./flash-all
lub
./flash-all.bat
Zakończenie instalacji
Po poprawnej instalacji obrazu systemu na komputerze, w oknie PowerShell, wyświetli się komunikat „Press any key to exit…„, a telefon uruchomi się ponownie i rozpocznie się proces konfiguracji systemu.
W przypadku poprawnej instalacji sugeruję przywrócenie blokady bootloader-a po skonfigurowaniu systemu. Można to zrobić po ponownym wejściu do trybu bootloader i w Windows PowerShell wpisaniu polecenia:
fastboot flashing lock
Proces instalacji w Windows Power Shell
adb devices List of devices attached * daemon not running; starting now at tcp:5037 * daemon started successfully 807KPDT2003762 unauthorized adb devices List of devices attached 807KPDT2003762 device adb reboot bootloader fastboot devices 807KPDT2003762 fastboot fastboot flashing unlock_critical OKAY [ 10.301s] Finished. Total time: 10.309s ./flash-all.bat Sending 'bootloader_b' (55680 KB) OKAY [ 2.073s] Writing 'bootloader_b' OKAY [ 0.805s] Finished. Total time: 2.891s rebooting into bootloader OKAY [ 0.004s] Finished. Total time: 0.005s < waiting for any device > Sending 'radio_b' (60428 KB) OKAY [ 2.437s] Writing 'radio_b' OKAY [ 0.417s] Finished. Total time: 2.872s rebooting into bootloader OKAY [ 0.003s] Finished. Total time: 0.004s extracting android-info.txt (0 MB) to RAM... -------------------------------------------- Bootloader Version...: TMZ10n Baseband Version.....: g8998-00122-1708311414 Serial Number........: 807KPDT2003762 -------------------------------------------- Checking product OKAY [ 0.003s] Checking version-bootloader OKAY [ 0.004s] Checking version-baseband OKAY [ 0.004s] extracting boot.img (40 MB) to disk... took 0.316s archive does not contain 'boot.sig' archive does not contain 'boot_other.img' extracting dtbo.img (8 MB) to disk... took 0.040s archive does not contain 'dtbo.sig' archive does not contain 'dt.img' archive does not contain 'odm.img' archive does not contain 'product.img' archive does not contain 'recovery.img' extracting system.img (1866 MB) to disk... took 146.814s archive does not contain 'system.sig' extracting system_other.img (590 MB) to disk... took 43.319s archive does not contain 'system.sig' extracting vbmeta.img (0 MB) to disk... took 0.000s archive does not contain 'vbmeta.sig' extracting vendor.img (341 MB) to disk... took 21.561s archive does not contain 'vendor.sig' archive does not contain 'vendor_other.img' mke2fs 1.43.3 (04-Sep-2016) Creating filesystem with 13902843 4k blocks and 3481600 inodes Filesystem UUID: 3b218f5e-3ddc-11ea-98bf-bfd84aa8406b Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424 Allocating group tables: done Writing inode tables: done Creating journal (65536 blocks): done Writing superblocks and filesystem accounting information: done Sending 'boot_b' (40960 KB) OKAY [ 1.707s] Writing 'boot_b' OKAY [ 0.255s] Sending 'dtbo_b' (8192 KB) OKAY [ 0.309s] Writing 'dtbo_b' OKAY [ 0.053s] Sending sparse 'system_b' 1/4 (524284 KB) OKAY [ 21.786s] Writing sparse 'system_b' 1/4 OKAY [ 3.312s] Sending sparse 'system_b' 2/4 (524284 KB) OKAY [ 21.548s] Writing sparse 'system_b' 2/4 OKAY [ 3.308s] Sending sparse 'system_b' 3/4 (524284 KB) OKAY [ 21.153s] Writing sparse 'system_b' 3/4 OKAY [ 3.317s] Sending sparse 'system_b' 4/4 (338904 KB) OKAY [ 13.684s] Writing sparse 'system_b' 4/4 OKAY [ 2.134s] Sending sparse 'system_a' 1/2 (524284 KB) OKAY [ 21.261s] Writing sparse 'system_a' 1/2 OKAY [ 3.318s] Sending sparse 'system_a' 2/2 (80596 KB) OKAY [ 3.236s] Writing sparse 'system_a' 2/2 OKAY [ 0.515s] Sending 'vbmeta_b' (4 KB) OKAY [ 0.009s] Writing 'vbmeta_b' OKAY [ 0.009s] Sending 'vendor_b' (349408 KB) OKAY [ 12.975s] Writing 'vendor_b' OKAY [ 2.239s] Setting current slot to 'b' OKAY [ 0.009s] Erasing 'userdata' OKAY [ 4.919s] Sending 'userdata' (4497 KB) OKAY [ 0.175s] Writing 'userdata' OKAY [ 0.078s] Rebooting Finished. Total time: 390.471s Press any key to exit... fastboot flashing lock OKAY [ 6.360s] Finished. Total time: 6.363s