在做MAC OSX的 MDM的功能的时候,看到官方文档分发app,使用的是pkg格式的文件,且对软件的加密也是以pkg文件为例的,所以看了下pkg和app的文件的区别
dmg文件
dmg是MAC苹果机上的压缩镜像文件,相当于在Windows上常见的iso文件。我现在安装的非苹果商店的软件,基本上下载下来都是dmg格式的,然后里面携带着.app软件及一个MyApplications(mac电脑应用程序的快捷方式),安装时,直接将.app文件拖到此文件夹目录上即可完成安装
pkg文件
pkg文件也就是安装包配置文件,pkg中包含安装路径等信息,
将app文件转成pkg文件
方法1: 使用productBuild命令
步骤如下:
- 将dmg中的app文件拖拽到一个单独文件夹(也可以不拖拽,大家知道路径就行,)
- 将app右键show in finder 点击contents 找到info.plist文件也放到刚刚的文件夹
- 然后开始打开终端,使用命令: productbuild**
// 下面的/Applications 是app文件的安装目录
productbuild --product [Plist文件路径] --component [app文件路径] /Applications [导出文件路径]
上面的命令如下:
productbuild --product /Users/Apple/Desktop/QDSkyD/Info.plist --component /Users/Apple/Desktop/QDSkyD/QDSkyDrive.app /Applications /Users/Apple/Desktop/QDSkyD/QDSkyDrive.pkg
方法2: 使用pkgbuild命令
pkgbuild --component [app文件路径] --install-locatopn [App安装路径] --sign [使用的签名证书]
[pkg文件的导出路径]
上面的命令也可以将app文件转成pkg文件,但是此方法转换为的pkg文件和productbuild文件转化为的pkg文件解压之后内容不同,
解压使用不同命名转换的pkg文件
//解压方式1:
xar -xf Setup.pkg
cat qdskyDrive.pkg/Payload | cpio -i
//解压方式2 2选1
pkgutil --expand qdskyDrive.pkg ~/Desktop/12(此文件夹名自己写一个不存在的 系统会给创建一个)
-
使用pkgbuild命令解压结果:
三个文件,分别是
1.Bom文件
2.PackageInfo文件
3.Payload文件
具体作用还没分分析
-
使用productBuild命令解压如下:
具体区别再分析一下,尝试对立面的pkg再次解压,解压失败(Could not open package for expansion:///***.pkg)