Ver Mensaje Individual
  #1  
Viejo 18/04/20, 16:34:30
Array

[xs_avatar]
LEPT LEPT no está en línea
Usuario muy activo
· Votos compra/venta: (1)
 
Fecha de registro: abr 2012
Localización: Ahí-donde-eso
Mensajes: 4,574
Modelo de smartphone: Xiaomi Mi A2
Tu operador: Movistar
Post Flashear Firmware ZIP mediante fastboot

ANTECENDENTES

Dado que a Xiaomi parece que le cuesta filtrar los Firmware (en fotmato .TGZ) flasheables mediante MiFlash para el Xiaomi Mi A2, y que las únicas versiones que se están filtrando son los Firmware (.ZIP) para flashear mediante el Recovery con Sideload, nos quedamos algo limitados a la hora de restablecer nuestro dispositivo con un Firmware oficial, por el motivo que sea.

Existen 2 métodos para hacer uso del contenido de esos .ZIP. Como he dicho anteriormente, uno sería flashearlo desde el Recovery, mediante sideload
[PHP]adb sideload update.zip[/PHP]
y el otro método sería flashearlo mediante comandos fastboot, PERO esto no es tan evidente, dado que dentro del .ZIP no encontramos directamente ficheros para flashear mediante fastboot.


OBJETIVO

Describir el procedimiento para partiendo del .ZIP del Firmware completo para Recovery, obtener los ficheros de las particiones que se podrán flashear mediante comandos fastboot.


REQUISITOS
  • Acceso a bootloader desbloqueado [fastboot oem unlock]
  • Acceso a particiones críticas desbloqueado [fastboot flashing unlock_critical]
  • Firmare completo en formato .ZIP flasheable normalmente desde Recovery. Es el mismo fichero que el de la OTA-FULL, pero NO que la OTA-incremental, vamos que va a tener una tamaño de 1GB y pico.
  • ...y obviamente, los drivers para que el Ordenador reconozca correctamente al smartphone; y los ficheros mínimos y necesarios para interactuar con comandos ADB y FASTBOOT (para Windows son adb.exe, fastboot.exe, AdbWinApi.dll, AdbWinUsbApi.dll).
  • ...y tener copia de seguridad de lo que quieras guardarte, pues vamos a borrar toda nuestra información del smartphone.

PROCEDIMIENTO

Haré el ejemplo con la última versión disponible ahora mismo, la de Abril V11.0.8.0.QDIMIXM.

Descomprimimos dentro de una carpeta ese ZIP y obtendremos lo siguiente
(Click para mostrar/ocultar)


Como vemos, ahí dentro no están los típicos boot.img, modem.img, system.img, etc... En realidad se encuentran dentro del fichero payload.bin.

Por lo que vamos a tener que descompilar ese payload.bin. Para ello haremos uso de una herramienta escrita en Python, o de una versión ejecutable que han adaptado para Windows x64.

Descomprimimos esta herramienta, por ejemplo en la misma carpeta en la que estamos trabajando.

Si usásemos la versión en Python (obviamente tendríamos que tener instalado Python y las dependencias que pide), que nos serviría para diferentes sistemas operativos, el comando que tendríamos que usar es:
Linux
[PHP]python3 payload_dumper.py payload.bin[/PHP]
Windows
[PHP]py payload_dumper.py payload.bin[/PHP]
Y si usamos la versión ejecutable en Windows, veremos al descomprimirla que nos crea 2 carpetas (payload_input / payload_output). Es tan simple como copiar/mover el fichero payload.bin al interior de la carpeta payload_input.
(Click para mostrar/ocultar)


Luego ejecutamos el fichero payload_dumper.exe, y vemos que en una ventana de comandos, van saliendo la lista de ficheros que descompila. Tras un ratito, acabará y se cierra automáticamente.
(Click para mostrar/ocultar)


Los ficheros resultantes de esta descompilación, los tendremos dentro de la carpeta output / payload_output (según la versión usada, de python o Windows).
(Click para mostrar/ocultar)


En esa lista de ficheros, nos faltarían aún 4 ficheros más para tener los mismos que en el interior de los Firmware en .TGZ, aunque sólo nos harán falta 3 más (no nos hace falta system_other.img):
[PHP]storsec.mbn
splash.img
userdata.img[/PHP]

El fichero storsec.mbn lo he extraído de mi smartphone, y resulta que es idéntico (bit a bit) al que venía en el Firmware (.TGZ) de Android 9, luego parece que es siempre igual. Os dejo aquí el que he extraído del mio. O en su defecto se podrá usar el que saquemos del último .TGZ con Android 9.

El fichero splash.img, se encarga de las imágenes del inicio del arranque, la cual varió de Android 9 a Android 10. Por lo tanto tendríamos que extraerlo de un Mi A2 con Android 10. Os dejo aquí el que he extraído del mio.

Y el fichero userdata.img, no debería de ser excesivamente importante el que tuviera ligeras diferencias, pues ahí al final lo que haremos será llenarlo con nuestras cosas (programas, configuraciones, fotos, videos, etc...). No obstante, tras flashear todo esto e iniciar el smartphone por primera vez, le haremos un Factory reset desde el Recovery Stock para que formatee esa partición y quede completamente a su gusto. Por lo tanto, usaremos como userdata.img, la última que tengamos disponible, en nuestro caso es la que contiene el .TGZ del Firmware V10.0.17.0.PDIMIXM.

De este modo, ya tendríamos todos los ficheros necesarios para flashearnos mediante comandos fastboot, el Firmware.
(Click para mostrar/ocultar)
__________________

« swyk.tk » - "Un rincón para compartir conocimientos" - LEPT

Última edición por LEPT Día 28/08/20 a las 14:59:24.
Responder Con Cita
Gracias de parte de: