10 votos

Flash boot.img sin usar fastboot USB

Así que recientemente arraigué mi teléfono y probé una o dos ROMs. Me parece muy útil que puedas usar la recuperación de TWRP para instalar otra ROM desde la tarjeta SD, no necesitas tenerla conectada a un PC.

Sin embargo, en mi dispositivo (HTC One S) necesito flashear un archivo boot.img diferente para cada ROM también, así que todavía tengo que conectar mi teléfono a mi PC para cambiar de ROM. Si no lo hago, se atasca en la pantalla de carga. Entonces debo usar el comando

fastboot flash boot boot.img

de la carpeta donde se encuentra boot.img.

¿Es posible flashear esta imagen de arranque con TWRP o de cualquier otra forma sin usar fastboot sobre USB?

11voto

Nick Pierpoint Puntos 7976

Lo que hay que hacer es agrupar el boot.img y construir un nuevo archivo zip adecuado para flashear a través de ClockworkMod o TWRP.

Requisitos previos :

  • un entorno Linux que tiene instalados los paquetes de desarrollo habituales, como Java. ( También puede aplicar a otras plataformas, sólo tened cuidado de que las instrucciones de aquí que indican el camino utilizado a continuación, utiliza una barra inclinada hacia adelante / así que dale la vuelta a eso para que sea una barra invertida \ para el entorno de Windows especialmente! )
  • Herramienta de línea de comando adb instalada.
  • "Tarro de pruebas herramienta por firmar el archivo zip para que la recuperación pueda autenticar y verificar que es un archivo válido, de lo contrario la recuperación informará archivo corrupto o similar.
  • update-binary línea de comando aplicación que es interno para su uso con el flashable script. (Esto se puede encontrar con cualquier flashable zip, lo importante es extraer ese binario y depositarlo en la estructura del directorio como se muestra)
  • herramienta de línea de comandos zip.

Asumiendo que su directorio se llama workdir para la discusión, llamemos a esto el directorio de trabajo, copiemos el boot.img en ese directorio, y crear la siguiente estructura de directorios - META-INF/com/google/android ¡Esto es importante! Y dentro de la META-INF/com/google/android copiando la aplicación binaria llamada update-binary en ese directorio. Así que la estructura del directorio debería ser así:

+ workdir/
     +
     |
     +--+ boot.img
     |
     |
     +--+ META-INF/
              +
              |
              +--+ com/
                    +
                    |
                    +--+ google/
                           +
                           |
                           +--+ android/
                                   +
                                   |
                                   +--> update-binary
                                   |
                                   +--> updater-script

En cuanto a la updater-script copie el contenido de lo siguiente a continuación:

ui_print("Please wait, boot.img being flashed...");
show_progress(0.1, 0);
assert(package_extract_file("boot.img", "/tmp/boot.img"),
       write_raw_image("/tmp/boot.img", "boot"),
       delete("/tmp/boot.img"));
show_progress(0.1, 10);
ui_print("It is now safe to reboot! :)");

Recuerde: No te confundas, el actualizador-script como se muestra, debe dejarse como está, por lo que no intentes cambiar la barra de adelante por una barra de atrás si lo haces en el entorno de Windows.

Vuelve al padre de la estructura del directorio, es decir, fuera de workdir y hacer lo siguiente, vamos a crear un archivo zip a partir de esto:

zip -r my_custom_flashable_boot_unsigned.zip workdir/ que es una función recursiva, esto comprimirá todo en el archivo llamado mi_custom_flashable_boot_unsigned.zip .

Por último, para firmar el archivo zip, emita esto:

java -classpath testsign.jar testsign my_custom_flashable_boot_unsigned.zip my_custom_flashable_boot_signed.zip

Entonces es una cuestión de empujar eso a través de la DDCard como en adb push my_custom_flashable_boot_signed.zip /sdcard/ y manualmente ir a la recuperación y especificar ese archivo zip (es decir. mi_firma_de_costumbre_flashable_de_boot.zip ) en el que realizará el parpadeo para usted.

0 votos

Muy bien, me gusta crear cosas yo mismo así que excelentes instrucciones. No es un punto que voy a necesitar mi ordenador para esto, porque sólo puedo conseguir zips de arranque flashable para todos mis ROMs en una carpeta de mi tarjeta SD, que conducirá a la situación que quería.

2voto

Liam W Puntos 6478

Si tienes el flash_image binario, entonces puedes hacerlo en el dispositivo a través de un emulador de terminal (flash boot, luego el resto usando la recuperación).

Sintaxis: flash_image boot /sdcard/boot.img

Tiempo de autopromoción

Tengo una aplicación que proporciona un GUI para el binario. Encuéntrala aquí .

Si no tienes ese binario, se puede instalar (Google - tienes que descargarlo y luego copiarlo en el /system/bin carpeta.

Esto no funciona en todos los dispositivos, sin embargo es la única forma que se me ocurre.

0 votos

Si he entendido bien, ¿el emulador de terminal es una aplicación normal que se ejecuta mientras el teléfono arranca en modo normal? ¿No dará problemas al arrancar mientras se ejecuta el SO?

1 votos

@MarioDeSchaepmeester El teléfono solo usa el boot mientras arranca ;)

0 votos

He tenido que votar a la baja, ya que flash_image tiene el requisito de ser copiado e invocado desde el teléfono usando adb shell , documentación ( Si me permites añadir, no has proporcionado el enlace) es pedir que se vuelva a montar la SDCard con el bit exec activado (*mala idea ) y requiere Root i.e. su Además, la "autopromoción" en relación con su aplicación, en euros, de donde vengo, es de 6,09 euros, lo que es caro... fastboot es la norma, CM tiene sus propias maneras extravagantes, - lo que es diferente con fastboot y flash_image ?

0voto

alecxs Puntos 29

¿Es posible flashear esta imagen de arranque con TWRP [...]?

cambiar el nombre del archivo boot.emmc.win y colocarlo en TWRP/BACKUPS/ (crear nueva carpeta). restaurar la copia de seguridad desde el menú habitual de TWRP

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X