- 积分
- 158
- 最后登录
- 2024-4-14
- 精华
- 0
- 阅读权限
- 20
- 主题
- 17
- UID
- 4887081
- 帖子
- 304
- PB币
- 216
- 威望
- 6
- 贡献
- 0
- 技术
- 0
- 活跃
- 306
- UID
- 4887081
- 帖子
- 304
- PB币
- 216
- 贡献
- 0
- 技术
- 0
- 活跃
- 306
|
本帖最后由 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加载六代以下机型的电源键功能,并且节能只开启三项
|
|