J'ai fait quelques expériences avec une carte MicroSD formatée en ExFAT et je suis tombé sur quelque chose qui me laisse perplexe.
Il semble que mon nouveau téléphone Android monte la carte MicroSD en tant que /storage/[UUID]
Ainsi, par exemple, au lieu de /mnt/sdcard-ext
comme j'en ai l'habitude, c'est actuellement /storage/0CCE-1C48
.
Parce que c'est assez arbitraire, j'ai pensé le changer en quelque chose de plus facile à retenir, comme 1234-DFDF
(mes initiales dans la seconde moitié). J'ai utilisé tune2fs pour spécifier un nouvel UUID, et j'ai pu confirmer le changement en ouvrant le disque brut dans un éditeur hexagonal.
J'ai découvert que l'UUID est stocké à l'offset hexagonal. 0x100064
du moins pour mon disque particulier. Et à cause de l'Endian-ness, il est stocké en arrière (donc 481CCE0C
est analysé par le dispositif comme 0CCE-1C48
).
Quoi qu'il en soit, j'ai pu vérifier qu'il a changé en 0xDFDF3412
comme il se doit. Je l'ai mis dans mon téléphone, j'ai allumé le téléphone... voilà ! C'était maintenant /storage/1234-DFDF
.
MAIS... dès que j'ai démonté et remonté la carte (ou redémarré le téléphone, etc.), le système est redevenu le suivant 0CCE-1C48
! Comment cela peut-il être ? J'ai changé l'UUID, en remplaçant l'original par un nouveau !
Cela me fait me demander s'il n'y a pas un algorithme intégré à ExFAT qui génère un UUID basé sur... n'importe quoi... la taille de la partition, le label, peu importe. Le téléphone essaie manifestement de "valider" le numéro de série et continue d'écraser mon numéro personnalisé avec le numéro arbitraire qui m'a été donné lorsque j'ai formaté le disque pour la première fois.