Dziś oddaję głos Złemu Majoru Witku. Postanowił mianowicie odświeżyć sobie androida na bardzo nienowym tablecie. Jak wiecie, lubię takie akcje, chociaż okrutnie się wtedy przeklina.
A więc wala ci się na obejściu stary Nexus 7 ze strupieszałym androidem i świerzbią cię ręce…
Otóż da się zainstalować sobie Androida 9 (Pie) na nowszej wersji Nexusa 7 i działa dobrze (tj. szybko, elegancko i bez zwieszek). To zapewne zależy od konkretnego romu, stanu flasha w tablecie, fazy księżyca…
Żeby użyć standardowego disclaimera, your warranty is now void; nie odpowiadam za zbrickowane urządzenia, utratę danych, produktywności, erekcji, pandemię i indolencję rządu.
Co będzie potrzebne?
- tablet Nexus 7 wersja 2013 (mój to flo: 2013 z wifi) (uwaga na boku: jak odróżnić Nexusa 7 2012 od 2013? najprościej po pleckach: 2012 ma teksturowane, a 2013 gładkie),
- dobry kabelek USB mikro (taki co nie rwie połączenia),
- żądza przygód.
Całą resztę dociągniemy sobie w trakcie.
0. Przeczytaj cały tekst najpierw.
Seriously. Najpierw przeczytaj wszystko po kolei, a potem jedź wedle listy.
1. ADB, czyli jak rozmawiać z androidem
Żeby wrzucić jakikolwiek obraz Androida na tablet, potrzebny jest sposób na komunikację po kablu. Umożliwiają to komendy adb
i fastboot
, które dla windy można pozyskać z tej paczki: https://forum.xda-developers.com/showthread.php?p=48915118#post48915118 (narzędzie “15 seconds ADB installer”)
Na Ubuntu i zapewne innych debianopodobnych jest pakiet android-tools, który daje to samo; windziany i linuksowy adb
może się różnić składnią komend, więc ostrożnie.
Zaciągamy paczkę z instalerem ADB, uruchamiamy; osobiście polecam zainstalowanie narzędzia wyłącznie dla naszego usera — pojawi się ono w naszym katalogu domowym, skąd w razie czego można je łatwo wyrwać z korzeniami.
UWAGA: jeśli jesteśmy na Win10, _nie_ instalujemy driverów; narzędzie przychodzi z guglowymi driverami ADB, które nie działają. Domyślne windziane drivery działają znakomicie i nie należy ich zastępować. Wersje windy inne niż 10 będą zapewne lepiej działały z dołączonymi do narzędzia driverami gugla.
Działanie driverów weryfikujemy bardzo prosto — jeśli po podłączeniu tablet pojawia się jako urządzenie, wszystko jest cacy. Jeśli nie, trzeba będzie spróbować z “tymi drugimi” — zaorać guglowe i zainstalować standardowe albo na odwrót.
Doinstalowanie driverów guglowych nie powinno być trudniejsze niż uruchomienie installera narzędzia i potwierdzenie odpowiedniej opcji. Wyrwanie ich jest ciut trudniejsze.
1a. (w razie potrzeby) Oramy guglowski driver ADB
Podłączamy tablet do kompa po USB. Na kompie idziemy do menu Start > Device Manager.
Odnajdujemy urządzenie: będzie w drzewku “portable device”, “android device” albo jakimś podobnym. Może, ale nie musi, identyfikować się jako Nexus 7.
Na podejrzanym urządzeniu wykonujemy prawoklik, properties, zakładka “Driver”: jeśli w danych drivera jest ADB, Google albo coś w podobie, mamy drania — używamy opcji “Uninstall device” i wyrywamy chwasta.
Odłączamy tablet i podłączamy ponownie: system powinien wykryć nowe urządzenie i automagicznie dociągnąć działający driver.
2. Nakłaniamy tablet do współpracy: developer mode i USB debugging
Żeby móc cokolwiek wrzucić, potrzebujemy także włączyć tę opcję w tablecie.
- Developer mode: udajemy się do Settings > About tablet, znajdujemy “build number” i klikamy w niego siedem razy, nie za szybko i nie za wolno. Po siódmym kliku tablet powinien powiedzieć “you are now a developer”.
- USB debugging: włączenie developer mode powinno spowodować, że w settings pojawi nam się dodatkowa opcja: “Developer options”. Oprócz miliona szczegółowych ustawień jest tam także “USB Debugging” — włączamy je.
3. Test test — czy konie mnie słyszą?
Podłączamy jedno do drugiego kablem. Podłączony tablet powininen pomedytować chwilę, a potem spytać, czy zezwolić na USB debugging — potwierdzamy i zaklikujemy, że z tego kompa zawsze wolno (możliwe, że będziemy się męczyć w procesie, więc po co odpowiadać setny raz na to samo pytanie).
Od tego momentu będziemy mieć tablet podpięty kablem w zasadzie non stop; odpinać go będziemy w zasadzie tylko jeśli komputer nagle magicznie przestanie go widzieć.
Sprawdzamy, czy nasz komputer widzi tablet: otwieramy sobie linię komend dowolną i zadajemy pytanie:
adb devices
Dostaniemy coś w rodzaju:
List of connected devices: 0x88823235 online
Jeśli zamiast alfanumerycznej zupki mamy pusto i nic w ogóle, Coś Poszło Nie Tak™ — guglamy za “adb nie widzi mojego androida” i postępujemy odpowiednio.
4. (w razie potrzeby) Odlockowujemy bootloader
Jestem prawie pewien, że do instalacji custom roma potrzebny jest odblokowany bootloader; prawie pewien, bo mój już taki był i nie musiałem tego robić.
OD TEGO MOMENTU NALEŻY BYĆ PSYCHICZNIE GOTOWYM NA UTRATĘ DANYCH NA TABLECIE.
Jeśli coś mamy niezbackupowane, teraz jest chyba ostatni moment.
W uprzednio otwartym okienku linii komend wpisujemy:
adb reboot bootloader
Tablet zrebutuje się do bootloadera; jesteśmy dość nisko w bebechach systemu. W tym samym okienku linii komend wpisujemy:
fastboot oem unlock
Tablet (nie linia komend!) poprosi nas o potwierdzenie. Przy pomocy przycisków od głośności nawigujemy do “Yes” i wciskamy przycisk power, żeby potwierdzić. Na ekranie bootloadera jest kilka linii statusu tabletu — udane otwarcie bootloadera potwierdzi nam “Lock State — Unlocked”.
Możemy teraz zbutować tablet — przyciskiem głośności donawigować do opcji “Start” i potwierdzić przyciskiem power.
Jest bardzo możliwe, że zbutujemy się do dziewiczo czystego tabletu, z zaoranymi user preferences.
Jeśli tak się stało, musimy sobie ponownie włączyć USB debugging (punkty 2 i 3).
5. Instalujemy customowy recovery
Recovery jest to soft umożliwiający nam zaawansowane działania na urządzeniu, które okulało albo potrzebuje nowej wersji systemu.
Użyjemy TWRP, ponieważ TWRP jest znakomite: https://twrp.me/asus/asusnexus72013wifi.html
Wsysamy z linków na stronie, powinniśmy pozyskać plik twrp-numerwersji.img
. Wrzucamy go w jakieś wygodne miejsce na komputerze, nawigujemy tam naszym okienkiem linii komend, po czym obracamy tablet do bootloadera i wrzucamy image:
adb reboot bootloader
(czekamy na bootloader)
fastboot flash recovery twrp-numerwersji.img fastboot reboot
6. Repartycjonujemy tablet i instalujemy jeszcze bardziej custom recovery
Dalsze kroki wymagają więcej miejsca na partycji systemowej niż przewiduje stockowy podział, więc musimy coś na to poradzić. Na szczęście jest do tego narzędzie: https://forum.xda-developers.com/nexus-7-2013/orig-development/repartition-nexus-7-2013-repartition-t3844386 (narzędzia “flo-deb_clamor_repartition.zip”, “twrp-3.3.1-1_UA-flo.img”)
Po zaciągnięciu obydwu plików potrzebujemy wrzucić je na tablet i uruchomić.
Najpierw rebutujemy tablet:
adb reboot recovery
Jesteśmy teraz w cudownym świecie TWRP, gdzie wszystko jest inaczej niż zazwyczaj. Dobrze jest spędzić kilka chwil na klikaniu w różne opcje, ale bez robienia niepotrzebnych nerwowych ruchów. Jeśli po startowym ekranie natrafimy gdzieś na opcję “swipe to confirm”, odpuśćmy sobie na razie. Póki co tylko zwiedzamy.
Jak skończymy zwiedzać, wrzucamy narzędzie do repartycjonowania:
adb push flo-deb_clamor_repartition.zip /sdcard
…a jak się wrzuci, uruchamiamy je z TWRP:
install > wybieramy zip > install image > swipe to confirm
Po uruchomieniu postępujemy zgodnie z promptami na tablecie. Jak już wszystkie dziwne ruchy się zakończą, zapewne otrzymamy zrepartycjonowany tablet.
Należy teraz zainstalować jeszcze bardziej customowe recovery (a dokładniej takie, które potrafi sobie poradzić z właśnie utworzonym nieoczywistym układem partycji):
adb reboot bootloader
(możemy też z TWRP: reboot > bootloader)
fastboot flash recovery twrp-3.3.1-1_UA-flo.img fastboot reboot
Po zbutowaniu udajemy się ponownie do recovery:
adb reboot recovery
Po czym z TWRP formatujemy partycje:
wipe > format data, [wpisujemy] yes
…a potem czyścimy wszystko co nam wpadnie w ręce:
wipe > advanced wipe [zaznaczamy wszystkie opcje] swipe to confirm
Jeśli Coś Poszło Nie Tak™ albo chcemy sobie potwierdzić, że partycje wyglądają OK, idziemy tu: https://forum.xda-developers.com/showpost.php?p=77661878&postcount=2 i postępujemy zgodnie z instrukcją.
7. Instalujemy nowego androida i google appsy
Customowe romy (czyli wersje Androida) nie przychodzą domyślnie z ekosystemem Google Apps — nie ma przymusu korzystania — więc jeśli ktoś sobie życzy mieć Google Play Store, Gmaila, Gmapsy i co tylko, musi sobie własnoręcznie doinstalować pakiet.
Różnych wersji Androida jest jak psów. Ludzie chwalą LineageOS (kontynuację tradycji Cyanogenmoda), ale ja użyłem Resurrection Remix, bez wyraźnej przyczyny: https://get.resurrectionremix.com/?dir=pie/flo
Wsysamy możliwie najnowszą wersję i otrzymujemy plik
RR-P-numerwersji-flo-Official.zip
.
Instalkę Google Apps (gapps) zaciągamy stąd: https://opengapps.org/
…wybierając odpowiednią wersję: ARM, bo Nexus 7 ma takie cpu, 9.0 bo instalujemy Pie, oraz pakiet gapps z tymi featurami, które chcemy.
Nad wyborem flaworu gappsów można spędzić trochę czasu. Dla ułatwienia tu jest porównanie:
W menu po prawej są opisy słowno-muzyczne pakietów, jeśli tabelka przyprawiła nas o wylew. Plik z gappsami będzie się nazywać open_gapps-arm-9.0-wersja.zip
.
Gappsy są stosunkowo duże; za duże żeby wejść w partycję systemową stockowego tabletu. Po to nam było repartycjonowanie tabletu.
Pozyskane pakiety wrzucamy na tablet. Jeśli nie jesteśmy z jakiegoś powodu w recovery, przechodzimy doń:
adb reboot recovery adb push RR-P-numerwersji-flo-Official.zip /sdcard adb push open_gapps-arm-9.0-wersja.zip /sdcard
Po wrzuceniu instalujemy pakiety z TWRP:
install > [wybieramy zip z systemem] > install image > swipe to confirm install > [wybieramy zip z gappsami] > install image > swipe to confirm
UWAGA: nie rebutujemy tabletu między instalacją systemu i Google Apps! Dopiero potem! O tak:
Rebutujemy tablet z TWRP:
reboot > system
8. Czekamy cierpliwie.
Serio — pierwszy boot Resurrection Remix Pie zajął u mnie z dziesięć minut.
9. Profit
10. Problemy, które napotkałem po drodze
- ADB nie gada z tabletem: Coś Nie Tak™ z driverami, patrz punkt 1a. Jeśli nie pomoże, można guglać albo rozważyć zainstalowanie całego wielkiego Android SDK (półtora giga szpeju).
- “Protocol failure” przy
adb push
— komputer magicznie przestał widzieć tablet, because reasons. Pomagało mi odpięcie i przypięcie ponownie — albo komendaadb remount
. - “mkdir /cache/recovery/zupa_z_alfanumerykow failed: No such file or directory” — a dalej E1001, “Updater failed with ERROR: 7” i inne takie. Z jakiegoś powodu installer nie potrafi zrobić całego drzewka od razu. Jak mu to drzewko zapewnić, wszystko idzie dobrze. Z linii komend wykonujemy:
adb shell "mount /cache; mkdir -p /cache/recovery"
…i już. Jeśli powyższe się nie uda, oramy wszystko z TWRP (wipe > advanced > [zaznaczyć wszystko] > swipe to confirm
), obracamy tablet do recovery (adb reboot recovery
) i próbujemy ponownie.
No i tak, u mnie działa. Powodzenia.
Korekta obywatelska: s/oramy/orzemy/g
To jeszcze Magisk aby appka Netflixa chciala sie zainstalowac, bo jak widzi custom to sie nie instaluje.
@piotr: o! ważka uwaga, netfliksa bym :)