2 votes

Comment exécuter la commande "parted" dans l'émulateur de terminal sur mon smartphone Android ?

Question mise à jour (2018/2/20)

Grâce à la réponse et au commentaire de grawity, ma question peut être mise à jour.

Mon objectif final est d'obtenir des informations détaillées sur le partitionnement (y compris l'adresse de début et de fin de chaque partition sur mon téléphone Android), en utilisant fdisk ou parted.

  1. Comment "installer" la commande parted dans mon smartphone Android ?

  2. Puis-je utiliser fdisk sur un système Linux ou Cygwin sur un système Windows ? Sachant que fdisk apporté par BusyBox ne peut pas gérer GPT. (Si oui, je pourrais peut-être poster une autre question).


La question originale (2018/2/19)

J'ai installé Busybox sur mon smartphone, et je souhaite acquérir des informations détaillées sur le partitionnement, notamment l'adresse de début et de fin de chaque partition sur mon téléphone Android.

Je peux utiliser la commande fdisk, mais peut-être parce que le disque de mon téléphone est GPT au lieu de MBR, la commande "fdisk -l" ne montre aucune sortie.

Je veux donc utiliser la commande "parted". Mais je ne l'ai pas sur mon smartphone. Comment puis-je l'obtenir ?

J'ai voyagé à Site web GNU de "parted". . Mais ce que je peux télécharger n'est que le code source. Dois-je le compiler ? Si oui, comment puis-je le compiler ? Puis-je compiler le code source avec MinGW sur un PC équipé du système Windows ?

Si j'obtiens le fichier "parted", où dois-je le mettre pour qu'il fonctionne ? Est-ce sous /system/bin ?

Je n'ai pas encore trouvé de fichier "parted" utilisable. Est-ce à cause de mes mauvaises compétences sur Google ou le fichier doit-il être compilé différemment pour les différents appareils ?

J'espère trouver une version officielle du fichier "parted".


ÉDITER (2018/2/19)

Je sais que mon stockage est GPT car fdisk -l /dev/block/mmcblk0 me dit. Et j'ai lu sur le net que fdisk ne peut pas gérer GPT, alors que parted le peut. Je ne suis pas sûr de savoir pourquoi fdisk -l ne montre rien.

fdisk -l /dev/block/mmcblk0

Disk /dev/block/mmcblk0: 15 GB, 15634268160 bytes, 30535680 sectors
1908480 cylinders, 1 heads, 16 sectors/track
Units: cylinders of 16 * 512 = 8192 bytes

Device             Boot StartCHS    EndCHS        StartLBA     EndLBA    Sectors  Size Id Type
/dev/block/mmcblk0p1    0,0,0       0,0,0                1   30535679   30535679 14.5G ee EFI GPT
Partition 1 does not end on cylinder boundary

5voto

Irfan Latif Points 16863

Note : Ceci s'applique aux SoC Qualcomm avec eMMC (périphérique de bloc accessible par FTL). Non testé sur MTK ou d'autres chipsets (les chemins peuvent différer) ou les dispositifs avec la mémoire NAND/MTD brute.

PARTED

Comment "installer" la commande parted dans mon smartphone Android ?

Il n'y a pas de moyen officiel, donc parted ne fait pas partie de l'AOSP. Android ne veut pas que vous jouiez avec sa table de partition. L'utilisation d'un binaire statique est la meilleure option pour éviter les complications des linker/loader dynamiques, libc etc.

Vous pouvez obtenir un binaire statique pour aarch64 (ARM-v8) et armel (ARM-v5) de this link . Je les ai compilés sur ArchLinuxARM (fonctionnant sur mon Redmi Note 4) et sur Ubuntu (PC) en utilisant gcc (cross-)compilateur avec glibc et ils fonctionnent très bien. Construction avec Bionic libc sur le NDK (pour le rendre complètement Android) nécessite beaucoup de changements dans le code source parce que les appels de fonction (libc) et aussi certains appels système (kernel) diffèrent sur Android et Linux. devmapper et NLS sont désactivés car le premier n'est pas directement utilisé, le second n'est pas supporté par Android.

FDISK / GDISK

Puis-je utiliser fdisk sur un système linux ou sur Cynwin sur un système Windows ? Sachant que fdisk apporté par BusyBox ne peut pas gérer GPT. (Si c'est le cas, je pourrais peut-être poster une autre question).

Vous pouvez utiliser fdisk sur Android aussi, mais fdisk est un outil traditionnel pour manipuler les tables de partition MBR, bien que les versions plus récentes prennent également en charge GPT. fdisk montre quelques informations sur GPT aussi parce que GPT contient le MBR de protection (premier secteur du disque ou eMMC) qui contient des informations sur les partitions. De plus, la première partition (modem) sur la plupart des appareils Android, qui contient un micrologiciel pour le processeur de bande de base (BP). FAT16 plus compatible avec fdisk . Pour les autres partitions fdisk peut se comporter bizarrement ou se planter.

Busybox fdisk est très minimal comme les autres applets, et je pense qu'il n'a pas été mis à jour depuis un certain temps maintenant. Au lieu de cela, GPT fdisk (gdisk) est un excellent outil pour les tables de partitions GUID et, à certains égards, il est supérieur à parted .

gdisk , fdisk et mkfs.ext4 (mke2fs) sont également disponibles sur les sites mentionnés ci-dessus. lien . Vous pouvez les placer n'importe où dans votre PATH ; /system/bin , /system/xbin , /vendor/bin , /sbin (volatile) ou même quelque part sur /data o sdcard .

Maintenant, il suffit d'exécuter :

~# parted /dev/block/mmcblk0
(parted) p free

~# gdisk -l /dev/block/mmcblk0

Veuillez noter que fdisk -l et parted -l n'affichera pas d'informations complètes (ou pas du tout) sur Android GPT parce que le noyau Linux remplit les périphériques de bloc directement sous /dev tandis qu'Android utilise /dev/block chemin. Nous devons modifier le code avant de compiler pour qu'ils fonctionnent parfaitement. fdisk -l montre loop car ils partagent la même nomenclature. blkid montre également des informations sur les partitions car il lit à partir de /proc/partitions et /sys/dev/block/ .

Enfin ! !!

Avec le pouvoir vient la responsabilité et les outils Linux sont puissants. Vraiment. Un déplacement d'un seul octet dans les limites de la partition peut vous mettre dans de sérieux problèmes, le pire étant l'impossibilité d'utiliser les flashers de firmware d'usine. Alors, soyez prudent !

Pour en savoir plus :

2voto

user390480 Points 223

peut-être parce que le disque de mon téléphone est GPT au lieu de MBR, la commande "fdisk -l" ne montre aucun résultat.

Ou peut-être n'a-t-il pas les privilèges nécessaires pour lire la table de partition.

Bien que, pour autant que je sache, de nombreux téléphones Android ne le font pas. utiliser des partitions logicielles, mais quelque chose de plus complexe que cela : ils partitionnent le stockage flash dans le matériel informatique . Donc, même une séparation ne vous aiderait pas dans ce cas.

Cette réponse sur Android.SE pourrait être pertinente : https://Android.stackexchange.com/questions/5232/how-can-i-view-the-Android-internal-partition-table

En ce qui concerne votre fdisk exemple de sortie. C'est no ne montre rien - il montre une partition !

Mais ce n'est pas le bon type ; le problème réel est que votre version de fdisk ne supporte pas GPT et vous montre le contenu de la table de partition "protective MBR".

Tous les disques GPT ont un faux MBR contenant une partition massive qui couvre le disque entier ; son but est d'empêcher les anciens outils MBR-only de détruire accidentellement des données. Si vous le voyez dans la sortie de fdisk, cela signifie que votre version de fdisk est MBR-only.

El fdisk qui est fourni avec util-linux a ajouté le support GPT dans la v2.23. Cependant, le programme Busybox fdisk ne l'a pas fait.


Cela dit, le reste est assez général et s'applique à todo les programmes, et pas seulement parted .

Je me suis rendu sur le site de GNU de "parted". Mais ce que je peux télécharger est seulement le code source. Dois-je le compiler ?

Sí.

Si oui, comment puis-je le compiler ? Puis-je compiler le code source avec MinGW sur un PC avec le système Windows ?

Probablement pas. MinGW est orienté vers la création de constructions Windows x86/x64 - vous avez besoin d'un compilateur croisé qui fournirait des binaires Linux. et qui compilerait pour une architecture CPU différente (votre smartphone utilise une variante ARM).

Cygwin pourrait avoir une version compatible de gcc, mais faire la compilation sur Linux pourrait être beaucoup plus facile.

J'espère trouver une version officielle du fichier "parted".

Il est rare que les développeurs Linux fournissent des versions compilées officielles - cela est généralement laissé aux distributions.

Vous pouvez télécharger les paquets officiels de diverses distributions telles que Debian (Raspbian) ou Arch Linux ARM, et extraire manuellement les fichiers nécessaires.

Veillez à choisir l'architecture correcte du CPU de votre téléphone.

Ensuite, notez que vous aurez besoin plus que le simple fichier "parted" : la plupart des fonctionnalités de base se trouvent en fait dans une bibliothèque (fichier DLL) appelée libparted.so .

2voto

Je peux utiliser la commande fdisk, mais peut-être parce que le disque de mon téléphone est GPT au lieu de MBR, la commande "fdisk -l" ne montre aucune sortie.

Ce n'est ni MBR ni GPT. Les smartphones utilisent généralement des partitions MTD. Ces partitions sont configurées dans l'arborescence des périphériques, leur modification est donc beaucoup plus compliquée que la simple exécution d'un éditeur de partition.

Vous pouvez obtenir des informations sur les partitions en exécutant cat /proc/mtd .

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