搭建越狱软件源
前言
最近一直在折腾越狱,手机移除越狱了几次,发现重新安装插件的过程非常麻烦,所以想搭建一个自己的软件源,里面的插件都是我需要,这样更加省事。
准备
使用 GitHub Pages 来搭建,创建好(用户名).github.io
的项目
环境:
iPhone OS(已越狱):自带dpkg-deb命令,无dpkg-scanpackages命令
看威锋的教程,安装好下面的插件就没问题了
dpkg、dpkg-dev、dpkg-repack、libdpkq-dev、libdpkg-perl
Debian/Ubuntu:自带dpkg-deb和dpkg-scanpackages命令
Mac OS X:
brew install dpkg
Windows:非unix系统,无dpkg相关命令,可以安装虚拟机
插件来源:
Telegram、QQ等社交软件
赵楠的插件
Give me deb
会把我们在插件商店下载的插件保存deb在/var/mobile/Downloads/dpkg_triggered
PostBox 应用内 .deb 下载和提取,需巨魔安装
开始操作
创建 Release 文件,基本格式如下:
1 | Origin: 软件源名称,可以使用中文(Cydia的软件源列表中显示的标题) |
可选(可直接略过):
Support: 支持,没什么作用,除非特别需要,否则可以不要这个
MD5Sum: 不是必须的,但如果Packages文件位置丌不Release文件在同一目录下,则必须有此项。另外,如果需要签名Release文件,也必须有这个
打包插件
文件的基本目录
1 | - Cydia |
使用 Terminal
打开所在文件夹
将位于debs目录的所有deb包扫描并生成Packages
1 | dpkg-scanpackages debs /dev/null > Packages |
可选:生成客户端可能需要的gz和bz2压缩的Packages
1 | gzip -c Packages > Packages.gz |
为什么需要压缩文件?
Cydia添加源时大致行为如下:
1 | 发送HEAD请求,检测/Packages.xz是否存在 |
从过程可以看出 Cydia 优先读取压缩格式的 Packages,某些源的软件比较多时,Packages 文件本身会达到十几到几十MB,因此支持压缩文件传输是很必要的
上传到 GitHub 项目中
可以使用 git ,不会的就手动上传吧
后期维护
后面有新插件时,可以在 debs 文件夹里面,只放自己要新添加的插件,然后生成 Packages ,把信息手动添加到 GitHub项目的文件中,这样就不会改掉我们自定义的插件描述了
修改插件版本
用途:想使用老版本的插件,但是不想让 插件管理器的“更新”页面一直显示有更新,Sileo 没有屏蔽更新的选项,Saily 倒是有屏蔽更新的功能,有些垃圾源倒是会通过修改版本号,来让用户安装自己源的插件
Packages 实质上是deb文件的 control 信息集合,另外多了deb文件本身的信息。(control文件是记录软件包的信息,但没有deb文件本身)
所以我们只需要把插件 control 对应的版本信息给修改了,这样就可以实现修改版本号了。
步骤:
使用Filza 解压自己想修改的插件,在 DEBIAN 文件夹里面找到 control 文件,使用文本编辑器打开,修改 Package 后面的值,避免与源作者冲突导致,改了 Package,Version的值改不改都行,记得在 Description(描述)中注明有修改,然后长按解压出来的主文件夹,点击“打包deb”,就成功了
Description 可以在生成的 Packages 中修改,Package、Version,必须解压修改
End
附上我的源
1 | tuneu.github.io |
参考文章
- https://idayer.com/how-to-host-a-cydia-repository/
- https://www.bilibili.com/read/cv10439805/
- https://www.feng.com/post/13849351
- https://blog.bombox.org/2019-10-10/make-cydia-source/
- https://www.saurik.com/packaging.html
- https://www.0xaa55.com/thread-26544-1-1.html
- https://www.youtube.com/watch?v=9eHKvCqBDBQ