TheOS JailBreak开发环境搭建步骤及常见问题QA
因为开发中会使用到相应的Frameworks、头文件以及编译工具等。Xcode可以去App Store安装,或直接到苹果官网下载相应版本,文本中涉及到的Xcode是4.6版本的。
打开Xcode->Preferences->Downloads,如下图所示安装Command Line Tools:
MacPorts是个软件包安装工具(类似Ubuntu下的apt-get),您也可以选择其他工具。使用类似的工具可以很方便的在Mac OS X平台安装一些常用软件。下载地址:www.macports.org。
使用MacPorts安装dpkg,命令如下:
sudo port install dpkg
TheOS官方环境配置教程:
http://iphonedevwiki.net/index.php/Theos/Getting_Started
首先配置环境变量,让TheOS在开发的时候能方便找到相关资源。在˜/.bash_profile或/etc/profile下添加一行:
export THEOS=/opt/theos
在这里这个目录路径是可任意选的,通常情况下都是放在这个目录下。
然后使用git或svn 下载到本地:
git clone https://github.com/DHowett/theos $THEOS
或
svn co http://svn.howett.net/svn/theos/trunk $THEOS
git和svn在安装Xcode和Command Line Tools中应该已经安装好了。
ldid是一个模拟签名的工具,可以直接从网上下已经编译好的版本,也可以自己编译。
自己编译:
git clone git://git.saurik.com/ldid.git
cd ldid
git submodule update --init
./make.sh
cp -f ./ldid $THEOS/bin/ldid
网上下载:
curl -s http://dl.dropbox.com/u/3157793/ldid > ~/Desktop/ldid
chmod +x ~/Desktop/ldid
mv ~/Desktop/ldid $THEOS/bin/ldid
越狱的iOS中使用Cydia安装软件,而Cydia是基于apt-get的。
添加软件源:
创建文件/etc/apt/sources.list.d/coredev.nl.list,内容为:
deb http://coredev.nl/cydia iphone main
创建文件/etc/apt/sources.list.d/howett.net.list,内容为:
deb http://nix.howett.net/theos ./
以root用户在命令行下执行如下:
apt-get update
apt-get install perl net.howett.theos
安装Theos(/var/thoes/)和perl。
$ $THEOS/bin/nic.pl
NIC 1.0 - New Instance Creator
------------------------------
[1.] iphone/application
[2.] iphone/library
[3.] iphone/preference_bundle
[4.] iphone/tool
[5.] iphone/tweak
Choose a Template (required): 1
Project Name (required): iPhoneDevWiki
Package Name [com.yourcompany.iphonedevwiki]: net.howett.iphonedevwiki
Authour/Maintainer Name [Dustin L. Howett]:
Instantiating iphone/application in iphonedevwiki/...
Done.
$
NIC(New Instance Creator)是创建与之对应的模板。详细请参考:
http://theos.howett.net/nic/
Makefile的编译与其他版本的类似,但有些细节不一样。详细请参考:
http://uv.howett.net/ipf.html
编译:
$ make
打包成deb:
$ package
安装到目标设备:
$ install
在进行install时,还是另外配置一个环境变量或者写在Makefile也行:
THEOS_DEVICE_IP=X.X.X.X // IP Address
这样在执行install命令时,就可自动安装到目标设备上去了。因为使用的是SSH连接目标设备,这过程中需要输入密码。如果嫌麻烦可以将SSH配置成无密码登录,可参考这里:http://geekswing.com/geek/unix/how-to-ssh-login-without-a-password-using-ssh-keygen-quick-tutorial/。
1. 在创建工程时注意Project Name和Package Name的输入,不要有空格和下划线之类的字符,会出现意想不到的错误。PS:一个空格引发的错误费了我两天时间,- -!。
export SDKVERSION=5.1
这里我使用的SDK是5.1版本的,越狱机的iOS也是5.1的,要对应。
在Makefile中添加如下:
XXX_FRAMEWORKS=UIKit Foundation
XXX请使用你的Project Name替换,如果有多个Framework要引入,以空格符分开列入即可。
要进行Tweak开发,还要另外下载并配置相关库。
cd $THEOS
curl -OL http://apt.saurik.com/debs/mobilesubstrate_0.9.3366-1_iphoneos-arm.deb
dpkg-deb -x mobilesubstrate_0.9.3366-1_iphoneos-arm.deb mobilesubstrate
cp mobilesubstrate/Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate ~/theos/lib/libsubstrate.dylib
cp mobilesubstrate/Library/Frameworks/CydiaSubstrate.framework/Headers/CydiaSubstrate.h include/substrate.h
相关资源包在这里:http://apt.saurik.com/debs/。
本文中选用的是mobilesubstrate_0.9.3366-1_iphoneos-arm.deb,您也可根据实际需要安装其他deb。
在使用iOS库的头文件时,Theos是没有安装的,要自行安装。这里有两个方法:下载别人已经提取好的和自己使用class-dump工具提取。
下载好心人提取好的头文件地址:https://github.com/rpetrich/iphoneheaders。将所有头文件放到$THEOS/include/目录下。
自己提取比较麻烦,要一个个Framework进行,示例如下:
class-dump -H /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk/System/Library/CoreServices/SpringBoard.app -o /Users/lkk/Desktop/Spring
这样在用户目录就会生产SPRINGBOARD目录。导出的.h都放到这了。