# file update.img
update.img: data
Hay varias maneras de desempaquetar este fichero para ver su contenido:
1. imgRePackerRK.
Empezamos con imgRePackerRK (RockChip's firmware images unpacker/packer). El nombre lo dice todo, lo descargamos y lo ejecutamos:
# ./imgrepackerrk update.img
imgrepackerrk (version 1.06 linux)
Rockchip firmware batch/update images unpacker/packer
.....
--- Firmware unpacking ---
Can't open file "update.img" for reading
La primera en la frente. Dice que no puede abrir update.img. Tras mil pruebas no he sido capaz de hacer que funcione en Ubuntu: ni cambiando a otro sistema de archivos, ni cambiando permisos, ni nada. Pero probando en Windows si funciona, toma ya:
C:\Users\Administrador\Desktop\rockchip>imgrepackerrk update.img
imgRepackerRK (version 1.06 windows)
Rockchip firmware batch/update images unpacker/packer
(c) RedScorpio, Moscow, 2013-2017
RedScorpio@land.ru
Detected OS: Windows 7 Pro SP 1.0 [build 7601] x64
==========================[ START ]==========================
--- Firmware unpacking ---
"RKFW" image file detected
Batch image header from "update.img" was read
Image properties:
Type RockChip batch image ("RKFW")
Version 8.1.0
Date 2019.11.19
Time 10:15:30
ChipID 0x33333236
Code(?) 0x01060000
RKFWtype 0x00000001
Unknown_1 0x00000000
Unsupported ChipID
Se queja con "Unsupported ChipID". Menos mal que imgrepackerrk tiene el parámetro "/cid" para soslayar esto:
# imgrepackerrk Rockchip firmware batch/update images unpacker/packer
(c) RedScorpio, Moscow, 2013-2017
RedScorpio@land.ru
Usage: ./imgrepackerrk [options]
./imgrepackerrk [options] <[path/]name[.ext]> - for unpacking
./imgrepackerrk [options] <[path/]name[.ext]>.dump - for packing
./imgrepackerrk [options] <[path/]name[.ext]>.cfg - for 2nd layer files packing
Options:
/log - write log
/debug - debug mode on (works with /log option)
/quiet - don't output to console
/mono - monochrome mode on
/md5 - ignore md5 errors (unpacking)
- don't add md5 summ (packing)
/rkcrc - ignore RockChip CRC errors (unpacking)
/rkaf - make RKAF image (packing)
/skip - skip image size check (unpack option)
/2nd - unpack/pack 2-nd layer files
/cid - don't check ChipID (unpack option)
/rmd4 - alignment of ramdisk in Android Boot image (pack option)
/bcpath: - base path for RKAndroidTool's cfg
/lname:<[path]name> - loader file name for RKAndroidTool's cfg
/ini - rewrite *.ini-file with new parameters
Por tanto, hacemos:
C:\Users\Administrador\Desktop\rockchip>imgrepackerrk /cid update.img
imgRepackerRK (version 1.06 windows)
Rockchip firmware batch/update images unpacker/packer
(c) RedScorpio, Moscow, 2013-2017
RedScorpio@land.ru
Detected OS: Windows 7 Pro SP 1.0 [build 7601] x64
==========================[ START ]==========================
--- Firmware unpacking ---
"RKFW" image file detected
Batch image header from "update.img" was read
Image properties:
Type RockChip batch image ("RKFW")
Version 8.1.0
Date 2019.11.19
Time 10:15:30
ChipID 0x33333236
Code(?) 0x01060000
RKFWtype 0x00000001
Unknown_1 0x00000000
-- boot.img processing --
-- update.img processing --
Update data header from "update.img" was read
Corrected RKAF header properties
Image properties:
Type RockChip update image ("RKAF")
Id "007"
Model "RK3326"
Manufacturer " RK3326"
Version 8.1.0
- Files extracting -
Image files count = 14
package-file (package-file) extracted (format: unknown)
bootloader (Image/MiniLoaderAll.bin) extracted (format: RockChip bootloader image)
parameter (Image/parameter.txt.parm) extracted (format: RockChip PARM signed file)
.....
.....
Y se desempaqueta todo en un directorio llamado update.img.dump con la estructura de todas las particiones contenidas en ella:
# tree update.img.dump/
update.img.dump/
├── config_16.cfg
├── config_8.cfg
├── Image
│ ├── boot.img
│ ├── kernel.img
│ ├── kernel.img.krnl
│ ├── MiniLoaderAll.bin
│ ├── misc.img
│ ├── oem.img
│ ├── parameter.txt
│ ├── parameter.txt.parm
│ ├── recovery.img
│ ├── resource.img
│ ├── system.img
│ ├── trust.img
│ ├── uboot.img
│ └── vendor.img
├── image.cfg
├── image.md5
└── package-file
El proceso inveso de generar un update.img a partir del directorio sería:
# imgrepackerrk udate.img.dump
.....
Genera un update.img que podríamos usar para actualizar completamente el dispositivo.
2. Herramientas oficiales de Rockchip para Linux.
En esta dirección de github tenemos Linux Pack Firmware, que trae scripts para empaquetado/desempaquetado de multitud de chipsets. Descargamos todo y haciendo:
# ./unpack.sh update.img
Este script (que internamente usa los ejecutables rkImageMaker y afptool) desempaqueta todo el contenido en el directorio "output".
La operación inversa se haría con el script "rk3326-mkupdate.sh":
# ls Image
boot.img kernel.img MiniLoaderAll.bin misc.img oem.img parameter.txt recovery.img resource.img system.img trust.img uboot.img update.img vendor.img
# ./rk3326-mkupdate.sh
start to make update.img...
Android Firmware Package Tool v1.66
------ PACKAGE ------
Add file: ./package-file
Add file: ./package-file done,offset=0x800,size=0x2ac,userspace=0x1
Add file: ./Image/MiniLoaderAll.bin
Add file: ./Image/MiniLoaderAll.bin done,offset=0x1000,size=0x4714e,userspace=0x8f
Add file: ./Image/parameter.txt
Add file: ./Image/parameter.txt done,offset=0x48800,size=0x2aa,userspace=0x1
Add file: ./Image/trust.img
Add file: ./Image/trust.img done,offset=0x49000,size=0x400000,userspace=0x800
Add file: ./Image/uboot.img
Add file: ./Image/uboot.img done,offset=0x449000,size=0x400000,userspace=0x800
Add file: ./Image/misc.img
Add file: ./Image/misc.img done,offset=0x849000,size=0xc000,userspace=0x18
Add file: ./Image/resource.img
Add file: ./Image/resource.img done,offset=0x855000,size=0x119000,userspace=0x232
Add file: ./Image/kernel.img
Add file: ./Image/kernel.img done,offset=0x96e000,size=0x17c3014,userspace=0x2f87
Add file: ./Image/boot.img
Add file: ./Image/boot.img done,offset=0x2131800,size=0x1a46000,userspace=0x348c
Add file: ./Image/recovery.img
Add file: ./Image/recovery.img done,offset=0x3b77800,size=0x3c3f800,userspace=0x787f
Add file: ./Image/system.img
Add file: ./Image/system.img done,offset=0x77b7000,size=0x79491a14,userspace=0xf2924
Add file: ./Image/vendor.img
Add file: ./Image/vendor.img done,offset=0x80c49000,size=0xd08c07c,userspace=0x1a119
Add file: ./Image/oem.img
Add file: ./Image/oem.img done,offset=0x8dcd5800,size=0x3c064,userspace=0x79
Add CRC...
Make firmware OK!
------ OK ------
********RKImageMaker ver 1.66********
Generating new image, please wait...
Writing head info...
Writing boot file...
Writing firmware...
Generating MD5 data...
MD5 data generated successfully!
New image generated successfully!
Making update.img OK.
el cual, a partir del contenido del directorio Image como el mostrado en el código anterior crea un update.img nuevo.
Otra herramienta de desempaquetado de este repositorio github es Firmware Merger, pero no parece funcionar:
# ./firmware_merger -U ./update.img update
Start to unpack firmware...
UnPacking Error:Tag of firmware is wrong, tag=0x57464b52!
Tampoco he indagado más.
3. Otras herramientas de terceros de Rockchip para Linux.
Hay muchos repositorios con proyectos personales que incluyen versiones particulares de herramientas de empaquetado/desempaquetado, como éste. Los pasos suelen ser:
# ./img_unpack update.img image.img
# mkdir img
#./afptool -unpack image.img img
....
UnPack OK!
Quedando todo desempaqetado en el directorio img.
4. Herramienta AndroidToolRelease de Windows.
Es una aplicación de Windows con interface gráfica para manejar firmwares de Rockchip. Antes de usarla hay que instalar los drivers mediante DriverAssistant. Para extraer el contenido de update.img vamos a la pestaña de Advanced Function y en Firmware seleccionamos el .img dando a "Unpack" luego. Eso desempaqueta todo.
Bueno, pues esta es la variedad de cosas que tenemos para desempaquetar update.img. En posts futuros husmearemos dentro de lo desempaquetado.
Ahí va, la Starship SN8 sube a 12.5km (las pruebas anteriores subieron 150m), apaga motores, baja en horizontal frenando con la atmósfera, se endereza... y se da el castañazo en el punto de partida. Explicado magistralmente por Daniel Marín.
La finalidad de la prueba, recopilar datos del planeo, ha sido exitosa. El aterrizaje perfecto hubiera estado bonito pero hubiera sido mucha suerte que funcionase. En fin, hemos estado 12.5km más cerca de Marte. Ahora a esperar en directo al SN9 cuando diga tito Elon.
Hola!
ResponderEliminarHe estado en búsqueda de como empaquetar una rom dumpeada a un dispositivo android, no he sido capaz de instalarla desde un computador y no hay manera de flashearla ya que al presionar el botón de vol - no entra en modo download, quiero empaquetar los archivos que tengo en un update.img y bueno me he leído el post y necesito linux con Linux Pack Firmware cierto?
Mi duda es como hacerlo y entender que hace cada comando.
Tengo lo siguiente de la ROM Dumpeada:
backup.img
boot.img
cache.img
kernel.img
kpanic.img
misc.img
parameters.txt
recovery.img
system.img
userdata.img
Agradecería cualquier ayuda, quiero recuperar aquél gamepad Mitsui MID7106SC.