如何在arm linux平臺連接ios設(shè)備

在pc上,無論是windows還是linux都可以連接管理你的ios設(shè)備,那么如何去實現(xiàn)在arm平臺下與ios通信呢,其實你你需要把linux下的usbmuxd和libimobiledevice交叉編譯就可以了,管道就打通了,接下你也可以用ssh或ifuse。

編譯環(huán)境:

系統(tǒng):Linux 2.6.32-74-generic #142-Ubuntu SMP i686 GNU/Linux
交叉編譯器: arm-none-linux-gnueabi-gcc RDK: DVRRDK_04.00.00.03(沒有這個可以根據(jù)需要編譯自己需要的庫)
設(shè)備: arm linux板(dm368)+ ipone5s(ios8.3) +usb線

編譯步驟

環(huán)境配置


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. 先聲明上面的環(huán)境
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是一樣的?,F(xiàn)在通道已經(jīng)打通。

后續(xù)

采用上面的方法,你也可以編譯出
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

也許你需要繼續(xù) 編譯fuse 和ifuse ,那么你就可以去mount ios設(shè)備了。
文章參照 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的。 我只使用了發(fā)現(xiàn)設(shè)備連接設(shè)備(libplist usbmuxd),打通管道,你也可以編譯文章提到的其他工具,甚至寫個qt程序。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容