wiki android par frandroid

Flasher son Samsung Galaxy Spica via Odin

De FrAndroid - Android docs.

Tuto initialement créé par nounours puis modifié et mis à jour par Kyojin.


Vous pouvez poser vos questions sur le forum FrAndroid, Pintu dan Jendela | Pintu Aluminium


Ceci est un cours/tuto complet, divisé en deux parties, pour le Samsung Galaxy Spica, qui porte sur :


  • Le logiciel Odin, les savoirs de base pour utiliser ce logiciel, et donc pouvoir flasher son Spica; (c'est la partie à connaître, le reste n'est pas obligatoire donc n'ayez pas peur en voyant la longueur de la page!)
  • La composition des firmwares (ROMs), notamment l'organisation des partitions, pour les plus curieux.


Sommaire

. Introduction

- Lexique

Avant de commencer, comprendre les termes:


Flash, flasher :

Flasher son téléphone veut dire remplacer le firmware de son téléphone par un autre.
Pour faire l'analogie, c'est comme le fait d'installer une nouvelle version de votre système d'exploitation par dessus l'ancienne, vos données seront effacées, pensez donc à la sauvegarde.


Firmware (ou ROM):

Le firmware est le logiciel interne du téléphone. C'est lui qui fait la liaison entre le système d'exploitation et le hardware (matériel).
Dans notre cas, la ROM (ou firmware) est une variante d'Android (grossièrement), à la manière des différentes distributions Linux (Debian, Ubuntu, ou SuSE). Chaque ROM peut être personnalisée par des applications et des bibliothèques de fonctions disponibles ou non.
Il existe deux types de ROMs/Frimwares: celles fournies par le constructeur ( ce qu'on appelle donc ROM originale/officielle) et celles que des passionnés

développent pour la communauté, les ROMs modifiées.


Odin:

Logiciel NON OFFICIEL, qui s'est échappé des serveurs de Samsung (on ne sait pas comment). C'est le logiciel qui permet de flasher le Spica (et les autres terminaux Samsung tournant sous Android).


Fichier OPS:

Fichier qui contient la liste des partitions du téléphone, ainsi que le type de fichier (Boot, CSC, PDA, Phone) qu'Odin doit flasher sur cette partition.


Version de Bande de Base:

C'est la partie logicielle (flashable par Odin) gérant les connexions réseaux et télécom' (WiFi, Bluetooth, 3G, SMS/MMS, etc...).


- Prérequis

Téléchargements


  • Odin:
(3 versions, préférez la 4.03, si elle ne marche pas, essayez les autres).


  • Les drivers (pilotes) USB:
Téléchargez les, puis installez les comme un logiciel, redémarrez votre ordinateur ensuite si vous voulez être sûr qu'il n'y ait pas de problème.
Si vous avez New PC Studio ou Kies, les drivers sont déjà installés.


  • Fichiers OPS:
Si vous voulez flasher une ROM Eclair 2.1, téléchargez
Si vous voulez flasher une ROM Cupcake 1.5, téléchargez.


  • La ROM:
Par exemple la ROM (que je vous conseille d'utiliser pour ce tuto), ou celle que vous voulez.

le mot de passe pour l'archive est: samsung-firmwares.com


  • Pour les archives .zip ou .rar:
L'excellent utilitaire, gratuit, et qui supporte une multitude de formats.

- La garantie et les risques

Pour çà, pas d'inquiétude, ou presque! Je m'explique:


  • Pour la garantie, avant retour au SAV, vous aurez à re-flasher la ROM de votre opérateur, que vous trouverez sur le forum FrAndroid! Dans la plupart des cas le SAV ne remarque rien même sans flasher leur ROM, mais sachez être prudent, vous ne perdrez rien en la flashant.


  • Pour les risques, Dieu merci, sur le Spica ils sont quasi inexistants!
La seule façon possible de "briquer" son téléphone et donc de le rendre inutilisable (il ne s'allume plus du tout, même le logo ne s'affiche pas, l'écran reste noir!) c'est d'y flasher un logo.png ne respectant pas les conditions nécessaires! Regardez plus bas pour les détails.
Et si jamais vous êtes une tête brulée et que vous voulez modifier le logo, n'oubliez pas, la taille maximale de votre logo ne doit absolument pas dépasser les 190 Ko, restez dans les 100 au maximum pour être sûr!
Ne prenez pas de risques pour un logo qui ne s'affiche que pendant 5 secondes quand vous redémarrez le tél, en essayant de vous en faire un perso, contentez vous de ceux des ROM, car c'est le seul et unique point faible du Spica! Pensez aussi à faire vérifier au pire vos logos par les membres du forum, section Spica, ceux-ci vous dirons si c'est ok ou non. ;)


- Avant de commencer

Le piège New PC studio/Kies:

Si vous avez NPS ou Kies d'installés, sachez qu'Odin ne fonctionne pas si un des deux tourne en tâche de fond, il faut donc commencer par les désactiver çà:

Npsj.jpg
  • Cliquez alors sur "Fermer la surveillance de connexion du périphérique".


La vérification des drivers:


  • Avant d'utiliser Odin, il faut s'assurer que les drivers sont installés. Pour cela vous devez démarrer votre Spica en Download mode:
- Éteignez le téléphone
- Appuyez et maintenez appuyés les boutons : Volume bas, Appareil photo, Raccrocher/Allumer, le téléphone va s'allumer et afficher ceci:


Spicadown.png


  • Branchez le téléphone sur l'ordinateur et allez dans le gestionnaire de périphériques de Windows (clic droit sur le Poste de travail, puis Gestionnaire de périphériques).
  • Vous devez trouver dans les périphériques USB le Samsung USB composite device:


Spicaperiphs.png


  • Si vous ne l'avez pas, enlevez la batterie, puis recommencer le démarrage du téléphone en Download mode et la connexion.
  • Si vous avez un périphérique non reconnu, désinstallez les drivers, passez un coup de Ccleaner par exemple pour nettoyer, puis réinstallez les drivers et redémarrez.



La sauvegarde (backup) de vos données:


Notez bien que le flashage d'un nouvelle ROM effacera toutes vos données! Pensez donc à la sauvegarde.

  • Pour vos contacts: Le compte Gmail suffit amplement, il vous faut simplement synchroniser vos contacts avec le serveur (via les Paramètres, manuellement ou en activant la sauvegarde automatique), vous retrouverez alors tous vos contacts sur votre compte Gmail, même depuis votre ordinateur. Il vous suffira ensuite de re-synchroniser via le même compte depuis votre nouvelle ROM.
  • Pour vos SMS/MMS: Vous pouvez utiliser une application comme SMS Backup & Restore, gratuite sur l'Android Market.
  • Pour vos applications: Vous pouvez utiliser une appli de backup, comme MyBackupPro, qui est en fait une application payante mais existe sous forme de version d'essai qui expire sous 30 jours. Notez au passage que cette appli vous permettra aussi la sauvegarde de contacts et des SMS/MMS.
Par contre, je vous ferais remarquer ou apprendre, que l'utilité d'une telle application sans accès root (mode administrateur) est très très limité. En effet, vos applis sont bel et bien sauvegardées, seulement, elles ne sont plus liées au Market, et pour être notifié des mises à jour de ces applis depuis le Market, vous devrez les réinstaller pour les re-lier au Market. Si vous êtes bien éveillé en lisant ceci, c'est que vous avez bien vu qu'il y a un truc qui cloche! Sauvegarder des applications pour aller les réinstaller par la suite, à quoi bon si ce n'est une perte de temps? Optez donc pour cette solution quand vous serez root (voir tuto dédié) et que donc la sauvegarde pourra se faire en gardant les liens Market. Une fois root, vous pourrez aussi utiliser Titanium Backup.


C'est bon? Vous êtes donc prêts, si si je vous assure, alors lâchez moi cette balle anti-stress et respirez un bon coup, let's go!


. Sautez le pas, flashez!

- Odin, ne soyez pas effrayés!

Rappel : Pour Vista/Windows 7, vous devrez l'exécuter en mode de compatibilité Windows XP SP3 et en tant qu'administrateur.
Ces options sont disponibles lorsque vous faites un clic droit sur l'exécutable Odin et choisissez Propriétés.


Ondili.png


Voici l'interface d'Odin, ce que vous voyez en le lançant. Si ce n'est pas le cas, vous êtes officiellement un boulet!

- Le principe

Le principe est extrêmement simple à comprendre! Odin utilise deux choses essentielles:


  • Le fichier .ops: Prenez le fichier .ops correspondant à la version Android que vous voulez flasher, pas forcément celle que vous avez, donc pour passer par exemple d'une ROM 1.5 à une ROM 2.1, prendre un .ops 2.1.
Pour le cas où vous voudrez rooter votre Spica, donc un simple fichier PDA à flasher et non pas une ROM entière, toujours raisonner pareil, mettre le .ops de la version d'Android à laquelle correspond le kernel (noyau) en PDA à flasher.


  • Les fichier .tar: Ce sont les fichiers contenant votre ROM! Vous avez deux possibilités:


- Une ROM en 4 parties, donc 4 fichiers .tar, chacun comportant dans son nom soit PDA, CSC, Boot ou Phone. Il vous faut placer chacun dans la case qui y correspond, et décocher One package si coché!


Un exemple d'une ROM en 4 parties, la ! (voir détails dans 3.2)


- Une ROM en 1 partie, One package: Là, vous avez un seul fichier .tar qui porte le nom de votre ROM, c'est un One package, le mettre dans la case One package, puis cocher One package et flasher!


Un exemple d'une ROM One package, la!

le mot de passe pour l'archive est: samsung-firmwares.com

A vous donc d'essayer de comprendre ce mécanisme et de développer un réflexe à la vue d'une ROM, analysez la, si 1 fichier .tar, One package, sinon, flashage normal! Ne jamais oublier le fichier .ops! Le plus souvent, si ce n'est tout le temps, vous aurez besoin du même si vous ne flashez que des ROM originales en 2.1.

- La préparation

Alors c'est bon? vous avez repéré quoi flasher, où le placer, placé l'ops? alors c'est parti.


Mais puisque je sens que vous avez un peu de doutes encore, quelques rappels/indications:

  • Avec Vista/Windows 7, toujours exécuter Odin en mode de compatibilité XP SP3 et en Administrateur;
  • Toujours fermer le programme résident de New Pc Studio avant de lancer Odin;
  • On vérifie toujours qu'il y a les fichiers factoryfs.rfs & datafs.rfs dans le One Package ou le PDA, sinon on ne flashe pas. (Vous n'installez pas Windows avec un cd vierge !)
  • On flash toujours avec le fichier .ops correspondant à la version d'Android que l'on veut installer.
  • Vous avez bien sauvegardé vos données? Sûrs?! C'est bien!


En général, on regarde bien ce que l'on fait, on vérifie deux fois... Ce n'est rien d'autre que du bon sens !


Allez go!


  • Toujours commencer par cliquer sur le bouton Reset Files, pour effacer les fichiers choisis au flash d'avant. Mais ATTENTION, ceci n'enlève pas l'ops, faites donc gaffe.
  • Selon le contenu de la ROM, placez les fichiers là où il faut comme expliqué plus haut, si un One package cochez One package, sinon décochez.


  • Maintenant les différentes cases à cocher disponibles dans la partie gauche:


One Package

Bon allez, vous le savez déjà hein!

Reboot

Coché par défaut. Je suppose que ca fait rebooter (redémarrer) le téléphone a la fin du flashage, mais personne, à ma connaissance, n'a osé le décocher. Laissez le coché !

Protect OPS

Coché par défaut. Idem que Reboot, laissez le coché ! Personne ne sait ce qu'il pourrait arriver si cette case n'est pas cochée.

Reset Time

Le temps, après la fin du flashage, au bout duquel Odin arrête l'opération et affiche "PASS", oui vous avez réussi! La valeur par défaut est de 300, perso je mets 30 et pas eu de soucis avec.

Debug ONLY

Active les options de débogage. Vous n'en avez besoin (d'une partie seulement) que si votre téléphone démarre en boucle sur le mode Warning /!\ (n'ayez pas peur d'ailleurs) ou sur le mode recovery si votre tél est rooté, le cocher amène 4 autres options :

  • Parameter clear : La case à cocher si çà redémarre sur le mode Warning /!\


Mode Warning


  • Phone EFS Clear : NE COCHEZ JAMAIS CETTE OPTION, vous risquez d'effacer votre IMEI et d'autres infos CAPITALES !
  • PDA Format
  • Phone Boot Update : NE COCHEZ JAMAIS CETTE OPTION


- La mise en pratique

C'est bon on y est:


  • Une fois que vos fichiers sont prêts à être flashés, NPS coupé, vous pouvez allumer le téléphone en mode Download (Volume bas, Appareil photo, Raccrocher/Allumer), puis le brancher a votre ordinateur.


  • Odin devrait maintenant reconnaitre votre téléphone et afficher quelque chose comme :


Odintelconnecter.png


  • Vérifiez une dernière fois la fenêtre de Odin, et cliquez sur le gros bouton "Start" !
  • La case 'Message' devrait afficher l'avancement de la procédure de flash.
  • Une fois terminé, le téléphone redémarre, quand vous voyez le logo du téléphone s'afficher, la barre avancer, vous pouvez sauter de joie!
  • A ce moment là, quand Odin affiche PASS, vous pouvez débrancher le câble USB et fermer Odin.


C'est bon! votre téléphone est désormais flashé, vous avez atteint l'objectif.


C'était pas dur hein? ;)


- Les messages d'erreur

Parce qu'on vit pas dans un monde parfait:


Odin reste bloqué sur "Setup connection"

Si vous avez Windows 7, vérifiez que vous l'exécutez en mode de compatibilité XP SP3 et en Administrateur.

Vérifiez aussi que vous n'avez pas laissé tourner le programme résidant de NPS.

Enlevez la batterie, coupez NPS éventuellement et recommencez.


Odin affiche Invalid Image Type

Vérifiez les noms de vos fichiers, et que vous mettez bien le bon fichier au bon endroit.


Odin affiche Check image files

Vérifiez si vous flashez un 'One package' sans avoir coché l'option, et inversement.


Odin affiche dans la case Message: e - unknow file - 'cache.rfs"

Vérifiez votre fichier OPS!


Odin affiche Please connect phones

Votre téléphone n'est pas branché ou pas reconnu. Vérifiez que vous avez bien branché le téléphone, et pas sur un Hub USB. Vérifiez les drivers.


Odin affiche dans la case Message: e - big partition size

Changez de version d'Odin et réessayez!


- Remettre le Spica en Français

Il peut arriver qu'après le flashage, votre Spica ne démarre que partiellement en Français, vous n'êtes pas bilingue? Pas de panique!

Ce que vous avez à faire, c'est appuyer sur le bouton physique Menu, puis ce qui correspond aux Paramètres (icône marteau et clé anglaise), défiler en bas jusqu'à trouver l'entrée avec l'icône "carré blanc et A inscrit dedans", là vous choisissez la première option proposée, puis vous sélectionnez la Langue de Molière.


. Fini! Je fais quoi après pour optimiser plus?

Eh bien, maintenant, l'étape essentielle par laquelle il faut passer pour commencer l'optimisation est le root.



. Détails pour les plus curieux, pour aller plus loin

- Le fichier OPS

Le fichier OPS est un simple fichier texte (que vous pouvez ouvrir avec le bloc note) qui contient la liste des partitions du téléphone, et ce que Odin doit envoyer dedans comme fichiers.

Regardons ce que contient le fichier spica.ops, première version pour Android Cupcake 1.5:

0,boot
1,Sbl
2,logo
3,zImage
4,factoryfs
5,datafs
6,cache
7,
8,modem
9,efs

A noter que les toutes premières versions du spica.ops qui sont apparues ont la ligne "6, " et non pas "6,cache", car à l'époque on ne savait pas ce qu'était la partition cache (où elle était, a quoi elle servait, quoi y flasher).

Le fichier spica_jc3.ops, pour Android Eclair 2.1 contient quasiment la même chose, la différence se situe là:

4,datafs
5,factoryfs


Vous notez la différence ? Les partitions data et factory ont été inversées. Ceci est dû à un problème de taille des partitions et des fichiers dans les ROM d'Android 2.1, la partition 4 était trop petite pour accueillir le système, mais était suffisamment grande pour la partie data, et inversement.


Ce qui explique le fait que pour flasher une ROM 1.5 ou une ROM 2.1, ce n'est pas le même fichier OPS, faites bien attention!!


- Le contenu d'une ROM

Le contenu des firmwares est très varié, certains comprennent le minimum vital pour le système, d'autres contiennent tous les fichiers du téléphone, certains on le boot.bin et pas d'autres, etc...

Nous allons voir ensemble le contenu d'une ROM complète telle que la i570EXXJD1 (JD1 pour les intimes).

  • , décompressez le fichier dans un répertoire de votre choix.

Voila ce que vous y allez trouver:

ROMJD1.png

Regardons le contenu de ces fichiers

- Le fichier Bootloader.tar

Ouvrez le fichier avec IZArc (par exemple). On trouve dans cette archive les fichiers suivants :

boot.bin
logo.png
Sbl.bin


- boot.bin

C'est le Bootloader, c'est à dire le chargeur de démarrage du téléphone. Il est en format .bin : un fichier binaire en langage machine, où tous les octets sont mis à la suite, afin de permettre la bonne exécution du programme.

C'est le premier programme exécuté par le téléphone. Il sert principalement à :

  1. Initialiser le téléphone;
  2. Regarder les boutons pressés lors de l'allumage;
  3. Lancer le 'Download mode', le 'Recovery mode' ou continuer le démarrage normal du téléphone.

Donc 99% du temps, une fois qu'il a fini de s'exécuter, il passe la main au Secondary Boot Loader.


- Sbl.bin

C'est le Secondary Boot Loader. Il est aussi en format .bin, directement exécutable. C'est lui qui est responsable de charger le kernel (noyau).

Vous comprendrez donc que, pour préserver la sécurité lors du flashage de votre téléphone, il est préférable d'avoir une bonne raison pour laisser ces deux fichiers dans la ROM avant de la mettre dans Odin.


- logo.png

C'est tout bêtement le logo qui est affiché en tout premier au démarrage, et pendant le chargement du kernel, à ne pas confondre avec l'animation de démarrage!


Je vois d'ici votre envie de le modifier alors attention :

TOUTE MODIFICATION NON MAITRISÉE DU LOGO, PEUT RENDRE VOTRE TÉLÉPHONE INUTILISABLE!! C'EST D'AILLEURS LA SEULE FAÇON DE LE BRIQUER!

Et on a déjà eu des cas sur le forum, de téléphones qui ont fini au SAV à cause de cela.


Si jamais vous voulez modifier le logo, n'oubliez pas qu'il doit IMPÉRATIVEMENT :

  • Faire 320 par 480 pixels (largeur x hauteur)
  • Être moins gros que les 192 Ko de la partition qui le contient, mais attention, je conseille de se limiter entre 80 et 100 Ko!
  • Enregistrer impérativement au format PNG et en 24bits (profondeur de couleur, ou autre selon le logiciel)
  • SURTOUT PAS DE 32bits, sinon c'est SAV direct. Vous êtes prévenus.


- Le fichier Phone.tar

Dans notre cas (on regarde la ROM JD1), il contient le fichier modem.bin. Encore une fois, c'est un format binaire.

Ce fichier est le responsable de tout ce qui passe côté téléphonie sur votre appareil. Les appels, les SMS, la 3G, le support du téléphone en modem internet, etc...

Cas général : Toujours flasher un modem.bin, même si c'est la version précédente. En cas de doute, préférez demander au lieu de flasher sans savoir.


- Le fichier PDA.tar

Il contient les fichiers suivants :

datafs.rfs
factoryfs.rfs
zImage

C'est le cœur du système Android. Voyons cela plus en détail:

- zImage

C'est le kernel = le noyau du système. Pour le système Android, il s'agit d'un noyau Linux, version 2.6.27 ou 2.6.29 selon la version d'Android, respectivement 1.5 et 2.1.

Le zImage est le fichier qui contient le kernel, une fois la compilation terminée.

Pour Android, on part des sources du kernel linux, auquel on applique des patchs qui modifient le code source, on ajoute les drivers (pilotes) des périphériques spécifiques du téléphone, et on compile.

Enfin, on fait plus une 'cross compile' pour obtenir du code exécutable sur les architectures ARM, la technologie du processeur principal présent dans le téléphone.

Certaines personnes on réussit a re-compiler le kernel pour ajouter certaines fonctions, mais cela nécessite des connaissances très avancés sur l'architecture du processeur, Linux, et autres dont on ne fera pas le détail ici. (ie. les kernels Lk2.xx pour rooter, ou le kernel Turbo)

Sachez tout de même qu'une re-compilation est nécessaire pour obtenir certaines fonctionnalités tels qu'un firewall.


- factoryfs.rfs

Il contient le système Android en tant que tel. C'est à dire : le répertoire /system, les librairies, les applications de base, la machine java, les icônes, images, etc... qui sont inclus dans Android.

Sans ce fichier, Android n'existe pas.


- datafs.rfs

Il contient plusieurs fichiers qui sont dans le répertoire /data du téléphone. On y trouve entre autres quelques fichiers intéressants tels que la configuration des widgets, des applis installées, du fond d'écran etc... Il est bien sûr indispensable pour le fonctionnement d'Android


- Le fichier CSC.tar

Il contient le fichier cache.rfs. C'est le contenu de la partition /cache du téléphone. En général ce fichier n'est pas nécessaire pour le flashage d'une ROM, mais quand il est fourni, mieux vaut le laisser!


- Le format .RFS

C'est le format de la partition sur lesquels ces fichiers sont flashés. Il s'agit d'un format propriétaire Samsung, basé sur le système FAT, avec l'ajout d'un journal et d'un système pour économiser les cycles d'écriture de la mémoire flash du téléphone.

Il existe un petit script pour décompresser ce format, utilisable seulement depuis et sur le Spica (ou autre Androphone Samsung).


- Les spécificités d'Odin (les trucs à savoir)

Odin est sensible au nom des fichiers que l'on met dans une rom, ainsi vous recevrez des messages d'erreur si :

  • Le nom du .tar ne contient pas PDA, Boot, Phone, CSC.
  • Les fichiers a l'intérieur des .tar ne correspondent pas à ce que l'on vient de voir (modem, zImage, logo, etc...)


- Cas particulier : les fichiers 'One Package'

Odin dispose d'un mode particulier, le système 'One Package'.

Concrètement, on met dans le fichier .tar tous les fichiers :

boot.bin
cache.rfs
datafs.rfs
factoryfs.rfs
logo.png
modem.bin
Sbl.bin
zImage


Bien entendu, il peut manquer certains fichiers, tout dépend de la ROM et/ou de ce que l'on veux flasher.


- Le Samsung Letter Code ou comment lire la version de la ROM

Toutes les ROMs répondent à un code précis, qui permet de savoir (en gros):

  • Version 1.5 (CUPCAKE) ou 2.1 (ECLAIR);
  • Les pays pour lesquels la ROM est conçue, et donc les langues disponibles;
  • L'année de la ROM;
  • Le mois;
  • Et un chiffre qui permet une indication sur le classement chronologique des ROMs du même mois.


- Exemple : ROM I5700XEIL5 :

  • I5700 : indique que c'est une ROM pour le I5700 (çà tombe bien, c'est pour le Spica !)
  • XE : la localisation, ici XE = Bulgaria, Estonia, Kazakhstan, Latvia, Lithuania, Russia, Ukraine

Le même code indique aussi les langues disponibles : XE = en,et,lt,lv,ru,uk(az,bg,de,fr,ka,kk,mk,ro,sr)

  • I : indique l'année : 2009
  • L : indique le mois : décembre
  • 5 : indique le numéro de la version produite pendant le mois indiqué : 5ème version du mois de décembre 2009


- Autre exemple : ROM i570EXXJH6 :


  • I570 : indique que c'est une ROM pour le I5700
  • E: Signifie que c'est une ROM Eclair 2.1.
  • XX : c'est pour la localisation, ici XX = Allemagne, Autriche, Belgique, Espagne, France, Hongrie, Italie, Royaume-Uni.


  • J : indique l'année : 2010
  • H : indique le mois : août
  • 6 : indique le numéro de la version produite pendant le mois indiqué : 6ème version du mois d'août 2010