Overview
Developed by chenxiaolong, BCR (Basic Call Recorder) is widely regarded as the most reliable, clean, and battery-efficient call recording solution available for Android.
Due to privacy regulations and Google API restrictions introduced in recent Android versions, unrooted devices cannot record internal audio streams during phone calls. BCR solves this by operating as a privileged system component. It registers with the underlying Android telephony framework, capturing the uncompressed digital audio streams for both sides of the call directly from the hardware mixer.
Technical Architecture & How It Works
Native Telephony Framework Capture
- Privileged Installation: When installed as a Magisk / KernelSU module, BCR places its helper package into
/system/priv-app/and injects permissions into/system/etc/permissions/privapp-permissions-bcr.xml. - Audio Record Source: BCR accesses privileged audio source constants:
MediaRecorder.AudioSource.VOICE_CALLMediaRecorder.AudioSource.VOICE_UPLINK(your microphone)MediaRecorder.AudioSource.VOICE_DOWNLINK(incoming caller audio)
- Hardware Encoder Streaming: Audio buffers are passed directly to Android’s native
MediaCodecor software encoders, encoding into lightweight Opus or uncompressed FLAC in real-time. - Zero Battery Overhead: The recording service only runs when an active telephony state transition occurs (
EXTRA_STATE_OFFHOOK). When the call terminates (EXTRA_STATE_IDLE), the file is closed and the process returns to sleep.
Installation & Setup
Method 1: Root Module (Recommended)
- Download
BCR-vX.zipfrom releases. - In Magisk or KernelSU, flash the module and reboot your device.
- Once booted, open the BCR app icon from your app launcher.
- Grant the requested storage and notification permissions.
Method 2: Systemless Integration
For devices using custom ROMs or AOSP-based builds, BCR seamlessly integrates into the stock dialer and status bar without requiring background overlays.
Configuration & Practical Usage
Inside the BCR application:
- Audio Output Format: Choose Opus (recommended: 32kbps or 64kbps for crisp voice clarity with tiny file sizes ~500KB per 10min call) or FLAC for archival lossless quality.
- Output Directory: Configure a local folder on your storage, or designate a folder synced to Nextcloud / Syncthing.
- Filename Pattern: Customize variables:
%contact%_%number%_%year%-%month%-%day%_%hour%-%minute% - Auto-Delete Rules: Set retention policies to automatically prune recordings older than 30, 60, or 90 days.