iOS越狱

您所在的位置:网站首页 软件源ios iOS越狱

iOS越狱

2023-09-21 09:29| 来源: 网络整理| 查看: 265

前言

对于iOS越狱用户来说可能平常接触最多的软件就是Cydia,在近些年来Saurik宣布停止对Cydia的维护后,市面上出现了很多新的“越狱商店”,例如Sileo和Zebra,它们都在用户界面和功能上进行了大幅度的改善。

但是这些所谓越狱商店并不具备和App Store一样的功能,为什么这么说呢?因为App Store的软件由Apple直接提供并推送到客户端,但是Cydia的内容却需要依靠“软件源”来提供。其中的区别在于软件的「单一来源」与「多个来源」、「受监管」与「自由分发」。

因此,像Cydia这一类的软件,我们称呼其为“包管理工具”更为恰当。实际上在iOS越狱环境中,这一类工具都是基于APT(Advanced Packaging Tool)进行的图形化开发,本质上是给APT套了一个对用户相对友好的操作界面。

高级打包工具(英语:Advanced Packaging Tools,缩写为APT)是Debian及其派生的Linux软件包管理器。("APT - 维基百科,自由的百科全书", 2021)

APT与App Store的核心区别在于,APT可以自动处理软件包之间的依赖或冲突关系,例如,当你尝试安装软件A的时候,软件A的描述信息会告诉APT软件A需要依赖软件B来运行,那么,APT就会自动将软件B也列入安装列表。

APT的功能依赖于DPKG(Debian Packager),它用在Debian系Linux的“.deb”格式的软件包的处理,而APT的作用则是从软件源中获取软件包并梳理依赖关系,确保软件包最终能够被正常且完整地安装到用户的设备。

在iOS越狱环境中,这两个工具已经作为默认的包管理工具。因此,一切在iOS上使用的“插件”都需要遵守Debian软件包的规范。一个Cydia软件源本身也必然是在Debian已有的软件源机制上进行的扩展。

本文将粗略讲解一个适用于iOS越狱环境的软件源的基本搭建步骤,其中大部分内容与Debian上对应的操作相同或相似,有Debian操作经验的读者可更容易理解本文内容。

一、软件源的基本结构

一个软件源需要至少有一个对自身的描述,以及对软件源内可访问软件包列表的索引。

通过查阅Debian官方的软件源文档,我们可以得知,在源的根目录中,我们至少需要一个“Release”文件与“Packages”文件。

在“Release”文件中,包含有关软件源的索引信息,以及用于自身校验的元数据("DebianRepository/Format - Debian Wiki", 2021)。同时Debian官方建议,如无必要的情况下,最好不要将Release进行签名或添加MD5sum处理,因此本文不讨论这些细节。但如果您选择将Packages和Release放在不同的目录时,您可能需要添加这些数据。

二、开始操作

Release的基本格式如下

其中

通常情况下,软件源中的Release文件不需要变动,如果您已经跟随上方指导完成了Release的创建,那么您可能很长一段时间都不再需要变更它了。

对于另外一个必要文件Packages,情况则发生了改变;它需要记录软件源中所有软件包的信息,因此条件允许的情况下,您可能不应该手写这个文件。

Packages中记录的信息是对所有软件包的描述信息扫描并计算后存储的,Packages中表示单一软件包的例子如下,但是请注意,您不应该复制这一段到您的软件源中,因为它将不起作用

在这段Packages中,大部分内容来自软件包中已有的信息,但是其中的Filename、Size、MD5sum、SHA1、SHA256是经过程序检测或计算之后保存的。

在Debian系Linux操作系统中,已经自带了“dpkg-scanpackages”命令用于生成Packages文件,该命令在其他系统中不存在,但是你可以通过安装的方式在部分系统上获取这个命令,或者使用相同功能的替代脚本,这里不再过多阐述。

生成Packages的命令如下

需要一个有内容的Packages,你的源需要至少有一个软件包上架,否则源看起来将是空荡荡的没有任何东西。因此,你可能需要在源中放入一些自行开发或制作的软件包。只有被Packages记录的软件包可以被客户端读取。

现在,你的文件目录看起来应该是这样的

其中,CydiaIcon.png是针对图形化包管理工具(如Cydia)的源图标,这个图标的建议尺寸是64x64像素,过大或过小都会导致显示不正常。

debs目录可以是其他的名称,它应该用来存放你希望上架的所有软件包;可以看到上述目录结构中包含了一个deb文件,本篇文章暂不讲解如何打包/自制deb文件。

Packages文件中则是记录了dpkg-scanpackages命令扫描debs目录后输出的所有软件包信息,Packages.bz2与Packages.gz则是压缩后的Packages文件,便于传输。

Release文件中包含了软件源信息。

以我的个人源为例,最终在Cydia中呈现效果如下

但是上述内容仅展示了如何制作一个基础的软件源结构,如果你希望软件源能够被所有人访问,那么你可能需要一台网络服务器以及一个域名。

三、将软件源架设到公网

域名需从域名服务商(例如Namecheap/Aliyun等)购买,在购买之后你需要设置一个A记录,来实现二级域名(子域名)。创建二级域名的目的是将其与主站点分离(例如你访问https://torrekie.com与https://apt.torrekie.com的时候进入的不是同一个页面)

通常情况下,用作APT软件源地址的子域名会命名为“apt”,表示这是一个apt软件源,当然这个是随意的,视个人喜好决定。

A记录须如图设置

网络服务器建议使用Debian/Ubuntu系统,随后安装Apache2并进行站点配置。

进入/etc/apache2/sites-enabled/,创建一个新的配置文件(可仿照自带的默认配置)

关于Apache2的配置这里不详解,如果需要设置https等,可以直接百度查找到很详细的教程。或者您也可以使用其他的同类替代品(如Nginx)

其中的DocumentRoot指向的路径需要为软件源的目录,浏览器访问时会默认在这个目录中寻找index.html/index.php等,所以如果你有精力,也许应该给自己的软件源编写一个看起来还不错的前端页面。

四、小结

软件源的搭建流程较为简单,上述内容简单易学。

编写Release文件、生成Packages文件后,一个基本的软件源就可以被成功读取。将软件源上传到服务器并通过Apache2等工具开放到公共网络后,软件源将能够被任何人访问并从其中下载内容。

References

APT - 维基百科,自由的百科全书. (2021). Retrieved 23 March 2021, from https://zh.wikipedia.org/wiki/APT

DebianRepository/Format - Debian Wiki. (2021). Retrieved 23 March 2021, from https://wiki.debian.org/DebianRepository/Format



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3