黑苹果OpenCore生成三码,修复苹果系统下自家服务FaceTime、iMessage、App Store 无法使用
本次要介绍的主题就是如何科学地生成三码,搭配 OpenCore 使用,同时解决一些苹果服务(iCloud/App Store/FaceTime/iMessage/随航)不能正常使用方面的坑。 在开篇之前直接告诉你,和硬件配置相关的问题都很好解决,「最重要的是」你有一个记录良好的 Apple ID:App Store 和 iMessage 没有黑历史;账号注册及使用时间越长越好;账号下绑定了多个苹果设备并且有 App Store 的消费记录就更好了。有了这种 Apple ID,三码问题和各类苹果服务不能用的情况基本不会在你这里出现。与之对应的另一种情况就是:一个新注册的 ID,没有绑定任何设备,没有消费记录甚至没有绑定支付方式,这样的账号在苹果的服务器看来就是一个机器人账号,新账号 + 黑苹果,基本上一登录就会被自动拉黑。
也有一种说法,苹果公司其实早就能精准识别出发自黑苹果系统的请求,只是对于绑定了多个设备和服务的老账号他们选择了网开一面,对于新账号是绝不留情,登陆一个封禁一个。也许这就是造成有人规规矩矩该做的都做了始终无法登录,而有的人却可以使用 W00000000001 这种序列号直接登录的原因吧。 当然,我们不能强求每个黑苹果用户在接触黑苹果之前都拥有苹果公司的产品,如果你是纯新人,注册新 Apple ID 的时候「请务必绑定」一种支付方式;如果愿意的话可以往账号里进行一定量的充值或直接消费;如果方便的话,也可以先去线下苹果店,在他们的演示设备上登陆你刚注册的 ID(如果对方允许),总之就是用各种操作模拟一个正常账号的使用情况,以规避苹果公司严格的新账号检查机制。
最后,请认真阅读文章内容,多检查几次确保自己做对了每一步。如果最终你把自己的 Apple ID 搞上了苹果的黑名单,黑苹果星球无法为你的账号负责,因为黑苹果本身就是风险。当然,上榜黑名单一般都能解,只是方法只有联系苹果客服解除400这一条路,很麻烦。 好了,让我们进入正题。
什么是苹果三码?苹果的生态是一套完整的闭环,每一个苹果硬件产品都有独一无二的 SMBIOS ID,也就是机型 ID,当然其中也包括整个 Mac 产品线,这个机型 ID 决定了下面要提到的序列号、主板序列号和 UUID,它们都有和机型 ID 对应的编码规则,这点是非常确定的,所以三码不能胡乱套用,必须和机型 ID 匹配。 对于如何选择合适的 SMBIOS ID,老手应该心里有数不会有问题。对于不明白的新手,看下面的例子: 假如你拥有类似如下配置的 PC: - 处理器:i7-10700K
- 显卡:Radeon RX5700XT
那么你可以选择 iMac20,2 ,这是 2020 年中发布的 iMac 27 寸高配的机型 ID,你会发现它的配置和你的 PC 比较接近: - iMac20,2 / 27寸
- 处理器:i7-10700K / i9-10910
- 显卡:Radeon Pro 5300 / 5500XT / 5700 / 5700XT
不管是 i7-10700K 还是 i9-10910,他们使用的都是(英特尔给苹果定制的)类似 400 系的芯片组和对应的 ACPI,RX 5700XT 是普通桌面端显卡,Pro 5700XT 则是专业显卡,二者架构和参数相同,专业显卡只是多了一些专业计算功能的支持。所以,机型 ID 的选择必须贴近你的硬件配置,以避免出现兼容性问题。苹果的 Mac 究竟有哪些硬件?请参考:SMBIOS ID 速查表。 选定了机型后,下一步就是三码,具体是哪些?请看: - MLB:Main Logic Board serial number,主逻辑板序列号
- SystemSerialNumber:正如其名,系统序列号
- SystemUUID:System Universally Unique Identifier,系统通用唯一识别码
除了上面这三个之外,和苹果服务相关的还有 ROM 值,黑苹果一般用网卡 MAC(Media Access Control Address)地址代替,除此之外还有另一种白苹果 MAC 地址混搭的方法,下文会一起介绍。 生成三码 对于新手而言,需要简单了解一下 OpenCore 的文件结构,一套基础的 OpenCore EFI 文件应至少包含如下结构:
EFI
├── BOOT
│ └── BOOTx64.efi
├── Resources
└── OC
├── ACPI
│ ├── ssdt-PLUG.aml
│ ├── ......
│ └── ssdt-USBX.aml
├── Drivers
│ ├── OpenCanopy.efi
│ ├── ......
│ └── OpenRuntime.efi
├── Kexts
│ ├── Lilu.kext
│ ├── ......
│ └── WhateverGreen.kext
├── OpenCore.efi
├── config.plist
└── Tools
├── ChipTune.efi
├── ......
└── VerifyMsrE2.efi
我们常说的“修改 OC 配置文件”指的就是修改 /EFI/OC/ 目录下的 config.plist 文件,这是 OpenCore 的核心配置文件。考虑到目前已经有各式各类的工具可配置 OpenCore,这里提供多种工具和方法,选择其中之一即可: - OpenCore Configurator:简称 OCC,和开发 Clover 配置工具的是同一个团队,优点是拥有逻辑清晰的图形界面,操作比较直观;缺点是只有 macOS 版本,并且偶尔会出现污染配置文件的情况,使用前注意备份;
- OCAuxiliaryTools:OpenCore 配置工具中的后起之秀,优点是拥有跨平台客户端,支持 Windows、macOS 和 Linux,拥有图形界面,操作比较直观;缺点是功能排版上稍显凌乱,和 OCC 一样偶尔会出现污染配置文件的情况,使用前注意备份;
- ProperTree:使用 Python 编写的跨平台 Plist 编辑工具,优点是可跨平台,支持 Windows、macOS 和 Linux(Python),通常情况下不会污染配置文件;缺点是虽然拥有图形界面,但却是一个树状的编辑器,和前两者不是同一个概念,因此操作上没有前二者方便;
- Visual Studio Code:严格来说这是一个代码编辑器,同类型的还有 Sublime Text,UltraEdit 等,其优点是自由度较高,不会污染配置文件;缺点是没有代码基础知识没法使用,较高的自由度也带来了犯更多错的可能;
挂载 EFI 分区
如果你已经进入 macOS,可以使用 Clover/OpenCore Configurator 等工具挂载 EFI 分区,OpenCore Configurator 方法:
如果你不愿意使用配置工具,也可在终端使用下面的命令:
# 列出磁盘和分区列表
diskutil list
# 挂载指定的分区
sudo diskutil mount disk1s1
每次只执行一个命令,其中 disk1s1 需要根据你实际情况填写,一般情况下,当前系统的 EFI 分区是 disk1s1。 如果你还在 Windows,打开 EFI 文件夹,找到 config.plist,使用代码编辑工具打开即可;如果你的 EFI 文件在 U 盘里,可使用 DiskGenuis 等软件将 EFI 文件夹拷贝到桌面,修改后再拷贝回原来的位置。
OpenCore Configurator 方法
运行 OCC,使用它加载你的 config 文件,切换到 PlatformInfo → DataHub-Generic-PlatformNVRAM,找到 Generic 部分,见图:
点击图中所示位置即可选择机型:
选择后,OCC 即可自动为你生成对应的数据,最后可按下图生成 ROM 值
- 注意:如果你有前文提到的「给力的 Apple ID」,那么一般情况下使用随机值基本没有问题,如果遇到问题请看「验证序列号」部分;绝大部分数据使用自动生成的即可,其中只有 ROM 和 SystemUUID 需要单独说明,这部分请看对应的数据解释部分;
- 老生常谈,使用 OCC 请一定要注意它和 OpenCore 本身的版本对应关系,例如使用 2.35.0.0(默认对应 OpenCore 0.6.8)去编辑 OpenCore 0.6.5 的 config,肯定要出问题,使用前注意备份;
- 需要勾选 add this section in config.plist 的部分是 Generic 和 PlatformNVRAM,其它部分可留空;
- OCC 2.11.0.0 到 2.18.0.0 版本中生成序列号的功能需要联网,但默认连接的是 GitHub,国内经常无法访问,可手动在软件偏好设置中修改源为 Gitee 或 CSDN;
复制代码
OCAuxiliaryTools 方法
OCAT 拥有跨平台版本,各个平台上没有区别,所以这里以 macOS 为例。运行 OCAT,使用它加载你的 config 文件,分别切换到 PlatformInfo → Generic 和 PlatformNVRAM,先找到 Generic 部分,点击图中所示位置即可选择机型,见图
点击生成即可生成对应的数据,然后切换到 PlatformNVRAM,如图所示填写:
OCAT 没有提供生成 ROM 的功能,因此这个部分参考 ROM 数据解释部分。 - 注意:如果你有前文提到的「给力的 Apple ID」,那么一般情况下使用随机值基本没有问题,如果遇到问题请看「验证序列号」部分;
- 绝大部分数据使用自动生成的即可,其中只有 ROM 和 SystemUUID 需要单独说明,这部分请看对应的数据解释部分;
- 老生常谈,和 OCC 问题一样,使用 OCAT 请一定要注意它和 OpenCore 本身的版本对应关系,使用前注意备份;
- 只需填写 Generic 和 PlatformNVRAM 部分,其可留空,页面下方的选项可照图选择;
复制代码
关于 ROM 值这里的 ROM 指的是网卡 MAC 地址,MAC 指的是 Media Access Control Address,也称为物理地址或以太网地址,用于确认网络设备位置的位址。 在白苹果电脑中,这个值可以对应火线接口(FireWire,目前已被淘汰),或以太网,甚至雷电接口的 MAC 地址,共 12 位,前 6 位是通用的苹果设备前缀代码,后 6 位是系统唯一的。 在黑苹果中,这里可以是你自己真实的网卡 MAC 地址,也可以根据白苹果的 MAC 规则自行仿冒一个。如果你的黑果子在使用 App Store 或 iCloud 时遇到问题,可尝试两种不同的组合。 真实 MAC 地址真实的 MAC 地址,可以在以下几处找到: - BIOS
- macOS:系统偏好设置 → 网络 → 以太网 → 高级 → 硬件 → MAC 地址
- Windows 10:左下角开始 → 设置 → 网络和 Internet → 以太网 → 网络 → 物理地址(MAC)
你会找到两种形式: # Windows
1F-1D-8A-45-36-6A
# macOS & 其它
1F:1D:8A:45:36:6A
因为 OpenCore 的 config 中 ROM 值要求为 Data 格式,不接受连接符和冒号,删除后得到要填入的 ROM 值:1F1D8A45366A
仿冒白苹果 MAC 地址在白苹果中,12 位的 ROM 前 6 位是通用的 苹果设备前缀代码,直接在页面中搜索 Apple, Inc. 即可搜索到苹果设备的前缀,例如: - 00:17:F2 Apple Apple, Inc.
复制代码然后补齐后 6 位,可自己编,也可以套用你自己的 MAC,例如: 因为 OpenCore 的 config 中 ROM 值要求为 Data 格式,不接受连接符和冒号,删除后得到要填入的 ROM 值:0017F245366A
注意:这里的值是十六进制,意味着只能使用 0-9 和 A-F 这个范围内的字符,如果自己编请注意;更进一步,如果有条件可以直接套用白苹果机型的 MAC 地址。 SystemUUID 补充说明这是一个独一无二的编码,用于识别单个系统或硬件设备。在黑苹果中,一般使用自动生成即可。但是如果你有使用 OpenCore 引导 Windows 的需求,双系统的 UUID 不一致可能会导致 Windows 激活状态失效。因此,可以抓取 Windows 中的 UUID,套用到 OpenCore 中。 通过 OCAuxiliaryTools 查看在 Windows 中运行 OCAT,切换到硬件信息,找到其中的 UUID 一栏,即可直接套用到 config。 通过命令行查看按下 Win + R 运行 CMD,或按下 Win + X 运行 PowerShell,先输入 wmic 再输入 csproduct 或 csproduct list full : - C:\Windows\system32>wmic
- wmic:root\cli>csproduct list full
- Description=计算机系统产品
- IdentifyingNumber=***
- Name=***
- SKUNumber=
- UUID=E349BBEB-6756-A844-BD50-B29F5E15D53A
- Vendor=Asus Inc.
- Version=none
复制代码复制其中的 UUID 即可直接套用到 config。 验证序列号无效性生成的序列号可以在 EveryMac 验证 是否符合编码规则。需要注意的是,这个页面使用了 Google 的 reCaptcha 验证码,可能需要科学上网才能正常打开页面。 上图中, EveryMac 显示出 iMac19,1 的验证结果,说明编码结果是正确的,如果没有返回结果,可以多试几次生成。99% 的情况下,生成的序列号一般都会符合编码规则。 接下来,需要到苹果官网验证序列号的“无效性”, 进入官网,粘贴编码,点击查询: 你可能会得到以下三种不同的结果: 1.无效序列号。2.未验证购买日期 3.显示正确机型保修服务等。 三码关联问题以及修复这个部分介绍一些曾经遇到过的问题,以及解决的方法。三码主要影响以下苹果服务和功能:FaceTime、iMessage、iCloud、App Store、接力(Handoff)以及随航(Sidecar)。其中: FaceTime、iMessage、iCloud、App Store 除三码外,还和 NVRAM 支持有关;
- 接力和随航,除以上要求外,还需要硬件上有 macOS 原生支持的 Wifi&蓝牙 卡,英特尔的暂时不行,如果明确需要这两项功能请务必购买博通芯片的无线网卡;
- 随航除以上要求外,还有其它一些要求,如 macOS 版本不低于 10.15,必须登录同一个 Apple ID 并开启两步验证,对 iPad 机型也有要求,具体以官方页面说明为准;
- 随航对于黑苹果来说,还要求处理器有核显。没有核显的处理方法可以参考以下:如果没有核显,请修改 SMBIOS ID 为 iMacPro1,1 或 MacPro7,1 ,这为解决视频播放的硬件解码问题(同样适用于 AMD 处理器);如果没有核显,想要使用随航,把 SMBIOS ID 修改为 iMac19,1 或 iMac18,3 ,并在启动参数中加入 shikigva=16 ;即便照上面设置,在很多案例中随航依旧会出现黑屏的情况,所以非常推荐购买英特尔带核显的处理器,省心省事免了很多折腾。
NVRAM 支持NVRAM 是非易失性随机存取存储器(Non-Volatile Random-Access Memory,NVRAM)是一种随机存取存储器,在电脑电源关闭时会保留其信息(具备非易失性)。这与动态随机存取存储器(Dynamic Random-Access Memory,DRAM)和静态随机存取存储器(Static Random-Access Memory,SRAM)形成对比,后者仅在通电时才能保存数据。 NVRAM 通常以一块芯片的形式存在,所以系统是否支持 NVRAM,取决于主板芯片组。NVRAM 在黑苹果中有及其重要的作用,第一,是用于保存与蓝牙、屏幕亮度、系统音量、iMessage、FaceTime 等功能的相关数据;第二,OpenCore 需要 NVRAM 支持才能支持系统启动磁盘设置( Bootcamp 功能);因此,原生 NVRAM 能会让你的黑苹果系统趋于完善。 总之一句话,NVRAM 对于苹果服务能否正常工作至关重要。如何验证及重置 NVRAM,可参考 「NVRAM 是什么」这篇旧文,文中涉及 Clover 的部分都可以忽略,OpenCore 用户只需记住以下几点: Z370 主板和 400 系所有型号主板都支持原生 NVRAM,其余 300 系主板都不支持,需要文中所说的 ssdt-pmc.aml 补丁;
X99 和 X299(包括同代的 C6XX 系列)配备的 NVRAM 不能被 macOS 支持,需要使用模拟,模拟 NVRAM 开启方法如下:
修复 网卡内建En0通常情况下,已驱动并且正在使用的网卡应该设置为 En0 并且属性为“内建”(Built-in)。En0 可以是 WiFi,有线以太网,甚至是雷电接口(因为雷电可以转换以太网接入)。这里我们需要 Hackintool 进行检查,运行 Hackintool,切换到 系统 → 杂项即可直观检查。 如果这个位置没有显示 En0 或没有内建,可通过终端运行以下命令进行重置,每行运行一次: sudo rm /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist
sudo rm /Library/Preferences/SystemConfiguration/preferences.plist
「注意」如果提示 Operation not permitted ,请先运行 sudo -s 或者 bash,这是获取管理员权限,具体可自行百度一下。 运行后重启计算机,再次检查,此方法可解决大部分没有 En0 或没有内建的问题。 但是如果没有解决,则有很大的可能你的主板以太网不被支持或有 ACPI 问题,你需要在 kext 中添加 NullEthernet.kext 和 ssdt-rmne.aml 。 清除遗留信息如果账号出现问题,需要再次摇号登陆前,需要登出已有设备并清除上次尝试留下的登陆信息。登陆下面两个网址,清除所有已登录的黑苹果设备(如果有),并在系统偏好设置 → Apple ID 中关闭“查找我的 Mac”,黑苹果不要开这个玩意儿。最后开启双重验证「重要」。
如果你还登陆过 FaceTime、App Store 和 iMessage,也一并登出。 接下来需要运行终端,删除一些信息(每次执行一行): - bash
- sudo rm -rf ~/Library/Caches/com.apple.iCloudHelper*
- sudo rm -rf ~/Library/Caches/com.apple.Messages*
- sudo rm -rf ~/Library/Caches/com.apple.imfoundation.IMRemoteURLConnectionAgent*
- sudo rm -rf ~/Library/Preferences/com.apple.iChat*
- sudo rm -rf ~/Library/Preferences/com.apple.icloud*
- sudo rm -rf ~/Library/Preferences/com.apple.imagent*
- sudo rm -rf ~/Library/Preferences/com.apple.imessage*
- sudo rm -rf ~/Library/Preferences/com.apple.imservice*
- sudo rm -rf ~/Library/Preferences/com.apple.ids.service*
- sudo rm -rf ~/Library/Preferences/com.apple.madrid.plist*
- sudo rm -rf ~/Library/Preferences/com.apple.imessage.bag.plist*
- sudo rm -rf ~/Library/Preferences/com.apple.identityserviced*
- sudo rm -rf ~/Library/Preferences/com.apple.ids.service*
- sudo rm -rf ~/Library/Preferences/com.apple.security*
- sudo rm -rf ~/Library/Messages
复制代码删除所有苹果服务同步的钥匙串信息,如: - identity-rsa-key-pair-signature-v1
- identity-rsa-private-key
- identity-rsa-public-key
- message-protection-key
- message-protection-public-data-registered
- personal-public-key-cache
- iMessage Encryption Key
- iMessage Signing Key
- com.apple.facetime: registrationV1
复制代码「注意」如果找不到钥匙串,按下 Command + 空格,调出聚焦搜索,输入“钥匙串访问”,第一个结果就是。 然后即可进行编辑,如下图:
如出现XXX 可以自动配置您的 Mac这是三码造成的问题,没想到吧?笔者同样也没想到,之前在为某个 macOS 版本制作镜像的时候,笔者幸运的摇到了一个第三方公司购买并施行集中管理的 Mac 的三码。具体表现是安装完成进入系统后,弹出一个框,里面提示如下: # adidas 可以使用系统管理员的设置自动配置您的 Mac。
Allow Device Enrollment?
adidas can automatically configure your Mac based on settings provided by your System Administrator.
这种情况有两种处理办法: - 全程断网安装,如果断网后无法通过一阶段读条,可在二阶段(黑底白苹果图标读条)进行断网操作,直到配置完成进入系统,请第一时间执行修改三码操作;
- 笔者也有遇到过断开网络后直接不给用的情况,这种情况只能更换三码再尝试安装。
如果你的账号上了黑名单如果你在尝试登陆苹果服务(FaceTime、iMessage、App Store 或其它)时出现了下图中的情况,代表你的 Apple ID 已经正式被苹果公司拉入了黑名单,被风控了。如果走到这一步,只有亲自联系苹果解锁一种解决方法,没有其它办法。如果你的 Apple ID 是全新的账号,联系苹果公司前,请务必在账号里绑定任意一种支付方式。 联系苹果有 2 种方式: - 通过 Apple Support 让苹果公司联系你。单击 Apple ID,然后选择 iCloud,Facetime 和 iMessage。然后单击立即与 Apple 支持交谈,然后输入您的电话号码,等待苹果公司客服联系你;
- 第二种,可以直接使用手机拨打 400-666-8800(大陆)联系苹果支持部门,其它地区可参考苹果官方支持页面。
|