2024年4月25日发(作者:理依波)
详解iphone常见的三种安装格式:deb、ipa 和 pxl
deb格式是Debian系统(包含Debian 和 Ubuntu )专属安装包格式,配合 APT 软件管理系
统,成为了当前在 Linux 下非常流行的一种安装包。进入 2.x 时代之后有Cydia作者 Jay
Freeman(saurik)移植到 iPhone 平台上,一起的还有 APT 软件管理系统。
ipa格式则是苹果在iOS 平台上推出的专属软件安装包,在2.0固件开始才正式使用,是目
前 iPhone/iPod Touch/iPad 平台上唯一的官方安装包。
pxl格式则起源于 Mac 系统上的pkg 安装包,被广泛应用于1.x固件时代,曾经是 iPhone
平台上唯一的软件安装包,现在仍在被91等软件所使用。
关于deb格式
deb 是 Unix 系统(其实主要是 Linux )下的安装包,基于 tar 包,因此本身会记录文件的
权限(读/写/可执行)以及所有者/用户组。由于 Unix 类系统对权限、所有者、组的严格要
求,而 deb 格式安装包又经常会涉及到系统比较底层的操作,所以权限等的设置尤其重要。
deb 包本身有三部分组成:
数据包,包含实际安装的程序数据,文件名为 data.t;
装信息及控制脚安本包,包含 deb 的安装说明,标识,脚本等,文件名为
cont.gz;
最后一个是 deb 文件的一些二进制数据,包括文件头等信息,一般看不到,在某些
软件中打开可以看到。
deb 本身可以使用不同的压缩方式。tar 格式并不是一种压缩格式,而是直接把分散的文件
和目录集合在一起,并记录其权限等数据信息。之前提到过的 d.XXX,这里 XXX 就
是经过压缩后的后缀名。deb 默认使用的压缩格式为 gzip 格式,所以最常见的就是
d.gz。常有的压缩格式还有 bzip2 和 lzma,其中 lzma 压缩率最高,但压缩需要
的 CPU 资源和时间都比较长。
d.gz包含的是实际安装的程序数据,而在安装过程中,该包里的数据会被直接解压
到根目录(即 / ),因此在打包之前需要根据文件所在位置设置好相应的文件/目录树。
而 control. 则包含了一个 deb 安装的时候所需要的控制信息。一般有 5 个文件:
control,用了记录软件标识,版本号,平台,依赖信息等数据;
preinst,在解包 data.t 前运行的脚本;
postinst,在解包数据后运行的脚本;
prerm,卸载时,在删除文件之前运行的脚本;
postrm,在删除文件之后运行的脚本;
在 Cydia 系统中,Cydia 的作者 Saurik 另外添加了一个脚本,extrainst_,作用
与 postinst 类似。
=================================================================
关于ipa格式
使用过 Mac OS 的人可能都知道,Mac 下的软件大部分都只有一个 .app 目录,里面包含了
程序全部资源和可执行文件。简单来说,Mac 下的软件就像是 Windows 下的绿色软件一样,
解压后即可使用,不需要安装,卸载的话也只用删除程序文件即可(这里不涉及 pkg 格式安
装包)。而 ipa 格式可以视为这种 .app 软件的衍生物。
ipa 文件实质是一个 zip 压缩包(不是 rar 或 7z 包),包含 3 个组件:
payload 目录下的 .app 目录,这个是软件的主程序;
TunesAritwork,实质是一个无后缀名的 png 图片,用来在 iTunes 中显示图标;
iTunesMetadata.plist,记录购买者信息、售价等数据。
由于 zip 包不能记录权限和所有者等信息,所以苹果规定了 ipa 的安装方式,即全部 ipa
都会解包安装在 /var/mobile/Applications 目录下,全部文件和目录的所有者及用户组
均设为 mobile(ID 为 501),主程序(可执行文件)的权限设为 0755 (所有人都可以执行,
但只有所有者可以修改),可执行文件在 plist 中定义。全部目录权限设为 0755,而其它
所有文件都设为 0644(仅所有者可以修改,其余人只允许读取,全部人都不允许执行)。
ipa 解包后并非直接放置于 Applications 目录下,而是放在一串由随机码构成的目录下,
其作用在于,只允许这个软件运行在一个特定的沙盒(Sandbox)中,不能干扰其他软件。因
此那串随机码目录下,除了 ipa 本身的三个组件之外,还有三个目录:
Library,一般是用了储存设置文件等数据;
Documents,存储数据,多用了保存存档;
tmp,临时文件夹。
由于这个软件只能在这个特定的目录下运行(当然了,部分程序会调用系统的通讯录、相机
等组件,但仍然是受限制的),从而保证了整个系统的安全性和稳定性。
由于 Unix 系统下对权限的规定相当严格,所以“越权”的行为是绝对不允许的。举个例子,
mobile 用户无权删除 root 所有的文件,因为 root 的权限高于 mobile。所以有些人在修
改 ipa 安装后的文件时,比如进行汉化或者修改存档,发现不能删除干净软件,或不能保
存,这是因为删除时不能删除 root 所有的文件,程序本身也无法对 root 所有的存档文件
进行写入操作。
=================================================================
关于pxl格式
pxl 格式在1.x时代是 iPhone 平台上唯一的安装格式,原因是那时候还没有 Cydia 这样
的 APT 管理软件,苹果官方也没有推出 App Store。由于在1.x时代积累了大量人气,在
接下来的 App Store 时代中,pxl 格式以其相对简易的打包和安装方式,仍然占据了很大
一部分市场。但随着 Installer 的停止开发,iBrickr 等软件停止更新,目前唯一还在坚
持使用 pxl 格式的就只剩下91一家了。
2024年4月25日发(作者:理依波)
详解iphone常见的三种安装格式:deb、ipa 和 pxl
deb格式是Debian系统(包含Debian 和 Ubuntu )专属安装包格式,配合 APT 软件管理系
统,成为了当前在 Linux 下非常流行的一种安装包。进入 2.x 时代之后有Cydia作者 Jay
Freeman(saurik)移植到 iPhone 平台上,一起的还有 APT 软件管理系统。
ipa格式则是苹果在iOS 平台上推出的专属软件安装包,在2.0固件开始才正式使用,是目
前 iPhone/iPod Touch/iPad 平台上唯一的官方安装包。
pxl格式则起源于 Mac 系统上的pkg 安装包,被广泛应用于1.x固件时代,曾经是 iPhone
平台上唯一的软件安装包,现在仍在被91等软件所使用。
关于deb格式
deb 是 Unix 系统(其实主要是 Linux )下的安装包,基于 tar 包,因此本身会记录文件的
权限(读/写/可执行)以及所有者/用户组。由于 Unix 类系统对权限、所有者、组的严格要
求,而 deb 格式安装包又经常会涉及到系统比较底层的操作,所以权限等的设置尤其重要。
deb 包本身有三部分组成:
数据包,包含实际安装的程序数据,文件名为 data.t;
装信息及控制脚安本包,包含 deb 的安装说明,标识,脚本等,文件名为
cont.gz;
最后一个是 deb 文件的一些二进制数据,包括文件头等信息,一般看不到,在某些
软件中打开可以看到。
deb 本身可以使用不同的压缩方式。tar 格式并不是一种压缩格式,而是直接把分散的文件
和目录集合在一起,并记录其权限等数据信息。之前提到过的 d.XXX,这里 XXX 就
是经过压缩后的后缀名。deb 默认使用的压缩格式为 gzip 格式,所以最常见的就是
d.gz。常有的压缩格式还有 bzip2 和 lzma,其中 lzma 压缩率最高,但压缩需要
的 CPU 资源和时间都比较长。
d.gz包含的是实际安装的程序数据,而在安装过程中,该包里的数据会被直接解压
到根目录(即 / ),因此在打包之前需要根据文件所在位置设置好相应的文件/目录树。
而 control. 则包含了一个 deb 安装的时候所需要的控制信息。一般有 5 个文件:
control,用了记录软件标识,版本号,平台,依赖信息等数据;
preinst,在解包 data.t 前运行的脚本;
postinst,在解包数据后运行的脚本;
prerm,卸载时,在删除文件之前运行的脚本;
postrm,在删除文件之后运行的脚本;
在 Cydia 系统中,Cydia 的作者 Saurik 另外添加了一个脚本,extrainst_,作用
与 postinst 类似。
=================================================================
关于ipa格式
使用过 Mac OS 的人可能都知道,Mac 下的软件大部分都只有一个 .app 目录,里面包含了
程序全部资源和可执行文件。简单来说,Mac 下的软件就像是 Windows 下的绿色软件一样,
解压后即可使用,不需要安装,卸载的话也只用删除程序文件即可(这里不涉及 pkg 格式安
装包)。而 ipa 格式可以视为这种 .app 软件的衍生物。
ipa 文件实质是一个 zip 压缩包(不是 rar 或 7z 包),包含 3 个组件:
payload 目录下的 .app 目录,这个是软件的主程序;
TunesAritwork,实质是一个无后缀名的 png 图片,用来在 iTunes 中显示图标;
iTunesMetadata.plist,记录购买者信息、售价等数据。
由于 zip 包不能记录权限和所有者等信息,所以苹果规定了 ipa 的安装方式,即全部 ipa
都会解包安装在 /var/mobile/Applications 目录下,全部文件和目录的所有者及用户组
均设为 mobile(ID 为 501),主程序(可执行文件)的权限设为 0755 (所有人都可以执行,
但只有所有者可以修改),可执行文件在 plist 中定义。全部目录权限设为 0755,而其它
所有文件都设为 0644(仅所有者可以修改,其余人只允许读取,全部人都不允许执行)。
ipa 解包后并非直接放置于 Applications 目录下,而是放在一串由随机码构成的目录下,
其作用在于,只允许这个软件运行在一个特定的沙盒(Sandbox)中,不能干扰其他软件。因
此那串随机码目录下,除了 ipa 本身的三个组件之外,还有三个目录:
Library,一般是用了储存设置文件等数据;
Documents,存储数据,多用了保存存档;
tmp,临时文件夹。
由于这个软件只能在这个特定的目录下运行(当然了,部分程序会调用系统的通讯录、相机
等组件,但仍然是受限制的),从而保证了整个系统的安全性和稳定性。
由于 Unix 系统下对权限的规定相当严格,所以“越权”的行为是绝对不允许的。举个例子,
mobile 用户无权删除 root 所有的文件,因为 root 的权限高于 mobile。所以有些人在修
改 ipa 安装后的文件时,比如进行汉化或者修改存档,发现不能删除干净软件,或不能保
存,这是因为删除时不能删除 root 所有的文件,程序本身也无法对 root 所有的存档文件
进行写入操作。
=================================================================
关于pxl格式
pxl 格式在1.x时代是 iPhone 平台上唯一的安装格式,原因是那时候还没有 Cydia 这样
的 APT 管理软件,苹果官方也没有推出 App Store。由于在1.x时代积累了大量人气,在
接下来的 App Store 时代中,pxl 格式以其相对简易的打包和安装方式,仍然占据了很大
一部分市场。但随着 Installer 的停止开发,iBrickr 等软件停止更新,目前唯一还在坚
持使用 pxl 格式的就只剩下91一家了。