分类 开发随笔 下的文章

最近因为笔记本的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目录下而已,如果这个一键程序无法正常工作,则可以通过直接复制的方法来解决问题

去年年底,借着一些关系联系到了小米电视的PM,直接反馈了一些问题之后,小米给我手头这个18年底就断更的机器更新了最终版本的更新,把大部分Bug和缺憾都做了补全,我很是满意。
但是发现从老版本更新到新版本之后,系统原生的设置不见了。还好老版本当中没有odex化系统App,所以可以直接拿出来安装后补全。不知道其他用户有没有需求,所以在此随便记录一下。
测试版本: 4A 32" matrix Android6.0.1 MIUITV1.3.89

过程

1.安装Settings.apk和Starter.apk
2.于我的应用界面会出现以下图标的APP
MITVSettings_Starter
3.点选即可打开设置主页面
MITVSettings_AOSP1
MITVSettings_AOSP2
也可以通过快速点按版本号来打开完整版的开发者选项
MITVSettings_AOSP3

下载

Settings.apk
Starter.apk

最近有在WindowsMe下跑某软合成器,由于其是依赖VXD的驱动,所以只得搭建虚拟环境后才可正常运行
但直接在现代虚拟机里运行如此古早的操作系统肯定会有缺少驱动及功能不完整的问题
在此,我通过各种渠道以及方法收集到了这些驱动,且于WindowsMe测试可用
完整安装之后即可消除全部的设备管理器中的叹号并添加完整USB2.0支持,且Sound Blaster 128可导入自选软波表

类别设备名版本号日期
NICPCNET4.51.0.02004/07/07
AICSound Blaster 128PCI5.12.01.20652001/10/26
USBPCI to USB Enhanced Host Controller4.90.3000.102003/09/26
USBUSB 2.0 Root Hub4.90.3000.102003/09/26
HIDPointing Device2001/06/11
GPUSVGA II10.7.0.02001/11/28
SYSVMCI Bus7.2.30.02009/07/16

版权归属
© Advanced Micro Devices, Inc 2004
© Creative Technology Ltd. 2001
© Microsoft Corporation 2003
© VMware, Inc. 2001-2009

点此下载ISO

最近突发奇想想看看ICOM的短波发射机的固件
就花了一晚上时间写了个算法解压了它
我作为懒人,肯定懒得写分析日志
所以给出两条提示:
1.找到正确的头,大胆删无用数据
2.Lempel–Ziv–Storer–Szymanski(LZSS)压缩算法
在此提供成功解压后的IC-7300的1.40版本固件,发布于2021年2月26日
点此下载
同时得知该设备的AP为RENESAS RZ-A1,是ARM架构,有空再用IDA看看再写下一篇分析日志(咕咕咕~)

SHMobile APE5R

MP5225
45nm
CPU:Cortex-A9 双核心 1.2Ghz L1:32KB/32KB L2:512KB
GPU:PowerVR SGX543MP2

SH Mobile G5

R8A73A00
45nm
ARM11 1.2Ghz
GPU: PowerVR SGX543MP
其他信息不明

SH Mobile G4

R8A73777
CPU(媒体核心):500Mhz(SH-X2(SH4AL-DSP))(I:32KB/D:32KB)/DSP(XYRAM:16KB)
CPU(应用核心):1.0Ghz(ARM1136JZF-S)(I:32KB/D:32KB)/VFP(ITCM:8KB)(L2:256KB)
CPU(基带核心):166Mhz(ARM926EJ-S)(I:32KB/D:32KB)(ITCM:64KB)(DTCM:16KB)
GPU:PowerVR SGX540
周边外围:
VPU(视频解码):MPEG4/H264/VG1
VIO(图像信号处理):最大12MP
MeRAM(512KB)
GPS
声音处理单元
网络支持:WCDMA(HSUPA/HSDPA)Cat.8,GSM(GPRS/EDGE)
电压:内部:1.2V,输出:1.8/2.5/3.3V
制程:45nm CMOS
晶体管数量:3亿700万
大小:9.3mmx9.3mm
接口:617 Ball BGA

SH Mobile G3

SH7367
CPU(媒体核心):500Mhz(SH-X2(SH4AL-DSP))(I:32KB/D:32KB)/DSP(XYRAM:16KB)
CPU(应用核心):500Mhz(ARM1136JZF-S)(I:32KB/D:32KB)/VFP(ITCM:8KB)(L2:256KB)
CPU(基带核心):166Mhz(ARM926EJ-S)(I:32KB/D:32KB)(ITCM:64KB)(DTCM:16KB)
周边外围:
VPU(视频解码):MPEG4/H264/VG1
VIO(图像信号处理):最大12MP
硬件3D加速(PowerVR MBX/VGP Lite)
MeRAM(512KB)
GPS
声音处理单元
网络支持:WCDMA(HSDPA)Cat.8,GSM(GPRS/EDGE)
电压:内部:1.2V,输出:1.8/2.5/3.3V
制程:65nm CMOS
晶体管数量:3亿700万
大小:9.3mmx9.3mm
接口:617 Ball BGA
A 65nm dual-mode baseband and multimedia application processor SoC with advanced power and memory management (需ACM学会账号)

SH Mobile G2

CPU(媒体核心):390Mhz(SH-X2(SH4AL-DSP))(I:32KB/D:32KB)/DSP(XYRAM:16KB/ILRAM:4KB)
CPU(应用核心):390Mhz(ARM1136JF-S)(I:32KB/D:32KB)/VFP(ITCM:4KB)
CPU(基带核心):130Mhz(ARM926EJ-S)(I:32KB/D:16KB)(ITCM:64KB)(DTCM:16KB)
周边外围:
VPU(视频解码):MPEG4/H264
VIO(图像信号处理):最大8MP
硬件3D加速(PowerVR MBX/VGP Lite)
MeRAM(512KB)
GPS
网络支持:WCDMA(HSDPA),GSM(GPRS/EDGE)
电压:内部:1.2V,输出:1.8/2.5/3.3V
制程:90nm CMOS
晶体管数量:2亿4930万
大小:11.15mmx11.15mm
接口:617 Ball BGA
A 390MHz Single-Chip Application and Dual-Mode Baseband Processor in 90nm Triple-Vt CMOS (需IEEE会员账号)

SH Mobile G1

CPU(媒体核心):312Mhz(SH-X2(SH4AL-DSP))(I:32KB/D:32KB)
CPU(应用核心):208Mhz(ARM926EJ-S)(I:32KB/D:16KB)
CPU(基带核心):104Mhz(ARM926EJ-S)(I:16KB/D:4KB)
周边外围:
VPU(视频解码):MPEG4/H264
VIO(图像信号处理):最大5MP
硬件3D加速(PowerVR MBX/VGP Lite)
MeRAM
网络支持:WCDMA,GSM(GPRS)
电压:内部:1.2V,输出:1.8/2.5/3.3V
制程:90nm CMOS
晶体管数量:1亿810万
大小:11.15mmx11.15mm
接口:未知 BGA
SH-MobileG1: A single-chip application and dual-mode baseband processor (需IEEE会员账号)

SH Mobile 3

CPU:216Mhz(SH-X2(SH4AL-DSP))
周边外围:硬件3D加速(PowerVR MBX Lite)