微软 Surface Pro 4 macOS Sierra 10.12 黑苹果
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ALC298 Surface-Pro-4-Sierra Jan 23, 2017
AppleIntelSKLGraphicsFramebuffer.kext/Contents
DSDT-HotPatches
EFI-Install
EFI-Use after installation
GenericUSBXHCI.kext/Contents
HWPEnabler.kext/Contents
NullEthernet
README.md V1 Jan 23, 2017

README.md

Surface-Pro-4-Sierra

微软 Surface Pro 4-macOS Sierra 10.12 黑苹果安装教程

机器配置

主板                微软 Surface Pro 4 ( 英特尔 PCI 标准主机 CPU 桥 - 100 Series 芯片组 )

准备工作

  • 安全启动Secure Boot关掉
  • BitLocker关掉
  • 从U盘启动的方法:长按音量减键保持,然后轻按一下开机键,直到出现Clvoer界面时就可松开音量键了
  • 安装Clvoer时不要安装CsmVideoDxe-64.efi,drivers64UEFI里检查下有的要删除,不删除会黑屏

安装说明

安装原版系统的原则是:无须DSDTSSDT,配置和驱动文件要尽量精简,便于后期五国查错

  • drivers64UEFI文件包含:

    DataHubDxe-64.efi EmuVariableUefi-64.efi Fat-64.efi OsxAptioFix2Drv-64.efi PartitionDxe-64.efi VBoxHfs-64.efi

  • kexts中的Others文件包含:

    FakeSMC.kext VoodooPS2Controller.kext USBInjectAll.kext

config配置需注意的几点

NVMe直接Patch

自从10.12以后不需要安装单独的NVMe驱动了,直接利用Clvoer的Patch功能即可,特别注意安装不同版本对应的Patch不完全相同

Iris 540在安装时ig-platform-id注入为0x12345678

目前HD 520/530/540显卡要想驱动一般要注入ig-platform-id:0x19160000,有的机型DVMT预读显存和苹果规定的大小不一致,就容易在安装过程中卡AppleIntelSKLGraphicsFramebuffer,这里远景论坛里面也有各种各样的解决办法。对于非Surface Pro 4的机器,大家可以借鉴一些解决办法,以下是在远景论坛上搜集的一些解决方法:                           

  • 法一:有直接在BIOS里将DVMT改为96M以上 这个办法可以但是前提是要Bios里有这个修改选项,Pro4里就没有这个选项

  • 法二:有的是通过直接升级Bios解决的  其他机器可能可行,但是Pro 4目前看来是没法升级Bios的

  • 法三:有利用Clover的Patch直接对AppleIntelSKLGraphicsFramebuffer打二进制补丁解决的    正常情况下,Clover里Patch过后就能解决问题,实际上Clover的Patch功能经常抽风,远景论坛上大把的人打了补丁还是卡这儿,Pro4同样不行

  • 法四:有的干脆直接上懒人版,然后替换SLE下的自己修改过的AppleIntelSKLGraphicsFramebuffer.kext   这个办法一般情况下是能够解决问题的,但是考虑到要用到懒人版,而且还得装HFS+这个软件,容易造成HFS分区不稳定,不是很建议大家使用

综上所述,个人认为目前解决卡AppleIntelSKLGraphicsFramebuffer最好的办法就是直接仿冒一个无用的显卡ID如:fakeID=0X12345678,也可以不是这个,只要仿冒一个无用的显卡ID即可)就行,目的是保证在初次安装系统时不加载显卡驱动。等安装完毕进入系统后再替换修改的AppleIntelSKLGraphicsFramebuffer.kext,然后修复权限即可。具体操作流程分两步进行

Step 1:

初次安装,仿冒无用显卡ID以进入系统,config注入ig-platform-id:0x12345678,代码如下:    Graphics                          Inject                                         ATI                                                  Intel                                                  NVidia                                                          NvidiaSingle                                 VRAM                 128                 ig-platform-id                 0x12345678         

Step 2:

利用原版镜像安装完成后注意:安装完成后替换S/L/E下的AppleIntelSKLGraphicsFramebuffer.kext,然后把ig-platform-id修改为注入为0x19160000,修复权限重启后即可驱动Iris HD 540config注入代码如下:

<key>Graphics</key>
        <dict>
                <key>Inject</key>
                <dict>
                        <key>ATI</key>
                        <false/>
                        <key>Intel</key>
                        <true/>
                        <key>NVidia</key>
                        <false/>
                </dict>
                <key>NvidiaSingle</key>
                <false/>
                <key>VRAM</key>
                <integer>128</integer>
                <key>ig-platform-id</key>
                <string>0x19160000</string>
        </dict> 

至此,Surface Pro 4通过仿冒无用显卡ID先安装原版镜像,进入系统后,替换修改版AppleIntelSKLGraphicsFramebuffer.kext并修复权限,再注入正确的显卡ID即可驱动显卡,并避免了在安装过程中卡AppleIntelSKLGraphicsFramebuffer的问题。


安装完成后对系统进行修正

- ALC298声卡修正

  • ALC298声卡的驱动

    通过从vit96961的主页上下载AppleALC的源码,保留ALC298的相关文件,删除其他无用的文件,并利用Xcode编译得到ALC298的仿冒声卡驱动AppleALC.kext,然后注入声卡ID为3即可。其中,注入声卡ID有两种方法,任选其一即可:

  1. 方法一:利用Clover直接注入:

     <key>Devices</key> 
          <dict> 
               <key>Audio</key> 
               <dict> 
                    <key>Inject</key> 
                    <string>3</string> 
               </dict> 
          </dict> 
    
  2. 方法二:利用Rehabman的HotPatches直接通过SSDT注入:

    SSDT-Config.dsl修改Name(AUDL, 你的id十进制),当然,对于Surfacre Pro 4则为Name(AUDL, 3),然后编译成aml文件,放回ACPI/patched

    • ALC声卡唤醒无声的解决

      直接利用Rehabman的CodecCommander.kext驱动便可解决


- 亮度修复

利用Rehabman的HotPatches加入SSDT-PNLF.aml放入ACPI/patched并配合IntelBacklight.kext,实现亮度可调


- 电池电量修复

  • 电池电量修复分两步进行:

- 网卡修正

  • 点击右上角的WiFi图标,选择最后一项,在左边列表删除掉所有网络。
  • 终端执行sudo rm /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist
  • 等系统重启完了,点击右上角的WiFi图标,选择最后一项,按顺序重新添加以太网Wi-Fi,应用。蓝牙可以不添加,之后自动会加的。
  • 利用Rehabman的HotPatches加入ssdt-rmne.aml 放入ACPI/patched并配合NullEthernet.kext,实现App Store无障碍登录。

- TF卡读卡器的修正

配合GenericUSBXHCI.kext,可以完美使用TF读卡器,并且USB 3.0以及拓展坞的正常使用


- 电源管理及变频的修正

由于苹果在 Skylake 平台已经不再使用 AppleLPC 机制,所以不再需要加载 AppleLPC 。特别的,在新的 Skylake 平台下,也不用像以前一样利用脚本产生SSDT来变频了,新平台下无须SSDT,直接在Clover中的CPU选项中开启HWPEnable即可,或者直接利用HWPEnabler.kext实现变频。

经过实际测试,在Surface Pro 4 上,利用HWPEnable可实现12级变频调节。

完成情况

  • NVMe SSD可用
  • Iris 540显卡驱动,HIDPI模式开启
  • 亮度可调节
  • 电池电量显示正常
  • 声卡ALC298可用,且唤醒有声
  • 睡眠唤醒正常,合盖睡眠正常
  • 电源管理可用,变频正常
  • USB3.0正常,TF卡读卡器可用,包括扩展坞可以正常使用
  • 有线网卡正常驱动
  • Type Cover键盘可用

目前无解

  • Marvell的无线蓝牙二合一卡均无解
  • 触控无解,Surface Pen无法使用
  • 前后摄像头+红外线无解   

特别鸣谢