命令列工具
kitsumed/ShizuCallRecorder avatar
kitsumed/ShizuCallRecorder

ShizuCallRecorder:透過 ADB 和 Shizuku 實現免 root 通话录音

ShizuCallRecorder 透過 Shizuku 使 ADB 能夠在非 root 裝置上錄音!

1,490 個 Star58 個 ForkKotlinGPL-3.0
GitHub

秒懂

它是什麼?
一個 Kotlin 编写的通话录音應用,透過 Shizuku 使用 ADB,在 Android 12 及更高版本上无需 root 即可录制通话双方的声音。
適合誰用?
ShizuCallRecorder 是一個专注的工具,透過 Shizuku 路由 ADB 来录制通话双方的声音,无需 root。README 明确說明了代价:隐藏 API 可能在新版 Android 上失效,行為並不总是确定的,录音法律由使用者自行负责。
可以商用嗎?
可以,但有條件。GPL-3.0 是 copyleft 授權:如果你散布包含它的軟體,就必須以同一授權公開該軟體的原始碼。只在內部執行、不對外散布,則不會觸發這項義務。
還在維護嗎?
有在維護。儲存庫最近一次提交在 11 天前。
用什麼語言寫的?
主要是 Kotlin(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月14日)與我們的分析,不構成法律意見。

開源專案深度解析

基于 shell 權限的免 root 录音應用

README 將 ShizuCallRecorder 描述為 Android 11 及以上版本中首個免 root 的自由开源通话录音應用。它透過 Shizuku 使用 ADB,以利用 Android 赋予 shell 應用的高级權限。專案使用 Kotlin 编写,儲存庫快照显示有 1137 個星标、40 個 fork 和 16 個开放問題。README 還將其视為 scrcpy-server 的设备端封装。

基于 shell 權限的免 root 录音應用:針對 kitsumed-shizucallrecorder-deep-analysis 的這項內容,實際檢查時應記錄輸入、輸出與錯誤訊息,並把觀察結果與檔案中的限制逐項對照。

應用录制的內容和執行方式

根據 README,ShizuCallRecorder 录制通话双方的声音,包括来电和去电,並且在使用蓝牙或远程耳机時也應能工作。應用只在电话事件变化時執行,因此没有常驻後台进程,也没有後台通知。录音以 Opus 或 AAC 编码保存。作者表示希望保持應用简单,只专注于电话运营商的通话录音,README 指出对第三方應用的支援不是主要方向。

應用录制的內容和執行方式:針對 kitsumed-shizucallrecorder-deep-analysis 的這項內容,實際檢查時應記錄輸入、輸出與錯誤訊息,並把觀察結果與檔案中的限制逐項對照。

Shizuku 开關和排除规则

README 列出了用于管理 Shizuku 开關状态的安全开關,这被描述為减少 Shizuku 引入的潜在攻击面的一种尝试,也有助于應对检测或提示 USB 调试或 Shizuku 已启用的應用。自动录音选项带有基本的排除规则:忽略匿名来电、忽略特定聯系人、忽略所有聯系人。

Android 版本要求和已測試版本

README 中說明的要求是 Android 12 或更高版本以及 Shizuku,並推薦使用 thedjchi 分支。Android 已測試版本表將 Android 11 列為有限支援,需要解锁屏幕否则会崩溃,Android 12 到 16 為支援,Android 17 為未知,因為它尚未發布且有重大的 ADB 变更。README 警告作者无法对所有版本进行广泛測試,表格可能随着更多使用者的測試而改变。

隐藏 API 和不确定性行為

README 包含一個重要警告:该應用使用 Android 隐藏内部 API,容易在新版 Android 發布或 OEM 修改源码時出現問題。主要的两個依赖是 scrcpy-server 和 Shizuku。README 還记录了通话场景中的不确定性行為。在並發通话期间,應用可能无法检测到状态轉換,並可能继续將音频录制到单個连续檔案中,而不会為後续来电者發出新通知。由于 Android 出于隐私原因对即時电话号码访问的限制,过滤逻辑可能依赖于已弃用或不稳定的值,如果值到达太晚、无效或缺失,應用很可能在决策过程中將通话视為匿名。未来的系統更新、错误、設計選擇或未记录的系統行為可能导致應用以意外方式开始或继续录音。

安裝路径和法律免责声明

README 警告需要进行一些初始設定,並指向 SUPPORT 文檔中的'安裝與設定'部分。最新版本可從 GitHub releases 页面下载。README 還包含法律免责声明:录音电话可能受不同国家和司法管辖区复杂多变的法律约束,開發者和貢獻者对任何滥用或法律後果概不负责。應用不处理同意或通知各方的問題,使用者有责任确保合规,README 建议咨询法律专业人士。它還要求使用者监控應用行為,並立即停止任何构成法律违规的行為。

GPL-3.0 许可證和商标条款

该軟體根據 GNU 通用公共许可證第三版(GPL-3.0)授权,並附有许可證第 7 节下的额外条款。许可證文本授予复制、分發和修改軟體的自由,如果愿意還可以收费,同時要求修改版本必须标记為已更改,並且接受者获得相同的自由。额外条款规定,许可證不授予任何貢獻者的商标、服務标志或标志的权利,'ShizuCallRecorder'和'com.kitsumed.shizucallrecorder'是版权所有者 kitsumed 的财产。README 解释說選擇 GPL-3.0 是為了确保任何未来從该專案衍生的替代品保持开源。许可證摘录指出,這個自由軟體没有保修。

试用時應把电话类型、音频路由和系統版本分开记录。先按 SUPPORT 文檔完成 Shizuku 授权,再用一通来电和一通去电检查录音檔案是否同時包含双方声音;切換蓝牙或远程耳机後重复一次,观察 Opus 與 AAC 檔案能否正常播放。自动录音的排除规则要用匿名号码、指定聯系人和普通聯系人分别验證,不能只看界面上的开關状态。並發通话是单独的風險场景,應检查是否出現一個连续檔案,以及後续通话是否被错误合並。Android 11 的解锁屏幕条件、Android 12 到 16 的支援表,以及 OEM 对隐藏 API 的改动,都應写进设备记录。這個專案适合愿意承担 Shizuku 和系統兼容性維護的個人使用者,不适合需要法律同意提示、稳定录音保證或第三方通话平台支援的场景。

還要确认录音檔案的保存位置、编码選擇和權限提示是否與设备實際行為一致。检查电话状态快速变化、保持通话後再接来电、拒接来电和重启 Shizuku 等路径,分别记录是否产生新檔案。由于專案依靠 scrcpy-server 與 Shizuku 两個外部环节,升级任一环节都可能改变结果;版本升级應保留一条旧版本录音作為对照。

设备核验還應覆盖锁屏後电话接通、應用被系統回收、Shizuku 暂停以及重新授权。对每种状态记录是否创建檔案、檔案時长是否合理、两路声音是否都能听见。过滤规则使用真實的匿名来电和測試聯系人時,要把电话号码可见性和判断時机分开记录。README 已說明号码读取受 Android 隐私限制,因此“未识别”不等于“必然應排除”。保留原始录音和版本信息,才能判断問題来自應用、系統還是 scrcpy-server。

对于重视隐私的使用者,Shizuku 开關可以在不录音時關闭,但这会影响下一次自动录音是否及時启动。安裝 SUPPORT 文檔中的初始設定後,先完成手动录音,再开启自动选项。專案没有承诺跨 OEM 的一致结果,也没有替使用者处理同意通知。

第二次核对時,應把指令输出、设备或執行時版本和产生的檔案一起保存。只确认界面出現並不能說明功能完成,输入、处理路径和输出都要能对應到 kitsumed 專案文檔 的描述。对失败情况记录错误位置和可重复的最小条件,避免把網路、權限、依赖缺失和專案逻辑混為一谈。材料没有提供的兼容性、性能或安全保證,继续保留為未說明。

編輯結論

ShizuCallRecorder 是一個专注的工具,透過 Shizuku 路由 ADB 来录制通话双方的声音,无需 root。README 明确說明了代价:隐藏 API 可能在新版 Android 上失效,行為並不总是确定的,录音法律由使用者自行负责。專案采用 GPL-3.0 许可證,並附有额外的商标条款。

官方來源

  1. Official README
  2. Project repository
  3. Release notes
社群筆記

社群筆記