cally

Verified safeOpen sourceExclusive
5.0
1 review
48
downloads
12
android

AI summary

Open-source call recorder for stock Android that captures both sides of a call using dual-track VOICE_UPLINK and VOICE_DOWNLINK with a five-step fallback ladder. Requires Shizuku and Android 12+. Version 0.5.1 fixes false permission notifications, improves Shizuku availability checks, and restricts auto-recording to real SIM calls only.

Generated by AI. May contain inaccuracies.

About this app

cally is a call recorder for stock Android that captures both sides of a call using a dual-track VOICE_UPLINK and VOICE_DOWNLINK approach with a five-step fallback ladder, and a Material 3 Expressive interface. It is privacy-first: zero telemetry, with optional cloud transcription that supports self-hosted endpoints.

The app exists because ordinary call recorders on stock Pixel devices cannot record the other party's voice: Google blocked VOICE_CALL, UPLINK, and DOWNLINK for non-privileged apps starting from Android 10. The native call recording that Google rolled out in the Phone app is unavailable in many regions, including Ukraine, and region switching does not help because the gate is combined (SIM/MCC, Wi-Fi BSSID, GPS, IP). Existing workarounds have significant trade-offs, such as root with loss of Verified Boot and Play Integrity, closed binaries, or mono mixes with volume imbalance.

Features

Call recording

- Dual-track recording with VOICE_UPLINK and VOICE_DOWNLINK in parallel (two mono tracks, ideal for playback with independent balance) - Five-step fallback ladder: DualUplinkDownlink, DualMicDownlink (Samsung-friendly), SingleVoiceCallStereo, SingleVoiceCallMono, SingleMic - Live-audibility verification with adaptive noise floor per stream, and three strikes before blacklisting a strategy - Preferred strategy cached per device fingerprint; OS updates invalidate the cache automatically - Automatic downgrade of a silent track at call end - Encoder: AAC in MP4 by default, with optional WAV (RIFF) - Recordings written to the app's private storage under Android/data/dev.lyo.callrec/files/recordings/ - No announcements, no beep (see Legal notes)

Interface

- Material 3 Expressive UI built with Jetpack Compose - Material You dynamic colors - Home, library, and playback screens with waveform view (planned) - Ongoing recording notification with public visibility

Privacy and security

- No Firebase, Crashlytics, Sentry, analytics, or telemetry of any kind - Audio recording never touches the network - INTERNET permission is used only for optional cloud transcription; no network requests are made until the user enters an API key - User-configurable transcription endpoint, compatible with OpenAI chat-completions API with input_audio content parts (self-hosted options available) - Caller verification on every AIDL call via UID and release-certificate SHA-256 pinning - adb-backup and cloud-restore disabled - Cleartext traffic blocked via network security configuration

Legal notes

Ukraine is a one-party consent jurisdiction. Recording your own phone conversations as a participant, for personal use, is legal and does not require a disclosure beep.

Users outside Ukraine should check their local law. Jurisdictions fall into three consent levels:

- Level 1 (one-party consent): the participant may record without notifying the other party. Includes Ukraine, the United States (federal level and about 38 states), the United Kingdom, Canada, Australia, Poland, and most of Latin America. - Level 2 (all-party with implied consent): notifying the other party at the start of the call is sufficient, as continued participation implies consent. Includes about 11 US states (California, Florida, Illinois, Maryland, Massachusetts, Montana, Nevada, New Hampshire, Pennsylvania, Washington, Connecticut) and commercial contexts in parts of the EU. - Level 3 (explicit consent required): a simple warning is not enough; explicit informed consent is required, in some cases in writing. Includes Germany, Austria, Belgium, and some strict privacy jurisdictions.

cally cannot play a beep or voice announcement into the other party's ear, because that is a platform-privileged operation. For Level 1 jurisdictions, no beep is required. For Level 2, a spoken warning at the start of the call works as implied consent. For Level 3, cally does not meet the requirement technically, and no in-app workaround exists; explicit consent must be obtained separately.

This is a general overview, not legal advice. For critical situations, consult a lawyer.

Requirements

- Android 12 (API 31) or higher. - Pixel 6+ (Tensor) or another modern Android device with a compatible audio HAL. - Shizuku installed and running (the community build by thedjchi/Shizuku is recommended for its auto-restart watchdog and persistent ADB pairing).

Setup

- Activate Shizuku via Wireless Debugging: Settings > Developer Options > Wireless Debugging > On, then in the Shizuku app choose "Pair via Wireless Debugging". - Grant Shizuku permission to cally on first launch. - Make a test call: recording starts on OFFHOOK and writes the tracks to the app's private recordings folder.

Interface language:

- Ukrainian

License

GNU General Public License v3.0 or later

What's new

v0.5.1Oct 5, 2026
  • Fixed
  • The "cally: permission needed" notification no longer appears after every call. The app was misreading its own unbind as a lost Shizuku permission, even though the permission was never revoked. - The home screen, onboarding and setup checks no longer show "Shizuku unavailable" in the pause between calls. - Fixed resource text not updating after changing the app language until restart, in snackbars and dialogs.
  • Changed
  • Auto-recording now reacts only to real SIM calls. VoIP calls from Discord, WhatsApp, Telegram and Signal no longer start it. Use the voice-note mode to record those manually.

About this version

Version
0.5.1 (7)
Size
3.4 MB
Requires Android
12
Target SDK
31
Architecture
x86_64, arm64-v8a, armeabi-v7a, x86
Downloads
48
Updated
Oct 5, 2026
Package
dev.lyo.callrec

Similar apps

Ratings & reviews

5.0·1 review
5.0
1 rating
  • 5
    1
  • 4
    0
  • 3
    0
  • 2
    0
  • 1
    0

Write a review

Tap a star to rate this app

Recent reviews

Showing 1 of 1