禁止截屏与录屏:系统级拦截
原理
Android 的 setScreenCaptureDisabled() API 在 Device Owner 权限下调用后,系统会在 Service 层拦截所有屏幕捕获请求——包括:按键截屏(电源+音量下)、手势截屏、通知栏截屏按钮、ADB shell screencap、录屏 App、Chrome 远程调试录屏、第三方录屏工具……全部失效。
与 FLAG_SECURE 的区别
| 方式 | 覆盖范围 | OwnDroid 能否控制 |
|---|---|---|
| App 里加 FLAG_SECURE | 只有该 App 的界面 | 不能(是应用自己加的) |
| Device Owner setScreenCaptureDisabled | 整个设备所有界面 | ✅ |
普通开发者可以在自己 App 里加 WindowManager.LayoutParams.FLAG_SECURE 来防止别人截屏自己的界面。但 OwnDroid 的方式是系统级的——不管是系统界面、第三方 App 界面还是锁屏界面,全部禁止。
操作步骤
OwnDroid → 系统 → 找到「禁止截屏」开关,打开即可。关闭开关恢复。
OwnDroid API 也支持远程调用:
SET_SCREEN_CAPTURE_DISABLED() # 打开
SET_SCREEN_CAPTURE_ENABLED() # 关闭
已知绕过(有限)
- Android 投屏到 Chromecast / Smart View:部分设备在 setScreenCaptureDisabled 打开后仍能投屏——投屏属于 Display Manager API 范畴,Screen Capture 禁用不覆盖它
- HDMI/USB-C 视频输出:部分设备仍能通过物理接口输出画面
- 某些厂商 ROM 的「安全截屏」功能(比如 Samsung Secure Folder 内截屏)可能有厂商级豁免
启用场景
- 隐私防护:防止别人截你的聊天记录、相册、银行 App 界面
- 敏感操作:做支付、登录邮箱等操作时临时开启,操作完关掉
- 自我约束:防止自己把敏感内容截图存起来(比如聊天记录的裸照截图)
- 家长控制:防止孩子把 App 里的不良内容截图保存
注意事项
- 某些游戏(比如银行类 App)自己也加了 FLAG_SECURE——OwnDroid 的系统级禁用和 App 级禁用不冲突,一起生效
- 如果设备投屏到别的显示器上仍能被截屏,那是投屏链路在截(截的是接收端的屏),OwnDroid 管不到