AI 摘要

### 索尼A7M3/R3/M4/R4等机型解锁多语言菜单 攻略 **前言** 这篇文章介绍了如何通过特定工具解锁索尼相机的多语言菜单,尤其是日版机型的英文及其他语言菜单,不过中文菜单存在闪退BUG。PMCA工具处于开发早期,使用前请谨慎。 **所需工具** - 索尼相机 - PC或Mac - USB数据线 - pmca-gui - Zadig - DISM++ **操作步骤** 1. 在相机的MENU菜单中设置USB连接模式为“海量存储器”,将自动关机时间设置为30分钟,连接相机与电脑。 2. 使用Zadig替换相机驱动为libusb-win32。 3. 打开pmca-gui并进入Tweaks标签,点击“Start tweaking”以激活所需选项。 4. 勾选解锁语言菜单的选项,完成后重启相机,便可在菜单中选择35种语言。 **注意事项** - 不要随意恢复相机出厂设置。 - 操作过程中可能存在风险,作者不对任何意外承担责任。 以上就是解锁多语言菜单的全部步骤与注意事项。

前言

日版机型以此方法并不能很好地解锁中文菜单(存在闪退BUG),但可以解锁英文等菜单,猜测原因写在文章末尾部分。

PMCA 工具目前仍处于早期开发阶段,是一个基于逆向工程开发的开源软件,作者不承担由该软件引起的任何可能的财产损失,也不推荐用户以此方式来损害商业公司的正常利益。

因此,本文作者并不推荐观众上车,以免造成不必要的损失,尊重版权与公司的地区销售策略。

如果你还是想了解一下软件的使用,那就继续往下阅读文章吧。

该文章所有知识与核心工具来源于 https://github.com/ma1co/Sony-PMCA-RE

-----------------

你可以通过该文章讲述的方法使你的外行相机解锁中文菜单(日版机型存在bug),以及发掘更多的功能。

主观操作难度:★★☆☆☆

注意:破解完毕后请勿随意恢复相机出厂设置,请确保将修改过或解锁过的选项调整或重新上锁回正常状态后再重置,否则极易变砖

ps:虽然难度低,且文章方法经过实践验证,但作者不对意外翻车事件承担责任,破解过程存在损坏原系统的风险,在实操前请做好承担风险的准备,打算尝试的朋友请三思而后行。

所需工具(软件下载链接置于文章底部):

  • 索尼相机
  • PC 或 Mac
  • 用以连接相机和电脑的 USB 线
  • pmca-gui
  • Zadig
  • DISM++

文章示例以 Windows11 + A7R3 进行,理论上兼容截止 2022/07/14 发布的索尼全部微单相机。

Let's Go!!!


Part 1

  1. 在 MENU 菜单设置中将相机的 USB 连接模式设置为 "海量存储器" 模式
  2. 将相机的自动关机时间设置为 30 分钟
  3. 将相机与电脑通过 USB 数据线进行连接并开机
  4. 从此刻开始,一直到教程结束为止,请勿关闭相机电源或拔出 USB 线

Part 2

打开 Zadig,在软件中依次点击 [Options] -> [List All Devices]
接着在下拉框中选中接入电脑的相机,并将 Driver 一行的右侧选项选为 libusb-win32,如下图所示:
(24-9-4补充:有朋友反应 A7C2 使用该 libusb-win32 无法正常完成后续操作,更换为 libusbK 驱动后正常,请新机型用户自行鉴别与尝试,可以将测试结果反馈在评论区)

点击 Replace Driver,替换相机连接到电脑上所使用的驱动。
(为了不影响相机的默认连接驱动,该 libusb 驱动在完成修改后需要通过 DISM++ 或其他软件进行卸载,详见后文)

替换驱动时,软件可能会出现黄色感叹号的警告,选择 [是] 。

软件提示驱动安装成功后,点击 [close] 关闭成功提醒,此时无需退出该软件,置于后台即可。
打开 pmca-gui,进入 Tweaks 标签页,单击 Start tweaking (service mode)

此时,电脑可能会出现 USB 外设弹出的提示音,同时 pmca-gui 可能出现如下图的输出:
(图示软件截止 22/8/12 已更新 v0.18-18 版本,修复了 Error:129 的 BUG,后续操作一致)

目前为止,这一切都是正常的(至少在文章演示的软件版本上是正常的)
重新回到 Zadig,在设备选项卡里选中 Sony USB Device,再次安装该设备的驱动,如下图所示:

待安装完毕后,重新回到 pmca-gui 中,单击 Start tweaking (service mode),此时,软件会出现如下图所示的界面(实际出现的选项卡数量可能和图示不一致,以自己的界面为准):

如果你只是想解锁相机的语言选项菜单,勾选上图中的第二个选项,然后点击 Done 按钮完成即可,系统设置中会激活全部的35种语言供自由切换。
若你的相机设置中原本就没有切换语言的选项卡,可以尝试将最后一行也进行勾选,应该能激活被隐藏掉的设置选项。

最后,关闭软件与相机电源,拔出 USB线,重启相机,此时在相机的 MENU 菜单中即可随意选择自己想要的语言。

相机多语言解锁攻略到此结束,接下来做一些善后工作。


Part 3

卸载在电脑中安装的 libusb 驱动

打开 DISM++,在上方标签栏中依次点击 [选项] -> [详细设置] -> [启用专家模式],点击确定。

进入左侧 [驱动管理] 选项栏,等待片刻后软件会展示出当前已安装的外部驱动。

在驱动列表中找到 [libusb-win32 devices],勾选该驱动并点击右下角的 [删除驱动]

待软件提示操作成功后即可关闭软件。

此时,再将相机连接回电脑上,会发现驱动已恢复为最初的类型,善后工作完成。


后记

作者的机子实际上为港版,自带中文菜单,为什么还要折腾研究如何解锁多语言菜单呢?

作者的初衷其实是想研究某种降级固件的方法,但简单尝试后无果,需要再深入研究一遭。
但在折腾的过程中,笔者发现 pmca 的作者 @ma1co 近期更新了 pmca 的 v0.18 版本,且该版本支持了索尼新款相机的修改功能,刚好可以利用新版本提供的功能简单快捷地解锁菜单内的语言调节选项。

于是,该文章就诞生了。

实际上,@ma1co 还提供了 pmca 的命令行版本,通过命令行可以利用 shell 对相机内部系统和文件进行读写,该工具给予了用户 DIY 的无限可能性。但笔者水平有限,这部分内容暂时打住,有兴趣研究的读者可以访问文章开头给的 github 地址来折腾,也期待更多 dalao 分享折腾的结果。

笔者仅代表个人,通过该文章向这些开源软件的作者表示敬意。


资源归档

官方下载链接

DISM++ :Release Dism++ 10.1.1002.1 · Chuyu-Team/Dism-Multi-language (github.com)

PMCA:Sony-PMCA-RE (github.com)
(注:截止2022/8/12,pmca-gui 需要下载最新的开发版才可以使用 Tweaks 下的 service mode 功能,开发版官方发布链接:sony-pmca-re/build/artifacts

Zadig:https://zadig.akeo.ie/

国内网盘分流

蓝奏云盘:https://bswaterb.lanzoum.com/iYpGz09gdnfc
pmca-gui-v0.18-18 (楼上已包含该软件在内,此处按需下载):https://bswaterb.lanzoum.com/in72j09gdoeh

(注:以上链接中附的是文章演示所用的软件,如果你也在 Windows 环境下进行操作,直接下载以上链接中的压缩包即可)

无限的折腾后续

为什么日版机型解锁菜单后选择某些语言时会直接重启?

许多电子产品会在出厂时往内部写入一个 “区域代号”,用来标识产品的出厂地区或目标售卖地区,相机产品也不例外。

对于索尼的微单而言,这个区域代号的一个作用就是用来划定用户的可选语言菜单列表,比如让国行用户在正常状态下无法使用繁中、让日版用户无法使用中文,等等等等。

此外,索尼还在相机系统的软件层面做了语言菜单列表与某些相机功能可调整性设置的隐藏,PMCA的作用就是用来破解系统层面的限制。

但是,如果固件中额外使用上文中提到的区域代号来做进一步限制,那么即使我们解锁了系统软件层面的菜单,也无法通过“区域代号”这种可能写在 EEPROM 这类级别的硬件中的数据校验,简单列个伪代码来示意一下:

func hideSomeOptions() {
	if curRegion == "JP1" {
		// PMCA 的破解是将 hideJP1LanguageOption 的作用范围进行了修改,通过逆向接口向相机传递我们指定的参数,使该函数最终失效
		hideJP1LanguageOption()
	}
}

// 但是导致日版机型选择某些语言时直接崩溃重启的原因如下:
// 即使 languageCanAccessed 函数通过了,依旧会被后续的地区校验给卡死
// curRegion 也许是通过读取机身中某个 EEPROM 芯片得到的数据
// targetRegion 也许是写在系统固件中的,但是由于相机固件的签名保护,我们无法刷入修改后的固件
if !languageCanAccessed(curLanguage) && curRegion != targetRegion {
	// 核查出现不一致,强制关机
	panic("err")
}

大概率是由于上述原因才导致出现类似 【日版机型破解后无法选择中文】的情况。

有解决办法吗?可能有,毕竟 targetRegion 这个参数终究还是能在固件中找到的,我们也还能通过 PMCA-console 版本直接浏览与修改相机的固件,但难度系数不言而喻。

另外,同一款相机的全球固件包都是一致的,至少在 A7R4 以及其之前,所有相机的运行时固件都内置了所有语言包。部分通过官方修改后门软件(付费渠道)进行相机解锁的过程也仅是修改了相机的内置区域代号,而无需再次刷入固件。因此,语言菜单闪退的原因应该不是由于确实语种包,此推断应该是合理的。

也许针对这类问题的讨论可以暂时告一段落了,作者也不敢再深入发表见解,因为逆向是个无底大坑,期待来个天才少年拯救一下!

再往下就是历史折腾记录,已然跟不上时代,可以选择不看~

PMCA 的作者以前开源了一个名为 fwtool 的工具,允许用户对索尼相机的固件(.dat)进行解包和打包。目前该工具允许对 CXD90045(BIONZ X) 处理器的相机更新固件进行解包,但未提供重打包的方法。作者的说法是新机型固件加入了签名机制,重打包的固件不能被顺利安装。

我不信邪,把代码拉下来一顿操作,总结出了以下两个已发现的问题:

  1. CXD90045的机型在 pack 的流程中使用的 AesCbcCrypter 中的核心函数 encrypt 没有实现,目前代码中仅留了一个抛出异常的路子
  2. 小改代码实现上述 encrypt 后生成的 pack 包无法通过安装程序的校验

出现以上问题的原因可能是我代码中实现 encrypt 的方式不对,又或者是因为碰到了作者所说的签名校验限制,导致安装程序无法识别我 repack 的 .dat 固件(我本身对这块技术不是很了解

理论上如果能顺利重打包,就有希望解决日版机型无法使用中文语言选项的问题(拆包后发现,不同区提供的固件实际都是一样的,字库文件也全部存在于固件中)。

当然,以上都是后话,目前 ma1co 已潜水许久,或许只能等另一位神秘勇士来拯救各位了 XD

届ける言葉を今は育ててる
最后更新于 2024-10-10