黑苹果(macOS 12.3.1)安装实录-U盘引导EFI文件夹制作

caocao1年前教程251

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi

各位好 又见面了 我是曹操 今天给大家带来一篇新的教程

希望各位细心学习 低调用网

cdlinux如何通过u盘启动

摘要

进入到了这部分,才算真正开始折腾黑苹果,也是安装黑苹果中最有乐(tong)趣(ku)的地方。因为苹果只在自家发售的产品中搭载macOS(这也是我之前认为它封闭的原因),所以macOS和Windows最大的不同就是,macOS从不考虑兼容性只按照自己的逻辑加载自己认识的硬件。所以要装黑苹果就需要在启动macOS系统之前,利用引导工具对我们的PC电脑进行一定的伪装,让macOS认为它正在运行在自家的硬件上。上述的引导工具一般指的是Clover、OpenCore等(更早的还有Chameleon),目前一般大家用的都是OpenCore,所以后面使用的也都是OpenCore引导。所以这部分的主要工作就是根据自己的硬件配置OpenCore,伪装自己的硬件,让 macOS 认为自己运行在苹果自家的硬件上。因为以下内容涉及到很多硬件方面的专业知识,我也只是将我对其的理解和认知用最简单的方式表述出来,可能会有某些偏差和错误,也希望大佬多多指正与补充。需要注意的是:本文所使用的 OpenCore 版本为 0.8.0 ,所以相关的配置也仅适用于 0.8.0 版本,如若你的版本没有相关的设置,请勿随意添加,最好查看对应版本的官方手册。

下载OpenCore

OpenCore: OpenCore的每个发行版一般都有两个版本,分别是debug版本和release版本。debug版本拥有更丰富的输出和调试功能,方便安装和排错,适合安装调试时使用;release版本的启动速度会更快,适合生产环境中使用。不管是哪个版本,下载下来的目录结构都是相同的:因为目前还在安装调试阶段,所以我们先选择debug版本,以方便查看输出进行排错或者在社区、论坛进行求助。我们先将 X64 文件夹里的 EFI文件夹 解压到桌面,后续所有的工作都会基于该文件夹进行。

EFI文件夹的目录结构

cdlinux如何通过u盘启动

配置 OpenCore 引导

ACPI 文件夹: 首先,我们先来配置ACPI文件夹里的内容。默认情况下,该文件夹是空的。但在OpenCore中,ACPI文件夹下的SSDT文件是必不可少的(主要会对CPU、EC控制器、AWAC、USB控制器几个硬件进行一些处理),但SSDT的上手却没那么简单,好在有大佬制作了一些通用的SSDT文件,我们直接按需取用就好。点击此处打开网站(#what-ssdts-do-each-platform-need),根据自己的电脑的类型(台式机、笔记本、高性能台式机)、平台代号(即CPU的平台代号)来选择适用于自己的SSDT文件。

cdlinux如何通过u盘启动

因为我的是第十代CPU和华硕主板(请根据自己的实际情况选择),所以我需要的是 SSDT-PLUG、SSDT-EC-USBX、SSDT-AWAC、SSDT-RHUB这四个文件,下载这四个文件并放入ACPI文件夹中。

cdlinux如何通过u盘启动

Drivers 文件夹: 接着我们来配置Drivers文件夹下的内容。默认情况下,这个文件夹下有很多文件,但其实我这次仅需要 OpenRuntime.efi 这一个文件。除此之外,我们还需要 HfsPlus.efi (该文件不是OpenCore自带的文件,需要单独下载)我目前这个硬件的安装只需要这两个驱动文件即可,不建议在该文件夹中放入不必要的驱动,否则导致OpenCore启动失败。

cdlinux如何通过u盘启动

Kexts 文件夹: 接着,我们就可以准备我们的Kexts文件夹。该文件夹内存储的便是macOS内核扩展,就是大家说的macOS驱动。默认情况下,该文件夹是空的,所有的kext文件都需要我们自己去下载。(kext文件在Windows系统下是以文件夹的形式存在,所以请勿随意修改文件夹里的内容)因为kext文件比较多,这里只介绍几个我需要的kext,更多kext可以参考这里的介绍。kext在下载的压缩包中,也会有debug和release两个版本,与OpenCore的两个版本的解释相同。为了后面的方便,我都选择的是release版本。appleALC 通用声卡驱动,基本上能驱动大部分的板载声卡。下载后的压缩包中还有一个名为 appleALCU 的kext,这个是 appleALC 的精简版。WhateverGreen 通用显卡驱动NVMeFix 因为我用于安装macOS的硬盘是NVMe固态硬盘,所以加上这个kext。

cdlinux如何通过u盘启动

以上便是我首次安装使用的kext,还有几点需要注意:

Resources 文件夹: 该文件夹是OpenCore的主题文件夹。默认情况下,该文件夹下有Audio、Font、Image、Label几个空文件夹。暂时我们先不处理这个文件夹,等后面专门来进行OpenCore界面的美化。

Tools 文件夹: 该文件夹里存放一些 OpenCore 的工具,可以在 OpenCore 引导界面进行使用。在 OpenCore 引导界面中,这些工具默认是隐藏的,按 空格键 即可显示出来,可以直接使用。默认情况下,该文件夹下预制了很多工具,既可以都保留,也可以按需保留。我只留下了几个可能会用到的工具:

cdlinux如何通过u盘启动

config.plist: OpenCore的配置文件,默认情况下是没有这个文件的。这个文件即为下载的 OpenCore的 Docs 文件夹下的 Sample.plist 文件。把它复制到 EFI 文件夹下,并修改文件名为 config.plist。

cdlinux如何通过u盘启动

安装 Propertree: 有很多工具可以编辑 *.plist 文件,这里使用官方推荐的 ProperTree 工具(需要有Python环境)。下载并解压后,可以直接运行 ProperTree.bat 文件打开编辑器窗口,然后在 EFI 文件夹下打开要编辑的 config.plist;也可以运行 ProperTree.exe 文件进行关联,之后直接双击 *.plist 文件即可直接用 ProperTree 打开。

配置 config.plist: 使用 ProperTree 打开 config.plist。最上面的几个 WARNING 可以删掉,也可以保留,都是已经注释掉的内容。

加载OC文件夹内的所有文件: 默认情况下,ACPI、Kernel、UEFI等节点下并未加载我们刚刚放入 EFI 文件夹内的那些文件,所以我们首先需要把那些文件加载到 config.plist 中,不然和没放入那些文件一样。点击 File -> OC Clean snapshot,然后在弹出的窗口选择 EFI 文件夹,ProperTree 将自动加载你放入文件夹的所有文件。(如果弹出了某些关于kext的提示,即说明某些kext之间可能存在冲突情况,你需要删除或者禁用它)注意:config.plist 中加载的文件必须要存在于文件夹中,否则 OpenCore 将报错。所以不论修改了任何文件夹中的任何文件都建议使用ProperTree更新config.plist文件。

下面关于config.plist并不能通用,因为我对这部分的理解也不深,所以仅贴出来我的配置。具体各平台的配置方式及解释可以参考 这里 ,或查看 Configuration.pdf 文件。

ACPI: 在该节点下的 Add 节点,即可看到我们刚刚放入 ACPI 文件夹下的4个SSDT文件。只要检查放入文件夹的文件是否都存在于 Add 下就行,其余的配置我们保持默认。

Booter: 这部分我也是照猫画虎,按照大佬的配置的。

DeviceProperties: 该部分主要是设置硬件的,可在此位置通过仿冒ID来驱动核显、声卡、网卡等设备,也可以在此处完善PCI信息等。若要配置该部分需要有硬件的 Device Path ,这个等安装完系统后,使用 Hackintool 或者 gfxutil 等工具查看。配置文件中默认有一个是板载声卡的配置,但因为我们声卡的Device Path不一定与预制的相同,所以可能无效。为了能顺利安装系统,若非必要,我们先不管这个节点里的内容,都保持默认即可。

Kernel: 该节点下,我们首先检查放入 Kexts 文件夹下的kext文件是否都存在于 Add 节点下。这里还有一点需要注意一下,因为大部分的kext都依赖于Lilu.kext,所以同步确认下Lilu.kext是否在Add节点下的第一项(正常来说 ProperTree会自动把Lilu.kext放在首位)。

根据我的配置,我只需要再配置 Quirks 下的这两项即可。有很多教程中更会将appleCpuPmCfgLock和appleXcpmCfgLock两项设置为True,但如果你确认你的主板已经解锁CFG Lock的话,将其保持默认即可。

Misc: 该节点下,我的配置只需要配置 Debug 和 Security 下配置即可。这项默认为,设置为 则会每次启动都会在引导分区的根目录下生成一份log文件,方便后续排错及求助,如果不需要可以保持默认。

NVRAM: 该节点下,与我主要相关的就是 7C436110-AB2A-4BBB-A880-FE41995C9F82 下的内容。boot-args 里的配置即为启动参数,这里的启动参数的优先级最高,会覆盖所有的配置,比如alcid便会覆盖DeviceProperties中对appleALC.kext的配置。具体每个参数的作用可以在 这里 查看。prev-lang:kbd 指的是键盘布局,默认的好像是俄语布局,我们直接删除保持为空就好。

PlatformInfo: 该节点下,我们主要配置 Generic 下的内容。简单说,我们除了要仿冒苹果电脑的硬件外,我们还需要仿冒一个苹果电脑的SMBIOS信息,即我们要告诉macOS,它正在运行是哪个苹果已发行的电脑上。关于SMBIOS我们可以使用 GenSMBIOS 生成,该工具的下载方式与 ProperTree 相同。在Windows下运行 GenSMBIOS.bat 即可。GenSMBIOS 生成 SMBIOS 信息。GenSMBIOS的首次使用,估计99%会因为遇到网络问题而无法生成。解决的方式也很简单,其实主要就是下载macserial文件失败引起的,所以我们只需要把下载的OpenCore压缩包内 下的 macserial.exe 文件(Windows下复制exe文件)复制到GenSMBIOS文件夹下就行。

然后我们双击 GenSMIBOS.bat 运行脚本,进入主界面后,输入(生成 SMBIOS),然后输入与你的配置最接近的苹果电脑的型号,该型号不能乱填,否则可能会导致某些硬件无法驱动或功能无法使用。可以参考 SIMBIOS ID、Platform-ID速查表() 查找适合你的型号。因为我的台式机是使用10代 i9 处理器,所以型号是 iMac20,2。

然后你就能看到生成的 SMBIOS 信息了。这里有一点需要注意下,生成了以下信息后,最好去苹果的官方网站()上查一下序列号(Serial)的有效性,如果通过该序列号查到了有效的保修日期等信息,那就证明有一台已上市的苹果电脑正在使用这个序列号,那咱们最好重新生成一次SMBIOS信息。如果继续使用这个序列号,有可能导致后续登陆的appleID被封号等问题。除此之外,信息中的 apple ROM 即为网卡的物理地址,可以使用工具生成的,也可以使用你真是网卡的物理地址(此处主要涉及到 iServices 即苹果的各项服务是否正常)。Windows下可双击网络适配器→详细信息中查看物理地址,去掉“-”即为ROM的值。另外,也看到一种说法是:若 SmUUID 与Windows下主板的UUID不同,在OpenCore引导Windows的时候可能会引起蓝屏。所以可以使用 AID64 查看自己主板的UUID,作为SmUUID。这里我就直接使用生成的SmUUID了。

UEFI: 该节点下,首先我们检查 Drivers 下是否都加载了我们之前放在 Drivers文件夹 下的efi文件。然后其他设置暂时先保持默认即可。

到此为止,我们的 OpenCore 已经完成一大半了,但先别急,还记得我们之前反复提到的USB问题吗?

现在我们就来定制USB,在安装之前最后完善我们的EFI文件夹。

USB定制: 因为主板以及准备安装的macOS 12.3.1的原因,我们需要在安装系统前进行USB定制,否则可能会导致在安装时没有USB口可用或只有USB 2.0接口可用。(ProArt Z490-Creator这个主板背板没有USB2.0接口)另外一点还需要了解的是,macOS一直有一个限制,就是每个USB控制器下面最多可以激活15个端口,所以我们在定制USB的过程中如果发现某个USB控制器下的端口超过15个的话,便需要进行一些取舍。在开始之前,个人建议需要准备纸笔,因为一会儿我们需要在记录每个USB接口的端口号(Port),以方便我们进行取舍。

关于USB的基本信息: 正式开始之前,我们先简单介绍下几种USB接口的类型:

先了解了上面的信息,有助于我们后面的操作。如果遇到端口数量超过15个的情况,我们有以下几种选择:

可以根据你的USB口的实际使用情况自主选择,比如我在背板的USB3接口上插了鼠标键盘,那么我完全可以禁用掉这两个USB接口的USB3端口,让其只支持USB2设备,可保证鼠标键盘正常使用即可。

开始USB定制: 下载 USBToolBox。USBToolBox分为两部分:kext (USBToolBox.kext) 和使用USBToolBox在Windows下进行USB定制。

简单说USB定制的过程如下:

下面我们开始第一步,双击打开 Windows.exe 。如果是第一次打开,会看到 Saved Data 为 ,如果此处显示为 说明在目录下已经存在了一份USB接口数据。个人建议是先删除之前保存的数据,不然在后面选择端口时会多显示一个USB控制器(也可能是个案,仅供参考)。

正常情况下,我们输入 先让程序扫描下我们主板上的USB控制器及所有端口。

经过扫描后,我们在该界面中即可看到电脑上所有的USB端口,并且每过5秒界面刷新,更新当前USB信息。接下来的操作就比较费体力了,我们最好能准备一个USB3.0设备(如,U盘)和USB2.0设备(如,鼠标、键盘等)。如果嫌麻烦,只准备USB3.0的设备就行,一般来说该工具会自动检测该USB3接口所关联的USB2端口。

首先,建议先观察下电脑上所有USB接口的布局,并画在纸上,对一会儿的操作进行记录。比如我的就是这样:

然后我们便可以拿出我们准备的USB设备,把每个USB接口都插一遍(5秒左右),然后观察工具界面的变化。界面中新增的变绿这行,就是当前插入的USB口对应的端口。然后我们便可以在纸上记录对应位置的USB口的端口号。循环此操作,直到我们用USB3.0和USB2.0设备把所有的USB口都插一遍。

结束后,程序界面基本上是这样的:

我们在纸上记录的结果也大致如此(其中中间的数字为端口号的十进制表达,最右侧的为十六进制表达):

接下来我们输入 返回上级菜单,再输入 进行端口的选择。在该界面中,我们可以直接输入序号,切换其是否是选中的状态,也可以输入 清空所有的选择,输入 选择所有端口。我的最终选择如下,稍微解释下:

检查无误后,我们输入 生成 UTBMap.kext 文件。正常情况下,该文件生成在 Windows.exe 的同级目录下。

然后我们进入 UTBMap.kext 文件夹中的 Contents 文件夹,找到 Info.plist 文件并打开,手动删除Port 13、Port 14。

我们打开 IOKitPersonalities 节点,下面的两个即为我们主板上USB控制器的地址,找到刚刚超过15个端口的控制器,打开下面 IOProviderMergeProperties 节点,其下面的 ports 节点即为各个节点的详细信息。

我们该如何找到要删除的Port 13、Port 14两个端口呢?

这时刚刚记录的端口号的十六进制的表达就起作用了,我们会发现每个端口详情下的 port 中记录的即为该端口好的十六进制数值。所以我们找到 port 值为 和 的端口并删除即可。

删除后,我们保存这个Info.plist文件。

加载 USBToolBox.kext 和 UTBMap.kext 文件: 最后,我们把 USBToolBox.kext 和 UTBMap.kext 这两个文件放入 EFI 文件夹下,并使用 Propertree 的 OC Clean snapshot 功能更新 config.plist 文件并保存即可。

到目前为止,我们已经根据自己的硬件定制了一个EFI文件夹,最后我们把这个EFI文件夹放入U盘的EFI分区即可。

安装 OpenCore 引导: 我们把之前制作的macOS安装U盘插入电脑上,因为U盘格式化的为HFS格式,所以插入Windows系统下会提示格式化,千万别点格式化。因为Windows不认HFS格式的文件系统,所以我们使用 DiskGenius 安装OpenCore。

打开 DiskGenius ,找到插入的U盘,选中下面名为EFI的分区,切换到 浏览文件 tab下。

正常情况下,该分区应该是空的,如果不是空的,可以全部选中右键,彻底删除文件。

清空了该分区后,我们把刚刚制作的EFI文件夹拖到这里,复制到EFI分区里即可。

相关文章

Kali使用Aircrack-ng进行暴力破解WIFI密码

Kali使用Aircrack-ng进行暴力破解WIFI密码

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi 各位好 又见面了 我是曹操 今天给大家带来一篇新的教程 希望各位细心学习 低调用网 前言 最近整理了一些奇安...

Win10.gho镜像文件U盘安装教程

Win10.gho镜像文件U盘安装教程

U盘gho系统文件如何安装系统 安装须知 如果是新电脑或电脑系统无法启动,制作U盘启动盘需要借助另一台可用的电脑。 如果运行内存2G以下,安装32位(x86)系统;如果内存4G及以上,安装64位(x...

EWSA 破解wpa无线密码握手包的好工具

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi 各位好 又见面了 我是曹操 今天给大家带来一篇新的教程 希望各位细心学习 低调用网 EWSA无线网破解握手包...

rar密码忘记了怎么解除 Hashcat号称是世界上最快的密码恢复工具

rar密码忘记了怎么解除 Hashcat号称是世界上最快的密码恢复工具

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi 各位好 又见面了 我是曹操 今天给大家带来一篇新的教程 希望各位细心学习 低调用网 有关于rar密码忘记了怎...