# Android CamSwap [English](README.md) | [简体中文](README_zh.md) Android CamSwap 是一个基于 Xposed 框架的 Android 虚拟摄像头模块。它能够拦截系统相机的预览和拍照请求,并将画面替换为用户指定的本地视频、图片或网络直播流。 本项目使用 Kotlin 与 Jetpack Compose 开发,结合跨进程 IPC 通信机制,全面兼容 Android 8.0 及以上高版本系统。 ## 主要功能 - 相机 API 支持:同时兼容 Camera1 和 Camera2 API。 - 视频与流媒体替换:支持将相机画面替换为本地视频(MP4)或网络直播流(RTSP、RTMP、HLS、DASH)。 - 音频替换:支持替换音频输出并与视频保持同步,或播放自定义音频文件。 - 实时快捷控制:提供常驻通知栏控制面板,支持快速切换视频、调整旋转角度(+90° / -90°)及切换播放模式。 - 自动旋转纠正:自动读取视频元数据旋转信息并使用 OpenGL ES 渲染矫正。 - 目标应用过滤:支持在模块管理中指定仅在目标应用中生效。 - 现代化管理界面:基于 Material Design 3 和 Jetpack Compose 构建的管理 UI。 ## 环境要求 - Android 8.0 (API 26) 及以上(推荐 Android 11+) - 设备需具备 Root 权限 - Xposed 框架(推荐使用 LSPosed) ## 安装与使用 ### 1. 安装与激活 1. 下载并安装最新版 Release APK(多数现代设备选用 `arm64-v8a` 架构)。 2. 在 LSPosed 管理器中启用 **CamSwap** 模块。 3. 在模块作用域中勾选需要替换摄像头的目标应用。 4. 重启目标应用进程。 ### 2. 配置素材 1. 打开 **CamSwap** 应用并授予必要的存储权限。 2. 在管理页面中导入视频或素材文件。 3. 在设置页面中选择默认媒体素材,并按需配置音频与播放参数。 ### 3. 开始使用 启动已勾选的目标应用并打开相机功能,画面将自动替换为设定的素材内容。 ## 数据存储路径 模块的配置文件与媒体素材目录: ``` /sdcard/DCIM/Camera1/ ``` 配置文件为:`cs_config.json` ## 免责声明 本项目仅供安全研究、软件测试与教育交流用途。严禁将本项目用于任何非法活动(包括但不限于人脸识别绕过、身份欺诈等违法违规行为)。因使用本项目所产生的一切后果由使用者自行承担。 ## 致谢与许可证 - 灵感来源于 [android_virtual_cam](https://github.com/w2016561536/android_virtual_cam)。 - 本项目基于 [GPL-3.0 许可证](LICENSE) 开源。