Il est possible de mettre à jour la partie ROM du terminal sans toucher à la partie RWM. Simple sans être trivial, voici comment faire.
Attention, cette méthode de mise à jour est conforme à l'esprit de la norme ISO 1664.
Sauvegardez vos données. Sauvegardez vos données. Sauvegardez vos données.
Cette méthode n'a été vérifiée QUE et UNIQUEMENT sur un terminal chiffré équipé d'une ROM AOKP.
Préparer la rom AOKP qui va bien.
Durant cette phase, les commandes seront exécutées sur mon ordinateur personnel. La préparation doit se faire sur une machine séparée pour plusieurs raisons :- On ne peut pas échanger de données entre une session chiffrée et une session en clair (cwm).
- Zip et Bzip2 sont des opérations gourmandes en temps CPU et I/O.
Une fois téléchargé, je prépare 2 archives supplémentaires : system.zip et system.tar.bz2
$ cd /tmp/ $ unzip aokp_maguro_build-32.zip $ cd aokp_maguro_build-32/system/ $ # Création de l'archive ZIP $ zip -r ../../system.zip * $ # Création de l'archive tar.bz2 $ tar cjf ../../system.tar.bz2 *Un ordre d'idée des tailles obtenues :
$ ls -alh /tmp/system.* -rw-r--r-- 1 ckg ckg 107M 17 avr 14:23 /tmp/system.tar.bz2 -rw-r--r-- 1 ckg ckg 108M 17 avr 14:20 /tmp/system.zip
Sauvegardez apk+data (méthode intelligente)
Pour une sauvegarde en toute tranquillité, utilisez Titanium Backup ou Rerware Backup sur le play store.Sauvegardez apk+data (méthode barbare)
~ # # Création des dossiers ~ # mkdir /mnt/sdcard/backup/apk ~ # mkdir /mnt/sdcard/backup/apk-data ~ # # Sauvegarde des apk ~ # cp /data/app/*.apk /mnt/backup/apk ~ # cd /data/data/ ~ # # Purge des caches ~ # rm -r */cache/* ~ # # Dans l'absolu, lib/ est optionnel ~ # for i in *;do tar cjf /mnt/sdcard/backup/apk-data/$i.tar.bz2 $i;done;Si vous souhaitez récupérer les sous-dossiers de /mnt/sdcard/backup via MTP il faut forcer le daemon mtp à recharger sa liste de fichier :
~ # pkill -HUP f_mtpil ne reste plus qu'a sauvegarder la carte SD.
Shell minimal : Clockwork Mode Recovery
La suite des opérations se fait dans le mode recovery.$ adb reboot recoveryUne fois le recovery actif, je lance une session shell.
Le mount m'indique que seule la partition /cache est chargée :
~ # mount rootfs on / type rootfs (rw) tmpfs on /dev type tmpfs (rw,nosuid,relatime,mode=755) devpts on /dev/pts type devpts (rw,relatime,mode=600) proc on /proc type proc (rw,relatime) sysfs on /sys type sysfs (rw,relatime) /dev/block/platform/omap/omap_hsmmc.0/by-name/cache on /cache type ext4 (rw,nodev,noatime,nodiratime,barrier=1,data=ordered)Visiblement, pas de /system monté. Le chemin pour trouver /system est indiqué par /cache.
Pour monter /system :
~ # mkdir /x ~ # mount /dev/block/platform/omap/omap_hsmmc.0/by-name/system /x/On peut vérifier :
~ # ls /x/ addon.d build.prop framework media tts xbin app etc lib su-backup usr bin fonts lost+found system vendorLa partition /system/ n'est pas chiffrée.
Si votre téléphone est saisi par un tiers vous pouvez le considérer comme corrompu. Je reviendrai un autre jour sur le "comment détecter la compromission d'un terminal". C'est la fin de la phase de préparation depuis le shell minimal.
Pousser la rom aokp complete
Normalement, vous devriez avoir la place de pousser la rom complete dans le /data/media de votre terminal. Depuis l'ordinateur :$ adb push system.zip /data/mediaDepuis la session shell (adb shell)
~ # unzip -o /data/media/system.zip -d /x/Si vous obtenez "unzip: zip flags 1 and 8 are not supported", utilisez l'archive system.tar.bz2 définie plus haut alors, depuis l'ordinateur :
$ adb push system.tar.bz2 /data/mediaDepuis la session shell (adb shell)
~ # cd /data/media/ ~ # bunzip2 system.tar.bz2 ~ # tar xf system.tar -C /x/
Fin
Avant de débrancher, il faut umount puis reboot :~ # umount /x/ ~ # reboot
Aucun commentaire:
Enregistrer un commentaire