Android 虚拟摄像头 Xposed 模块,基于 Atomos-X/Camera2Magic 二次开发。
Camera2 Magic 是一个基于 LSPosed / libxposed(API 102) 的 Android 虚拟摄像头模块:当被 Hook 的应用调用 Camera1 / Camera2 / ImageReader / WebRTC 等路径请求摄像头时,用你在该应用配置中选择的照片或视频替换真实画面。
- 摄像头替换
- Camera1 / Camera2 预览替换
- ImageReader 拍照替换(JPEG 保留 EXIF;YUV 走原生覆盖)
- WebRTC(camera2)路径适配
- 媒体源
- 按应用配置照片 / 视频(本地媒体)
- 按应用配置网络视频流(RTSP / HLS / DASH / HTTP(S) 直链),地址即填即用、无需拷贝
- 精细化配置
- 按应用独立开关「启用 Hook」+ 媒体类型三选一(照片 / 视频 / 网络视频流);不选媒体即不替换画面
- 手动旋转
- 播放声音、Toast、日志开关
- 界面
- Miuix(HyperOS 风格)Compose UI
- 多主题:深色 / 纯黑 / Monet 动态取色 / 自定义强调色 / 模糊效果等
- Android 13+(
minSdk 33,targetSdk 36) - 已安装并激活 LSPosed(模块要求 libxposed API 102)
- 设备具备所选媒体对应的解码能力
- 在 LSPosed 管理器中激活本模块,并勾选作用域;
- 在模块的“作用域”页进入目标应用配置,开启“启用 Hook”,选择“照片/视频/网络视频流”:本地媒体用相册选择器选取,网络视频流则填入
rtsp:///http:///https://地址(HLS 的.m3u8与 DASH 的.mpd走http(s)://); - 进入目标应用即可生效(未配置媒体时不替换画面)。
注意:媒体经系统相册选择器选取后会被拷贝进模块私有目录(本模块不申请任何存储权限);拍照替换仅对支持 JPEG/YUV 输出的相机路径生效。
网络视频流在目标应用进程内拉流,因此需要目标应用自身具备
INTERNET权限;http://明文流还会受目标应用自己的networkSecurityConfig限制(rtsp://不受影响)。协议支持依赖 media3 的 RTSP / HLS / DASH 模块。
开启「启用日志」,然后通过 logcat 查看(tag 为 VCX):
adb logcat -s VCX:*- 本项目基于 Atomos-X/Camera2Magic 二次开发,原项目未附带 License,使用与分发请自行确认合规;
- 原生库
libcamera3.so为预编译闭源产物,源码不在本仓库内; - 本模块仅供学习交流,请勿用于任何违法或违规用途;由此产生的任何后果由使用者自行承担。