您的位置:首页 > 大数据 > 人工智能

TheOS JailBreak开发环境搭建步骤及常见问题QA

2014-01-03 18:42 405 查看
TheOS JailBreak开发环境搭建步骤及常见问题QA

安装Xcode

因为开发中会使用到相应的Frameworks、头文件以及编译工具等。Xcode可以去App Store安装,或直接到苹果官网下载相应版本,文本中涉及到的Xcode是4.6版本的。

安装Command Line Tools

打开Xcode->Preferences->Downloads,如下图所示安装Command Line Tools:



安装MacPorts

MacPorts是个软件包安装工具(类似Ubuntu下的apt-get),您也可以选择其他工具。使用类似的工具可以很方便的在Mac OS X平台安装一些常用软件。下载地址:www.macports.org

安装dpkg

使用MacPorts安装dpkg,命令如下:
sudo port install dpkg

安装TheOS和ldid

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上安装环境

越狱的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。

简单示例(Mac OS X)

$ $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:一个空格引发的错误费了我两天时间,- -!。

在环境变量或Makefile中加入一行,指定使用的iOS SDK版本:

export SDKVERSION=5.1
这里我使用的SDK是5.1版本的,越狱机的iOS也是5.1的,要对应。

在开发过程中如果某个符号定义没的找到,请确保加入了相对应库的引入,引入库方法:

在Makefile中添加如下:
XXX_FRAMEWORKS=UIKit Foundation
XXX请使用你的Project Name替换,如果有多个Framework要引入,以空格符分开列入即可。

Tweak或MobileSubstrate开发

要进行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都放到这了。

参考

http://www.cppblog.com/AutomateProgram/archive/2013/11/11/204205.html
http://www.andyibanez.com/64-how-to-create-mobilesubstrate-tweaks-for-ios
http://iphonedevwiki.net/index.php/Theos/Getting_Started
http://www.devdiv.com/home.php?mod=space&uid=54&do=blog&id=7596
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: