给Mac Big Sur修改外接显示器的分辨率

本文参考 《Mac 外接显示器色彩问题》和 《为 macOS 10.15 开启 HiDPI,让 2K 显示器更舒适》两篇文章。

刚买来新的 HUAWEI Mateview 无线版,显示器分辨率为 3840*2560 ,该死的 3:2 屏幕啊,我图啥......

外接2015年的Macbook Air的MiniDP口输出准4K分辨率。

但是,但是,但是~~Air只能输出 16:916:10 的分辨率,让我搞了整整一下午来调整这个分辨率,4个小时啊。

算了,总结一下吧。

关闭SIP

Big sur 和之前版本不同,需要的操作如下:

  1. 关机
  2. 长按 Command 键 和 R 键(都不要松开),短按 开机电源键,直到出现进度条才能松开。
  3. 找到终端,然后输入 csrutil authenticated-root disable ,出现 successfully 字样就算是成功了。(之前的版本是 csrutil disable

查询设备号

  1. 先断开显示器,输入如下代码:
1
2
ioreg -l | grep "DisplayVendorID"
ioreg -l | grep "DisplayProductID"
  1. 再插上显示器,再次运行上方代码。
  2. 两次得出来的不同的设备号就可以区分哪个 VendorIDProductID 是外接显示器的。
image-20220123175000229
  1. 记下那串代码,并将外接显示器的两个ID转换成对应的十六进制数, 如 895022f6 , 2819466e2

生成配置参数

  1. 在用户目录 ,即 ~ 下,使用 DisplayVendorID-xxxxxxxx 即对应外接显示器 Vendor 号的16进制 )创建一个文件夹。
  2. 然后在对应文件夹下创建一个 使用 DisplayProductID-yyyy ( yyyy` 即对应外接显示器 Product 号的16进制 )创建一个无后缀名的文件。
  3. Scaled Resolution for your Mac 网站生成配置参数,在红色框中分别填入你外接显示器的对应参数,和你想使你的显示器所呈现的分辨率参数。
image-20220123175609151
  1. 复制右侧的 xml 代码至刚刚的 DisplayProductID-yyyy 文件中,并保存。

导入系统

在Big Sur系统下,根目录 / 是禁止写入的,需要稍微用点技巧(走点弯路)。

  1. 新建一个文件夹,将解除SIP之后的 / 挂载到某个地方,如下方所示:
1
2
mkdir ~/nvme
sudo mount -o nobrowse -t apfs /dev/disk1s5 ~/nvme/

其中,/dev/disk1s5 中的 /disk1s5 要通过 磁盘工具 各自查看自己的 设备 ,最后面的 s1 去掉不写。

image-20220123173550666
  1. 然后就可以 cd 进去查看对应目录下的文件内容,但是所有读写操作都需要加上 sudo 才可以。
1
2
cd ~/nvme/System/Library/Displays/Contents/Resources/Overrides
ls
image-20220123173806535
  1. ~/DisplayVendorID-xxxx 复制到 ~/nvme/System/Library/Displays/Contents/Resources/Overrides 里面:
1
sudo cp -r ~/DisplayVendorID-22f6 ~/nvme/System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-22f6

复制完毕之后可以再 ls 查看,就存在了。

  1. 但是这种复制只是一种暂时的,重启之后就会被镜像文件所覆盖,所以要重新 snapshot 一下。注意,这一步一定要做,否则重启就失效了。
1
sudo bless --folder ~/nvme/System/Library/Displays/Contents/Resources/Overrides --bootefi --create-snapshot