news 2026/7/7 7:59:26

如何使用豆包手机的READ_FRAME_BUFFER权限截图密码画面

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何使用豆包手机的READ_FRAME_BUFFER权限截图密码画面

背景:

针对READ_FRAME_BUFFER的权限原理剖析前面文章已经进行了详细讲解,具体文章如下:

但是文章也给大家留下了一个疑问,那就是具有READ_FRAME_BUFFER权限到底是否可以截图到手机上secure画面,比如银行等密码手势画面。

针对这个疑问也进行了直播讲解和验证,答案就是READ_FRAME_BUFFER权限确实可以实现对这些敏感隐私画面进行截图。
下面给大家展示相关的源码,大家也可以自行用下面源码进行验证你的设备是否可以截图成果。

直播代码分享:

要进行截图secure layer的接口分享:
frameworks/base/core/java/android/window/ScreenCapture.java

/** * Whether to allow the screenshot of secure layers. Warning: This should only be done * if the content will be placed in a secure SurfaceControl. * * @see ScreenshotHardwareBuffer#containsSecureLayers() */publicTsetCaptureSecureLayers(boolean captureSecureLayers){mCaptureSecureLayers=captureSecureLayers;returngetThis();}

注释可以看出是可以截图安全的layer到sc。
不使用setCaptureSecureLayers截图代码如下:

publicstaticBitmapcaptureScreenshot(){try{final ScreenCapture.CaptureArgs captureArgs=newScreenCapture.CaptureArgs.Builder<>().setSourceCrop(newRect(0,0,2960,1440)).build();ScreenCapture.SynchronousScreenCaptureListener syncScreenCapture=ScreenCapture.createSyncCaptureListener();try{WindowManagerGlobal.getWindowManagerService().captureDisplay(0,captureArgs,syncScreenCapture);}catch(RemoteException e){e.rethrowAsRuntimeException();}final ScreenCapture.ScreenshotHardwareBuffer screenshotHardwareBuffer=syncScreenCapture.getBuffer();returnscreenshotHardwareBuffer.asBitmap();}finally{}}

保存图片到sdcard私有目录方法:

publicstaticStringsaveBitmap(Context context,Bitmap bitmap,String subDir,String fileName){File baseDir=context.getExternalFilesDir(Environment.DIRECTORY_PICTURES);if(baseDir==null)returnnull;File targetDir=newFile(baseDir,subDir);if(!targetDir.exists())targetDir.mkdirs();File imageFile=newFile(targetDir,fileName+".jpg");try(FileOutputStream fos=newFileOutputStream(imageFile)){bitmap.compress(Bitmap.CompressFormat.JPEG,90,fos);fos.flush();returnimageFile.getAbsolutePath();}catch(Exception e){e.printStackTrace();returnnull;}}

调用方式:

CaptureScreenshotUtil.saveBitmap(MainActivity.this,CaptureScreenshotUtil.captureScreenshot(),"aaa","test");

权限声明:

<uses-permission android:name="android.permission.READ_FRAME_BUFFER"></uses-permission>

注意需要基于源码编译apk,系统签名安装。

验证得到的结果
原设备画面展示:

截图到图片展示如下

明显看到手势密码部分的Activity是无法被截图到的,这块与豆包官方声明基本上一致。
但是真的是这样吗?

使用setCaptureSecureLayers后截图情况
代码上只是在原来基础上加入setCaptureSecureLayers(true)

try{final ScreenCapture.CaptureArgs captureArgs=newScreenCapture.CaptureArgs.Builder<>().setSourceCrop(newRect(0,0,2960,1440))//重点差异.setCaptureSecureLayers(true).build();ScreenCapture.SynchronousScreenCaptureListener syncScreenCapture=ScreenCapture.createSyncCaptureListener();try{WindowManagerGlobal.getWindowManagerService().captureDisplay(0,captureArgs,syncScreenCapture);}catch(RemoteException e){Log.e("lsm666888","Failed to request screencapture for display");e.rethrowAsRuntimeException();}final ScreenCapture.ScreenshotHardwareBuffer screenshotHardwareBuffer=syncScreenCapture.getBuffer();returnscreenshotHardwareBuffer.asBitmap();}finally{}

运行后进行截图,效果如下:

可以看出明显这次截图是可以截图到手势密码的画面了,所以最后的结论就是如下:
READ_FRAME_BUFFER权限确实是需要系统签名才可以使用的,默认不设置setCaptureSecureLayers(true)那确实无法截图到手势密码等secure画面,但是如果设置了setCaptureSecureLayers(true)就可以截图到各个secure的内容。

所以READ_FRAME_BUFFER权限是可以截图到各个手势密码等高度隐私的画面。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 7:52:39

Kotaemon合同审核助手:法务人员的智能协作者

Kotaemon合同审核助手&#xff1a;法务人员的智能协作者 在企业法务部门&#xff0c;每天都有成百上千份合同等待审阅——租赁协议、采购订单、服务条款……每一纸文档背后都潜藏着法律风险。传统的处理方式依赖人工逐条比对、反复确认&#xff0c;不仅耗时费力&#xff0c;还…

作者头像 李华
网站建设 2026/7/7 19:41:56

ANSYS 2025R1 多领域仿真升级:结构电磁提速 + AI 云赋能下载安装

前言 ANSYS 2025 R1 作为一款聚焦数字工程的仿真软件版本&#xff0c;凭借 AI、云计算和 GPU 的技术赋能&#xff0c;在仿真求解性能、跨领域功能适配、协作效率等多方面实现大幅升级&#xff0c;覆盖流体、结构、电磁等多个工程仿真场景&#xff0c;同时优化了许可证与协作机…

作者头像 李华
网站建设 2026/7/7 13:05:36

Win|WinEdt( LaTeX 编辑器),下载及安装教程

⏺ WinEdt&#xff08; LaTeX 编辑器&#xff09; ⏺ 版本&#xff1a;v20240613 ⏺ 平台&#xff1a;Windows ⏺ 中文&#xff1a;无 ⏺ 特色&#xff1a;「解锁高级版」 ⏺ 安装说明&#xff1a;直接下载安装即可。 ⏺ 简介&#xff1a;一款功能强大的 Windows 平台上的文本…

作者头像 李华
网站建设 2026/7/7 3:12:12

5个实用技巧:掌握gsplat相机模型与鱼眼镜头高级配置

5个实用技巧&#xff1a;掌握gsplat相机模型与鱼眼镜头高级配置 【免费下载链接】gsplat CUDA accelerated rasterization of gaussian splatting 项目地址: https://gitcode.com/GitHub_Trending/gs/gsplat gsplat作为CUDA加速的高斯溅射渲染引擎&#xff0c;其强大的相…

作者头像 李华
网站建设 2026/7/7 8:57:25

深度学习模型优化实战:3大核心技巧提升训练效率

深度学习模型优化实战&#xff1a;3大核心技巧提升训练效率 【免费下载链接】mujoco Multi-Joint dynamics with Contact. A general purpose physics simulator. 项目地址: https://gitcode.com/GitHub_Trending/mu/mujoco 在深度学习项目开发中&#xff0c;模型优化是…

作者头像 李华
网站建设 2026/7/7 4:52:50

AI营销顶级专家领航,原圈科技如何定义行业未来格局?

摘要&#xff1a;AI营销顶级专家在多维竞争格局中&#xff0c;原圈科技被普遍视为行业内的代表企业。该评价基于其在技术能力、产品完备性、行业适配度和客户口碑等维度的突出表现。原圈科技的整合式AI智能体系统有效覆盖营销全链路&#xff0c;且客户覆盖广泛、复购率高&#…

作者头像 李华