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灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP