15-11-2013, 08:43 PM
(Este mensaje fue modificado por última vez en: 18-11-2013, 10:16 PM por leolas.)
Pues bueno vamos a empezar a cocinar un poco aprovechando la nueva rom de Minix para su X7(15-11-3013).
Yo uso uso ubuntu, y de momento los otros dos cocineros idem, pero si se usa otra distro habrá que adaptar algunas cosillas.
Lo primero es descargar unas herramientas básicas de aquí:http://ubuntuone.com/680ETJqp4wQS7s4GXCHnRP
Creamos una estructura de directorios básicas.
Y en /cocina/rktools/ descomprimimos el fichero que os he mandado. con varios ejecutables y un script en perl
Lo primero que vamos a hacer es desempaquetar el archivo img y conseguir así las partes básicas de la rom.
Para ello usaremos rkunpack para nbo tener q poner la ruta completa a ese ejecutable creamos un enlace simbolico a el en /usr/local/bin y así podremos ejecutarlo desde cualquier sitio.
lo primero es crear una carpeta para cada dispositivo y versión de rom que queramos hacer:
Ahora copiamos o movemos el archivo empaquetado img a ~/cocina/devices/NeoX7/15-11-2013/temp:
Accedemos al directorio y desempaquetamos:
nos debe salir algo como esto:
Pues ya tenemos todo lo necesario para empezar a trabajar con la rom:
RK3188Loader(L)_V1.24.bin »Es nuestro bootloader.
parameter_3188_box_x7_r3_4g »Aquí tenemos un fichero con las particiones
Estos de a continuación son los ficheros que usaremos para hacer nuestra custom:
Image/boot.img
Image/kernel.img
Image/misc.img
Image/recovery.img
Image/system.img
Los demás ficheros podéis desecharlos, son un script para el recovery de stock, binarios del kernel, etc... tienen poca utilidad para nosotros por que no los vamos a usar. Los importantes los pasamos a sources:
Bien pues todo esto lo hacemos con un script "unpackimg" lo llamo yo, solo tenéis que poneros en el mismo directorio donde se encuentra el archivo img que queremos desempaquetar y hacemos:
unpackimg X7_20131111.img NeoX7 15-11-2013
Y vuala dentro de NeoX7/15-11-2013/sources/ estan los archivos para meter mano a la rom.
El script:
Lo guardais como unpackimg, le dais permisos de ejecucion y enlace simbolico a /usr/local/bin/
leolas
RESERVADO -RESERVADO-RESERVADO
En construccion
RESERVADO -RESERVADO-RESERVADO
PARAMETER
Ahora vamos a estudiar un poco el fichero parameter, es un fichero de texto plano y aquí están algunos parametros q definen nuestro dispositivo, cogemos como ejemplo el de la rom que tenemos desempaquetada:
Esta parte:
ni idea de para q vale, por que ahí ponen lo que les da la gana, hay muchas rom 4.2 que ponen que son 4.1 y muchos 3188 que ponen q son 3066.
Estas otras lineas ni las miramos muy fuerte especialmete la de recover key:
Y la que sí usamos que tiene el tamaño de las particiones es:
En esta nos detenemos para analizarla mejor, hay q tener en cuenta que el minix X7 tiene una nand de 16 Gb la mayoría tienen solo 8Gb.
CMDLINE:console=ttyFIQ0 androidboot.console=ttyFIQ0 init=/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:
0x00002000@0x00002000(misc),
0x00008000@0x00004000(kernel),
0x00008000@0x00012000(boot),
0x00010000@0x00020000(recovery),
0x00020000@0x00030000(backup),
0x00040000@0x00050000(cache),
0x00800000@0x00090000(userdata),
0x00002000@0x00890000(kpanic),
0x00130000@0x00892000(system),
-@0x009c5000(user)
Los números estan en hex, asi q cogemos por ejemplo la linea kernel:
0x00008000@0x00004000(kernel),
0x00008000 es el tamaño(size, para saberlo en kb tendríamos que convertirlo a decimal multiplicarlos por 512 y nos saldría el resultado en bytes. en este casao saldrían 16777216b que serían 16Mb
Formulita=size»»lo pasamos a decimal»»X512= tamaño en bytes
@0x00004000 es el offset, y es en el lugar de la nand en la que esa situada la partición.
Si cambias el tamaño de alguna partición tienes que ajustar el offset de todas las posteriores.
Particiones a las q conviene no tocar tamaño:
backup, kpanic, misc.
cache yo nunca la he cambiado, pero no creo que haya problemas, las demás al gusto.
Especialmente las q mas retoca la gente son userdata (/data/) y system. Para la gran mayoría de dispositivos aprox 2gb 0x00400000 para userdata y 0x000100000 500Mb aprox para system son suficientes, al tener 16Gb el X7 da mas juego a la hora de cambiar tamaños.
Yo uso uso ubuntu, y de momento los otros dos cocineros idem, pero si se usa otra distro habrá que adaptar algunas cosillas.
Lo primero es descargar unas herramientas básicas de aquí:http://ubuntuone.com/680ETJqp4wQS7s4GXCHnRP
Creamos una estructura de directorios básicas.
Código:
cd ~
mkdir cocina
cd cocina
mkdir rktools
mkdir devicesLo primero que vamos a hacer es desempaquetar el archivo img y conseguir así las partes básicas de la rom.
Para ello usaremos rkunpack para nbo tener q poner la ruta completa a ese ejecutable creamos un enlace simbolico a el en /usr/local/bin y así podremos ejecutarlo desde cualquier sitio.
Código:
sudo ln -sf ~/cocina/rktools/rkunpack /usr/local/bin/rkunpacklo primero es crear una carpeta para cada dispositivo y versión de rom que queramos hacer:
Código:
mkdir -p ~/cocina/devices/NeoX7/15-11-2013/sources
mkdir -p ~/cocina/devices/NeoX7/15-11-2013/tempAhora copiamos o movemos el archivo empaquetado img a ~/cocina/devices/NeoX7/15-11-2013/temp:
Código:
cp /ruta/donde/esta/el archivo/X7_20131111.img ~/cocina/devices/NeoX7/15-11-2013/temp/rom.imgAccedemos al directorio y desempaquetamos:
Código:
cd ~/cocina/devices/NeoX7/15-11-2013/temp/
rkunpack rom.imgCódigo:
leolas@leolas-desktop:~/cocina/devices/NeoX7/15-11-2013/temp$ rkunpack rom.img
VERSION:2.0.2
unpacking
00000000-00000065 rom.img-HEAD 102 bytes
00000066-0002f9d3 rom.img-BOOT 194926 bytes
0002f9d4-1c8631d7 update.img 478361604 bytes
unpacking update.img
================================================================================
FIRMWARE_VER:4.2.2
MACHINE_MODEL:NEO-X7-216A
MACHINE_ID:007
MANUFACTURER:RK30SDK
unpacking 11 files
-------------------------------------------------------------------------------
00000800-00000fff package-file:package-file 595 bytes
00001000-00030fff bootloader:RK3188Loader(L)_V1.24.bin 194926 bytes
00031000-000317ff parameter:parameter_3188_box_x7_r3_4g:0x2000@0x0 606 bytes
00031800-0003d7ff misc:Image/misc.img:0x2000@0x2000 49152 bytes
0003d800-00a42fff kernel:Image/kernel.img:0x8000@0x4000 10506288 bytes
00a43000-00b3bfff boot:Image/boot.img:0x8000@0x12000 1018095 bytes
00b3c000-0180bfff recovery:Image/recovery.img:0x10000@0x20000 13434880 bytes
0180c000-1b025fff system:Image/system.img:0x130000@0x892000 427924480 bytes
1b026000-1c8327ff backup:backupimage/backup.img:0x20000@0x30000 25214980 bytes
1c832800-1c832fff update-script:update-script 933 bytes
1c833000-1c8337ff recover-script:recover-script 266 bytes
-------------------------------------------------------------------------------
================================================================================
0002f9d4-1c8631d7 rom.img-MD5 32 bytes
unpackedPues ya tenemos todo lo necesario para empezar a trabajar con la rom:
RK3188Loader(L)_V1.24.bin »Es nuestro bootloader.
parameter_3188_box_x7_r3_4g »Aquí tenemos un fichero con las particiones
Estos de a continuación son los ficheros que usaremos para hacer nuestra custom:
Image/boot.img
Image/kernel.img
Image/misc.img
Image/recovery.img
Image/system.img
Los demás ficheros podéis desecharlos, son un script para el recovery de stock, binarios del kernel, etc... tienen poca utilidad para nosotros por que no los vamos a usar. Los importantes los pasamos a sources:
Código:
mv Image/*.img ../sources/
cp para* ../sources/
cp RK* ../sources/Bien pues todo esto lo hacemos con un script "unpackimg" lo llamo yo, solo tenéis que poneros en el mismo directorio donde se encuentra el archivo img que queremos desempaquetar y hacemos:
unpackimg X7_20131111.img NeoX7 15-11-2013
Y vuala dentro de NeoX7/15-11-2013/sources/ estan los archivos para meter mano a la rom.
El script:
Código:
#!/bin/sh
#Usage "unpackimg file.img device version"
rktool=~/cocina/rktools
dest=~/cocina/devices
mkdir $dest/$2
mkdir $dest/$2/$3
mkdir $dest/$2/$3/sources
mkdir $dest/$2/$3/temp
cp $1 $dest/$2/$3/temp/$1.tmp
cd $dest/$2/$3/temp/
$rktool/rkunpack $1.tmp
mv Image/*.img ../sources/
mv parameter ../sources/
mv *.bin ../sources/
cd ..
rm -rf temp
ls -l sources/*Lo guardais como unpackimg, le dais permisos de ejecucion y enlace simbolico a /usr/local/bin/
leolas
RESERVADO -RESERVADO-RESERVADO
En construccion
RESERVADO -RESERVADO-RESERVADO
PARAMETER
Ahora vamos a estudiar un poco el fichero parameter, es un fichero de texto plano y aquí están algunos parametros q definen nuestro dispositivo, cogemos como ejemplo el de la rom que tenemos desempaquetada:
Código:
FIRMWARE_VER:4.2.2
MACHINE_MODEL:NEO-X7-216A
MACHINE_ID:007
MANUFACTURER:RK30SDK
MAGIC: 0x5041524B
ATAG: 0x60000800
MACHINE: 3066
CHECK_MASK: 0x80
KERNEL_IMG: 0x60408000
#RECOVER_KEY: 1,1,0,20,0
CMDLINE:console=ttyFIQ0 androidboot.console=ttyFIQ0 init=/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00002000@0x00002000(misc),0x00008000@0x00004000(kernel),0x00008000@0x00012000(boot),0x00010000@0x00020000(recovery),0x00020000@0x00030000(backup),0x00040000@0x00050000(cache),0x00800000@0x00090000(userdata),0x00002000@0x00890000(kpanic),0x00130000@0x00892000(system),-@0x009c5000(user)Esta parte:
Código:
FIRMWARE_VER:4.2.2
MACHINE_MODEL:NEO-X7-216A
MACHINE_ID:007
MANUFACTURER:RK30SDK
MACHINE: 3066Estas otras lineas ni las miramos muy fuerte especialmete la de recover key:
Código:
MAGIC: 0x5041524B
ATAG: 0x60000800
CHECK_MASK: 0x80
KERNEL_IMG: 0x60408000
#RECOVER_KEY: 1,1,0,20,0Código:
CMDLINE:console=ttyFIQ0 androidboot.console=ttyFIQ0 init=/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00002000@0x00002000(misc),0x00008000@0x00004000(kernel),0x00008000@0x00012000(boot),0x00010000@0x00020000(recovery),0x00020000@0x00030000(backup),0x00040000@0x00050000(cache),0x00800000@0x00090000(userdata),0x00002000@0x00890000(kpanic),0x00130000@0x00892000(system),-@0x009c5000(user)En esta nos detenemos para analizarla mejor, hay q tener en cuenta que el minix X7 tiene una nand de 16 Gb la mayoría tienen solo 8Gb.
CMDLINE:console=ttyFIQ0 androidboot.console=ttyFIQ0 init=/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:
0x00002000@0x00002000(misc),
0x00008000@0x00004000(kernel),
0x00008000@0x00012000(boot),
0x00010000@0x00020000(recovery),
0x00020000@0x00030000(backup),
0x00040000@0x00050000(cache),
0x00800000@0x00090000(userdata),
0x00002000@0x00890000(kpanic),
0x00130000@0x00892000(system),
-@0x009c5000(user)
Los números estan en hex, asi q cogemos por ejemplo la linea kernel:
0x00008000@0x00004000(kernel),
0x00008000 es el tamaño(size, para saberlo en kb tendríamos que convertirlo a decimal multiplicarlos por 512 y nos saldría el resultado en bytes. en este casao saldrían 16777216b que serían 16Mb
Formulita=size»»lo pasamos a decimal»»X512= tamaño en bytes
@0x00004000 es el offset, y es en el lugar de la nand en la que esa situada la partición.
Si cambias el tamaño de alguna partición tienes que ajustar el offset de todas las posteriores.
Particiones a las q conviene no tocar tamaño:
backup, kpanic, misc.
cache yo nunca la he cambiado, pero no creo que haya problemas, las demás al gusto.
Especialmente las q mas retoca la gente son userdata (/data/) y system. Para la gran mayoría de dispositivos aprox 2gb 0x00400000 para userdata y 0x000100000 500Mb aprox para system son suficientes, al tener 16Gb el X7 da mas juego a la hora de cambiar tamaños.



