Avagy mit lehet kezdeni az OS X boot logójával?
Pár napja tulajdonosa vagyok egy már-már múzeumba való kis csodának: 1990 novemberében gyártották, Macintosh Classic névre hallgat. Node erről majd máskor írok. Ezen a gépen még Mac OS 6 fut, amit szintén kivesézek majd máskor, most mindössze annyit szeretnék megemlíteni, hogy nagyon kedves ötletnek tartom, hogy induláskor egy kis Macintosh figura köszönt minket a képernyőn. Ez a jó szokás sajnos már “kiveszett” az OS X-ből, és ezt szerettem volna valahogy visszahozni.
Legkézenfekvőbb megoldásnak a boot logó kicserélése tűnt. De hogyan? A google mindössze egy találatot dobott, volt egy valaki, aki mindent áttanulmányozva arra jutott, hogy az induláskor használt apple logó a /System/Library/Coreservices mappában lévő boot.efi fájlban található. Ezt nem lehet módosítani, de rá lehet venni a rendszert, hogy ennek a másolatát használja bootoláskor.
Szóval adott a feladat: kikeresni a logót tartalmazó fájlrészt (data fork-ot
), és valahogy beletenni az új logót, amit persze jól kiterveztem, és megcsináltam. Igen ám, de ez nem olyan egyszerű dolog. Megnyitottam a boot.efi másolatát HexFiend-del, ami egy hexeditor program, elég jól használható. Tudtam a cikkből, hogy hol kell keresni a képet a soksok szám között.
Ráadásul a kép még RLE (run length encoding) tömörítéssel is kódolva volt
Az RLE tömörítés kb. arról szól, hogy nem egyenként tárolja el a pixelek színeit, hanem aszerint, hogy miből hány darab van egymás után, így például: fehérfehérfehérfehérfehérfeketefeketefeketefeketefehérfehér = 5xfehér4xfekete2xfehér.
Ötletes algoritmus. Soksok helyet meg lehet így spórolni.
Bonyolódik a helyzet. Tehát adott volt 1300valamennyi bájt, amit felülírhattam az új képpel. Ezért viszonylag egyszerűnek kellett lennie az ábrának. A mellékelt képen jól látszik a kétszínű ábra kódja (csak részlet) az 50-es szín jelöli ebben az esetben a sötétszürkét, a 01 a világosat. Ha elindulunk az elejétől ezt látjuk: 2A 50.
Ez egyenlő azzal, hogy 2A darab sötét színű pixel van egymás mellett. És így tovább…
Mivel hexában vagyunk, át kell számolni ezt a 16-os számrendszerbeli számot tizes számrendszerre: pl. 2A = 16+16+A(10) = 42. A képemen, ami 128×128 méretű lehet, én ezek után szépen elkezdtem pixelről pixelre leszámolni a színeket. Jó vicc
Jópár órán keresztül hexában pixelt számolni, aztán munka közben persze legalább 100x újraindítani a gépet, hogy megnézzem, hogy haladok, esetleg hibás-e a kirajzolt ábra. Vicces volt na! Aztán persze az eredeti verzióban nagyobbra terveztem a Mac ábrát, ami megnövelte jócskán a lépések számát, amivel ki lehetett volna rajzolni: emiatt nem lehetett befejezni, mert akkor már megváltozott volna a fájl hosszúsága, és nem tudott volna boot-olni a gép. (Rajzolás elölről, kisebb méretben
) Persze ez elő is fordult, elnéztem a méretet, és nézhettem nagyokat, mert nem indult a gép… Ilyenkor segítségül jött az install dvd, amivel ha újra beállítottam az indítólemezt, akkor minden rendbe jött, kijavíthattam a hibámat.
Végül gyümölcse termett a sok fáradozásomnak: készen lett az új logó! Nagyon örültem neki, és rögtön el is határoztam, hogy programozás-tanulás címén fogok majd csinálni egy olyan programot, persze Cocoa-ban, nanná, amivel ezt tudom megcsinálni, soksok óra pixeltologatás helyett.
Aztán ma még egyszer rákerestem a logócserére, erre mit ad Google? Hát ezt! BootXChanger. Hát kicsit leesett az állam, hogy ezt már kitalálták
Annak viszont nagyon örültem, hogy ez a program open-source, majd tanulmányozni fogom a kódját, érdekel mostanában ez a téma
Hirtelenjében le is fordítottam magyarra a programot, idő kérdése, és a letölthető verzió is tartalmazni fogja a magyar nyelvet, írtam már a készítőjének
Hát ennyi volt a jó kis történet, én jól szórakoztam, és végülis Happy End Mac lett a vége
A Mac Miniben sajnos még az átlagosnál is kevesebb memória van (legalábbis az alapmodellben csak 512 MB), emiatt szinte használhatatlan, ha egyszerre több program fut rajta egyszerre. Így hát elhatároztam, hogy kicserélem valamivel nagyobbra, hogy feldobjam a gép teljesítményét. A gépet nem valami egyszerű dolog szétkapni, de végülis sikerült! Ezzel a bejegyzéssel segíteni szeretnék a szerelésben mindazoknak, akik hozzám hasonlóan kevesellik a Mini memóriáját és bővíteni szeretnék.