ROMs y desarrollo BQ Pascal 2 ROMs y desarrollo BQ Pascal 2

Respuesta
 
Herramientas
  #1  
Viejo 30/04/12, 01:05:32
Array

[xs_avatar]
Naproxeno Naproxeno no está en línea
Miembro del foro
 
Fecha de registro: jul 2010
Mensajes: 48
Modelo de smartphone: Samsung Galaxy S I9000
Tu operador: Vodafone
Post Extraer imagen de restauración y modificar logo de arranque

Hola a todos.

Como ya sabréis, ya están pululando por estos foros tanto imágenes de restauración, como el código fuente del kernel de nuestra Pascal 2. Si queremos poder "cocinar" para la tableta, una de las primeras cosas que necesitaremos es saber cómo manipular las distintas particiones de la memoria interna, que es básicamente lo que contiene la imagen de restauración. Como primera prueba, en este tutorial vamos a hacer algo muy chorra, como es cambiar el logo de arranque por uno propio pero nos servirá para comprobar que funciona todo el proceso.

Con un poco de suerte, al final del tutorial conseguiremos algo parecido a esto:



Eso sí, tened en cuenta que, aunque me gusta el "cacharreo", soy bastante novato con estos temas, así que es posible que diga alguna barbaridad o que haya cosas que se puedan hacer de forma más simple. Cualquier crítica, comentario o sugerencia será bienvenida.

El tutorial está pensado para trabajar con Linux, aunque es posible que se pueda hacer casi todo también en Windows.

¿Preparados? ¡Vamos allá!


Sobre Pascal 2

Pascal 2 es una tableta basada en el chipset RK2918 del fabricante chino Fuzhou Rockchip Electronics Co., Ltd., o Rockchip, para los amigos.

Al parecer, Rockchip proporciona a los fabricantes un SDK para construir las ROMs de sus cacharros y seguramente BQ haya usado también estas herramientas.

Lo bueno de esto es que hay un montón más de tablets basadas en este mismo chipset o versiones anteriores, así que en Internet se puede encontrar utilidades y conocimiento acumulado para el cacharreo con este tipo de dispositivos.


Ingredientes

Imágenes de restauración

Como os decía antes, Rockchip tiene un SDK para preparar la ROM. Al parecer, al menos existe una versión antigua y una versión 2.0 del SDK, y Pascal 2 utiliza esta última. La mala noticia es que hay menos información acerca del formato de los ficheros de la versión 2.0. La buena noticia es que, en general, la tablet admite ficheros en el formato antiguo y más conocido.

Lo primero que necesitaremos es una imagen de restauración y para ello tenemos dos posibilidades:
  • Usar la imagen de restauración de BQ
  • Extraer la imagen de restauración de la propia tableta
La primera opción es directa. Tan solo hay que descargar la imagen desde Mediafire.

Esta imagen sigue el formato "moderno", conocido como RKFW (son los primeros cuatro bytes del fichero) y es el que admite la "Rockchip Batch Tool v1.3", según se explica en el blog de BQ.

Para la segunda opción, en la que obtendremos una imagen en formato "antiguo", o RKAF, primero tenemos que hablar de...


Particiones

La memoria interna de la Pascal 2 está dividida en particiones, cada una dedicada a una función. Se puede conocer la distribución de estas particiones ejecutando como root, en adb o un terminal en la tableta, lo siguiente:

Código:
cat /proc/mtd
En mi tableta, y supongo que en las vuestras también, la distribución es la siguiente:

Código:
dev:    size   erasesize  name
mtd0: 00400000 00004000 "misc"
mtd1: 00800000 00004000 "kernel"
mtd2: 01000000 00004000 "boot"
mtd3: 01000000 00004000 "recovery"
mtd4: 1e000000 00004000 "backup"
mtd5: 07400000 00004000 "cache"
mtd6: 40000000 00004000 "userdata"
mtd7: 00400000 00004000 "kpanic"
mtd8: 1cc00000 00004000 "system"
mtd9: 69400000 00004000 "user"
La utilidad de la partición "misc" no está del todo clara.

"kernel" contiene (¿debe?) lo que estáis pensando: el kernel (fichero zImage).

"boot" puede contener, o bien el kernel y el ramdisk (initrd.gz), casi siguiendo el formato estándar de Android, o bien solo el ramdisk sin el kernel. La primera alternativa es la que se usa con el SDK 2.0 de Rockchip pero, al parecer, hay un valor hash en el offset 0x240 que nadie sabe aún calcular. Resultado: se puede extraer el kernel y el ramdisk de una partición boot en este formato pero no se pueden volver a empaquetar para que los admita la tablet. En mis pruebas, en cuanto se trata de arrancar con una partición boot no reconocida, la tablet restaura automáticamente una copia "limpia". De nuevo, hay buenas noticias: la tablet sigue admitiendo un kernel y un ramdisk en particiones independientes, siguiendo el formato antiguo, que sí es conocido. Este será el que usaremos.

"backup" es la partición más interesante para nosotros. Contiene una imagen de restauración completa. Cuando se selecciona la opción "recovery system from backup" desde el modo recovery, lo que seguramente se haga sea machacar el resto de particiones de la tableta con la copia contenida en esta. Curiosamente, en mi tablet, la partición "backup" está en formato RKAF, que es el que se usaba antiguamente.

"system" contiene el sistema propiamente dicho, es decir, la mayoría de cosas que están en la raíz del sistema de ficheros.

"user" es el espacio de almacenamiento que queda libre para el usuario, es decir, lo que hay en /mnt/sdcard.


Extrayendo la imagen de restauración (backup)

Como hemos dicho, backup es, a todos los efectos, una imagen de restauración completa, así que podemos utilizarla en vez de la que proporciona BQ. Para extraerla, primero necesitamos conocer su tamaño, así que, desde adb y como root, ejecutamos:

Código:
cat /proc/mtd
y nos fijamos en la línea:

Código:
mtd4: 1e000000 00004000 "backup"
La primera columna nos dice que la partición "backup" está en /dev/block/mtdblock4, mientras que la segunda nos da su tamaño en bloques de 512 bytes. Ojo, el valor es hexadecimal, así que, al convertirlo a decimal, backup ocupa 0x1e000000 = 503316480 bloques de 512 bytes. Con esto, ya tenemos los datos que necesitamos para ejecutar:

Código:
dd if=/dev/block/mtdblock4 of=/mnt/sdcard/backup.dump count= 503316480
Que lo que hace es copiar (dd) 503316480 bloques (count= 503316480) del contenido de la partición mtd4 (if=/dev/block/mtdblock4) en el fichero backup.dump de la memoria internal (of=/mnt/sdcard/backup.dump).

Con esto conseguiremos una copia idéntica de la partición pero, como suele ocurrir en cualquier disco, la partición no tiene por qué estar llena, así que seguramente hayamos copiado "basura" al final del fichero. Vamos a corregirlo recortándolo hasta que tenga el tamaño exacto de la imagen de restauración.

En el formato usado por Rockchip, el tamaño del fichero se almacena en los bytes 4 a 7 (empezando la cuenta desde 0, los informáticos somos así...). Necesitamos el valor exacto de esos bytes, así que no nos servirá un editor de texto. Podemos usar un editor hexadecimal o directamente esta orden:

Código:
hexdump -n 4 -s 4 -C backup.dump
Cuyo resultado será algo así:

Código:
00000004  00 20 b5 13                                       |. ..|
00000008
Lo que íbamos buscando es "00 20 b5 13" pero hay algo que debemos tener en cuenta: ese valor es little-endian. Para obtener el valor hexadecimal del tamaño de la imagen, le damos la vuelta a los bytes, con lo que obtenemos "13 b5 20 00", es decir 0x13b52000 = 330637312 en decimal. A este valor, hay que sumar 4 bytes más para un CRC que está al final de la imagen, con lo que finalmente obtenemos 330637316. Ya estamos listos para recortar la imagen mediante:

Código:
dd if=backup.dump of=update.img bs=330637316 count=1
El parámetro "bs" indica el tamaño de bloque, así que, básicamente, lo que hacemos es copiar un solo bloque del fichero con el tamaño que nos interesa. Si todo va bien, en update.img tendremos nuestra flamante imagen de restauración.

Ojo, el recorte de la imagen podemos hacerlo en un ordenador común, no tiene por que hacerse en la propia tableta.


Desempaquetando la imagen de restauración

Sea cual sea la vía que hayamos elegido, ya tenemos en nuestro poder un fichero update.img. Ahora vamos a ver qué contiene. Para ello, emplearemos algunas de las herramientas de lamegopinto.

Como dijimos antes, el formato de la imagen de restauración de BQ es RKFW pero la mayoría de utilidades están preparadas para usar el formato antiguo. Por tanto, si queremos usar el fichero de BQ primero tendremos que convertirlo al formato antiguo. Para ello, ejecutamos:

Código:
img_unpack update.img update-rkaf.img
Y ahora, sea cual sea la imagen que estemos usando, vamos a desempaquetarla:

Código:
mkdir unpacked
afptool -unpack update-rkaf.img unpacked
Si todo va bien, veremos algo así:

Código:
Check file...OK
------- UNPACK -------
package-file    0x00000800      0x0000021C
RK29xxLoader(L)_V2.14.bin       0x00001000      0x0002512E
parameter       0x00026800      0x00000270
Image/misc.img  0x00027000      0x0000C000
Image/boot.img  0x00033000      0x00784000
Image/recovery.img      0x007B7000      0x0091C000
Image/system.img        0x010D3000      0x12A7DC00
SELF    0x00000000      0x13B52004
Skip SELF file.
update-script   0x13B51000      0x000003A5
recover-script  0x13B51800      0x0000010A
UnPack OK!
Y tendremos, en el directorio "unpacked", el ansiado contenido de la imagen de restauración.

Dentro de "unpacked" hay otro directorio, "Image" que contiene las particiones que se copiarán a la tableta durante el proceso de actualización o restauración.

Si tenéis curiosidad, podéis examinar el contenido de system.img, montando la partición con algo así:

Código:
cd Image
mkdir system
sudo mount -o loop system.img system
cd system
De todos modos, nuestro objetivo en este tutorial era boot.img. Vamos a por él...

Última edición por Naproxeno Día 02/05/12 a las 01:00:11.
Responder Con Cita
Los siguientes 18 usuarios han agradecido a Naproxeno su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]


  #2  
Viejo 30/04/12, 01:05:48
Array

[xs_avatar]
Naproxeno Naproxeno no está en línea
Miembro del foro
 
Fecha de registro: jul 2010
Mensajes: 48
Modelo de smartphone: Samsung Galaxy S I9000
Tu operador: Vodafone
Sea cual sea la alternativa que hayamos elegido, ya tenemos un fichero boot.img listo para meterle mano. Pero, ¿no había una forma más sencilla de llegar a él?

La respuesta es sí, y además implica que nuestra tableta es prácticamente inmune al brickeo. Presentamos...

El modo "flasheo"

Nombre completamente no oficial.

Como sugiere BQ en sus instrucciones para hacer un hard reset, existe un modo especial, controlado por hardware, en el que la tableta responde a 3 órdenes simples: leer un bloque de la memoria interna, escribir un bloque de la memoria interna y reiniciar. Como hemos dicho, este modo está controlado por hardware, de forma que, aunque cometido los abusos más pérfidos con su memoria interna, siempre que tengamos una imagen de restauración a mano, podremos volver a dejarla como salida de fábrica (para los usuarios de smartphones de Samsung: esto es muy parecido al modo "download" y Odin).

Para activar este modo, hay que conectar el cable USB al ordenador, con la tableta apagada, mientras pulsamos la tecla de bajar volumen. Si todo va bien... no veremos nada, ya que la pantalla permanecerá apagada. Pero, si ejecutamos:

Código:
lsusb
Debería aparecer algo así:

Código:
Bus 002 Device 004: ID 2207:290a
Si vemos esto, la tableta ya está preparada para recibir órdenes. Para dárselas, usaremos las herramientas de João Pinto, basadas en rkflashtool. Con ellas, extraer la partición boot es tan sencillo como ejecutar:

Código:
img-manager.py dump boot
Cuando concluya, tendremos un fichero boot.img sacado directamente de la memoria interna de la Pascal 2. Con él, ya estamos listos para...


Desempaquetar boot.img

Ya tenemos el fichero boot.img, ahora vamos a ver qué contiene. Como se mencionó anteriormente, la partición boot, en su formato moderno, contiene tanto el kernel como el ramdisk, así que primero tendremos que separarlos. Para ello, ejecutamos:

Código:
split_bootimg.pl boot.img
Lo que creará dos ficheros: boot.img-kernel y boot.img-ramdisk.gz. Guardad el primero, porque nos hará falta más adelante pero, por el momento, usaremos el segundo para...


Modificar el ramdisk

El ramdisk no es más que un fichero comprimido de cierta forma. Podemos descomprimirlo ejecutando:

Código:
mkdir ramdisk
cd  ramdisk
gunzip -c ../boot.img-ramdisk.gz | sudo cpio -i
Con esto, encontraremos en el directorio "ramdisk" los ficheros que lo componen. Para cambiar el logo de arranque, tendremos que manipular el fichero "initlogo.rle".

Para crear nuestro propio logo, tenemos dos opciones: basarnos en el logo original o hacer el nuestro desde cero. Para esta última opción, tan solo necesitaremos crear un fichero PNG de 800x480 píxeles.

Una vez tengamos un logo preparado (initlogo.png), tendremos que convertirlo a un formato adecuado. Para ello, usaremos las herramientas convert, de ImageMagick, y to565, de esta forma:

Código:
convert -depth 8 initlogo.png rgb:initlogo.raw
to565 -rle < initlogo.raw > initlogo.rle
Tras esto, podemos borrar (o al menos, sería conveniente mover a otro directorio) los ficheros intermedios initlogo.png e initlogo.raw.

Ya estamos listos para generar un nuevo ramdisk. Para ello, ejecutamos, en el directorio "ramdisk":

Código:
find . ! -name "." | sort | cpio -oa -H newc | gzip -n > ../newinitrd.gz
Que, a pesar de parecer un poco intimidatorio, lo único que hace es comprimir los ficheros en un orden y formato específicos. Si todo ha salido bien, en el directorio padre encontraremos "newinitrd.gz", nuestro ramdisk listo para el último paso...


Empaquetar y grabar boot y kernel

Como se comentó anteriormente, no se conocen todos los detalles de como generar una partición boot con el nuevo formato que sea admitida por nuestra tableta. Por fortuna, sí que podemos grabar el ramdisk y el kernel por separado, siguiendo el formato antiguo. Para ello, usaremos la imagen del kernel que obtuvimos anteriormente (boot.img-kernel) y nuestro nuevo ramdisk.

En primer lugar, tenemos que añadir un CRC a ambas imágenes. Para ello, ejecutamos:

Código:
rkcrc -k boot.img-kernel kernel.img
rkcrc -k newinitrd.gz boot-new.img
Y ya estamos listos para grabarlas en la tableta. ¡Ojo! En este paso vamos a escribir en la memoria interna de la Pascal 2 y debería ser seguro pero no me hago responsable de cualquier imprevisto. Como comenté antes, la Pascal 2 es prácticamente imposible de brickear y con lo que vamos a hacer ni siquiera vamos a perder nada que hayamos instalado pero seguro que alguien se empeña en llevarme la contraria.

Dicho esto, vamos al lío. Simplemente hay que ejecutar:
no
Código:
img-manager.py write kernel kernel.img
img-manager.py write boot boot-new.img
Y como colofón, reiniciamos la tableta con:

Código:
rkflashtool b
Cruzamos los dedos y... ¡Listo! Deberíais poder ver vuestro flamante nuevo logo.

Como se ve en el vídeo, en el proceso de arranque hay 3 pasos y este sustituye el logo del paso 2. El logo del paso 1 no se sabe muy bien si está en el cargador de arranque (bootloader) o en el kernel, así que habrá que investigar. El logo del paso 3 es estándar de Android y admite animaciones. Seguro que encontráis mucha información por ahí acerca de como personalizarlo.

Espero que os haya gustado este tutorial y que hayáis aprendido algo acerca de como se puede modificar la Pascal 2. Como he dicho, siempre que tengáis a mano una imagen de restauración no hay nada que temer, así que espero que le hayáis perdido un poco el miedo al cacharreo. Estoy deseando ver qué se os ocurre hacer con todo esto. ¡Suerte!

Última edición por Naproxeno Día 02/05/12 a las 20:23:14. Razón: Tutorial Extraer imagen de restauración y modificar logo de arranque (parte 2)
Responder Con Cita
Los siguientes 10 usuarios han agradecido a Naproxeno su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]
  #3  
Viejo 30/04/12, 02:08:22
Array

[xs_avatar]
javi_14_ javi_14_ no está en línea
Miembro del foro
 
Fecha de registro: abr 2012
Localización: Córdoba
Mensajes: 65
Modelo de smartphone: Redmi Note 4G
Tu operador: Orange
Va tomando color la cosa
Gracias!!
Responder Con Cita
Gracias de parte de:
  #4  
Viejo 30/04/12, 14:14:20
Array

[xs_avatar]
lmemperador lmemperador no está en línea
Usuario muy activo
 
Fecha de registro: oct 2009
Mensajes: 1,820
Tu operador: Movistar

la leche naproxeno, excelente hilo, me gusta mucho tu manera de explicar las cosas, las entiendo y todo. y eso q no es nada facil el tema para mi eh.
mil gracias Naproxeno.
Responder Con Cita
Gracias de parte de:
  #5  
Viejo 30/04/12, 17:26:02
Array

[xs_avatar]
frikilero frikilero no está en línea
Usuario muy activo
 
Fecha de registro: abr 2012
Mensajes: 536
Tu operador: Otra

De 10 naproxeno, sigue así!!
Responder Con Cita
Gracias de parte de:
  #6  
Viejo 30/04/12, 17:41:38
Array

[xs_avatar]
santosky santosky no está en línea
Miembro del foro
 
Fecha de registro: abr 2012
Mensajes: 70
Modelo de smartphone: BQ Pascal 2
Tu operador: Movistar
Te lo estas currando colega, excelente proyecto.
Responder Con Cita
Gracias de parte de:
  #7  
Viejo 01/05/12, 16:08:54
Array

[xs_avatar]
ilustretbk ilustretbk no está en línea
Colaborador/Ex-Staff
· Votos compra/venta: (8)
 
Fecha de registro: may 2011
Localización: MADRID
Mensajes: 7,354
Modelo de smartphone: Xiaomi MI 8
Tu operador: Otra
genial trabajo compi...sigue currandotelo ahii....
le ponemos chinchetita ok?

saludos..
Responder Con Cita
Gracias de parte de:
  #8  
Viejo 02/05/12, 11:51:27
Array

[xs_avatar]
jjb_wii jjb_wii no está en línea
Usuario novato en la web
 
Fecha de registro: ene 2009
Mensajes: 29
Modelo de smartphone: htc touch diamond / Htc Desire / Galaxy Note / Pascal 2

Yo he conseguido unas herramientas sirven tanto para desempaquetar como para empaquetar basadas en AFPTool para RK29xx (Lo he probado con el update.img de BQ Pascal 2 y me lo ha desempaquetado). Las herramientas las he conseguido a través de Wendal:

wendal-teclast_tools-374c2a8.zip

https://docs.google.com/file/d/0B8hU...TQ1/edit?pli=1

la fuente desde donde creo que lo encontré:

http://www.slatedroid.com/topic/1980...magetools-v21


Dentro del script "rk29xx_rom_tools.lua" (hecho en lua) hay una función que se llama packROM:

function packROM()
local SYSTEM_DIR = io.open('system/build.prop','r')
if SYSTEM_DIR then
SYSTEM_DIR:close()
--os.execute('chmod -R 777 system/*')
print('Packing system folder to system.img,overwrite to Temp\\Image\\system.img')
os.execute('mkcramfs -q system Temp/Image/system.img') <---------------------------------Ojo, nosotros tenemos Ext3/4
end
print('Packing files in Temp folder to update_new.img')
os.execute('Afptool -pack ./Temp update_new.img')

print('Get loader\'s and update_new.img\'s file len')
local L_P = 0x66 -- Loader's offset
local loader_file = io.open('RK29xxLoader(L).bin','rb+')
local L_L = loader_file:seek('end')
loader_file:seek('set',0) -- back to start of file
U_P = L_P + L_L -- update.img's offset, following loader
local update_file = io.open('update_new.img','rb+')
local U_L = update_file:seek('end')
update_file:seek('set',0) -- back to start of file
local T_File = io.open('wendal.img', 'rb+') -- open pre-packed image
local DestF = io.open('wendal_new.img', 'wb+') --open target file
local data = T_File:read(25)
DestF:write(data)
writeHex(DestF,L_P)
writeHex(DestF,L_L)
writeHex(DestF,U_P)
writeHex(DestF,U_L)
T_File:read(16) -- sjip 16 bytes , data is Unkown!!
data = T_File:read(102 - 25 - 16)
DestF:write(data)
DestF:flush()
T_File:close()
print('Start writing loader')
while L_L > 0 do
if L_L > BUFF then
data = loader_file:read(BUFF)
L_L = L_L - BUFF
else
data = loader_file:read(L_L)
L_L = 0
end
DestF:write(data)
end
print('Start writing update.img')
while U_L > 0 do
if U_L > BUFF then
data = update_file:read(BUFF)
U_L = U_L - BUFF
else
data = update_file:read(U_L)
U_L = 0
end
DestF:write(data)
end
DestF:flush()
DestF:close()
print('calculate MD5')
os.execute('md5sums.exe -u wendal_new.img > md5.txt')
local M_File = io.open('md5.txt','r')
local md5 = M_File:read(32)
M_File:close()
print('MD5='..md5)
print('Write MD5 into wendal_new.img')
DestF = io.open('wendal_new.img', 'ab+') --open target file
DestF:seek('end')
DestF:write(md5)
DestF:flush()
DestF:close()
print('Pack completa!! Target file --> wendal_new.img')
end

Última edición por jjb_wii Día 04/05/12 a las 20:47:41.
Responder Con Cita
Los siguientes 6 usuarios han agradecido a jjb_wii su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]
  #9  
Viejo 15/06/12, 23:58:49
Array

[xs_avatar]
m80dv m80dv no está en línea
Usuario muy activo
 
Fecha de registro: feb 2012
Mensajes: 3,325
Modelo de smartphone: I8+
Tu operador: Jazztel
Responder Con Cita
  #10  
Viejo 16/06/12, 10:01:01
Array

[xs_avatar]
franute
Usuario invitado
 
Mensajes: n/a

Madre mía que trabajazo, ya tengo entretenimiento para el verano jeje No pongáis cosas tan interesantes cuando estoy de exámenes que al final me lío y no estudio

Ahora la pregunta: ¿partiendo entonces de la rom oficial se puede modificar el particionamiento de la memoria interna y así resolver los problemas de la SdCard y demás en el modelo de 4GB?
Responder Con Cita
  #11  
Viejo 26/06/12, 16:32:28
Array

[xs_avatar]
BadWolf BadWolf no está en línea
Revolution Technologies
· Votos compra/venta: (3)
 
Fecha de registro: may 2011
Localización: De Aragón, pero en Toledo
Mensajes: 4,008
Modelo de smartphone: Realme 11 Pro
Tu operador: Finetwork
en RK29xxLoader(L)
Lo cual es el BootLoader, no se encuentra la imagen de cargado primera.

Asi que debe estar en otro sitio que tampoco es la kernel ya que en el C.F. de la misma no figura nada al respecto...

Estoy confundido jajajaja...

Saludos y muchisimas gracias por este fantastico tuto!...
Responder Con Cita
  #12  
Viejo 07/07/12, 16:36:04
Array

[xs_avatar]
valve valve no está en línea
Usuario muy activo
· Votos compra/venta: (1)
 
Fecha de registro: abr 2011
Mensajes: 762
Modelo de smartphone: Huawei P20pro
Tu operador: Movistar
Muchas gracias por el tremendo curro que te has pegado, pero leyendo y releyendo, me surge una duda.
Comprendo todos los pasos hasta llegar a la creación del archivo "backup.dump"
Entiendo que ese archivo es nuestra "tabla de salvación". Pero yo he llegado a tu tutorial buscando una forma de conseguir precisamente eso, crear una copia de seguridad del sistema para poder revivir tablets que hayan muerto (como la mía), y yo, lo que quiero, es un archivo *.img que poder meter en el apartado "backup" del rk29update...

Si en vez de nombrarlo como backup.dump, le damos un nombre que sea backup.img, serviría?

Es que los pasos a partir de ahí entiendo que los haces en un terminal de linux, y en el ordenador que tengo liniux no tarmina de ir del todo bien...y yo tampoco tengo demasiada idea, para que nos vamos a engañar..
Concretamente esto es lo que no entiendo muy bien:
 Cita:
Con esto conseguiremos una copia idéntica de la partición pero, como suele ocurrir en cualquier disco, la partición no tiene por qué estar llena, así que seguramente hayamos copiado "basura" al final del fichero. Vamos a corregirlo recortándolo hasta que tenga el tamaño exacto de la imagen de restauración.

En el formato usado por Rockchip, el tamaño del fichero se almacena en los bytes 4 a 7 (empezando la cuenta desde 0, los informáticos somos así...). Necesitamos el valor exacto de esos bytes, así que no nos servirá un editor de texto. Podemos usar un editor hexadecimal o directamente esta orden:

Código:
hexdump -n 4 -s 4 -C backup.dump
Cuyo resultado será algo así:

Código:
00000004 00 20 b5 13 |. ..|
00000008
Lo que íbamos buscando es "00 20 b5 13" pero hay algo que debemos tener en cuenta: ese valor es little-endian. Para obtener el valor hexadecimal del tamaño de la imagen, le damos la vuelta a los bytes, con lo que obtenemos "13 b5 20 00", es decir 0x13b52000 = 330637312 en decimal. A este valor, hay que sumar 4 bytes más para un CRC que está al final de la imagen, con lo que finalmente obtenemos 330637316. Ya estamos listos para recortar la imagen mediante:

Código:
dd if=backup.dump of=update.img bs=330637316 count=1
El parámetro "bs" indica el tamaño de bloque, así que, básicamente, lo que hacemos es copiar un solo bloque del fichero con el tamaño que nos interesa. Si todo va bien, en update.img tendremos nuestra flamante imagen de restauración.

Ojo, el recorte de la imagen podemos hacerlo en un ordenador común, no tiene por que hacerse en la propia tableta.
Y he probado en el ordenador con linux a hacer lo del lsusb, y me funciona (lo reconoce), pero me pregunto si de esa forma se podrá extraer un "backup/update.img", en vez de sólo el boot.img que explicas aquí:
 Cita:
Si vemos esto, la tableta ya está preparada para recibir órdenes. Para dárselas, usaremos las herramientas de João Pinto, basadas en rkflashtool. Con ellas, extraer la partición boot es tan sencillo como ejecutar:
Código:
img-manager.py dump boot
Cuando concluya, tendremos un fichero boot.img sacado directamente de la memoria interna de la Pascal 2. Con él, ya estamos listos para...
Y si me dices exactamente dónde debo copiar las utilidades de joao pinto para poder ejecutarlas en linux....sería la caña!

Siento el tocho, pero es que si me sacan de mi querido galaxy s, me pierdo muchísimo!
Responder Con Cita
  #13  
Viejo 08/07/12, 17:43:24
Array

[xs_avatar]
valve valve no está en línea
Usuario muy activo
· Votos compra/venta: (1)
 
Fecha de registro: abr 2011
Mensajes: 762
Modelo de smartphone: Huawei P20pro
Tu operador: Movistar
bueno, pues la primera parte ya la he conseguido, mi problema ahora viene porque no consigo extraer el "update.img"

Yo sigo tus instrucciones, pero el terminal de linux me dice que no hay ningún comando que se llame así.... te adjunto una imagen de la pantalla (yo copio en la misma carpeta update.img y las herramientas de lamegopinto, desde el terminal entro en esa carpeta y escribo los comandos que tu dices...pero no pasa nada...)


también he probado a intentar ejecutar el comando llamando a afptool con su dirección completa, y me da un error en la línea 18 (ni idea de que es eso..) y los scripts no los puedo copiar al directorio /bin o /usr/bin....y se me han acabado las ideas por hoy, jejeje


Muchas gracias de antemano por las respuestas!! Seguro que es un fallo absurdo por lo que no puedo utilizar las herramientas de lamegopinto, pero como no tengo muchos conocimientros de linux...he intentado descargarlas como un .tar.gz, pero eso no es un instalable tampoco, por lo que desconozco el proceder...

Un saludo

Última edición por valve Día 08/07/12 a las 18:00:18.
Responder Con Cita
  #14  
Viejo 02/08/12, 07:56:39
Array

[xs_avatar]
slim80 slim80 no está en línea
Usuario novato en la web
 
Fecha de registro: jun 2012
Mensajes: 2
Modelo de smartphone: bq kepler
Tu operador: Movistar
Hi. When i write this commands:

 Cita: Originalmente Escrito por Naproxeno Ver Mensaje
img_unpack update.img update-rkaf.img
 Cita: Originalmente Escrito por Naproxeno Ver Mensaje
afptool -unpack update-rkaf.img unpacked
i have the error "img_unpack: command not found" and "afptool: command not found".
What's the problem?
Thanks
Responder Con Cita
  #15  
Viejo 02/08/12, 17:54:25
Array

[xs_avatar]
cyberlobo cyberlobo no está en línea
Usuario muy activo
 
Fecha de registro: feb 2012
Localización: Leon
Mensajes: 644
Modelo de smartphone: THL 5S / Bluesens Touch 92
Tu operador: ONO
 Cita: Originalmente Escrito por slim80 Ver Mensaje
Hi. When i write this commands:





i have the error "img_unpack: command not found" and "afptool: command not found".
What's the problem?
Thanks
You need the lamegopinto tools, compile, and copy the binaries created in /bin and /xbin folders of your linux distro
Responder Con Cita
Gracias de parte de:
  #16  
Viejo 02/08/12, 21:32:27
Array

[xs_avatar]
slim80 slim80 no está en línea
Usuario novato en la web
 
Fecha de registro: jun 2012
Mensajes: 2
Modelo de smartphone: bq kepler
Tu operador: Movistar
Now work.
Thanks ;)
Responder Con Cita
  #17  
Viejo 11/09/12, 18:34:11
Array

[xs_avatar]
iRiki iRiki no está en línea
Usuario novato en la web
 
Fecha de registro: dic 2009
Mensajes: 11

hola,

como podemos volver a rehacer la ROM? yo hecho lo comando:

afptool -pack ROM/ system.img

pero quando hoy a flashear con el RKBatchTool aparece una mensaje "load firmware failed". esto significa que la ROM no fue bien enpacotada.

muchas gracias por qualquier ayuda. un saludo
Responder Con Cita
  #18  
Viejo 29/10/12, 22:55:26
Array

[xs_avatar]
lmemperador lmemperador no está en línea
Usuario muy activo
 
Fecha de registro: oct 2009
Mensajes: 1,820
Tu operador: Movistar

naproxeno donde andas?
hace tiempo que no os veo por aqui a navajita ni a ti.

supongo que tendreis un supertablet, jeje, la pascal2 se os quedo pequeña

un saludo
Responder Con Cita
  #19  
Viejo 31/01/13, 14:57:30
Array

[xs_avatar]
paquito32 paquito32 no está en línea
Usuario poco activo
 
Fecha de registro: oct 2012
Mensajes: 20
Tu operador: Movistar

Hola llevo dos días atrancado en este punto:

Código:
img_unpack update.img update-rkaf.img
Me devuelve el error "Invalid rom file: update.img"

He probado con un ROM original del fabricante y funciona correctamente, por lo que sospecho que la imagen que yo genero recortada no es correcta


¿Que se me escapa? Hay que generar el CRC MD5 a mano?
Sigo al pie de la letra el este tutorial y ya estoy desesperado no doy con la solución

Saludos y gracias
Responder Con Cita


  #20  
Viejo 01/08/15, 05:44:59
Array

[xs_avatar]
juanpa26 juanpa26 no está en línea
Usuario poco activo
 
Fecha de registro: ago 2015
Mensajes: 1
Tu operador: Movistar

Thumbs up cocinar rockchip

Buenos Dias esta buy interesante tu tema muchas gracias
¿Sabes si es posible llegar a editar los drivers o parametros incluidos en el kernel de la pantalla o touch etc. de rockchip?
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Foro Tablets / Laptops > Tablets bq > bq Pascal 2 > ROMs y desarrollo BQ Pascal 2



Hora actual: 05:28:24 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /