美文网首页Linux我用 LinuxLinux 相关文章
如何在arm linux平台连接ios设备

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

作者: 喵帕斯 | 来源:发表于2015-08-25 17:07 被阅读2206次

在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/usrexport HOST=arm-none-linux-gnueabiexport BUILD=x86_64-unknown-linux-gnuexport LD_LIBRARY_PATH=$PREFIX/libexport 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-logc. maked.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 muchSET(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程序。

相关文章

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

    在pc上,无论是windows还是linux都可以连接管理你的ios设备,那么如何去实现在arm平台下与ios通信...

  • Linux内核Device Tree介绍

    在比较老的Linux内核版本中(如:2.6.28),Linux内核的各种设备信息一般在arch\arm\mach-...

  • 设备树DTS使用总结-基于MT76X8

    一、Linux设备树的起源 在Linux 2.6中,arch/arm/plat-xxx和arch/arm/mach...

  • iOS设备支持的ARM平台

    ARM处理器,特点是体积小、低功耗、低成本、高性能,所以几乎所有手机处理器都基于ARM,在嵌入式系统中应用广泛。 ...

  • Qt5.7与tslib的交叉编译记录

     平台是itop-4412开发板,编译器是arm-2014.05-29-arm-none-linux-gnueab...

  • UPX /src/stub/Makefile 编译 armv7

    编译不同平台对应的 GCC 不同,这个是编译为 arm32,对应的 gcc 是 arm-linux-android...

  • ARM64汇编入门

    现在iOS设备几乎已经都是ARM64架构,此外,Mac M1芯片的电脑也是基于ARM64架构,本文对ARM64汇...

  • iOS ABI

    前言 我的博客 上篇文章介绍arm64程序调用规则,这篇介绍iOS平台上的特定规则。 iOS ABI 在iOS平台...

  • Android系统架构

    Linux内核层 Android平台的基础是Linux内核,这一层为Android设备的各种硬件提供底层的驱动,如...

  • iOS开发:获取设备信息

    开发iOS平台的应用的时候,可以获取iOS设备的设备信息,包括设备的名称,设备的机型,设备的iOS版本等等。设备信...

网友评论

  • S__L:大神你好,你这个方案可以实现将视频传输到iPhone上显示?那么可以用你这个方案做外设么?通过lightning接口连接一个你这种方案的外设,实现视频实时传输。
    喵帕斯:@S__L 这个需要你查一下了,我做嵌入式的,没写过ios,以前一个项目和ios的对接,是用上面方法实现的
    S__L:@喵帕斯 iOS内哪个类可以调用lightning接口?怎么接受lightning接口的数据呢?
    喵帕斯:@S__L 不好意思现在才看到消息,我不是大神,:flushed: 。 不过这个是可以,你可以容易简单的写个ios的播放器demo,去接收lightning接口传的数据,实现视频实时传输
  • 吴的浩:高手👍
  • blueshadow:2L一看就知道是SB~越狱什么不能做?作者这个是不基于越狱实现了越狱的需求,明显高大上几个档次
  • 竹林晓圣:我以前越狱的时候用shh还是很方便的,笑,那么作者的方法挂载了以后能做什么呢?还有,miku酱头像好评
    喵帕斯:@竹林晓圣 我是要通过usb把arm板子上的视频数据传给ios手机端 显示

本文标题:如何在arm linux平台连接ios设备

本文链接:https://www.haomeiwen.com/subject/jojqcttx.html