黑苹果仿冒显卡

黑苹果仿冒显卡

MacOS 的 IOKit 检测设备 ID 来决定那个驱动来驱动设备。因此指定设备 ID 即可欺骗 IOKit ,让它加载对应的驱动。这么做的前提是,有驱动能够驱动设备。

一些免驱卡,不能免驱,原因大概是驱动里没有包含你的显卡的设备 ID ,导致无法驱动。苹果只需要管自家的硬件,所以驱动里包含的设备 ID 是有限的。

1、确定显卡的设备 id

Windows 平台使用 GPU-Z,或者在设备管理器中查看,MacOS 平台下,点击系统信息报告,找到显卡那一项就可以看到设备 ID。

设备 id 一般是下面的样子

# GPU-Z 里看到的设备 ID,前四位和后四位会倒过来。
# 例如:GPU-Z 内看到是 10DE-13C0,实际上是 0x13C010DE。
0x3E9B8086
0x67DF1002
0x13C010DE

0x 指的是十六进制,最后四位是供应商 ID,Intel 是 8086;AMD/ATI 是 1002,NVIDIA 是 10DE,中间四位是设备 ID。我的 ID 是0x73DF1002,驱动里最相似的 ID 是 0x73BF1002

2、注入设备 ID

注入设备 ID 有两种办法,一种是设备属性注入,另一种是 SSDT 方法。

2.1、设备属性注入

大概过程是找到和自己设备 id 最接近的 ID,通过 OpenCore Configurator / Clover Configurator / OpenCoreAuxiliaryTools / ProperTree 编辑器,添加到 Device Properties 的部分。需要填写的属性如下。

# 这个是 PCI 路径,可以从 Hackintool 获取。
PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)
# 这个是就是最重要的设备 ID 了,按要求转换之后将 ID 填入即可。
device-id 数据类型 data 73BF0000
# 这个是显示的显卡型号,可以自己自定义。
model 数据类型 string Radeon RX 6800xt

转换设备 ID 的方法:

因为 “大小端” 的原因,要将 ID 的顺序改变。

  • 第一步,删除 0x73BF1002 的前缀 0x,这部分是代表十六进制的前缀,id 不需要这部分。
  • 第二步,1002 是供应商 ID,没啥用直接删。
  • 第三步,两个两个为一组分开,然后按从右到左的顺序重新排列,其余的位置用 0 补齐。
  • 例如: <73 BF> → <BF 73 00 00>

保存,重启即可生效。其他设备的仿冒也是同理。

2.2、SSDT 方法注入

第一步是找到设备的路径。

2.2.1、Windows 设备路径查找方法

进入 Windows,按下 Win+X 快捷键,在弹出的菜单中选择设备管理器。找到你的显卡,右键选择属性,然后切换到详细信息,在属性框中找到位置路径。

其中第二行就是我们要的信息。

ACPI(_SB_)#ACPI(PCI0)#ACPI(GPP8)#PCI(0000)#PCI(0000)#PCI(0000)

去掉其中的 #ACPI() 和 #PCI(0000),然后以英文 . 连接起来,就得到了 ACPI 路径。

_SB_.PCI0.GPP8

部分显卡的 ACPI 路径可能隐藏在 BIOS 设备名称下。

2.2.2、 MacOS 设备路径查找方法

MacOS 下自行使用 IORegistryExplorer.app 在 MacOS 中来完成查找路径,这里不细说了。但这个软件只支持 10.14 及以上的系统,所以使用 10.13.6 的同学只能安装第二个系统来找路径。

2.2.3、修改预编译的 SSDT

自行安装 MaciASL.app ,这是一款用来编译 .dsl.aml 文件的编译工具。用 maciasl 打开 .dsl 文件。

.dsl 文件下载地址:

https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/decompiled/SSDT-GPU-SPOOF.dsl.zip

首先将 .dsl 文件里的设备路径替换成自己的设备路径。

External (_SB_.PCI0, DeviceObj)-->External (_SB_.PCI0, DeviceObj)
External (_SB_.PCI0.PEG0.PEGP, DeviceObj)-->External (_SB_.PCI0.GPP8, DeviceObj)
Scope (\_SB_.PCI0.PEG0.PEGP)-->Scope (\_SB_.PCI0.GPP8)
Scope (\_SB.PCI0)-->Scope (\_SB.PCI0)

修改设备 ID,按照之前的步骤,完成转换之后填入下面。

"device-id",
Buffer (0x04)
{
        0xBF, 0x73, 0x00, 0x00
},

修改显示的显卡型号,可以自己自定义。

"model",
Buffer ()
{
        "AMD Radeon RX 9700XT"
}

编辑完成后将文件保存为 .aml 文件并导入 OpenCore 或者 Clover 重启系统就可以了。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇