Mojave 10.14.6下无后患实现HIDPI的总结教程(原创)
自我第一次成功调出HIDPI效果到现在大概已过去2个月了,其间我成功在3个不同的显示器上实现了HIDPI,每次都试用了很多不同的教程和方法,发现目前我们黑果友写的教程问题很大,大多数方法多多少少都有后遗症(比如说一键开启HIDPI,后遗症严重到我最后受不了重装了系统),甚至因为写教程的人不懂HIDPI的实现原理而导致按教程做完以后仍然无法开启HIDPI。极少的几个无后患的开启方法也写得很粗略,中间跳过了一些必须的步骤,导致HIDPI无法成功调出,故而我再狗尾续貂做个总结教程。此教程里的操作步骤来源于Pcbeta的“黑果小兵(Daliansky)”,威锋的“shadowcs”和什么值得买的“狂魔测试99号”各教程和我个人实践过程的思考与经验总结。里面的每个步骤理论上都有N种方法达到同样地效果,但请不要随意变更步骤顺序或简化流程,否则容易掉进我没来得及细说的某个坑里,影响最终结果。操作步骤:
零. 把/System/Library/Displays/Contents/Resources/Overrides目录整体备份一份出来,防止损坏系统原文件,这是黑果新手最容易后悔的事情之一。
一. 把这个位置的文件夹拷贝一份到桌面上/System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-2ac3
二. 使用黑果小兵实现HIDPI方法中的第一步,也就是使用DarwinDumper输出显示器EDID的那一步。https://blog.daliansky.net/Use-HIDPI-to-solve-sleep-wake-up-black-screen,-Huaping-and-connect-the-external-monitor-the-correct-posture.html
[*]打开 DarwinDumper,点击Choose,选择保存路径(随意)。
[*]点击Deselect All Dumps,取消所有的选择项
[*]勾选右侧的EDID
[*]点击Run按钮,生成一个文件夹,保存于桌面生成的新目录中,文件夹名称是由软件取的,我们暂时叫它A文件夹。
[*]打开黑果小兵教程里的FixEDID程序,点击Open EDID binary file,选择上面A文件夹里的EDID.BIN(好好翻翻,很容易找到的)。
三. 从FixEDID程序界面的左上角可知Vendor ID和Device ID,还记得我们之前拷贝到桌面上的那个文件夹吗?它的名字是DisplayVendorID-2ac3,用从FixEDID获知的Vendor ID(就是它右边那个3位或4位的16进制数字,如果不懂什么是16位进制数字,就是它右边那个3位或4位的数字和小写字母组合)替换掉2ac3,假设我们获知的FixEDID的Vendor ID是5a63,那么就把文件夹名字改为DisplayVendorID-5a63。再进入文件夹里面,里面只有一个文件叫做DisplayProductID-4620,同样用从FixEDID获知的Device ID来替换了那个4620。好,我们把这个改好名的文件夹现在正式称作B文件夹。
四. 现在打开一个网站,然后往下看看打开的网页,就能看到一个这样的界面。https://comsysto.github.io/Display-Override-PropertyList-File-Parser-and-Generator-with-HiDPI-Support-For-Scaled-Resolutions/
五. 看看B文件夹和它里面那个文件的名字,再看看这个界面,你应该知道该怎么填空了。注意,这个网页界面的DisplayProductName这一项可以随便乱写,只是不要把名字写得太长,取名用的字符也要规矩,最好只用大写字母和数字,顶多还可以有减号和空格,不要作妖,如果在这里写的字符里面有非法名称字符的话,可能会导致未知的后果。上三项填完后下面那一堆就是可以给你输入想要开启HIDPI分辨率的地方了
六. 注意!!!!!在填写分辨率的地方,要写的分辨率是你想要的分辨率的长宽各2倍左右(不用严格定在2倍整)!!!比如你要1920*1080,那就填3840*2160。如果你要3840*2160,那么就填7680*4320。在网站上这个分辨率可以给你随便写,但注意数字不要填得太大或太偏门。 1. 不要太大指的是分辨率不要超过你的显卡可以支持的极限,超过的话结果未知,估计你的黑苹果会开不了机,因为这个分辨率在以后引导黑苹果进系统的第二阶段会实打实输出到显示器上来的(显示器本身到还好,反正分辨率再大到了它这里都是缩放,LCD显示器其实只有一个分辨率)。我使用的是AMD的Vega64显卡,实测开6106*3384没有问题,其余的各位需要自己评估了,没有像我这样一台电脑里两块硬盘,一块装黑苹果系统,一块装黑苹果备份系统的情况下,建议大家不要胆子太大。 2. 不要太偏门指的是你输出的分辨率得是一台显示器正常会有的分辨率,不属于任何现存显示器能支持的分辨率如果贸然填上去,一般会不起效,少数情况下会导致你不得不重装黑苹果,这里最重要的就是,不一定所有分辨率的2倍都是一个可用分辨率的,如果心里没谱,就百度“显示器 你想输入的那个分辨率”,看看能不能搜出来有这样的东西。 3. 虽然可以填不少项分辨率,但最好不要超过9个分辨率,否则搞得太多超出这个文件应该的限制了的话后果不可测。 4. 虽然都做到这一步也晚了,但我还是想问,你清楚你显示器最高能到多少刷新率了吗?官网数据有看过吗?能开HIDPI的苹果原装或兼容显示器档次都不会太低,如果你的显示器刷新率达不到一个给力的数字以上(具体数字我不知道),可能会导致开启HIDPI以后进系统输入密码登录之后机率高达50%以上地偶发性死屏幕(这个原因是猜的,还是看别人猜的,但我从实际使用情况来看觉得很有道理)。目前我曾在3台显示器上启用过HIDPI,有2台出现了这种情况,1台23寸1080P的显示器刷新率最高是59Hz,1台40寸飞利浦显示器,刷新率是60Hz,它们都出事了,不管是安好了。只有现在这台刷新率能到75Hz的显示器什么问题都没有过。尝试HIDPI前请想清楚这种可能性(我因为这种情况都重装过一次系统了)。
七. 填好页面左边那堆参数后,就可以在右边拷贝文本框里所有的文本了,建议通过cmd+a的方式全选再拷贝。然后用文本编辑打开B文件夹里的那个DisplayProductID文件,把里面的文本全选删掉,粘贴刚才拷贝的页面上生成的文本,然后保存关闭。
八. 将B文件夹整个拷贝回/System/Library/Displays/Contents/Resources/Overrides/目录下,注意,有一定机率B文件夹改名后仍然会和Overrides目录下的某个文件夹同名,如果同名,建议给自己留条后路,不要替换,取消拷贝后单独把B文件夹里那个文件给拷到同名文件夹里就好了。当然,如果没有同名冲突,就直接拷贝完B文件夹拉到,在这一步拷贝时你必须已经关闭了SIP完整性才可以拷贝得进去,至于如何关闭SIP完整性不是这个教程要讲的,而且白苹果和黑苹果的关闭方法不一样(黑苹果一般来说SIP就从来没完全打开过,而对白苹果来说,拷贝结束后还需要再次开启SIP),请自行查询学习。
九. 在终端运行以下命令行sudo defaults write /Library/Preferences/com.apple.windowserver.plist DisplayResolutionEnabled -bool true(不要告诉我之后你不懂得输开机密码)
十. 重启,进系统后,随便装个RDM2.2(Retina Display Menu),打开后在右上角任务栏托盘区点一下新出现的那个显示器图标,从里面选你所需要的分辨率就好了,有闪电标志的就是已经打开了HIDPI效果的分辨率(这里有个有意思的事情,假设显示器是2560*1440,我之前写了个6106*3384的分辨率,结果真出来了个能开启HIDPI的3053*1692的分辨率,比我的显示器分辨率还大)。选好后如要检查是否成功开启了HIDPI,只需要cmd+shift+3快捷键做个全屏截图,然后使用预览看看桌面那张你截的图是什么分辨率的就知道了。
十一. 相信做到这一步,很多人都已经后悔了,对于显示器分辨率小于UHD(3840*2160)且屏幕不小的朋友来说,你会发现选显示器原生分辨率的HIDPI后显示器显示效果基本看不出和以前有什么区别(1080P下屏幕大于22寸,2K分辨率下屏幕大于27寸,或者屏幕不是玻璃镜面屏的显示器),这很正常,至少,当你选比你显示器原生分辨率小一级的分辨率时你会获得一个很清晰的放大屏幕。如果你不需要这种东西的话,那我们来学习怎么无后患取消HIDPI,恢复原来的样子吧233333,没必要死撑着不改回去,一个1080P分辨率的屏幕开了HIDPI后对于你的系统特别是你的显卡来说,就是实打实地在输出UHD分辨率(3840*2160,有些商家也把它叫做4K分辨率,虽然严格上来说4K分辨率是4096*2160),负担蛮重的,开机会慢一截,在性能较弱的平台上这种压力甚至可能直接影响系统的稳定性。
十二. 在终端用运行一下命令:sudo defaults write /Library/Preferences/com.apple.windowserver.plist DisplayResolutionEnabled -bool false然后删掉你拷贝进Overrides内的文件,清空废纸篓,重启,一切就会恢复最初的样子。
好了,打完收工,这是我在pcbeta写的第一篇技术帖,希望大家喜欢,另:转载随意,但需要注明作者和pcbeta论坛,别搞得别人看了转载的再来骂我抄袭那就见鬼了。本文上传于2019年8月4日凌晨1点28分,如有争议,请看发帖时间先后。
不错,值得学习 看样子这回能解决我双屏的一些问题,感谢楼主分享!加油! 哇!这么详细的教程,感谢楼主分享
马克一下, 谢谢楼主分享。 好长啊
技术贴
改了之后开机logo会变大吗? 学习了 感谢 这么多字还是支持下,打这么多字的楼主少啊 值得学习!!! 要认真学习技术,跟上队伍。 楼主,怎么去掉开机第二段的大苹果啊? hello_ok 发表于 2019-8-4 22:28 https://www.pcbeta.com/static/image/common/back.gif
楼主,怎么去掉开机第二段的大苹果啊?
同问,这个看着有点不爽的啊! LIBAIDDD 发表于 2019-8-4 21:29 https://www.pcbeta.com/static/image/common/back.gif
改了之后开机logo会变大吗?
会,这是因为苹果标加载第一阶段是Clover的驱动和设置在引导的,第二阶段切换为macos系统自己的驱动和设置,这两者的设置如果不一样就会,解决方法是先给clover一个高分辨率驱动CsmVideoDxe.efi(这玩意在有些主板或显卡上未必能用),然后给clover设置的分辨率要和你做HIDPI设置的分辨率相同,也就是2倍,1920*1080的HIDPI就要设成3840*2160的分辨率,当clover和系统的分辨率都设到这么高,就可以了。同样,这样它们两都会很小。 hello_ok 发表于 2019-8-4 22:28 https://www.pcbeta.com/static/image/common/back.gif
楼主,怎么去掉开机第二段的大苹果啊?
用我的方法第二段的苹果会非常小,而不是非常大。 hello_ok 发表于 2019-8-4 22:28 https://www.pcbeta.com/static/image/common/back.gif
楼主,怎么去掉开机第二段的大苹果啊?
解决方案我回复了,但是等审核,为毛我说点什么都要审核啊,人品这么差的吗? 楼主有没有同时开启hddpi又可以调整屏幕刷新率的办法,因为60赫兹的屏幕一直显示55赫兹 感谢分享,楼主辛苦了。 不错的教程 写的很详细 实现开启的方法有很多种 越简单的越是效果差的 写的很详细 值得学习