最近因为笔记本的SSD出现了奇怪的问题,所以选择了重装系统,在重装系统之后,发现Dolby Atmos这些组件,由于声卡驱动的软件组件的存在,一旦连接到网络,即可通过Windows Update自动重新下载和安装,但是Dolby Vision这类额外组件,则需要手动补全。但在通过Microsoft Store的已购买功能找到Dolby Vision客户端安装后,发现调整设置没有反应,在Dolby Access中直接没有了杜比视界选项,播放Dolby Vision视频也没有了Logo提示和色彩校准,Netflix HDR视频内容也完全是偏色的状态。
FixDBV_MissingVision
在网上大量寻找资料,得知Dolby Vision是需要校准+密钥二合一文件才可在Windows下打开,于是便在网上大量寻找我这个型号的校准+密钥二合一文件,然而联想并未任何单独下载,其他OEM的方案则是通过显示器驱动来解决,然而联想并未给我这个型号提供任何显示器驱动。
由于跟我这个产品的PM有认识,他给出的方法是建议送到附近的维修站重装系统,然而我目前不在国内,并不具备去到服务站的条件。其后,他又给出了一个建议,使用联想海外版本的LDDRS(Lenovo Digital Download Recovery Service)服务,自行制作官方恢复盘进行恢复(可在此处找到)
但在刻录完启动盘之后,从U盘启动,发现其要格式化整个硬盘来重装系统,并且恢复到旧版本的Windows,由于前一次重装系统后数据已经重新安排妥当,所以我没有选择直接恢复,而是开始对恢复盘的文件内容进行逆向。
其恢复盘内的大部分内容通过IMZ文件(本体)+CRI文件(基本信息)来组成
FixDBV_RecoveryFileDetails
由于CRI是文本文件,则很方便的就寻找到了DolbyVision所对应的CRI和IMZ文件
FixDBV_CriInEditor
同时发现其所谓的IMZ,也仅仅只是7z压缩包而已
但是,在解压时,却又出现了问题
FixDBV_PasswordError
发现其中提到的"Password=lenovo"根本不对!这里有坑!所以又继续爬贴,爬Github,终于在一个小众论坛和Github上找到了解决方案(这里这里),在此感谢DenizOezmen的逆向!
那时候觉得Python不够优雅,所以把它给移植到了C++和Javascript,代码和可执行文件如下
网页版

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string PwChars = "k`gybs0vampjd";
    string Password;
    cout << "Lenovo Recovery Image IMZ File Password Analyzer\n(C)Yuu 2022\n";
    cout << "Password in CRI File>>";
    cin >> Password;
    cout << "Real Password: ";
    for (int i = 0; i < Password.length(); i++)
    {
        cout << (char)(PwChars[Password[i] % 13] - (i % 3) + 2);
    }
    cout << endl;
    system("pause");
    return 0;
}

下载可执行文件(Windows-x86)
执行后,成功得到了真实密码!
FixDBV_RealPassword
也终于成功解压出了所有文件!
FixDBV_RealFile
在对setup.cmd进行简单的分析过后,发现其实并不用那么复杂,其全部过程即为
1.先行安装"Headedcode"或"Headlesscode"文件夹内的appx

注:
1.如果你的设备使用DolbyAccess来管理所有杜比组件,则安装Headlesscode中的appx(即为Store中的Dolby Vision Extension)
2.如果你的设备跟我的一样,使用单独的Dolby Vision App来管理,则需要安装Headedcode中的appx

2.再通过管理员权限执行其中的ProvisionDolbyVision.exe,有可能会报错但不影响使用
3.此时重启设备,你会发现你的DolbyVision回来了!
FixDBV_Succeed

注:
通过对ProvisionDolbyVision.exe的分析,发现其只是检测MONITOR/后的字符串,然后从ICMS文件夹中,选定要复制的文件,将文件名改为PQCONFIG.DV后,复制到<SYSTEM_DRIVE>:\WINDOWS\System32\spool\drivers\color目录下而已,如果这个一键程序无法正常工作,则可以通过直接复制的方法来解决问题

知识共享许可协议
本文及其附件均采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。

1 条评论

  1. rantrism rantrism

    您好~我是腾讯云开发者社区运营,关注了您分享的技术文章,觉得内容很棒,我们诚挚邀请您加入腾讯云自媒体分享计划。完整福利和申请地址请见:https://cloud.tencent.com/developer/support-plan
    作者申请此计划后将作者的文章进行搬迁同步到社区的专栏下,你只需要简单填写一下表单申请即可,我们会给作者提供包括流量、云服务器等,另外还有些周边礼物。

添加新评论