Cita:
Originalmente Escrito por Jaumejack
Se nota que estas puesto en el tema y qué además de entender, te preocupas.
|
¿Entender? ¿Yo? Tengo un módulo superior de programación, sí... Pero la mierda que di ahí no sirve para nada de la vida real.
Si se quiere aprender se tiene que cacharrear y una vez que tienes una herramienta que te permite hacer una copia de la flash sin riesgo a brickear la tablet porque arranca en el bootloader... ¡Qué menos que aprovecharla!
Cita:
Originalmente Escrito por Jaumejack
Yo por mi parte si puedo hacer algo me lo haces saber, aunque sea de conejillo de indias.
|
Las cosas son muy bonitas hasta que la tablet se convierte en un ladrillo. Juegos los mínimos si no se sabe bien que se hace.
=============================
En cuanto a lo que estoy haciendo ahora... No es nada que no podría haber encontrado otro a base de darle a Google. La herramienta en cuestión es rkflashtool.
La herramienta oficial (
rkbatchtool) requiere una imágenes de una manera específica con unos archivos que dicen dónde escribir esos datos (HWDEF, por ejemplo, tienes los offsets de las particiones)
Esta herramienta que he encontrado en XDA (
rkflashtool) permite escribir bloque a bloque... ¡Pero también escribir! Por lo que se puede flashear en caso de que la partición quede corrupta. (Aunque también se puede cagar a lo grande).
Los offsets están en la misma flash.
Código:
rkflashtool r 0x0 0x2000 > parm
los parámetros están en la cabecera.
Así ha salido algo tan claro con esto:
Código:
PARMa^B^@^@FIRMWARE_VER:4.0.4
MACHINE_MODEL:Tablet PC 3000
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),0x0000c000@0x0000c000(boot),0x0000c000@0x00018000(recovery),0x00190000@0x00024000(backup),0x00040000@0x001b4000(cache),0x00200000@0x001f4000(userdata),0x00002000@0x003f4000(kpanic),0x00180000@0x003f6000(system),-@0x00576000(user)
Código:
rkflashtool r 0x00002000 0x00002000 > misc.img
rkflashtool r 0x00004000 0x00008000 > kernel.img
rkflashtool r 0x0000c000 0x0000c000 > boot.img
rkflashtool r 0x00018000 0x0000c000 > recovery.img
rkflashtool r 0x00024000 0x00190000 > backup.img
rkflashtool r 0x001b4000 0x00040000 > cache.img
rkflashtool r 0x001f4000 0x00200000 > userdata.img
rkflashtool r 0x003f4000 0x00002000 > kpanic.img
rkflashtool r 0x003f6000 0x00180000 > system.img
Código:
for i in *.img; do
mkdir ${i%.img}
mount -o loop ./$i ./${i%.img}
echo ""; echo ${i%.img}
ls -lha ./${i%.img}
done
Et voila!
Código:
cache
drwxrwx--- 4 1000 2001 4,0K jun 8 19:52 .
drwxr-xr-x 11 root root 4,0K sep 17 04:20 ..
drwxrwx--- 2 root root 4,0K ene 1 1970 lost+found
drwxrwx--- 2 1000 2001 4,0K sep 16 14:56 recovery
system
drwxr-xr-x 15 root root 1,0K dic 1 2012 .
drwxr-xr-x 11 root root 4,0K sep 17 04:20 ..
drwxr-xr-x 2 root root 4,0K nov 28 2012 app
drwxr-xr-x 3 root 2000 5,0K nov 28 2012 bin
-rw-r--r-- 1 root root 2,9K nov 28 2012 build.prop
drwxr-xr-x 11 root root 1,0K nov 28 2012 etc
drwxr-xr-x 3 root root 3,0K nov 28 2012 fonts
drwxr-xr-x 2 root root 1,0K nov 28 2012 framework
drwxr-xr-x 9 root root 8,0K nov 28 2012 lib
drwx------ 2 root root 1,0K dic 1 2012 lost+found
drwxr-xr-x 3 root root 1,0K nov 28 2012 media
drwxr-xr-x 4 root root 1,0K nov 28 2012 .svn
drwxr-xr-x 3 root root 1,0K nov 28 2012 tts
drwxr-xr-x 8 root root 1,0K nov 30 2012 usr
drwxr-xr-x 4 root 2000 1,0K nov 28 2012 vendor
drwxr-xr-x 2 root 2000 1,0K nov 28 2012 xbin
userdata
drwxrwx--x 21 1000 unprivileged_users 4,0K jun 27 02:58 .
drwxr-xr-x 11 root root 4,0K sep 17 04:20 ..
drwxrwxr-x 2 1000 unprivileged_users 4,0K sep 16 18:43 anr
drwxrwx--x 2 1000 unprivileged_users 4,0K sep 11 17:12 app
drwx------ 2 root root 4,0K jun 8 19:52 app-asec
drwxrwx--x 2 1000 unprivileged_users 4,0K jun 8 19:52 app-private
drwx------ 4 1000 unprivileged_users 4,0K sep 17 03:22 backup
drwxrwx--x 2 1000 unprivileged_users 8,0K sep 11 17:12 dalvik-cache
drwxrwx--x 115 1000 unprivileged_users 4,0K sep 11 17:12 data
drwxr-x--- 2 root 1007 4,0K jun 8 19:52 dontpanic
drwxrwx--- 3 1019 1019 4,0K jun 8 20:49 drm
drwxr-x--x 3 root root 4,0K jun 8 19:52 local
drwxrwx--- 2 root root 4,0K ene 1 1970 lost+found
drwxrwxr-x 2 1023 1023 4,0K jun 8 19:52 media
drwxrwx--t 11 1000 9998 4,0K jun 8 19:52 misc
drwx------ 2 root root 4,0K sep 17 03:22 property
drwxrwx--x 2 1000 unprivileged_users 4,0K jun 8 19:52 resource-cache
drwxr-x--- 3 root 2000 4,0K jun 8 19:52 ssh
drwxrwxr-x 11 1000 unprivileged_users 4,0K sep 17 03:52 system
drwx------ 2 1000 unprivileged_users 4,0K ago 23 05:40 tombstones
drwx--x--x 2 1000 unprivileged_users 4,0K jun 8 19:52 user
Las "particiones" backup, boot, kernel, kpanic, misc y recovery todavía no he podido montarlas.
No he compilado nada que el kernel de Arch Linux no tuviera ya así que puede que estén en algún sistema de archivos como cramfs, yaffs2 o jffs2 para el cual no tengo módulo compilado ni aplicación instalada.
De momento tengo la partición de sistema lista para ser modificada y rootearla. Ya no es más que coger los binarios de arm, soltarlos ahí y reflashear... Además de quitar algo de bloat que tiene.
Un saludo.
================================================== =
10 minutos después, 8 de ellos haciendo una copia de seguridad y flasheando la nueva partición system. La tablet está rooteada.
Descargaré una actualización de una tablet similar a esta en la que estoy basando mi trabajo (La BQ Edison) y modificaré la imagen para que sea más fácil rootear que esto.
Si sois impacientes y queréis hacerlo. Los pasos son estos:
En un Linux en el que se tenga acceso a root y USB, ya sea instalado en el PC o en una máquina virtual:
1.- Descargar y compilad una herramienta rkflashtool
2.- Poned la tablet en modo flasheo
3.- Leed los primeros sectores para comprobar que los offsets están bien
Código:
rkflash r 0x0 0x2000 | less
4.- En CMDLINE verás el offset y el tamaño de la partición system. Cópiala a tu ordenador:
Código:
rkflashtool r 0x003f6000 0x00180000 > system.img
5.- Guarda una copia porsiaca:
Código:
cp system.img system.img.backup
6.- Monta la partición de sistema:
Código:
mkdir mountpoint
mount -o loop system.img mountpoint
7.- Vete de la manera que quieras (terminal o entrono gráfico) hasta mountpoint y borra el bloat que quieras además de añadir el
root
8.- Desmonta mountpoint y reflashea la imágen.
Código:
rkflashtool w 0x003f6000 0x00180000 < system.img
9.- [...]
10.- PROFIT!