扫盲什么是 debipa 和 pxl 3Word格式.docx
- 文档编号:16789746
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:10
- 大小:24.88KB
扫盲什么是 debipa 和 pxl 3Word格式.docx
《扫盲什么是 debipa 和 pxl 3Word格式.docx》由会员分享,可在线阅读,更多相关《扫盲什么是 debipa 和 pxl 3Word格式.docx(10页珍藏版)》请在冰豆网上搜索。
常有的压缩格式还有bzip2和lzma,其中lzma压缩率最高,但压缩需要的CPU资源和时间都比较长。
data.tar.gz包含的是实际安装的程序数据,而在安装过程中,该包里的数据会被直接解压到根目录(即/),因此在打包之前需要根据文件所在位置设置好相应的文件/目录树。
而control.tar.gz则包含了一个deb安装的时候所需要的控制信息。
一般有5个文件:
∙control,用了记录软件标识,版本号,平台,依赖信息等数据;
∙preinst,在解包data.tar.gz前运行的脚本;
∙postinst,在解包数据后运行的脚本;
∙prerm,卸载时,在删除文件之前运行的脚本;
∙postrm,在删除文件之后运行的脚本;
∙在Cydia系统中,Cydia的作者Saurik另外添加了一个脚本,extrainst_,作用与postinst类似。
.ipa
使用过MacOS的人可能都知道,Mac下的软件大部分都只有一个.app目录,里面包含了程序全部资源和可执行文件。
简单来说,Mac下的软件就像是Windows下的绿色软件一样,解压后即可使用,不需要安装,卸载的话也只用删除程序文件即可(这里不涉及pkg格式安装包)。
而ipa格式可以视为这种.app软件的衍生物。
ipa文件实质是一个zip压缩包(不是rar或7z包),包含3个组件:
∙payload目录下的.app目录,这个是软件的主程序;
∙iTunesArtwork,实质是一个无后缀名的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管理软件,苹果官方也没有推出AppStore。
由于在1.x时代积累了大量人气,在接下来的AppStore时代中,pxl格式以其相对简易的打包和安装方式,仍然占据了很大一部分市场。
但随着Installer的停止开发,iBrickr等软件停止更新,目前唯一还在坚持使用pxl格式的就只剩下91一家了。
pxl安装包通常包含3个组件:
1.PxlPkg.plist记录程序文件的存放位置、所有者、权限以及软件标识等信息;
2.PkgScript文件夹,存放安装和卸载脚本;
3.程序文件。
PxlPkg.plist文件的开头通常是CFBundleIdentifier,记录着软件的唯一标识,以和其他软件进行区分。
RDPxlPackageVersion则记录软件版本。
RDPxlPackageFireware被用来记录可以运行的固件版本。
其余还有一些键值是用来记录软件介绍、网址、作者信息等数据。
除了软件标识、软件版本和可用固件版本以外,PxlPkg.plist的核心部分就是RDPxlPackageFiles和RDPxlPackagePostflight两项。
RDPxlPackageFiles记录了程序文件应该被复制到的路径,并提供了是否覆盖的参数:
overwrite。
而RDPxlPackagePostflight则记录程序文件应该被赋予的所有者和权限,分别以chown和chmod命令来实现。
另外,对于含有安装/卸载脚本的pxl来说,还会以sh命令执行相应的脚本Postflight和Preremove。
PkgScript通常包含两个文件,安装后执行的脚本Postflight和卸载前执行的脚本Preremove,这两个脚本就是标准的LinuxShellScript,以sh命令执行。
安装包的特点:
∙丰富的资源:
Cydia上本身就不少,更何况任何格式的安装包都可以转换为deb。
∙相对方便的在线购买模式:
CydiaStore,不过尽管没有AppStore的5台设备的限制,但对国内用户来说,付款方式比较困难。
∙破解难度较大,没有使用AppStore的验证方式,所以必须将验证和防破解措施加入程序里面,这样就比较难破解,对软件开发者来说是个好事。
∙完善的Unix文件系统支持:
无需以命令设置文件的权限、所有者和用户组(当然也可以以脚本来设置)
∙完善的脚本支持:
5个脚本依照安装和卸载的先后顺序执行,可以提供更多选择。
比如备份还原操作,可以在preinst中备份文件,而在postrm中还原文件
∙严格的依赖关系:
deb遵循严格的依赖关系(于Depends和Pre-Depends指定),可以确保软件运行所必需的组件。
在线安装的时候会自动安装所依赖的软件包。
卸载时也很重要,比如软件包A依赖于B,当卸载B的时候会提示A依赖于B,卸载掉B的话会导致A不能用,这样可以确保系统的完整性和稳定性。
∙Conflicts、Replaces、Provides等键值的存在可以实现冲突提示或替换其它软件包。
∙完全权限:
由于deb必须以最高权限root的身份运行,deb可以对系统任何位置进行操作,换句话说,deb拥有对整个系统的完全控制,因此deb安装包软件可以实现很多ipa不能实现的功能。
∙相对简单的获取方式(在线或离线)和安装方式,也不用担心在不同机器上同步会删掉程序的问题。
∙安装相对简单:
其实无论是哪种安装包,安装方法都不算很复杂,只不过deb稍微复杂一些。
deb的安装方法大体有5种:
1.Cydia或同类APT管理软件在线安装,这个是最佳的安装方式,因为通常无需考虑依赖关系,但缺点是对网络的要求比较高;
2.命令行中以dpkg-iXXX.deb的形式安装,好处是可以以通配符一次性安装多个deb,而且也可以直接看到脚本的运行状况和安装成功/失败的提示信息,缺点是需要命令行软件的支持,如Putty/WinSCP的控制台/iSSH/MobileTerminal,很多人也不熟悉命令行下的操作。
另外,安装完后会不显示图标;
3.放置于AutoInstall目录重启安装。
该方法实际是Cydia提供的一个启动脚本,在每次系统启动时以dpkg命令安装AutoInstall目录下的deb,好处是不需要命令行操作,缺点是必须要重启,有些甚至要重启两次,也会出现不显示图标的情况;
4.利用iFile安装,好处是图形化操作,桌面会显示图标,缺点是不能一次安装多个deb;
5.用CyderII等软件来安装,其原理是模拟一个APT软件管理器来下载相应的deb文件并传到设备,然后以前面几种方式来安装。
总体来说,deb的安装都是依赖于dpkg-i命令来安装,只不过有些是在命令行下输入命令,有些是提供了图形界面。
但除了Cydia安装一种方式之外,其余几种安装方式都存在一些共有的问题:
∙不会自行搜索依赖关系,必须手动提供所依赖的deb;
∙Cydia会读取安装脚本里的一些特殊语句,比如仅在全新安装时执行而不在升级时执行,安装完成后重启SpringBoard或设备等等。
当然了,deb软件的卸载也比较简单,有两种方式:
∙Cydia里卸载,优点是卸载过程和提示信息很详细,全图形界面操作,同时也提供了重新安装的选项;
∙以dpkg-rPackage_ID命令或dpkg-PPackage_ID命令来卸载(详情后面会说);
∙Cydelete来卸载,优点是可以直接在桌面上卸载有图标的软件,但对那些没有图标的无能为力。
其实,不管是安装还是删除,都可以才要全手动的方法。
即,解包deb之后,自己将文件放到相应位置,然后设置权限等并执行脚本。
但这样有必要么?
deb的安装过程如下:
1.读取数据库并锁定,避免同时有两个安装程序在运行
2.读取control中的Package(软件包标识)和版本信息,并搜索数据库,若已存在,则卸载之后再安装;
3.检查Depends,Pre-Depends,Conflicts和Replaces,如果检测到已存在Conflicts中存在的软件,则报错并终止安装。
如未找到Pre-Depends指定的软件,则报错并终止安装。
如找到Replaces中指定的软件,则卸载之;
4.将数据写入/var/lib/dpkg/status文件中;
5.执行preinst脚本(如果有);
6.解包data.tar.gz,将文件放置于相应位置,并将文件列表写入/var/lib/dpkg/info/XXX.list;
7.运行postinst和extrainst_脚本(如果有);
8.如果之前的安装都没有出错,即安装成功,那么会在status文件中写入Status:
installokinstalled信息,否则会写入其它状态数据,比如Unpacked(未解包数据)、Failed-config(脚本未能成功执行)、Half-installed(安装失败等);
9.重新加载数据库并解除锁定。
deb的卸载过程如下:
1.读取数据库并锁定;
2.根据软件标识搜寻数据库;
3.检查是否有软件依赖于待卸载的软件,如果有则提示,并中断卸载;
4.执行prerm脚本(如果有);
5.读取/var/lib/dpkg/info/XXX.list文件,并删除list文件中记录的全部文件和非空文件夹;
6.运行postrm脚本;
7.如果卸载命令是dpkg-r,则保留status中的记录并改为Status:
Notinstalled;
如果卸载命令是dpkg-P,则删除全部数据;
8.如果卸载过程没有错误的话,重新读取数据库并解除锁定。
由于deb安装的软件可能会在运行时在/var/mobile/Documents下放置存档文件,或在/var/mobile/Library/Preferences下放置设置文件,而这些文件并没有记录在list文件里,所以卸载的时候不会被删除。
AppStore上那么多资源,apptrackr等网站也提供了很多破解版。
∙完善的更新、后期服务。
∙只能使用最小权限,保障安全性。
∙不涉及系统级的操作,所以一般不容易造成死机或白苹果(有些是因为资源消耗太大所以卡死)。
∙便捷的安装方式,无论是直接在设备上用AppStore安装,还是用iTunes来同步,抑或是用Installous和91这类第三方软件来安装,都是很方便快速的安装方式。
∙超级简单的卸载方式:
还有什么比只需要点一个X就能卸载更简单呢?
∙完全删除,不会留下任何垃圾文件(如存档、设置文件等)
∙总体来说破解还是比较容易的,但现在越来越多软件加入了防破解措施。
之前提到过,ipa软件是被安装在一个类似于沙盒的环境中,除了能对/var/mobile/Media/DCIM目录(拍照、截图存放目录)进行操作,或是调用壁纸、铃声、相机等组件,不能对系统进行任何干涉,这样在最大程度上保证了系统的稳定运行,也不会干扰其它软件的正常使用。
但问题是,由于ipa软件的权限很低,想要对系统进行修改,尤其是应用补丁时,ipa就无能为力了。
ipa软件官方的安装方式有两种,一是在AppStore这个软件中下载安装,二是用iTunes同步。
前者的问题主要是网络问题,网速不好很容易安装失败;
GPRS之类的上网安装又很耗流量。
后者的问题主要是不能在不同系统下使用(包含不同电脑和同一部电脑上的不同系统),在其它系统上同步会抹掉原有的软件。
当然了,iTunes每次同步时间比较长也是经常被人诟病的。
尤其是当安装软件比较多的时候,每次同步之前的备份需要很长很长时间,这个很恶心(不过可以直接X掉备份操作)。
由于以上两种方式存在一些问题,所以很多人会选择使用Installous或91来安装ipa,这也确实是个不错的选择。
Installous一般没什么问题,但对部分验证比较严格的ipa处理不是很好。
虽然Installous基本能代替iTunes,但毕竟不完全等同。
最典型的就是Installous安装Microsoft官方出的LiveMessenger(正版,非破解版)时不能运行。
实际上Installous对很多未破解的正版软件支持不是很好。
至于91,经常被人批评。
91虽然可以安装ipa,但除了Installous都有的正版软件的支持问题外,由于91的安装机制有缺陷,软件不能实现多语言,只会使用英文界面,而忽略掉zh_CN.lproj,zh_TW.lproj这些语言包。
这对那些用希望使用汉化版的人来说实在是一个悲剧。
所以通常是要避免使用91来安装ipa的。
至于卸载,三种方法:
∙设备上按住图标直到开始晃动,点击图标左上角的X即可卸载;
∙于iTunes中取消选中,然后同步
∙找到/var/mobile/Applications下的相应目录,强行删除整个文件夹。
这个在前面两种方法无法使用是可以采用(有时候卸载体积太大的软件,比如超过1G,因为删除过程太长导致失去响应并删除失败。
),但这种方法会造成系统的不稳定。
除非是确实碰到了问题,否则强烈建议不要使用。
∙严格来说,pxl格式的资源并不算多,但也不少。
现在使用pxl格式的绝大多数都是91的用户。
∙从时效性上来说,很多软件(主要是AppStore上的)一被人破解就马上会被人转成pxl格式,这样来说,pxl格式的更新还是不错的。
∙由于91手机助手没有iTunes同步会抹掉软件的问题,加上其它一些比较方便的功能,使得很多新手都是从91开始了解并熟悉iPhone/iPodTouch的使用。
其结果是,pxl格式依赖于91而生存。
∙pxl格式的流行也不是历史的遗物,而是符合市场规律的需求。
91助手的便捷的软件管理方式(尤其是支持WiFi管理),加上免费的旗号,使得pxl格式在新手中很受欢迎。
实际上,pxl格式和deb格式具有的功能完全一样。
虽然pxl不能记录文件的权限等数据,但完全可以用脚本来弥补。
即是说,pxl格式和deb格式其实是不相伯仲的。
而且因为pxl格式的制作并不需要比较少见的Unix环境,尤其是Debian环境,其本身是优于deb格式的。
但为什么现在很多人都经常在说不要使用pxl呢?
我个人认为,原因主要有以下几个:
∙资源的局限性:
除了91公司自己开发的几个软件之外,其余所有软件都是从deb和ipa转换而来。
如果原版软件没破解,pxl无能为力(比如Microsoft官方出的LiveMessenger和Cydia上一众没被破解的软件);
∙资源时效性:
跟上面一点相似,pxl格式大部分是从其它格式转换而来,跟原版相比总是会慢一些,尤其是当无法破解时,pxl根本就出不来;
∙打包人水平有限:
现在很多人都是直接用91助手来打包pxl。
对大部分只有一个XXX.app目录的程序来说一般不会有问题,但若遇见那些对文件权限等数据有严格要求的软件(比如可执行文件没有可执行权限,或是mobile用户不能改写root所有的文件等等),或是需要比较复杂的脚本才能运行的软件,往往pxl制作者并没有能力去制作一个完善的pxl出来,这样也导致了许多安装使用上的问题;
∙安全性:
绝大部分人在制作pxl的时候都习惯用chmod-R命令来将整个XXX.app目录及其中的全部文件和子目录设为755/775/777权限,而这种行为会造成一定的安全隐患。
关于这些数字的意思请自行搜索相关资料。
这里简单说明一下。
644属性表示仅有该文件的所有人才可以进行改写操作,其余任何人都只能读取,任何人都不能执行这个文件。
755和775是在644的基础上加入了可执行权限,755是该文件所在的用户组的所有人都可以改写。
而777权限则标识任何人都可以改写并执行。
由于mobile本身是受限账户,如果使用777权限的话,有机会通过这个漏洞来获取整个系统的控制权。
只不过因为iPhone系统相对封闭,也不太有机会造成损失。
但采用775和777权限是不应该的;
∙ipa转pxl的存档问题:
不少人都有这样的经历,在游戏A存档之后再进游戏B,存档B之后再进A,发现A的存档已经不在了。
原因在于,ipa转换成的pxl软件,存档全部是放在/var/mobile/Documents目录下,而正好有两个软件的存档文件名相同(最常见的就是data.sav或save.data),互相改写之后导致不能读取。
这种问题也发生在ipa转deb上,而且无法解决;
∙无法完整删除:
卸载pxl格式时,不会删除存档文件、配置文件、临时文件等数据,长期使用会导致可用空间减少;
∙在部分机型上存在兼容问题:
有些机器越狱后并没有将系统分区中的/Applications目录转移到/var/stash的用户分区中。
由于系统分区的可用空间很少(默认500MB,通常可用空间不超过50MB),强行往/Applications里安装会导致剩余空间消耗殆尽或安装失败。
由此可以看出,pxl格式的问题更多不是pxl本身的问题,而是打包者的问题以及安装方式的缺陷所致。
另外要指出的是,pxl最大的提供者,91,经常是转载他人发布的软件(包括网友自己购买破解的,或Cydia上直接下载的)然后当作自己发布的软件,对版权问题完全不在意,这样也引起了很多人,尤其是原发布者的反感。
这种赤裸裸的剽窃行为实在是令人不耻。
正因为这样,很多人是因为不爽91而不爽pxl,这实在是冤枉pxl格式本身了。
总结:
一般的软件还是尽量用ipa格式,不要使用ipa转换成的deb或pxl格式,这样可以确保兼容性和安全性。
而在系统级的程序(如SBSettings和输入法),ipa是绝无能力的,那么最好的选择还是deb。
pxl作为快被淘汰的格式,还是果断的放弃比较好。
至于ipa和deb的安装方式,ipa的安装首选iTunes同步和AppStore在线安装,次选Installous,以保证最佳兼容性。
deb的安装首选Cydia在线安装,次选除91外的其它任何安装方式。
任何情况下都不推荐用91来安装ipa和deb,因为91的安装机制并不完善,很容易出问题。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 扫盲什么是 debipa pxl 扫盲 什么是