The first non-root FOSS call recorder app for Android 11+! ShizuCallRecorder empowers ADB through Shizuku to use an advanced list of permissions given to the shell application. Latest URL.
It can also be seen as an on-device wrapper for scrcpy-server.
This application is intended to be a very basic call recorder that focuses solely on call recording for phone carriers.
I am not 100% opposed to adding support for third-party apps, but this is not the main focus and I want to keep the application simple. See contributing for more information.
- Records both sides of phone calls (incoming and outgoing)
- Should work even when using Bluetooth or a remote headset
- Security toggles to manage Shizuku on/off state
- An attempt to reduce the potential attack surface introduced by Shizuku
- Helps with apps that detect / yells at you when USB Debugging or Shizuku is enabled
- Automatic call recording option with basic exclusion rules:
- Ignore anonymous calls
- Ignore specific contacts
- Ignore all contacts
- Saves recordings with Opus or AAC codec.
- The app runs only on phone event changes, no persistent background process and notifications
- Android 12 or more recent*. Look at the Android Tested Versions table.
- Android 11 has very limited support. Only works when the device screen is unlocked due to a workaround to an OS issue..
- Shizuku* (we recommend thedjchi fork)
Android Tested Versions
I cannot extensively test all of these versions, so issues may arise. This table may change as more testing by other users is done.| Android Version | Supported | Note |
|---|---|---|
| 11 | Limited | Unlocked screen required, else it crash |
| 12 | Yes | |
| 13 | Yes | |
| 14 | Yes | |
| 15 | Yes | |
| 16 | Yes | |
| 17 | Unknown | Not yet released, has major ADB changes |
[*]: This application uses the server binary of scrcpy to record audio. It is possible that new Android versions may not be supported by the latest version yet. As such, this application will not be able to support newer or latest Android versions unless a release is made that supports them. The same can also be said about Shizuku.
Before continuing, please ensure you can meet the requirements that were stated before this section.
Please follow the installation instructions in the SUPPORT documentation under Installation & Configuration.
You can download the latest version here.
Please see the contributing guide.
The software is licensed under the GNU General Public License, version 3 (GPL-3.0).
- This License does not grant any rights in the trademarks, service marks, or logos of any Contributor.
- Misrepresentation of the origin of that material is prohibited, and modified versions of such material must be marked in reasonable ways as different from the original version. This is consistent with section 4 and 5 of the GPLv3 ("Modified Versions").
- Specifically, this license does not grant you permission to use the name, trademarks, or logos associated with the project for your own purposes (e.g., uploading to app stores) unless granted explicit permission by the copyright holder ("Original Author").
- As example, the name "
ShizuCallRecorder" andcom.kitsumed.shizucallrecorderare the property of the copyright holder kitsumed.
I decided to use the GPL-3.0 license, as no other FOSS call recording app for non-root devices exists yet, and I want to ensure that any potential future alternatives derived from this project remain FOSS.
Recording phone calls may be subject to complex and varying laws in different countries and jurisdictions. For example, you may need to ensure you have consent from all parties before recording conversations. The developers and contributors are not responsible for any misuse or legal consequences arising from the use of this application. You can learn more on Wikipedia at: Telephone call recording laws.
If you are legally required to inform or ask someone for consent before recording, please note that the application DOES NOT handle this for you. In some cases, certain features, like automatic call recording, may not be legally allowed. It is your responsibility to ensure compliance with applicable laws. This is not legal advice. Please consult a legal professional for guidance regarding your specific situation.
Caution
Due to the evolving Android ecosystem and varying hardware (OEMs), this software is subject to non-deterministic behavior:
- Concurrent Calls: The app may fail to detect transitions (e.g., while in a call, a second incoming call arrives, or switching between held calls). In these scenarios, the application may continue to record audio into a single continuous file without separate notifications or new notifications prompts for subsequent callers.
- Filter Logic Limitations: Due to Android privacy-driven restrictions on real-time phone number access, the app relies on fetching a deprecated value when it receives a phone state updates. We are not aware of other rational workaround for standard apps (alternatives are restrictive or incompatible). This initial check is used to decide whether to automatically record based on your settings. In cases where we receive the value too late, receive invalid data, or receive no data, the application is likely to consider the call as "anonymous" in its decision process. This should not affect the final file name since we can read the device call logs after the call ended.
- Unforeseen Failures: Future OS updates, bugs, design choices in the app, or undocumented system behaviors may cause the app to start and/or continue recording, or fail, in a unexpected manner.
Because deterministic behavior of the application cannot be guaranteed, it is your responsibility to:
- Ensure the recording behavior and your application settings aligns with your intent and the specific requirements in your jurisdiction.
- Monitor the app's behavior on your specific device. If you observe any behavior that does not comply with your local laws, you must immediately cease any activity that constitutes a legal infraction (For example, hanging up the call, deleting the audio files, etc).