笔记本安装 Hackintosh 黑苹果

基本说明

  • 在网上找到对应机型的黑苹果 UEFI 文件(里面对应包含了 Clover 文件)

  • 包含了EFI/CLOVERCLOVER 引导文件夹(可能还包含EFI\Bootboot 启动文件夹)

  • EFI\CLOVER\kexts文件夹是.kexts驱动文件,里面的子文件夹里面对应了 macos 对应版本号的驱动文件,EFI\CLOVER\kexts\Other这个是通用驱动文件夹,如果版本号和你下载的 macos 版本不一致,就可以移动到这个文件夹.查看EFI\CLOVER\kexts\ 文件夹对应的 macos 版本号,然后下载对应版本的镜像

  • 下载镜像,下载.dmg格式的懒人U盘镜像,这种镜像是带 Clover 的,比如macOS High Sierra 10.13.6(17G66) Installer with Clover 4844.dmg,懒人版镜像是带Clover文件的

  • VirtualSMC.kext 使用也很简单,将文件拷贝到 Clover 四叶草的对应目录即可,Drivers 目录里面的 VirtualSmc.efi 是 EFI 驱动文件,把他拷贝到EFI/Clover/drivers64UEFI

  • 注意:10.14 以上的 N 卡没办法驱动,笔记本不能屏蔽核显的,最好使用 macOS 10.12.4.dmg

烧写镜像

  • win 使用TransMac软件,网上有注册版,然后烧写到 U 盘

  • 烧写到 U 盘之后,U 盘会被分为 2 个分区,一个是 efi 分区,一个是 mac 系统分区,剩下的都是未使用的分区,然后把下载好的 UEFI 文件,文件夹EFI所有的覆盖到 efi 分区,如果 efi 分区有文件,请删除.通过 U 盘启动会进入 Clover 引导界面

驱动说明,必要驱动,开机时尽量使用最少的驱动进行引导

其他

  • VoodooTSCSync.kext处理器核心配置

  • Sinetek-rtsx.kextRealtek SD card

  • RealtekRTL8111.kextRealtekRTL8111 网卡

  • HWPEnable.kextIntel Speed Shift on Skylake and up

  • CodecCommander.kext睡眠后声音耳机和外放自动切换

  • BrcmPatchRAM2.kextBroadcom PatchRAM driver for OS X

  • BrcmFirmwareData.kext蓝牙

  • ApplePS2SmartTouchPad.kext触控板

  • AppleALC.kext音频

  • AirportBrcmFixup.kextBroadcom Wi-Fi cards

  • ACPIBatteryManager.kext电源管理

  • IntelBacklight.kext屏幕背光

完善

  • DSDT(改错、打补丁、添加屏蔽独立显卡代码),在 Clover/ACPI 文件夹

开源项目

常见错误处理

  • 在第一阶段结束,重启的时候出现”macOS could not be installed onyour computer, Unable to unmount volume for repair.” 具体原因我也不太清楚,解决办法虽然有很多种,但是我认为最简便省力的方法是把一个隐藏文件解压到安装 U 盘的根目录。这个文件叫 IAProductInfo。

  • config.plist 中我添加了我的机器的内存信息,如果不适合你的机器,请自行修改;当然还有 SMBIOS 也要根据你自己的情况修改;如果你有固态硬盘的话,请注意添加对应的驱动;

  • 声卡驱动配合 config.plist 注入 Layout-id 6,如果不懂的话就用万能驱动吧

  • 电源添加ACPIBatteryManager.kext,

  • 至于屏蔽显卡,我的方法是在_WAK 和_SB.PCI0.PEG0.PEGP、_SB.PCI0.XXX 下的_INI 中添加屏蔽独显函数_SB.PCI0.PEG0.PEGP._OFF()。

  • 10.12.5的

DSDT和SSDT的处理:
用AIDA64提取DSDT和SSDT,命名为”DSDT.aml”、“SSDT.aml”、“SSDT-1.aml” 、“SSDT-2.aml”……注意一定要按顺序。然后在Yosemite下,把MACiAsl(编译器调成iASL5.0)里的iasl5复制到/usr/bin下,然后把上述的aml文件全部放到桌面,打开终端,输入
”cd Desktop”
“iasl5 –da DSDT.aml SSDT*.aml”
进行联合反编译,最后会得到dsl文件。
排错:
1.DSDT.dsl里会有syntax error,Unexpected PARSEOP_ZERO和syntax error,Unexpected PARSEOP_ARG0两个错误,分别用RehabMan的”Fix Parseop_zero Error”和”Fix ADBG Error”两个补丁解决。之后删除开头的  External (_SB_.PCI0.GFX0, UnknownObj)  External (_SB_.PCI0.PEG0, UnknownObj)  External (_SB_.PCI0.PEG0.PEGP, UnknownObj)  External (_SB_.PCI0.PEG1, UnknownObj)  External (_SB_.PCI0.PEG2, UnknownObj)
即可,警告不管。保存。SSDT-1.dsl里会有”syntax error,Unexpected PARSEOP_PACKAGE错误”,删掉从错误行开始的所有连续的Package (0x06)  {    0x80000000,     0x80000000,     0x80000000,     0x80000000,     0x80000000,     0x80000000  }即可,警告不管,保存。SSDT-6.dsl里会有syntax error,Unexpected PARSEOP_NAMESEG,expecting“(”的错误,删除
    MUID    REVI    SFNC    XRG0即可,无措后保存。至此,无错的DSDT和SSDT制作完成。
显卡方面:
独显已屏蔽,集显HD4600成功驱动,QE/CI开启,有水波纹。独显屏蔽的方法:DSDT打上RehabMan的
“Disable from _REG (DSDT)”  ”Disable/Enable on _WAK/_PTS (DSDT)”,
编译,会有Name already exists in scope(\_SB.PCI0.PEG0.PEGP._OFF)的错误,
将错误行移到开头一堆External后面,再编译还会有这个错误,不过这时将错误行删除,无错后保存。SSDT-5.dsl打上“Disable from _INI (SSDT)”的补丁,编译,会有Object does not exist(_OFF)的错误,找到错误行,在其上一行把
//External(\_SB.PCI0.PEG0.PEGP._OFF, MethodObj) 改为External(\_SB.PCI0.PEG0.PEGP._OFF, MethodObj)
无错后保存。将全部的dsl文件生成aml文件放到Extra下,别忘了org.chameleon.Boot.plist加入DropSSDT=yes,至此显卡已屏蔽。HD4600驱动:本人采取的是SSDT注入+FakePCIID.kext+ FakePCIID_HD4600_HD4400.kext。简单来说就是在SSDT-4.dsl打RehabMan的“Haswell HD4600 Yosemite”补丁,并注入了EDID(EDID要经过一定修改,否则会导致屏幕只能输出16位色的问题),以下是我的_DSM部分的内容,AAPL00,override-no-edid下的就是修改后的EDIDMethod (_DSM, 4, NotSerialized)    {      If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }      Return (Package()      {      "device-id", Buffer() { 0x12, 0x04, 0x00, 0x00 },      "AAPL,ig-platform-id", Buffer() { 0x06, 0x00, 0x26, 0x0a },      "hda-gfx", Buffer() { "onboard-1" },      "model", Buffer() { "Intel HD 4600" },      "AAPL00,override-no-edid", Buffer (0x80)  {    0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x06, 0xaf, 0xed, 0x21,    0x00, 0x00, 0x00, 0x00, 0x01, 0x15, 0x01, 0x04, 0x90, 0x22, 0x13, 0x78,    0x0a, 0xe2, 0xb5, 0x9e, 0x59, 0x52, 0x99, 0x26, 0x1e, 0x50, 0x54, 0x00,    0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,    0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xb6, 0x35, 0x80, 0x7e, 0x70, 0x38,    0x28, 0x40, 0x3c, 0x3c, 0xee, 0x00, 0x58, 0xc2, 0x10, 0x00, 0x00, 0x18,    0xb6, 0x35, 0x80, 0x7e, 0x70, 0x38, 0x58, 0x42, 0x3c, 0x3c, 0xee, 0x00,    0x58, 0xc2, 0x10, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x41,    0x55, 0x4f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,    0x00, 0x00, 0x00, 0xfe, 0x00, 0x42, 0x31, 0x35, 0x36, 0x48, 0x57, 0x30,    0x32, 0x20, 0x56, 0x31, 0x20, 0x0a, 0x00, 0x41  },      })    }最后所有的dsl全部打“Rename GFX0 to IGPU”补丁(能打则打,不能就算了),将全部dsl生成aml,放入Extra下。
然后FakePCIID.kext和FakePCIID_HD4600_HD4400.kext放在Extra/Extensions下(kext见附件),重启即可驱动。亮度:
对SSDT-4.dsl打Brightness fix (Haswell)补丁即可。无错后保存,生成aml文件,覆盖原有SSDT-4.aml,重启后用Scr LK和 Pause Break即可调节亮度。电量:
对DSDT.dsl打RehabMan的“Clevo P15SM”补丁,无错后保存,生成aml文件,覆盖原有DSDT.aml并安装ACPIBatteryManager.kext即可
CPU变频:
目前最低790Mhz左右,最高3.3GHZ。HWMonitor显示的档位:*8、*17、*25……(后面不记得了)
方法:Smbios设定成MacBookPro11.2(文件见附件),用ssdtPRGen.sh,把这文件放到/usr/bin下,进入终端,输入
cd Desktop
sh ssdtPRGen.sh
在桌面上会生成ssdt.dsl和ssdt.aml,把ssdt.aml改为ssdt-2.aml替换原来由ssdt-2.dsl生成的ssdt-2.aml。重启,就可以变频了。
AppleLPC、HEPT、RTC等原生支持。
声卡和网卡:
请用MultiBeast7.3.0安装VoodooHDA v2.8.7和RealtekRTL81xx v0.0.90即可解决声卡和有线网卡。我的无线网卡是RTL8723BE,无解。
我是用小米随身wifi解决的,解决办法看这http://bbs.8miu.com/viewthread-1552075-1-1.html,感谢tonyleen 。蓝牙:
目前不知怎么弄,貌似我的蓝牙和无线是一起的,无解。
指纹识别:
这东西估计百年无解吧。。。。。
目前的问题:
1.重启不正常,重启后屏幕不亮,但仍正常运行,因为可以进入Windows(有欢迎的音乐),合上笔记本待睡眠后唤醒屏幕点亮,一切正常。
2.Yosemite无法睡眠,睡眠不断电,就算断电,几秒后就被唤醒。
3.iMessage无法登录,FaceTime、App Store正常。
您需要在clover的引导界面中来提取,用户仅需要按F4即可提取,值得注意的是,提取后并没有提示,提取的dsdt会保存在目录中的efi-clover-ACPI-origin中,您可以打开后将其编译为dsl的格式,在mac下使用Maciasl,在这里我们以idt92hd91bxx声卡注入id作为示范,当然您也可以选择其他的