07 Mar

KM1065G (PIPO P9) – backup, flash i naprawa romu / firmware

Rootowanie urządzenia wiąże się z ryzykiem uszkodzenia plików systemowych i w przypadku braku wsparcia ze strony producenta może skończyć się trwałym uszkodzeniem telefonu lub tabletu. Jednak z uwagi na to, że w systemie Android 4.4.x KitKat mocno ograniczona została możliwość wykorzystania karty sd (w większości przypadków karta montowana jest w trybie tylko do odczytu) użytkownik niejako zmuszony jest do ingerencji w system. Wiele urządzeń posiada mniej niż 4GB wolnej pamięci… którą bardzo łatwo szybko zapełnić.

AKTUALIZACJA: Firma K&M udostępnia pełną paczkę oryginalnego ROM’u, który bez problemu możemy wgrać do tabletu.
Link1: pliki.lpelektronik.com
Link2 (kopia): mega.co.nz

Zabieg zmiany sposobu montowania karty pamięci jest stosunkowo prosty jednak wymaga uprawnień roota. Możliwe jest skorzystanie z dedykowanego oprogramowania np. https://play.google.com/store/apps/details?id=nextapp.sdfix&hl=pl lub ręczne wyedytowanie pliku /system/etc/permissions/platform.xml

NextApp SDFix will modify the configuration file located at /system/etc/permissions/platform.xml to allow apps to write to the MicroSD card. Specifically, SDFix will add the Android UNIX group „media_rw” to the WRITE_EXTERNAL_STORAGE permission’s configuration. This will enable apps (only those that you granted write access permissions to when you installed them) to write files to the MicroSD card. On many devices, this is effectively reverting the state of this permission back to the way it was configured in Android 4.3. This modification is carried out by modifying the existing XML file, rather than replacing it.
A backup of the original configuration file will be saved at /system/etc/permissions/platform.xml.original-pre-sdfix (provided one does not already exist). Reverting this modification can be accomplished by using a root -enabled file manager to replace the /system/etc/permissions/platform.xml file with the backed up version.

Zrobienie drobnej literówki czy np. nieprawidłowe zamknięcie gałęzi w edytowanym pliku xml może spowodować, że po restarcie Android już nie wystartuje. Tak było w moim przypadku – włączenie systemu powodowało wyświetlenie na starcie kilkunastu okien z błędami i zawieszenie.

Poniżej opisuję procedurę ratowania systemu. Producent nie udostępnia niestety publicznie obrazu systemu, tablet nie posiadał wgranego CWM (dodatkowo nie posiada fizycznych przycisków głośności do poruszania po menu), nie miałem włączonego trybu deweloperskiego usb. Metodą prób i błędów udało mi się zbootować w trybie recovery.

Co będzie potrzebne?
1. Odpowiednie sterowniki do RK3288 (RKxxxx).
a) możliwe jest skorzystanie z gotowego pakietu, który sam próbuje poradzić sobie z instalacją.
http://strzelecki.info/wp-content/uploads/2015/03/DriverInstaller_2014.rar
lub
http://strzelecki.info/wp-content/uploads/2015/03/Release_DriverAssitant.rar (korzystałem z tego, troche starszego rozwiązania)
b) jeżeli automatyczne instalowanie sterowników nie zadziała możliwe jest także zainstalowanie ich ręcznie z wykorzystaniem tej paczki: http://strzelecki.info/wp-content/uploads/2015/03/Rockusb_Driver_v3.7.rar
Opis ręcznej instalacji sterowników znajduje się tutaj (Install Manually): http://www.hotmcu.com/wiki/Flashing_Firmware_Image_Files_Using_The_Rockchip_Tool lub jego kopia tutaj: http://strzelecki.info/wp-content/uploads/2015/03/Flashing-Firmware-Image-Files-Using-The-Rockchip-Tool-wiki.pdf

2. Oryginalny kabelek USB (możliwe, że flashowanie zadziała też na innym jednak na forach krąży opinia, że najlepiej do tego nadaje się kabel z zestawu – inny rozkład pinów / filtry ??).

Należy podpiąć kabel do zwykłego portu USB (nie host), włączyć urządzenie i poczekać aż się uruchomi, następnie trzymając cały czas przycisk HOME zrestartować. W moim przypadku wejście do trybu serwisowego możliwe było poprzez włączenie urządzenia kombinacją klawiszy HOME (trzymać), potem POWER (trzymać 2-3 sekundy), puścić POWER i cały czas trzymać HOME. Na ekranie pojawiał się zielony ludek Android z czerwonym X. Niestety w takim stanie urządzenie nie było prawidłowo wykrywane. Dopiero opisana na początku metoda z włączeniem, restartem (trzymając HOME) i odczekaniem chwili powodowała start instalacji sterownika. Ekran androida w tym czasie jest cały czas czarny!

Prawidłowo zainstalowany sterownik

W moim przypadku problemem był nieprawidłowo wyedytowany plik. Naprawienie systemu możliwe było poprzez ściagnięcie pliku, wprowadzenie poprawek i jego ponowne zapisanie. W tym celu musiałem zgrać partycję system.img, odpowiednim narzędziem wyodrębnić wszystkie znajdujące się w niej pliki, wyedytować xml, a następnie ponownie utworzyć paczkę i wgrać ją do urządzenia.

3. Zgrywanie partycji możliwe jest z wykorzystaniem odpowiedniego narzędzia dostępnego tutaj: http://strzelecki.info/wp-content/uploads/2015/03/RK-Rom-Dumper-and-Flasher-for-Windows.rar W środku znajduje się szczegółowa instrukcja.

Na początku konieczne jest ściągnięcie informacji o układzie partycji (odpowiedni zakres adresów w pamięci).

null

Następnie otwieramy plik w notatniku (punkt 4,5,6) i usuwamy z niego zbędne, śmieciowe informacje.

7) The first line you will see something like this:
PARMi FIRMWARE_VER:4.1.1
Delete all the junk in front of the word FIRMWARE so it looks like this now:
FIRMWARE_VER:4.1.1
8) clean up ending junk. At the end you will see this word:
(user)
After it will be some junk. Delete everything after (user) including any blank space.
When done make sure to hit enter once so there is a new line after (user)
9) Save the cleaned up parameter file but leave it open as we need it to continue.

Po wyczyszczeniu zmieniamy jego nazwę z exportimage.img na parameter.txt. Zawartość powinna wyglądać tak:

null

W przypadku KM1065G układ partycji prezentuje się następująco:

CMDLINE:vmalloc=516M CMDLINE:console=ttyFIQ0 loglevel=1 androidboot.hardware=rk30board androidboot.console=ttyFIQ0 board.ap_has_alsa=0 init=/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00002000@0x00004000(misc),0x00008000@0x00006000(resource),0x00008000@0x0000e000(kernel),0x00010000@0x00016000(boot),0x00010000@0x00026000(recovery),0x0001a000@0x00036000(backup),0x00040000@0x00050000(cache),0x00002000@0x00090000(kpanic),0x00200000@0x00092000(system),0x00002000@0x00292000(metadata),0x00400000@0x00294000(userdata),-@0x00694000(user)

4. Mając dane o partycjach możemy już ściągnąc odpowiedni obraz. W tym celu przepisujemy początek obszaru pamięci i rozmiar – uwaga! – w odwrotnej kolejności, tzn. wartość za @ to start, a przed @ to długość, np.

0x00200000@0x00092000(system) —> START: 0x00092000 COUNT: 0x00200000

null

Klikamy na przycisk ExportImage i czekamy dłuższą chwile. Po wyświetleniu komunikatu szukamy pliku RK Rom Dumper and Flasher for Windows\Output\ExportImage.img i zmieniamy jego nazwe na system.img. W moim przypadku rozmiar tego pliku to 1GB (1048576KB).

5. Tak przygotowany plik możemy wypakować z użyciem tego narzędzia RK3xxx firmware tools by SergioPoverony 5.23.18.00 http://strzelecki.info/wp-content/uploads/2015/03/Rk3xxxSergioPoverony.rar

Klikamy na przycisk Single tools, potem Select file… (Select system.img file) i wskazujemy nasz plik system.img. Następnie klikamy przycisk Extract i czekamy na rozpakowanie zawartości. Po rozpakowaniu możemy obejrzeć zawartość katalogu klikając w „Open folder”.

6. Po wprowadzeniu wymaganych modyfikacji klikamy Build. Utworzony zostanie plik new_system.img. Ważne jest, aby w polu tekstowym wprowadzić odpowiednią wielkość „Select system.img size”. W moim przypadku było to 1024 Mb. Utworzony plik powinien mieć taki sam rozmiar jak plik zgrany z tabletu.

null

7. Ostatnim krokiem jest załadowanie zmodyfikowanego pliku system.img. Kopiujemy go do folderu RK Rom Dumper and Flasher for Windows\Output\ i odpalamy program RK Rom Dumper and Flasher for Windows\Flasher_tool

WAŻNE! Należy upewnić się, że Flasher_tool wskazuje takie same wartości adresów jak te, które wyciągneliśmy z tabletu i zapisaliśmy w parameter.txt

null

8. Zaznaczamy odpowiedni checkbox (np. przy system.img) i wciskamy Flash rom. Po chwili nasz nowy img będzie już załadowany do tabletu. Restartujemy i cieszymy się poprawnie działającym systemem.

Zrzucając w ten sposób wszystkie partycje możemy wykonać bardzo bezpieczną kopię firmware.