如何在 Android 上的 Recovery & AROMA 中截屏

许多安卓爱好者热衷于使用诸如TWRP和ClockworkMod这样的自定义恢复环境来刷入新的ROM和模块,进行全面的设备备份与恢复,甚至利用功能强大的AROMA文件管理器来管理文件。虽然多数用户可能并不需要在恢复模式下截取屏幕快照,但是对于博客作者、自定义恢复和基于AROMA的应用开发者,以及恢复主题的设计者来说,这项功能对于展示他们正在评测或者开发的内容至关重要。接下来,我们将引导你完成在安卓设备启动进入恢复模式时,轻松截取屏幕快照的流程,无论你正在运行的是何种自定义恢复系统。

与正常启动安卓系统不同,标准的“降低音量+电源按钮”组合在恢复模式下无法截取屏幕快照。虽然早期Android SDK中的DDMS工具曾可以正常工作,但在最近的几次更新中,这个方法已经失效了。

目前,我所知唯一可行的方案是手动提取原始帧缓冲区数据,然后使用ffmpeg命令行工具进行处理,以获得所需的图像。然而,这个方案有一个明显的缺陷:它并非适用于所有安卓设备的通用命令,因为不同的设备和恢复系统使用不同的像素格式作为帧缓冲区,并且还需要根据设备的原生分辨率和原始图像中的步幅因子来调整命令。在编写一些关于恢复模式截图的指南时,我个人曾花费数小时尝试找出某些设备的这些参数,这简直是一场噩梦。

我们即将介绍的是XDA论坛成员makers_mark开发的一个实用小工具,它能为你解决上述难题,并将所有复杂的细节都隐藏在后台。

隆重介绍:Recovery Screenshot

Recovery Screenshot 是一款脚本程序(目前仅适用于Windows),它利用ADB和ffmpeg从你的设备中提取原始帧缓冲区,并进行相应的处理,最终生成PNG格式的屏幕快照。

在你开始捕捉恢复模式下的屏幕快照之前,你必须先为你的设备配置此工具。那么,让我们开始吧。

配置步骤

在继续之前,请确保你已将设备重启至恢复模式,并通过USB数据线将其连接到电脑,并安装了必要的驱动程序。

下载Recovery Screenshot,并将下载的ZIP文件内容解压到电脑上任意方便的位置。然后,使用文件夹中的RUNrs.bat文件启动该工具。该脚本将为你提供以下选项:

选择第一个选项,即按下数字“1”进行配置设置。接下来,系统会要求你输入设备的屏幕尺寸(以像素为单位)。请务必将较短的尺寸输入为宽度,较长的尺寸输入为高度。

接下来,Recovery Screenshot将从你的设备中提取帧缓冲区,并使用ffmpeg以多种像素格式对其进行处理,然后将处理后的PNG文件放入解压工具文件夹内的“Pixel_formats”文件夹中。

现在,打开Pixel_formats文件夹并查看所有图像。你会注意到大多数图像看起来有些奇怪,这很正常,因为它们是使用与你的设备不同的像素格式进行处理的。你需要在此处寻找看起来正常的图像,并记下它的名称(这是其像素格式的名称),然后按下任意键继续。

如果你在文件夹中找到了正确的图像,请继续按下数字“1”完成设置。但是,如果你这次没有找到,只需按下数字“2”,工具就会尝试更多不常用的格式。在这种情况下,再次在同一个文件夹中查找新添加的数十张图像,并在找到正确的图像时记下其名称。

找到正确的像素格式后,在下一个屏幕上输入正确的文件名(不带.PNG扩展名)。例如,在我们使用Nexus 5进行的测试中,正确的图像是rgb0.png,因此正确的像素格式是rgb0。

为你的设备输入正确的像素格式并按下回车键后,你就完成了配置。现在可以开始拍摄恢复模式下的屏幕快照了。你的设置会被保存,下次启动时,你将无需为同一设备再次配置脚本。

捕捉恢复模式屏幕快照

完成初始配置后,无论何时启动该工具,你都会看到以下选项。

这里可能会让人困惑的是,存在三个用于获取帧缓冲区的选项。解释安卓的双帧缓冲区系统如何工作超出了本指南的范围,你要查找的图像可能在任何一个帧缓冲区中,因此每次选择第三个选项(即获取两个帧缓冲区)是一个好主意。只需按下数字“3”,Recovery Screenshot就会开始为你提取和处理两个帧缓冲区。

处理后的图像文件将放置在脚本主文件夹内的子文件夹中,并根据当前日期命名。里面的图像将根据当前时间以及帧缓冲区(上或下)命名。

请注意,当你尝试捕获不同设备的屏幕快照时,你可能需要再次配置该工具。为此,只需在其主屏幕上按下数字“4”即可重置你的设置并重新开始。第五个选项,即手动模式不涉及在恢复模式下连接设备,可用于手动指定你的设置,并将任何原始图像文件作为源进行处理。

一些成果

以下是一些使用该脚本在恢复模式下捕获的屏幕快照。第一张是TWRP恢复模式的主屏幕,第二张显示了刷写进度,而第三张是AROMA文件管理器。

总而言之,虽然这可能不适用于所有人,因为普通用户甚至大多数高级用户都不需要捕获恢复模式下的屏幕快照,但对于像我这样以前不得不手动提取帧缓冲区并每次需要查看自定义恢复或AROMA脚本时使用ffmpeg命令处理原始图像的人来说,这个工具绝对是福音。

从XDA-Developers下载Recovery Screenshot