簡訊清理:開源 Android 工具,把累積的簡訊用關鍵字整批刪掉

簡訊清理是 GitHub 上的開源 Android 工具,用關鍵字、日期或同號碼把累積的簡訊整批搜出來刪掉。拆開出貨安裝檔驗零廣告零追蹤的成色,弄懂刪除前要交出預設簡訊應用身分的機制、v1.7.0 前後收件落庫的差異,以及先匯出備份再刪除的安全順序。

用 AI 摘要這篇文章:

簡訊清理(GitHub 專案名 Sms)是一支只做一件事的 Android 開源工具:把手機裡堆了幾年、動輒數百上千則的簡訊,用關鍵字或號碼整批搜出來,一次刪掉。它不在 Google Play 上面,你要到 GitHub 的 Releases 頁面下載 APK 自己安裝;裝起來是繁體中文介面,沒有廣告、帳號註冊或付費項目。不過在按下批次刪除之前,有一件事必須先弄清楚:Android 規定只有「預設簡訊應用程式」有權刪簡訊,所以這支 App 刪東西之前,會要求你暫時把它設成預設簡訊 App,刪完再還原。這段交接期間收到的 MMS(多媒體簡訊)目前不會存進簡訊庫,這是它最需要留意的一條邊界。

裝它之前,先看清楚它從哪裡來

專案放在 GitHub 帳號 davidche1116 名下,授權走 MIT,倉庫裡有正式的 LICENSE 檔。截至 2026 年 9 月,它累積 417 個 star、20 個 fork;專案 2024 年 7 月建立、同月就發出第一個版本,到 2026 年 9 月的 v1.7.0 已經累積 25 個版本,維護中間有過一段長空窗,2025 年 8 月到 2026 年 8 月之間幾乎沒有動靜,之後恢復更新,最新版就落在這個月。

簡訊清理的 GitHub 儲存庫頁面,顯示 417 星與 MIT 授權標示Pin
GitHub 專案頁:25 個版本、MIT 授權、單一維護者,最新版 v1.7.0

維護品質也有一些看得出手工堅持的地方。倉庫的 CI 在每次推送都會跑靜態分析與單元測試,通過才打包 APK;README 有英文、簡中、繁中三份同步在顧;v1.7.0 的版本說明甚至附了完整的工具鏈升級清單,從 Flutter、Kotlin 一路寫到打包工具的更名緣由。以一人專案的標準看,這種文件紀律不算常見。

你在 Google Play、F-Droid、IzzyOnDroid 都搜不到它,三個商店的套件頁面目前都是 404。F-Droid 上架這件事在 2025 年 10 月有人正式提出(issue #9),作者當場答應,但對方的審查掃描要求補上 fastlane 中繼資料、並處理簽名檔裡的 DEPENDENCY_INFO_BLOCK 區塊,這件事至今沒有下文。合理的推測是簡訊權限群組加全應用程式查詢權限這種組合,本來就很難通過 Play 的溝通類權限白名單,作者也就沒有積極經營商店通路。

於是安裝來源只剩兩條:GitHub Releases 頁面的 APK 是正路;對岸推薦文常附的夸克雲端硬碟連結也還連得上,但第三方轉存不等於官方檔案,沒有理由多繞這一段。因為是側載安裝,Android 會跳未知來源警告,判斷風險的最低標準是認明 github.com/davidche1116/Sms 的 Releases 頁面,檔名格式像 sms-1.7.0+260905-android.apk。v1.7.0 的出貨安裝檔是 17.4MB,SHA256 為 c1e8e124c6085a673708e81715a5f1e5adfe6317c155b2a2a9d2a94d63d48544,安裝前可以自己比對。

刪除權的門票,是「預設簡訊應用」這個身分

Android 從 4.4 開始把簡訊的寫入與刪除權收歸「預設簡訊應用程式」獨有,一般 App 就算申請到讀取權也只能看,不能動。這是系統層的規則,任何想刪簡訊的工具都繞不開。

原始碼裡的實作很明確:每次你按單則刪除或批次刪除,程式都先檢查自己是不是預設簡訊 App,不是就只跳一句提示,不會動任何資料。繁中介面裡這句提示的原文是「需要在系統設定中將本應用程式設定為預設簡訊應用程式才能刪除簡訊」。設定的動作在 Android 10 以上走系統的角色管理(RoleManager)確認視窗,更舊的系統走系統的更換預設對話頁,兩種都是 Android 官方的標準流程,App 沒有辦法背景偷偷切換,一定會過你的手。

設成預設之後,新收到的簡訊就會交給這支 App 處理,這是整個工具最微妙的地方。v1.7.0(2026 年 9 月 5 日)之前,它沒有實作收件入庫的組件,清理期間收到的新簡訊不會存進簡訊庫。作者在 2025 年 7 月的 issue 答覆裡承認這件事,給使用者的建議是把要刪的刪完,立刻把預設應用換成原本那支。v1.7.0 補上了 SmsReceiver,身分成立期間收到的 SMS 會寫進系統簡訊庫,而且程式碼有判斷只在身分成立時入庫,避免跟系統 App 重複寫入。但 MMS 的接收器仍然是佔位性質,原始碼註解的意思很直白:完整的 MMS 解析與入庫超出這個應用程式的範圍,暫不處理。換句話說,你接管身分的這段期間,別人傳給你的 MMS 內容不會被保存,這條邊界到最新版都還在。

拆開出貨安裝檔,裡面只有 Flutter 的痕跡

「無廣告、無追蹤」這種話通常要打折聽,所以這件事可以直接驗:v1.7.0 的 APK 解開後,把全部字串裡的網址列出來,剩下的只有 Flutter 和 Dart 框架自己的授權文件連結(flutter.dev、dartbug.com 這類),沒有任何廣告、統計或崩潰通報服務的端點。依賴清單同樣乾淨:整支 App 除了 Flutter 本體,只用了 CSV 處理、權限申請、系統分享、簡訊讀寫這幾類套件,沒有分析 SDK;全部 Dart 程式裡也找不到任何對外請求的程式碼。以一支免費工具來說,這是很乾淨的成色:它不收錢,也不拿你的簡訊換錢。

不過權限面比功能面寬。它的 manifest 宣告了完整簡訊群組(發送、接收、讀取、WAP push、MMS),加上讀取通話狀態與聯絡人,這些都跟功能對得上;但 QUERY_ALL_PACKAGES 這條敏感權限也在清單裡,而整個專案沒有任何一行程式用到它。這比較像專案範本帶進來的殘留,對實際行為沒有影響(出貨包裡也驗不到對外請求),但權限潔癖的人可以 fork 一份、刪掉那行再自己打包,MIT 授權允許你這樣做。

還有一個小地方可以看出這是個人專案的手工感:桌面圖示下的 App 名稱固定是簡體的「短信清理」,因為 manifest 裡寫死了這個標籤;但進到 App 之後的介面文字會跟著系統語言走,繁中介面是完整翻過的,關鍵字、確定、刪除之類的按鈕都是道地繁中。

關鍵字過濾很樸素,「匯出所有簡訊」指的是眼前這份清單

過濾的實作就一行判斷:簡訊內文包含你輸入的字串就留下。大小寫視為不同,不支援正則表示式,一次只能給一個關鍵字。搭配的條件有日期區間、同號碼搜尋、同一張 SIM 卡搜尋。官方釋出的操作畫面裡,作者自己的手機上有 912 則簡訊,輸入電信業者名稱就能把整批促銷通知圈選出來,這是它最典型的用法。對「把某家電信或某家銀行的帳單通知一次清掉」這種需求夠用;對「模糊比對各種變體詐騙話術」就不要期待了,它就是最樸素的子字串比對。

簡訊清理 App 官方介面截圖,左為簡訊清單、中為關鍵字過濾、右為刪除確認視窗Pin
官方倉庫釋出的操作畫面:912 則簡訊先以關鍵字過濾,再批次刪除

匯出功能要做個校正:README 的功能清單寫著一鍵匯出所有簡訊,但原始碼匯出的其實是當前畫面上的清單。你有過濾條件時,存下來的就是過濾後的結果;要完整備份,先把關鍵字清空再重查一次。檔案是十個欄位的 CSV(id、threadId、SIM、號碼、內文、已讀、時間等),走系統分享選單存出去,存完 App 會把暫存目錄整個清掉,不在你沒同意的地方留副本。要注意 CSV 是純文字,驗證碼、銀行通知、一次性密碼全部躺在裡面,備份檔本身要收好。

批次刪除的確認視窗會顯示數量,繁中原文是「是否刪除這 N 則簡訊」,清單超過 3,000 則時會先跳提醒。提醒不是擋你,按了確定還是會刪,只是要你自己想清楚。還有,刪除是一則一則循序處理,早期有使用者反映速度慢,上千則的清單要給它一點時間。

你在 2025 年看到的推薦文,講的是舊版

網路上流傳的中文推薦文章大多寫於 2025 年 3 月前後,當時的版本停在 v1.5.x。對照這 18 個月的更新紀錄,工具本身前進了不少:小米機種讀取不全的問題在 2025 年 8 月結案(作者歸因是系統限制,解法見下一節),日期篩選跟著 2025 年 7 月的 v1.6.0 出貨,2026 年 9 月的 v1.7.0 一次補了收件入庫組件、多輪過濾後的灰畫面修復,還把權限申請流程換成新作法。

對讀者最有感的斷代只有一條:拿 2025 年的舊文對照今天這版,刪除期間新簡訊不落地這個最大的風險已經修掉一半,SMS 會入庫、MMS 仍不會。舊文時代作者建議刪完立刻把預設應用換掉,這句保命口訣現在降級成好習慣:照做仍然對,不做也不至於丟簡訊,只有 MMS 還是例外。

不丟訊息的用法順序

照原始碼的設計與作者自己給的建議,完整的安全流程是這樣走:

  • 先給簡訊讀取權限,用關鍵字或日期把目標範圍查出來,看清單是不是你真的要動的那批。
  • 把過濾條件清空重查一次,匯出完整 CSV。刪掉就是永久刪掉,App 沒有垃圾筒也沒有復原鍵;這份 CSV 是你自己查閱用的存證,App 並不提供匯入還原的功能。
  • 到系統設定把簡訊清理設成預設簡訊應用,Android 10 以上會出現角色確認視窗。
  • 執行批次刪除,讓它跑完。
  • 打開你原本的簡訊 App(Google Messages 或手機內建那支),把預設身分交還給它。App 裡的還原按鈕本質上是幫你啟動系統簡訊 App,它會依序嘗試內建的 com.android.mms 與 Google Messages,實際的切換仍要在那邊完成,別按完就以為沒事。

台灣的適用性也值得一提。這支 App 的設計原點是對岸電信業者的促銷簡訊生態,但台灣的垃圾簡訊與詐騙簡訊問題同樣存在,超商點數、物流取貨、假投資話術,累積速度不會比較客氣。關鍵字過濾對「固定發送者」最好用,例如把常見的促銷關鍵字或某支號碼分批清掉;怕誤刪的話,同號碼搜尋可以先看清某支號碼下到底累積了哪些內容再決定。至於不想讓本門號一直進行銷名單的人,也可以從源頭減量,註冊一次性服務時改用 臨時號碼接收驗證碼,少留一個把手機號餵給行銷系統的機會。

會撞牆的幾種情況

項目條件
系統版本Android 8.0 以上(minSdk 26)
裝置架構僅 arm64-v8a,32 位元與較舊裝置無法安裝
介面語言繁中、簡中、英文三種,跟系統語言走
授權MIT,可自行修改與散布
價格免費,無廣告無內購
下載來源僅 GitHub Releases(側載),無 Play/F-Droid

小米與鴻蒙的相容性要特別留意。作者在 issue 的答覆指出,小米系統會把通知類簡訊(驗證碼、銀行通知)擋在預設授權之外,讀取清單會缺一大塊,要到權限設定裡找到通知類簡訊手動授權,這部分是系統層的限制,不是工具的 bug。華為鴻蒙 3 先前也有搜尋結果不全的問題,那部分後來查出是程式缺陷,v1.7.0 已經修掉。所以真正要留心的品牌是小米,拿到台灣版小米機上的實際狀況也建議先小範圍試。

誤刪沒有救。Android 的簡訊刪除走系統簡訊資料庫,刪了就是永久消失,這也是把 CSV 備份放在流程前面一步的原因。MMS 的缺口前面提過,清理期間有人傳照片或長文轉 MMS 給你,內容不會保存,重要對話的場合把身分交接的時間縮到最短。

整體看下來,它把「批次刪簡訊」這件小事用最透明的方式做出來了:原始碼全公開、出貨包零廣告零追蹤、MIT 授權隨你改,代價是你要理解 Android 的預設應用規則,並接受側載安裝。如果你的手機簡訊已經累積到影響尋找,願意照上面的順序走一遍,到 GitHub 的 Releases 頁面下載最新版 APK 就能開始;手機裡簡訊不多、或用的是 32 位元舊機的人,看到這裡繼續用原本的整理方式就好。至於想把訊息「保存」而非「刪掉」的蘋果使用者,需求不同,iMessage Exporter 那類匯出工具才是對的方向;Android 手機想用電腦端批次管理的,可以另外看看 PlainApp 這類開源管理工具

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 1500

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Share to...