圍紀實驗室

這篇一年前的週誌提到可以用 iTools -- which only supports Windows and Mac OS -- 來存取 iDevices (iPad or iPhone)裡頭的 Apps folders -- 例如拷貝出來自 PPTV 或『風行網』下載的影片。在 Ubuntu 等 Linux 系統則可以安裝 ifuse 來掛載各個 App 的檔案夾,然後再做檔案處理。

Installing ifuse[]

在仍然由 Ubuntu 維護的版本(如目前的 Ubuntu 12.04)上面,只須執行下列命令列,即可完成安裝 ifuse:

sudo apt-get update
sudo apt-get install ifuse

但是在 Ubuntu 不再維護的版本(如 Ubuntu 11.04)上面,則需要參考這篇教學文章來安裝 ifuse。這裡就把該文所提供的步驟貼在下面:

  • Step 1

Open up a terminal (don't panic, just copy and paste) and type

gksu gedit /etc/apt/sources.list

to open Your sources list

  • Step 2

Add the following code to your sources list

deb http://ppa.launchpad.net/jonabeck/ppa/ubuntu natty main
deb-src http://ppa.launchpad.net/jonabeck/ppa/ubuntu natty main

Change natty to the release you are using if that's not it. Save and exit your sources list.

  • Step 3

Type the following commands into the terminal again

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com F0876AC9
sudo apt-get update
sudo apt-get install ifuse

That's it.

2013-10-23 註記
昨天發現以上所提的 jonabeck 的 iFuse PPA for Ubuntu 11.04 被移除了。
(可以 check http://ppa.launchpad.net/jonabeck/ppa/ubuntu/dists/ 來確認)
然而可以另外從這裡 download iFuse v1.1.1-2 package for Ubuntu 11.04 然後用 dpkg -i 來安裝
另外,若要在 Ubuntu 11.04 用 apt-get 裝 djmount 的話,必須先下載並安裝 libupnp3_1.6.6-5 package 然後再執行 sudo apt-get install djmount 就完成了。
以上相關的 Ubuntu 11.04 packages (.deb files)已打包上傳到 這個 Dropbox link

Running ifuse[]

下面是一個掛載 iPad 裡面的 PPTV app 的 Document 文件夾的例子:

mkdir -p /tmp/ipad/pptv
ifuse /tmp/ipad/pptv --appid com.pptv.ipadwebkit

(com.pptv.ipadwebkit 這個 App ID 可以從 ~/.gvfs/ 目錄下面的《我的 iPad 上的文件》子目錄中查得。另外,注意並不須要以 sudo 執行 ifuse.)
然後就可以找到 /tmp/ipad/pptv/PPTV/ 裡面儲存的下載影片了。

其實,Ubuntu OS 的 GVFS (Gnome Virtual File System) 在 iDevice 插到 USB port 時,會自動在 ~/.gvfs/ 目錄下面建兩個 mount points -- "XYZ's iPad" and "XYZ's iPad 上的文件" -- 然後 mount iDevice 的主目錄到 "XYZ's iPad" 及 iDevice 上所有 Apps 的子目錄到 "XYZ's iPad 上的文件";而在後者的 com.pptv.ipadwebkit/Documents/PPTV/ 下面就可以看到用 PPTV app 下載的影片了。如果執行 ls 出現「錯誤的引數」之類的訊息的話,可試著從 Nautilus (Gnome 檔案總管)side bar 卸載 "XYZ's iPad" 及 "XYZ's iPad 上的文件",重新插 USB 再試看看。
但是『風行網』的檔案夾可能無法使用上述方式存取,而且『風行網』的下載影片是放在 App 的 Library folder 中。今天(2013年9月10日)試出來一個步驟:
1. 執行下列 command lines:

mkdir -p /tmp/ipad/funshion
ifuse /tmp/ipad/funshion --appid com.Funshion.ipadplayer

此時『風行網』app 的 Documents 文件夾會被掛載在 /tmp/ipad/funshion,但是這個文件夾不是我們要的,
2. 於是接著執行卸載指令:

sudo umount /tmp/ipad/funshion

然後神奇的事情發生了 -- 在終端機視窗 check ~/.gvfs/ 下面的 "XYZ's iPad 上的文件" 之中的 com.Funshion.ipadplayer 子目錄,竟然所有的檔案夾都出現了!從『風行網』app 下載的影片就儲存在 com.Funshion.ipadplayer/Library/Caches/funshionVideo/ 子目錄裡頭



關於 Linux 與 iDevices,有篇「被低估的 Libimobiledevice 」blog 也有討論。