Enable Screenshot 使用指南:3步解除应用的截图限制
Enable Screenshot 使用指南:3步解除应用的截图限制
【免费下载链接】DisableFlagSecure项目地址: https://gitcode.com/gh_mirrors/dis/DisableFlagSecure
打开银行APP,想给转账回执截个图,相册里的图一片黑。Android 14+ 上更过分:截个图,应用直接弹出提示,或者截出来就是黑屏。原因是开发者在这个窗口上设置了 FLAG_SECURE 标记,系统会主动拦截、上报这次截取。
Enable Screenshot(仓库名 DisableFlagSecure)是一个开源 LSPosed 模块,做三件事:让目标应用可以被截图、禁用 Android 14 新增的截图检测、禁用 Android 15 新增的录屏检测。它适合已经用了 root 设备 + 官方 LSPosed、又确实需要截取特定应用内容的你。
📋 安装前的3项自检
动手前先对照这张表,任何一项不满足,模块在你的设备上都不会正常工作:
| 检查项 | 通过条件 | 不满足会怎样 |
|---|---|---|
| 系统版本 | Android 12–16 官方系统 | 模块的 Hook 是按特定版本系统代码编写的,其他版本无法命中 |
| 框架 | 官方 LSPosed | 非官方 LSPosed 版本被项目明确声明不支持 |
| 系统皮肤 | 小米 HyperOS、OPPO 系(Color OS/Realme UI/Oxygen OS)、三星 One UI 或原生系统 | 第三方 Custom ROM 不被支持 |
不确定手机上的 LSPosed 是否官方版时,先装一个知名模块试试能否生效。已经刷了第三方 ROM 的,可以停在这里了——项目 README.md 明确写出不支持 Custom ROM。
🔧 3步跑通:启用、选应用、重启
- 装模块。把模块 APK 安装到设备上,不信任预构建包的可自己构建,见下方小节。
- 启用并勾选应用。在 LSPosed 管理器里找到 Enable Screenshot,启用它,在作用范围列表里只勾选你需要的那一两个应用。项目说明强调只选推荐应用,不要全选——模块内置了误用防护,勾选了不该在范围内的应用时,打开该应用会弹提示要求移除,并直接退出这个应用。
- 重启设备。模块 Hook 的是系统服务,重启后才生效。
重启后打开目标应用截图,相册里图片正常即成功。想彻底验证的话,debug 构建包里带了一个 TestActivity.java 测试页,它对页面设置了 FLAG_SECURE,能截下这个页面,说明模块工作正常。
自己构建 APK(可选)
在能访问 Android 开发环境的目录执行:
git clone https://gitcode.com/gh_mirrors/dis/DisableFlagSecure
这一行把 DisableFlagSecure 仓库克隆到本地,之后用 Android Studio 打开并构建,需要本机配好 Android SDK。
🩹 翻车自救:3个高频问题
模块启用后截图仍是黑屏
先查:有没有重启、作用范围里有没有勾选目标应用。再试:用 debug 包里的测试页截图,区分是模块没生效,还是该应用的问题。最后查 LSPosed 是否官方版、系统版本是否在支持区间;仍不行就去仓库提 issue,附上系统版本、机型、LSPosed 版本。
应用弹出 "Incorrect module usage, remove this app from scope"
这不是崩溃,是模块的内置防护:你给不在推荐列表里的应用启用了模块,打开时就会弹这个提示并强制退出应用。处理办法:回 LSPosed 管理器把该应用移出作用范围,重启。这段逻辑在主逻辑文件 DisableFlagSecure.java 的 hookOnResume 方法里,防护的目的就是防止把模块滥用到任意应用上。
能截图了,但应用提示"检测到截图"或行为异常
先查系统版本:禁用截图检测只覆盖 Android 14+,禁用录屏检测只覆盖 Android 15+,完整支持列表见 README.md。再试:重启一次,确认 Hook 全部加载。最后:机型在支持列表内仍不生效的,提 issue 时附上机型与系统版本。
💡 一句话原理,两处源码入口
应用像一间"开窗拉帘"(FLAG_SECURE 标记)的房间,截图是窗外的"摄影师";Android 14 起,房间里又装了会汇报摄影师身份的"门磁"(检测回调)。模块做的事就是把帘子拆掉、把门磁卸了,顺带关掉窗口表面、镜像显示等几条截取通道。一句话:它不改应用本身,只改系统侧的截取与检测链路。
想看代码,主 Hook 逻辑都集中在主逻辑文件 DisableFlagSecure.java,验证用的测试页在 debug 源码目录里,两处对照着看最清楚。
🚪 适用边界:谁适合,谁不适合
| 你的情况 | 结论 |
|---|---|
| Android 12–16 官方系统 + 官方 LSPosed | 可用,这是项目明确支持的范围 |
| 想给所有应用一次性启用 | 不建议,模块内置防护会直接强制退出应用 |
| 第三方 Custom ROM | 不支持,Hook 可能找不到目标代码 |
| 只是偶尔需要一次截图 | 先考虑其他办法,这套方案的代价是 root + 框架 + 重启 |
重启这一条别忽略,它是这套方案里最容易被低估的成本。
🧭 下一步
- 先做前面的 3 项自检,通过后再执行"启用、选应用、重启"这三步。
- 遇到问题去仓库提 issue,附系统版本、机型、LSPosed 版本、目标应用包名四样信息,能少来回一轮。
- 想参与的话:README 很短,可以从补充使用细节入手;熟悉 Hook 代码的,可以给主逻辑文件贡献系统版本兼容补丁。
这个项目的立场不复杂:截图标记是开发者的权利,但自己屏幕上的内容能不能被用户保存,可以交还给用户选择。
【免费下载链接】DisableFlagSecure项目地址: https://gitcode.com/gh_mirrors/dis/DisableFlagSecure
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
