ai脚本工具安装包 iPhone/iPad安装包的三种格式 deb、ipa 和 pxl的解释和说明

默认分类1年前 (2023)发布 admin
539 0
ChatGPT国内版

其中 deb 格式是 系统(包含 和 )专属安装包格式,配合 APT 软件管理系统,成为了当前在 Linux 下非常流行的一种安装包。进入 2.x 时代之后有 Cydia 作者 Jay () 移植到 平台上,一起的还有 APT 软件管理系统。

而 ipa 格式则是苹果在 iOS 平台上推出的专属软件安装包,在2.0固件开始才正式使用,是目前 /iPod Touch/iPad 平台上唯一的官方安装包。

而pxl格式则起源于 Mac 系统上的 pkg 安装包,被广泛应用于1.x固件时代,曾经是 平台上唯一的软件安装包,现在仍在被91等软件所使用。

.deb

deb 是 Unix 系统(其实主要是 Linux )下的安装包,基于 tar 包,因此本身会记录文件的权限(读/写/可执行)以及所有者/用户组。

由于 Unix 类系统对权限、所有者、组的严格要求,而 deb 格式安装包又经常会涉及到系统比较底层的操作,所以权限等的设置尤其重要。

deb 包本身有三部分组成:

deb 本身可以使用不同的压缩方式。tar 格式并不是一种压缩格式,而是直接把分散的文件和目录集合在一起,并记录其权限等数据信息。之前提到过的 data.tar.XXX,这里 XXX 就是经过压缩后的后缀名。deb 默认使用的压缩格式为 gzip 格式,所以最常见的就是 data.tar.gz。常有的压缩格式还有 bzip2 和 lzma,其中 lzma 压缩率最高,但压缩需要的 CPU 资源和时间都比较长。

data.tar.gz包含的是实际安装的程序数据,而在安装过程中,该包里的数据会被直接解压到根目录(即 / ),因此在打包之前需要根据文件所在位置设置好相应的文件/目录树。

而 .tar.gz 则包含了一个 deb 安装的时候所需要的控制信息。一般有 5 个文件:

关于 deb 的详细介绍和打包说明,请见此贴1楼:

.ipa

使用过 Mac OS 的人可能都知道,Mac 下的软件大部分都只有一个 .app 目录,里面包含了程序全部资源和可执行文件。简单来说,Mac 下的软件就像是 下的绿色软件一样,解压后即可使用,不需要安装,卸载的话也只用删除程序文件即可(这里不涉及 pkg 格式安装包)。而 ipa 格式可以视为这种 .app 软件的衍生物。

ipa 文件实质是一个 zip 压缩包(不是 rar 或 7z 包),包含 3 个组件:

由于 zip 包不能记录权限和所有者等信息,所以苹果规定了 ipa 的安装方式,即全部 ipa 都会解包安装在 /var// 目录下,全部文件和目录的所有者及用户组均设为 (ID 为 501),主程序(可执行文件)的权限设为 0755 (所有人都可以执行,但只有所有者可以修改),可执行文件在 plist 中定义。全部目录权限设为 0755,而其它所有文件都设为 0644(仅所有者可以修改,其余人只允许读取,全部人都不允许执行)。

ipa 解包后并非直接放置于 目录下,而是放在一串由随机码构成的目录下,其作用在于,只允许这个软件运行在一个特定的沙盒()中,不能干扰其他软件。因此那串随机码目录下,除了 ipa 本身的三个组件之外,还有三个目录:

由于这个软件只能在这个特定的目录下运行(当然了,部分程序会调用系统的通讯录、相机等组件,但仍然是受限制的),从而保证了整个系统的安全性和稳定性。

由于 Unix 系统下对权限的规定相当严格,所以“越权”的行为是绝对不允许的。举个例子, 用户无权删除 root 所有的文件,因为 root 的权限高于 。所以有些人在修改 ipa 安装后的文件时,比如进行汉化或者修改存档,发现不能删除干净软件,或不能保存,这是因为删除时不能删除 root 所有的文件,程序本身也无法对 root 所有的存档文件进行写入操作。

.pxl

ai脚本工具安装包 iPhone/iPad安装包的三种格式 deb、ipa 和 pxl的解释和说明

pxl 格式在1.x时代是 平台上唯一的安装格式,原因是那时候还没有 Cydia 这样的 APT 管理软件,苹果官方也没有推出 App Store。由于在1.x时代积累了大量人气,在接下来的 App Store 时代中,pxl 格式以其相对简易的打包和安装方式,仍然占据了很大一部分市场。但随着 的停止开发, 等软件停止更新,目前唯一还在坚持使用 pxl 格式的就只剩下91一家了。

pxl 安装包通常包含3个组件:

.plist 记录程序文件的存放位置、所有者、权限以及软件标识等信息;文 件夹,存放安装和卸载脚本;程序文件。

.plist 文件的开头通常是 ,记录着软件的唯一标识,以和其他软件进行区分。 则记录软件版本。 被用来记录可以运行的固件版本。其余还有一些键值是用来记录软件介绍、网址、作者信息等数据。

除了软件标识、软件版本和可用固件版本以外,.plist 的核心部分就是 和 ht 两项。 记录了程序文件应该被复制到的路径,并提供了是否覆盖的参数: 。而 ht 则记录程序文件应该被赋予的所有者和权限,分别以 chown 和 chmod 命令来实现。另外,对于含有安装/卸载脚本的 pxl 来说,还会以 sh 命令执行相应的脚本 和 。

通常包含两个文件,安装后执行的脚本 和卸载前执行的脚本 ,这两个脚本就是标准的 Linux Shell ,以 sh 命令执行。

安装包的特点

.deb

deb 的安装方法大体有 5 种:

Cydia 或同类 APT 管理软件在线安装,这个是最佳的安装方式,因为通常无需考虑依赖关系,但缺点是对网络的要求比较高;命令行中以 dpkg -i XXX.deb 的形式安装,好处是可以以通配符一次性安装多个 deb,而且也可以直接看到脚本的运行状况和安装成功/失败的提示信息,缺点是需要命令行软件的支持,如 Putty/的控制台/iSSH/,很多人也不熟悉命令行下的操作。另外,安装完后会不显示图标;放置于 目录重启安装。该方法实际是 Cydia 提供的一个启动脚本,在每次系统启动时以 dpkg 命令安装 目录下的 deb,好处是不需要命令行操作,缺点是必须要重启,有些甚至要重启两次,也会出现不显示图标的情况;利用 iFile 安装,好处是图形化操作,桌面会显示图标,缺点是不能一次安装多个 deb;用 Cyder II 等软件来安装,其原理是模拟一个 APT 软件管理器来下载相应的 deb 文件并传到设备,然后以前面几种方式来安装。

总体来说,deb 的安装都是依赖于 dpkg -i 命令来安装,只不过有些是在命令行下输入命令,有些是提供了图形界面。但除了 Cydia 安装一种方式之外,其余几种安装方式都存在一些共有的问题:

当然了,deb 软件的卸载也比较简单,有两种方式:

其实,不管是安装还是删除,都可以才要全手动的方法。即,解包 deb 之后,自己将文件放到相应位置,然后设置权限等并执行脚本。但这样有必要么?

deb 的安装过程如下:

读取数据库并锁定,避免同时有两个安装程序在运行读取 中的 (软件包标识)和版本信息,并搜索数据库,若已存在,则卸载之后再安装;检查 , Pre-, 和 ,如果检测到已存在 中存在的软件,则报错并终止安装。如未找到 Pre- 指定的软件,则报错并终止安装。如找到 中指定的软件,则卸载之;将数据写入 /var/lib/dpkg/ 文件中;执行 脚本(如果有);解包 data.tar.gz,将文件放置于相应位置,并将文件列表写入 /var/lib/dpkg/info/XXX.list;运行 和 脚本(如果有);如果之前的安装都没有出错,即安装成功,那么会在 文件中写入 : ok 信息,否则会写入其它状态数据,比如 (未解包数据)、-(脚本未能成功执行)、Half-(安装失败等);重新加载数据库并解除锁定。

deb 的卸载过程如下:

读取数据库并锁定;根据软件标识搜寻数据库;检查是否有软件依赖于待卸载的软件,如果有则提示,并中断卸载;执行 prerm 脚本(如果有);读取 /var/lib/dpkg/info/XXX.list 文件,并删除 list 文件中记录的全部文件和非空文件夹;运行 脚本;如果卸载命令是 dpkg -r,则保留 中的记录并改为 : Not ;如果卸载命令是 dpkg -P,则删除全部数据;如果卸载过程没有错误的话,重新读取数据库并解除锁定。

由于 deb 安装的软件可能会在运行时在 /var// 下放置存档文件,或在 /var/// 下放置设置文件,而这些文件并没有记录在 list 文件里,所以卸载的时候不会被删除。

.ipa

ai脚本工具安装包 iPhone/iPad安装包的三种格式 deb、ipa 和 pxl的解释和说明

之前提到过,ipa 软件是被安装在一个类似于沙盒的环境中,除了能对 /var//Media/DCIM 目录(拍照、截图存放目录)进行操作,或是调用壁纸、铃声、相机等组件,不能对系统进行任何干涉,这样在最大程度上保证了系统的稳定运行,也不会干扰其它软件的正常使用。但问题是,由于 ipa 软件的权限很低,想要对系统进行修改,尤其是应用补丁时,ipa 就无能为力了。

ipa 软件官方的安装方式有两种,一是在 App Store 这个软件中下载安装,二是用 同步。

前者的问题主要是网络问题,网速不好很容易安装失败;GPRS之类的上网安装又很耗流量。后者的问题主要是不能在不同系统下使用(包含不同电脑和同一部电脑上的不同系统),在其它系统上同步会抹掉原有的软件。当然了, 每次同步时间比较长也是经常被人诟病的。尤其是当安装软件比较多的时候,每次同步之前的备份需要很长很长时间,这个很恶心(不过可以直接 X 掉备份操作)。

由于以上两种方式存在一些问题,所以很多人会选择使用 或 91 来安装 ipa,这也确实是个不错的选择。

一般没什么问题,但对部分验证比较严格的 ipa 处理不是很好。虽然 基本能代替 ,但毕竟不完全等同。最典型的就是 安装 官方出的 Live (正版,非破解版)时不能运行。实际上 对很多未破解的正版软件支持不是很好。

至于91,经常被人批评。91 虽然可以安装 ipa,但除了 都有的正版软件的支持问题外,由于91的安装机制有缺陷,软件不能实现多语言,只会使用英文界面,而忽略掉 zh_CN.lproj,zh_TW.lproj 这些语言包。这对那些用希望使用汉化版的人来说实在是一个悲剧。所以通常是要避免使用91来安装 ipa 的。

至于卸载,三种方法:

.pxl

实际上,pxl 格式和 deb 格式具有的功能完全一样。虽然 pxl 不能记录文件的权限等数据,但完全可以用脚本来弥补。即是说,pxl 格式和 deb 格式其实是不相伯仲的。而且因为 pxl 格式的制作并不需要比较少见的 Unix 环境,尤其是 环境,其本身是优于 deb 格式的。

但为什么现在很多人都经常在说不要使用 pxl 呢?我个人认为,原因主要有以下几个:

由此可以看出,pxl 格式的问题更多不是 pxl 本身的问题,而是打包者的问题以及安装方式的缺陷所致。

另外要指出的是,pxl 最大的提供者,91,经常是转载他人发布的软件(包括 网友自己购买破解的,或 Cydia 上直接下载的)然后当作自己发布的软件,对版权问题完全不在意,这样也引起了很多人,尤其是原发布者的反感。这种赤裸裸的剽窃行为实在是令人不耻。正因为这样,很多人是因为不爽91而不爽 pxl,这实在是冤枉 pxl 格式本身了。

安装和卸载:

pxl 转 ipa

pxl 转 deb

pxl 格式曾经是1.x时代唯一的安装包格式,给我们留下了太多的回忆,对于 pxl 的贡献,我们还是应该缅怀和尊敬的。但随着时代的发展,pxl 已经老态尽显,就如同 的退出一样,pxl 最终会退出市场而被供奉在殿堂之内。

总结

一般的软件还是尽量用 ipa 格式,不要使用 ipa 转换成的 deb 或 pxl 格式,这样可以确保兼容性和安全性。而在系统级的程序(如 和输入法),ipa 是绝无能力的,那么最好的选择还是 deb。pxl 作为快被淘汰的格式,还是果断的放弃比较好。

至于 ipa 和 deb 的安装方式,ipa 的安装首选 同步和 App Store 在线安装,次选 ,以保证最佳兼容性。deb 的安装首选 Cydia 在线安装,次选除91外的其它任何安装方式。

任何情况下都不推荐用91来安装 ipa 和 deb,因为91的安装机制并不完善,很容易出问题。

© 版权声明
广告也精彩

相关文章

暂无评论

暂无评论...