Win10天地学院:第二代WP改机型升级FCU报错0x80070273
众所周知,微软在发布Windows 10 Mobile时抛弃了大批的第二代Windows Phone机型,其中最有代表性的就是诺基亚Lumia x2x系列。后来,有大神放出了用离线包推送到手机来直接升级Windows 10 Mobile的方法,使得不受支持的老机型可以通过离线推送升级到Version 1511,进而能够轻易地修改机型伪装能够升级的设备,继续获取周年更新Version 1607和创意者更新Version 1703。
然而,部分第二代设备用这种方法升级到1703的Build 15063.297后,再尝试获取创意者更新秋季版Version 1709时,系统会持续报错0x80070273从而无法更新,修改机型、加入预览、重置手机都不能解决。出现这个问题是因为系统中一个用于描述硬件平台、语言等相关信息的OEMInput.xml文件先天不完整,或者因为某些原因被破坏,导致后续升级时无法读取到所需的信息。这个错误正常情况下只会以100%的复现概率发生在某些特定的第二代机型上(先天不完整),也有一定概率发生在其他Windows 10 Mobile设备上(后天被破坏,解决方法理论上是相同的,可以进行参考)。
▲第二代机型尝试升级FCU时遇到的0x80070273错误提示
网上现存的解决方案都是刷回Windows Phone 8.1再尝试升级,但这种解决方案有很大的随机性,并不一定能够成功,而且费时费力。对于那些仍停留在遇到问题的Win10M版本并且不想刷回WP8.1的用户,笔者在这里向大家提供一种不同的解决方案,该解决方案的优势是不需要回滚系统,在当前的Win10M版本下操作即可。
开始之前老生常谈的提示:所有对系统的操作都有风险,因此请务必谨慎,切记如果操作不当你可能会遇到无法启动等问题、需要硬重置甚至重刷系统,从而丢失所有数据,因此请在操作之前对重要数据进行备份。
准备好了吗?好的,我们开始吧!
一、使用Interop Tools启用MTP的完整文件系统访问权限
安装Interop Tools (RC):具体方法此处不再赘述(我想如果你能够在一部第二代机型上升级到Creators Update,你应该会安装它或者已经安装好了),如果有问题的话请参看文末推荐阅读①。
解锁完整文件系统访问权限:打开Interop Tools (RC),选择“This Device”,点击左上角的“三”展开汉堡菜单,找到“Interop Unlock”,打开“Full Filesystem Access”的开关(如果一次不成功的话,多尝试几次),然后重启手机即可。
▲使用Interop Tools解锁完整文件系统访问权限
提示:这个过程不可逆,也就是说,当你成功解锁完整文件系统访问权限之后,这个开关在Interop Tools中就无法再次关闭了。如果你想查找之前存在于根目录的常用文件夹(文档、照片等),请转到PhoneDataUsersPublic。如果你无法忍受这一点,请在完成接下来的步骤并安装好所有更新之后重置手机,重置后即可恢复正常。
二、用电脑提取并备份原机的OEMInput.xml文件
用USB数据线将你的手机连接到一台电脑上(这里使用Windows 10进行演示,如果你使用Linux或macOS,请确保能够访问并修改MTP设备中的数据):打开你的设备,进入Phone盘符,你会看到所有的系统目录。请注意不要在不了解的情况下删除或修改任何文件,否则你可能会损坏手机的操作系统。
进入PhoneWindowsImageUpdate,找到当前原机版本的OEMInput.xml文件,将它拷贝到电脑上一个你能找到的地方,重命名添加一个前缀或者后缀把它标注出来(例如笔者的机器是Lumia 520T,就标注成OEMInput_520T.xml)。
▲手机系统目录中OEMInput.xml的位置
找到你刚刚复制到电脑上的原机OEMInput.xml文件,右键点击“编辑”来用“记事本”打开它,然后放在一边备用(你也可以使用Notepad++等对代码更加友好的编辑工具;如果你使用Linux或macOS,请确保安装了功能相同的软件)。
▲笔者的Nokia Lumia 520T中复制出的OEMInput.xml文件,代码只有区区两行
三、自制一个完整的OEMInput.xml用以替换原机不完整版本
访问微软的技术文档页面,网址如下:https://docs.microsoft.com/en-us/previous-versions/windows/hardware/flashing/dn756630(v=vs.85)
在打开的网页中,检查左侧的目录树,确保当前打开的是“Build a mobile image using ImgGen.cmd”主题,然后向下翻找“OEMInput file example”标题(你可以按下Ctrl+F然后检索关键字“ProductionOEMInput.xml”,在关键字出现的第二个位置处即可找到),点击下方代码窗格右上角的“Copy”按钮复制示例文件的内容。
▲从微软的技术文档中复制OEMInput.xml示例文件的完整代码
打开“记事本”(或者新建一个文本文档),然后将刚刚复制的代码粘贴进去。
▲我们创建的OEMInput.xml文件,以及需要修改的位置
现在修改你刚刚粘贴的代码:
1)在“{PROCESSOR_NAME}”处将“{PROCESSOR_NAME}”改成你手机的SoC型号,你可以在手机的“设置”—“系统”—“关于”—“设备信息”—“SOC芯片版本”处找到一串数字(有的机型可能还有字母后缀),在这些数字(和字母后缀)前加上字母“QC”就是这里需要填入的内容(比如笔者使用的是Nokia Lumia 520T,这里就应该填写QC8827;而Lumia 920(非国行)/925/1020则应该填写QC8960,国行Lumia 920填写QC8260A)。
2)在“480x800”处将“480x800”改成你手机的屏幕分辨率,你可以在手机的“设置”—“系统”—“关于”—“设备信息”—“屏幕分辨率”处找到(比如笔者的手机屏幕正好是这个分辨率,所以不需要修改;而Lumia 920/925/1020则需要改成768x1280,其他机型以此类推)。
▲在“设备信息”中找到修改代码时所需的数据
3)在所有的“en-US”处,将“en-US”改成“zh-CN”。(或者改成你的主要语言……不过我想这篇文章的读者应该都是中国人吧?)
4)在“en-US”和“en-US”处,将“en-US”修改成你的原机文件中的数据(如果你的原机文件中压根就没有这两行代码,你也可以保持不变)。
▲已经修改好的自制完整版OEMInput.xml文件的内容
将修改好代码的文档保存为“OEMInput.xml”:选择“文件”—“另存为”,将“保存类型”选择为“所有文件”,“文件名”填写“OEMInput.xml”(注意大小写),保存到你能找到的地方(如果你之前直接新建了文本文档,请直接保存文件并关闭“记事本”,然后把“新建文本文档.txt”改成“OEMInput.xml”,注意一定要修改扩展名)。
▲将文本文档保存为OEMInput.xml文件
▲自制完整版的OEMInput.xml文件与原机不完整版本对比
四、用自制的完整版本OEMInput.xml替换原机版本
将第一步中解锁了完整文件系统访问权限的目标设备连接到电脑,打开MTP设备,定位到目录PhoneWindowsImageUpdate下。
复制刚刚自制的完整版本OEMInput.xml粘贴到此目录下,然后选择替换。
打开替换后的OEMInput.xml检查其内容,确认已经正确替换完成。
拔掉数据线,重启手机,确保已经改好型号伪装成能够升级的机型,然后在手机设置中重新检查更新,你应该就能正确获取到Fall Creators Update更新了。
这个文件已经被我们成功修复了,就算重置也不会使其复原,也就是说以后也能顺利升级后续的积累更新了,可谓是一劳永逸。愉快地玩去吧!
小提示:
如果更新下载完成、正在准备安装时报错并提示“我们无法安装更新,因为你设备上的日期和时间信息有问题”,这也许是因为微软服务器的证书又双叒过期了(就像几天前的WP8.1应用商店一样),请临时将手机的时区修改为美国东部时间、日期修改为2018年2月16日(时间无需修改)就能够顺利更新,更新完成后改回即可。
好了,本次教程到此结束,请记住:WPer永不言弃。祝你好运!