{"id":13482479,"url":"https://github.com/w2016561536/android_virtual_cam","last_synced_at":"2025-05-15T15:06:28.721Z","repository":{"id":37521660,"uuid":"395533867","full_name":"w2016561536/android_virtual_cam","owner":"w2016561536","description":"xposed安卓虚拟摄像头 android virtual camera on xposed hook","archived":false,"fork":false,"pushed_at":"2024-06-14T10:34:15.000Z","size":81802,"stargazers_count":1601,"open_issues_count":97,"forks_count":433,"subscribers_count":28,"default_branch":"master","last_synced_at":"2025-04-07T20:11:12.334Z","etag":null,"topics":["android","virtualcamera","xposed-module"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/w2016561536.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-13T05:44:08.000Z","updated_at":"2025-04-03T15:41:48.000Z","dependencies_parsed_at":"2024-11-28T11:03:03.874Z","dependency_job_id":"21e6bded-e21f-4257-a4f7-5741f4c72cf5","html_url":"https://github.com/w2016561536/android_virtual_cam","commit_stats":null,"previous_names":[],"tags_count":42,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w2016561536%2Fandroid_virtual_cam","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w2016561536%2Fandroid_virtual_cam/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w2016561536%2Fandroid_virtual_cam/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w2016561536%2Fandroid_virtual_cam/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/w2016561536","download_url":"https://codeload.github.com/w2016561536/android_virtual_cam/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254364270,"owners_count":22058878,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","virtualcamera","xposed-module"],"created_at":"2024-07-31T17:01:02.406Z","updated_at":"2025-05-15T15:06:28.698Z","avatar_url":"https://github.com/w2016561536.png","language":"Java","funding_links":[],"categories":["Java"],"sub_categories":[],"readme":"# android_virtual_cam\n\n[简体中文](./README.md) | [繁體中文](./README_tc.md) | [English](./README_en.md)\n\n基于Xposed的虚拟摄像头\n\n# 请勿用于任何非法用途，所有后果自负。\n\n### 中国大陆加速地址（Gitee平台）： https://gitee.com/w2016561536/android_virtual_cam\n\n## 支持平台：\n\n- 安卓5.0+\n\n## 使用方法\n\n1. 安装此模块，并在Xposed中启用此模块，Lsposed等包含作用域的框架需要选择目标app，无需选择系统框架。\n   \n2. 在系统设置中，授予目标应用读取本地存储的权限，并强制结束目标应用程序。若应用程序未申请此权限，请见步骤3。\n   \n3. 打开目标应用，若应用未能获得读取存储的权限，则会以气泡消息提示，`Camera1`目录被重定向至应用程序私有目录`/[内部存储]/Android/data/[应用包名]/files/Camera1/`。若未提示，则默认`Camera1`目录为`/[内部存储]/DCIM/Camera1/`。若目录不存在，请手动创建。\n\n\u003e 注意：私有目录下的`Camera1`仅对该应用单独生效。\n\n4. 在目标应用中打开相机预览，会以气泡消息提示“宽：……高：……”，需要根据此分辨率数据制作替换视频，放置于`Camera1`目录下，并命名为`virtual.mp4`，若打开相机并无提示消息，则无需调整视频分辨率。\n   \n5. 若在目标应用中拍照却显示真实图片，且出现气泡消息`发现拍照`和分辨率，则需根据此分辨率数据准备一张照片，命名为`1000.bmp`，放入`Camera1`目录下（支持其它格式改后缀为bmp）。如果拍照时无气泡消息提示，则`1000.bmp`无效。\n   \n6. 如果需要播放视频的声音，需在`/[内部存储]/DCIM/Camera1/`目录下创建`no-silent.jpg`文件。（全局实时生效）\n   \n7. 如果需要临时停用视频替换，需在`/[内部存储]/DCIM/Camera1/`目录下创建`disable.jpg`文件。（全局实时生效）\n\n8. 如果觉得Toast消息烦，可以在`/[内部存储]/DCIM/Camera1/`目录下创建`no_toast.jpg`文件。（全局实时生效）\n\n9. 目录重定向消息默认只显示一次，如果错过了目录重定向的Toast消息，可以在`/[内部存储]/DCIM/Camera1/`目录下创建`force_show.jpg`文件来覆盖默认设定。（全局实时生效）\n\n10. 如果需要为每一个应用程序分配视频，可以在`/[内部存储]/DCIM/Camera1/`目录下创建`private_dir.jpg`强制使用应用程序私有目录。（全局实时生效）\n\n\u003e 注意：6~10的配置开关均在应用程序中，您可以快捷地在应用程序中配置，也可以手动创建文件。\n\n## 常见问题\n\nA1. 前置摄像头方向问题？  \nQ1. 大多数情况下,替换前置摄像头的视频需要水平翻转并右旋90度，并且视频***处理后***的分辨率应与气泡消息内分辨率相同。但有时这并不需要，具体请根据实际情况判断。\n\n\nQ2. 画面黑屏，相机启动失败？  \nA2. 目前有些应用并不能成功替换（特别是系统相机）。或者是因为视频路径不对（是否创建了两级Camera1目录，如`./DCIM/Camera1/Camera1/virtual.mp4`，但只需要一级目录）。\n\n\nQ3. 画面花屏？  \nA3. 视频分辨率不对。\n\nQ4. 画面扭曲，变形？  \nA4. 请使用剪辑软件修改原视频来匹配屏幕。\n\nQ5. 创建`disable.jpg`无效？  \nA5. 如果应用版本`\u003c=4.0`，那么`[内部存储]/DCIM/Camera1`目录下的文件对**具有访问存储权限**的应用生效，其余无权限应用应在**私有目录**下创建  \n如果应用版本`\u003e=4.1`，那么应在`[内部存储]/DCIM/Camera1`创建，无论目标应用是否具有权限。\n\n\n## 反馈问题\n\n请直接在issues中反馈，如果为BUG反馈，请附带Xposed**模块**日志信息。\n\n\n## 致谢:\n\n提供HOOK思路: https://github.com/wangwei1237/CameraHook  \n\nH264硬解码： https://github.com/zhantong/Android-VideoToImages  \n\nJPEG转YUV： https://blog.csdn.net/jacke121/article/details/73888732  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fw2016561536%2Fandroid_virtual_cam","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fw2016561536%2Fandroid_virtual_cam","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fw2016561536%2Fandroid_virtual_cam/lists"}