iOS 板


LINE

看板 iOS  RSS
(本文同步發表於 iPhone4.tw 與 PTT-iPhone 版) 受到皮樂和 saurik 的教學啟發 (範例請見 http://iphone4.tw/forums/showthread.php?t=80837 XD) 我決定把架 source 的(最簡)過程完整寫出來 這樣以後大家要重刷會方便一點 不需要手動或用 rock 的 backup 等等方式 一個一個把 App 裝回來 只要裝自己的套件就行了! 但為了要解釋清楚 文章會變得很長 還請各位多多包含~ 架 source 需要以下技術和環境: ‧對 linux 和 jb (逃獄)有基本了解 ‧一台 mac 或是裝有 linux 系統的電腦( windows 下我沒研究過...) ‧一支已 jb 的 iPhone/iPod/iPad ‧用 Cydia 或 Rock 裝套件皆可 ‧可以放網頁的網路空間 因為門檻有點高,沒有自信能掌握一切的人請不要輕易嘗試 更不要寄信跟我求救 我可能也不會解決=.=" 此外以下所有工作都要在 terminal 上完成 (除了把東西丟到網路空間時除外 XD) 最後,用 mac 的人需要先安裝 fink 來處理 deb 檔: http://www.finkproject.org/download/srcdist.php (連結裡有檔案下載和安裝方式,基本上安裝時都選 default 值就行了) 而且在進行以下工作前 請先執行 . /sw/bin/init.sh 來開啟 fink 環境 也才能用 dpkg 相關指令! ps. 用 linux 的話通常各個 distribution 應該都有內建,因此不必擔心 整個過程分為兩大部分 第一是製作自己的套件 因為有人喜歡 jb 後只裝幾個特定 App 有人則喜歡裝一大堆 我們不可能把所有想裝的 App 的 deb 都抓下來 包在自己的套件裡 一來工程浩大,二來不確定是否會有相衝問題 (有興趣的人倒是可以自行試試看XD) 那我們該怎麼做呢? 答案是把想裝的 App 都列在套件的 dependency 裡 (要解釋 dependency 得要花一些篇幅 所以才有我前面所說的第一條要求...) 如此一來當安裝自己的套件時 就會把所有想裝的 App 都裝進去 而事實上我們的套件裡也只有這個 dependecy 的資訊 並不會裝任何其他東西 可以說是一種很乾淨的安裝方法 那麼應該要怎麼寫 dependency 呢? 首先建立以下資料夾路徑 ~/TEMP/DEBIAN 注意"TEMP"是我們的工作資料夾 這只是一個方便作業的路徑 所以依個人喜好可以隨便亂取名字 但"DEBIAN"這資料夾則一定要有 且注意一定要大寫! 建立好路徑之後 用 vim (或任何文字編輯器) 在該路徑裡寫一個叫 control 的檔案: vim ~/TEMP/DEBIAN/control 這個 control 檔將會是我們自製套件裡頭唯一的檔案 前面所說的 dependency 就會列在其中 為了快速進入狀況 以下列出 backgrounder 的 control 檔給大家參考: Package: backgrounder Name: Backgrounder Version: svn.r447-1 Architecture: iphoneos-arm Description: Enable and manage backgrounding Homepage: http://iphone-backgrounder.googlecode.com/ Depiction: http://moreinfo.thebigboss.org/moreinfo/depiction.php?file= backgrounder3Data Maintainer: BigBoss <bigboss*thebigboss.org> Author: Lance Fetters (ashikase) <gaizin*gmail.com> Section: System Depends: firmware (>= 3.0), firmware (<< 4.0), mobilesubstrate, libactivator (>= 1.3.1) dev: ashikase Sponsor: thebigboss.org <http://thebigboss.org> Installed-Size: 356 以下將依序解釋各項含意 不過值得一提的是 如果套件只是要給自己用 幾乎所有東西都可以亂寫 XD 1.package: 這是套件 id,大家如果上 cydia/rock 看每個 App 都會有, 常見的會寫成 com.xxxxx.xxx 這種形式,這是 cydia 認識套 件的方法,若取不同 id ,即使 Name 一樣,cydia也會當成 不同的套件,所以要注意! 2.Name: 這才是實際上套件的名字 3.version: 套件的版本 4.Architecture: 這是判別此套件是否適用於特定 iPhone OS 的方法(但我不太 確定),給 OS 3.0 以上寫 iphoneos-arm 就可以了(arm 其實 就是 iPhone 的處理器名稱,是不是很眼熟啊?XD) 5.Description: 對套件的描述,到時也會出現在 cydia 裡 6.Homepage: 套件的官方網站 7.Depiction: 如果沒有在 control 檔裡頭寫詳細的套件資訊的話,cydia 會到這個項目所列出的網址抓資料 8.Maintainer: 維持套件的人,"<>"裡頭寫 email 9.Auther: 就是套件作者 10.Section: 此套件在 cydia 軟體集裡頭的分類,像 backgrounder 跟系 統有關所以寫 system 11.dev: (其實我不清楚是什麼=.="總之可以不寫) 12.Sponsor: 贊助者,很多 cydia 上的 App 都是 BigBoss 贊助 13.Installed-Size:套件安裝後的大小,也可以不寫 如果各位有仔細看完以上描述 一定會覺得奇怪,為什麼漏掉了 Depends 沒介紹 因為這是整個過程中最重要的部份 也就是開頭所說的 dependency 要寫的地方 大家可以看到這裡列的都是套件 id (也就是 package 這個項目所寫的) 此外還能夠指定要安裝套件的版本 像 backgrounder 這個例子 就需要安裝在 OS 3.x 上 還需要 1.3.1 版以上的 activator 所以安裝 backgrounder 前 cydia 會先確定 OS 版本 然後裝 mobilesubstrate 和 activator 這樣大家應該就知道要怎麼寫 dependency 了: 找出想安裝的套件 id 然後通通列在 Depends 裡 並以逗號分開 若有版本需求則另外寫在括號裡 可能有人會問 像 backgrounder 需要先裝 mobilesubstrate 和 activator 那也要把這兩個列在自己的 dependency 嗎? 答案當然是不用 (否則就沒完沒了了,dependency 列到手軟 XD) 因為裝自己列的 App 前 cydia 就會分別去檢查各個 App 的 depedency 了 所以其實我們在 Depends 這邊要打的東西並沒有很多 夠懶人了吧? XD (這其實也是為什麼 saurik 要用 Debian-APT 建立 cydia 的原因之一 因為 APT 有 dependency 這個超方便的管理套件方法 ) control 檔寫完之後 事實上工作已經完成一半了 XD 接下來第二階段我們只需打包成 deb 檔 並生出 cydia 看的懂的 repository (也就是 source)資訊 (mac 使用者注意在打包前還要先執行以下指令 export COPYFILE_DISABLE export COPY_EXTENDED_ATTRIBUTES_DISABLE 這是因為 Mac OS 在製作 tar 或 zip 等壓縮檔時 都會自動在檔案裡放入一堆 ._* 的檔案 據 saurik 的說法會和許多套件相衝 因此我們要把這個功能關掉) 打包指令是 dpkg -b ~/TEMP 套件名稱.deb 注意套件名稱要是英文或數字 待會還會用到 到此為止我們就完成自己的套件了! 此外我們要生出一個叫 Package.bz2 的檔案 所有 source 資訊都包在這裡頭 cydia 每次連到我們的網路空間 就會去找這個檔案 那麼要怎麼生呢? 首先我們需要執行一個叫 dpkg-scanpackages 的 script 但因為這個 script 裡頭少了 cydia 需要的幾行字 我們得先編輯它 mac 使用者若在安裝 fink 的過程中都使用預設值 這個檔案應該會在 /sw/bin/ 裡頭 linux 使用者可能需要用 find 指令找找看 找到之後可用 vim 編輯它 找到 fieldpri 這個子項目後 按其格式加入 'Name', 'Auther', 'Homepage', 'Icon' 等等字串 然後存檔離開 完成 dpkg-scanpackages 的編輯後 在 ~ (家目錄,也就是存有 deb 的資料夾)底下執行 dpkg-scanpackages . /dev/null > Packages 來生出 Packages 這個檔 如果成功的話會出現這個訊息: Wrote 1 entries to output Packages file. ps. 在 saurik 的網站上有提供他自己寫的 dpkg-scanpackages 但執行他的檔案還會需要一個叫 dpkg-gettext.pl 的檔案 不知道為什麼我的 mac 裡頭沒有 大家可以試試看 Packages 是一個文字檔 裡頭除了存 control 檔裡頭的訊息還寫了其他 cydia 需要的資訊 不過若按照我寫的步驟做到這裡 應該需要修正裡頭 Filename 這一行 它告訴 cydia 我們的 deb 檔放在網路空間的何處 不管它寫了什麼(通常是多一個斜線) 該路徑請改成 ./套件名稱.deb 否則會出錯 (當然熟悉一切的人就可以亂改啦~知道自已在做什麼就好) 完成之後壓縮它: bzip2 Packages 我們就生出 Package.bz2 這個檔案了! 最後一步請把 "套件名稱.deb" 和 "Package.bz2" 加入自己網頁空間的根目錄下 (或是 public_html/ 底下,依各網頁空間設定而有所不同 ) 再到 cydia 裡頭加入 source 就大功告成啦! (例如這兩個檔案如果放在 http://abc.com/public_html/ 裡 則 source 要加入 http://abc.com/ ) 另外,若有套件需要額外加入 source 請記得一併加入 所有列出的 dependency 資訊會出現在 cydia 按下 install 後的畫面裡 或是 rock 的套件資訊裡 (老實說我比較喜歡 rock 這點....cydia 還得按進去看,好麻煩) 落落長的教學文終於到此結束了 第一次寫教學文覺得好累 XD 希望有任何問題或意見可以提出來告訴我 另外以下兩個是參考網頁 http://iphone4.tw/forums/showthread.php?t=80921 http://www.saurik.com/id/7 應該會有所幫助 最後感謝皮樂的關鍵提示 XD --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.204.171.65
1F:推 ithildin:喔喔 皮樂那招! 教學讚耶 可是我沒MAC orz 05/30 00:16
2F:→ leo80042:那就快點m起來吧 XDDD 在windows裝虛擬機器灌linux也行~ 05/30 00:17
3F:→ leo80042:不然板主試試看在windows底下做吧~重點是弄出deb檔 05/30 00:18
4F:→ leo80042:我晚點換台電腦再套色......不然版面還是太亂 Orz 05/30 00:18
5F:→ ithildin:等我成功了再回來M(轉頭) 05/30 00:18
6F:→ ithildin:改好說一下 我收精華 05/30 00:19
7F:→ leo80042:搞定啦!!! 05/30 00:53
8F:→ ithildin:讓我想想這算進階區還是越獄區XD 05/30 01:08
9F:→ leo80042:XD 05/30 01:34
10F:→ hkhbb323:參起來做進階越獄區 05/30 01:35
11F:推 m0535:cool 05/30 01:36
12F:→ ithildin:請不要讓變更複雜了XDD 我想這還是偏JB吧 05/30 01:37
13F:→ leo80042:進階越獄區不錯啊哈哈哈 XDDD 05/30 01:39
14F:→ ithildin:要是這種高深的越獄文多起來的話開個子區好了 05/30 01:45
15F:→ ithildin:畢竟等級遠超過普通JB使用 XD 05/30 01:45
※ 編輯: leo80042 來自: 140.112.101.199 (06/03 11:57)
16F:→ leo80042:修改了幾個錯字和刪自己的推文~ 06/03 11:58
17F:推 Sdany:很不錯的文章。我個人也是有參考皮樂網頁,及其它相關的網站 06/15 16:03
18F:→ Sdany:我是在XP下完全使用Cygwin(約250MB)來製作DEB相關文件 06/15 16:05







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Soft_Job站內搜尋

TOP