为什么我们需要有根电话才能在旧版Android上捕获屏幕截图?


21

我意识到,为了捕获手机的屏幕截图,所有屏幕截图应用程序都需要我拥有一部扎根的手机。为什么会这样呢?为什么我们不能像Windows那样拥有一个简单的Android截图应用程序?


2
我一直觉得有趣的是,iPhone是开箱即用地实现了此功能,而这是在Android上启用的主要功能。
shambleh 2011年

1
请注意,从大约Android 4.0开始,可以通过按住Volume Down + Power按钮来截屏;这是开箱即用的功能,不需要任何应用程序(此处用于后代和搜索引擎)
Piskvor,2015年

Answers:


17

答案很简单,这是权限问题。

Android将所谓的帧缓冲区用于视频显示。帧缓冲区位于/ dev / graphics / fb0。这个“文件”基本上是设备在用户界面发生更改时写入的流,它包含〜2帧屏幕显示。

帧缓冲文件的权限为rw- rw- ---。请注意,最后一个“组”具有3个“-”。这基本上意味着,如果您不是ownerroot用户,则您甚至没有权限读取该文件。

如果安装了系统的应用程序可以截取屏幕截图,则该应用程序将有权读取帧缓冲区。我相信,这就是Motorola Xoom能够截取屏幕截图的方式。它具有一个作为系统应用程序安装在设备上的应用程序。

对于开发人员而言,读取帧缓冲区实际上很简单,只要他们有权读取它。


1
听起来Google应该将权限更新为r--。如果任何应用程序可以在您的屏幕上监视,那么这可能会带来安全风险,但这是否仅仅是安装之前您必须接受的权限之一(此应用程序可以监视您的屏幕)?要么谷歌要么在弹出菜单中添加一个内置的屏幕截图,然后其他人都无法访问它。后者是我的情况,我的意思是说他们刚刚向Chrome添加了打印预览。
JD Isaacks 2011年

3
我认为,如果只有任何一个市场应用程序都可以读取屏幕,那么o + r的mod就会引起安全问题。
kzh11 2011年

我认为这取决于。Windows操作系统不会阻止应用程序进行屏幕截图。到目前为止,我们是否听说过由屏幕截图引起的任何安全问题?
Cheok Yan Cheng

无需在Windows中拍摄屏幕截图,有许多更简便的方法可从Windows计算机上获取数据。我认为,移动是一个更大的问题。只需考虑诸如Square之类的可处理信用卡的应用即可。如果我写的听,当卡被刷卡的服务,我可以做的可能,如信用卡号,姓名等一个屏幕抓取和索拉力的信息
瑞安康拉德

7

由于Android的安全重点是将所有应用程序与彼此的数据分开,以防止恶意应用程序窃取或更改您信任的应用程序中的数据,因此它们不允许某个应用程序截取其他应用程序的屏幕截图。

考虑一下您有多少应用程序可以执行OCR之类的功能来将图片转换为文本,我可以想到手机上至少有四个应用程序可以做到这一点,例如Google Goggles OCRing书名以及OCRing,用外语翻译文本块。现在考虑一下,您有多少个应用程序希望在屏幕上显示文本,而您不希望看到不值得信任的应用程序,我的手机上有一个密码数据库应用程序,其中包含用于各种系统的密码加密数据库,一个恶意的屏保应用程序可能会等待直到该密码应用程序运行,然后在屏幕上拍照并显示登录详细信息,然后对其进行OCR并发送出去。即使您未将应用程序授予“联系人”数据库​​或浏览器历史记录的权限,它也可以对“联系人”列表中的所有内容执行相同的操作,或聊天记录等。这只是滥用屏幕访问权限的一种方式。

这就是为什么要使屏幕截图具有通用性,它必须位于操作系统(您已经信任所有数据)中的原因。这就是为什么在具有内置屏幕截图功能的手机上将其作为系统的一部分而不是作为单独的应用程序添加的原因。

如果您扎根手机并允许某个应用拍摄屏幕截图,那么您实际上是在暗示您暗中信任该应用能够执行系统可以做的所有事情,包括访问和干扰其他应用及其数据,并且您完全相信它不会滥用该访问权限。除了System / OS,Android绝不会允许任何事情。


6

简短的回答:因为1)计算机很复杂,以及2)屏幕截图功能实际上不是很简单(对于程序员,而不是用户)。

换句话说,截屏需要截屏过程以非常深入地钩住操作系统内部,使它们陷入混乱,然后再次脱钩。由于Android试图建立一个内置的安全模型(与Windows中看到的“事后追捧”相对),因此在几个安全障碍上进行了屏幕截图。可以绕开这些密码,但是当前唯一可行的方法(没有在内核中创建漏洞-和潜在的漏洞-)是使用功能强大的root帐户,该帐户不受限制。


1
我对计算机硬件的工作了解不多,但是我认为GPU将“图像”发送到屏幕。该图像不能被截取并保存吗?
JD Isaacks 2011年

2
@John Isaacks,基本上就是帧缓冲区发生的情况。看到我的答案,为什么它仍然需要root用户。
瑞安·康拉德
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.