8 votes

Création et flashage d'une image sur un appareil Android

J'ai créé une image de mon appareil Android (Lenovo A6000) à l'aide de la commande

adb shell -c su 'dd if=/dev/block/mmcblk0p23 > data.img' 

Maintenant, je voudrais flasher cette image sur le même appareil, et j'essaie d'y parvenir en utilisant fastboot de la façon suivante

sudo fastboot flash data data.img

J'utilise la dernière version de fastboot fournie avec le SDK d'Android.

En exécutant la commande ci-dessus, j'obtiens l'erreur suivante

    target reported max download size of 268435456 bytes
    Invalid sparse file format at header magi
    error: write_sparse_skip_chunk: 
    don't care size 4894735982 is not a multiple of the block size 4096
    fastboot: ../libsparse/sparse.c:143: 
               write_all_blocks: Assertion `pad >= 0' failed.

Je pense que cela a quelque chose à voir avec les tailles, l'image semble avoir une taille d'environ 5 Go alors que la taille maximale de téléchargement indiquée semble être d'environ 2 Go.

Mais je ne sais pas quelle est la véritable erreur et comment la corriger ?

Quelqu'un peut-il me dire où se trouve l'erreur et comment la résoudre ? Il semble que si je fais une image plus petite, je peux la flasher correctement.

0 votes

Je demande simplement : Pourquoi essayer la méthode forte si l'appareil est rooté ? Nandroid backup ne répond-il pas aux besoins ?

1 votes

Invalid sparse file format -- vous n'avez pas créé de fichier clair.

1 votes

Par ailleurs, si vous avez créé l'image avec dd Qu'est-ce qui vous empêche de le restaurer de la même manière (à partir du mode de récupération, bien sûr) ?

2voto

Curtis Lehman Points 21

Android fsutils (sur ubuntu) est livré avec les outils dont vous avez besoin. Vous pouvez également les trouver sur GitHub. Vous avez besoin de : simg2img, simg2simg, img2simg, make_ext4fs, et quelques connaissances du terminal.

sudo simg2simg ./data.img ./data.raw.img Cela vous donne une image qui peut être montée sous Linux. Pour la monter, créez un dossier vide, puis lancez la commande... sudo mount -t ext4 -o loop ./data.raw.img [new_folder_name]/ Vous pouvez trouver tous les fichiers dans le dossier que vous avez créé. Lorsque vous avez terminé les changements que vous voulez faire. Utilisez ceci pour faire une image Android pour fastboot. sudo make_ext4fs -s -l [size_of_partition_in_bytes] -a data ./data data_new.img La sortie sera le fichier data_new.img. Ensuite, il suffit d'utiliser fastboot pour flasher comme vous le feriez normalement.

0voto

Tillebeck Points 994

Vous pouvez essayer cette commande depuis le shell adb :

cat /proc/partitions

Mais mount vous permet de voir /dev/block/bootdevice/by-name/ (dans mon cas) donc si vous le faites :

ls -al /dev/block/bootdevice/by-name/

Vous avez tous les blocs que vous voulez ajouter. Mais je cherche toujours comment ajouter directement à l'ordinateur au lieu de la carte SD Si quelqu'un sait comment faire, merci.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X