Win10M 在国内运营商环境下无法联网获取时间的原因已经在 1 楼阐述了,接下来讲一下修复这个问题的方法。
准备
Win10M 保存时间同步配置的文件存储在 <手机根目录>\PROGRAMS\CommonFiles\ADC\Microsoft\ProvisionData.cab
中,我们需要修改这个文件。
随之产生了两个问题——
第一个问题:这个位置是受保护的,我们如何访问到这个位置?
有两种方法可以访问这里:
- 通过 SFTP 来访问,这需要使用 InteropTools 工具来实现
- 通过大容量存储模式来访问,这需要使用 Windows Phone Internals 或 Developer Menu 来实现
具体访问的方法在这里不展开说,您可以自行查阅资料。
第二个问题:如何修改 CAB 文件?
普通的解压缩软件只能解压 CAB 文件而不能创建(或是修改)CAB 文件,因此我们需要特殊的工具。
这里我们推荐使用 CABARC 工具,以下我们将使用这个工具来进行 CAB 打包操作。
(当然,您也可以使用其他能够将文件打包为 CAB 格式的工具)
操作
1. 修改
前往第一步所提及的文件位置中,我们可以看见以下文件:
重要提示
我们接下来的操作是无法使用硬重置来撤销的,如果您没有正确的 ProvisionData.cab
文件,那么只能通过使用 ffu 文件刷机来还原。
在开始之前,我们强烈建议您将手机内的 ProvisionData.cab
文件进行备份,以便出现意外情况时能够将手机恢复到正常状态。
将 ProvisionData.cab
复制出来,然后将其解压到一个文件夹中(解压这个操作可以使用常用的解压缩工具,我们这里使用 7-zip)
然后,使用文本编辑器打开以下文件:
- Uicc_General_AutomaticTime_3877.provxml
- Uicc_General_AutomaticTime_3890.provxml
- Uicc_General_AutomaticTime_3903.provxml
- Uicc_General_AutomaticTime_3916.provxml
并将里面的 time.window.com
替换为 time.windows.com
(大概也可以替换为其他 NTP 服务器,我没有试过)
(如果你嫌一个一个改太麻烦,也可以像我一样在 VSC 里面用替换功能来改)
保存后,退出文本编辑器。
2. 打包
我们这里使用 CABARC 工具来打包。
请在刚刚解压文件的文件夹中,打开命令行界面,并输入以下命令:
<CABARC.EXE 文件的路径> -m LZX:21 n ProvisionData.cab *
我们得到了一个新的 ProvisionData.cab
文件。
这时请用 7-zip 等解压缩软件(不要使用 Windows 资源管理器)来检查压缩文件结构,确保文件结构与下图一致:
如果文件结构不正确(例如 provxml
文件位于子文件夹中),请重新打包,否则手机的移动通信功能将受到很大的影响(例如接入点消失,无法使用 4G 数据上网等)
3. 应用
将修改后的 ProvisionData.cab
文件复制回 <手机根目录>\PROGRAMS\CommonFiles\ADC\Microsoft
中,并覆盖原先的文件。
之后重启手机。
耐心等待一会,然后前去实验。
您的设备应当能够正常地联网获取时间了。