Sauvegarder son Android phone the Unix way…

Bien, je poursuis donc mon exploration d’Android et surtout ma préparation au « grand saut » qui est le changement de ROM. Avec ce type de passage il convient de prendre toutes ces précautions. Les choses ne se déroulent que rarement « comme prévues ».

La sauvegarde des données du téléphone apparaît presque comme le plus facile: une app du type Helium vous permet facilement de sauvegarder des données pas essentielles mais parfois importantes (sms par exemple ou logs des appels). D’autres, peut être plus importantes, peuvent faire l’objet d’une plus grande attention comme vos contacts. Deux solutions: une app comme Bump (si vous avez un iPad ou une tablette ou un autre téléphone) ou la sauvegarde via un clic gauche, puis « Import/Export » on choisit une formule (export sur SD ou SIM card etc…) et hop! Perso j’ai fait le choix de les sauvegarder sur ma carte SD + d’utiliser Bump. Deux sécurités valent mieux qu’une.

Une fois ces données superficielles (mais néanmoins importantes) on peut se pencher plus avant sur la restauration du téléphone en lui-même. La ROM en clair. Si je foire malencontreusement un flashage, comment je peux retrouver ma rom originel? Ben je fais un NAND-backup sur une carte SD via ClockWorkMod. Chez moi cela donne:

[root@hades 2013-06-18.14.13.06_backup]# ls
boot.img      data.ext4.tar.a  recovery.img       system.ext4.tar.b
cache.ext4.tar    data.ext4.tar.b  recovery.log
cache.ext4.tar.a  data.ext4.tar.c  system.ext4.tar
data.ext4.tar     nandroid.md5     system.ext4.tar.a

Sont donc sauvegardées les partitions /boot, /data, /system, /cache et /recovery . Cependant nulle trace de la partition /EFS. En étant parano, si ça se passe mal /EFS peut être corrompu. Si /EFS est corrompu et que vous avez pas de sauvegardes c’est le brick assuré. En effet /EFS contient toutes les données de connexion au réseau téléphonique, en particulier votre précieux International Mobile station Equipment Identity (aka IMEI). Si on en croit Wikipedia: « The IMEI number is used by a GSM network to identify valid devices ». Autant dire qu’il ne faut pas le perdre sinon vous ne pouvez plus accéder au réseau téléphonique avec votre … téléphone. Un peu balôt quoi…
J’ai donc sauvegardé /EFS et ce de façon bien plus simple que les nombreux tutos à base d’installations de *.exe en folie. En fait j’ai juste fait ça, après avoir isolé ma partition EFS grâce à mount:

shell@android:/ $ su
root@android:/ # dd if=/dev/block/mmcblk0p3 of=/storage/extSdCard/efs.rfs
40960+0 records in
40960+0 records out
20971520 bytes transferred in 4.489 secs (4671757 bytes/sec)

Cela m’a crée un magnifique fichier *.rfs . Le RFS, comme son nom ne l’indique pas, est un format de fichier propre à Samsung, le Linux Robust File System . Je voulais quand même m’assurer que tout y était. J’ai donc regagné mon bash favori et:

[xxx@hades ~]$ adb pull /storage/extSdCard/efs.rfs SGS3/
5442 KB/s (20971520 bytes in 3.763s)

Puis ensuite:

[root@hades ~]# mount -o loop SGS3/efs.rfs /mnt/rfs/
[root@hades ~]# ls /mnt/rfs/
00000000.authtokcont  FactoryApp     imei         nv.log      wv.keys
bluetooth         gyro_cal_data  nv_data.bin      redata.bin
drm           h2k.dat        nv_data.bin.md5  wifi

Bien, ça m’a l’air d’être complet. Et si jamais je me rate, comment je vais faire pour la restaurer. Eh bien ma solution qui est non testée et que j’espère ne JAMAIS devoir tester est la suivante:

# heimdall flash --EFS --efs.rfs

Pourvu que ça n’arrive jamais, mais là j’ai au moins le sentiment rassurer d’avoir vraiment sauvegarder tout ce qui était vraiment nécessaire avant de me lancer.

Le prochain post concernera la ROM et ses déclinaisons. Ainsi que les raisons qui m’ont poussé à choisir une custom rom plutôt qu’une autre…

EDIT: je ne l’avais pas anticipé mais tous mes contacts et toutes mes applications ont été restaurés via mon compte Google qui était synchronisé avec mon téléphone!! Ca m’a simplifié considérablement la vie. Je suis néanmoins content d’avoir une sauvegarde en « dur » de l’essentiel de mon téléphone. J’ai d’ailleurs refait un backup complet dès ma nouvelle ROM installée…