美文网首页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程序。

    相关文章

      网友评论

      • 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