Flashear boot.img sin usar fastboot USB

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

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

fastboot flash boot boot.img

desde la carpeta donde se encuentra boot.img.

¿Es posible flashear esta imagen de arranque con TWRP o de cualquier otra forma sin usar fastboot a través de USB?

Respuestas (3)

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

Requisitos previos :

  • un entorno Linux que tenga instalados los paquetes de desarrollo habituales, como Java. ( También se puede aplicar a otras plataformas, solo tenga cuidado de que las instrucciones aquí que indican la ruta utilizada a continuación, use una barra inclinada /, ¡así que cambie eso para que sea una barra inclinada invertida \especialmente para el entorno de Windows! )
  • Herramienta de línea de comando adb instalada.
  • Herramienta `testsign.jar' , para firmar el archivo zip para que la recuperación pueda autenticarse y verificar que es un archivo válido; de lo contrario, la recuperación informará un archivo corrupto o similar.
  • update-binaryaplicación de línea de comandos , que es interna para su uso con el script flasheable. (Este se puede encontrar con cualquier zip flasheable, lo importante es extraer ese binario y depositarlo en la estructura del directorio como se muestra)
  • herramienta de línea de comandos zip.

Suponiendo que su directorio se llame workdir , para discusión, llamemos a este el directorio de trabajo, copiemos boot.imgen ese directorio y creemos la siguiente estructura de directorios: META-INF/com/google/android¡esto es importante! Y dentro del META-INF/com/google/android, copie la aplicación binaria llamada update-binaryen 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 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 se confunda aquí, el script de actualización, como se muestra, debe dejarse solo y tal como está, así que no intente cambiar la barra diagonal a una barra diagonal inversa si lo hace en el entorno de Windows.

Regrese al padre de la estructura del directorio, es decir, fuera de workdir y haga 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 my_custom_flashable_boot_unsigned.zip .

Finalmente, para firmar el archivo zip, emita esto:

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

Luego, se trata de empujar eso a través de la tarjeta SD como en adb push my_custom_flashable_boot_signed.zip /sdcard/e ir manualmente a la recuperación y especificar ese archivo zip (es decir , my_custom_flashable_boot_signed.zip ) en el que realizará el flasheo por usted.

Genial, me gusta crear cosas yo mismo, así que excelentes instrucciones. No es un punto que necesitaré mi computadora para esto, porque puedo obtener zips de arranque flasheables para todas mis ROM en una carpeta de mi tarjeta SD, lo que me llevará a la situación que quería.

Si tiene el flash_imagebinario, puede hacerlo en el dispositivo a través del emulador de terminal (arranque flash, luego el resto usando recuperación).

Sintaxis:flash_image boot /sdcard/boot.img

Tiempo de autopromoción

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

Si no tiene ese binario, puede instalarlo (búsquelo en Google; debe descargarlo y luego copiarlo en la /system/bincarpeta.

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

Si entiendo bien, el emulador de terminal es solo una aplicación normal que ejecuta mientras su teléfono se inicia en modo normal. ¿No dará problemas al flashear el arranque mientras se ejecuta el sistema operativo?
@MarioDeSchaepmeester El teléfono solo usa el arranque mientras arranca;)
He tenido que rechazarlo, ya que flash_imagetiene un requisito para ser copiado e invocado desde el teléfono usando adb shell, la documentación ( ¡puedo agregar, no pudo proporcionar el enlace!) Solicita volver a montar la tarjeta SDCard con el conjunto de bits exec (* mala idea ) y requiere root, es decir su, además de eso, la "autopromoción" en relación con su aplicación, en euros, de donde vengo, es de 6,09 euros, lo cual es caro... fastboot es la norma, CM tiene sus propias formas extravagantes , - ¿Qué es diferente con fastbooty flash_image?
También el binario se puede usar sin una computadora.

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

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