二、關(guān)于ipa格式
 
使用過(guò)MacOS的人可能都知道,Mac下的軟件大部分都只有一個(gè).app目錄,里面包含了程序全部資源和可執(zhí)行文件。簡(jiǎn)單來(lái)說(shuō),Mac下的軟件就像是Windows下的綠色軟件一樣,解壓后即可使用,不需要安裝,卸載的話也只用刪除程序文件即可(這里不涉及pkg格式安裝包)。而ipa格式可以視為這種.app軟件的衍生物。
 
ipa文件實(shí)質(zhì)是一個(gè)zip壓縮包(不是rar或7z包),包含3個(gè)組件:payload目錄下的.app目錄,這個(gè)是軟件的主程序;
 
iTunesArtwork,實(shí)質(zhì)是一個(gè)無(wú)后綴名的png圖片,用來(lái)在iTunes中顯示圖標(biāo);
 
iTunesMetadata.plist,記錄購(gòu)買者信息、售價(jià)等數(shù)據(jù)。
 
由于zip包不能記錄權(quán)限和所有者等信息,所以蘋果規(guī)定了ipa的安裝方式,即全部ipa都會(huì)解包安裝在/var/mobile/Applications目錄下,全部文件和目錄的所有者及用戶組均設(shè)為mobile(ID為501),主程序(可執(zhí)行文件)的權(quán)限設(shè)為0755(所有人都可以執(zhí)行,但只有所有者可以修改),可執(zhí)行文件在plist中定義。全部目錄權(quán)限設(shè)為0755,而其它所有文件都設(shè)為0644(僅所有者可以修改,其余人只允許讀取,全部人都不允許執(zhí)行)。ipa解包后并非直接放置于Applications目錄下,而是放在一串由隨機(jī)碼構(gòu)成的目錄下,其作用在于,只允許這個(gè)軟件運(yùn)行在一個(gè)特定的沙盒(Sandbox)中,不能干擾其他軟件。因此那串隨機(jī)碼目錄下,除了ipa本身的三個(gè)組件之外,還有三個(gè)目錄:
 
Library,一般是用了儲(chǔ)存設(shè)置文件等數(shù)據(jù);
 
Documents,存儲(chǔ)數(shù)據(jù),多用了保存存檔;
 
tmp,臨時(shí)文件夾。
 
由于這個(gè)軟件只能在這個(gè)特定的目錄下運(yùn)行(當(dāng)然了,部分程序會(huì)調(diào)用系統(tǒng)的通訊錄、相機(jī)等組件,但仍然是受限制的),從而保證了整個(gè)系統(tǒng)的安全性和穩(wěn)定性。由于Unix系統(tǒng)下對(duì)權(quán)限的規(guī)定相當(dāng)嚴(yán)格,所以“越權(quán)”的行為是絕對(duì)不允許的。舉個(gè)例子,mobile用戶無(wú)權(quán)刪除root所有的文件,因?yàn)閞oot的權(quán)限高于mobile。所以有些人在修改ipa安裝后的文件時(shí),比如進(jìn)行漢化或者修改存檔,發(fā)現(xiàn)不能刪除干凈軟件,或不能保存,這是因?yàn)閯h除時(shí)不能刪除root所有的文件,程序本身也無(wú)法對(duì)root所有的存檔文件進(jìn)行寫入操作。
 
三、關(guān)于pxl格式
 
pxl格式在1.x時(shí)代是iPhone平臺(tái)上唯一的安裝格式,原因是那時(shí)候還沒(méi)有Cydia這樣的APT管理軟件,蘋果官方也沒(méi)有推出AppStore。由于在1.x時(shí)代積累了大量人氣,在接下來(lái)的AppStore時(shí)代中,pxl格式以其相對(duì)簡(jiǎn)易的打包和安裝方式,仍然占據(jù)了很大一部分市場(chǎng)。但隨著Installer的停止開發(fā),iBrickr等軟件停止更新,目前唯一還在堅(jiān)持使用pxl格式的就只剩下91一家了。
裝機(jī)