Hackintosh黑苹果+外置网卡+Null Ethernet通过App store验证

首先,我要说下为什么要网卡内建?在某些特殊的情况下, 比如说网卡驱动不行,版本不合适等等这些原因,会导致你的iTunes、iBooks、APP store无法登陆,会提示无法验证此Mac。出现这种情况就说明你的网卡没有内建。

上面引自一篇网卡内建教程。坑爹的是,教程中只提到了如何将已经驱动起来的PCI网卡设置为内建,对本来就是外置的USB网卡却无能为力。

还有一条路是使用OS-X-Null-Ethernet,该软件的思路是在系统中虚拟出来一个内建网卡。此网卡虽然不能用来上网,但可以欺骗App store使其认为机器是有内置网卡的,然后拿这个网卡的信息去验证。显然,苹果不会给这种项目发签名证书的,如果走这条路,需要关闭SIP功能(System Integrity Protection)。

OS-X-Null-Ethernet官方教程是英文且并不详细,显然是写给高手看的,我研究半天才看懂。网络上其他地方关于OS-X-Null-Ethernet的教程很少,且无一例外漏掉了非常重要的一步内容(可能是因为后来苹果重新加了一条验证规则),造成验证失败,本文将之补全了。

适用范围

  • 主板原装网卡无解
  • 笔记本,无法加装PCI网卡
  • 不想或不能更换网卡

以我的机器为例,是小米Pro顶配版,内置网卡是无解的intel。有些本子可以自己加一个或者换一个网卡,也就五六十块钱就好了,偏偏此机的无线网卡是焊死的,也没有其他能插内置无线网卡的接口。拿个迷你USB无线网卡其实用起来也没多大不便,但是堵死了常规方法做内建网卡的路径。

下文提到的资料和软件,链接见文末“参考资料”。

替代办法

前置说明:摸索出来这个办法之后,我跟其他人交流,发现可能有更简单的办法,但是没有条件尝试(因为我的验证已经过了),所以将这些可能性列在下面,供对自己人品有信心的人尝试:

  1. 找一台白苹果或者iPhone,把账户在正版设备上登陆一次,也许就不需要验证了;
  2. 科学上网;

操作步骤

以下教程针对基于Clover的黑苹果,使用变色龙等方案的可以参考执行。

  • 数字列表项目
  • 首先,下载预编译的OS-X-Null-Ethernet并解压,对预编译不放心的可以下载源码自己编译;
  • 挂载EFI分区;
  • 复制Release/NullEthernet.kextEFI/CLOVER/kexts/Other/文件夹;
  • 此时重启,开机后在系统偏好/网络中点+符号,应该已经能看到一个以太网项目;如果添加它,可以在高级/硬件中看到它的MAC地址为11:22:33:44:55:66
  • 不要激动,此时还是不能用的;如果你此时去App store进行认证,会卡在填写支付方式那一项,也不说原因,就是让你联系支持;
  • 但是如果你此时连这个网卡都看不见,说明kext没有加载成功,需要找找原因,例如SIP还没关闭;可以用kextstat | grep -i NullEthernet命令测试到底有没有加载成功;
  • 下一步,将解压出来的ssdt-rmne.aml文件,拷贝到EFI/CLOVER/ACPI/patched目录;一般此文件夹中已经有了几个补丁;强迫症可以将文件重命名一下,没关系的;
  • 最关键的一步来了。网上的其他教程的核心部分都是到上一步为止,但我机器上仍然过不了验证。经我测试,还有很关键的一步是:把默认的MAC地址11:22:33:44:55:66改成一个看起来真实一点的地址;这个验证可能是苹果后来加的;修改方法继续往下看;
  • 下载MaciASL软件,安装运行;
  • MaciASL打开刚才拷贝进去的*.aml文件;*.aml是编译过的文本文件,直接打开只能看到base64编码一类的东西,但MaciASL可以把它们反编译成类似如下的源码:<code> DefinitionBlock (“”, “SSDT”, 2, “RehabM”, “RMNE”, 0x00001000) { Device (RMNE) { Name (ADR, Zero) ADR: Address Name (HID, “NULE0000”) _HID: Hardware ID Name (MAC, Buffer (0x06) { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66
    }) Method (
    DSM, 4, NotSerialized) _DSM: Device-Specific Method { If (LEqual (Arg2, Zero)) { Return (Buffer (One) { 0x03
    }) } </code> - 修改Name (MAC, Buffer (0x06)下面的一行,0x11, 0x22, 0x33, 0x44, 0x55, 0x66中的11,22,...修改成1A, 3F一类的,前缀0x不要动,最后结果应该是0x1A, 0x2B, 0x3F, 0x4C, 0x5D, 0x61这样的,但是不要照抄; - 我建议用你的外置网卡MAC地址为基准,末尾两位稍微变动一下作为此虚拟网卡的地址; - 点击“编译”,如果没有错误,File/Save保存;可以尝试再次打开此*.aml以确认修改成功; - 重启,运行命令ifconfig,查看网卡地址是否修改成功;同时检查修改过的网卡标识是否为en0; - 如果不是,按如下步骤操作: + 删除/Library/Preferences/SystemConfiguration/NetworkInterfaces.plist(其实我机器里没有这个文件……) + 在系统设置偏好里/网络 里删除所有网络连接 + 重新启动 + 重新在系统设置偏好里/网络 里加所有网络连接,这次记得首先添加“以太网”一项,也就是虚拟网卡 - 虚拟网卡的IP设置为自动获取就好; - 再次检查:关于本机/系统报告/网络一项,应该是类似下午那副图那样的。 - 如果都没问题,去登陆App store吧! # 参考资料 黑苹果有线网卡DSDT内建等方法汇总整理 OS-X-Null-Ethernet源码发布地址 预编译的OS-X-Null-Ethernet MaciASL发布地址 关闭SIP验证 macOS安装教程兼小米Pro安装过程记录
  • 最后更改: 2019/05/29 15:24