前言:

本来不打算发这个帖子的,因为好多人觉得没有什么用,但前几天帮论坛好友阿林解决他hd4600花屏问题时,发现这个方法还是有一定作用的。之前在10.12区有坛友的4600部分区域出现花屏的情况,最后通过修改注入的ig来解决的,大家都知道,4200 4400 4600都是靠FakeID0x04128086ig0x0a260006然后配合FakePCIIDFakePCIID_HD_Graphics两个kext来驱动的,大家也知道,一部分4600也可以用0x04160000而不需要FakeID注入来驱动(相应的不少4400也可以用0x0a160000而不需要FakeID来驱动),两种方法都可以驱动核显,但区别还是有的,最容易发现的就是显存了,第一种方法驱动后都是1536m,第二种则是1024m。而前面提到的4600部分区域花屏的案例则是用第二种方式来解决的,后来经过测试,发现通过对framebuffer进行patch以达到2048m的显存也可以解决这个问题,于是这个方法就被我记在心里了。后来在帮阿林解决了他的花屏问题后,决定还是把相关方法写出来,虽然没什么技术含量,但也能为景友提供一个思路。
废话就说到这,下面说方法:

开工

查看FB以及ig

首先,确定你当前加载的Framebuffer,终端执行以下命令

$ kextstat | grep -y AppleIntel

如图,看输出结果中带Framebuffer的就是我们需要的(haswell之前的是带FB的),图中我的就是AppleIntelFramebufferAzul然后执行以下命令查看当前使用的ig

$ ioreg -l | grep ig-platform-id

如图我的就是0x0a260006,有朋友不清楚,不是0600260a吗,下次一定要知道,这种id将每两位一组分组,然后从后往前排序,最后由于是十六进制,我们在最前面加上0x来表示,就得出了0x0a260006,这就是我们的id,当然了,后面步骤中用到的还是0600260a

下载并安装hexfiend

我直接放链接了
链接:https://pan.baidu.com/s/1EhkVv2eaUE1u_Gmp87arJw 密码:lm1o

FB中查找ig进行处理

然后,在/System/Library/Extensions下找到和第一步找出的Frambuffer同名kext,以我的为例,就是AppleIntelFramebufferAzul.kext,右键显示包内容,在/Contents/MacOS下将kext的同名文件拷贝到桌面,以我的为例就是AppleIntelFramebufferAzul

右键此文件打开方式选我们刚才安装的hexfiend,快捷键command + F调出搜索框,输入刚才在第一步找到的ig,回车搜索,找到后面紧跟01030303的那一串字符,如图

从搜索的ig后面第一串开始,到00000060结束,将这些字符串拷贝到一个文本文档,并八个数字一组,整理好,然后再复制一行,将第二行最后的60改为80,如图

第一串就是我们要做的patchFind,第二串是Replace,而Name则是第一步中的Framebuffer名字,我这里就是AppleIntelFramebufferAzulComment就无所谓了,我写成Change VRAM from 1536MB to 2048MB for HD4400,这时我们的补丁就做好了。

最后将patch打到config.plist

然后保存重启,就会发现关于本机的显存从原来的1536MB变成了2048MB

如果没效果,可以尝试重建缓存。

帖子的最后,我将之前做的几个patch贴出来,大家可以尝试使用

HD4200_4400_4600 Mobile

Name:           AppleIntelFramebufferAzul
Find:           01030303 00000002 00003001 00006000 00000060
Replace:        01030303 00000002 00003001 00009000 00000080
Comment:        1536MB -> 2048MB for HD4200_4400_4600 Mobile

HD620 Mobile:

Name:           AppleIntelKBLGraphicsFramebuffer
Find:           01030303 00002002 00000000 00000060
Replace:        01030303 00002002 00000000 00000080 
Comment:        1536MB -> 2048MB for HD620 Mobile

HD630 Mobile:

Name:           AppleIntelKBLGraphicsFramebuffer
Find:           01030303 00006002 00005001 00000060
Replace:        01030303 00006002 00005001 00000080
Comment:        1536MB -> 2048MB for HD630 Mobile

HD520_530_540 Mobile:

Name:           AppleIntelSKLGraphicsFramebuffer
Find:           01030303 00002002 00005001 00000060
Replace:        01030303 00002002 00005001 00000080
Comment:        1536MB -> 2048MB for HD520_530_540 Mobile

HD5500 Mobile:

Name:           AppleIntelBDWGraphicsFramebuffer 
find:           01030303 00002002 00005001 00000060
Replace:        01030303 00002002 00005001 00000080
Comment:        1536MB -> 2048MB for HD5500 Mobile