Flash boot.img senza usare USB fastboot


10

Quindi di recente ho effettuato il root del mio telefono e ho provato una o due ROM. Trovo davvero utile che tu possa utilizzare il recupero TWRP per installare un'altra ROM dalla scheda SD, non è necessario che sia collegato a un PC.

Tuttavia, sul mio dispositivo (HTC One S) ho bisogno di eseguire il flashing di un file boot.img diverso per ogni ROM, quindi devo ancora collegare il mio telefono al mio PC per cambiare ROM. Se non lo faccio, rimane bloccato nella schermata di caricamento. Quindi devo usare il comando

fastboot flash boot boot.img

dalla cartella in cui si trova boot.img.

È possibile eseguire il flashing di questa immagine di avvio con TWRP o in altro modo senza utilizzare l'avvio rapido tramite USB?

Risposte:


10

Ciò che deve essere fatto è raggruppare boot.img e costruire un nuovo file zip adatto per il flashing tramite ClockworkMod o TWRP.

Prerequisiti :

  • un ambiente Linux che ha i soliti pacchetti di sviluppo, come Java installato. ( Può anche applicarsi ad altre piattaforme, basta fare attenzione che le istruzioni qui che indicano il percorso usato di seguito, usano una barra /, quindi capovolgere per essere una barra rovesciata \per l'ambiente Windows in particolare! )
  • strumento da riga di comando adb installato.
  • strumento `testsign.jar ' , per firmare il file zip in modo che il ripristino possa autenticarsi e verificare che sia un archivio valido, altrimenti il ​​ripristino riporterà un archivio corrotto o simile.
  • update-binaryapplicazione da riga di comando , che è interna per l'uso con lo script flashable. (Questo può essere trovato con qualsiasi zip flashable, l'importante è estrarre quel binario e depositato nella struttura della directory come mostrato)
  • strumento da riga di comando zip.

Supponendo che la tua directory si chiami workdir , per la discussione, chiamiamola directory di lavoro, copialaboot.img in quella directory e crea la seguente struttura di directory - META-INF/com/google/androidquesto è importante! E all'interno di META-INF/com/google/android, copia l'applicazione binaria chiamata update-binaryin quella directory. Quindi la struttura delle directory dovrebbe essere così:

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

Per quanto riguarda il updater-script, copia i seguenti contenuti:

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! :)");

Ricorda: non confonderti qui, lo script di aggiornamento come mostrato, dovrebbe essere lasciato solo e così com'è, quindi non provare a capovolgere la barra rovesciata su una barra rovesciata se lo fai in ambiente Windows.

Torna al genitore della struttura di directory, ovvero al di fuori di workdir e procedi come segue, creeremo un file zip da questo:

zip -r my_custom_flashable_boot_unsigned.zip workdir/che è una funzione ricorsiva, questo comprimerà tutto nel file chiamato my_custom_flashable_boot_unsigned.zip .

Infine, per firmare il file zip, emettere questo:

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

Quindi è una questione di spingerlo attraverso la SDCard come in adb push my_custom_flashable_boot_signed.zip /sdcard/e andare manualmente al recupero e specificare quell'archivio zip (cioè my_custom_flashable_boot_signed.zip ) in cui eseguirà il flashing per te.


Bello, mi piace creare cose da solo istruzioni così eccellenti. Non è un punto che mi servirà il mio computer per questo, perché posso solo ottenere zip di avvio flashable per tutte le mie ROM su una cartella della mia scheda SD, il che porterà alla situazione che volevo.
MarioDS,

2

Se si dispone del file flash_imagebinario, è possibile farlo sul dispositivo tramite l'emulatore di terminale (avvio flash, quindi il resto utilizzando il ripristino).

Sintassi: flash_image boot /sdcard/boot.img

Tempo di autopromozione

Ho un'app che fornisce una GUI per il binario. Lo trovi qui .

Se non si dispone di quel file binario, può essere installato (Google esso - è necessario scaricarlo e copiarlo nella /system/bincartella.

Questo non funziona su tutti i dispositivi, tuttavia è l'unico modo che mi viene in mente.


Se ho capito bene, l'emulatore di terminale è solo un'app normale che esegui mentre il telefono viene avviato in modalità normale? Non genererà problemi con l'avvio flash mentre il sistema operativo è in esecuzione?
MarioDS,

1
@MarioDeSchaepmeester Il telefono utilizza solo l'avvio mentre si avvia;)
Liam W

Ho dovuto sottovalutarlo, come flash_imageha richiesto di essere copiato e invocato dal telefono utilizzando adb shell, la documentazione ( posso aggiungere, non è stato possibile fornire il link!) Sta chiedendo di rimontare la SDCard con il set di bit exec (* cattiva idea ) e richiede radice cioè su, oltre a ciò, l '"autopromozione" in relazione alla tua app, in euro, da dove vengo, è di 6,09 euro che è costoso ... fastboot è la norma, CM ha i suoi modi bizzarri , - cosa c'è di diverso in fastboote flash_image?
t0mm13b,

Anche il binario può essere usato senza un computer.
Liam W,

0

È possibile eseguire il flashing di questa immagine di avvio con TWRP [...]?

rinominare il file boot.emmc.win e inserirlo TWRP/BACKUPS/(creare una nuova cartella). ripristinare il backup dal normale menu TWRP

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.