Appnest

JemRec

Call recorder for unrooted Android: both sides, no root, no companion app

Android · v0.8 · Yevhen Yemchynskyi

About JemRec

A call recorder for unrooted Android. One APK. No root, no Shizuku, no companion app, no computer: the phone sets itself up.

How it works. Android's voice-call audio source carries both sides of a call, but reading it takes permissions no ordinary app can hold. The shell user that an ADB session runs as holds them. JemRec embeds an ADB client and pairs with the phone's own Wireless debugging over 127.0.0.1, the same six-digit pairing a laptop would do, with both ends on the same handset. Nothing leaves the phone.

The ADB session lasts a few seconds, though debugging itself stays on (see below). In it the app launches a small shell-privileged daemon, then closes the session. The daemon watches the call state and writes each call to a file; the app is not on the audio path at all, and holds no microphone permission. Every connection between the two is authenticated in both directions over a token that never crosses the socket.

Recordings are Opus in an Ogg container, in the phone's standard Recordings/JemRec folder, where any file manager or music app can open them. Automatic mode records every call; ask-first mode records nothing until you tap Record on the start-of-call notification.

Setup takes two things by hand, once: turn on Developer options, then USB debugging and Wireless debugging, and type the pairing code into JemRec's notification. The pairing survives reboots. The recorder does not: after a restart it is rebuilt automatically the next time Wi-Fi is around, provided the phone lets JemRec start on its own. Settings has a card that opens the right screen for that. Wi-Fi is needed only to rebuild the recorder, never to record.

What stays on. USB debugging and Wireless debugging stay on for as long as JemRec is installed, and JemRec turns them back on if they go off: the recorder cannot run without them. While they are on, a computer that has been paired with the phone can connect to it on the same Wi-Fi. Android shows a notification while debugging is on; setup asks whether JemRec should hide it, and Settings can change the answer. To turn debugging off for good, uninstall JemRec first.

Requirements. Android 12 or newer, and a phone whose audio hardware hands over the voice-call source. That varies by manufacturer and cannot be worked around: some phones give both sides, some give one, some give silence. Both sides have been recorded on an Honor Magic 8 Pro, a Samsung Galaxy S20 and a OnePlus on LineageOS. Settings → Diagnostics →…

More communication for Android