wangdongfreesky 发表于 2023-3-3 09:40

书接上回,黑果电源键功能定制

本帖最后由 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加载六代以下机型的电源键功能,并且节能只开启三项

绿藻头 发表于 2023-3-3 10:38

感谢楼主分享

yixin_vip 发表于 2023-3-3 10:41

感谢分享

jiangzhourui 发表于 2023-3-3 10:43

{:5_591:}

qijianjiang 发表于 2023-3-3 11:21

感谢分享,这个高端了

shbin0713 发表于 2023-3-3 12:20

竟然有这么多花活,我只操作过短按电源键弹出四菜单,能和功能键组合按都不知道{:5_289:}

wangdongfreesky 发表于 2023-3-3 12:40

问题十、不用ssdt仿冒EC
其实PLCB路径下一般都有PNP0C02,名称为SIO1的设备,对该设备重新命名即可仿冒品EC。方法如下
打开OCC中ACPI设备选项,添加补丁
查找: 53494F31
替换为:45435F5F
注释:Rename SIO1 to EC
启用该补丁后即可删除ssdt- EC或者删除SSDT-EC-USBX中相关EC控制器代码

wangdongfreesky 发表于 2023-3-3 12:44

问题十一、开启AMD6系独显的HEVC硬解,
打开OCC设备属性中,在独显属性中添加
AAPL,slot-name字符类型 Slot-1

remyxo 发表于 2023-3-3 14:23

感谢楼主的分享,干货!{:5_293:}

305451372 发表于 2023-3-3 15:06

点赞, 感谢分享

hoho9999 发表于 2023-3-3 17:32

感谢分享 顺便问下现在黑果能支持hdmi2.1不

魔域封印 发表于 2023-3-3 17:49

不用定制也可以,我的黑果+magickeyboard快捷键依然有效

Dynamix 发表于 2023-3-3 19:23

补充回复 :
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不兼容

wangdongfreesky 发表于 2023-3-3 20:55

Dynamix 发表于 2023-3-3 19:23 https://bbs.pcbeta.com/static/image/common/back.gif
补充回复 :
AppleLPC在 Intel 6 代或更新的平台就已被苹果淘汰, 取而代之的是AppleIntelPCHPMC, 在 Intel ...

我这是amd平台

wangdongfreesky 发表于 2023-3-3 21:02

Dynamix 发表于 2023-3-3 19:23 https://bbs.pcbeta.com/static/image/common/back.gif
补充回复 :
AppleLPC在 Intel 6 代或更新的平台就已被苹果淘汰, 取而代之的是AppleIntelPCHPMC, 在 Intel ...

您的这些资料是哪里获得的?能给个网址吗?

whb1368 发表于 2023-3-3 21:34

高手在民间,大神在你我左右。

wangdongfreesky 发表于 2023-3-3 22:24

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加载六代以下机型的电源键功能,并且节能只开启三项

pyf14 发表于 2023-3-3 22:51

大神呀虽然看不懂

lzemi 发表于 2023-3-3 22:57

短按电源 睡眠了。

wangdongfreesky 发表于 2023-3-3 23:15

lzemi 发表于 2023-3-3 22:57 https://bbs.pcbeta.com/static/image/common/back.gif
短按电源 睡眠了。

能不能把PLCB的设备ID以及ioreg的LPCB和PMCR处的截图发过来,供我研究一下?成果我会分享
页: [1] 2
查看完整版本: 书接上回,黑果电源键功能定制