続:eMac 800MHz に Leopard をインストールする(インストーラーをhackして無理矢理通す編1)

とりあえず、OSInstall.mpkgを書き換えてみる。
道具はLeopardMacBookには、インストールされていた。

MacBook:~ kinneko$ xar --version
xar 1.4

DVDをマウントして内容を確認する。
Finderからは4つの項目しか見えないが、容量を見てもこれだけでインストーラーが構成されているとは思えない。
Terminalを起動し、コマンドラインから確認してみる。見えなかったファイルが見える。

MacBook:~ kinneko$ cd /Volumes/Mac\ OS\ X\ Install\ Disc\ 1/
MacBook:Mac OS X Install Disc 1 kinneko$ 
MacBook:Mac OS X Install Disc 1 kinneko$ ls -l
total 20208
drwxrwxr-x@  3 kinneko  staff       102  8 16  2007 Applications
-rw-r--r--@  1 kinneko  staff         0  2 22  2008 Install Bundled Software Only
dr-xr-xr-x   3 kinneko  staff       102 11 25  2007 Install Mac OS X and Bundled Software.app
drwxr-xr-x@ 10 kinneko  staff       340  2 22  2008 Instructions.localized
drwxrwxr-t@ 11 kinneko  staff       374  2 21  2008 Library
drwxr-xr-x@ 12 kinneko  staff       408  2 22  2008 Optional Installs.localized
drwxr-xr-x@  4 kinneko  staff       136  2 21  2008 System
drwxrwxrwt@  2 kinneko  staff        68 11 25  2007 Volumes
drwxr-xr-x@ 40 kinneko  staff      1360  2 21  2008 bin
dr-xr-xr-x@  2 kinneko  staff        68  1 29  2008 dev
lrwxr-xr-x@  1 kinneko  staff        11  2 21  2008 etc -> private/etc
-rw-r--r--@  1 kinneko  staff  10276952  2  6  2008 mach_kernel
drwxr-xr-x@  5 kinneko  staff       170  2 21  2008 private
drwxr-xr-x@ 65 kinneko  staff      2210  2 21  2008 sbin
lrwxr-xr-x@  1 kinneko  staff        11  2 21  2008 tmp -> private/tmp
drwxr-xr-x@  8 kinneko  staff       272  2 21  2008 usr
lrwxr-xr-x@  1 kinneko  staff        11  2 21  2008 var -> private/var

改変のターゲットは、以下のファイル。

MacBook:Mac OS X Install Disc 1 kinneko$ ls -l System/Installation/Packages/OSInstall.mpkg 
-rw-r--r--  1 kinneko  staff  807080  2 22  2008 System/Installation/Packages/OSInstall.mpkg

作業ディレクトリを作成して、インストーラープログラムの一部をコピーする。

MacBook:Mac OS X Install Disc 1 kinneko$ mkdir ~/Documents/leopard_install
MacBook:Mac OS X Install Disc 1 kinneko$ cp System/Installation/Packages/OSInstall.mpkg ~/Documents/leopard_install/
MacBook:Mac OS X Install Disc 1 kinneko$ cd ~/Documents/leopard_install
MacBook:leopard_install kinneko$ 

ターゲットは、アーカイブされたファイルなので展開する。

MacBook:leopard_install kinneko$ file OSInstall.mpkg 
OSInstall.mpkg: data
MacBook:leopard_install kinneko$ xar -xvf OSInstall.mpkg 
Distribution
Resources
Resources/da.lproj
Resources/da.lproj/License.rtf
Resources/da.lproj/Localizable.strings
Resources/da.lproj/locversion.plist
Resources/da.lproj/VolumeCheck.strings
Resources/da.lproj/Welcome.rtfd
Resources/da.lproj/Welcome.rtfd/TXT.rtf
Resources/da.lproj/Welcome.rtfd/Welcome-PDF-HeaderRev1.png
Resources/Dutch.lproj
Resources/Dutch.lproj/License.rtf
Resources/Dutch.lproj/Localizable.strings
Resources/Dutch.lproj/locversion.plist
Resources/Dutch.lproj/VolumeCheck.strings
Resources/Dutch.lproj/Welcome.rtfd
Resources/Dutch.lproj/Welcome.rtfd/TXT.rtf
Resources/Dutch.lproj/Welcome.rtfd/Welcome-PDF-HeaderRev1.png
Resources/English.lproj
Resources/English.lproj/License.rtf
Resources/English.lproj/Localizable.strings
Resources/English.lproj/locversion.plist
Resources/English.lproj/VolumeCheck.strings
Resources/English.lproj/Welcome.rtfd
Resources/English.lproj/Welcome.rtfd/TXT.rtf
Resources/English.lproj/Welcome.rtfd/Welcome-PDF-HeaderRev1.png
Resources/fi.lproj
Resources/fi.lproj/License.rtf
Resources/fi.lproj/Localizable.strings
Resources/fi.lproj/locversion.plist
Resources/fi.lproj/VolumeCheck.strings
Resources/fi.lproj/Welcome.rtfd
Resources/fi.lproj/Welcome.rtfd/TXT.rtf
Resources/fi.lproj/Welcome.rtfd/Welcome-PDF-HeaderRev1.png
Resources/French.lproj
Resources/French.lproj/License.rtf
Resources/French.lproj/Localizable.strings
Resources/French.lproj/locversion.plist
Resources/French.lproj/VolumeCheck.strings
Resources/French.lproj/Welcome.rtfd
Resources/French.lproj/Welcome.rtfd/TXT.rtf
Resources/French.lproj/Welcome.rtfd/Welcome-PDF-HeaderRev1.png
Resources/German.lproj
Resources/German.lproj/License.rtf
Resources/German.lproj/Localizable.strings
Resources/German.lproj/locversion.plist
Resources/German.lproj/VolumeCheck.strings
Resources/German.lproj/Welcome.rtfd
Resources/German.lproj/Welcome.rtfd/TXT.rtf
Resources/German.lproj/Welcome.rtfd/Welcome-PDF-HeaderRev1.png
Resources/Italian.lproj
Resources/Italian.lproj/License.rtf
Resources/Italian.lproj/Localizable.strings
Resources/Italian.lproj/locversion.plist
Resources/Italian.lproj/VolumeCheck.strings
Resources/Italian.lproj/Welcome.rtfd
Resources/Italian.lproj/Welcome.rtfd/TXT.rtf
Resources/Italian.lproj/Welcome.rtfd/Welcome-PDF-HeaderRev1.png
Resources/Japanese.lproj
Resources/Japanese.lproj/License.rtf
Resources/Japanese.lproj/Localizable.strings
Resources/Japanese.lproj/locversion.plist
Resources/Japanese.lproj/VolumeCheck.strings
Resources/Japanese.lproj/Welcome.rtfd
Resources/Japanese.lproj/Welcome.rtfd/TXT.rtf
Resources/Japanese.lproj/Welcome.rtfd/Welcome-PDF-HeaderRev1.png
Resources/ko.lproj
Resources/ko.lproj/License.rtf
Resources/ko.lproj/Localizable.strings
Resources/ko.lproj/locversion.plist
Resources/ko.lproj/VolumeCheck.strings
Resources/ko.lproj/Welcome.rtfd
Resources/ko.lproj/Welcome.rtfd/TXT.rtf
Resources/ko.lproj/Welcome.rtfd/Welcome-PDF-HeaderRev1.png
Resources/no.lproj
Resources/no.lproj/License.rtf
Resources/no.lproj/Localizable.strings
Resources/no.lproj/locversion.plist
Resources/no.lproj/VolumeCheck.strings
Resources/no.lproj/Welcome.rtfd
Resources/no.lproj/Welcome.rtfd/TXT.rtf
Resources/no.lproj/Welcome.rtfd/Welcome-PDF-HeaderRev1.png
Resources/pl.lproj
Resources/pl.lproj/License.rtf
Resources/pl.lproj/Localizable.strings
Resources/pl.lproj/locversion.plist
Resources/pl.lproj/VolumeCheck.strings
Resources/pl.lproj/Welcome.rtfd
Resources/pl.lproj/Welcome.rtfd/TXT.rtf
Resources/pl.lproj/Welcome.rtfd/Welcome-PDF-HeaderRev1.png
Resources/pt.lproj
Resources/pt.lproj/License.rtf
Resources/pt.lproj/Localizable.strings
Resources/pt.lproj/locversion.plist
Resources/pt.lproj/VolumeCheck.strings
Resources/pt.lproj/Welcome.rtfd
Resources/pt.lproj/Welcome.rtfd/TXT.rtf
Resources/pt.lproj/Welcome.rtfd/Welcome-PDF-HeaderRev1.png
Resources/pt_PT.lproj
Resources/pt_PT.lproj/License.rtf
Resources/pt_PT.lproj/Localizable.strings
Resources/pt_PT.lproj/locversion.plist
Resources/pt_PT.lproj/VolumeCheck.strings
Resources/pt_PT.lproj/Welcome.rtfd
Resources/pt_PT.lproj/Welcome.rtfd/TXT.rtf
Resources/pt_PT.lproj/Welcome.rtfd/Welcome-PDF-HeaderRev1.png
Resources/ru.lproj
Resources/ru.lproj/License.rtf
Resources/ru.lproj/Localizable.strings
Resources/ru.lproj/locversion.plist
Resources/ru.lproj/VolumeCheck.strings
Resources/ru.lproj/Welcome.rtfd
Resources/ru.lproj/Welcome.rtfd/TXT.rtf
Resources/ru.lproj/Welcome.rtfd/Welcome-PDF-HeaderRev1.png
Resources/Spanish.lproj
Resources/Spanish.lproj/License.rtf
Resources/Spanish.lproj/Localizable.strings
Resources/Spanish.lproj/locversion.plist
Resources/Spanish.lproj/VolumeCheck.strings
Resources/Spanish.lproj/Welcome.rtfd
Resources/Spanish.lproj/Welcome.rtfd/TXT.rtf
Resources/Spanish.lproj/Welcome.rtfd/Welcome-PDF-HeaderRev1.png
Resources/sv.lproj
Resources/sv.lproj/License.rtf
Resources/sv.lproj/Localizable.strings
Resources/sv.lproj/locversion.plist
Resources/sv.lproj/VolumeCheck.strings
Resources/sv.lproj/Welcome.rtfd
Resources/sv.lproj/Welcome.rtfd/TXT.rtf
Resources/sv.lproj/Welcome.rtfd/Welcome-PDF-HeaderRev1.png
Resources/zh_CN.lproj
Resources/zh_CN.lproj/License.rtf
Resources/zh_CN.lproj/Localizable.strings
Resources/zh_CN.lproj/locversion.plist
Resources/zh_CN.lproj/VolumeCheck.strings
Resources/zh_CN.lproj/Welcome.rtfd
Resources/zh_CN.lproj/Welcome.rtfd/TXT.rtf
Resources/zh_CN.lproj/Welcome.rtfd/Welcome-PDF-HeaderRev1.png
Resources/zh_TW.lproj
Resources/zh_TW.lproj/License.rtf
Resources/zh_TW.lproj/Localizable.strings
Resources/zh_TW.lproj/locversion.plist
Resources/zh_TW.lproj/VolumeCheck.strings
Resources/zh_TW.lproj/Welcome.rtfd
Resources/zh_TW.lproj/Welcome.rtfd/TXT.rtf
Resources/zh_TW.lproj/Welcome.rtfd/Welcome-PDF-HeaderRev1.png

Distributionというファイルと、Resourcesディレクトリが展開される。
Distributionを編集する。

MacBook:leopard_install kinneko$ vi Distribution 

Distribution は、948行のスクリプトファイルである。
checkSupportedMachine()でマシンのチェックをしている。
クロックスピードのチェックをしているのは以下の部分だ。

                // require 867Mhz+
                if (system.sysctl("hw.cpufrequency") < 866000000) {
                        return false;
                }

すべてコメントアウトして保存する。

                // require 867Mhz+
                // if (system.sysctl("hw.cpufrequency") < 866000000) {
                //      return false;
                // }

展開したファイルを再びアーカイブしておく。

MacBook:leopard_install kinneko$ rm OSInstall.mpkg 
MacBook:leopard_install kinneko$ xar -cvf ../OSInstall.mpkg .
MacBook:leopard_install kinneko$ rm -r Distribution Resources/
MacBook:leopard_install kinneko$ mv ../OSInstall.mpkg ./
MacBook:leopard_install kinneko$ ls -l
total 1688
-rw-r--r--  1 kinneko  staff  862678  5  4 22:55 OSInstall.mpkg


DVDをイメージコピーして編集し、再度起動可能なDVD-Rを作成する手もあるが、容量が大きく、2層のメディアが必要だったりするのでメンドクサイ。
そこで、ハードディスクからいきなりインストールを行うことにする。
手元にFireWireドライブがあったので、新しいドライブをセットしてフォーマットする。
そこにDVDの内容をコピーし、改変したファイルを上書きする。


この項、未完。続く。