theos tutorial

1.Install theos. (follow iphonedevwiki )

基本的にiphonedevwikiに沿う。
gitの方で説明する。

<update 1>
ashikaseさんがこのあたりの事を行うスクリプトを書いているので、それを使うと更に楽。
wget -q http://iphone-backgrounder.googlecode.com/svn/trunk/get_requirements.sh
とか。
curl -s http://iphone-backgrounder.googlecode.com/svn/trunk/get_requirements.sh
とかでDLして実行。
. ./get_requirements.sh

これで、wget/curlの確認、git/svnの確認、theosのDL、MobileSubstrate headerのDL、Activator libのDL、ldidのDL、dpkg-debの確認まで行ってくれる。
</UPDATE 1>

install git-osx-installer

iphonedevwikiにあるInstalling theosをこなす。

export THEOS=/opt/theos
git clone git://github.com/DHowett/theos.git $THEOS
curl -s http://dl.dropbox.com/u/3157793/ldid $THEOS/bin/ldid; chmod +x $THEOS/bin/ldid

theos自体のinstallはこれで終わり。

2.Install Header file.

class-dumpしたヘッダーファイルを入れるのだが、面倒だったのでここもgitで。
( ここはもうちょいスマートなやり方があるはず )

git clone git://github.com/rpetrich/iphoneheaders.git $THEOS/include_rpetrich
mv $THEOS/include_rpetrich/* $THEOS/include/


The headers for IOSurface is not free or open source, so they are not placed here.
Nevertheless, you can make a copy from Mac OS X:

とのことなので、Macからコピーする。

cp /System/Library/Frameworks/IOSurface.framework/Headers/IOSurfaceAPI.h $THEOS/include/IOSurface/

3.Modify theos makefile.

theosディレクトリのmakefileを修正する。

/opt/theos/makefiles/targets/Darwin/iphone.mk
  10行目:SDKVERSION ?= を適切なものに変更。

ちなみにprojectの作り方は/opt/theos/bin/nic.plを実行すればいい。
MobileSubstrateのdylib作るときは5 tweak。
SBSettings toggleの時は3 libraryとかだ。

4.Make

makeでxmファイルからmmファイルを生成してくれ、make packageでdylib,control,plist等を適切な位置へ配置、パッケージ化してくれる。この際、controlファイルのversionに変化がなければ、自動で-1,-2,-3とインクリメントしてくれる。


5.layout

project dir直下に'layout' dirを作り、ファイルを配置しておくとmake packageの際に取り込んでくれる。


6.make install

make
make package
ときて、最後は実機へのインストールmake install
環境変数にTHEOS_DEVICE_IPを設定しておけばscp転送、dpkg -i、respringまで行ってくれる(その度にパスワードを聞かれる)。
export THEOS_DEVICE_IP=192.168.xx.xx