Sony-PMCA-RE 实战指南:给索尼相机安装自定义应用与备份固件的完整教程
2026/8/19 21:36:55 网站建设 项目流程

Sony-PMCA-RE 实战指南:给索尼相机安装自定义应用与备份固件的完整教程

【免费下载链接】Sony-PMCA-REReverse Engineering Sony Digital Cameras项目地址: https://gitcode.com/gh_mirrors/so/Sony-PMCA-RE

你可能遇到过这样的时刻:相机明明硬件支持,却被固件锁死了功能——想装个延时摄影工具,官方商店里没有;想延长视频录制时长,菜单里灰着不能选;想备份一份固件留作后路,翻遍官方软件也无从下手。这台花了大价钱买回来的设备,仿佛有一半的能力被厂商藏了起来。而一个名为 Sony-PMCA-RE 的开源逆向工程工具,正是为打破这种局面而生的——它通过 USB 直接与相机底层对话,让你亲手解锁那些被屏蔽的可能性。

你的相机,其实藏着一台微型电脑

先别急着上命令。想理解这个工具能做什么,你得先知道一个反直觉的事实:许多支持 PlayMemories Camera Apps(PMCA)的索尼相机,内部运行的是精简版 Android 系统(约 Android 2.3.7)。也就是说,你按下快门的背后,是一颗运行着 Linux 内核的处理器在协调对焦、测光和存储。

官方应用商店只是这台"微型电脑"的一扇正门。Sony-PMCA-RE 做的事情,本质上是在这栋房子上另开了几扇门:应用安装通道、固件更新器模式、服务模式。三条路对应不同权限层级,也对应不同风险等级,下文会逐一演示。

第一步:先让相机开口说话

动手之前,先把环境搭好。项目基于 Python 3,克隆仓库后执行:

pip install -r requirements.txt ./pmca-console.py info

用 USB 线连接相机(确保处于 MTP 或大容量存储模式),info命令会主动探测设备。别小看这一步——它会一次性读出型号、产品代码、序列号、固件版本,甚至镜头信息和 GPS 数据状态。这些信息在后续选择固件文件、判断相机兼容性时是硬通货。

第二步:装一个官方商店不让装的应用

这是大多数人入坑的起点。社区维护着一个开源应用列表,里面包括大名鼎鼎的OpenMemories: Tweak——装上它之后,你可以在相机上直接开关隐藏设置、启动 telnet 和 adb 服务,相当于给相机配了一把"后门钥匙"。

安装过程出乎意料地简单:

./pmca-console.py install -i

命令会先拉取应用列表,让你输入序号选择,然后自动完成剩余工作。如果你想安装自己编译的 apk,换成:

./pmca-console.py install -f myapp.apk

执行期间注意观察相机屏幕,它会短暂切换到"应用安装模式"。工具会先解析 apk 的包名、版本、最低 SDK 版本并做兼容性检查(SDK 版本高于 10 会给出警告,毕竟相机跑的是老 Android)。整个过程约一两分钟,完成后相机菜单里就会多出那个应用。

第三步:借"固件更新"之名,行调试之实

安装应用只是热身。Sony-PMCA-RE 更让人惊叹的能力,藏在updatershell模式里。

原理是这样的:索尼相机可以从一个独立分区启动固件更新程序。项目巧妙地利用了这个机制——用一段自定义固件(fdat)骗过更新流程,让相机进入一个可执行 Linux 命令的调试 shell。关键在于:相机原有的固件分毫未动,整个流程只是"借道"运行,系统本身的完整性和可恢复性都有保障。

用法同样直接:

./pmca-console.py updatershell

工具会自动识别相机型号,从updatershell/fdat/目录里匹配对应的固件文件(比如CXD4132/DSC-RX100.hdr这种按芯片架构分组的文件)。相机重启进入更新模式后,你会得到一个交互式 shell,在这里可以:

  • 备份完整固件:把相机系统镜像原样导出一份存到电脑,为后续研究或恢复留后路;
  • 执行 Linux 命令:直接读写相机文件系统;
  • 调整隐藏设置:比如解除视频录制时长限制(pmca/platform/tweaks.py里躺着recLimitrecLimit4k等开关,默认 29 分钟的限制可以放开到 13 小时)。

对绝大多数用户来说,这一步就已经抵达"够用"的天花板了。

第四步:服务模式——给进阶玩家的深水区

如果你的相机较老、不支持应用安装,或者你想尝试更底层的操作,还有第三条路:服务模式(索尼内部叫 senser mode,本是售后校准用的)。它兼容性最好,但需要特殊驱动,且只支持命令行:

./pmca-console.py serviceshell

进入服务模式前,请务必读完这份注意事项清单:

  1. 先备份相机内所有照片和设置,此模式下任何误操作都可能影响系统数据;
  2. Windows 用户需用 Zadig 工具把相机驱动替换为 libusb-win32,步骤是先在大容量存储模式下替换一次驱动,切换进服务模式后再替换一次;
  3. 操作结束后,必须在设备管理器里卸载这些自定义驱动,相机才能恢复正常使用;
  4. 不要抱着"试试看"的心态乱敲命令——这个 shell 拥有系统级权限,没有撤销键。

简单来说,服务模式就像相机维修间的门禁卡,权限最大,风险也最大,只建议明确知道自己在做什么的用户使用。

原理揭秘:一把"假钥匙"怎么打开真锁

为什么这些"越权"操作能成功?答案藏在索尼自己的安全设计漏洞里。

以应用安装为例,官方流程是这样的:相机通过 USB 向一个门户服务器上报序列号、电量等状态,服务器验证后返回 spk 安装包。而 Sony-PMCA-RE 在本地起了一个伪装的市场服务器(见pmca/marketserver/server.py),它模拟官方服务器的应答,让相机以为自己在跟索尼总部对话。配套的证书放在certs/localtest.me.pem——是的,相机根本不校验证书是不是索尼签发的。

spk 文件的加密也形同虚设:它本质是一个 AES 加密的 apk 容器,密钥用 RSA 加密后随包携带。讽刺的是,索尼自己的校验存在漏洞,社区直接复用官方 spk 文件里的现成密钥样本(见pmca/spk/constants.py)就能解密。整个流程没有任何来源验证——这就是所有"钥匙"都能通用的根本原因。

换句话说,这栋"锁得很严"的房子,门锁本身是好的,但门框是虚掩的。逆向工程师们只是轻轻推了一下。

安全边界与心态建议

必须坦率地说:这是一个实验性的逆向工程项目,开发者在 README 里也毫不避讳——"如果弄坏了相机,两块碎片都归你"。虽然社区大量测试都顺利通过,但涉及固件写入、服务模式等高危操作时,请务必遵循"先备份、后动手、只做自己理解的操作"三原则。

资源清单与下一步

想继续深入,这几个入口值得收藏:

  • 安装说明:docs/AppInstallation.md——讲透了 spk 包结构与官方安装流程的逆向笔记;
  • 命令实现源码:pmca/commands/——usb.py是核心,安装、固件、服务模式的逻辑都在这;
  • USB 通信栈:pmca/usb/——含 Sony 私有协议、加密模块与各平台驱动;
  • 固件数据:updatershell/fdat/——按芯片架构分类的数百个机型固件头文件,本身就是一份机型兼容性地图;
  • 图形界面:不想敲命令的话,pmca-gui.py提供了安装应用和调整设置的可视化入口。

更进一步,你还可以基于pmca/apk/的解析能力开发自己的相机应用,或加入社区讨论、分享你的 tweak 配置。这个项目最动人的地方不在于它"破解"了什么,而在于它把选择权还给了用户——你的相机,最终由你说了算。从装第一个应用到备份第一份固件,每一次操作都是对"设备主权"的一次小小宣示。

【免费下载链接】Sony-PMCA-REReverse Engineering Sony Digital Cameras项目地址: https://gitcode.com/gh_mirrors/so/Sony-PMCA-RE

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询