Module Overview
**
app-armeabi-v7a
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: ContentProvider IPC (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.
-
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
- 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.
Rate this Module
Share your experience with the community.
* You will be prompted to login via Google in one click to verify your rating.