Aller au contenu

Manuel de hacking du Defy (pour les noobs...)


BobQuiTue

Recommended Posts

Bonjour à tous,

Tout nouveau à Android, je commence mon aventure avec un Defy.

Pas mal intéressé par tout ce qui est bidouille, j'essaie de lire pas mal sur les forums (essentiellement celui-ci et celui de xda-developers) pour essayer de comprendre tous les termes barbares et les tenants et aboutissants de ces flashages de ROM.

Comme je n'aime pas vraiment me lancer à l'aveuglette dans un tuto sans rien comprendre, j'aimerais faire ici un post récapitulatif de ce que j'ai compris. Le but est à la fois de vérifier que je comprends bien, d'éclaircir les passages où je n'ai pas trouvé l'info, et pourquoi pas d'aider les noobs comme moi qui arriveront ici à l'avenir de comprendre peut-être plus facilement tout ça…

Merci d'avance à ceux qui voudrons bien m'aider !

1) Les différentes étapes de lancement d'android sur le Defy

  • Tout d'abord lors de l'allumage du téléphone, il y a un bout de code directement dans la puce qui lance le bootloader.
  • Ce bootloader est en charge d'initialiser le hardware et de lancer le kernel Linux sur lequel se base Android. C'est le bootloader qui affiche le M de Motorola au lancement.
    (Si on maintient Power + Volume haut pour allumer le téléphone, le bootloader va lancer le mode recovery plutôt que de lancer le kernel Linux.)
  • Une fois le kernel lancé, c'est tout android qui s'initialise, jusqu'à arriver sur le home Motoblur (ou Launcher Pro, ADW Launcher, ou autres…)

2) Le problème du bootloader, ou pourquoi on ne peut pas faire n'importe quoi avec son Defy !

  • Pour éviter que n'importe quoi soit fait sur ses téléphones, Motorola a verrouillé le bootloader.
  • Celui-ci n'est pas d'accord pour lancer n'importe quel kernel ou n'importe quel mode recovery, ces derniers doivent être signés, et cette signature est dans le bootloader.
  • Comme le bootloader est lancé par un bout de programme inscrit dans la puce et qu'il est lui-même signé, on ne peut pas changer le bootloader, donc on ne peut pas changer le mode recovery ou le kernel lancés par le bootloader.

[Question n°1] Comment le ClockWordMod recovery fait-il pour proposer un autre mode recovery ? Passe-t-il par un second bootloader lancé directement à partir d'android ?

3) Les différents éléments présents dans Android

!! Attention, cette section n'est pas du tout exhaustive, elle sert à lister ce que je comprends et ce qui sert dans le reste du texte !!

  • Dans Android, il y a un kernel. Celui-ci est un kernel Linux et permet, comme son nom l'indique, de gérer tout ce qui est le coeur du système.
  • Dans Android, il y a des applications. Certaines sont indispensables à la marche d'android, d'autres pas (Post qui liste des applications pas indispensables). Les applications sont des fichiers avec une extension .apk
  • Dans Android, il y a des données utilisateurs (profils, musique, données d'application, etc.)
    => A priori ça ne fait pas partie d'une ROM
  • Dans Android, il y a des données de configuration (info de connexion 3G -APN-, …)
    => A priori ça ne fait pas partie d'une ROM
  • Dans Android, il y a un cache de la machine virtuelle d'exécution de code (nommée Dalvik), plus communément appelé Dalvik-cache

[Question n°2] Qu'est-ce que le cache Dalvik contient exactement ? Il semblerait que ça contienne entre autre un cache des applications installées, ce qui implique qu'il faille supprimer ce cache avant d'installer une nouvelle ROM… Mais c'est flou pour moi !

4) Le principe du recovery mode

  • Pour permettre la mise à jour du téléphone, il y a le recovery mode. Celui-ci donne accès en écriture à plus d'espaces de stockage que le mode normal et permet donc d'écrire à certains endroits protégés du système.
  • Le recovery mode par défaut du téléphone ne permet pas d'écrire n'importe où, ne propose pas de système de backup / restore, et ne permet d'installer que des choses signées par Motorola.
  • Les autres recovery modes disponibles (clockWorkMod recovery par ex.) peuvent donner accès à plus de choses, permettre le backup/restore et autoriser l'installation de n'importe quoi.
  • Utiliser la fonction de backup du recovery mode revient à faire un Nandroid Backup de son téléphone, ce qui sauve TOUT le téléphone et peut être utilisé plus tard pour faire un restore et revenir exactement à la situation lors du backup.
  • Le recovery mode permet de remettre la configuration par défaut du téléphone en supprimant toutes les données utilisateurs et les données de configuration. Cela permet de rendre vierge le téléphone, pour remettre tout par défaut ou préparer l'installation d'une nouvelle ROM. Cela efface aussi toutes les applications installées.

5) Le root

  • Par défaut, comme sous Unix (ou même sous windows avec le mode administrateur), on navigue sous android avec un utilisateur lambda, qui n'a pas le droit de faire n'importe quoi n'importe où.
  • Pour avoir le droit de faire un peu plus de choses, il faut être super-utilisateur. Ce super-utilisateur se nomme "root", d'où le "rootage" du téléphone.
  • Pour rooter son Defy, il faut soit utiliser la méthode Z4ROOT, ou si le téléphone est récent la méthode SuperOneClick - Tutorial -
  • Une fois les droits root obtenus, on peut installer des applications spécifiques ou encore bidouiller des fichiers système.
  • Par exemple on peut installer :


    - 'appli Titanium Backup qui permet de sauvegarder ses données, ses applications, et virer / congeler les applications livrées avec le téléphone

    - l'appli SetVSel qui permet de modifier les fréquences de fonctionnement du Defy, ou encore la tension du processeur, pour économiser de la batterie et/ou overclocker son processeur

    - Le mode root permet également l'installation de ClockWorkmod recovery, et de tout un tas d'autres choses (oui, j'aime la précision ;-)).


6) Les ROMs

  • Une ROM est une photographie à un instant T d'un ensemble kernel + tout ce qu'il y a autour (…) et qui composent android. Elle ne contient toutefois pas la configuration et les données personnelles.
  • Comme le bootloader du Defy est verrouillé, le kernel utilisé dans toutes les ROMs doit être un des kernels sortis de chez Motorola directement. Certaines parties peuvent être bidouillées mais pas d'autres. Ce qui fait que tant que Motorola ne sortira pas de version officielle de Gingerbread sur Defy, on ne pourra pas installer de ROM basée sur un kernel gingerbread. Mais on n'est pas à l'abris qu'un hacker particulièrement doué trouve une manière de contourner ça à l'avenir…
  • Toutes les ROMs disponibles actuellement sur Defy sont donc des versions modifiées de quelque chose qui est sorti de chez Motorola
  • Pour changer de ROM il y a tout un tas de méthodes diverses et variées: (alors là je suis pas sûr du tout, il va falloir m'aider ;-) !)


    - utiliser le recovery-mode pour l'installer

    - utiliser l'outil RSD-lite (windows) pour installer un fichier .sbf sur le téléphone

    - utiliser l'outil adb (ligne de commande permettant de prendre le contrôle du téléphone à distance) pour faire des trucs

    - ??


6.1) Pourquoi on peut / ne peut pas revenir à une ancienne version de ROM ?

Un système android est composé de tout un tas de partitions, nommées Code Groups (ou CG). Ces partitions sont pointées par un chiffre. Voilà la liste des partitions:

CG31 cdt Codegroup Description Table

CG32 bploader Baseband Processor Bootloader

CG33 cdrom CDROM

CG34 lbl Linux Bootloader

CG35 boot Android Boot Image

CG39 system Android System

CG42 logo boot logo

CG45 bpsw Baseband Processor Firmware

CG47 recovery Android Recovery Image

CG53 kpanic Kernel Panic Console

CG61 devtree Device Tree

CG64 mbr eMMC Master Boot Record

CG65 ebr eMMC Extended Boot Record

Le problème vient que certaines de ces partitions sont versionnées, à savoir CG31 et CG39 (CDT et SYSTEM). Les versions sont les suivantes:

version 2 pour les ROMs 2.21/2.34/Chinese

version 3 pour les ROMs 2.51

version 4 pour les ROMs 3.4.2

Et on ne peut JAMAIS revenir à une version précédente de ces versions. On ne peut pas les changer non plus car ça casserait la signature de la partition qu'on ne sait pas refaire.

Donc:

Si le téléphone est en 2.21 ou 2.34 (ECLAIR), on peut flasher un sbf FROYO chinois, on garde la même version des partitions. Libre ensuite de flasher n'importe quelle ROM à base FROYO, ça ne changera pas cette version. On pourra revenir sans problème à un sbf 2.21 ou 2.34 ECLAIR.

Si le téléphone est en 2.51 (ECLAIR) il faut trouver un sbf FROYO à version 3 des partitions. Je n'en connais pas personnellement mais il en existe peut-être

Si Motorola nous sort un jour un firmware en version 5 qui n'est pas crackable, on ne pourra plus jamais installer des versions précédentes si on fait la mise à jour Motorola

(merci à breezasib + pas mal de lecture sur les forums xda-developers pour les explications)

Je mettrai à jour au fur-et-à-mesure, mais merci d'avance si vous savez répondre à mes questions !

N'hésitez surtout pas à corriger mes erreurs ou mes fautes, je mettrai à jour dès que possible !

Modifié par BobQuiTue
Lien vers le commentaire
Partager sur d’autres sites

[Question 1]

Le clockwork recovery est un recovery de type bootstrap. C'est à dire qu'il ne remplace pas le recovery existant, il se substitue à lui "à la volée". On ne peut pas démarrer le téléphone directement sur clockworkmod, il faut le lancer depuis le système en cours.

Mais depuis quelques jours on a droit à une petite evolution: un bootloader en 2nd Init. C'est à dire un bootloader qui s'execute APRES le bootloader verrouillé et qui permet un accès au recovery custom directement au boot sans avoir à le lancer depuis le système en cours.

Je ne connais pas vraiment les détails techniques du 2nd Init donc je n'en dirais pas plus pour éviter de dire des bêtises ;)

Lien vers le commentaire
Partager sur d’autres sites

Le dalvik est une JVM, contenant entre autre des instructions de bas niveau stocké dans des registres.

Elle fait le lien entre toute les classes, afin d'avoir un code plus efficace.

Elle peut aussi modifier le code d'une application pour l'adapter a un telephone en particulier, verifier la securité du code.

J'ai lu un bouquin la dessus il y a pas longtemps, il faut surtout retenir que la JVM d'android est tres efficace, fonctionne diférement d'une JVM classique, et que son point fort et de anticiper les actions pour eviter les chargements poussifs.

Si tu veux plus de precisions je me replongerai ds le bouquin en question (h.s linux special Android) des mon retour chez moi, j'ai du zapper pas mal de subtilités !

Quarx CM7 Defy Tapatalk

Modifié par Leon du mojave
Lien vers le commentaire
Partager sur d’autres sites

Bon topic pour les débutants, et pour ceux qui auraient oublié des choses. J'avais proposé sur un autre topic de créer un sujet sur les applis désinstallables sans danger sur le Defy, ça pourrait intéresser des personnes qui comme moi ne veulent pas changer de ROM et rester sur l'officielle, mais y faire une cure de nettoyage pour avoir quelque chose de décent.

Je veux bien me proposer mais pour l'instant je n'ai pas trop le temps, si quelqu'un veut le faire à ma place, pourquoi pas. Juste préciser pour chacune le titre de l'application et pas uniquement un truc du style "une_appli.apk" comme j'ai déjà vu pas toujours parlant, surtout qu'on utilise pas forcément les mêmes applis de désinstallation.

Bien à vous.

Lien vers le commentaire
Partager sur d’autres sites

Bon topic pour les débutants, et pour ceux qui auraient oublié des choses. J'avais proposé sur un autre topic de créer un sujet sur les applis désinstallables sans danger sur le Defy, ça pourrait intéresser des personnes qui comme moi ne veulent pas changer de ROM et rester sur l'officielle, mais y faire une cure de nettoyage pour avoir quelque chose de décent.

Je veux bien me proposer mais pour l'instant je n'ai pas trop le temps, si quelqu'un veut le faire à ma place, pourquoi pas. Juste préciser pour chacune le titre de l'application et pas uniquement un truc du style "une_appli.apk" comme j'ai déjà vu pas toujours parlant, surtout qu'on utilise pas forcément les mêmes applis de désinstallation.

Bien à vous.

C'est possible de desinstaller toutes les m*** en arrière plan ( appel en reco vocale, agenda toussa) ?

Lien vers le commentaire
Partager sur d’autres sites

C'est possible de desinstaller toutes les m*** en arrière plan ( appel en reco vocale, agenda toussa) ?

Pour certaines, oui. D'autres il ne faut pas les désinstaller sinon on risque de bloquer l'appareil ou provoquer de gros dysfonctionnements. Ce n'est pas toujours clair et qui fait quoi (j'ai actuellement 143 applis dites système, qui n'ont pas été installées par moi), c'est pourquoi le topic dont je parle serait très utile pour recueillir les infos.

Lien vers le commentaire
Partager sur d’autres sites

J'ai ajouté un lien pour les applications qu'on peut enlever sans soucis.

C'est un lien vers un post qui est lui-même une traduction de android-hilfe.de (allemand donc), et qui concerne du FroYo, mais je pense que ça ne doit pas être fondamentalement différent pour Eclair...

Lien vers le commentaire
Partager sur d’autres sites

Malheureusement c'est surtout une bonne nouvelle pour les prochains téléphones qui vont sortir. Il me semble qu'ils ne prévoient pas de s'occuper des téléphones existants. De plus ils conditionnent l'acceptation des opérateurs, et je ne sais pas du tout si les opérateurs sont vraiment chauds pour ce genre de choses...

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...