定義理解
IPA是Apple程式套用檔案iPhoneApplication的縮寫。
使用過 Mac OS 的人可能都知道,Mac 下的軟體大部分都只有一個 .app 目錄,裡面包含了程式全部資源和執行檔。簡單來說,Mac 下的軟體就像是 Windows 下的綠色軟體一樣,解壓後即可使用,不需要安裝,卸載的話也只用刪除程式檔案即可(這裡不涉及 pkg 格式安裝包)。而 ipa 格式可以視為這種 .app 軟體的衍生物。
ipa 檔案實質是一個 zip壓縮檔(不是 rar 或 7z 包),包含 3 個組件:payload 目錄下的 .app 目錄,這個是軟體的主程式;iTunesArtwork,實質是一個無後綴名的 png 圖片,用來在 iTunes 中顯示圖示;iTunesMetadata.plist,記錄購買者信息、售價等數據。
由於 zip 包不能記錄許可權和所有者等信息,所以蘋果規定了 ipa 的安裝方式,即全部 ipa 都會解包安裝在 /var/mobile/Applications 目錄下,全部檔案和目錄的所有者及用戶組均設為 mobile(ID 為 501),主程式(執行檔)的許可權設為 0755 (所有人都可以執行,但只有所有者可以修改),執行檔在 plist 中定義。全部目錄許可權設為 0755,而其它所有檔案都設為 0644(僅所有者可以修改,其餘人只允許讀取,全部人都不允許執行)。
ipa 解包後並非直接放置於 Applications 目錄下,而是放在一串由隨機碼構成的目錄下,其作用在於,只允許這個軟體運行在一個特定的沙盒(Sandbox)中,不能幹擾其他軟體。因此那串隨機碼目錄下,除了 ipa 本身的三個組件之外,還有三個目錄:Library,一般是用了儲存設定檔案等數據;Documents,存儲數據,多用來保存存檔;tmp,臨時資料夾。
由於這個軟體只能在這個特定的目錄下運行(當然了,部分程式會調用系統的通訊錄、相機等組件,但仍然是受限制的),從而保證了整個系統的安全性和穩定性。
由於 Unix 系統下對許可權的規定相當嚴格,所以“越權”的行為是絕對不允許的。舉個例子,mobile 用戶無權刪除 root 所有的檔案,因為 root 的許可權高於 mobile。所以有些人在修改 ipa 安裝後的檔案時,比如進行漢化或者修改存檔,發現不能刪除乾淨軟體,或不能保存,這是因為刪除時不能刪除 root 所有的檔案,程式本身也無法對 root 所有的存檔檔案進行寫入操作。
軟體特點
豐富的資源:App Store 上那么多資源,apptrackr 等網站也提供了很多破解版。完善的更新、後期服務。只能使用最小許可權,保障安全性。不涉及系統級的操作,所以一般不容易造成當機或白蘋果(有些是因為資源消耗太大所以卡死)。便捷的安裝方式,無論是直接在設備上用App Store安裝,還是用 iTunes 來同步,抑或是用 Installous 和 91 這類第三方軟體來安裝,都是很方便快速的安裝方式。超級簡單的卸載方式:還有什麼比只需要點一個 X 就能卸載更簡單呢?完全刪除,不會留下任何垃圾檔案(如存檔、設定檔案等)總體來說破解還是比較容易的,越來越多軟體加入了防破解措施。
之前提到過,ipa 軟體是被安裝在一個類似於沙盒的環境中,除了能對 /var/mobile/Media/DCIM 目錄(拍照、截圖存放目錄)進行操作,或是調用壁紙、鈴聲、相機等組件,不能對系統進行任何干涉,這樣在最大程度上保證了系統的穩定運行,也不會干擾其它軟體的正常使用。但問題是,由於 ipa 軟體的許可權很低,想要對系統進行修改,尤其是套用補丁時,ipa 就無能為力了。
ipa 軟體官方的 安裝方式有兩種,一是在 App Store 這個軟體中下載安裝,二是用 iTunes 同步。
前者的問題主要是網路問題,網速不好很容易安裝失敗;GPRS之類的上網安裝又很耗流量。後者的問題主要是不能在不同系統下使用(包含不同電腦和同一部電腦上的不同系統),在其它系統上同步會抹掉原有的軟體。當然了,iTunes 每次同步時間比較長也是經常被人詬病的。尤其是當安裝軟體比較多的時候,每次同步之前的備份需要很長很長時間,這個很噁心(不過可以直接 X 掉備份操作)。
由於以上兩種方式存在一些問題,所以很多人會選擇使用 Installous 或 91 來安裝 ipa,這也確實是個不錯的選擇。
Installous 一般沒什麼問題,但對部分驗證比較嚴格的 ipa 處理不是很好。雖然 Installous 基本能代替 iTunes,但畢竟不完全等同。最典型的就是 Installous 安裝 Microsoft 官方出的 Live Messenger (正版,非破解版)時不能運行。實際上 Installous 對很多未破解的正版軟體支持不是很好。
至於91,經常被人批評。91 雖然可以安裝 ipa,但除了 Installous 都有的正版軟體的支持問題外,由於91的安裝機制有缺陷,軟體不能實現多語言,只會使用英文界面,而忽略掉 zh_CN.lproj,zh_TW.lproj 這些語言包。這對那些用希望使用漢化版的人來說實在是一個悲劇。所以通常是要避免使用91來安裝 ipa 的。
至於 卸載,三種方法:設備上按住圖示直到開始晃動,點擊圖示左上角的 X 即可卸載;於 iTunes 中取消選中,然後同步找到 /var/mobile/Applications 下的相應目錄,強行刪除整個資料夾。這個在前面兩種方法無法使用時可以採用(有時候卸載體積太大的軟體,比如超過 1G,因為刪除過程太長導致失去回響並刪除失敗。),但這種方法會造成系統的不穩定。除非是確實碰到了問題,否則強烈建議不要使用。