Releases: madkongo/CallVault
Release list
CallVault v2.4.5
2.4.4 was published briefly and pulled the same day after a false "a call was cut off" message; 2.4.5 is 2.4.4 plus that fix, two new languages, and a vivo tip.
Added
- New languages — Persian (فارسی) and Arabic (العربية), with right-to-left layout throughout (Settings → Language).
- Transcripts beside recordings — optionally save the transcript, notes and summary as a
.mdfile next to the audio, same name, same folder — so copying the folder to a PC carries the text too (off by default). - More filename templates — contact- and number-first orders, to group a PC folder by who the call was with.
- Export/import settings — save your preferences to a file and restore them on a new phone (device-specific setup is left out).
Changed
- vivo tip — when only your side of an app call records, CallVault points you to vivo's own "In-app call recording" setting instead of blaming the other app.
Fixed
- Fixed — no more false "a call was cut off" message for a call that actually recorded fine.
CallVault v2.4.4-rc1
Test build — not a release. The in-app updater will not offer it; install it by hand over 2.4.3. When the final 2.4.4 is published, the in-app updater will offer it to this build as usual.
- App calls record on vivo and iQOO phones. 2.4.3 fixed the other person's side; this build also opens your own microphone the way vivo's Android needs, so WhatsApp, Telegram and other app calls record both sides.
- Phone calls on vivo use CallVault's own recording again, including Resilient recording, instead of falling back to the slower backup path.
- An app call that could not start recording no longer says the other app blocked it.
Everything else is 2.4.3. If something is wrong, turn on Settings → Debug → Debug logs, make one app call, and share the log from Settings → Debug.
CallVault v2.4.3
There was no 2.4.2 release — only two test builds — so this release is 2.4.3, and people on those test builds are offered it.
New
- Record only the contacts you choose. For incoming and outgoing phone calls separately: Settings ▸ Recording ▸ Incoming (or Outgoing) calls ▸ Record only selected contacts. Only the contacts you pick are recorded automatically; every other call shows the Record button instead. A hidden number can't match, so it isn't recorded automatically.
Fixed
- App calls stay in sync (#41). In WhatsApp and other app calls the other person no longer drifts later and later through the call.
- Typing a note works properly. The note field keeps every letter, saves a moment after you stop, and says Saved.
- No "Call in progress" notification left behind after a call. A leftover is replaced by "Ready to record calls", and tapping one simply clears it instead of coming back or showing an error.
- With Resilient recording on, every call records. On some phones every second phone call was lost.
- App calls record on vivo and iQOO phones.
- Model downloads no longer end in "The download was damaged". A download that went wrong is cleaned up and fetched again, and a finished one is checked and installed.
- If you installed a test build, you are offered the final update.
Full details in CHANGELOG.md.
CallVault v2.4.2-rc2
Test build — not a release. The in-app updater will not offer it; install it by hand over 2.4.1 or 2.4.2-rc1.
- No "Call in progress" notification left behind after a call. Sometimes the call's notification stayed in the shade after the call ended; swiping it brought it back and tapping Record showed "An unexpected error occurred". A leftover is now replaced by "Ready to record calls" within a couple of seconds, and tapping one simply clears it. (New in this build.)
- App-call recordings stay in sync (#41). The two sides of an app call are combined by the moment each was captured, so the other person no longer drifts later through the call.
- Typing a note works properly. The note field keeps what you type, saves a moment after you stop, and says Saved.
Everything else is 2.4.1. If something is wrong, turn on Settings → Debug → Debug logs, reproduce it once, and share the log from Settings → Debug with a line about what you saw.
CallVault v2.4.2-rc1
Test build for issue #41 — not a release. The in-app updater will not offer it; install it by hand over 2.4.1.
- App-call recordings stay in sync. The two sides of an app call — your microphone and the other person's voice — are now combined by the moment each was captured, not by the order they arrived, so a stalling microphone no longer pushes the other person later and later through the call.
- Typing a note works properly. The note field keeps what you type, saves a moment after you stop, and says Saved.
Everything else is 2.4.1. Please turn on Settings → Debug → Debug logs before the call, make one app call of a minute or more, and share the log from Settings → Debug together with what you hear.
CallVault v2.4.1
Added
-
A search line at the top of Recordings, Transcripts and Summaries. On Recordings, type a name and
the list narrows to that contact, with the names of contacts you have recordings with offered as you
type; it replaces the Contact filter chip. On Transcripts and Summaries, type a word and only the calls
in which it was said remain, each showing the words around the match. Words match from their start, so
the list narrows as you type. The magnifier in the header, and the search sheet it opened, are gone —
the search is on the page itself. -
An option to start recording an outgoing call only when the other person answers. Off by default,
under Settings → Recording → Outgoing calls. With it on, an automatically recorded phone call you
place begins at the pickup instead of at the dial, so the file holds the conversation and not the
ringing, and a call nobody answers leaves no file. App calls too, when the app shows a call timer on
its notification — WhatsApp does; an app that shows none is recorded from the start as before. If the
phone cannot say whether the call was answered, it is recorded from the dial as before — the option
never costs a call. -
Shizuku recordings get speaker labels (#38). A Shizuku recording is already stereo — you on one
side, the other person on the other — but CallVault had no way to read that, so transcripts came out
as unattributed text. It now works out who spoke from the file itself while transcribing it, so the
labels appear on the transcript exactly as they do in built-in mode. Recordings made before this
update get them too: open one and choose Transcribe again.
Fixed
-
App-call recordings on Android 14 and earlier now carry the contact's name. The name comes from the
calling app's own call notification, and on Android 14 the way the system describes that notification
differs from Android 15 and later — CallVault only understood the newer form, so every WhatsApp, Telegram
or Signal recording on an Android 14 phone was named by time alone. Both forms are read now, and if the
notification is not there yet at the instant the call starts, CallVault looks again a few seconds in. -
An update in Shizuku mode no longer costs you the next call. Installing an update left the old
recorder running with a path to an app file that no longer existed. It kept answering, so nothing
looked wrong — and the next call recorded nothing, with no error, until the app was next opened. The
old recorder is now properly retired as part of the update, and a fresh one is ready before any call
arrives. As a backstop, every recorder CallVault talks to is asked which app file it was started from,
and one started from an app that has since been replaced is retired on the spot. If a call is being
recorded at the moment an update lands, that recording is left alone. Present in every earlier version
with Shizuku mode, including 2.4.0. -
App-call recordings now report how their two sides lined up (#41). A user hears the other person
a beat early in WhatsApp recordings. The two sides of an app call are captured separately and
combined, and until now nothing measured how well; with debug logs on, every app call now logs the
offset between the two sides as it goes, everything that can shift one side (a silenced or re-taken
microphone, a dropped or late chunk), and where the sound was playing — earpiece, speaker or
Bluetooth. Diagnostics only; the recording itself is unchanged. If you hear this, turn on debug logs,
make one call, and share the log from Settings → Debug. -
A transcript line shared by both speakers is cut where the speaker changes. Whisper decides where a
line ends by the sentence, not by who is talking, so when one person answered the other inside a single
line the transcript could show neither name for it, or one long unbroken paragraph. A line is now split
at a pause where the other person takes over, and the pieces of one person's turn are shown as one row
each — one row per turn — instead of one row per sentence. -
A transcript that came out in the wrong alphabet is decoded again. With the language pinned to
Hebrew (or Arabic, Russian, Chinese) a short call could still come back in English on some phones —
the language setting is a strong hint to the recogniser, not a guarantee. When the text comes back in
Latin letters under a non-Latin pin, the recording is transcribed again with different decoding
settings and the first clean result is kept. Recordings longer than three minutes are not retried. -
A transcript line could go unlabelled even though only one person spoke in it. On some phones a
voice is faintly picked up on the other side's channel as well, and those moments were being read as
both people talking at once — enough of them and the line was left without a name. A speaker is now
named when they are the only one who spoke alone in that line.
CallVault v2.4.0
Added
-
A home screen, with Recordings, Transcripts and Summaries as their own places. Transcripts and
summaries used to be things that happened to a recording; now each has a page you can open, and the app
reopens wherever you were last. -
Audio can be brought in from outside. Pick a file from the Transcripts page, or share one to
CallVault from any other app — a WhatsApp voice note, for instance, which no file picker can see.
CallVault asks what you want it for:- Import and transcribe keeps the audio and adds it alongside your calls.
- Transcribe only gives you the words and deletes the audio once the transcript is safely saved.
-
A transcript has a page of its own to be read on, with a note you can write against it, and a badge
on the row when the words are all that is left. -
Row menus and multi-select. Every transcript and summary has a ⋮ menu — delete, share, save — and a
long press picks several at once. -
A notification when a transcription finishes, and one when it does not.
-
A way to join the Telegram group from the home screen.
Fixed
-
Restarting the phone could leave it not recording, silently and for good. Recovery decided it could
not act, and the one thing that would have let it act was the thing it was refusing to do. -
Setup could not be completed on Android 17. Android 17 stopped telling apps whether Developer
options and USB debugging are on, so CallVault believed they were off and sent people to a settings
screen they had already visited, with no way forward. It now works this out for itself instead of asking
Android. Existing users on Android 17 were also told, wrongly, that their setup was broken and that
calls had not been recorded when they had. Reported by @teou1 and @siongui in #40. -
Shizuku is started again when CallVault has to stop it. CallVault sometimes restarts Android's
debugging service, which takes any running Shizuku server down with it — including one other apps were
using. It now puts it back, and says so. Reported by @johnwick113 in #39. -
The "CallVault cannot record right now" warning now goes away by itself once recording is working
again, instead of staying until the next restart. -
The USB debugging switch in Settings no longer flips itself back off after you turn it on.
CallVault v2.3.0
Mostly fixes for what people reported after 2.2.0, plus two new things: calls that were really one conversation can be merged into one recording, and a bug report can now be saved as a file on the phone.
Added
-
Calls that were really one conversation can be merged into one recording. A call drops and you ring each other back; to you that was one conversation, but it arrives as two recordings. Open the ⋮ menu on the call that started it, choose Merge with another call, and tick the ones that continued it — they join in the order you tick them, numbered as you go, so you can see the order before committing to it. It works for any number of calls, and a merged call can be merged again.
The join is lossless and takes a moment: nothing is re-encoded, so the merged recording contains the original audio exactly. The transcript, marks, tags, star and note come across with it, timed to the merged recording, and a mark is dropped at each seam so the joins are somewhere you can jump to.
-
And they can be un-merged again, from the same menu, getting every original call back with the transcript and marks it had. This works because the merged recording physically contains the originals, so taking it apart is an exact cut rather than a reconstruction — which is what makes it safe for a merge to leave you with one recording instead of two copies of everything.
By default the calls a merge was made from are removed, and the dialog says so before you confirm. Settings ▸ Storage ▸ Keep the original calls keeps them on the phone as well; un-merging works the same either way.
-
A bug report can be saved as a file. Share now has Save next to it, which opens Android's own save dialog so you choose the folder and the name. Both halves of the report go into one text file. The report used to exist only in CallVault's private storage, where no file manager — and no
adb pull— can reach it, so the only way to get it off the phone was to send it through another app. Asked for by mirror176 in #28 and #29.
Changed
-
The first-run notice no longer holds you back with a timer. Continue used to stay disabled for five seconds whether or not you had read anything. A forced wait does not make anyone read; it makes them wait, and it charged the time again on every reinstall and every phone someone set up. The notice still has to be scrolled to the end and acknowledged — both of which are the reader's own doing. Reported by mirror176 in #27.
-
What's New says one line per change instead of several paragraphs. The newest release is written out as a scannable list, releases you skipped keep their headline so you can see you missed them, and a link goes to the full release notes on GitHub, where being thorough costs nobody anything. Reported by mirror176 in #27, who had to "parse through" the 2.3.0 note.
-
A journal of the first setup is now always kept, and can be shared. The debug log is off until you switch it on, so the first minutes after an install — when setup either works or does not — were recorded nowhere, and by the time anyone asks for a log the moment has passed. This one is small, narrow and always there: only the steps that get recording working (finding the ADB service, connecting to it, starting the recorder, the grants and the modes), never anything about a call, its audio or its text. It is capped, it stops once a recorder has connected, and Settings ▸ Debug can read, share and delete it whether or not logging was ever switched on.
Fixed
-
A transcription you started no longer posts a "your phone may get warm" notification. You had just confirmed a dialog saying the same thing. Automatic transcriptions — nightly, or after a call — still show it, since nothing else tells you they are running. A run you started that is expected to take eight minutes or more keeps it too: without it Android may stop the job at ten minutes, and a stopped transcription starts again from nothing. Reported by mirror176 in #31.
-
Automatically recorded calls no longer flash "Press to start recording". The recording notification was posted before the service had acted on the call, so for a moment it offered a Record button for a call that was already being recorded — and did the same again as the recording ended. Recording was never affected. Reported by mirror176 in #31.
-
A recorded call shows one notification instead of two. While a phone call was being recorded, "Ready to record calls" stayed in the shade next to the recording notification — saying the app was ready to record while it was already recording. The recording notification now takes its place for the length of the call, and "Ready to record calls" comes back when it ends. Reported by the maintainer while checking #31.
-
Transcription progress no longer stalls at about three quarters and then jumps to the end. The figure between whisper's own reports was drawn on a curve that read 75% at the moment the job was expected to finish, so a quarter of the bar was never used. It now follows the clock to about 90% by the expected finish, and keeps creeping if the job runs long. Summaries get the same fix. Reported by mirror176 in #33.
-
Rotating the phone no longer looks like it restarts a transcription. The percentage is predicted between whisper's own reports, and the clock behind that prediction lived on the screen showing it — so turning the phone threw it away and the figure fell back to 1% and climbed again. The transcription itself was never affected and always finished on time, but there was no way to tell that from the outside. The figure now belongs to the run producing it, and a rotation cannot touch it. Reported by mirror176 in #34.
-
Deleting a call now stops its transcription. The run used to carry on to the end, producing a transcript of a recording that no longer existed — and because one transcription runs at a time, everything queued behind it waited for a result that was thrown away. Deleting the recording now ends its run, and the queue moves straight on. Reported by mirror176 in #35.
-
The microphone indicator no longer stays on after a call. When Android tears a capture down mid-call, CallVault rebuilds it and the recording continues whole — but Android can leave the torn-down capture's microphone marker running, so the green dot stayed lit with nothing recording. Stopping the old capture turned out not to clear it; replacing the background recorder does. A few seconds after a call ends, CallVault now checks for exactly that and, if nothing is recording and the recorder can be brought straight back, replaces it. It never does this during a call, and if the recorder could not come back it leaves the dot rather than risk the next call.
-
CallVault no longer switches off a debugging switch you turned on yourself. Wireless debugging that CallVault enabled is still switched off when it is done with it — but a switch you flipped is yours, and it is left alone. It used to be taken away within a second, with a note suggesting you disable USB debugging instead, which costs you the thing you wanted. Reported by mirror176 in #30, who uses it to reach his phone from a PC.
-
Turning on off-Wi-Fi recording says what actually failed. Every failure produced the same sentence — "connect to Wi-Fi once, then try from Settings" — including on a phone already on Wi-Fi with Wireless debugging on. It now distinguishes Wireless debugging being off, the phone's debugging service being unreachable, and the local port not coming back. Reported by mirror176 in #30.
-
A bug report can be shared without switching logging on first. Share was only offered once a log file existed, so reporting anything meant enabling logging, reproducing, disabling it again — and the most useful half of a report needs none of that. The report always carries the configuration header (mode, transport, which switches are on, whether the recorder is connected) and the setup journal when there is one, so it is now offered whenever logging is off.
-
The log viewer can actually be read. It was a small popup that cut every line off at the right edge, gave no sign it could scroll, opened at the oldest lines and closed when the phone was turned. It now fills the screen, wraps long lines — a switch turns that off for one line per row with sideways scrolling — shows scrollbars, opens at the newest lines and stays open when you rotate.
-
The transcript no longer changes size as you read it. It opened at about half the screen with the playback controls out of sight, grew as you scrolled, collapsed again when the phone was turned and opened full the next time — because its height followed however much of the text had been drawn so far. It is now a stable near-full sheet with the controls where you left them. Reported by mirror176 in #27.
-
Cancelling a transcript deletion puts the transcript back. The sheet closes before the confirmation so the dialog is not sitting on top of the text it is asking about, but saying no then left you back at the list. Reported by mirror176 in #27.
-
Updating the app no longer leaves it unable to record the next call. Installing an update stops CallVault's background services and the privileged recorder that captures the audio, and until now they were only brought back if the update had also cost the app a permission. If it had not — the usual case — nothing restarted them, and a call arriving in that window woke the app, started a recording and produced no file. Found the hard way: a thirteen-minute call, eight minutes after an update, with the call right after it recording perfectly.
-
A line spoken after a long pause is no longer timestamped as if it came before it. Tapping a line in a transcript jumps to that moment in the call — except after a silence, where it could land more than ten seconds early, on the wrong speaker. Reported by a user who noticed it on a call that w...
CallVault v2.2.0
A release about the parts of using a call recorder that are not the recording: finding a call again, controlling one while it is happening, and being told when something has quietly stopped working.
Added
- Mark a moment while you are talking. A button on the call notification drops a bookmark where you press it; the recording's page shows them as chips that play from there. Phone calls and app calls alike, and the marks are positions in the saved audio, so they stay correct even if you paused.
- App calls have controls at all. Until now a WhatsApp or Signal recording in progress could be started and finished with nothing to stop it. It now has its own notification with pause, resume, stop and mark.
- An app call interrupted by a phone call stays one recording. Take a cell call in the middle of a WhatsApp call and come back, and it used to arrive as two files. The app recording is now held open and continues into the same one.
- Choose which apps get recorded. Every app is on by default; switch one off and its calls are never recorded.
- Stars and tags. Star the calls worth keeping and filter to them; label calls with your own words. A tag can be renamed or removed everywhere at once.
- Export a transcript as text, Markdown, SRT, VTT or JSON.
- Search covers summaries and notes, not only the spoken words.
- An optional app lock, using your phone's own unlock.
- Housekeeping beyond age. Cap how much space recordings may take, or discard very short ones. All off by default, and a starred recording is never deleted automatically.
- CallVault says when it has stopped working — if recording cannot start after a reboot, or recordings stop reaching Google Drive. Both used to be silent.
- An optional BCR-compatible details file, so tools built for BCR such as bcr-gui can read your calls' details. Off by default.
- Long calls can be transcribed, in passes rather than all at once.
Changed
- One Share button in a transcript instead of Copy, Share and Export. Long-press a line to copy that sentence.
- The summary model is smaller — 2.62 GB instead of 3.46 GB, same model.
- Offline recording states its limitation up front. A reboot clears it, and it returns as soon as the phone joins any Wi-Fi network for a few seconds — no internet needed, any access point will do.
Fixed
- Nothing appears in your storage folder until a recording is complete. Syncthing, FolderSync and Nextcloud were backing up files that were still growing.
- An app call no longer loses its speaker separation.
- A transcript with malformed text no longer takes the app down.
- Transcription and summarisation no longer stop when the screen goes off.
- Call details survive on Android 13.
CallVault.apk — 65,959,113 bytes
SHA-256 01d99fc3648aee53f694f34f379c946bcbcb63235d535098e776385240758a6b
Signed with the same certificate as every previous release, so this installs over an existing copy without uninstalling.
CallVault v1.5.8
Recording could stop for good, silently, and nothing said so
A phone was found with the recorder dead: no daemon, no recordings, and a status card still showing
nothing wrong. It had stayed that way through the app being force-quit and a full restart. Every
minute CallVault tried to bring the recorder back, waited 45 seconds, gave up, and tried the identical
thing again — a loop it could never escape, because an endpoint to connect to genuinely existed and
connecting to it simply hung.
Three changes, each of which alone would have shortened the outage:
- Retrying the same thing is no longer the whole strategy. After two failed attempts CallVault stops
trusting that connection: it tears it down, rebuilds it, and switches Wireless debugging on so there is
a second route in. Doing exactly this by hand was what revived the affected phone. - The "is there a way in at all" check was wrong in a way that could strand a phone with no route
back. Having USB debugging switched on was treated as sufficient, but it only keeps Android's debug
service running — it offers nothing for CallVault to connect to. - The failure is no longer invisible. Home now says "Recording is down" when recovery keeps
failing, instead of leaving you to discover it. It stays quiet when the recorder is merely idle, which
is normal and healthy.
A phone call could be mistaken for an app call
Carrier calls are no longer treated as VoIP, which could suppress the recording of a real call.
Full detail in the CHANGELOG.