书接上回,黑果电源键功能定制
本帖最后由 wangdongfreesky 于 2023-3-4 00:21 编辑问题九、电源键的定制以及LPCB设备加载。macOS的电源键可以实现诸如短按弹出关机菜单,重启和睡眠等功能,这取决于AppleLPC.kext的加载方式,不同的加载方式构成了不同类型的附加键(Ctrl、win键花键、Alt键)与电源键不同的组合方式实现一键重启一键进入睡眠等。而AppleLPC的不同加载方式取决于LPCB设备的设备ID,不同类型的设备ID导致了AppleLPC的加载,进而实现不同的电源键组合方式。那么通过仿冒设备id从而实现电源键功能的加载。这些设备ID可以从白果机型中获得,也可以尝试AppleLPC中已经存在的四类设备ID。下面我给出ssdt中的仿冒方法:DefinitionBlock ("", "SSDT", 2, "WDOC", "DEVICE", 0x00000000)
{
External (_SB_.PCI0.LPCB, DeviceObj) //这里要修改成你自己的设备路径,有的是pc00,有的是SBRG(我一般都设备重命名改为LPCB)
If (_OSI ("Darwin"))
{
Scope (\_SB.PCI0.LPCB)
{
Method (_DSM, 4, NotSerialized)// _DSM: Device-Specific Method
{
If ((Arg2 == Zero))
{
Return (Buffer (One)
{
0x03 // .
})
}
Return (Package (0x06)
{
"device-id",
Buffer (0x04)
{
0xC1, 0x9C, 0x00, 0x00 // ....
},
"vendor-id",
Buffer (0x04)
{
0x86, 0x80, 0x00, 0x00 // ....
},
"compatible",
Buffer (0x0D)
{
"pci8086,9cc1"
}
})
}
}
}
}
上面的方法不仅对Intel有效,对AMD的黑果也有效,但是如果你是Intel的平台,用OC可以使用更加简单的仿冒方法:
用OCC打开配置文件,进入到设备属性一栏,从PCI设备列表中(ISA bridge)添加LPCB的路径(可通过Hackintool确认)
然后添加两行属性:
compatible 字符型 pci8086,9cc1
device-id Data类型 c19c0000 注意反写
欢迎各位群友尝试不同的设备ID,并把实现的功能反馈上来供其他人参考。
我上面的代码实现了
1.短按电源键和Ctrl+电源键弹出重启睡眠取消关机四按钮选择菜单
2.Ctrl+win+电源键直接一键硬重启(直接重启没有给你时间保存)
3.Alt+win+电源键一键睡眠
4.电源键一键快速唤醒,相比鼠标键盘唤醒的二十多秒,这个仅需5秒左右补充回复 :
AppleLPC在 Intel 6 代或更新的平台就已被苹果淘汰, 取而代之的是AppleIntelPCHPMC, 在 Intel的 100 ~ 200、Z370、B365 系列芯片组上由 pciPMC (00:1F:02) 匹配加载AppleIntelPCHPCM实现此功能, 300 (不包括 Z370 B365)/ 400 系列主板 Intel将PMC的改为虚拟设备 仅保留了他的内存范围 FE000000h , Windows 通过设备PNP0C02、Unique ID "PCHRESV"报告PMC的控制区域, 而macOS 则使用苹果自己定义的设备 PMCR HardwareID "APP9876" 来加载 AppleACPIPMC 实现此功能
总结 : 楼主的方法仅适用于 Intel 6代以下平台
Intel的 100、200系列主板以及Z370 B365不需要此方法也不需要 SSDT-PMC也可以实现电源键功能以及节能中的 断电重启选项
Intel 300 / 400 主板 放一个 SSDT-PMC.aml 即可
Intel 500系列或以上啥也别放了 intel已更改了PWRM的范围 已经和AppleIntelPCHPMC不兼容
您说的对,果然如此,只是加载了lpc多了一个短按电源键弹出菜单的功能,看来电源键功能主要取决于pmcr设备,如果ssdt中有该设备,则电源键功能加载并且有节能四项功能,如果没有pmcr设备,则系统判断plcb设备id加载六代以下机型的电源键功能,并且节能只开启三项
感谢楼主分享 感谢分享 {:5_591:} 感谢分享,这个高端了 竟然有这么多花活,我只操作过短按电源键弹出四菜单,能和功能键组合按都不知道{:5_289:} 问题十、不用ssdt仿冒EC
其实PLCB路径下一般都有PNP0C02,名称为SIO1的设备,对该设备重新命名即可仿冒品EC。方法如下
打开OCC中ACPI设备选项,添加补丁
查找: 53494F31
替换为:45435F5F
注释:Rename SIO1 to EC
启用该补丁后即可删除ssdt- EC或者删除SSDT-EC-USBX中相关EC控制器代码 问题十一、开启AMD6系独显的HEVC硬解,
打开OCC设备属性中,在独显属性中添加
AAPL,slot-name字符类型 Slot-1 感谢楼主的分享,干货!{:5_293:} 点赞, 感谢分享 感谢分享 顺便问下现在黑果能支持hdmi2.1不 不用定制也可以,我的黑果+magickeyboard快捷键依然有效 补充回复 :
AppleLPC在 Intel 6 代或更新的平台就已被苹果淘汰, 取而代之的是AppleIntelPCHPMC, 在 Intel的 100 ~ 200、Z370、B365 系列芯片组上由 pciPMC (00:1F:02) 匹配加载AppleIntelPCHPCM实现此功能, 300 (不包括 Z370 B365)/ 400 系列主板 Intel将PMC的改为虚拟设备 仅保留了他的内存范围 FE000000h , Windows 通过设备PNP0C02、Unique ID "PCHRESV"报告PMC的控制区域, 而macOS 则使用苹果自己定义的设备 PMCR HardwareID "APP9876" 来加载 AppleACPIPMC 实现此功能
总结 : 楼主的方法仅适用于 Intel 6代以下平台
Intel的 100、200系列主板以及Z370 B365不需要此方法也不需要 SSDT-PMC也可以实现电源键功能以及节能中的 断电重启选项
Intel 300 / 400 主板 放一个 SSDT-PMC.aml 即可
Intel 500系列或以上啥也别放了 intel已更改了PWRM的范围 已经和AppleIntelPCHPMC不兼容
Dynamix 发表于 2023-3-3 19:23 https://bbs.pcbeta.com/static/image/common/back.gif
补充回复 :
AppleLPC在 Intel 6 代或更新的平台就已被苹果淘汰, 取而代之的是AppleIntelPCHPMC, 在 Intel ...
我这是amd平台 Dynamix 发表于 2023-3-3 19:23 https://bbs.pcbeta.com/static/image/common/back.gif
补充回复 :
AppleLPC在 Intel 6 代或更新的平台就已被苹果淘汰, 取而代之的是AppleIntelPCHPMC, 在 Intel ...
您的这些资料是哪里获得的?能给个网址吗? 高手在民间,大神在你我左右。 Dynamix 发表于 2023-3-3 19:23 https://bbs.pcbeta.com/static/image/common/back.gif
补充回复 :
AppleLPC在 Intel 6 代或更新的平台就已被苹果淘汰, 取而代之的是AppleIntelPCHPMC, 在 Intel ...
您说的对,果然如此,只是加载了lpc多了一个短按电源键弹出菜单的功能,看来电源键功能主要取决于pmcr设备,如果ssdt中有该设备,则电源键功能加载并且有节能四项功能,如果没有pmcr设备,则系统判断plcb设备id加载六代以下机型的电源键功能,并且节能只开启三项 大神呀虽然看不懂 短按电源 睡眠了。 lzemi 发表于 2023-3-3 22:57 https://bbs.pcbeta.com/static/image/common/back.gif
短按电源 睡眠了。
能不能把PLCB的设备ID以及ioreg的LPCB和PMCR处的截图发过来,供我研究一下?成果我会分享
页:
[1]
2