
| App Name | Android CamSwap |
|---|---|
| Size | 9.11MB |
| Version | Final |
| Category | Xposed Module |
| Android requirement | + 12 |
| Published By | zensu357 |
| Rating | 4.9 / 5 |
| Install Via | LSposed Manager |
Get Link
Thanks to the android_virtual_cam project for giving me the idea and some code to start with.
Android CamSwap is a camera module. It uses the framework. This module intercepts camera preview and photo requests from Android. It then replaces the camera feed with a video chosen by the user.
I rebuilt this project using Android tools. I used Kotlin and Jetpack Compose. I also added a way to share data between processes. This uses ContentProvider. It works with strict file permission rules in newer Android versions like Android 11 and later.
Note: If you want to know how older versions, like v2.0 worked look at the commits. This branch shows the refactored code.
✨ Key Features
- Full API Support: Supports both Camera1 (
Camera) and Camera2 (CameraDevice) APIs. - Video Replacement 🎥: Seamlessly replaces the camera preview feed with a specified MP4 video.
- Audio Replacement 🎤: Option to play a custom MP3 audio file or sync with the replacement video’s audio.
- Real-time Notification Bar Controls:
- ⏭ Switch to the next/previous video.
- 🔄 Quickly adjust video rotation (+90° / -90°).
- 🎲 Random playback mode.
- Automatic Rotation Handling: Reads rotation angle from video metadata and renders correctly via OpenGL ES, requiring no manual adjustment.
- Cross-Process Configuration Sync:
- Primary Path:
ContentProviderIPC (does not require storage permissions on the target app). - Fallback Path: Direct file reading + App cold-start pre-warming, completely resolving issues with configurations not being ready during cold starts.
- Primary Path:
- Target App Filtering: Allows the module to take effect only in specified applications.
- Modern UI: Management interface built with Material Design 3 and Jetpack Compose.
📱 Requirements
- Android Version: Android 8.0 (API 26) and above (Android 11+ is highly recommended).
- Root Permission: Required.
- Xposed Framework: LSPosed is recommended (Zygisk or Riru versions both work).
🚀 Installation and Usage
1. Install the Module
- Download the latest Release APK. It is recommended to choose the package that matches your device architecture: most devices use
arm64-v8a. - Install the APK on your Android device.
- Enable the module in your LSPosed manager.
- Scope Selection:
- Highly Recommended: Check “System Framework” for the best compatibility.
- Alternatively: Only check the specific target apps you want to replace the camera for (e.g., Camera, WeChat, TikTok, etc.).
- Reboot your phone (or force restart the target app’s process).
2. Configure Media
- Open the CamSwap app and grant the necessary file read/write permissions.
- Go to the “Manage” page to import your MP4 video media.
- Go to the “Settings” page to select the default video, configure audio replacement, and enable options like notification bar controls.
3. Start Using
- Open any app that uses the camera, and the preview feed will be replaced by your selected video.
- Tip: If the video orientation is incorrect, you can fine-tune it using the rotation buttons in the notification bar, or manually input a rotation offset angle in the app settings.
⚠️ Disclaimer
- This project is intended strictly for security research, software testing, and educational purposes.
- Do not use this project for any illegal activities (including but not limited to facial recognition bypass, identity fraud, etc.).
- Users must bear all legal responsibilities arising from the use of this project.







