# 使用OpenCore修复iMessage和其他服务

这个页面是为那些有iMessage和其他iServices问题的人准备的,这是一个非常基本的指南,所以不会像其他一些指南那样深入讨论这些问题。本指南是对AppleLife修复服务指南的翻译和重新解释: Как завести сервисы Apple - iMessage, FaceTime, iCloud (opens new window).

你的Apple ID是使用iServices最具影响力的因素

如果你的账户中有现有的苹果产品,比如iPhone,那么使用生成的串行集应该不会有任何问题。但是,如果你最近创建了一个账户,没有任何现有的苹果硬件或应用商店购买,你可能需要在尝试登录后打电话给苹果。

下面将创建以下项目,这是使用iServices所必需的:

  • MLB
  • ROM*
  • SystemProductName
  • SystemSerialNumber
  • SystemUUID

提示

对于ROM,我们使用网络接口的MAC地址,小写,不含:

注意:你和你自己对你的AppleID负责,仔细阅读指南,如果你搞砸了,承担全部责任。Dortania和其他指南不会对做的事情负责。

# 使用GenSMBIOS

下载GenSMBIOS (opens new window)并选择选项1下载MacSerial,选择下一个选项3生成一些新的series。我们要找的是一个没有注册购买日的有效序列号。

提示: iMacPro1,1 10 将输出10个串行,这将节省您生成的时间

# 使用macserial

这是针对Linux用户的,也是使用GenSMBIOS的另一种选择。

为你的型号生成一个新的 Serial 和 Board Serial (MLB)。

要生成它,你需要macserial。

您可以从这里下载OpenCorePkg的最新版本 (opens new window)

或者从源代码编译开发macserial (opens new window)

git clone --depth 1 https://github.com/acidanthera/OpenCorePkg.git
cd ./OpenCorePkg/Utilities/macserial/
make
chmod +x ./macserial

在你的config.plist文件中找到你的SystemProductName。那是你的型号。

用config.plist中的SystemProductName替换下面的"iMacPro1,1"

./macserial --num 1 --model "iMacPro1,1" 

示例输出:

$ ./macserial \
        --model "iMacPro1,1" 
Warning: arc4random is not available!
C02V7UYGHX87 | C02733401J9JG36A8

左边的值是你的Serial number。 右边的值是你的Board Serial (MLB)

# 选择MAC地址

选择一个具有组织唯一标识符(OUI)的MAC地址,该标识符对应于真实的Apple, Inc.接口。

请看下面的列表:

https://gitlab.com/wireshark/wireshark/-/raw/master/manuf (opens new window)

例如:

00:16:CB    Apple   Apple, Inc.

组成最后3个八进制。

例如:

00:16:CB:00:11:22

# 获得相应的ROM值

ROM是从你的MAC地址计算出来的。

ROM是从你的MAC地址计算出来的。

例如:

MAC: 00:16:CB:00:11:22

ROM: 0016cb001122

# 生成UUID

在终端中输入uuidgen

$ uuidgen
976AA603-75FC-456B-BC6D-9011BFB4968E

然后简单地在config.plist中替换这些值:

Key Data
MLB C02733401J9JG36A8
Mac Address 00:16:CB:00:11:22
ROM 0016cb001122
SystemProductName iMacPro1,1
SystemSerialNumber C02V7UYGHX87
SystemUUID 976AA603-75FC-456B-BC6D-9011BFB4968E

它应该看起来像这样:

    <key>MLB</key>
    <string>C02733401J9JG36A8</string>
    <key>ROM</key>
    <data>0016cb001122</data>
    <key>SpoofVendor</key>
    <true/>
    <key>SystemProductName</key>
    <string>iMacPro1,1</string>
    <key>SystemSerialNumber</key>
    <string>C02V7UYGHX87</string>
    <key>SystemUUID</key>
    <string>976AA603-75FC-456B-BC6D-9011BFB4968E</string>

注意:如果你在使用App Store时有问题,你可能需要修复En0,这取决于你的硬件设置。

全新的Apple ID几乎肯定无法使用。在你的账户中有其他真正的设备几乎总是有效的。

如果您看到一个支持警告,请参见下面

# 序列号有效期

现在将串行输入苹果检查覆盖页面 (opens new window),你将得到3个答复之一:

很抱歉,我们无法查询这个序列号的覆盖范围。 有效的购买日期 购买日期未验证

提示

复制并粘贴序列号,因为无效格式的序列号也将返回“我们很抱歉,我们无法检查这个序列号的覆盖范围。”

第一个是我们想要的(你也可以使用第三个,但不建议使用,因为可能会与实际的Mac发生冲突)。现在我们可以将其余的值转换为config.plist -> PlatformInfo -> Generic:

  • Type = SystemProductName
  • Serial = SystemSerialNumber
  • Board Serial = MLB
  • SmUUID = SystemUUID

注意

虽然第一个选项适用于大多数情况,但请注意,如果你在Apple/iServices上有糟糕的记录,你可能需要一个“购买日期未验证”的选项。否则就会产生怀疑

警告

使用“购买日期未验证:”系列可能会在同一系列的另一台机器被激活时引起问题。对于初始设置,它可以帮助缓解您的帐户问题,但从长远来看,无效的串行可能是一个更安全的选择。

提示

检查太多的序列可能会导致速率受限。要绕过此限制,您可以尝试清除cookie或更改IP。

# 修复 en0

首先,获取Hackintool (opens new window)并前往系统 ->外设(信息 -> 杂项 在旧版本的Hackintool)

在网络接口(网卡图标)下,在“BSD”下查找“en0”,并检查设备是否在“内置”下有复选标记。如果有一个复选标记,跳过到修复ROM部分,否则继续阅读。

  • 注意:en0可以是Wifi、ethernet甚至Thunderbolt。类型并不重要,只要它存在并标记为内置即可。

# 如果我根本没有En0怎么办?

好吧,我们要重置macOS的网络设置,这样它就可以重新构建界面;打开终端并运行以下命令:

sudo rm /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist
sudo rm /Library/Preferences/SystemConfiguration/preferences.plist

一旦完成,重启并再次检查。

如果这不起作用,添加NullEthernet.kext (opens new window)ssdt-rmne.aml (opens new window)分别到您的EFI和config.plist下的Kernel -> add和ACPI -> add。SSDT是预编译的,因此不需要额外的工作,提醒编译后的文件具有.aml扩展名,.dsl可以视为源代码。

# 使en0显示为内置

Find if set as Built-in

现在,在Hackintool的PCI选项卡下,导出PCI DeviceProperties,这将在桌面上创建一个pcidevices.plist

Export PCI address

现在搜索pcidevices.plist,找到你的PciRoot以太网控制器。对我们来说,这将是PciRoot(0x0)/Pci(0x1f,0x6)

Copy PciRoot

现在有了PciRoot,进入你的config plist -> DeviceProperties ->添加并应用built属性,类型为Data,值为01

Add to config.plist

# 修复ROM

这是一个很多人可能已经忘记的部分,但它可以在你的 config.plist 文件 PlatformInfo -> Generic -> ROM 下看到

要找到实际的MAC地址/ROM值,你可以在以下几个地方找到:

  • BIOS

  • macOS: 系统首选项—>网络—>以太网—>高级—>硬件—> MAC地址

  • Windows: 设置->网络和互联网->以太网->以太网->物理MAC地址

  • 注意:en0可以是Wifi、以太网甚至Thunderbolt,根据你的情况调整上面的例子。

有些用户甚至使用真实的MAC地址转储来配置,在本指南中我们将使用真实的MAC地址,但请注意,这是另一种选择。

当将其添加到你的配置中时,c0:7e:bf:c3:af:ff应该被转换为c07ebfc3afff,因为Data类型不能接受冒号(:)。

# 验证NVRAM

许多人忘记了NVRAM对iServices的正确工作至关重要,原因是iMessage密钥等都存储在NVRAM中。如果没有NVRAM, iMessage既不能看到也不能存储密钥。

因此,我们需要验证NVRAM是否可以工作,不管它是否“应该工作”,因为某些固件可能比其他固件更麻烦。

请参阅OpenCore指南的模拟NVRAM部分,以进行测试(如果您有可用的NVRAM)和模拟(如果没有)。

# 清除旧的尝试

对于那些尝试设置iMessage但失败的人来说,这很重要,首先要确保你的NVRAM已被清除。您可以在config plist -> Misc -> Security -> AllowNvramReset下启用AllowNvramReset选项。

打开终端,运行如下命令:

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

# 最后一次验证你的工作

最新的OpenCore版本 (opens new window)抓取macserial并运行以下命令:

path/to/macserial -s

这将为我们提供系统的完整概要,验证所呈现的内容与您的工作相匹配。

# 清理你的AppleID

ids: identity-rsa-key-pair-signature-v1
ids: identity-rsa-private-key
ids: identity-rsa-public-key
ids: message-protection-key
ids: message-protection-public-data-registered
ids: personal-public-key-cache
iMessage Encryption Key
iMessage Signing Key
com.apple.facetime: registrationV1
等 ...

最后一层预防措施是创建一个新的AppleID,以确保如果你最终将自己的账户列入黑名单,它不是你的主要账户。

提示

给账户加一张支付卡,有足够的购买量也会有所帮助。虽然不是具体的,但你可以把AppleID看作一个信用评分,你是一个越好的苹果用户,他们就越有可能不会出现激活问题,或者更容易获得苹果支持

# 客户代码错误

好吧,伙计,你做到了。你的AppleID列入黑名单。解决方法很简单,但并不漂亮,你必须打电话给苹果 (opens new window)。否则,除了使用新帐户之外,没有任何其他程序。在打电话之前添加一张支付卡可以帮助使账户合法化,这样它看起来就不那么像一个机器人了。

  • 苹果联系方式有两种