iOS越狱开发

Posted devileo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS越狱开发相关的知识,希望对你有一定的参考价值。

usbmuxd

使用usbmuxd可以通过USB线来ssh远程连接ios设备。

# 启动usbmuxd,将22端口映射到2222端口
$ python usbmuxd/python-client/tcprelay.py -t 22:2222

# ssh建立连接
$ ssh root@localhost -p 2222

# scp发送文件
$ scp -P 2222 file.ext root@localhost:~/file.ext

注意:usbmuxd 1.0.8版尚无法区分,始终连接最后一台接入电脑的iOS设备。

在iOS 11.1.x越狱的设备运行未签名的App

需要ssh连接设备,在设备上使用jtool对App进行签名。
使用jtool进行签名需要entitlement文件,该文件可以从jb目录中任意App中提取出来,也可以自己创建,但必须包含 platform-application 键并且值为 true

entitlement文件内容:

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>platform-application</key>
    <true/>
</dict>
</plist>

签名示例:

# 提取entitlement文件
$ jtool --ent /jb/usr/local/bin/jtool > plat.ent

# 对MyApp进行签名
$ jtool --sign platform --ent plat.ent --inplace MyApp

# root目录下是没有权限运行App的,需要将App移动到jb目录下
$ mv MyApp /jb/usr/local/bin/

# 运行MyApp
$ /jb/usr/local/bin/MyApp

注意:jtool无法对胖文件进行签名,请先对App进行瘦身再进行签名。鉴于iOS 11开始只能运行arm64的App,所以只需要提取出arm64架构的文件即可。

使用jtool提取arm64架构文件

# 从MyApp胖文件中提取arm64架构文件。
$ jtool -e arch -arch arm64 MyApp
# 提取出的文件将保存为MyApp.arch_arm64

iOS 11越狱后,如何利用从AppStore下载的ssh终端连接本机

由于直接连接会被拒绝,所以需要使用dropbear开放非22端口的ssh服务。
在电脑上ssh连接手机,输入以下命令。

dropbear -P/var/run/dropbear2.pid -p0.0.0.0:2222 -R --shell /jb/bin/bash

然后在手机上打开终端,连接localhost:2222即可。



以上是关于iOS越狱开发的主要内容,如果未能解决你的问题,请参考以下文章

iOS 越狱的Tweak开发

iOS越狱开发中遇到的坑

iOS越狱开发中遇到的坑

iOS越狱开发怎样将应用打包成.ipa文件

iOS越狱开发如何将应用打包成.ipa文件

ios 用xCode开发,怎么打包ipa包,在未越狱的iPhone上可以直接安装