# 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.kext`到`EFI/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`可以把它们反编译成类似如下的源码: 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 }) } - 修改`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`吧! {{:mac:hackintosh:null_ethernet_result.png?direct|}} # 参考资料 [黑苹果有线网卡DSDT内建等方法汇总整理](https://osx.cx/course/2927.html) [OS-X-Null-Ethernet源码发布地址](https://github.com/RehabMan/OS-X-Null-Ethernet) [预编译的OS-X-Null-Ethernet](https://bitbucket.org/RehabMan/os-x-null-ethernet/downloads/) [MaciASL发布地址](https://bitbucket.org/RehabMan/os-x-maciasl-patchmatic/downloads/) [关闭SIP验证](http://blog.csdn.net/nicekwell/article/details/49206435) [macOS安装教程兼小米Pro安装过程记录](https://blog.daliansky.net/MacOS-installation-tutorial-XiaoMi-Pro-installation-process-records.html)