Clover 安装黑苹果[弃坑]

Hackintosh
76 2

内容没有写完,往下看没意思。去其它论坛寻找解决方案,这里仅仅是自己的记录。


内容处于长期编辑状态,相当于无限期,毕竟涉及硬件条件,业余时间条件,知识点还不一定短时间内回顾理解,信息在变。

一、废言

一直要写个详细的安装教程,能写多少写多少。黑苹果涉及范围非常大,知识点细腻,技术一直在更迭,所有信息知识点均来源于互联网。

12 年老骨灰折腾玩家,从 10.6 Snow Leopard 一直到 10.12 macOS Sierra 镜像大版本都安装过,12~13 年高潮期,14~16 年冷却期。只是浅浅接触信息或者干脆不接触,因为对待折腾的热情并不是时时刻刻火热,这不是养家糊口的菜。当时开群,做了个过时但却还有用的教程,万变不离其中。

安装部分占了 20%,驱动占 60%,完善占 15%,剩下 5% 不可能,买 MBP。

安装可以只卡一天,可以卡你一个月,没耐心 or 学习能力 or 时间会影响进度或成功率还有信心,不信试试。有钱不买白苹果的、爱好折腾的人一样买配件来组装上黑苹果。白苹果一套上万配置的钱可以买两套 PC 自己组装。

驱动有别人做现成,或官网,自己做。花费半年时间不一定能做好,下个技术更新发掘运气说不定就是你。

想省时间,一、金钱;二、耐心;三、运气,任选一。

二、评估

1) 处理器:LGA 1155 or 1156 难度低(这里说安装难度,并非降频处理难度),AMD 要更换破解内核,还不一定安装得上,疑难 +1
2) 主板:Legacy BIOS(EFI) or UEFI BIOS 优势自在 UEFI,损耗 +0.5
3) 内存:双通内存尽量同牌同频率,不选杂牌,疑难 +1 损耗 +0.5
4) 硬盘:SSD or HDD 开启 ACHI,拿个旧货练手,损耗 +2
5) 显卡:数不清楚疑难点,Intel、AMD、Nvidia 官网带 mac 驱动固然好(不完美的梦),但是 HDMI、DVI、VGA 输出到 1080、4K 显示器 DPI 分辨率、亮度调节、大小、黑屏、分屏等可能又会出问题,疑难 +2
6) 声卡:有现成驱动,同型号,命好运气好,但还不一定能用,自己折腾花费时间按月计算不过分,疑难 +2
7) 有线网卡:大众硬件几乎都行
8) 无线网卡:大众硬件几乎都行,小主流刷 BIOS,刷网卡,改 ID,疑难 +1
9) 镜像:一定一定要核对 SHA1 or MD5,疑难 +1
10) 引导:Clover(变色龙在这次测试时没有显示分区,不深究,直接切换到 Clover。学习配置 Clover 要花费较多时间)疑难 +1~2

三、准备

镜像

1.新机器:(最近 4~5 年内)
1) 选原版 macOS 10.12,需要自己更换和整理 MBR 破解文件,验证文件,内核文件,疑难 +1 不过分
2) 懒人版,直接用。
2.旧机器:建议选 OS X El Capitan 10.11 以下版本。
3.下载:macOS 10.12 百度盘

模式

1) EFI + Clover(变色龙 Chameleon) + MBR(GPT)
2) UEFI + Clover(变色龙 Chameleon) + MBR(GPT)
古老的 Boot、XPC 还有 Ghost,引导安装已被淘汰。

方式

制作安装盘方式有两种:
1) 在 macOS 下直接制作简单方便快捷。
2) 在 Windows 下,这段话是在写下面步骤时发现问题。以前制作原版安装盘非常容易,不知道从哪个版本开始需要替换文件而且路径不同,还多了个安装过程检测重复安装二次问题,而且论坛多数办法都是在 macOS 下进行操作,安装虚拟机 macOS,又是真机做安装盘,这里面涉及的范围又扩大,只能暂且搁浅 Windows 下制作的,以后细细品味再写下来。

先制作 U 盘 Clover 引导工具,再准备一个 U 盘做个 PE 修复系统引导用。

复制 EFI 文件夹到 U 盘

kest 路径:/EFI/CLOVER/kexts/10.12

DSDT.aml 路径:/EFI/CLOVER/ACPI/patched

macOS 写入 dmg 镜像

Windows 制作

工具

1) HFS+ for Windows 10(Windows 下显示 HFS 分区)
2) TransMac(刻录 DMG 镜像到 U、硬盘)

制作 U 盘安装镜像

1.TransMac 把 DMG 写入 U 盘即可。
1) 先提取文件:
macOS sierra 10.12.3(16D32).dmg/Install macOS Sierra.app/Contents/SharedSupport/InstallESD.dmg
2) 再写入:左栏显示磁盘列表 - 右键选择 U 盘 - Restore with Disk Image 即可

2.安装 MBR 分区需要替换破解 MBR 文件:下载

  • OSInstaller MBR 补丁

    /System/Library/PrivateFrameworks/OSInstaller.framework/Versions/A

  • OSInstall.mpkg 移除 2G内存限制+机型限制+其他检测限制+可自定安装(10.12pb4后已经不用替换)

    /System/Installation/Packages/OSInstall.mpkg

曾需要替换内核路径: /System/Library/Kernels/kernel

DSDT 提取

Windows 提取

需要安装 jdk-8u112-windows-x64,运行工具 DSDTEditor-Linux-Mac-Win

修复错误:

删除:

External (\TNOT)

修改:

# 错误一
_T_0 改 _T_0
_T_1 改 _T_1
_T_2 改 _T_2
_VPC 改 VPC
_CFG 改 CFG

# 错误二
Method (HODD, 0, NotSerialized)
{
    P8XH (0x04, 0x07, Zero)
    P8XH (0x04, 0x07, One)
    Return (0xFF)
    P8XH (0x04, 0x17, Zero)
    P8XH (0x04, 0x17, One)
}
 修改
Method (HODD, 0, NotSerialized)
{
    P8XH (0x04, 0x07, Zero)
    P8XH (0x04, 0x07, One)
    P8XH (0x04, 0x17, Zero)
    P8XH (0x04, 0x17, One)
    Return (0xFF)
}

# 错误三
Method (_CRS, 0, NotSerialized)
 {
      If (IGDS)
    {
      Return (CRS)
    }
 }
 修改
 Method (_CRS, 0, NotSerialized)
 {
      If (IGDS)
    {
      Return (CRS)
    }
      Return (Buffer (Zero){}) 
 }

0 Error0 Warning ,只要没有 Error 即可,追求完美另说。

添加 AR9285 WIFI 代码:

修改办法一(新)

    ...
    Notify (PXSX, 0x02)
        }
    }
    // 以下内容
    Method (_DSM, 4, NotSerialized)
    {
        If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }
        Return (Package()
        {
    "device-id", Buffer() { 0x30, 0x00, 0x00, 0x00 },
    "name", "pci168c,30",
    "AAPL,slot-name", Buffer() { "AirPort" },
    "device_type", Buffer() { "AirPort" },
    "model", Buffer() { "Atheros 9285 802.11 b/g/n Wireless Network Adapter" },
    "subsystem-id", Buffer() { 0x8F, 0x00, 0x00, 0x00 },
    "subsystem-vendor-id", Buffer() { 0x6B, 0x10, 0x00, 0x00 },
        })
    }
    // 以上内容
    Method (_PRW, 0, NotSerialized)
    {

修改方法二(旧)

    ...
    Notify (PXSX, 0x02)
        }
    }
    // 以下内容
    Method (_DSM, 4, NotSerialized)
    {
        Store (Package (0x12)
    {
        "AAPL,slot-name", 
        Buffer (0x08)
        {
            "AirPort"
        }, 
        "device-id", 
        Unicode ("*"), 
        "device_type", 
        Buffer (0x08)
        {
            "AirPort"
        }, 
        "model", 
        Buffer (0x33)
        {
            "Atheros 9285 802.11 b/g/n Wireless Network Adapter"
        }, 
        "subsystem-id", 
        Buffer (0x04)
        {
            0x8F, 0x00, 0x00, 0x00
        }, 
        "subsystem-vendor-id", 
        Buffer (0x04)
        {
            0x6B, 0x10, 0x00, 0x00
        }, 
        "compatible", 
        Buffer (0x0B)
        {
            "pci168c,2b"
        }, 
        "IOName", 
        Buffer (0x0B)
        {
            "pci168c,2b"
        }, 
        "name", 
        Buffer (0x0B)
        {
            "pci168c,2b"
        }
    }, Local0)
        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
        Return (Local0)
    }
    // 以上内容
    Method (_PRW, 0, NotSerialized)
    ...

修改方法三(Info.plist)

IO80211Family.kext\Contents\PlugIns\AirPortAtheros40.kext\Contents\Info.plist

    IONameMatch

        pci168c,2b // AR9285 独有特类 ID=2B

HD 3000 亮度调节

        ...
        Device (PWRB)
        {
    Name (_HID, EisaId ("PNP0C0C"))
        }
        // 以下内容
        Device (PNLF)
        {
    Name (_HID, EisaId ("APP0002"))
    Name (_CID, "backlight")
    Name (_UID, 0x0A)
    Name (_STA, 0x0B)
        }
        // 以上内容
        Device (SLPB)
        {
    Name (_HID, EisaId ("PNP0C0E"))
        }
        ...

CX 20590 声卡代码:

    ...
    Name (_PRW, Package (0x02)
    {
        0x0D, 
        0x03
    })
}
// 以下内容
Device (HDEF)
{
    Name (_ADR, 0x001B0000)
    Method (_PRW, 0, NotSerialized)
    {
        If (WKMD)
        {
    Return (Package (0x02)
    {
        0x0D, 
        0x04
    })
        }
        Else
        {
    Return (Package (0x02)
    {
        0x0D, 
        Zero
    })
        }
    }
    Method (_DSM, 4, NotSerialized)
    {
        Store (Package (0x0C)
    {
        "codec-id", 
        Buffer (0x04)
        {
            0x6E, 0x50, 0xF1, 0x14
        }, 
        "layout-id", 
        Buffer (0x04)
        {
            0x0C, 0x00, 0x00, 0x00
        }, 
        "PinConfigurations", 
        Buffer (Zero) {}, 
        "hda-gfx", 
        Buffer (0x0A)
        {
            "onboard-1"
        }, 
        "device-type", 
        Buffer (0x11)
        {
            "Conexant CX20590"
        }, 
        "MaximumBootBeepVolume", 
        Buffer (One)
        {
            0x4D
        }
    }, Local0)
        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
        If (LEqual (Arg2, Zero))
        {
    Return (Buffer (One)
    {
        0x03
    })
        }
        Return (Local0)
    }
}
// 以上内容
Device (RP01)
...

Mac 工具

ShowAllFiles.app(显示隐藏文件)

Kext Wizard.app(修复 kext 权限)

常去

https://www.insanelymac.com
https://www.tonymacx86.com
https://www.osx86.net/
http://bbs.pcbeta.com/forum.php?gid=86
https://clover-wiki.zetam.org/zh-CN/zh-CN.home
https://www.osx86.net/files/file/49-clover-configurator
https://github.com/RehabMan
https://sourceforge.net/projects/voodoohda/files
https://github.com/toleda

待编辑

更新 2016-12-30
评论 ( 2 )
私信
pic
code
pre