ShizuCallRecorder Brengt Telefoonopnames Terug Naar Stock Android Zonder Root
Weet je nog toen het opnemen van een telefoongesprek op Android zo simpel was als het downloaden van de eerste app die je in Google Play vond? Google heeft dit lek systematisch gedicht met elke nieuwe OS-versie. Eerst beperkten ze de microfoontoegang tijdens gesprekken, daarna blokkeerden ze de Accessibility API voor recorder-apps van derden. Als gevolg hiervan hebben moderne apparaateigenaren nu twee opties: smartphones kopen met ingebouwde fabrieksopnamefuncties of root-toegang verkrijgen.
Een nieuw project genaamd ShizuCallRecorder verscheen recentelijk op GitHub. De auteur vond een derde manier. Dit open-source hulpprogramma kan beide kanten van een gesprek opnemen op Android 12 en nieuwer zonder enige systeemwijzigingen.
Hoe Audio-capture Werkt Zonder Rooten
Het idee van het project is verfrissend eenvoudig. In plaats van te proberen de systeembeveiligingsmechanismen te omzeilen via speciale functies, maakte de ontwikkelaar gebruik van de Shizuku-infrastructuur.
Voor degenen die Shizuku niet kennen: het is een hulpmiddel voor het doorsturen van ADB-machtigingen naar het niveau van reguliere applicaties. Door te draaien als shell (com.android.shell) in Android krijg je privileges waar gewone software geen toegang toe heeft. De auteur van ShizuCallRecorder bundelde het binary scrcpy-server van het bekende scrcpy-hulpprogramma in de app.
Wanneer een inkomend of uitgaand gesprek plaatsvindt, start ShizuCallRecorder een geïsoleerde thread scrcpy-server via Shizuku. De server onderschept de audiostroom rechtstreeks van het systeem en voert deze terug naar de applicatie. Dit maakt het mogelijk om zowel je eigen stem als die van de beller netjes op te nemen, zelfs tijdens gesprekken via een Bluetooth-headset.
De workflow ziet er als volgt uit:
- De app ontvangt een telefoonstaat-wijzigingsevenement van
TelephonyManager. - Vraagt Shizuku om de interne service te starten.
- Een lokale instantie van
scrcpy-serverstart met audio-capture-vlaggen. - De stream wordt gecodeerd naar Opus of AAC en opgeslagen in het apparaatgeheugen.
- Wanneer het gesprek eindigt, stopt het proces.
De app heeft geen persistente achtergrondservice die geheugen verbruikt en de batterij leegtrekt. Hij wordt alleen gewekt wanneer hij wordt geactiveerd door een systeemgebeurtenis.
Instellingen en Functies
De functionaliteit van het hulpprogramma is bewust minimaal. De auteur waarschuwt expliciet in de documentatie dat ze niet van plan zijn om het project om te toveren tot een alles-in-één recorder voor messengers zoals Telegram of WhatsApp. De hoofdfocus ligt op reguliere gesprekken via de mobiele operator.
Onder de nuttige opties vind je:
- Audio-codecselectie tussen Opus en AAC.
- Automatische opname met uitsluitingsregels. Je kunt anonieme nummers negeren, specifieke contacten uit je telefoonboek, of alleen gesprekken van onbekende nummers opnemen.
- Automatisch Shizuku uitschakelen na een gesprek.
Het laatste punt is voor de beveiliging. Sommige bank-apps en zakelijke serviceclients reageren negatief op ingeschakelde ADB of een actieve Shizuku-service. Om te voorkomen dat andere software zijn eigen beveiligingsmechanismen activeert, kan ShizuCallRecorder zijn sessie zelfstandig beëindigen.
Valkuilen en Beperkingen
Overweeg de technische implementatiedetails voordat je installeert.
Ten eerste maakt het hulpprogramma gebruik van de privé-API's van Android en scrcpy-server logica. Op stock Android (Pixel, Motorola of AOSP ROM's) werkt alles normaal. Smartphonefabrikanten herschrijven echter graag de services voor systeemgespreksafhandeling. Er kunnen problemen optreden op firmware zoals MIUI, HyperOS of One UI.
Ten tweede is er een nuance bij parallelle gesprekken. Als een tweede gesprek binnenkomt tijdens een lopend gesprek en je overschakelt naar dat gesprek, wordt de opname voortgezet in hetzelfde bestand zonder scheiding.
Ten derde maken privacyregels in recente Android-versies directe toegang tot het nummer van de inkomende beller moeilijk. Hierdoor wordt de beller-ID soms met vertraging geactiveerd en kan het automatische filter een gesprek ten onrechte als anoniem behandelen.
De compatibiliteit met OS-versies ziet er als volgt uit:
- Android 11 wordt ondersteund met een beperking: het apparaatscherm moet ontgrendeld zijn voor audio-capture om te werken.
- Android 12, 13, 14 en 15 werken volledig.
- Android 16 en 17 zijn nog twijfelachtig vanwege aangekondigde wijzigingen in het ADB-subsysteem.
Hoe het Project Te Proberen
Het installatieproces is iets meer betrokken dan een typische app store-installatie, maar het is eenvoudig:
- Installeer en start Shizuku op je smartphone (de repository-auteur raadt aan om de fork van thedjchi te gebruiken).
- Download de nieuwste APK-bestand van de ShizuCallRecorder releases-pagina op GitHub.
- Verleen de app basisrechten voor toegang tot gesprekken en contacten.
- Keur het verzoek voor Shizuku-toegang goed.
ShizuCallRecorder is een goed voorbeeld van hoe het combineren van bestaande infrastructuur (scrcpy en Shizuku) een probleem kan oplossen dat tegen een muur van systeembeperkingen in Android is aangelopen. Het project is geschreven in Kotlin, gedistribueerd onder de GPL-3.0-licentie, en voert precies de taak uit waarvoor het is gemaakt.
Als je standalone telefoonopname nodig hebt zonder je apparaat te rooten, verdient dit project zeker een plaats in je werkende hulpprogramma-verzameling.
Gerelateerde projecten