0 votes

Comment puis-je obtenir le fichier d'image de démarrage réel d'un périphérique de bloc sans rembourrage ?

J'ai un fichier de 9,6 Mo qui, après avoir fait dd if=/dev/zero of=/dev/block/mtdblock2, est écrit sur mtdblock2. Avant d'écrire, j'ai fait un sha1sum sur le fichier. Je peux utiliser applypatch -c pour vérifier à la fois la taille et le sha mais si je fais un sha sur le périphérique de bloc, il est bien sûr différent à cause de l'espace restant sur le périphérique. Si je copie le périphérique, j'obtiendrai une image de 16 mb incluant cet espace libre. Partout où je lis, les suggestions sont d'utiliser fdisk pour obtenir un compte et ensuite utiliser l'option de compte dans dd. Cependant, cela ne fonctionne pas car le bloc et la partition sont la partition de démarrage. Comment puis-je copier le fichier original, de même taille et de même format, hors du bloc ?

0 votes

Ce que vous demandez n'est pas clair. Si vous connaissez déjà la taille (9.6mb ; est-ce 9.6MB ou 9.6MiB ?), il suffit de faire dd if=/dev/block/mtdblock2 of=boot.img bs=9.6M count=1 . bs=9.6M es 9.6*1024*1024 octets. bs=9.6MB es 9.6*1000*1000 octets. Utilisez ce qui est applicable à votre cas.

0 votes

Tu sais ce qu'est /dev/zero ? tu as déjà détruit le démarrage, pas moyen de le récupérer

0 votes

@Irfan Latif - Le fichier que j'ai est de 9.6mb mais le fichier que j'essaie d'extraire est peut-être et probablement d'une taille différente. C'est un fichier propriétaire et signé. J'ai besoin du fichier image lui-même pour obtenir le sha1sum afin que je puisse utiliser applypatch sur lui.

1voto

J'utiliserais en effet dd avec une ou plusieurs des options disponibles pour spécifier l'adresse de l'utilisateur. longueur (montant) de données à copier ; sinon, comme vous l'avez remarqué, dd lira le contenu intégral de l'appareil, ce qui n'est pas ce que vous voulez.

En ce qui concerne le problème apparent du périphérique de bloc qui est la partition de démarrage, la solution habituelle est de démarrer à partir d'un autre support (peut-être un LiveCD) de sorte que le périphérique que vous souhaitez lire est le suivant no le périphérique/partition de démarrage et peut être lu sans difficulté. Mais avant cela, essayez sudo dd ... et voir si l'exécution en tant que Root résout le problème sans nécessiter de mesures plus drastiques.

0 votes

1) La partition de démarrage est en lecture seule. Elle est chargée en mémoire une seule fois par le bootloader. Après cela, elle n'est plus utilisée. Et même si elle l'est, la lecture d'un bloc de données brut est toujours possible. 2) Comment démarrer un appareil Android à partir d'un LiveCD ou de tout autre support ?

0 votes

Pris au pied de la lettre, (1) est un peu différent de ce que j'ai l'habitude de voir sur les plateformes que je connais mieux qu'Android, mais cela signifie que le PO ne devrait pas avoir de problème. Comme il dit que c'est le cas*, j'ai émis l'hypothèse que "peut-être qu'Android est différent". De plus, Android fonctionne sur tellement d'appareils différents que peut-être l'appareil de l'OP puede démarrer à partir d'un CD - ou peut-être d'une clé USB si vous préférez. Je n'ai jamais vu personne lancer un shell en ligne de commande, ou dd, sur Android avant ; donc, s'il peut le faire, je ne peux pas supposer que tout est impossible. En fin de compte, je pense que mes arguments de base sont toujours valables, dans la mesure où ils vont.

0 votes

Juste si vous êtes intéressé de savoir en détail ce que je voulais dire : Android.stackexchange.com/a/220678/218526 . Les concepts de booloaders, de partition de démarrage et de démarrage sont entièrement différents sur les appareils Android par rapport aux Linux normaux ou aux autres systèmes d'exploitation.

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