Ściągasz kuchnię do ICSa
Wersja z poprawionym image.cfg pod nasze tablety oraz sterownikami x64 do livesuit - link
Do wypakowanego folderu packer_ics wrzucasz plik z bazowym obrazem livesuit (jako bazy polecam użycie
Kiano BLADE CITY II -link jako, że sterowniki w nim zawarte są najbardziej kompatybilne z naszym tabletem i ma on popularny kernel)
Zmieniasz nazwę obrazu na original.img
Odpalasz extract_image.bat i czekasz aż przemieli
Ściągasz sobie coś do wirtualizacji (np.
VirtualBox - zakładam, że będziesz wiedzieć jak się tym posługiwać, jeśli bierzesz się za repack firmware)
Stawiasz na tym jakiegoś linuxa (z lenistwa mam ubuntu 12.10) pic polega na tym, że musi być x64 (dalsze narzędzia są napisane pod x64), przydzielasz ram (wypadałoby dać mu ze 2GB), drugi (lub więcej) rdzeni i pamięć grafiki (bo to ubuntu i żre jak krowa - co najwyżej, że postawisz coś innego)
z \packer_ics\_extract kopiujesz do ubunciaka (nie udało mi się podłączyć guesta i hosta w sieć - kopiowałem na pendrive
RFSFAT16_SYSTEM_000000000.fex -> zmieniasz nazwę na system.fex
RFSFAT16_RECOVERY_0000000.fex -> zmieniasz nazwę na recovery.img
RFSFAT16_BOOT_00000000000.fex -> zmieniasz nazwę na boot.img
RFSFAT16_BOOTLOADER_00000.fex -> zostawiasz jak jest
[*]Na linuchu robisz sobie jakiś roboczy folder i wrzucasz tam pliki z powyższej listy
[*]Odpalasz terminal i wklepujesz:
sudo apt-get install ia32-libs
[*]Ściągasz toolsy - link (w folderze roboczym powinieneś mieć pliki z listy, tools.tar.gz i folder tools)
[*]Odpalasz terminal i wchodzisz do folderu roboczego
[*]Wklepujesz:
tools/split_bootimg.pl boot.img
ls
[*]Jeśli widzisz więcej plików to znaczy, że wszystko poszło jak należy
[*]Wklepujesz:
mkdir ramdisk
cd ramdisk
gunzip -c ../boot.img-ramdisk.gz | cpio -i
ls
[*]Powinieneś zobaczyć zawartość partycji boot (w tablecie punkt montowania /) i tak. W init.sun4i.rc są insmody i konfiguracja wstępna sterowników - działa poprawnie po wyedytowaniu VIM'em - link . initlogo.rle to obraz widoczny przy 2giej części bootowania (logo Larka/Kiano itp.). Z tego co pamiętam w init.rc były wpisy dotyczące montowania nandów itp.
[*]Jak już wprowadzisz i zapiszesz zmiany to wklepujesz:
cd ..
tools/mkbootfs ramdisk | gzip > ramdisk-new.gz
tools/mkbootimg --base 0x40000000 --kernel boot.img-kernel --ramdisk ramdisk-new.gz --cmdline 'console=ttyS0,115200 rw init=/init loglevel=8' -o new-boot.img
ls
(--base 0x4 i 7 zer!!!) - jak tu się kopniesz to mogiła - zabawa od nowa ze składaniem. console=tty(eS)0 - generalnie chodzi o to, co wypluwa się przy gunzip -c żeby było takie samo
[*]Z partycją recovery jest generalnie tak samo. Wklepujesz:
tools/split_bootimg.pl recovery.img
rm -rf ramdisk
mkdir ramdisk
cd ramdisk
gunzip -c ../recovery.img-ramdisk.gz | cpio -i
ls
[*]Jak wyedytujesz to wklepujesz:
cd ..
tools/mkbootfs ramdisk | gzip > ramdisk-new.gz
tools/mkbootimg --base 0x40000000 --kernel recovery.img-kernel --ramdisk ramdisk-new.gz --cmdline 'console=ttyS0,115200 rw init=/init loglevel=8' -o new-recovery.img
ls
uwagi jak wyżej
[*]Z edycją partycji systemowej jest nieco inaczej:
tools/simg2img system.fex system.img
mkdir system
sudo mount -o loop system.img system
cd system
ls
przy czym system i pliki w nim są zakłódkowane (uprawnienia roota wymagane do wprowadzania zmian)
polecam:
cp -a system sys2
i edytowanie dopiero w folderze sys2, a potem wrzucenie i podmianę wyedytowanych elementów do folderu system.
[*]Potem składasz system do kupy:
cd ../tools
sudo ./mkuserimg.sh -s ../system ../new-system.fex ext4 ../tmp 300M
cd ..
sudo umount system
ls
i na tym większość poradników się kończy... my niestety potrzebujemy jeszcze 1st boota (bootfs)
[*]Tworzysz sobie folder bootfs w katalogu roboczym i klepiesz:
sudo mount -o loop RFSFAT16_BOOTLOADER_00000.fex bootfs
cp -a bootfs bootfs2
zawartość folderu bootfs2 kopiujesz do windowsowego \packer_ics\_bootfs (jak pisałem - ja przenosiłem to na pendrive)
[*]Kopiujesz pliki new-boot.img new-recovery.img i new-system.fex do windowsowego \packer_ics\_input zmieniając nazwy:
new-boot.img -> root.fex
new-recovery.img -> recovery.fex
new-system.fex -> system.fex
[*]Gdy _input, _extract i _bootfs są już wypełnione odpowiednimi plikami odpalasz create_image.bat
[*]output.img to twój nowy obraz do livesuit
output.img może być nieco mniejszy niż original.img - jest to "zasługa" nieco mocniejszej kompresji gzip niż w wypadku oryginalnych obrazów.
I teraz lista problemów po flashu:
Tablet nie reaguje na przycisk power po flashu -> prawdopodobnie zła ilość zer po parametrze --base lub brak bootfs przy kompilacji obrazu livesuit
Tablet zawiesza się na wyświetlaniu initlogo.rle -> skopane sterowniki/błędne wpisy w init.sun4i.rc