CLI tool
kitsumed/ShizuCallRecorder avatar
kitsumed/ShizuCallRecorder

ShizuCallRecorder: Non-Root Call Recording via Shizuku, With Trade-Offs

ShizuCallRecorder empowers ADB through Shizuku to record phone calls on non-rooted device!

1,490 stars58 forksKotlinGPL-3.0

At a glance

What is it?
ShizuCallRecorder uses Shizuku and ADB permissions to record both sides of phone calls on Android 12 and later without root. It is a narrow tool with hidden API dependencies and legal caveats.
Who is it for?
Adopt ShizuCallRecorder if you run Android 12 to 16, accept Shizuku as a dependency, and need a simple carrier-call recorder that avoids root. Skip it if you require third-party app recording, need reliability during concurrent calls, or cannot tolerate breakage from hidden APIs.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 11 days ago.
What is it written in?
Mainly Kotlin, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 14, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What Problem It Solves and Who It Is For

Most call recorders on Android either require root or use the accessibility service to capture audio from the speaker, which often misses the remote side. ShizuCallRecorder targets the gap: recording both sides of carrier calls on non-rooted devices. It does this by borrowing the permissions granted to the Android shell application through Shizuku. The intended audience is clear from the README: people who want a basic call recorder for phone carriers, not for VoIP or third-party apps. The author explicitly states the app is meant to be very basic and focuses solely on carrier call recording. If you use a standard phone dialer and want automatic recording without root, this project is aimed at you. It is not for users on Android 11, where support is limited and requires an unlocked screen, and it is not for people who want to record WhatsApp or Signal calls.

The Mechanism: ADB Permissions Through Shizuku

The core trick is that Shizuku lets an app act with the privileges of the ADB shell user, which has an extended permission list on Android. The README links to the Android source for the shell app manifest, showing the advanced permissions available. ShizuCallRecorder uses this to access call audio, which normal apps cannot do. The project also describes itself as an on-device wrapper for scrcpy-server, meaning it reuses the audio capture code from scrcpy. That server component is one of the main breaking points, along with Shizuku itself. The app does not run a persistent background process. Instead, it reacts to phone event changes, which keeps it lightweight and avoids constant notifications. This design is a trade-off: it saves battery but may miss transitions during complex call scenarios, as the README warns.

Getting It Running: Requirements and Initial Setup

You cannot just install the APK and start recording. The README is emphatic: you will need to do some initial configurations. The full steps are in the SUPPORT.md documentation under Installation & Configuration, which is not included in the provided material. The requirements are Android 12 or newer, with Android 11 having limited support, and Shizuku installed. The README recommends the thedjchi fork of Shizuku, not the original. You also need to enable USB debugging or wireless debugging to start Shizuku. The release page on GitHub provides the latest APK, and the app is also listed on F-Droid and IzzyOnDroid. The security toggles let you manage the Shizuku on/off state, which helps if other apps detect USB debugging or Shizuku. There is no mention of a command-line setup beyond following the documentation, so plan to read the support page carefully before attempting installation.

Codec Choices and Recording Features

Recordings can be saved in Opus or AAC format, which gives users a choice between compression and compatibility. The app records both sides of calls, and the README claims it should work with Bluetooth or a remote headset. Automatic recording is available with basic exclusion rules: ignore anonymous calls, ignore specific contacts, or ignore all contacts. These rules are simple, matching the project's stated philosophy of keeping the app basic. There is no mention of per-contact recording exceptions beyond the ignore list, nor any advanced scheduling. The app's focus on carrier calls means it does not handle third-party app audio, and the author is not opposed to adding such support but is not prioritizing it. For users who need more granular control, this will feel limiting, but for the target audience, it may be exactly enough.

Known Limitations and Failure Modes

The README is unusually candid about the app's fragility. It relies on hidden internal Android APIs, which means it can break with new Android releases or OEM modifications. The Android Tested Versions table lists Android 11 as limited, requiring an unlocked screen or it will crash, and Android 17 as unknown due to major ADB changes. Concurrent calls are a known failure point: if a second call arrives while one is active, or if you switch between held calls, the app may continue recording into a single file without separate notifications. Filter logic also has limitations because Android restricts real-time phone number access, so the app may rely on deprecated or unstable values for initial checks. This is not a tool for mission-critical recording. If you need reliable call logging for legal or business purposes, these caveats are serious.

Legal and Licensing Considerations

The license is GPL-3.0 with additional terms under Section 7. Those terms do not grant rights to trademarks, and the name ShizuCallRecorder and the package name com.kitsumed.shizucallrecorder are property of the copyright holder. This means you can use and modify the code, but you cannot reuse the name or package identifier without permission. The GPL choice is deliberate: the author states that no other FOSS call recording app for non-root devices exists, and they want derivatives to remain FOSS. The README also includes a strong disclaimer about call recording laws. It notes that you may need consent from all parties and that the app does not handle consent or inform anyone. Automatic recording may be illegal in some jurisdictions. This is not legal advice, but it is a clear warning that users must verify their local laws before enabling automatic recording.

Alternatives and How They Differ

The obvious alternative is a root-based call recorder like Call Recorder by Skvalex, which uses root access to capture the call stream directly. That approach works on many devices but requires rooting, which voids warranties and can fail on locked bootloaders. Another alternative is an accessibility-based recorder, such as ACR Phone, which records from the microphone or speaker and often struggles with the remote side of the call. ShizuCallRecorder's approach is different because it uses ADB permissions via Shizuku, avoiding root while still accessing the actual call audio stream. A third option is to use a VoIP app's built-in recording, but that only works for those specific apps. For carrier calls on non-rooted devices, ShizuCallRecorder appears to be the only FOSS option, which is why its fragility is a trade-off users must accept.

Editorial conclusion

Adopt ShizuCallRecorder if you run Android 12 to 16, accept Shizuku as a dependency, and need a simple carrier-call recorder that avoids root. Skip it if you require third-party app recording, need reliability during concurrent calls, or cannot tolerate breakage from hidden APIs. Before relying on it, verify your exact Android version against the tested table, read the SUPPORT.md installation steps, and confirm that automatic recording is legal in your jurisdiction. The project is honest about its fragility, so treat it as a tool for informed users, not a set-and-forget solution.

Official sources

  1. Official README
  2. Project repository
  3. Release notes
Community notes

Community notes