探索未知,记录点滴

macOS完整安装包下载方法

Spread the love

为什么从商店下载的macOS安装包不完整?

怎样才能下载到全量安装包/安装镜像?

自从macOS 10.12 Sierra之后,Mac的官方商店App Store不再为大家保留OS系统的「已购项目」了。也就是说如果你升级后想要降级或者制作U盘安装盘,而这个版本恰好不是该大版本的最后一个版本(比如10.13.6),那么只能通过一些收集镜像的网站下载了,这又存在着可能的安全问题。

因此我建议大家最好安装每个大版本的最后一个release,并且在前文也提供过App Store的下载链接:macOS系统下载。但是最近却发现通过官方商店下载的安装app不再是几个G大小了,而是换成了几十MB的下载安装器(installer)。比如我现在使用的系统是10.13.2,想要升级到10.13.6,需要用这个几十MB的安装器直接升级,颇有一种OTA的感觉。

但是这不是我们所希望的,因为有了完整的系统安装app我们可以制作U盘安装盘,可以制作DMG和ISO镜像。因此本篇文章想和大家探讨一下几种下载完整macOS安装包的方法。

*大版本:指macOS High Sierra、macOS Mojave等

交流群:Newlearnerの水群

《macOS完整安装包下载方法》

校验SHA1值

这是贯穿本文的重要一步,为了保证下载的完整安装包是原版,够清真,我们必须要校验SHA1值。

已经有人帮大家整理好SHA1表了,开源地址:apple-installer-checksums

重点是对于InstallESD.dmg(主安装包)和BaseSystem.dmg(recovery系统)的校验,大家可以在/Applications/Install*OS*.app/Contents/SharedSupport/路径下面找到它们。

校验方法

OSX:

shasum /Applications/InstallOS.app/Contents/SharedSupport/{Base,Install}*.dmg

Linux, etc:

openssl sha1 InstallESD.dmg

Windows 10 (PowerShell 3+):

Get-FileHash -Algorithm SHA1 InstallESD.dmg

官网下载

App Store下载地址:macOS系统下载

这是最清真的办法了,不过你们可能要问:上面不是说现在商店下载的安装包不完整吗?

没错,但是根据我的发现这样的installer只存在于同一个大版本的升级过程中(类似于增量下载)。也就是说,macOS High Sierra的用户想要升级到10.13.6可能会遇到下载一个20多M的installer,但是macOS Mojave商店下载的是完整的安装包,反之亦然。

所以解决思路是:跨大版本下载

首先你需要有跨版本的DMG或者ISO安装镜像一个,并通过pd安装好macOS系统,前文之述备矣这里就不啰嗦了。安装好之后在跨版本的macOS里面下载好之前或者之后的大版本安装包,并移植到物理机使用即可。

e.g. 我用macOS Mojave虚拟机通过商店下载好macOS High Sierra的安装包,并且是完整的

《macOS完整安装包下载方法》

这个办法可能有点强人所难,我只想要下载安装app用于升级或制作安装U盘,却要下载跨版本的镜像和虚拟机软件。

魔改Installer

只有一个20多M的installer也是有办法get到完整的安装包的。首先去商店下载该installer,然后点击安装运行,会看到下载进度条(如果不放心可以分一个宗卷,然后选择安装在该宗卷里):

《macOS完整安装包下载方法》

这个时候前往该宗卷,可以看到已经有了一个名为macOS Install Data的文件夹。耐心等待下载进度条走完,然后不要点击「重启以安装」,而是在左上角的菜单栏点击退出。

让我们来分析一下正常情况下一个安装包的contents结构:

macOS High Sierra.app
             └── Contents
                          ├── _CodeSignature
                          ├── Frameworks
                          ├── Info.plist
                          ├── MacOS
                          ├── version.plist

                          ├── PkgInfo
                          ├── PlugIns
                          ├── Resources
                          └── SharedSupport

                                        ├── AppleDiagnostics.dmg
                                        ├── BaseSystem.chunklist
                                        ├── BaseSystem.dmg
                                        ├── InstallESD.dmg
                                        ├── InstallInfo.plist
                                        └── AppleDiagnostics.chunklist

其中通过Info.plist可以看到安装包的版本号,而installer和安装包有着高度相似的目录结构,只是少了一个SharedSupport文件夹。因此我们可以通过增加installer的contents从而将installer转变为完整的安装包。

/Applications/InstallOS.app/Contents/里面创建一个名为SharedSupport的文件夹,并把刚刚下载好的macOS Install Data文件夹中的所有文件拷贝到新建文件夹,即制作完毕完整安装包。

此时我们可以按照前文所述,利用这个安装包制作U盘安装盘或者镜像。

macOS Patcher

官网地址dosdude1.com

用途:本来该Patcher是用来制作特殊的U盘安装盘或者安装镜像以支持旧款Mac,我们这里只用到下载安装包这一功能

下载

macOS Sierra Patcher

macOS High Sierra Patcher

macOS Mojave Patcher

macOS Catalina Patcher

使用

打开该Patcher,在菜单栏点击下载macOS High Sierra即可

下载完毕不要忘记校验SHA1值

《macOS完整安装包下载方法》

根据我的抓包记录,该Patcher和官方途径下载使用的链接并无二致,因此大家可以放心使用。

《macOS完整安装包下载方法》

《macOS完整安装包下载方法》

Python脚本下载

开源地址macadmin-scripts

下载installinstallmacos.py到Mac,然后用python运行,如图:

《macOS完整安装包下载方法》

该脚本的原理是爬取苹果官网下载链接并收集所有可供下载的os,目前可供下载的os如下:

选择你要下载的镜像并回车即可。该脚本下载使用的链接经过抓包也是官网链接,放心使用。

下载完毕不要忘记校验SHA1值

后记

当然,大家也可以使用论坛或者各大苹果网站分享的完整安装包,这些大多是专门整理收集来的,不过一定要注意校验SHA1值。一些非最终版本的安装包只能通过这种途径下载(比如10.13.2)。因此也提醒大家安装完系统之后一定要备份安装app以备不时之需。

博主在思考下载完整安装包的方法时,也曾经想过使用mas-cli。不过局限于App Store命令行存在商店下架就无法下载等弊端并没有成功,如果大家有其他方法也欢迎交流。

至此,从完整安装包下载到制作DMG和ISO镜像再到安装虚拟机,从U盘安装盘制作到系统安装,本博客已经形成了完整的体系。

参考文章:

dosdude1.com

macadmin-scripts

apple-installer-checksums

打赏 赞(5)
支付宝二维码图片

支付宝扫描二维码打赏

  1. 匹老板说道:

    今天跟着大佬们的教程学做U盘启动盘的时候,我懵逼了,怎么直接重启更新系统了,我这还没做启动盘呢。然后装那个 macOS Patcher ,我找了半天没找到菜单栏,最后发现原来苹果系统把菜单栏统一放在最上面,跟 Windows 不一样。哈哈,小白闹了很多笑话,怎么说,楼主的文章是中文网络少有的高质量教程,必须顶 !

    1. Newlearner365说道:

      谢顶,希望小站能给喜欢Mac的朋友解决一些困扰~

  2. 猫叔说道:

    你这个更多文章是插件还是自己写的?

    1. Newlearner365说道:

      是一款名叫 先荐 的Wordpress插件

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Recommended
一年前的今天,一位刚…