文档章节

如何在arm linux平台连接ios设备

喵帕斯_QAQ
 喵帕斯_QAQ
发布于 2015/08/25 16:58
字数 734
阅读 399
收藏 2

在pc上,无论是windows还是linux都可以连接管理你的ios设备,那么如何去实现在arm平台下与ios通信呢,其实你你需要把linux下的usbmuxd和libimobiledevice交叉编译就可以了,管道就打通了,接下你也可以用ssh或ifuse。

#编译环境:

系统:Linux  2.6.32-74-generic #142-Ubuntu SMP i686 GNU/Linux
交叉编译器: arm-none-linux-gnueabi-gcc
RDK: DVRRDK_04.00.00.03(没有这个可以根据需要编译自己需要的库)

设备: arm linux板(dm368)+ ipone5s(ios8.3) +usb线

#编译步骤 ##环境配置


 export PREFIX=/opt/dvrrdk/DVRRDK_04.00.00.03/ti_tools/cgt_a8/arago/linux-devkit/arm-arago-linux-gnueabi/usr
export HOST=arm-none-linux-gnueabi
export BUILD=x86_64-unknown-linux-gnu
export LD_LIBRARY_PATH=$PREFIX/lib

export PKG_CONFIG_PATH=$LD_LIBRARY_PATH/pkgconfig

##libusb

Package: libusb-1.0.8.tar.bz2

a. 先声明上面的环境


b. ./configure --build=$BUILD --host=$HOST --prefix=$PREFIX --disable-static --disable-log

c. make

d.make install

##libplist

Package: libplist-1.3.tar.bz2

这个需要用cmake编译,自己写一个toolchain.cmake 修改交叉编译变量


# this one is important
SET(CMAKE_SYSTEM_NAME Linux)
#this one not so much
SET(CMAKE_SYSTEM_VERSION 1)

# specify the cross compiler
SET(CMAKE_C_COMPILER   /opt/arm-2009q1/bin/arm-none-linux-gnueabi-gcc)
SET(CMAKE_CXX_COMPILER  /opt/arm-2009q1/bin/arm-none-linux-gnueabi-g++)

# where is the target environment 
SET(CMAKE_FIND_ROOT_PATH  /opt/dvrrdk/DVRRDK_04.00.00.03/ti_tools/cgt_a8/arago/linux-devkit/arm-arago-linux-gnueabi/usr)

# search for programs in the build host directories
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
# for libraries and headers in the target directories
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

然后在源码目录下 新建build文件夹

mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchain.cmake ..  
make DESTDIR=$PREFIX install

##usbmuxd

Package: usbmuxd-1.0.4.tar.bz2

编译方法和libplist是一样的。

现在通道已经打通。 ##后续 采用上面的方法,你也可以编译出 libgpg-error

Package: libgpg-error-1.7.tar.gz

libgcrypt

Package: libgcrypt-1.4.6.tar.gz

libtans1

Package: libtasn1-2.7.tar.gz

gnutls

Package: gnutls-2.8.6.tar.bz2 需要修改一下src/makefile 的LDFLAGS 值

LDFLAGS=/opt/dvrrdk/DVRRDK_04.00.00.03/ti_tools/cgt_a8/arago/linux-devkit/arm-arago-linux-gnueabi/usr/lib/libgcrypt.so /opt/dvrrdk/DVRRDK_04.00.00.03/ti_tools/cgt_a8/arago/linux-devkit/arm-arago-linux-gnueabi/usr/lib/libgpg-error.so

##libimobiledevice

新建一个build.sh

./configure --build=$BUILD --host=$HOST --prefix=$PREFIX  libusbmuxd_CFLAGS="-I$PREFIX/include" libusbmuxd_LIBS="-L$PREFIX/lib" libgnutls_CFLAGS="-I$PREFIX/include" libgnutls_LIBS="-L$PREFIX/lib" libtasn1_CFLAGS="-I$PREFIX/include" libtasn1_LIBS="-L$PREFIX/lib" libplist_CFLAGS="-I$PREFIX/include" libplist_LIBS="-L$PREFIX/lib" libglib2_CFLAGS="-I$PREFIX/include -I$PREFIX/lib/glib-2.0/include" libglib2_LIBS="-L$PREFIX/lib" --without-swig LDFLAGS="-L/opt/dvrrdk/DVRRDK_04.00.00.03/ti_tools/cgt_a8/arago/linux-devkit/arm-arago-linux-gnueabi/usr/lib -L/opt/dvrrdk/DVRRDK_04.00.00.03/ti_tools/cgt_a8/arago/linux-devkit/arm-arago-linux-gnueabi/usr/usr/local/lib -lusbmuxd " CFLAGS="-I/opt/dvrrdk/DVRRDK_04.00.00.03/ti_tools/cgt_a8/arago/linux-devkit/arm-arago-linux-gnueabi/usr/usr/local/include -I/opt/dvrrdk/DVRRDK_04.00.00.03/ti_tools/cgt_a8/arago/linux-devkit/arm-arago-linux-gnueabi/usr/include"
sh build.sh
make

make install


也许你需要继续 编译fuse 和ifuse ,那么你就可以去mount ios设备了

文章参照 Mounting an iPod/iPhone on a Linux device http://paguilar.org/?p=31

##补充说明

上面usbmuxd的1.0.4版本不支持ipone5s 的ios8.3,又试了usbmuxd 1.0.7 是ok的。 我只使用了发现设备连接设备(libplist usbmuxd),打通管道,你也可以编译文章提到的其他工具,甚至写个qt程序。

© 著作权归作者所有

喵帕斯_QAQ
粉丝 0
博文 11
码字总数 5536
作品 0
海淀
程序员
私信 提问
KDE 将支持 Android 和 iOS 的智能移动设备

KDE,最流行的Linux桌面之一,已经将目标锁定在了智能手机和平板电脑上的Android和苹果的iOS。 Plasma Active 不像Android, iOS, 或者webOS 操作系统。他是KDE 4.x 风格界面和应用开发接口(...

小卒过河
2011/10/11
1K
10
【AR】开始使用Vuforia开发iOS(2)

原 设置iOS开发环境 安装Vuforia iOS SDK 如何安装Vuforia iOS示例 编译并运行Vuforia iOS示例 支持iOS金属 iOS 64位迁移 设置iOS开发环境 适用于iOS的Vuforia引擎目前支持运行iOS 9及更高版...

lichong951
2018/06/11
0
0
iOS 6.x 完美越狱教程 附分流地址

在万众期待之下,越狱团队 Evad3rs 正式发布了 iOS 6 完美越狱工具 Evasi0n;该工具覆盖 Mac OS X、Windows、Linux 全平台,兼容所有运行有 iOS 6 至 iOS 6.1 移动操作系统的设备,成为了首款...

鉴客
2013/02/05
491
6
2017 年度十大最受欢迎的浏览器,你在用哪一款?

人们总是希望他们的浏览器的速度可以达到最快,所以,一个好的浏览器应该可以扩展和有丰富的插件。这里总结了2018年最受欢迎的互联网浏览器。注意:不按照任何优先顺序排名。 1.谷歌浏览器 ...

周其
2018/01/22
19.6K
43
RAD Studio产品经理爆的开发路线图

我们都在等待Delphi路线图,现在可以先看一个RAD Studio产品经理最新提供的“路线图预览”。 1. FireMonkey经常和定期更新 2. 下一代Delphi编译器生成多种硬件/操作系统的目标文件 3. 下一代...

mychinashare
2011/09/22
503
3

没有更多内容

加载失败,请刷新页面

加载更多

经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
14分钟前
7
0
使用logstash同步MySQL数据到ES

概述   在生成业务常有将MySQL数据同步到ES的需求,如果需要很高的定制化,往往需要开发同步程序用于处理数据。但没有特殊业务需求,官方提供的logstash就很有优势了。   在使用logstas...

zxiaofan666
24分钟前
6
0
X-MSG-IM-分布式信令跟踪能力

经过一周多的鏖战, X-MSG-IM的分布式信令跟踪能力已基本具备, 特点是: 实时. 只有要RX/TX就会实时产生信令跟踪事件, 先入kafka, 再入influxdb待查. 同时提供实时sub/pub接口. 完备. 可以完整...

dev5
34分钟前
6
0
OpenJDK之CyclicBarrier

OpenJDK8,本人看的是openJDK。以前就看过,只是经常忘记,所以记录下 图1 CyclicBarrier是Doug Lea在JDK1.5中引入的,作用就不详细描述了,主要有如下俩个方法使用: await()方法,如果当前线...

克虏伯
37分钟前
6
0
实战项目-学成在线(八)

在前后端分离架构中,服务层被拆分成了很多的微服务,微服务的信息如何管理?Spring Cloud中提供服务注册中心来管理微服务信息。 注册中心作用: 1、微服务数量众多,要进行远程调用就需要知...

lianbang_W
38分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部