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

来源:互联网 发布:linux 驱动 编辑:程序博客网 时间:2024/04/30 04:23

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

  1. 安装Xcode

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


  1. 安装Command Line Tools

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



  1. 安装MacPorts

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


  1. 安装dpkg

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

sudo port install dpkg


  1. 安装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


  1. 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。


  1. 简单示例(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. 注意事项

1. 在创建工程时注意Project Name和Package Name的输入,不要有空格和下划线之类的字符,会出现意想不到的错误。PS:一个空格引发的错误费了我两天时间,- -!。

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

export SDKVERSION=5.1

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

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

在Makefile中添加如下:

XXX_FRAMEWORKS=UIKit Foundation

XXX请使用你的Project Name替换,如果有多个Framework要引入,以空格符分开列入即可。


  1. 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。


  1. 头文件的引用

在使用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都放到这了。


  1. 参考
  1. http://www.cppblog.com/AutomateProgram/archive/2013/11/11/204205.html
  2. http://www.andyibanez.com/64-how-to-create-mobilesubstrate-tweaks-for-ios
  3. http://iphonedevwiki.net/index.php/Theos/Getting_Started
  4. http://www.devdiv.com/home.php?mod=space&uid=54&do=blog&id=7596
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 微信支付密码忘了怎么办没银行卡 中行5月扣很多钱是怎么办 中银淘宝校园卡影响征信问题怎么办 中银E盾快到期了怎么办 京东e卡电子卡卡密泄漏怎么办 买错了京东e卡怎么办 京东购买手机激活后有问题怎么办 优购m9锁屏密码忘记了怎么办视频 中百仓储的购物卡过期了怎么办 武汉中百超市购物卡过期怎么办 已认证抵扣的发票发生退货怎么办 京东白条分期买手机额度不够怎么办 京东白条闪付手机不支持开通怎么办 拼多多不小心下两次单付款了怎么办 不小心给了京东快递差评怎么办 京东金融不小心卸载了怎么办 如果京东快递不小心完成订单怎么办 订机票时没有用常旅客卡怎么办 京东退货退款卖家已签收了怎么办 京东账号手机号换了密码忘了怎么办 qq飞车手游录像下载失败怎么办 手机知道qq号怎么破解密码怎么办 网上购物已付钱迟迟不发货怎么办 有人冒充微信头像和熟人借钱怎么办 微信红包输了50多万怎么办 脖子里的绳结接口磨脖子怎么办 母比格犬生了小狗毛色变了怎么办 母比格犬生了小狗毛色很差怎么办 貂皮大衣上的暗扣掉了怎么办 呢子夹克袖子长但又不想改短怎么办 黑色的衣服熨的有点发亮怎么办 宿管阿姨工作中与学生起冲突怎么办 中通快递发的衣服不合适怎么办 加盟母婴店如果不干了货怎么办 双十一搞活动买的东西退货怎么办 天猫预售30天不发货怎么办 天猫搞活动的商品总不发货怎么办 淘宝买的东西物流把货物损坏怎么办 苹果手机5s每部存满怎么办 天猫退货分开发货退的话怎么办 淘宝优惠券电脑端显示不出来怎么办