Comment faire une goldcard pour votre téléphone sous GNU/Linux
Par thisisabore le dimanche 3 juillet 2011, 18:57 - 21 century digital boy - Lien permanent
Un petit billet technique, aussi parce que je sais qu'il risque de m'être utile à l'avenir.
Une goldcard permet de forcer un téléphone à accepter une « mise à jour » qui est plus ancienne que la version du système déjà présente sur le téléphone. Un retour en arrière donc. Ça permet de descendre de version ou downgrader. Ce qui est parfois bien pratique quand on a besoin de rooter son téléphone.
C'est pas bien rassurant sur la sécurité de son téléphone non plus, mais bon. Si on veut de la sécurité, on chiffre[1], non ?
Bref, vous verrez souvent écrit ici et là que c'est chiant à faire sous
Linux.
Que nenni, c'est probablement plus rapide, si on sait où on va.
Notes
[1] Au sens utiliser des moyens cryptographiques.
Le but est de prendre une carte microSD normale, et de la modifier pour qu'elle soit reconnue par un téléphone comme goldcard, le sésame qui permet aux ingénieurs SAV d'appliquer n'importe qu'elle mise à jour, et ce même si elle fait descendre le système de version (il me semble).
D'autres méthodes recommandent de le faire en formatant la carte (et donc en
perdant les données qu'il a dessus).
Ici on va essayer de ne pas avoir à le faire, mais comme toujours quand on
manipule un support de stockage :
- faites une copie de sauvegarde de toutes vos données présentes sur la carte avant de commencer.
Bien, c'est fait ?
Récupérer l'identifiant unique de votre carte SD
Alors, insérez la carte dans le lecteur de carte de votre ordinateur[1] , et exécutez :
cat /sys/class/mmc_host/mmc0/mmc0\:xxxx/cid
La partie /sys/class/mmc_host/ devrait être pareil pour tout le
monde, mais mmc0:\xxxx peut également être mmc1:\xxxx
ou mmc2:\xxxx (le xxxx est différent pour chaque carte). Pour le
savoir, utilisez l'autocomplètement, en tapant sur tab ou bien faites un
ls -alh /sys/class/mmc_host/ et regardez ce que vous trouvez.
Le but est d'obtenir le cid (common identifier), de votre carte microSD, un identifiant qui lui est unique.
Si vous n'avez pas de lecteur de carte sur votre ordi, vous devrez faire la
même chose à partir de votre téléphone Android.
Comme émulateur de terminal, je vous recommande ConnectBot.
- Une fois que vous avez le cid, copiez-le, puis…
Récupérer de quoi transformer votre carte SD en goldcard
- Entrez votre cid sur http://hexrev.soaa.me/.
Collez le cid, et vous obtiendrez une autre chaîne de caractères, le cid à l'envers en hex (il me semble… j'en suis pas sûr, mais osef ça marche quand même). Si le site n'est pas accessible, les bonnes gens du wiki de CyanogenMod nous disent que le le script python suivant donne le même résultat :
#!/usr/bin/python
s = raw_input('cid: ')
n = len(s)
if n != 32 : raise Exception('bad cid')
print "00"+sn-4:n-2+''.join(s[n-2:n+sn-4:n-2 for n in
range(n-4,0,-4) ])
- Une fois que vous avez le cid inversé, rendez-vous sur cet autre site http://psas.revskills.de/?q=goldcar... (celui-là pas moyen d'y couper je crois) et collez-le.
Renseignez tous les champs bien gentiment, entrez une adresse mail (ils ont l'air sérieux et ne semblent pas envoyer pas de spam, mais sait-on jamais mettez une adresse jetable à la mailinator ou meltmail), pensez à faire un don si vous en avez les moyens, et attendez votre goldcard.img dans votre boîte mail.
Une fois obtenue, c'est là qu'on va effectivement transformer sa carte microSD normale en goldcard.
Transformer votre carte SD en goldcard
Si vous êtes sous une version de Debian/Ubuntu, normalement, lorsque vous
avez inséré votre carte microSD elle doit être apparue en
/dev/mmcblk0 avec comme partition /dev/mmcblk0p1 (et
p2 si vous avez une deuxième partition sur votre carte). Ça veut dire
multimedia card
block partition
1. Logique en fait.
Si vous avez inséré votre carte sur un port USB avec un adapteur, il se peut
qu'elle soit apparu en /dev/sd*. Dans ces cas là,
pensez à ne pas déconner avec /dev/sda qui selon
tout vraisemblance est votre disque dur interne. Inutile de transformer
celui-ci en goldcard, je vous assure tout de suite que votre tél n'a pas
d'interface pour le brancher.
Si vous êtes dans le doute, lancez l'utilitaire de disque sous Ubuntu (joliment nommé Palimpsest), il se trouve dans Système > Administration. Il vous montrera les disques connectés au système, et sous quel device votre carte est apparue.
Une fois que vous savez où est le fichier représentant votre carte SD sur votre système, la commande pour transformer votre microSD en goldcard est :
dd bs=512 if=/là/où/vous/avez/rangé/votre/goldcard.img of=/dev/mmcblk0
(ou dd bs=512 if=/là/où/vous/avez/rangé/votre/goldcard.img
of=/dev/sdb si votre SD apparaît en /dev/sdb à cause de son
adaptateur)
Ceci aura pour effet d'écrire au tout début de votre carte microSD (les 384 premiers octets en fait) par un identifiant qui fait que votre carte est reconnue comme goldcard et non comme une microSD de base.
Oui, c'est à ce moment que se passe le vaudou en somme.
Important, et c'est là où d'autres guides se plantent : il faut
exécuter dd sur la carte en elle-même (/dev/mmcblk0)
et non sur une de ces partitions (/dev/mmcblk0p1) sinon vous
tuerez le système de fichier sur cette partition, et donc toutes les données
que cette partition contient (sauf à encore se lancer dans des opérations de
magie noire de récupération de données, mais vous avouerez que pour un simple
p1 en trop, c'est un peu con).
Banco.
Voilà, votre carte microSD terriblement banale est transformée en goldcard, et à vous les joies du downgrade.
Enfin, ces commandes sont a priori disponibles sur Android directement, donc
au besoin, vous devriez pouvoir tout faire sans ordinateur (mais dans ces
cas-là faites assez gaffe où vous utiliser dd, c'est un instrument
assez dangereux).
Petit guide inspiré de celui de Nazri Wang et d'autres. Merci à Sooaa pour son hex reverser de cid !
Notes
[1] Il est possible que ça marche via un adaptateur USB,
mais de mon côté quand je connecte ma carte microSD via un adaptateur USB
/sys/class/mmc_host/ n'est pas peuplé, l'adaptateur masquant la
nature réelle de la carte.


Commentaires
Lien rajouté sur http://free.korben.info/index.php/R...) et dans http://free.korben.info/index.php/T...
Bonne journée