Initial commit

This commit is contained in:
2026-05-08 11:45:15 +02:00
commit e5471b5fa0
120 changed files with 8938 additions and 0 deletions
+103
View File
@@ -0,0 +1,103 @@
# CamSwapper: A Virtual Camera Module (Android 10+)
**PLEASE DO NOT USE THIS SOFTWARE FOR ILLEGAL PURPOSES.**
CamSwapper is a virtual camera module that replaces your device's camera feed with video files or images at the application level (via Xposed/LSPosed) or system-wide (via HAL hook).
## Quick Start
1. Install the CamSwapper APK on a rooted device with LSPosed
2. Enable module in LSPosed Manager and select target apps
3. Select a video file from the app UI
4. Open any hooked camera app — your video plays as the camera feed
## Features
### App-Level Hook (LSPosed)
| Feature | Status |
|---------|-------|
| Local video file hooking | [x] |
| AMediaCodec hardware decoding (4K@60fps HEVC) | [x] |
| Static image hooking | [x] |
| Network stream (RTSP) | [ ] In progress |
| Preview cropping to match aspect ratio | [x] |
| Camera1 API photo capture | [x] |
| Camera1/Camera2 API hooks | [x] |
| Audio playback | [x] |
| Floating debug panel | [x] |
### System-Wide HAL Hook (Magisk/KernelSU)
| Feature | Status |
|---------|-------|
| LD_PRELOAD injection | [x] |
| All apps simultaneous | [x] |
| No per-app scoping | [x] |
| RTSP network streams | [x] |
## Requirements
- Android 10+ (API 29+)
- Root access
- LSPosed Framework 2.0.0+ (for app-level hook)
- Magisk or KernelSU (for system-wide HAL hook)
## Usage
### Setup
1. Place video files in `DCIM`, `Movies`, or other public storage
2. Grant the module media read permissions
3. Grant target apps media read permissions
4. In LSPosed, enable CamSwapper and select target scope (TikTok, Telegram, etc.)
5. **Force stop** target app after any changes
6. Tap the thumbnail area to select a video file
### Debugging
Enable "Print Logs" in the app, then:
```bash
adb logcat | grep "VCX"
```
## System-Wide HAL Hook
For system-wide camera replacement (all apps at once), flash the module ZIP:
### Installation
```bash
# Flash camswapper-hal-hook-v1.zip in Magisk/KernelSU
adb reboot
# Configure
enabled=1
source_mode=file # or rtsp
video_path=/data/local/camera_magic/video.mp4
rtsp_url=rtsp://192.168.1.100:554/stream
```
### Verification
```bash
# Check hook loaded
adb shell getprop wrap.android.hardware.camera.provider@2.7-service-google
# Check logs
adb logcat -d -s CameraHook
```
### Uninstall
```bash
adb shell su -c "rm -rf /data/adb/modules/camera-hook"
adb shell su -c "setprop wrap.android.hardware.camera.provider@2.7-service-google ''"
adb shell su -c "rm -rf /data/local/camera_magic"
adb reboot
```
## Known Issues
- Green lines on video edges — Fixed
- Camera1 API not stopping threads after recording — Fixed
- Camera2 API hook on menu switch — Fixed
- 4K audio desync on older devices (runtime permission) — Toggle front/rear camera as workaround
## Credits
- [FFmpeg](https://ffmpeg.org/)
- [libjpeg-turbo](https://libjpeg-turbo.org/)