内容没有写完,往下看没意思。去其它论坛寻找解决方案,这里仅仅是自己的记录。
内容处于长期编辑状态,相当于无限期,毕竟涉及硬件条件,业余时间条件,知识点还不一定短时间内回顾理解,信息在变。
一、废言
一直要写个详细的安装教程,能写多少写多少。黑苹果涉及范围非常大,知识点细腻,技术一直在更迭,所有信息知识点均来源于互联网。
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 Error
、0 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
待编辑
https://clover-wiki.zetam.org/zh-CN/zh-CN.home
大佬 这个地址打不开啊
作者已脱坑。
换:https://sourceforge.net/p/cloverefiboot/wiki/Home/