L’image de démarrage des Mac expliquée

Aujourd’hui, un peu de recherches archeologeek. Si on parlait de la  affichée au boot sur les Mac ? En fait, Apple n’a pas toujours utilisé une pomme sur fond gris, cette dernière est assez récente : elle date de Mac OS X Jaguar. Avant Jaguar, on avait un Macintosh souriant, le Happy Mac. Mais où est stockée cette image ?

Contrairement à ce que l’on pourrait penser, elle n’est pas stockée dans le firmware du Mac (Open Firmware ou EFI) mais bien sur le disque dur, dans le fichier de boot, BootX sur les PowerPC/Open Firmware, boot.efi dans le cas des Mac Intel. Le fonctionnement n’est pas exactement le même, mais c’est assez similaire dans les deux cas, le fichier contient une image modifiable manuellement.

Pour l’exemple, on va prendre le cas des PowerPC, pour une raison simple : les données sur le fichier BootX sont open source, ce qui simplifie un peu les choses pour la démonstration. Pour ceux qui veulent essayer avec un Mac Intel, c’est possible, et expliqué là. Attention quand même, si vous faites une erreur dans le fichier, le Mac ne démarrera plus, donc pensez à garder une copie bootable du système.

On va faire simple : on va aller directement chercher les fichiers chez Apple, dans les sources de BootX. On peut aussi (c’est expliqué là) aller chercher les données dans le fichier BootX directement, mais comme la position dépend de la version du fichier (et donc du système), c’est un peu plus compliqué.

Il y a plusieurs versions de BootX, mais pour ce qui nous intéresse, c’est plus simple : BootX-34 et BootX-36 contiennent les fichiers des anciennes versions de Mac OS X (jusqu’à 10.1) et toutes les autres versions contiennent les images classiques, apparues avec 10.2 Jaguar.

Prenons d’abord l’exemple de BootX-81. Il faut se rendre dans /bootx.tproj/sl.subproj/ et récupérer quelques fichiers. clut.h contient la table des couleurs, je vais y revenir, appleboot.h, failedboot.h et netboot.h contiennent des images.

Maintenant, l’exemple de BootX-36. Dans les mêmes dossiers, clut.h contient la table des couleurs, bad_system.h, happy_foot.h, happy_mac.h et images.h contiennent des images de démarrage.

Maintenant, essayons de récupérer les images.

Première chose, il faut coller les données de la table de couleurs (clut.h) dans un fichier .act. Vous allez obtenir un fichier de 768 octets.
Faites ensuite la même chose pour le contenu des autres fichiers .h, avec une extension .raw. Le fichier appleboot.raw fait par exemple 16 ko. Attention, certains fichiers contiennent plusieurs images (netboot.h par exemple) et il faut donc seulement récupérer une image et pas toute la séquence.

Pour ouvrir les fichiers, on a besoin de Photoshop. J’ai utilisé la trial d’une vieille version, mais ça doit passer avec d’autres programmes, je pense.

Dans l’ordre :

Ouvrir le fichier avec Photoshop (bien vérifier qu’on est en Photoshop RAW).
Vérifier les dimensions : certaines images ne sont pas carrées, les fichiers .h contiennent les dimensions exactes et Photoshop a tendance à m’inverser hauteur et largeur.

Attention aux dimensions

Attention aux dimensions

Faire Image -> Mode -> Indexed Color.
Faire Image -> Mode -> Color Table. Ensuite Load et choisir le fichier .act.

Exemples d’images récupérées (en PNG).

Happy Mac

Happy Mac


Apple Boot

Apple Boot


Bad System

Bad System


Failed Boot

Failed Boot


Happy Foot

Happy Foot


L'image de chargement

L’image de chargement


Mac OS X Server

Mac OS X Server

A noter que dans une vieille news sur MacBidouille, je suis tombé sur l’image de boot de certaines bêta de Mac OS X Jaguar qui est différente de la pomme de la version finale. Comme je n’ai pas la bêta en question, je ne peux pas extraire l’image.

Hello

Hello