Ceci est lié à cette question mais comme j'ai fait des progrès depuis et que je me suis heurté à des problèmes assez différents qui m'obligeraient à la réécrire pour en faire une question totalement différente, j'ai décidé de poser une nouvelle question. Comme dans cette question, quelques informations sur les appareils :
- C'est une BLU ADVANCE 4.0
- La carte est Mediatek MT6572
- La version d'Android est 4.2.2
- La version du noyau est 3.4.5.
- J'ai un accès Root
J'ai essayé de faire une sauvegarde de certaines partitions de mon téléphone (boot.img, system.img, recovery.img) mais j'ai rencontré quelques problèmes.
J'ai trouvé des sauvegardes en ligne pour ce modèle, pris des sauvegardes avec MTK Droid Root and Tools et essayé de lire directement à partir de /dev/bootimg et /dev/recovery. J'ai rencontré plusieurs problèmes différents. Il y en a trois principaux et je les inclus tous ici car je pense qu'ils sont liés. Je vais commencer par celui qui est cohérent dans tous ces cas :
Numéro 1
La partie noyau de mon boot.img semble être beaucoup trop petite (environ 18.0KiB - ce n'est pas correct, n'est-ce pas ?) et se termine par une série de messages d'erreur avant le GZIP 1F8B qui, je pense, marque le début du ramdisk. Voici les messages :
System halted.
Attempting division by 0!...
Uncompressing Linux.....
decompressor returned an error..
done, booting the kernel...
invalid distance too far back...
invalid distance code...
invalid literal/length code.
incorrect header check..
unknown compression method..
invalid window size.invalid block type..
invalid stored block lengths....
too many length or distance symbols.
invalid code lengths set....
invalid bit length repeat...
invalid literal/lengths set.
invalid distances set...
incorrect data check....
Out of memory while allocating output buffer....
Out of memory while allocating input buffer.
Out of memory while allocating z_stream.
Out of memory while allocating workspace....
Not a gzip file.
header error....
read error..
uncompression error........
Les retours à la ligne sont de moi, j'ai essayé de le formater du mieux que je pouvais. Je ne comprends pas très bien ce qui se passe ici, car je ne fais que lire l'image - il ne devrait pas y avoir de messages d'erreur. Est-ce que je vois juste des listes d'erreurs possibles dans le noyau ?
Numéro 2
Je ne peux pas extraire le contenu du ramdisk dans les noyaux de taille correcte (je veux vérifier que les sauvegardes ont fonctionné correctement) comme dans ce guide sur le déballage des images de démarrage Quand je lance cette commande :
gunzip -c ../your-ramdisk-file | cpio -i
Je reçois les messages suivants (tout un tas comme le premier et finissant par les deux derniers) :
cpio: Malformed number (K
gzip: ../ramdisk.gz: decompression OK, trailing garbage ignored
cpio: premature end of file
et aucun nouveau fichier n'est produit. Notez que je peux dézipper le fichier en omettant le bit cpio et en redirigeant la sortie et cela produira un fichier contenant du texte reconnaissable dans un éditeur hexagonal, donc je suppose que l'extraction a réussi.
Numéro 3
Le boot.img lu depuis /dev/bootimg, bien qu'il semble être valide au départ, est beaucoup, beaucoup trop gros - je l'ai arrêté à 3.0GiB+. Pour référence, celui que j'ai trouvé en ligne et celui que j'ai généré avec MTK Droid Tools and Root font 6.0MiB. En le tronquant à 500MiB, j'ai pu trouver la même structure de noyau que dans les autres, bien que je ne sois pas sûr de la fin du ramdisk et que je ne puisse pas le vérifier de manière fiable.
Je suppose que ma question est essentiellement : qu'est-ce qui ne va pas avec mon boot.img ? Est-il valide (malgré les erreurs et l'impossibilité d'extraire le ramdisk) et sûr à utiliser comme sauvegarde ?