Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Aporte:  Desempaquetar y empaquetar super.img y system.img.
#1
Saludos.

Tengo una tablet teclast P20HD en el que las rom vienen con extensión .pac

En este hilo hice un tutorial de como abrir esa imagen AQUI   en entorno LINUX

Al abrir dicha imagen nos vemos varios archivos, entre ellos uno que se llama super.img el cual contiene a su vez varios archivos, entre ellos system.img

Vamos a abrir ese super.img, también system.img y vamos a volver a empaquetarlo todo.

He seguido básicamente el tutorial de https://forum.xda-developers.com/t/editi...s.4196625/ con algunas consideraciones porque está hecho para otra tablet.

Pondré el código linea por linea. También he hecho un script en bash que lo hace todo automáticamente.



1. Vamos a tener que instalarnos unas librerías

Código:
sudo apt install android-tools-fsutils
sudo apt install clang zlib1g-dev



2. Bajarnos unas herramientas de AQUI



3. Descomprimimos el archivo recién bajado y veremos que está el script super.sh y una carpeta llamada  lpunpack_and_lpmake-master que fue extraída de https://github.com/LonelyFool/lpunpack_and_lpmake, mérito a su autor, la abrimos, iniciamos un terminal con esa ruta y tecleamos.

Código:
./make.sh

Veremos que en esa carpeta hay dos archivos nuevos, lpunpack y lpmake. Los copiamos y los ponemos en una carpeta junto con super.img. Si queremos ejecutar el script para que haga todo automáticamente también pondremos en esa carpeta el archivo super.sh


4. Si hemos decidido no ejecutar el script y hacerlo nosotros manualmente, abrimos un terminal en la ruta donde tenemos los archivos y escribimos:

Código:
simg2img super.img super.ext4.img

Nos creará la imagen super.ext4.img con la que trabajaremos

Código:
./lpunpack super.ext4.img

Nos desempaquetará super.ext4.img. En el directorio ya podremos ver los archivos system.img, product.img y vendor.img.

Código:
fallocate -l 2G system.img
resize2fs system.img 2G

Con estas dos lineas redimensionamos system.img a 2Gb

Código:
mkdir system

Creamos un directorio llamado system

Código:
sudo mount -t ext4 -o loop system.img system

Montamos system.img y ponemos todo su contenido en la carpeta system. Ahora podremos hacer todos los cambios que necesitemos hacer.

Código:
sudo umount system

Desmontamos system, veremos que dicha carpeta se ha quedado vacía.

Código:
e2fsck -yf system.img
resize2fs -M system.img
e2fsck -yf system.img

Con estas tres lineas volvemos a redimensionar system.img al tamaño que debe tener.

Código:
stat -c '%n %s' system.img
stat -c '%n %s' product.img
stat -c '%n %s' vendor.img
stat -c '%n %s' super.ext4.img

Con estos comandos nos darán el tamaño en  bytes de las imágenes, ojo, hay que anotarlo porque en el siguiente paso nos hará falta.

Código:
./lpmake --metadata-size 65536 --super-name super --metadata-slots 1 --device super:3145728000   --group main:2169016320 --partition system:readonly:1310846976:main --image system=./system.img --partition vendor:readonly:421638144:main --image vendor=./vendor.img --partition product:readonly:436531200:main --image product=./product.img --sparse --output ./super.nueva.img

OJO, cosas a tener en cuenta, en --device super:3145728000 debemos cambiar el número por la cantidad que nos dio anteriormente el tamaño en bytes de super.ext4.img, lo mismo en --partition system:readonly:1310846976:main    --partition vendor:readonly:421638144:main    y   --partition product:readonly:436531200:main

En --group main:2169016320 debemos poner la suma de los tamaños en bytes de system.img, product.img y vendor.img


5. Veremos que en directorio tenemos un nuevo archivo llamado super.nueva.img, que es el nuevo super.img modificado por nosotros.


6. Si queremos hacerlo todo automáticamente y de manera mas rápida podéis utilizar el script super.sh.



Saludos.
Responder


Mensajes en este tema
Desempaquetar y empaquetar super.img y system.img. - por chujalt - 14-03-2021, 21:46

Salto de foro:


Usuarios navegando en este tema: 3 invitado(s)