Comment créer un package d'installation ClockworkMod?

10

Je suis un vétéran chevronné de Linux et j'ai récemment acheté un Samsung Galaxy S2 auprès de T-Mobile. J'ai ressenti le bug de bricolage, j'ai donc choisi de télécharger le code source sur le site de Samsung et de commencer à jouer.

Mon problème est que j'ai déjà installé ClockworkMod sur mon téléphone, donc je ne veux pas flasher un nouveau noyau et ainsi corrompre ClockworkMod, donc je cherche des détails sur la façon de créer un package d'installation ClockworkMod approprié (généralement / toujours un fichier zip?) afin que je puisse tester les noyaux nouvellement compilés.

Jusqu'à présent, ma recherche sur Google n'a rien rapporté. La page ClockworkMod semble être assez dénuée de documentation. Quelqu'un peut-il m'indiquer une documentation sur le processus de création du package d'installation?

Peter Grace
la source
1
Flasher un noyau avec Odin casse CWM?
Matthew Read
1
Je pensais que ce serait le cas car ODIN semble flasher le bloc de démarrage principal du téléphone, mais je pourrais être totalement hors de la base là-bas. Je ne voulais pas l'essayer sans en être sûr. Ma compréhension était que CWM est un noyau mince intermédiaire qui pivoterait vers le noyau approprié, mais encore une fois, pourrait être totalement hors de la base.
Peter Grace

Réponses:

8

La partie requise d'un fichier .zip du noyau ressemble à ceci:

META-INF
    com
        google
            android
                update-binary
                updater-script

Vous voudrez également avoir le zImagefichier noyau ailleurs, plus facile si vous l'avez juste à la racine de l'archive.

updater-scriptcontient au minimum les éléments suivants (suppose zImageà la racine):

assert(package_extract_file("zImage", "/tmp/zImage");
       write_raw_image("/tmp/zImage", "/dev/block/mmcblk0p8");
       delete("/tmp/zImage")
);

Vous pouvez également faire des choses comme afficher une barre de progression, imprimer des messages, effacer /cache, etc.

Vous aurez envie de récupérer à update-binarypartir d'un autre package de noyau pour le SGS2. Un au hasard est attaché à ce message XDA .

J'ai testé cette méthode sur mon SGS Vibrant sans problème, en utilisant un noyau d'un paquet Odin et un update-binaryautre d'un noyau Vibrant .zip. Notez que cela est parfaitement sûr tant que vous écrivez sur la bonne partition - pour le Vibrant qu'il était bml17, pour le SGS2 il semble être mmcblk0p5(basé sur le noyau de XDA que j'ai lié ci-dessus) ou mmcblk0p8si vous flashez un image de démarrage complète (voir les commentaires ci-dessous). Vous voudrez le vérifier à coup sûr. Dans le pire des cas, votre noyau ne fonctionne pas et vous en flashez un bon connu.

Matthew Read
la source
Pour le Samsung Galaxy S2 (T-Mobile) SGH-T989, la directive appropriée (provenant d'une bonne rom connue que j'ai déjà installée) montre que le bloc de démarrage va dans / dev / block / mmcblk0p8, pas p5. Pourrait vouloir modifier cela pour des raisons de sécurité. J'ai fait un zip basé sur ce post et cela a fonctionné comme un charme! Merci!
Peter Grace
@PeterGrace Ah, l'image de démarrage est plus que le noyau, c'est pourquoi c'est différent.
Matthew Read
Existe-t-il un moyen de s'assurer que je dois utiliser / dev / block / mmcblk0p8? J'ai un Galaxy S2 de Virgin Mobile Canada (le même que Bell Canada), donc ce n'est pas de T-Mobile et je n'ai pas de bonne ROM connue (sauf pour CM7, mais il écrit une image de démarrage, pas un zImage). Dois-je supposer que mon Virgin Mobile GS2 fonctionne de la même manière que votre T-Mobile GS2 ou existe-t-il un moyen de vérifier avec certitude?
Rognon
@Rognon Vous pouvez essayer de courir mountpour voir quels blocs sont mappés où. Sinon, trouvez une ROM.
Matthew Read
@MatthewRead mountn'affiche ni p8 ni p5. La recherche sur Google semble indiquer que le zImage doit être écrit en p5, tout comme ce site: forum.xda-developers.com/showthread.php?t=1691867 . J'ai essayé de lister le contenu du dossier mentionné dans le fil, mais il n'existe pas sur mon téléphone ...
Rognon
-1

J'ai découvert que vous pouvez utiliser fastboot sans affecter CWM.

sudo /path/to/fastboot boot boot.img

ou

sudo /path/to/fastboot flash:raw boot /path/to/zImage /path/to/ramdisk.img
redbmk
la source