Jump to content

Restaurer une image raw à partir d'Android System Recovery


Recommended Posts

Bonjour à tous.
La dernière mise à jour du système a complètement fait planter Android. Le mobile ne donne plus accès qu'au Android System Recovery.
J'avais fait une sauvegarde du système il y a 3 semaines, dans un fichier mmcblk0.raw de 3,5 Go, sur mon PC, depuis ADB. Je l'ai ensuite transféré sur ma carte micro-SD.

Pour effectuer cette sauvegarde, j'avais tapé ceci depuis un terminal:


adb forward tcp:5555 tcp:5555

adb shell

su

/system/xbin/busybox nc -l -p 5555 -e /system/xbin/busybox dd if=/dev/block/mmcblk0

… puis ceci depuis un autre terminal:

adb forward tcp:5555 tcp:5555

cd /path/to/store/the/backup

nc 127.0.0.1 5555 | pv -i 0.5 > mmcblk0.raw

… en suivant ce tutoriel (section: Back up of the whole memory block (via adb))
Je serais allé au delà de la sauvegarde des fichiers systèmes (the whole memory block). L'utilitaire de sauvegarde utilisé était donc l'outil GNU "dd". C'est du bit à bit.
Tout aurait été plus simple avec TWRP, CWM ou Rom Manager, mais ces logiciels ne pouvaient pas créer de sauvegarde de mon ordiphone (pas assez populaire).

Je ne vois aucun menu de l'Android System Recovery qui me permettrait d'accéder à la carte micro-SD. Depuis l'échec de ma mise à jour système, l'ordiphone n'est même plus reconnu par ADB depuis mon PC:

romain@ubuntu:~$ adb devices

* daemon not running. starting it now on port 5037 *

* daemon started successfully *

List of devices attached

C'est grave Docteur?

 

Link to comment
Share on other sites

Ah non, il fallait entrer dans le menu ADB pour que le périphérique soit reconnu par mon PC… Je n'ai plus qu'à copier mon image d'une façon ou d'une autre.

romain@ubuntu:~$ adb devices
List of devices attached
0123456789ABCDEF        sideload

Android System Recovery me met sur la piste:

Now send the package you want to apply to the device with "adb sideload <filename>"…

 

 

Link to comment
Share on other sites

J'ai réussi monter mon image Android mmcblk0.raw.

La partition /system semble être celle de 813Mo remplie à 89% et contenant les répertoires et fichiers:

app  bin  build.prop  data  etc  fonts  framework  lib  lost+found  media  priv-app  recovery-from-boot.p  res  tts  usr  vendor  xbin

Le détail est ici:

root@ubuntu:/home/romain/tmp/android_sauv# parted mmcblk0.raw
GNU Parted 2.3
Utilisation de /home/romain/bureau/tmp/android_sauv/mmcblk0.raw
Bievenue sur GNU Parted ! Tapez 'help' pour voir la liste des commandes.
(parted) print                                                            
Erreur: La partition ne peut pas être en dehors du disque !

root@ubuntu:/home/romain/bureau/tmp/android_sauv# fdisk -l mmcblk0.raw
Avertissement : données superflues ignorées dans la table de partitions 5

Disque mmcblk0.raw : 3887 Mo, 3887071232 octets
1 têtes, 63 secteurs/piste, 120506 cylindres, total 7591936 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Identifiant de disque : 0x00000000

Périphérique Amorçage  Début         Fin      Blocs    Id. Système
mmcblk0.raw1            1024  4294968318  2147483647+   5  Étendue
mmcblk0.raw2           18432       38911       10240   83  Linux
mmcblk0.raw3           38912       59391       10240   83  Linux
mmcblk0.raw4          113152     1751551      819200   83  Linux
mmcblk0.raw5         1751552     2214399      231424   83  Linux

root@ubuntu:/home/romain/bureau/tmp/android_sauv# kpartx -l mmcblk0.raw
loop0p1 : 0 2 /dev/loop0 1024
loop0p2 : 0 20480 /dev/loop0 18432
loop0p3 : 0 20480 /dev/loop0 38912
loop0p4 : 0 1638400 /dev/loop0 113152
loop0p5 : 0 462848 /dev/dm-0 1750528
loop0p6 : 0 4292753919 /dev/dm-0 2213376
loop deleted : /dev/loop0

root@ubuntu:/home/romain/bureau/tmp/android_sauv# kpartx -av mmcblk0.raw
add map loop0p1 (252:3): 0 2 linear /dev/loop0 1024
add map loop0p2 (252:4): 0 20480 linear /dev/loop0 18432
add map loop0p3 (252:5): 0 20480 linear /dev/loop0 38912
add map loop0p4 (252:6): 0 1638400 linear /dev/loop0 113152
add map loop0p5 : 0 462848 linear /dev/loop0 1751552
device-mapper: resume ioctl on loop0p6 failed: Invalid argument
add map loop0p6 : 0 4292753919 linear /dev/loop0 2214400

root@ubuntu:/home/romain/bureau/tmp/android_sauv# ls /dev/mapper/
control  loop0p1  loop0p2  loop0p3  loop0p4  loop0p5  mvg-Vol1  mvg-Vol2  mvg-Vol3

root@ubuntu:/home/romain/bureau/tmp/android_sauv# blkid
[…]
/dev/mapper/loop0p2: UUID="57f8f4bc-abf4-655f-bf67-946fc0f9f25b" TYPE="ext4"
/dev/mapper/loop0p3: UUID="57f8f4bc-abf4-655f-bf67-946fc0f9f25b" TYPE="ext4"
/dev/mapper/loop0p4: UUID="57f8f4bc-abf4-655f-bf67-946fc0f9f25b" TYPE="ext4"
/dev/mapper/loop0p5: UUID="57f8f4bc-abf4-655f-bf67-946fc0f9f25b" TYPE="ext4"

root@ubuntu:~/tmp/android_sauv$ mkdir 1 2 3 4 5

root@ubuntu:/home/romain/bureau/tmp/android_sauv# mount /dev/mapper/loop0p1 1/
mount : vous devez indiquer le type de système de fichiers

root@ubuntu:/home/romain/bureau/tmp/android_sauv# mount -t ext4 /dev/mapper/loop0p1 1/
mount : mauvais type de système de fichiers, option erronée, superbloc erroné
        sur /dev/mapper/loop0p1, page de code ou programme auxiliaire manquant, ou autre erreur
       Dans quelques cas certaines informations sont utiles dans le journal
        système — essayez « dmesg | tail » ou quelque chose du genre

root@ubuntu:/home/romain/bureau/tmp/android_sauv# mount /dev/mapper/loop0p2 2/

root@ubuntu:/home/romain/bureau/tmp/android_sauv# mount /dev/mapper/loop0p3 3/

root@ubuntu:/home/romain/bureau/tmp/android_sauv# mount /dev/mapper/loop0p4 4/

root@ubuntu:/home/romain/bureau/tmp/android_sauv# mount /dev/mapper/loop0p5 5/

root@ubuntu:/home/romain/bureau/tmp/android_sauv# ls 2/
lost+found  md

root@ubuntu:/home/romain/bureau/tmp/android_sauv# ls 3/
lost+found  md

root@ubuntu:/home/romain/bureau/tmp/android_sauv# ls 4/
app  bin  build.prop  data  etc  fonts  framework  lib  lost+found  media  priv-app  recovery-from-boot.p  res  tts  usr  vendor  xbin

root@ubuntu:/home/romain/bureau/tmp/android_sauv# ls 5/
backup  lost+found  recovery

root@ubuntu:/home/romain/bureau/tmp/android_sauv# df -hHT | grep dev/
[…]
/dev/mapper/loop0p2  ext4       5,1M     54k  4,9M   2% /home/romain/bureau/tmp/android_sauv/2
/dev/mapper/loop0p3  ext4       5,1M     50k  4,9M   2% /home/romain/bureau/tmp/android_sauv/3
/dev/mapper/loop0p4  ext4       813M    708M   89M  89% /home/romain/bureau/tmp/android_sauv/4
/dev/mapper/loop0p5  ext4       230M    361k  224M   1% /home/romain/bureau/tmp/android_sauv/5[/code]

Et maintenant? Je fais une archive zip de /system et je l'installe avec une commande du style "adb sideload <mon_archive.zip>" ou "adb restore <mon_archive.zip>" et c'est tout?

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...