Comment faire une sauvegarde d'un appareil Android avant de flasher le firmware. Comment faire une sauvegarde d'un appareil Android avant de flasher le firmware La sauvegarde d'une structure ROM inconnue est impossible

Bonjour Habrakhabr.

informations générales

Ce guide est conçu pour vous aider à créer une sauvegarde complète de votre appareil (mémoire entière avec toutes les partitions) ou une seule partition (y compris les cartes SD, etc.) directement sur votre ordinateur :
  • Au niveau du bloc mémoire (à l'aide de la commande dd) : pour des sections individuelles ou pour la mémoire entière (toutes les sections). Copie de sauvegarde aura toujours la même taille que la partition en cours de sauvegarde.
  • Au niveau Fichier (à l'aide de la commande tar) : uniquement pour les partitions individuelles. La copie ne contiendra que les fichiers et dossiers qui existent sur l'appareil, occupant ainsi beaucoup moins d'espace, en fonction du niveau de remplissage de la partition.

Ces instructions sont applicables lorsque l'appareil est allumé ou est en mode ClockworkMod Recovery (dans ces cas, ADB fonctionnera en mode Fastboot cette instruction n'est pas applicable). Sauf indication contraire, toutes les commandes sont destinées à être utilisées sous Windows. La même chose s'applique à Linux et Unix.

Exigences

  • Enraciné Appareil Android;
  • Busybox installé sur l'appareil ;
  • Si vous utilisez Linux / OS X, vous disposez déjà outils nécessaires, pour Windows, téléchargez Cygwin et installez netcat, pv et util-linux avec, en les sélectionnant lors de l'installation (j'ajouterai qu'il est préférable d'utiliser le terminal de Cygwin mintty.exe plutôt que le cmd.exe natif de Windows, car la copie la vitesse pour le premier a atteint 3-4 Mo/s, et pour cmd.exe - un maximum de 400 Ko/s) ;
  • BAD installé ;
  • Assurez-vous que adb.exe se trouve dans votre variable PATH. Recherchez et/ou utilisez Path Manager ;
  • Activation du mode de débogage USB sur l'appareil et des pilotes correspondants installés sous Windows. Taper "adb devices" dans le terminal devrait afficher votre appareil.

Partitions dans l'appareil

Vous devez maintenant identifier les partitions et les blocs de votre appareil dont vous souhaitez faire une copie. Pour copier une seule partition, vous pouvez utiliser les commandes tar ou dd, tandis que pour copier toute la mémoire, vous devez utiliser uniquement dd.

Sur Teclast x98 3g Pour définir les partitions, deux commandes sont utilisées : cat proc/partitions et mount.

Un exemple de ce qui devrait apparaître en réponse à leur saisie dans le terminal.

127|root@android:/ # montage
monter
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
aucun /acct cgroup rw,relatime,cpuacct 0 0
tmpfs /mnt/secure tmpfs rw,relatime,mode=700 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
aucun /dev/cpuctl cgroup rw,relatime,cpu 0 0
[b]/dev/block/mmcblk0p9 /system ext4 ro,noatime,data=ordered 0 0
/dev/block/mmcblk0p7 /cache ext4 rw,nosuid,nodev,noatime,data=ordered 0 0
/dev/block/mmcblk0p6 /config ext4 rw,nosuid,nodev,noatime,data=ordered 0 0
/dev/block/mmcblk0p10 /data ext4 rw,nosuid,nodev,noatime,noauto_da_alloc,data=ordered 0 0
/dev/block/mmcblk0p8 /logs ext4 rw,nosuid,nodev,relatime,data=ordered 0 0
aucun /sys/kernel/debug debugfs rw,relatime 0 0
/dev/fuse /mnt/shell/emulated fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
aucun /proc/sys/fs/binfmt_misc binfmt_misc rw,relatime 0 0
tmpfs /mnt/libreg tmpfs rw,noexec,noatime,size=4k,mode=700,gid=1003 0 0
/dev/block/vold/179:1 /storage/sdcard_ext fuseblk rw,relatime,user_id=0,group_id=0,allow_other,blksize=4096 0 0
root@android:/ # cat proc/partitions
cat proc/partitions
nom du #bloc majeur mineur

179 10 30535680 mmcblk0
179 11 229376mmcblk0p1
179 12 32768mmcblk0p2
179 13 32768mmcblk0p3
179 14 131072mmcblk0p4
179 15 131072mmcblk0p5
179 16 131072mmcblk0p6
179 17 786432mmcblk0p7
179 18 262144mmcblk0p8
179 19 1048576mmcblk0p9
259 0 27742188mmcblk0p10
179 30 2048mmcblk0boot1
179 20 2048mmcblk0boot0
179 0 30657536 mmcblk1
179 1 30657504mmcblk1p1

Généralement sur Android, le bloc entier contenant toutes les partitions se trouve dans /dev/block/mmcblk0, et toutes les autres partitions en sont des sous-sections. Vous pouvez installer Parted avec le support GPT pour afficher des informations sur toutes les partitions.

Toute la mémoire du téléphone -> /dev/block/mmcblk0 (bien que sur certains téléphones, cela puisse également être une carte SD).
Partitions -> tout dépend du périphérique spécifique. Généralement, /dev/block/platform/dw_mmc/by-name/ répertorie toutes les partitions d'un périphérique donné.

Sauvegarder toute la mémoire (via adb)

Connectez votre téléphone avec le mode de débogage USB activé à votre ordinateur.

Concernant Teclast x98 3g et le cas où l'appareil ne démarre pas (bootloop). Il est très important que le mode de débogage USB soit activé avant que tout cela ne se produise. Éteignez complètement la tablette, débranchez tous les câbles, laissez quelques secondes pour « se reposer » et connectez le câble de l'ordinateur à la tablette, une si grosse batterie blanche devrait apparaître pour indiquer que le processus de charge est en cours, alors seulement , même à l'état éteint, vous pouvez travailler avec l'appareil via le terminal et adb.

Lancez Cygwin Terminal et saisissez (remplacez mmcblk0 si nécessaire) :

adb transférer tcp : 5555 tcp : 5555
shell adb
su
/system/xbin/busybox nc -l -p 5555 -e /system/xbin/busybox dd if=/dev/block/mmcblk0

Vous verrez un curseur clignotant sur la ligne suivante à gauche. Pour le moment, l'appareil attend que le bloc soit transmis sur le réseau.

adb transférer tcp : 5555 tcp : 5555
cd /chemin/vers/magasin/la/sauvegarde
nc 127.0.0.1 5555 | pv -i 0.5 > mmcblk0.raw

Vous verrez la taille du fichier commencer à augmenter jusqu'à ce que l'intégralité du bloc que vous avez sélectionné soit copiée. Vous disposez désormais d’une sauvegarde complète de l’appareil au format brut. Vous pouvez voir tout le contenu du bloc copié en utilisant gptfdisk, disponible pour Windows, Linux et autres systèmes d'exploitation (site officiel ou). Vous pouvez faire la même chose en utilisant ClockworkMod Recovery, mais vous devez d'abord monter la partition /system, car BusyBox, inclus dans ClockworkMod, n'a pas netcat, vous devez donc utiliser netcat à partir de la partition /system de votre appareil.

À l'aide de certains outils sous Linux, vous pouvez modifier et extraire les sections requises de l'ensemble du bloc.

Vous pouvez utiliser ADB via WiFi, similaire à Wi-Fi ADB.

Sauvegarder toute la mémoire (via WiFi)

Lien vers l'auteur : Nandroid directement sur l'ordinateur sans carte SD.

Nécessaire:

  • Serveur FTP installé sur un ordinateur ou un autre appareil ;
  • Utilisateur avec mot de passe ;
  • Port installé pour Serveurs FTP, la valeur par défaut est 21, mais dans dans cet exemple utilisé 40 ;
  • Répertoire personnel de l'utilisateur disposant des droits d'écriture.

Une bonne règle de base est de copier myfifo dans /cache et non dans /data, car vous pouvez accidentellement écraser des données importantes si vous utilisez des données brutes pour la récupération.

Lancez Cygwin Terminal et saisissez :

shell adb
su
mkfifo /cache/myfifo
ftpput -v -u utilisateur -p pass -P 40 COMPUTER_IP block.raw /cache/myfifo

Ouvrez un autre terminal Cygwin et tapez :

shell adb
su
jj si=/dev/block/mmcblk0p12 de=/cache/myfifo

Quelques notes:

  • Les FIFO ne peuvent être créés que sur les systèmes de fichiers natifs Linux ; FAT ne convient pas pour cela ;
  • Le processus de lecture d'une partition depuis un périphérique ne la modifie en aucun cas.

Sauvegarder toute la mémoire (via partage de connexion USB ou partage de connexion Wi-Fi)

Pour ce faire, vous devez déconnecter toutes les connexions réseau de l'ordinateur, à l'exception de celle avec laquelle vous effectuerez le processus de copie.
Dès que vous connectez votre ordinateur à votre appareil Android, vous pouvez afficher l'IP de l'ordinateur et l'IP de l'appareil dans les « Propriétés de connexion ». IP - sera l'adresse IP de l'ordinateur lui-même et Gateway contiendra l'adresse IP de l'appareil Android.
  • Modem Wi-Fi : ordinateur< - Wi-Fi --->Appareil Android< - 3G --->l'Internet
  • Modem USB :
    Ordinateur< - USB --->Appareil Android< - Wi-Fi --->l'Internet
    Ordinateur< - USB --->Appareil Android< - 3G --->l'Internet

Le processus est absolument similaire au transfert de données via Wi-Fi, la seule chose est que la vitesse de transfert des données sera beaucoup plus élevée car l'ordinateur et l'appareil Android sont connectés directement, au lieu d'utiliser le routeur comme passerelle. Dans ce cas, la passerelle sera l’appareil Android lui-même. Le modem USB a le plus haut niveau transmission de données.

Sauvegarder une partition (brut = copie exacte bit par bit de la partition)

Tout est similaire à ce qui a été décrit ci-dessus, il vous suffit de remplacer mmcblk0 par la section appropriée. Dans ce cas particulier, vous pouvez utiliser un logiciel pour visualiser le contenu de la Section copiée. En fonction de la système de fichiers: DiskInternals Linux Reader, plugin pour Total Commander et ImDisk Virtual Disk Driver. Vous pouvez également utiliser un logiciel pour récupérer les données de partitions individuelles, par exemple Recuva avec un ou plusieurs outils VHD. ligne de commande, inclus dans les systèmes d'exploitation eux-mêmes.

Sauvegardez une partition (tar = seuls les fichiers et dossiers sont copiés)

Dans ce cas, une partition déjà montée est requise. (J'ai décrit ci-dessus comment trouver des partitions sur Teclast x98 3g.)
Pour voir une liste de toutes les partitions montées dans Cygwin Terminal, entrez :

Vous devez maintenant savoir où et quelle partition est montée, par exemple, le micrologiciel est monté dans /system, qui est essentiellement une ROM.
Dans ce cas, vous devrez ouvrir trois terminaux Cygwin, en raison des restrictions imposées par Android lui-même :

Ouvrez le premier terminal Cygwin et créez un FIFO, par exemple dans /cach, et redirigez-le vers tar :

adb transférer tcp : 5555 tcp : 5555
shell adb
su
/system/xbin/busybox mkfifo /cache/myfifo
/system/xbin/busybox tar -cvf /cache/myfifo /system

Vous devez le faire car la redirection de tar vers la sortie standard (avec "-") ne fonctionne pas sur Android et corrompt le fichier enregistré.

Ouvrez un deuxième terminal Cygwin :

adb transférer tcp : 5555 tcp : 5555
shell adb
su
/system/xbin/busybox nc -l -p 5555 -e /system/xbin/busybox cat /cache/myfifo

Ouvrez un troisième terminal Cygwin :

adb transférer tcp : 5555 tcp : 5555
cd /chemin/vers/magasin/la/sauvegarde
nc 127.0.0.1 5555 | pv -i 0.5 > système.tar

Vous pouvez afficher le fichier tar résultant en utilisant Winrar, Commandant total, PeaZip, etc. Veuillez noter que vous ne devez pas extraire ou modifier des fichiers, car le format tar conserve les données d'accès et de propriétaire pour chaque fichier, qui disparaissent lors de l'extraction sur des partitions FAT/NTFS.

Balises : ajouter des balises

Bonjour Habrakhabr.

informations générales

Ce guide est conçu pour vous aider à créer une sauvegarde complète de votre appareil (mémoire entière avec toutes les partitions) ou une seule partition (y compris les cartes SD, etc.) directement sur votre ordinateur :
  • Au niveau du bloc mémoire (à l'aide de la commande dd) : pour des sections individuelles ou pour la mémoire entière (toutes les sections). La copie de sauvegarde aura toujours la même taille que la partition en cours de sauvegarde.
  • Au niveau Fichier (à l'aide de la commande tar) : uniquement pour les partitions individuelles. La copie ne contiendra que les fichiers et dossiers qui existent sur l'appareil, occupant ainsi beaucoup moins d'espace, en fonction du niveau de remplissage de la partition.

Cette instruction est applicable lorsque l'appareil est allumé ou est en mode ClockworkMod Recovery (dans ces cas, ADB fonctionnera ; en mode Fastboot, cette instruction n'est pas applicable). Sauf indication contraire, toutes les commandes sont destinées à être utilisées sous Windows. La même chose s'applique à Linux et Unix.

Exigences

  • Appareil Android rooté ;
  • Busybox installé sur l'appareil ;
  • Si vous utilisez Linux / OS X, vous disposez déjà des outils nécessaires, pour Windows téléchargez Cygwin et installez netcat, pv et util-linux avec, en les sélectionnant lors de l'installation (j'ajouterai qu'il est préférable d'utiliser le terminal de Cygwin mintty.exe que le cmd.exe natif de Windows, puisque la vitesse de copie du premier a atteint 3-4 Mo/s, et celle de cmd.exe - un maximum de 400 Ko/s) ;
  • BAD installé ;
  • Assurez-vous que adb.exe se trouve dans votre variable PATH. Recherchez et/ou utilisez Path Manager ;
  • Activation du mode de débogage USB sur l'appareil et des pilotes correspondants installés sous Windows. Taper "adb devices" dans le terminal devrait afficher votre appareil.

Partitions dans l'appareil

Vous devez maintenant identifier les partitions et les blocs de votre appareil dont vous souhaitez faire une copie. Pour copier une seule partition, vous pouvez utiliser les commandes tar ou dd, tandis que pour copier toute la mémoire, vous devez utiliser uniquement dd.

Sur Teclast x98 3g Pour définir les partitions, deux commandes sont utilisées : cat proc/partitions et mount.

Un exemple de ce qui devrait apparaître en réponse à leur saisie dans le terminal.

127|root@android:/ # montage
monter
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
aucun /acct cgroup rw,relatime,cpuacct 0 0
tmpfs /mnt/secure tmpfs rw,relatime,mode=700 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
aucun /dev/cpuctl cgroup rw,relatime,cpu 0 0
[b]/dev/block/mmcblk0p9 /system ext4 ro,noatime,data=ordered 0 0
/dev/block/mmcblk0p7 /cache ext4 rw,nosuid,nodev,noatime,data=ordered 0 0
/dev/block/mmcblk0p6 /config ext4 rw,nosuid,nodev,noatime,data=ordered 0 0
/dev/block/mmcblk0p10 /data ext4 rw,nosuid,nodev,noatime,noauto_da_alloc,data=ordered 0 0
/dev/block/mmcblk0p8 /logs ext4 rw,nosuid,nodev,relatime,data=ordered 0 0
aucun /sys/kernel/debug debugfs rw,relatime 0 0
/dev/fuse /mnt/shell/emulated fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
aucun /proc/sys/fs/binfmt_misc binfmt_misc rw,relatime 0 0
tmpfs /mnt/libreg tmpfs rw,noexec,noatime,size=4k,mode=700,gid=1003 0 0
/dev/block/vold/179:1 /storage/sdcard_ext fuseblk rw,relatime,user_id=0,group_id=0,allow_other,blksize=4096 0 0
root@android:/ # cat proc/partitions
cat proc/partitions
nom du #bloc majeur mineur

179 10 30535680 mmcblk0
179 11 229376mmcblk0p1
179 12 32768mmcblk0p2
179 13 32768mmcblk0p3
179 14 131072mmcblk0p4
179 15 131072mmcblk0p5
179 16 131072mmcblk0p6
179 17 786432mmcblk0p7
179 18 262144mmcblk0p8
179 19 1048576mmcblk0p9
259 0 27742188mmcblk0p10
179 30 2048mmcblk0boot1
179 20 2048mmcblk0boot0
179 0 30657536 mmcblk1
179 1 30657504mmcblk1p1

Généralement sur Android, le bloc entier contenant toutes les partitions se trouve dans /dev/block/mmcblk0, et toutes les autres partitions en sont des sous-sections. Vous pouvez installer Parted avec le support GPT pour afficher des informations sur toutes les partitions.

Toute la mémoire du téléphone -> /dev/block/mmcblk0 (bien que sur certains téléphones, cela puisse également être une carte SD).
Partitions -> tout dépend du périphérique spécifique. Généralement, /dev/block/platform/dw_mmc/by-name/ répertorie toutes les partitions d'un périphérique donné.

Sauvegarder toute la mémoire (via adb)

Connectez votre téléphone avec le mode de débogage USB activé à votre ordinateur.

Concernant Teclast x98 3g et le cas où l'appareil ne démarre pas (bootloop). Il est très important que le mode de débogage USB soit activé avant que tout cela ne se produise. Éteignez complètement la tablette, débranchez tous les câbles, laissez quelques secondes pour « se reposer » et connectez le câble de l'ordinateur à la tablette, une si grosse batterie blanche devrait apparaître pour indiquer que le processus de charge est en cours, alors seulement , même à l'état éteint, vous pouvez travailler avec l'appareil via le terminal et adb.

Lancez Cygwin Terminal et saisissez (remplacez mmcblk0 si nécessaire) :

adb transférer tcp : 5555 tcp : 5555
shell adb
su
/system/xbin/busybox nc -l -p 5555 -e /system/xbin/busybox dd if=/dev/block/mmcblk0

Vous verrez un curseur clignotant sur la ligne suivante à gauche. Pour le moment, l'appareil attend que le bloc soit transmis sur le réseau.

adb transférer tcp : 5555 tcp : 5555
cd /chemin/vers/magasin/la/sauvegarde
nc 127.0.0.1 5555 | pv -i 0.5 > mmcblk0.raw

Vous verrez la taille du fichier commencer à augmenter jusqu'à ce que l'intégralité du bloc que vous avez sélectionné soit copiée. Vous disposez désormais d’une sauvegarde complète de l’appareil au format brut. Vous pouvez voir tout le contenu du bloc copié en utilisant gptfdisk, disponible pour Windows, Linux et autres systèmes d'exploitation (site officiel ou). Vous pouvez faire la même chose en utilisant ClockworkMod Recovery, mais vous devez d'abord monter la partition /system, car BusyBox, inclus dans ClockworkMod, n'a pas netcat, vous devez donc utiliser netcat à partir de la partition /system de votre appareil.

À l'aide de certains outils sous Linux, vous pouvez modifier et extraire les sections requises de l'ensemble du bloc.

Vous pouvez utiliser ADB via WiFi, similaire à Wi-Fi ADB.

Sauvegarder toute la mémoire (via WiFi)

Lien vers l'auteur : Nandroid directement sur l'ordinateur sans carte SD.

Nécessaire:

  • Serveur FTP installé sur un ordinateur ou un autre appareil ;
  • Utilisateur avec mot de passe ;
  • Le port défini pour le serveur FTP est 21 par défaut, mais dans cet exemple, 40 est utilisé ;
  • Répertoire personnel de l'utilisateur disposant des droits d'écriture.

Une bonne règle de base est de copier myfifo dans /cache et non dans /data, car vous pouvez accidentellement écraser des données importantes si vous utilisez des données brutes pour la récupération.

Lancez Cygwin Terminal et saisissez :

shell adb
su
mkfifo /cache/myfifo
ftpput -v -u utilisateur -p pass -P 40 COMPUTER_IP block.raw /cache/myfifo

Ouvrez un autre terminal Cygwin et tapez :

shell adb
su
jj si=/dev/block/mmcblk0p12 de=/cache/myfifo

Quelques notes:

  • Les FIFO ne peuvent être créés que sur les systèmes de fichiers natifs Linux ; FAT ne convient pas pour cela ;
  • Le processus de lecture d'une partition depuis un périphérique ne la modifie en aucun cas.

Sauvegarder toute la mémoire (via partage de connexion USB ou partage de connexion Wi-Fi)

Pour ce faire, vous devez déconnecter toutes les connexions réseau de l'ordinateur, à l'exception de celle avec laquelle vous effectuerez le processus de copie.
Dès que vous connectez votre ordinateur à votre appareil Android, vous pouvez afficher l'IP de l'ordinateur et l'IP de l'appareil dans les « Propriétés de connexion ». IP - sera l'adresse IP de l'ordinateur lui-même et Gateway contiendra l'adresse IP de l'appareil Android.
  • Modem Wi-Fi : ordinateur< - Wi-Fi --->Appareil Android< - 3G --->l'Internet
  • Modem USB :
    Ordinateur< - USB --->Appareil Android< - Wi-Fi --->l'Internet
    Ordinateur< - USB --->Appareil Android< - 3G --->l'Internet

Le processus est absolument similaire au transfert de données via Wi-Fi, la seule chose est que la vitesse de transfert des données sera beaucoup plus élevée car l'ordinateur et l'appareil Android sont connectés directement, au lieu d'utiliser le routeur comme passerelle. Dans ce cas, la passerelle sera l’appareil Android lui-même. Un modem USB a le taux de transfert de données le plus élevé.

Sauvegarder une partition (brut = copie exacte bit par bit de la partition)

Tout est similaire à ce qui a été décrit ci-dessus, il vous suffit de remplacer mmcblk0 par la section appropriée. Dans ce cas particulier, vous pouvez utiliser un logiciel pour visualiser le contenu de la Section copiée. Selon le système de fichiers : DiskInternals Linux Reader, plugin pour Total Commander et ImDisk Virtual Disk Driver. Vous pouvez également utiliser un logiciel pour récupérer les données de partitions individuelles, telles que Recuva en conjonction avec l'outil VHD, ou les outils de ligne de commande inclus avec les systèmes d'exploitation eux-mêmes.

Sauvegardez une partition (tar = seuls les fichiers et dossiers sont copiés)

Dans ce cas, une partition déjà montée est requise. (J'ai décrit ci-dessus comment trouver des partitions sur Teclast x98 3g.)
Pour voir une liste de toutes les partitions montées dans Cygwin Terminal, entrez :

Vous devez maintenant savoir où et quelle partition est montée, par exemple, le micrologiciel est monté dans /system, qui est essentiellement une ROM.
Dans ce cas, vous devrez ouvrir trois terminaux Cygwin, en raison des restrictions imposées par Android lui-même :

Ouvrez le premier terminal Cygwin et créez un FIFO, par exemple dans /cach, et redirigez-le vers tar :

adb transférer tcp : 5555 tcp : 5555
shell adb
su
/system/xbin/busybox mkfifo /cache/myfifo
/system/xbin/busybox tar -cvf /cache/myfifo /system

Vous devez le faire car la redirection de tar vers la sortie standard (avec "-") ne fonctionne pas sur Android et corrompt le fichier enregistré.

Ouvrez un deuxième terminal Cygwin :

adb transférer tcp : 5555 tcp : 5555
shell adb
su
/system/xbin/busybox nc -l -p 5555 -e /system/xbin/busybox cat /cache/myfifo

Ouvrez un troisième terminal Cygwin :

adb transférer tcp : 5555 tcp : 5555
cd /chemin/vers/magasin/la/sauvegarde
nc 127.0.0.1 5555 | pv -i 0.5 > système.tar

Vous pouvez afficher le fichier tar résultant en utilisant Winrar, Total Commander, PeaZip, etc. Veuillez noter que vous ne devez pas extraire ou modifier des fichiers, car le format tar conserve les données d'accès et de propriétaire pour chaque fichier, qui disparaissent lors de l'extraction sur des partitions FAT/NTFS.

Mots clés:

  • Android
  • Sauvegarde Nandroïde
  • La sauvegarde des données
  • Traduction
Ajouter des balises

Après avoir téléchargé tout ce dont nous avons besoin, nous pouvons, par exemple, créer un dossier Android à la racine d'un dossier et organiser le contenu décompressé des archives dans des dossiers, c'est-à-dire pilotes dans le dossier Pilotes, Outils de plate-forme dans dossier séparé, SP Outil Flash dans un autre, MTK Droid Tools également dans un autre.

Ensuite, activez le mode développeur sur votre appareil et activez le débogage USB. Ceux. Tout d’abord, allez dans Paramètres -> À propos du téléphone (À propos de l’appareil) et cliquez plusieurs fois (5-7) sur le « Numéro de build » jusqu’à ce qu’un message apparaisse indiquant que le mode développeur est activé. Ensuite, allez dans le menu Paramètres -> Pour les développeurs et cochez la case « Débogage USB » :

Après cela, connectez l'appareil au PC et installez les pilotes ADB (c'est-à-dire soit en exécutant AdbDriverInstaller.exe à partir de l'archive, soit en ouvrant le gestionnaire de périphériques et en spécifiant manuellement le chemin d'accès aux pilotes dans Dossier Android Pilote ADB x64 pour périphérique inconnu). Le résultat devrait ressembler à ceci (Gestionnaire de périphériques) :

Appareil BAD Android L'interface dans le Gestionnaire de périphériques confirme que nous sommes prêts pour la prochaine étape.

Nous attendons que l'appareil y soit détecté et cliquons sur le bouton « Bloquer la carte » :

Cliquez ensuite sur le bouton « Créer un fichier scatter » et enregistrez le fichier résultant (pour moi, il s'appelait MT6582_Android_scatter.txt) sur le disque. À ce stade, l’étape de préparation est terminée et vous pouvez procéder directement à la lecture des données.

Ouvrez le fichier résultant dans Notepad++ ou Word (notez que le bloc-notes standard ne fonctionnera pas) et recherchez la ligne partition_name : CACHE dedans :

Et rappelez-vous ce qui est écrit dans la colonne Linear_start_addr, dans ce cas il s'agit de 0x3E900000.

Nous déconnectons le téléphone du PC et l'éteignons, c'est-à-dire maintenez le bouton d'arrêt enfoncé et sélectionnez « Éteindre » dans le menu, vous pouvez également déconnecter et insérer la batterie. Ensuite, lancez SP Flash Tool et accédez à l'onglet Lecture. Ensuite, cliquez sur le bouton Ajouter. En conséquence, une ligne apparaîtra dans le tableau :

Nous cliquons dessus, on nous demande de sélectionner un emplacement pour enregistrer le fichier ROM_0, de sélectionner le dossier dans lequel nous voulons l'enregistrer et sur l'écran suivant dans le champ Longueur, nous entrons le numéro dont nous nous sommes souvenus plus tôt (linear_start_addr) :

Le résultat final devrait ressembler à ceci :

Ensuite, nous connectons le téléphone éteint (!) au PC. À ce stade, il est conseillé d'ouvrir le gestionnaire de périphériques. Pour l’instant, nous n’appuyons sur aucun bouton du SP Flash Tool sur cet écran !

Au moment de la connexion, un périphérique MT65xx PreLoader inconnu sera détecté et le système d'exploitation vous demandera d'installer les pilotes correspondants. L'image ci-dessous le montre clairement. Il est préférable d'ouvrir le gestionnaire de périphériques immédiatement avant de connecter le téléphone afin de « capturer » le moment où le MT65xx PreLoader apparaît. Si le périphérique apparaît, mais que le système d'exploitation ne propose pas d'installer automatiquement les pilotes, cela doit être fait manuellement en cliquant avec le bouton droit sur le périphérique MT65xx PreLoader.

Sélectionnez « Rechercher des pilotes sur cet ordinateur » et indiquez le dossier dans lequel se trouve le contenu décompressé de l'archive mtk_xp_vista_7_8_x32_x64.zip (c'est-à-dire qu'à ce stade, vous devez décompresser l'archive quelque part). Une fois les pilotes installés avec succès, l'image dans le gestionnaire de périphériques devrait changer comme suit :

Si les pilotes sont installés, vous pouvez passer à l'étape suivante. Veuillez noter que lorsque vous connectez le téléphone, le port USB VCOM du préchargeur peut apparaître pendant seulement quelques secondes - c'est normal, notre tâche à ce stade est d'installer les pilotes du téléphone afin qu'il soit détecté exactement comme le port USB VCOM du préchargeur, et non le périphérique inconnu MT65xx PreLoader. Si vous n'avez soudainement pas eu le temps d'installer les pilotes et que le téléphone est allumé, retirez la batterie, débranchez le téléphone, insérez la batterie, connectez le téléphone et répétez la procédure.

Une fois que nous sommes sûrs que les pilotes sont installés, nous déconnectons le téléphone du PC. Nous l'éteignons, dans l'outil SP Flash ouvert, nous appuyons sur le bouton de lecture et connectons le téléphone éteint au PC. Après cela, nous passerons par le processus de lecture du firmware du téléphone :

Beaucoup de gens écrivent sur les difficultés qui surviennent précisément à cette étape. Je vais essayer de vous expliquer un peu plus en détail. Après avoir appuyé sur le bouton Relecture, SP Flash Tool passe en mode veille pour que le téléphone se connecte, c'est-à-dire On suppose qu'avant cela, vous avez réussi à saisir le moment où votre téléphone éteint est identifié comme MT65xx PreLoader et à y avoir installé des pilotes afin que le port USB VCOM du préchargeur apparaisse dans les ports COM. Si soudainement, pour une raison quelconque, SP Flash Tool a écrit une erreur ou si le téléphone n'a pas eu le temps de se connecter, la méthode suivante peut vous aider (tout ce qui est décrit n'est vrai que si vous avez installé correctement les pilotes et lorsque vous connectez le téléphone, Preloader USB VCOM Le port apparaît) : déconnectez le téléphone du PC, retirez la batterie, appuyez sur le bouton Lecture, connectez le téléphone avec la batterie retirée. Dans SP Flash Tool, il y aura une barre rouge (Téléchargement), pendant ce temps nous réinsérons rapidement la batterie, si nous avons le temps, alors une barre de relecture bleue apparaîtra avec des pourcentages, comme sur l'image :

Nous attendons la fin du processus. La création d'une sauvegarde peut prendre 10 à 15 minutes. Il suffit de regarder les pourcentages en cours et de ne toucher à rien 😉 A la fin de la procédure de lecture, vous verrez le message Relire Ok :

Pendant que nous effectuons la sauvegarde, il est temps d'expliquer ce qu'est un fichier scatter et ce qu'est le fichier ROM_0, que nous recevrons en sortie. La mémoire du téléphone est un Flash EMMC classique, divisé en sections spécifiques. Un fichier Scatter est un fichier de description de section (par exemple, Scatter comporte les sections PRELOADER, RECOVERY, LOGO, ANDROID, etc.). Le but des partitions est différent, par exemple, Recovery contient l'image de récupération, le logo contient le logo utilisé lors du chargement du système, Android contient l'image système, etc. Le fichier ROM_0 que nous obtenons en sortie est essentiellement un vidage continu d'EMMC Flash dans un seul fichier. Mais pour utiliser la sauvegarde du micrologiciel résultante, par exemple pour restaurer un autre périphérique similaire, nous devrons toujours le diviser en partitions. Ici, je vais décrire plusieurs façons de procéder. Le premier et le plus courant consiste à utiliser MTK Droid Tools. Disons que nous avons déjà un fichier ROM_0 créé à l'aide de SP Flash Tool.

Allumez l'appareil (téléphone) et laissez-le démarrer, après quoi nous lançons à nouveau MTK Droid Tools (le mode de débogage USB sur le téléphone doit bien sûr être activé et les pilotes ADB installés sur le PC), allez sur l'onglet racine, sauvegarde, récupération et cliquez sur le bouton « Créer une sauvegarde à partir du lecteur flash ROM_ » :

Nous sélectionnons le ROM_0 que nous avons obtenu à l'étape précédente et dans la fenêtre de journal, nous voyons quelque chose comme ce qui suit :

— Enregistrez le dossier sur l'ordinateur : E:\Android\MtkDroidTools\backups\KINGSING_S1_141117_ForFlashtoolFromReadBack_150512-005322\
— scatter est enregistré dans le fichier :
E:\Work\Megaphone Login Plus\MtkDroidTools\backups\KINGSING_S1_141117_ForFlashtoolFromReadBack_150512-005322\MT6582_Android_scatter.txtcopie terminée
- preloader.bin ... copié ... coupé OK
- MBR...copié
- EBR1...copié
- pro_info ...copié
- nvram.bin...copié
-protect_f ...copié
—protect_s ...copié
-seccfg...copié
- uboot.bin...copié
- boot.img ...copié

Eh bien, etc. Maintenant, dans le dossier de sauvegarde, pour moi c'est E:\Android\MtkDroidTools\backups\, nous avons un dossier avec une sauvegarde complète de notre firmware, divisé en sections (c'est-à-dire chaque section dans un fichier séparé) :

Ceci termine le processus de création du micrologiciel de sauvegarde. Si vous vouliez simplement savoir comment créer un micrologiciel de sauvegarde à l'aide de SP Flash Tool et que vous avez réussi, vous n'avez pas besoin de lire plus loin.

Pour avancé

Que faire si MTK Droid Tools ne « voit » pas le téléphone ? Ou est-il impossible de créer un fichier scatter ou de diviser le fichier ROM_0 résultant en sections ? Comment obtenir une carte de partition et est-il possible de « couper » le fichier ROM_0 manuellement ? Il existe une telle possibilité. Pour obtenir une carte de partition sur MTK 65xx, vous devez donner une commande dans la console ADB - c'est-à-dire exécutez adb shell dans la console et tapez cette commande ici :

Si du coup le téléphone n'est pas visible via ADB pour une raison quelconque (dans ce cas, je vous conseille de lire le manuel ADB, il peut y avoir un problème avec le VEN_ID de l'appareil et il vous suffit de l'enregistrer dans %USERPROFILE%\.android\adb_usb.ini, la même commande peut être donnée dans le téléphone lui-même en installant Terminal Emulator pour Android depuis Google Play :

Comme vous pouvez le voir, le résultat est exactement le même et l'adresse linéaire_start_address de la section cache peut être extraite d'ici. Oui, d'ailleurs, dans les nouveaux appareils, par exemple basés sur MTK 6752, comme Beeline Pro, ZTE Q Lux, etc. La carte de partition peut être obtenue en utilisant cat /proc/partinfo. MTK Droid Tools ne fonctionne pas du tout avec ces appareils.

Nous disposons désormais d'une méthode pour obtenir l'adresse de début de la section de cache, qui est nécessaire pour obtenir ROM_0 à l'aide de SP Flash Tool. Nous connaissons également les adresses (offsets) et les tailles de chaque partition. Ceux. Pour « couper » ROM_0 en partitions, nous n’avons pas besoin d’utiliser MTK Droid Tools. Cela peut être fait manuellement dans n'importe quel éditeur Hex prenant en charge la fonction de sélection et d'enregistrement d'un bloc dans un fichier (j'utilise la console HIEW). Eh bien, à titre d'exemple, « découpons » la partition de récupération du fichier ROM_0 résultant.

Nous connaissons (depuis scatter ou depuis dumchar_info) son Linear_start_addr : 0x4180000 et partition_size : 0x1000000. Ouvrez ROM_0 dans HIEW et accédez à 0x4180000. Ceux. dans la console on fait hiew32 ROM_0, puis on appuie sur F5 et on entre l'adresse du début de la partition - 4180000 :

Comme vous pouvez le voir à partir de 4180000, nous avons la signature ANDROID!, ce qui nous indique que nous sommes sur la bonne voie 😉 L'adresse de fin de partition est calculée comme suit : Linear_start_addr+partition_size-1 = 0x517FFFF dans notre cas. On appuie sur HIEW * (l'astérisque sur le clavier supplémentaire) pour commencer à sélectionner le bloc (si on déplace les flèches haut/bas/droite/gauche, on voit comment le bloc commence à être surligné en couleur) et soit on descend jusqu'à 0x517FFFF , ou faites-le via F5 :

Et on termine de sélectionner le bloc, toujours en utilisant le « gris » * (sur le clavier supplémentaire). Après cela, appuyez sur F2 - Mettre le bloc (enregistrant le bloc dans un fichier) :

ET section de récupération nous l'avons enregistré. De la même manière, vous pouvez couper n'importe quelle autre partition de ROM_0. Comme vous le comprenez, nous n’avons pas du tout besoin de MTK Droid Tool.

Pour simplifier la procédure, vous pouvez également écrire un script/programme qui le fera automatiquement pour toutes les sections, mais pour être honnête, je n'ai pas assez de temps pour cela, et cette tâche ne se pose pas très souvent, donc HIEW est assez suffisant à ces fins.

p.s. C'est tout pour l'instant... le message s'est avéré être une « version brouillon », parce que... Je l'ai écrit à la hâte, j'y ajouterai peut-être plus tard s'il y a des points flous. Et bien sûr, comme toujours, je répondrai à vos commentaires et questions...

p.p.s. Comme ils ont réussi à me corriger un peu, /proc/dumchar_info ne contient pas Linear_start_addr du scatter, mais physical_start_addr. Ceux. dans l'exemple donné pour la partition de récupération nous avons :

adresse_démarrage_linéaire : 0x4180000
adresse_de_démarrage_physique : 0x2D80000
taille_partition : 0x1000000

Et dans /proc/dumchar_info nous voyons exactement physical_start_addr dans la colonne StartAddr. Mais si nous regardons la taille de la première partition (préchargeur), il devient clair comment convertir physical_start_addr en Linear_start_addr ; si vous ajoutez 0x1400000 à 0x2D80000 (c'est exactement la taille du préchargeur), alors vous obtenez 0x4180000.

Publications sur le sujet