android_virtual_cam

简体中文 | 繁體中文 | English

基于Xposed的虚拟摄像头

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

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

支持平台:

  • 安卓5.0+

使用方法

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

  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的配置开关均在应用程序中,您可以快捷地在应用程序中配置,也可以手动创建文件。

常见问题

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

Package

com.example.vcam

Releases

28-4.4

Release type: Stable

3/6/2022, 10:57:36 AM

修正繁体中文翻译
感谢 @david082321 的翻译贡献

27-4.3

Release type: Stable

2/11/2022, 3:56:14 PM

修复4.2中的多用户BUG
增加应用内配置工具
修改README

fix multi users bug in 4.2
add in-app configuration tool
modify readme

26-4.2

Release type: Stable

2/5/2022, 10:00:57 AM

修复BUG

23-4.0

Release type: Stable

2/3/2022, 2:12:36 PM

添加CameraX库支持(不是很稳定)
稍微整理如屎山的代码
添加Gitee仓库入口
修改FAQ

Add cameraX library support (not very stable)(like snapchat, you can only record, but you can't take picture)
Sort out the code
add Gitee repo entrance
edit FAQ

22-3.9

Release type: Stable

12/4/2021, 4:02:01 PM

解决开机失败问题(可能)
捕捉toast.show的错误

Resolve boot failure (possible)
Catch the error of toast.show

21-3.8

Release type: Stable

11/28/2021, 5:27:08 AM

catch missing exception

19-3.6

Release type: Stable

11/27/2021, 1:29:50 PM

解决安卓11的权限问题

solve permission problems on Android 11

18-3.5

Release type: Stable

11/20/2021, 2:46:12 PM

  1. 优化包体积

  2. 解决应用程序没有权限读取视频而导致失败的问题

  3. 优化readme

  4. Optimize package volume

  5. Solve the problem that the application does not have permission to read video, resulting in failure

  6. Optimize Readme

3.4

Release type: Stable

10/1/2021, 11:35:50 PM

优化在没有替换视频的处理流程,避免卡住。

2.6

Release type: Stable

9/11/2021, 3:46:46 PM

修复部分Camera2 bug
解决Surface冲突引起的重音问题

repair some Camera2's bugs
Solve stress problems caused by surface conflicts

3.3

Release type: Stable

10/1/2021, 6:01:26 AM

修复3.1,3.2中的重大bug
移除自动关闭视频的功能(有更多的bug)
修复以gmail等应用闪退问题

fix important bugs in 3.1 and 3.2
remove auto close video function, because of more bugs

now it can function properly in google meet in gmail

3.0

Release type: Stable

9/17/2021, 5:02:25 PM

修复bug,优化camera接口

fix bugs ,polish camera api

2.8

Release type: Stable

9/13/2021, 2:47:55 PM

解决一些应用程序闪退问题

solve some crash problems

23

Release type: Stable

9/12/2021, 2:40:15 PM

解决部分应用程序注册多个Surface行为(最大两个)

solve some apps register multiply surfaces (up to 2)

2.5

Release type: Stable

9/7/2021, 8:38:18 AM

合并分支静音功能

2.4

Release type: Stable

9/4/2021, 1:56:57 PM

增加翻译,修复路径

2.3

Release type: Stable

9/4/2021, 7:28:09 AM

初次上传