usbmuxd通过交叉编译移植到Android上(一)

本文介绍如何在Android上移植usbmuxd,包括配置Ubuntu下的NDK编译环境、创建编译规则文件、编译依赖库等步骤,并提供详细的命令及操作说明。

1、git clone http://git.libimobiledevice.org/usbmuxd.git

2、配置好ubuntu下ndk编译环境,配置好以后执行ndk-build会有如下的打印,证明配置ndk编译环境正确。

 3、编写.mk,在根目录下mkdir -p android/jni并创建如下:

4、编译依赖库如下,需要自己一一整理编译,后续章节会持续更新如何一一编译如下依赖库

include $(CLEAR_VARS)
LOCAL_MODULE := plist
LOCAL_SRC_FILES := ../libplist.a
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := usb1.0
LOCAL_SRC_FILES := ../libusb1.0.a
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := imobiledevice
LOCAL_SRC_FILES := ../libimobiledevice.a
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := usbmuxd
LOCAL_SRC_FILES := ../libusbmuxd.a
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := decrepit
LOCAL_SRC_FILES := ../libdecrepit.a
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := crypto
LOCAL_SRC_FILES := ../libcrypto.a
include $(PREBUILT_STATIC_LIBRARY)

 5、步骤3、4创建编译规则后,在jni目录执行ndk-build

 6、usbmuxd生成完,

     6.1 拷贝到android系统system/bin,

     6.2 并chmod 777 /system/bin/usbmuxd

     6.3 usbmuxd -v -f &,回车如下图表示移植OK

放假,出门在外,有时候没有WiFi,没法通过无线ssh到iOS中调程序,怎么办呢?好在大神Nikias Bassen(即@pimskeks5)写了个可以把本地OSX/Windows端口转发到远程iOS端口的工具usbmuxd16,使我们能够通过USB连接线ssh到iOS中,大大增加了ssh连接的速度,也方便了那些没有WiFi的朋友。下面我们就简单介绍下怎么使用神器usbmuxd。(注:以下操作在OSX中进行,Windows用户请自行安装python环境) 下载usbmuxd 从这里下载usbmuxd(http://cgit.sukimashita.com/usbmuxd.git/snapshot/usbmuxd-1.0.8.tar.gz),解压到本地。我们要用到的只有python-client目录下的tcprelay.py和usbmux.py两个文件,把它们放到同个目录下,如笔者的 /Users/snakeninny/Code/USBSSH/ 使用usbmuxd usbmuxd的用法比较简单,在Terminal中输入 /Users/snakeninny/Code/USBSSH/tcprelay.py -t 远程iOS上的端口:本地OSX/Windows上的端口 即可把本地OSX/Windows上的端口转发到远程iOS上的端口,如 /Users/snakeninny/Code/USBSSH/tcprelay.py -t 22:2222 可把本地的2222端口转发到iOS上的22端口,那么直接 ssh root@localhost -p 2222 即可ssh到iOS中。 使用场景举例 完全脱离WiFi,使用USB连接到iOS,用lldb调试SpringBoard。 i) 把本地2222端口转发到iOS的22端口 /Users/snakeninny/Code/USBSSH/tcprelay.py -t 22:2222 ii) ssh过去并用debugserver attach到SpringBoard ssh root@localhost -p 2222 debugserver *:1234 -a "SpringBoard" iii) 把本地1234端口转发到iOS的1234端口 /Users/snakeninny/Code/USBSSH/tcprelay.py -t 1234:1234 iv) 用lldb开始调试 lldb process connect connect://localhost:1234
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值