Boot android SD-card de funcționare - pagina personală a Vitaly Yepifanova

Cine gadget piață, o serie de dispozitive ieftine fabricate în China au construit pe chips-uri de la Allwinner care rulează Android. În ciuda numărului mare de producători, care sunt vândute sub numele de marcă a acestor dispozitive, un singur lucru îi unește: o lipsă totală de suport tehnic de la producător. OS sunt compilate de chinezi, care nu se grăbesc să actualiza software-ul la o versiune mai nouă, deși, pe baza informațiilor de pe site-ul Allwinner, aceste cipuri sprijină activitatea de până la Android 4.2.2. Ceva îmi spune că actualizarea software-ul nu merg deloc.

Un astfel de dispozitiv - RoverPad w74l - I-am cumpărat în DNS pentru a experimenta cu Android. Este comprimat bazat pe Allwinner A13. Aș spune că acest lucru este o tabletă foarte bun pentru toate tipurile de internet - .. Stând, citind cărți etc. Lipsa de suport tehnic mine, nu deosebit de surprins, deoarece am deja un comprimat dintr-o altă „română“ producător - Trimestrul 3, care, dacă este deschis capacul superior, adevărat producător prost montată este «Pegatron Lucid». Sprijinirea companiilor românești „“ produse exclusiv de către utilizatorii online. Și apoi există 4PDA, în cazul în care oamenii în cele mai bune de capacitatea mea de a ajuta reciproc rezolva probleme tehnice care ar fi frumos pentru a rezolva suportul tehnic oficial.

Despre această serie

Deci, ceea ce, de asemenea, vor fi discutate. În timpul meu cunoștință cu tableta interioară a dezvăluit câteva lucruri nu destul de convenabil. În primul rând - Umpleti firmware-ul se face prin LiveSuit. Pogramma, sincer, nu o fântână, și nici măcar pârâu ... În plus, dacă ați lucrat cu tableta prin ADB, înainte de înșurubarea de la șofer Google, instalați driverul LiveSuit nu poate, prin urmare, firmware-ul nu va funcționa. Ca o opțiune de ieșire din această situație, puteți utiliza VMWare, care poate fi cuplat la sistemul de operare clienților, dispozitivul USB, sau coase pe un alt calculator (în acest scop, am folosit un netbook). În al doilea rând - atunci când modificarea firmware-ului este adesea necesară perezalivat-l în dispozitiv, care este foarte lung și neproductive. Și, înainte ca este necesar să se re-colecta, astfel încât să continue inconveniente. Aceasta este decizia pe care o parte a problemei va fi discutată în continuare, și anume, modul în care imaginea de LiveSuit pentru a face un boot-abil microSD carduri, care pot fi încărcate comprimat fără a utiliza built-in memorie flash. Astfel, schimbările în firmware-ul sunt reduse la modificări în fișierele microSD, de asemenea, merită să-i iasă din fantă, iar placa a fost încărcat cu memoria sa ca și cum nimic nu sa întâmplat. Mai mult, după schimbarea, vă voi arăta cum în acest SD-card pentru a face o LiveSuit imagine, care este deja posibil pentru a umple dispozitivul blitz intern și să se bucure.

Pregătirea la locul de muncă

Pentru a începe cu, că instrumentele pe care le vom face, pot fi destul de diferite, în funcție de acest lucru, voi descrie pe scurt punctele întregului proces.

Aceasta este o listă generală de instrumente. El a umplut în timpul prezentării, dar primele lucruri primele.

Acest lucru se bazează pe un număr destul de mare de surse, dar două articole au fost temelia, care a fost începutul începuturilor:

Alte surse Voi menționa în cursul textului în locuri în care, de fapt, a fost folosit informații de la ei.

Presupunem că, odată cu instalarea Ubuntu ați reușit cu succes. Ce mențiune specială - atunci când selectați un pachet în serverul SSH selectați etapa finală, sau atunci puteți seta oricând.

Imediat după instalare, efectuați următoarele comenzi:

$ Sudo su
# Update apt-get
# Apt-get upgrade
# Apt-get install sshd - cu excepția cazului în care ați ales la sfârșitul SSH server de instalare
# Apt-get install MC - acest lucru va seta comandantul miezul nopții - două panoul de manager de fișiere cu care se poate lucra în terminalul Putty.

Dacă ați instalat versiunea rusă a Ubuntu, în setările de sesiune Putty în secțiunea Aspect, asigurați-vă că pentru a seta codificarea UTF-8, sau caractere chirilice sunt afișate într-o foarte ciudat.

Faza de pregătire este terminată, se procedează la această problemă.

Boot android SD-card de funcționare - pagina personală a Vitaly Yepifanova

Observați în captura de ecran de acolo _extract dosarul pe care-l aveți încă. Acesta va apărea după demontare firmware-ului, vor exista unele elemente ale imaginii.

Acum vom rula fișierul extract_image.bat și așteptați cu răbdare până când ne-am oferit să apăsați orice tastă ...

Boot android SD-card de funcționare - pagina personală a Vitaly Yepifanova

Și aici există o nuanță mică. Lucrul cu această bucătărie poate fi doar pe o mașină fizică. Pe virtual va genera o eroare și amabilitate vă spune că este nevoie de mediul exclusiv fizic.

Așa că am rupt imaginea în componente. Du-te ghid _extract la dosar, și vedeți acolo un teanc mare de fișiere, unul dintre cele mai interesante dintre care este Filelist.txt. Mai târziu, el ne-a dat foarte bun util, pentru că în ea toate modulele extrase sunt listate în ordinea în care apar sub formă de firmware-ului. Este în conformitate cu fișierul va trebui să modificați ansamblul de configurare, atunci când vom face imagine LiveSuit de la SD-card.

Între timp, conținutul zaymomsya propria imagine. Avem nevoie de următoarele fișiere:

  • RFSFAT16_BOOT_00000000000.fex
  • RFSFAT16_BOOTLOADER_00000.fex
  • RFSFAT16_SYSTEM_000000000.fex
  • RFSFAT16_RECOVERY_0000000.fex

Redenumiți fișierele selectate pentru a ne boot.fex, bootloader.fex, system.fex și, respectiv, și folosind WinSCP recovery.fex, copiați-le la mașina virtuală Ubuntu. Am creat în folderul / home / utilizator subfolder Android / imagini, astfel încât totul a fost într-un singur loc și copiați imaginea.

# Tar -zxvf tools.tar.gz

Acum avem directorul instrumente pe care doriți să copiați folderul cu imagini, de exemplu, folosind midnight commander, care poate rula comanda:

Că ceva de genul acesta ar trebui să poată:

Boot android SD-card de funcționare - pagina personală a Vitaly Yepifanova

Pentru a muta consola din midnight commander nu este în mod necesar. Trebuie doar să apăsați Ctrl + O, și par consola. Apăsând din nou, se va întoarce fereastra din spate.

Du-te la folderul cu imagini și instrumente, du-te la consola și tipul:

Ar trebui să arate ceva de genul asta:

Boot android SD-card de funcționare - pagina personală a Vitaly Yepifanova

După cum putem vedea, am fost prezentat șirul de inițializare kernel-ului și împărțit-o în două fișiere boot.fex: boot.fex-kernel - de fapt, miezul și boot.fex-ramdisk.gz - ramdisk. Dacă te uiți în midnight commander, le vom vedea:

Boot android SD-card de funcționare - pagina personală a Vitaly Yepifanova

Acum vom crea boot directorul, copiați fișierul în două primit boot.fex-kernel boot.fex-ramdisk.gz, și du-te la el.

Introducerea în consolă:

# ls
# Mkdir de boot
# Cd de boot
# Gunzip -c. /boot.fex-ramdisk.gz | cpio -i

Și vom obține următoarele:

Du-te la cel mai înalt nivel de comandă

și introduceți următoarea comandă:

# Mkimage -O braț -O Linux kernel -T -C none -a 0x40008000 -e 0x40008000-n "Linux sunxi" uImage -d boot.fex-kernel

I a lua o eroare că instrumentele uBoot nu sunt instalate în prezent. Stabilirea echipa lor

# Apt-get install u-boot-tools

Din nou, comanda anterioară (a nu introduce din nou, puteți apăsa butonul săgeată de două ori). De data aceasta totul a mers bine:

Dacă te uiți acum în directorul de boot, veți vedea următoarele:

Boot android SD-card de funcționare - pagina personală a Vitaly Yepifanova

Acest conținut a ramdisk. Privind în perspectivă, observăm că este aici, în fișierul init.sun5i.rc, vom schimba punctul de montare.

Pentru moment, vom lăsa consola, și conținutul acestui aktaloga zaarhiviruem:

# Tar -cpvf. /boot.tar *

acum avem două fișiere: boot.tar - ramdisk arhivă și uImage - nucleu decomprimat.

Boot android SD-card de funcționare - pagina personală a Vitaly Yepifanova

Acum, avem nevoie pentru a extrage conținutul imaginii system.fex. Mutați înapoi la folderul cu imaginile originale, și executa următoarele comenzi:

# ./tools/simg2img system.fex system.ext4
# Sistem Mkdir
# Mount o- sistem system.ext4 bucla
# Sistem de Cd
# Tar -cpvf. /system.tar *
# Cd.
Sistemul # umount

Ca rezultat, am primit fișier system.tar, care conține tot ceea ce a fost în formă de system.fex. Comenzile dactilografiate face următoarele:

Prima comandă convertește system.fex într-un fișier de imagine de disc cu ext4 sistem redundant. Apoi, imaginea rezultată este montat în dosarul de sistem și conținutul său sunt agățându-se de gudron arhiva. Apoi, imaginea este nemontate.

Cu partiție de recuperare poate lucra la fel de bine cu boot:

# ./tools/split_bootimg.pl recovery.fex
Dimensiunea paginii: 2048 (0x00000800)
Dimensiunea Kernel: 4215036 (0x004050fc)
Dimensiunea ramdisk: 974998 (0x000ee096)
A doua dimensiune: 0 (0x00000000)
Numele de bord:
Linia de comandă: consola = ttyS0,115200 rw init = / init LogLevel = 5
Scrierea recovery.fex-nucleu. completă.
Scrierea recovery.fex-ramdisk.gz. completă.
# Recuperare Mkdir
de recuperare # Cd
# Gunzip -c. /recovery.img-ramdisk.gz | cpio -i
# Tar -cpvf. /recovery.tar *
# Cd.

Acum trebuie să ne pregătim SD-card. Am folosit un 4 GB, pentru a asigura suficient. Tabela de partiții pe ea va fi următoarea:

Conectați cardul la o mașină virtuală:

Boot android SD-card de funcționare - pagina personală a Vitaly Yepifanova

Având în vedere că acesta este montat:

Boot android SD-card de funcționare - pagina personală a Vitaly Yepifanova

Dacă muntele nu se întâmplă, am deconectați de la mașina virtuală și conectați din nou.

Pentru a evita confuzia, să creeze o carte variabilă, cu o valoare de / dev / sdb (I SD-card este montat ca SDB. Pentru a vedea exact cum este montat, puteți utiliza comanda ls / dev / SD și apăsați de două ori pe tab-ul. Ultimul dispozitiv în retragerea ar trebui să fie SD-card). Creați secțiuni:

# Card = / dev / sdb
# Dd if = / dev / zero = bs $ = carte de conta 1M = 1
carte # Sfdisk-R $
# pisică <

Ar trebui să arate ceva de genul asta:

Boot android SD-card de funcționare - pagina personală a Vitaly Yepifanova

# Mkfs.vfat bootloader $ de 1 -n
# Mkfs.ext4 -L cizme $ cu 2
# Mkfs.ext4 -L sistem $ cu 3
# Mkfs.ext4 -L $ date de 5
# Mkfs.ext4 -L misc $ 6
# Mkfs.ext4 -L recuperare $ 7
# Mkfs.ext4 -L cache $ 8
# Mkfs.ext4 -L privat $ 9
# Mkfs.vfat UDisk $ de 10 N

Huge_file elimina opțiunea din sistemul de fișiere, deoarece kernel-ul Android este compilat fără această opțiune:

# Tune2fs -O ^ huge_file 2 $
# Tune2fs -O ^ huge_file 3 $
# Tune2fs -O ^ huge_file 5 $
# Tune2fs -O ^ huge_file 6 $
# Tune2fs -O ^ huge_file 7 $
# Tune2fs -O ^ huge_file 8 $
# Tune2fs -O ^ huge_file 9 $

Este de asemenea cunoscut faptul că Allwinner caută spl în blocul 1024 octeți a 8 și uBoot trebuie, așadar, plasat într-un 32 m.

Despachetați arhiva cu încărcătorul de boot (arhiva poate fi despachetat și Windows), aruncă Ubuntu lor, se duce la folderul cu ei și execută comanda:

# Dd dacă = sunxi-spl.bin a = $ carte bs = 1024 caute = 8
# Dd if = u-boot.bin a = $ carte bs = 1024 caute = 32

Boot android SD-card de funcționare - pagina personală a Vitaly Yepifanova

Mutați înapoi la folderul cu imagini, a crea un subfolder acolo bloader, asambla acolo bootloader.fex, și să înceapă să se mute datele la SD-card.

# Mkdir bloader
# Mount o- bloader buclă bootloader.fex
# Mount 1 $ / mnt /
# Cp boot / uImage / mnt
# Cp bloader / script.bin / mnt
# Cat> /mnt/uEnv.txt <fexfile = script.bin
kernel = uImage
extraargs = root = / dev / mmcblk0p2 LogLevel = 8 rootwait console = ttyS0,115200 rw init = / inițializare mac_addr = 00: AE: 99: A3: E4: AF
boot_mmc = fatload mmc 0 0x43000000 # 92; $; fatload mmc 0 0x48000000 # 92; $; bootm 0x48000000
EOT

După aceea, folderul / mnt ar trebui să apară fișierul uEnv.txt după cum urmează:

Boot android SD-card de funcționare - pagina personală a Vitaly Yepifanova

Crearea uEnv.txt pentru rekaveri și partițiilor:

# Cat> /mnt/uEnv_recovery.txt <fexfile = script.bin
kernel = uImage
extraargs = root = / dev / mmcblk0p7 LogLevel = 8 rootwait console = ttyS0,115200 rw init = / inițializare mac_addr = 00: AE: 99: A3: E4: AF
boot_mmc = fatload mmc 0 0x43000000 # 92; $; fatload mmc 0 0x48000000 # 92; $; bootm 0x48000000
EOT
# Umount / mnt
# Umount bootloader

Copiați conținutul ramdisk la profilul dorit:

# Mount $ 2 / mnt
# Tar -xpvf boot / boot.tar C / mnt

Acum trebuie să înlocuim punctul de montare și secțiunea poate fi razmotirovat:

# Sed -i "s / nandd / mmcblk0p3 / g" /mnt/init.sun5i.rc
# Sed -i "s / Nande / mmcblk0p5 / g" /mnt/init.sun5i.rc
# Sed -i "s / nandh / mmcblk0p8 / g" /mnt/init.sun5i.rc
# Sed /mnt/init.sun5i.rc -i "s / nandi / mmcblk0p10 / g"
# Umount / mnt

Copiați datele de pe sistemul de partiție:

# Mount $ 3 / mnt
# Tar -xpvf system.tar -C / mnt
# Umount / mnt

# Mount $ 7 / mnt
# Tar -xpvf recovery.tar -C / mnt
# Sed -i "s / nandf / mmcblk0p6 / g" /mnt/ueventd.sun5i.rc
# Umount / mnt
# sincronizare

Asta e tot. Puteți introduce cartela în tabletă și cizme de la ea. Secțiunea de date nu trebuie să se umple, se va umple propriul Android la prima pornire. Deci, dacă doriți să resetați toate setările la zero, montați partiția / dev / sdb5, eliminați tot acolo, și demontează. Nu uitați să faceți după sincronizare umount comandă.