为什么 Android 截屏需要 root 权限

为什么 Android 截屏需要 root 权限,第1张

android 截屏为什么需要root权限

【主要原因】

andorid系统在调用截图功能的时候一般会调用命令的形式去截屏,而这些命令在普通用户权限下是没办法执行的,必须是在root用户权限下才能进行截屏。

【主要实现方式和原因】

传统截屏方式,采用读取 framebuffer 的方式实现截屏,需要root权限,Android 3.0 以前android sdk提供的截屏方式。

SurfaceFlinger 方式截屏,在 Android 4.0 里提供的一种解决方案,改方案需要系统级权限READ_FRAMEBUFFER 权限,由于是系统权限也必须是root的权限下才可以进行截屏

由于目前大多数android开发的基础版本都是在4.0的基础上开发,所以会看到很多第三方的截屏软件截屏需要在root的权限下才能进行截屏。

另外

并不是所有的截屏都必须需要root的权限,其实在众多截屏方案中还有一种截屏方案不需要root权限也可以截图。

主要实现方式

Android 截屏 -- ddms方式。

实现原理

主要是通过执行adb shell命令的形式进行截屏。而调用这些命令会实际上也要系统权限,但是这个方法特殊的地方就在他其实是通过adb shell进行截图的时候把命令个了设备上的 adbd 守护进程,而这个进程间接的启动了screencap,也就是开启了上面的方法二中的SurfaceFlinger 截屏方式的后段截屏步奏,所以导致不需要root权限进行截屏。

其中:

adbd 是以 shell 用户执行的, 而系统为 shell 用户分配 graphics 组,所以 shell 用户是有权限调用 surfaceflinger 的接口的。

【最后】

推荐使用不需要root权限截屏的方案。

qq截屏root权限怎么开:

1、登陆手机QQ,进入右下角的功能,找到并点击“设置”功能。

2、在设置页面,打开“辅助功能”选项。

3、在“辅助功能”页面,找到并打开手机截屏,开启成功后晃动手机即可截屏,对于QQ以外的界面需要开启Root权限才能截图。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11802766.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存