Skip to content

About

虚拟摄像头 virtual camera

Resources

Stars

6 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

android_virtual_cam

简体中文 | 繁體中文 | English

基于Xposed的虚拟摄像头

请勿用于任何非法用途,所有后果自负。

中国大陆加速地址(Gitee平台): https://gitee.com/w2016561536/android_virtual_cam

支持平台:

  • 安卓5.0+
  • 更新于2026年4

新功能

1. 视频旋转功能

  • 支持 0°、90°、180°、270° 四种旋转角度
  • 实现像素级视频旋转处理
  • 自动将旋转后的视频数据传递给被HOOK的应用程序

2. 视频文件选择界面

  • 点击"选择视频文件"按钮弹出二级菜单
  • 显示 DCIM/Camera 目录下的所有视频文件
  • 按修改时间倒序排序,显示文件名、大小、修改日期
  • 提供"选择更多文件"按钮浏览其他目录

3. 自动复制视频功能

  • 支持ROOT权限自动复制视频到目标应用私有目录
  • 确保视频文件在不同权限环境下都能正常访问
  • 自动处理目录重定向和权限问题

4. 应用说明对话框

  • 点击"应用说明"按钮查看详细使用指南
  • 包含完整的安装、配置和故障排除说明

使用方法

  1. 安装此模块,并在Xposed中启用此模块,Lsposed等包含作用域的框架需要选择目标app,无需选择系统框架。需要ROOT权限。

  2. 在系统设置中,授予目标应用读取本地存储的权限,并强制结束目标应用程序。若应用程序未申请此权限,请见步骤3。

  3. 打开目标应用,若应用未能获得读取存储的权限,则会以气泡消息提示,Camera1目录被重定向至应用程序私有目录/[内部存储]/Android/data/[应用包名]/files/Camera1/。若未提示,则默认Camera1目录为/[内部存储]/DCIM/Camera1/。若目录不存在,请手动创建。

注意:私有目录下的Camera1仅对该应用单独生效。

  1. 在目标应用中打开相机预览,会以气泡消息提示“宽:……高:……”,需要根据此分辨率数据制作替换视频,放置于Camera1目录下,并命名为virtual.mp4,若打开相机并无提示消息,则无需调整视频分辨率。

  2. 若在目标应用中拍照却显示真实图片,且出现气泡消息发现拍照和分辨率,则需根据此分辨率数据准备一张照片,命名为1000.bmp,放入Camera1目录下(支持其它格式改后缀为bmp)。如果拍照时无气泡消息提示,则1000.bmp无效。

  3. 如果需要播放视频的声音,需在/[内部存储]/DCIM/Camera1/目录下创建no-silent.jpg文件。(全局实时生效)

  4. 如果需要临时停用视频替换,需在/[内部存储]/DCIM/Camera1/目录下创建disable.jpg文件。(全局实时生效)

  5. 如果觉得Toast消息烦,可以在/[内部存储]/DCIM/Camera1/目录下创建no_toast.jpg文件。(全局实时生效)

  6. 目录重定向消息默认只显示一次,如果错过了目录重定向的Toast消息,可以在/[内部存储]/DCIM/Camera1/目录下创建force_show.jpg文件来覆盖默认设定。(全局实时生效)

  7. 如果需要为每一个应用程序分配视频,可以在/[内部存储]/DCIM/Camera1/目录下创建private_dir.jpg强制使用应用程序私有目录。(全局实时生效)

注意:6~10的配置开关均在应用程序中,您可以快捷地在应用程序中配置,也可以手动创建文件。

视频旋转功能使用

  1. 在主界面选择需要的旋转角度(0°、90°、180°、270°)
  2. 选择视频文件(从DCIM/Camera目录或其他位置)
  3. 点击"复制视频到应用私有目录"按钮
  4. 打开目标应用,系统会自动应用旋转设置

注意:预览窗口仅显示视频的正常状态,无法实时展示完整的旋转效果。旋转效果会在被HOOK的应用中体现。

常见问题

A1. 前置摄像头方向问题?
Q1. 大多数情况下,替换前置摄像头的视频需要水平翻转并右旋90度,并且视频处理后的分辨率应与气泡消息内分辨率相同。但有时这并不需要,具体请根据实际情况判断。

Q2. 画面黑屏,相机启动失败?
A2. 目前有些应用并不能成功替换(特别是系统相机)。或者是因为视频路径不对(是否创建了两级Camera1目录,如./DCIM/Camera1/Camera1/virtual.mp4,但只需要一级目录)。

Q3. 画面花屏?
A3. 视频分辨率不对。

Q4. 画面扭曲,变形?
A4. 请使用剪辑软件修改原视频来匹配屏幕。

Q5. 创建disable.jpg无效?
A5. 如果应用版本<=4.0,那么[内部存储]/DCIM/Camera1目录下的文件对具有访问存储权限的应用生效,其余无权限应用应在私有目录下创建
如果应用版本>=4.1,那么应在[内部存储]/DCIM/Camera1创建,无论目标应用是否具有权限。

反馈问题

请直接在issues中反馈,如果为BUG反馈,请附带Xposed模块日志信息。

致谢:

提供HOOK思路: https://github.com/wangwei1237/CameraHook

H264硬解码: https://github.com/zhantong/Android-VideoToImages

JPEG转YUV: https://blog.csdn.net/jacke121/article/details/73888732

About

虚拟摄像头 virtual camera

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages