Quand Apple voulait changer l’image de démarrage du Mac

Jouons encore avec les bêtas de Mac OS X. J’en ai déjà parlé, l’image qui apparaît au démarrage est une  depuis Mac OS X Jaguar, alors qu’auparavant, c’était un Mac souriant, le « Happy Mac ». Entre les deux, Apple a testé au moins une autre image. Il s’agissait d’un Mac souriant plus stylisé, avec un message sous ce dernier. Et je me suis mis en tête de récupérer cette image.
screen - copie

L’image de démarrage en question. je n’ai pas réussi à faire une vidéo correcte avec ma carte d’acquisition, donc c’est filmé avec l’iPhone.

Première tentative, utiliser les programmes capables de modifier l’image. Peine perdue : ils ne prennent en charge Jaguar qu’après la version finale.

J’ai donc tenté à la main (et réussi). Première chose, donc récupérer un fichier BootX sur un CD de boot d’une vieille bêta, la 6C92 ou la 6C98.

Ensuite, il a fallu réfléchir. La structure est simple : on a une table de couleurs de 768 octets, suivie des images. En cherchant un peu, j’ai trouvé que toutes les tables utilisées commençaient par FFFFFF. J’ai eu de la chance : cette suite d’octets n’était présente que trois fois dans le fichier. Une seule semblait correspondre à une table de couleurs, elle a donc été sauvée.

Seconde étape, récupérer l’image. C’est assez compliqué, parce qu’il s’agit d’une image en format brut (raw). En gros, il faut connaître la taille exacte en pixels pour placer les pixels correctement.

J’ai d’abord essayé de délimiter la zone contenant l’image. Ca a été assez simple : j’ai utilisé des fichiers BootX contenant des images connues pour déterminer quand terminait l’image, en supposant que les données étaient placées de la même façon dans tous les cas. Bonne pioche, j’ai récupéré une zone qui semblait correspondre.

Ensuite, j’ai eu plus de mal : ça ne semblait pas fonctionner. J’avais bien ce qui ressemblait à des images, mais impossible d’obtenir un truc propre. J’ai donc procédé empiriquement : comme je connaissais l’image à trouver, j’ai supposé qu’on avait une ligne vide, quelques pixels blancs, des gris, puis une ligne noire. J’ai découpé le début de l’image présumé, en prenant une largeur en pixels au hasard, en estimant par rapport aux autres images de démarrage qu’elle devait mesurer entre 40 et 80 pixels.

Après quelques essais empirique à base de copier/coller, conversions en hexadécimal, passage dans Photoshop et autres changements de tables de couleurs, j’ai trouvé la bonne valeur : 52 pixels de large. Ensuite, j’ai augmenté progressivement la hauteur, pour trouver l’image.

Là, j’ai eu un souci : premièrement, la taille de l’image en octets ne correspondait pas à une largeur de 52 pixels. Deuxièmement, le texte « hello » au démarrage était plus large que l’image du Mac. Troisièmement, je n’obtenais pas le texte « hello ».

En cherchant un peu, je me suis rendu compte que mon « image » était en fait composée de plusieurs images. En tâtonnant un peu, j’ai trouvé qu’il y avait le Mac souriant (52 x 44) suivi d’une série d’images. En cherchant encore un peu, je me suis rendu compte d’une chose simple : l’image « hello » et la boule qui tourne ne sont tout simplement pas dans le fichier BootX…

Au final, après un passage dans Photoshop pour convertir l’image correctement (cf. explications), voici le Mac souriant qu’Apple n’a finalement pas utilisé.

Un Mac souriant

Un Mac souriant

Pour le texte « hello » et pour la boule de plage (ou la pizza, comme vous voulez), c’est (a priori) stocké dans un autre fichier, mais avec la même structure. Les images sont en fait stockée directement dans le noyau de Mac OS X (mach_kernel). Etant donné que le fichier est beaucoup plus gros, ma méthode empirique pour récupérer les fichiers RAW est à oublier. On peut remarquer assez facilement que les images ne sont pas stockées au même endroit : le texte et la boule apparaissent avec un petit retard, et ils ne sont pas présents quand on démarre en mode Verbose.

Il doit être possible de récupérer les données, un internaute en parle, mais ça dépasse franchement mes compétences.

Point amusant à noter, les utilisateurs râlent toujours autant, preuve en est ce sujet de forum sur la disparition du « Happy Mac » original.

Bilan du truc ? Il m’a fallu une grosse soirée (et une bonne demi-nuit…) pour récupérer l’image, mais c’est fait. Petit truc amusant, la personne qui avait découvert comment changer la  à l’époque de la sortie de la version finale de Jaguar avait visiblement cherché comme moi, en tâtonnant un peu.