Aller au contenu

Rajouter une entrée dans le bootloader


KIRGO

Recommended Posts

Bonjour,

Ayant fait un peu de linux embarqué en cours, je me suis intéressé à titre personnel au boot d'android.

Mon objectif serait de rajouter une entrée dans le bootloader d'android (lorsqu'on démarre en fastboot mode, rajouter d'autres options que "start", "recovery", "restart bootloader"...). Ainsi, on pourrait faire réellement du dual boot.

J'ai donc récupéré le code source d'android, mais je n'arrive pas à trouver le code source du bootloader, par exemple pour le nexus 4. J'ai trouvé dans le code source le morceau de code chargé de générer les informations qui apparaissent sur l'écran du bootloader: l'appareil, la version du bootloader, ce genre de chose, mais pas la configuration du bootloader en lui-même.

Il n'existe visiblement aucun fichier similaire au menu.lst de grub legacy par exemple.

Quelqu'un dispose-t-il de plus d'informations sur le bootloader du nexus 4? J'aimerais trouver son code source, merci d'avance =)

KIRGO

EDIT: Je suis tombé sur un petit sujet sympa sur xda, mais je ne sais pas si je vais réussir à décompacter le .img, j'ai déjà réussi avec le boot.img avec des scripts en perl, mais là...

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

Bon, j'ai finalement réussi à décompacter ce fichier-là: bootloader-mako-makoz10o.img, je vous fais part des infos que j'ai trouvé à propos du bootloader du coup:

Le header est composé d'une chaîne de 8 caractères, suivi de 3 Unsigned int :

# char magic[bOOTLDR_MAGIC_SIZE];

# unsigned int num_images;

# unsigned int start_offset;

# unsigned int bootldr_size;

Le BOOTLDR_MAGIC_SIZE vaut 8, pour contenir la string 'BOOTLDR !'

La taille totale du header vaut donc 20 bytes (1*8 + 3*4)

En ouvrant le bootloader.img en hexadécimal, on a donc les informations suivantes :

num_images = 6

start_offset = 512

bootldr_size = 2240208

Le header est suivi par des informations concernant chaque image

# struct {

# char name[64];

# unsigned int size;

# } img_info[];

La structure totale vaut donc 68 bytes, on en déduit donc les informations suivantes :

Les 6 images se nomment :

  1. sbl1
  2. sbl2
  3. sbl3
  4. tz
  5. rpm
  6. aboot

Pour cette version du bootloader, les valeurs de ces différentes parties sont les suivantes: (attention, elles sont spécifiques au fichier bootloader-mako-makoz10o.img!!)

taille de sbl1 : 94440

taille de sbl2 : 145448

taille de sbl3 : 1430152

taille de tz : 190572

taille de rpm : 144892

taille de aboot : 234704

La somme de toutes ces parties fait bien 2240208

La taille totale du fichier bootloader-mako-makoz10o.img vaut 2240720, le header fait donc bien 512 comme cela est indiqué dans la variable start_offset

Je finalise mon script Perl (mon premier script en Perl xD) et je le diffuserai, si jamais ça peut servir à quelqu'un.

Le seul truc vraiment intéressant que j'ai pu trouver en explorant tout cela, c'est à propos de la partie "aboot": il existe en effet un bootloader développé par Google et par les personnes du forum Code Aurora, qui a été développé pour la tablette Touchpad de HP à partir du "little kernel" de Travis Geiselbrecht. Ce bootloader s'appelle "moboot" pour Mobile Open Bootloader, et il avait pour ambition d'être utilisé pour d'autres appareils. Depuis, grand silence. Je suis tombé dessus, car il existe un fichier "aboot.c" dans l'arborescence de ce projet, je vous laisse vous amuser:

https://code.google..../source/browse/

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

  • 3 months later...
Invité Américo Da Silva

salut,

un sujet qui m'interpelle au plus haut point en ce moment.

En effet, voulant flasher une rom cyanogenmod dernièrement, quelle ne fût pas ma surprise en apprenant que mon bootloader est indéverrouillable!!!

Réponse d'un agent infiltré du constructeur ;)

Les mobiles avec roms opérateur n'ont en effet pas de bootloader dé-verrouillable.

Nous ne pouvons pas intervenir, c'est une demande de leur part.

Si vous souhaitez utiliser votre smartphone de manière avancée il est conseillé de s'orienter vers des modèles nus, qui eux seront ouverts.

Pour répondre à vos questions, nous ne sommes pas autorisés à effectuer de changement de statut à l'heure actuelle.

Je n'ai pas d'informations concernant un éventuel changement de cette politique, mais le plus simple serait de leur demander directement. Les ententes ne se font pas entre Sony et les opérateurs, mais bien entre les opérateurs et leurs clients, de notre côté si on nous demande d'ouvrir les parcs nous n'avons rien contre.

Que pensez de cette “politique" qui ne me permet pas d'utiliser mon appareil librement et qui m'attache définitivement à un opérateur (y compris hors simlockage et hors garantie évidemment)? Que pensez d'un constructeur qui renvoie l'utilisateur chez l'opérateur alors que cela concerne un problème matériel?

Je comprends que l'opérateur veuille protéger son logiciel mais moi, je ne veux pas de son logiciel (pas plus que celui du constructeur), je souhaite juste récupérer le matériel que j'ai acheté.

auriez-vous une solution pour que je puisse utiliser mon matériel librement et supprimer ou modifier ce bootloader non-déverouillable?

Merci de vos réponses. Cheers.

PS: voici un lien pour déverouiller les bootloaders déverouillable (et oui, ça ne s'invente pas) http://unlockbootloader.sony

et un autre, qui propose même une rémunération pour cette mission impossible http://forum.xda-dev/sht=2287897 :D

Modifié par Américo Da Silva
Lien vers le commentaire
Partager sur d’autres sites

  • 1 month later...
Invité Américo Da Silva

Oui c'est même étrange, le noyau d'amorçage (bootloader) devrait passionner tout le monde car c'est le modérateur du système (si l'on compare avec la hiérarchie d'un forum) et personne ne s'y intéresse, voir ne connais même pas son existence surpris_2.gif

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...