Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

搜索
查看: 11561|回复: 86

[教程] [2016.4.6]加载原生的CPU电源管理,AppleLPC,睡眠 多方法整理 [复制链接]

Rank: 2Rank: 2

UID
4113735
帖子
420
PB币
57
贡献
0
技术
4
活跃
648
发表于 2016-4-6 14:23:09 |显示全部楼层
本帖最后由 tanpengsccd 于 2016-4-9 02:15 编辑

概述:
此教程教程需要一定基础,不懂请善用论坛搜索。
方法1:dsdt注入相似白果相似LPC ID(推荐)
方法2:修改AppleLPC.kext驱动加入黑果主板LPC ID
以上2种都需要都需要知道自己的LPC的设备 id。
-----------------------

1.0 获取自己主板的LPC id(以我的ASUS P5Q 的原LPC id 3a16仿冒为3a18为例子)

        在windows 系统 的设备管理球 获取LPC 设备ID 一般 4位 如“3a 16”,“8c50”等
         在MAC系统里 使用IORegisryExplorer 搜索 LPC 也可以找到(前提是使用未修                                                          改过的DSDT,或者没使用DSDT)
-------------------------

2.1 dsdt注入相似白果相似LPC ID(推荐)

        2.1.1 选择需要的仿冒的LPC id
        这一步需要先在/System/Library/Extensions/AppleLPC.kext/Contents/ 的Info.plist 找到原生支持的id,这里列举一下10.11.4原生支持的id
<dict>
                <key>AppleLPC</key>
                <dict>
                        <key>CFBundleIdentifier</key>
                        <string>com.apple.driver.AppleLPC</string>
                        <key>IOClass</key>
                        <string>AppleLPC</string>
                        <key>IONameMatch</key>
                        <array>
                                <string>pci8086,2811</string>
                                <string>pci8086,2815</string>
                                <string>pci8086,27b9</string>
                                <string>pci8086,27bd</string>
                                <string>pci8086,2670</string>
                                <string>pci8086,8119</string>
                                <string>pci8086,2916</string>
                                <string>pci8086,3a18</string>
                                <string>pci8086,3b00</string>
                                <string>pci8086,3b01</string>
                                <string>pci8086,3b02</string>
                                <string>pci8086,3b09</string>
                                <string>pci8086,1e44</string>
                                <string>pci10de,aac</string>
                                <string>pci10de,aae</string>
                                <string>pci10de,aaf</string>
                                <string>pci10de,d80</string>
                                <string>pci10de,d81</string>
                                <string>pci10de,d82</string>
                                <string>pci10de,d83</string>
                        </array>
                        <key>IOProbeScore</key>
                        <integer>1000</integer>
                        <key>IOProviderClass</key>
                        <string>IOPCIDevice</string>
                        <key>LCTL_Offset</key>
                        <integer>424</integer>
                </dict>
我原LPC的id 为3a16 ,选择仿冒的id是列表中的 3a18 (红色标出),判断依据 是 id前三位 字母尽量相同


        2.1.2 使用MaciASL 打开自己主板的无错DSDT,搜索 0x001F0000 ,
在    Name (_ADR, 0x001F0000)  的下一行插入 (注意要删除我的注释(红色),不然可能 编译出错)
Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                {
                    Store (Package (0x06)
                        {
                            "device-id",
                            Buffer (0x04)
                            {
                                 0x18, 0x3a, 0x00, 0x00    //若 id 是 3a 18 则该填18  3a            
                            },

                            "name",
                            Buffer (0x0D)
                            {
                                “pci8086,3a18"  //直接输入 3a18
                            },

                            "compatible",
                            Buffer (0x0D)
                            {
                                “pci8086,3a18" //直接输入 3a18
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
如:(已经插入好自己需要仿冒LPC  id 3a18,红色部分)
        ……..
  Device (SBRG)
            {
                Name (_ADR, 0x001F0000)  // _ADR: Address
                Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                {
                    Store (Package (0x06)
                        {
                            "device-id",
                            Buffer (0x04)
                            {
                                 0x18, 0x3a, 0x00, 0x00                        
                            },

                            "name",
                            Buffer (0x0D)
                            {
                                "pci8086,3a18"
                            },

                            "compatible",
                            Buffer (0x0D)
                            {
                                "pci8086,3a18"
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }

                Device (IELK)
                {
        ………..
关于id 倒序:
因为intel的X86 使用的是小端,而Mac 是大端,所以在Mac上就得转换一下,简单说上就是倒一下顺序。所以如果id 为 3a 18,则DSDT 上要注入的是 18 3a,(注意不是81 a3,因为16进制是2位 表示一个数字)
-------------------------------------
2.2:修改AppleLPC.kext驱动加入黑果主板LPC ID (不推荐,升级系统可能会失效)
        /System/Library/Extensions/AppleLPC.kext/Contents/
在 上述的路径 中找到 Info.plist,添加 于自己相近的 LPC id
        我原LPC的id 为3a16 ,找到最相近的id是列表中的 3a18 (红色标出),判断依据 是 id前三位 字母尽量相同。
在3a18 下一行加入 自己的 id 我的是3a16(绿色标注)
这里是10.11.4 的LPC id列表
<dict>
                <key>AppleLPC</key>
                <dict>
                        <key>CFBundleIdentifier</key>
                        <string>com.apple.driver.AppleLPC</string>
                        <key>IOClass</key>
                        <string>AppleLPC</string>
                        <key>IONameMatch</key>
                        <array>
                                <string>pci8086,2811</string>
                                <string>pci8086,2815</string>
                                <string>pci8086,27b9</string>
                                <string>pci8086,27bd</string>
                                <string>pci8086,2670</string>
                                <string>pci8086,8119</string>
                                <string>pci8086,2916</string>
                                <string>pci8086,3a18</string>
                                <string>pci8086,3a16</string>
                                <string>pci8086,3b00</string>
                                <string>pci8086,3b01</string>
                                <string>pci8086,3b02</string>
                                <string>pci8086,3b09</string>
                                <string>pci8086,1e44</string>
                                <string>pci10de,aac</string>
                                <string>pci10de,aae</string>
                                <string>pci10de,aaf</string>
                                <string>pci10de,d80</string>
                                <string>pci10de,d81</string>
                                <string>pci10de,d82</string>
                                <string>pci10de,d83</string>
                        </array>
                        <key>IOProbeScore</key>
                        <integer>1000</integer>
                        <key>IOProviderClass</key>
                        <string>IOPCIDevice</string>
                        <key>LCTL_Offset</key>
                        <integer>424</integer>
                </dict>
使用 Kext Utility  修复权限缓存

3.0 重启
        仿冒成功的标志
        1是 节能器 出现 断电后自动重启 的选项。
        2 IORegistryExplorer 搜索LPC 可以看到自己仿冒的 LPC id未成功的话是自己原LPC id
        3  关于本机-系统报告-功能扩展-找到 AppleLPC  已载入 为 “是”

需要的软件 请自己搜索,本人另发的帖子大部分软件都有,请点击我的头像下的帖子后再选主题。

1

查看全部评分

Rank: 2Rank: 2

UID
4113735
帖子
420
PB币
57
贡献
0
技术
4
活跃
648
发表于 2016-4-6 14:25:32 |显示全部楼层
没颜色了。。。。。。。。。
传一个 word 文档
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

Rank: 7Rank: 7Rank: 7

UID
3593444
帖子
1335
PB币
260
贡献
0
技术
1
活跃
1299
发表于 2016-4-6 14:40:46 |显示全部楼层
支持了    晚上回去看

Rank: 2Rank: 2

UID
4113735
帖子
420
PB币
57
贡献
0
技术
4
活跃
648
发表于 2016-4-6 14:42:31 |显示全部楼层
编译出现 Object does not exist (DTGP) 错误
macisal 使用 此脚本
#Maintained by: PHPdev32 for: Sourceforge
into method label DTGP remove_entry;
into definitionblock code_regex . insert
begin
Method (DTGP, 5, NotSerialized)\n
{\n
    If (LEqual (Arg0, Buffer (0x10)\n
            {\n
                /* 0000 */    0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44, \n
                /* 0008 */    0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B\n
            }))\n
    {\n
        If (LEqual (Arg1, One))\n
        {\n
            If (LEqual (Arg2, Zero))\n
            {\n
                Store (Buffer (One)\n
                    {\n
                        0x03\n
                    }, Arg4)\n
                Return (One)\n
            }\n
            If (LEqual (Arg2, One))\n
            {\n
                Return (One)\n
            }\n
        }\n
    }\n
    Store (Buffer (One)\n
        {\n
            0x00\n
        }, Arg4)\n
    Return (Zero)\n
}
end

Rank: 2Rank: 2

UID
4113735
帖子
420
PB币
57
贡献
0
技术
4
活跃
648
发表于 2016-4-6 15:20:26 |显示全部楼层
另一种仿冒id的补丁
Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                {
                    Local0 = Package (0x02)
                        {
                            "compatible",
                            Buffer (0x0D)
                            {
                                "pci8086,1e44"
                            }
                        }
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }

Rank: 2Rank: 2

UID
1882619
帖子
75
PB币
85
贡献
0
技术
2
活跃
219
发表于 2016-4-6 15:42:59 |显示全部楼层
例子重复了,另外第二个是不是错了,里面的
  "device-id",
                            Buffer (0x04)
                            {
                                 0x50, 0x8C, 0x00, 0x00   
不应该是
  "device-id",
                            Buffer (0x04)
                            {
                                 0x18, 0x3a, 0x00, 0x00
吗?   

点评

tanpengsccd  是的 应该是下面的那个值  发表于 2016-4-7 14:41

黑苹果爱好者

Rank: 5Rank: 5Rank: 5

UID
4797845
帖子
442
PB币
53
贡献
0
技术
0
活跃
121
发表于 2016-4-6 16:13:59 |显示全部楼层
这个总结很有用,方便查找

Rank: 7Rank: 7Rank: 7

UID
350582
帖子
2043
PB币
145
贡献
0
技术
0
活跃
1088

8周年庆典勋章

发表于 2016-4-6 16:16:09 |显示全部楼层
感谢你的分享。

Rank: 2Rank: 2

UID
4772217
帖子
330
PB币
190
贡献
0
技术
0
活跃
226
发表于 2016-4-6 16:17:53 |显示全部楼层
这么6666666

Rank: 1

UID
387727
帖子
81
PB币
260
贡献
0
技术
0
活跃
148
发表于 2016-4-6 17:07:06 |显示全部楼层

感谢你的分享。

Rank: 9

UID
4757969
帖子
5314
PB币
8257
贡献
0
技术
8
活跃
1272

十一周年

发表于 2016-4-6 17:14:23 |显示全部楼层
这个不错

Rank: 2Rank: 2

UID
148463
帖子
372
PB币
2120
贡献
0
技术
9
活跃
689
发表于 2016-4-6 17:37:25 |显示全部楼层
收藏了,感谢楼主。

Rank: 5Rank: 5Rank: 5

UID
3515309
帖子
1066
PB币
153
贡献
0
技术
0
活跃
794
发表于 2016-4-6 17:41:20 |显示全部楼层
看看先、、谢谢分享

Rank: 2Rank: 2

UID
4236777
帖子
197
PB币
1
贡献
0
技术
5
活跃
220
发表于 2016-4-6 18:29:11 |显示全部楼层
赞赞赞的。

Rank: 2Rank: 2

UID
119778
帖子
112
PB币
1600
贡献
0
技术
0
活跃
146
发表于 2016-4-6 19:02:31 |显示全部楼层
先收藏一下,刚换了 skylake 1151 + 150 主板  玩玩黑苹果。

Rank: 5Rank: 5Rank: 5

UID
1423674
帖子
832
PB币
594
贡献
0
技术
1
活跃
1079
发表于 2016-4-6 19:07:04 |显示全部楼层
好东西,有时间研究研究

Rank: 1

UID
1192675
帖子
45
PB币
57
贡献
0
技术
0
活跃
23
发表于 2016-4-8 13:52:50 |显示全部楼层
楼主这个地方
在windows 系统 的设备管理球 获取LPC 设备ID 一般 4位 如“3a 16”,“8c50”等

应该是设备器,然后获取LPC 这个获取LPC 是设备管理器的哪一个? 搞个图可以吗.
头像被屏蔽

Rank: 2Rank: 2

UID
784555
帖子
200
PB币
0
贡献
0
技术
8
活跃
122
发表于 2016-4-8 14:19:06 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

Rank: 5Rank: 5Rank: 5

UID
599512
帖子
1029
PB币
14
贡献
0
技术
22
活跃
546
发表于 2016-4-8 18:47:35 |显示全部楼层
学习学习了

Rank: 2Rank: 2

UID
4621386
帖子
269
PB币
0
贡献
0
技术
11
活跃
308
发表于 2016-4-8 19:15:56 |显示全部楼层
tanpengsccd 发表于 2016-4-6 14:25
没颜色了。。。。。。。。。
传一个 word 文档

楼主强人 /mark  备用
关闭

站长推荐

已经开启实名认证了哟
这里可以进行实名操作:点我点我点我
回顶部
Copyright (C) 2005-2019 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛 | 电脑硬件 | 安卓软件