Android : créer une GoldCard

Rooter votre smartphone Android est une étape nécessaire pour pouvoir flasher des firmwares alternatifs (ROM).

Vous avez une idée ? Trouvez gratuitement des développeurs sur Codeur.com !

Recevez des devis (gratuit)


La 1ère étape pour rooter votre HTC Desire est la création d’une GoldCard.

Une Gold Card est une carte mémoire, au format micro-SD, qui permettra ensuite de flasher différentes Rom, y compris des versions d’origine si vous avez un smartphone Android verrouillé chez un opérateur, ou dont la Rom a été massacrée par votre opérateur (on voit de tout…).

La plupart des explications trouvées sur le NET partent d’un PC Windows, éventuellement d’un Mac.

J’utilise personnellement un Pc en Ubuntu 10.04, mais ces explications devraient fonctionner avec la majorité des distributions Linux récentes.

Attention :

  • votre carte mémoire micro-SD sera reformatée : sauvez donc vos fichiers données, photos, vidéos, mp3, sur votre PC au moyen de la connexion USB

Correction 22 août : il ne semble pas nécessaire de formater votre carte micro-SD 😉

De quoi avez-vous besoin ?

  • un smartphone Android
  • un carte micro-SD qui sera formatée (effacée !). Certaine personne signale des problèmes avec des cartes de grande capacité. En cas de problème, essayez une carte d’une autre marque (Kingston ou Scandisk) ou de capacité moindre (2 GB de préférence).
  • pour lire la carte mémoire micro-SD, vous devez disposer, soit d’un lecteur de carte micro-SD (USB en général), soit d’un lecteur de carte mémoire SD + un adaptateur micro-SD / SD
  • un PC sous Linux
  • le câble micro-USB pour relier votre smartphone à votre PC

Pour la procédure au départ d’un PC Windows, suivez directement les instructions du site The Unlockr.

Côté smartphone Android :

Insérer votre carte micro-SD (si ce n’est pas encore fait) dans votre téléphone. N’oubliez pas que cette carte sera EFFACÉE. Sauvez vos données, photos, vidéos, etc…

Formatez la carte SD en Fat32 :

Mise à jour 22 août : ce formatage n’est pas obligatoire !

Vous pourriez la formater en FAT32 depuis votre PC, mais je vais le faire depuis mon HTC Desire :

  1. Entrez dans le menu Paramètres / SD et mémoire du téléphone
  2. Désactivez la carte SD. Si l’option n’est pas accessible, débranchez votre câble USB reliant votre Android au PC
  3. Formatez la carte SD. Avez-vous sauvegardé vos données ?
  4. Confirmez « Tout effacer »

Activez le mode Debug USB :

Paramètres / Applications / Développement / Débogage USB

Côté PC Linux :

Pour communiquer avec votre Android, vous avez besoin du programme ADB. C’est l’ Android Debug Bridge qui va vous donner accès à des éléments normalement non visibles via l’ USB et qui permettra également de passer des commandes depuis le PC vers l’Android.

ADB fait partie du SDK Android, fourni par Google.

Téléchargez le SDK Android sur cette page du site Android Developers.

Prenez la version correspondante à votre PC. Je télécharge la version Linux.

Décompressez le fichier SDK dans le répertoire de votre choix :

J’ouvre un terminal :

:~$ cd /home/didier/Téléchargements/
:~/Téléchargements$ ls -l android*
-rw-r--r-- 1 didier didier 16971139 2010-08-12 02:58 android-sdk_r06-linux_86.tgz
:~/Téléchargements$ tar -xvzf android-sdk_r06-linux_86.tgz
android-sdk-linux_86/
android-sdk-linux_86/platforms/
android-sdk-linux_86/SDK Readme.txt
android-sdk-linux_86/tools/
...

Le programme Android Debug Bridge se trouve dans le dossier « tools ».

Connectez votre Android, allumé, à votre PC avec le câble micro-USB.

Exécutez le programme ADB pour vérifier s’il voit votre Android :

:~/Téléchargements$ cd android-sdk-linux_86/tools/
:~/Téléchargements/android-sdk-linux_86/tools$ ./adb devices
* daemon not running. starting it now *
* daemon started successfully *
List of devices attached
????????????	no permissions

ADB voit un device, mais n’y a pas accès.

Effectivement, ADB doit être exécuté avec les permissons « root », càd « su – » en Debian ou « sudo … » en Ubuntu !

Attention, le deamon ADB est resté en mémoire : vous devez canceller la tâche avant de le relancer avec « sudo » :

$ ps -A |grep adb
5690 pts/0    00:00:00 adb
$ kill 5690
$ sudo ./adb devices
[sudo] password for didier:
* daemon not running. starting it now *
* daemon started successfully *
List of devices attached
HT06EPL01045	device

Ok, c’est mieux ! ADB identifie bien un device.

ADB vous permet de passer en « shell », càd en ligne de commande, sur votre téléphone Android :

$ ./adb shell
$

Essayons la commande « ls » :

$ ls -l
drwxrwx--x system   system            1980-01-06 06:19 app-cache
drwxrwxrwt root     root              2010-08-12 03:02 sqlite_stmt_journals
dr-x------ root     root              2010-08-12 00:55 config
drwxrwx--- system   cache             2010-08-12 03:01 cache
d---rwxr-x system   sdcard_rw          2010-08-12 03:01 sdcard
lrwxrwxrwx root     root              2010-08-12 00:55 d -> /sys/kernel/debug
lrwxrwxrwx root     root              2010-08-12 00:55 etc -> /system/etc
drwxr-xr-x root     root              2010-05-03 22:17 system
drwxr-xr-x root     root              1970-01-01 01:00 sys
-rw-r--r-- root     root           74 1970-01-01 01:00 shutdown.bravo.rc
drwxr-x--- root     root              1970-01-01 01:00 sbin
dr-xr-xr-x root     root              1970-01-01 01:00 proc
-rwxr-x--- root     root        14414 1970-01-01 01:00 init.rc
-rwxr-x--- root     root         1677 1970-01-01 01:00 init.goldfish.rc
-rwxr-x--- root     root         3493 1970-01-01 01:00 init.bravo.rc
-rwxr-x--- root     root       103428 1970-01-01 01:00 init
-rw-r--r-- root     root          118 1970-01-01 01:00 default.prop
drwxrwx--x system   system            2010-05-03 21:41 data
-rw-r--r-- root     root          216 1970-01-01 01:00 bootcomplete.bravo.rc
drwx------ root     root              2010-04-29 13:34 root
drwxr-xr-x root     root              2010-08-12 02:45 dev

Pour créer la Goldcard, nous avons besoin de l’identifiant hardware (CID) de la carte mémoire SD :

$ cat /sys/class/mmc_host/mmc1/mmc1:*/cid
1b534d303030303010748eb70300a5a0

Ce numéro de série est important pour la génération de la Goldcard. Mais il doit d’abord être transformé.

Je vous le dis tout de suite : une page Web va faire tout cela pour vous. Pas la peine de se casser la tête.

Pour ceux qui veulent comprendre :

  1. prenez ce numéro CID de votre carte mémoire : 1b534d303030303010748eb70300a5a0
  2. écrivez le byte par byte (par groupe de 2 chiffres hexa) : 1b-53-4d-30-30-30-30-30-10-74-8e-b7-03-00-a5-a0
  3. inversez l’ordre des bytes (commencez par le dernier) : a0-a5-00-03-b7-8e-74-10-30-30-30-30-30-4d-53-1b
  4. remplacez le 1er byte par « 00 » : 00-a5-00-03-b7-8e-74-10-30-30-30-30-30-4d-53-1b
  5. et vous obtenez : 00a50003b78e741030303030304d531b

Pour ceux qui veulent se faciliter la vite, et surtout éviter les risques d’erreur :

  1. cette page, écrite par Soaa, vous fera la conversion immédiatement
  2. Copier/coller y le numéro CID de votre carte mémoire
  3. j’obtiens ceci : 00a50003b78e741030303030304d531b  (évidemment, vous obtiendrez un autre numéro)

Générez le fichier image de votre Goldcard :

  1. Allez sur la page « Générateur de Goldcard pour HTC » :
  2. copier/coller y le numéro modifié que vous avez obtenu
  3. introduisez votre adresse mail
  4. le fichier image Goldcard vous arrivera par mail
  5. sauvez ce fichier « goldcard.img » dans le dossier de votre choix.

Le fichier goldcard.img reçu fait 384 bytes.

Transférons ce fichier sur la carte mémoire micro-SD :

La carte micro-SD doit se trouver dans votre lecteur USB micro-SD (ou dans l’adaptateur micro-SD / SD).

Donc, éteignez votre mobile Android et retirez la carte SD.

Placez cette carte micro-SD dans le lecteur USB et connecté le sur votre PC.

Le transfert de l’image Goldcard sur la carte mémoire n’est pas compliqué, mais ne vous trompez pas de device USB car vous risquez d’effacer un disque ou une partition…

Vérifiez avec dmesg le device utilisé par la carte USB :

$ dmesg
...
[62274.306238] sd 7:0:0:0: [sdd] 7698432 512-byte logical blocks: (3.94 GB/3.67 GiB)
[62274.307376] sd 7:0:0:0: [sdd] Assuming drive cache: write through
[62274.309249] sd 7:0:0:0: [sdd] Assuming drive cache: write through
[62274.309260]  sdd: sdd1

Ma carte est bien une 4 GB. Le device pour cette carte mémoire est « sdd »

Je pourrais aussi utiliser la commande « mount » ou « df » :

$ df -h
Sys. de fich.            Tail. Occ. Disp. %Occ. Monté sur
/dev/sda1              12G  4,7G  5,8G  45% /
...
/dev/sdd1             3,7G  2,9M  3,7G   1% /media/C7AB-0A07

Il reste à transférer le fichier goldcard.img sur la carte mémoire :

Pas besoin de programme spécial sous Linux pour écrire directement (en RAW) sur un périphérique. L’utilitaire « DD » sait le faire :

Je « démonte » le volume « sdd1 » utilisé par la carte mémoire, et je copie le fichier en indiquant qu’on utilise des secteurs de 512 bytes :

$ sudo umount /dev/sdd1
$ sudo dd bs=512 if=goldcard.img of=/dev/sdd
0+1 enregistrements lus
0+1 enregistrements écrits
384 octets (384 B) copiés, 0,639801 s, 0,6 kB/s

Voilà, votre Goldcard est prête.

Si vous voulez vérifier, vous pouvez déconnecter la carte du PC, et la réintroduire dans le lecteur USB. Vous devez pouvoir relire son contenu. Sinon, il y a un problème et votre smartphone n’arrivera pas non plus à la lire. (Réessayez, changez de carte…)

Vous pouvez passez à l’étape suivant pour rooter votre smartphone Android 😉

ps : Merci à Pol pour ses explications et ses démonstrations sur HTC Desire 😉

Sources

L’équipe de WebActus.net vous propose tous les jours des articles sur l’univers des startups, du e-commerce et du growth hacking.

Rejoignez la communauté Webactus

Recevez régulièrement les meilleures actus et ressources

Pas de spam, vous pouvez vous désabonner à tous moment.