Mount iPhone in Linux using USB (ifuse, libiphone)
来源:互联网 发布:网络道德调查问卷 编辑:程序博客网 时间:2024/06/01 11:18
原贴地址:http://blog.zoomeren.nl/2009/03/24/mount-iphone-in-linux-using-usb-ifuse-libiphone/s
Finally, it’s working. Mounting the iPhone in Linux over USB. No stupid (ADHOC) wireless connection is required. It also works on non-jailbrroken iPhones. Though, the developers still say that only “developers” should use it. Of course there is still a problem accessing the Media iTunes library on the iPhone – the key Apple uses on the latest iPhone firmwares has still not been discovered. But instead of using the iPod software on the iPhone, I now use the very promissing pwnplayer which is able to play music from the iPod library on you iPhone, as well as MP’3 you copied to a directory on the iPhone. MewSeek, an application for musioc downloading, works very well together with pwnplayer. JPG images from the iPhone Photo Camara can also be accessed.
The project you need to mount the iPhone in Linux is called iFuse. iFuse is a module for the FUSE(Filesystem in Userspace) system. The project contains libiphone, which is used to access USB and does the lower level translations. Unfortunately, I could not find howto’s on the projects main website. But with some googling, I found the answers.
edit: iFuse is now providing DEB and RPM packages on there website now: iFuse. See /usr/share/doc/ifuse/README of their ifuse package for usage instructions.
- Install libiphone (as root)
git clone git://github.com/MattColyer/libiphone.git
- ./autgen.sh
- ./configure
- make
- make install
- Install iFuse (as user)
git clone git://github.com/MattColyer/ifuse.gi
- ./autgen.sh
- ./configure –prefix=/
- make
- make install
- Generate keys (as user)
- /usr/local/bin/libiphone-initconf
(This will generate some keys required to connect with the iPhone over USB)
- /usr/local/bin/libiphone-initconf
- Mount the iPhone’s root filesystem including the Media partition (as user)
- mkdir /mnt/iPhone (make sure you have write access to the mount mount)
- mount.fuse.ifuse –afc2 none /mnt/iPhone/ -s
(The -s options seem to be related to threading/locking issues and is a workaround)
- Or mount the iPhone’s Media partition only (as user)
- mount.fuse.ifuse none /mnt/iPhone/ -s
- Or mount as root
- mount mount none -t fuse.ifuse /mnt/iPhone
- Unmounting (as user)
- fusermount -u /mnt/iPhone
- Umounting (as root)
- umount /mnt/iPhone
I have been testing this on Ubuntu Intrepid. It would be nice to see GNOME GVFS to automount the iPhone over USB. After some investigation of this matter I must conclude that UDEV, HAL, DBUS, GVFSD, GVFSD-backends are used to do the automounting in GNOME – which is quite complicated – I could not find any scripting-hooks (or configuration options) in GVFSD to do some BASH magic and auto mount the iPhone in GNOME.
The performance, using Nautilus to copy data from/to the iPhone is:
- Write (computer-to-iPhone): ~750 KB/s
- Read (iPhone-to-computer): ~2.9 MB/s
Not bad – although writing is a bit slow compared to the avg-read time. The iPhone 2.0 seems to be connected over USB 2.0 (480 mbit/s):
T: Bus=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 27 Spd=480 MxCh= 0D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 3P: Vendor=05ac ProdID=1292 Rev= 0.01S: Manufacturer=Apple Inc.S: Product=iPhone
Alternatives:
- Mounting using SSH/SFTP over ADHOC wifi connection
- iTunnel using modified libiphone
Links:
- http://brandy25.blogspot.com/2009/02/mount-iphone-in-linux-via-usb.html
- https://help.ubuntu.com/community/PortableDevices/iPhone
A small script to mimic a bit the GNOME GVFS auto mounting function:
- Mount iPhone in Linux using USB (ifuse, libiphone)
- Using a USB Card Reader in Linux
- linux mount usb device
- How to Reset USB Device in Linux–using libusb
- Linux如何mount Usb盘
- mount iso image in linux
- linux环境下挂载(mount)USB设备
- Using USB Devices in a Virtual Machine
- Using Core Plot in an iPhone Application
- Linux: 挂载U盘 mount the USB on linux system
- Mount NAS Storage in Linux Overview 转载
- vmware下为linux挂载(mount) u盘(usb device)
- vmware下为linux挂载(mount) u盘(usb device)
- Using Assembly Language in Linux
- Using Assembly Language in Linux
- Using Assembly Language in Linux
- Using Spinlock in linux : Example
- analysis the usb in linux
- http://topic.csdn.net/u/20070324/11/94503224-c0bd-4516-8100-31fea48e718c.html?82806
- oracle10g 一个表里可添加的最大字段数
- JNI GetFieldID属性类型的判断
- http://topic.csdn.net/u/20110123/23/dbcdf487-5793-44fb-a0cf-54e9145a93c0.html?94220
- 图片透明等
- Mount iPhone in Linux using USB (ifuse, libiphone)
- 把数据导出Excel 出现异常:HRESULT:0x800A03EC 需要注意数据中的"="号
- svd好文
- 【转】STM32中断优先级相关概念
- HDU 1356 The Balance
- 新手学习DIV+CSS难点
- missing ';' before 'PCH creation point'
- MFC中CString,int,string,char * ,char[] 之间互转
- 如何在Mac上安装的Skype