Flash boot.img sans utiliser fastboot USB

10

J'ai donc récemment rooté mon téléphone et essayé une ou deux ROM. Je trouve très pratique que vous pouvez utiliser la récupération TWRP pour installer une autre ROM à partir de la carte SD, vous n'avez pas besoin de la connecter à un PC.

Cependant, sur mon appareil (HTC One S), je dois également flasher un fichier boot.img différent pour chaque ROM, donc je dois encore connecter mon téléphone à mon PC pour changer de ROM. Si je ne fais pas ça, ça reste bloqué sur l'écran de chargement. Ensuite, je dois utiliser la commande

fastboot flash boot boot.img

à partir du dossier où se trouve boot.img.

Est-il possible de flasher cette image de démarrage avec TWRP ou de toute autre manière sans utiliser fastboot via USB?

MarioDS
la source

Réponses:

10

Ce qui doit être fait est de regrouper le boot.img et de construire un nouveau fichier zip adapté pour flasher via ClockworkMod ou TWRP.

Pré-requis :

  • un environnement Linux sur lequel les packages de développement habituels, tels que Java, sont installés. ( Il peut également s'appliquer à d'autres plates-formes, veillez simplement à ce que les instructions indiquant le chemin utilisé ci-dessous utilisent une barre oblique /, alors inversez-la pour être une barre oblique inverse \pour l'environnement Windows en particulier! )
  • outil de ligne de commande adb installé.
  • `testsign.jar » outil , pour la signature du fichier zip afin que la récupération peut authentifier et vérifier qu'il est une archive valide par ailleurs la récupération fera rapport archive corrompue ou similaire.
  • update-binaryapplication de ligne de commande , qui est interne pour une utilisation avec le script flashable. (Cela peut être trouvé avec n'importe quel zip flashable, l'important est d'extraire ce binaire et de le déposer dans la structure du répertoire comme indiqué)
  • outil de ligne de commande zip.

En supposant que votre répertoire s'appelle workdir , pour la discussion, appelons cela le répertoire de travail, copiez le boot.imgdans ce répertoire et créez la structure de répertoire suivante - META-INF/com/google/android, c'est important! Et dans le META-INF/com/google/android, copiez l'application binaire appelée update-binarydans ce répertoire. La structure du répertoire devrait donc être comme ceci:

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

En ce qui concerne le updater-script, copiez le contenu des éléments suivants:

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

Rappelez-vous: ne vous y trompez pas, le script de mise à jour, comme indiqué, doit être laissé tel quel, alors n'essayez pas de basculer la barre oblique vers une barre oblique si vous le faites dans un environnement Windows.

Revenez au parent de la structure du répertoire, c'est-à-dire en dehors de workdir et procédez comme suit, nous allons créer un fichier zip à partir de ceci:

zip -r my_custom_flashable_boot_unsigned.zip workdir/qui est une fonction récursive, cela compressera tout dans le fichier appelé my_custom_flashable_boot_unsigned.zip .

Enfin, pour signer le fichier zip, émettez ceci:

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

Ensuite, il s'agit de pousser cela sur la carte SD comme dans adb push my_custom_flashable_boot_signed.zip /sdcard/et d'aller manuellement dans la récupération et de spécifier l'archive zip (c'est-à-dire my_custom_flashable_boot_signed.zip ) dans laquelle il effectuera le clignotement pour vous.

t0mm13b
la source
Bien, j'aime créer moi-même des trucs donc d'excellentes instructions. Ce n'est pas un point que j'aurai besoin de mon ordinateur pour cela, car je peux simplement obtenir des zips de démarrage flashable pour toutes mes ROM sur un dossier de ma carte SD, ce qui conduira à la situation que je voulais.
MarioDS
2

Si vous avez le flash_imagebinaire, vous pouvez le faire sur l'appareil via l'émulateur de terminal (démarrage flash, puis le reste en utilisant la récupération).

Syntaxe: flash_image boot /sdcard/boot.img

Temps d'auto promotion

J'ai une application qui fournit une interface graphique pour le binaire. Trouvez-le ici .

Si vous n'avez pas ce binaire, il peut être installé (Google it - vous devez le télécharger puis le copier dans le /system/bindossier.

Cela ne fonctionne pas sur tous les appareils, mais c'est la seule façon qui me vient à l'esprit.

Liam W
la source
Si je comprends bien, l'émulateur de terminal n'est qu'une application standard que vous exécutez pendant que votre téléphone démarre en mode normal? Cela ne posera-t-il pas de problèmes de démarrage lors du fonctionnement du système d'exploitation?
MarioDS
1
@MarioDeSchaepmeester Le téléphone utilise uniquement le démarrage pendant qu'il démarre;)
Liam W
J'ai dû le rétrograder, tout comme l' flash_imageexigence d'être copié et invoqué à partir du combiné à l'aide adb shell, la documentation ( puis-je ajouter, vous n'avez pas fourni le linky!) Demande de remonter la carte SD avec un ensemble de bits d'exécution (* mauvaise idée ) et nécessite root c'est-à su- dire , en plus de cela, l '"auto-promotion" par rapport à votre application, en euros, d'où je viens, est de 6,09 euros ce qui est cher ... fastboot est la norme, CM a ses propres manières excentriques , - qu'est-ce qui est différent avec fastbootet flash_image?
t0mm13b
Le binaire peut également être utilisé sans ordinateur.
Liam W
0

Est-il possible de flasher cette image de démarrage avec TWRP [...]?

renommez le fichier boot.emmc.win et placez-le dans TWRP/BACKUPS/(créer un nouveau dossier). restaurer la sauvegarde à partir du menu TWRP habituel

alecxs
la source