MExplorer 從你的 Mac 送出些什麼
簡短的回答:使用統計、當機報告和更新檢查。沒有檔案名稱,沒有檔案內容,也沒有任何形式的路徑。
永遠不會離開你 Mac 的東西
- 檔案名稱、路徑、檔案內容。永遠不會,沒有例外。
- 你安裝的 app、掃描結果、清理紀錄。它們存在 app 自己支援檔案夾裡的一個 SQLite 資料庫中,就在你的機器上。
- 你的工作內容。任何掃描結果、app 清單或清理紀錄都不會離開這台機器——即使在一次授權啟用的呼叫裡也不會。
這不只是一句承諾。允許送出的事件清單在原始碼裡是一個封閉型別:每個參數不是列舉,就是計數,或是容量級距。沒有任何欄位接受自由文字,所以根本沒有地方能塞進一條路徑。每次建置都會跑的一道關卡,只要有人加了字串參數,或者遙測模組碰了檔案系統,就會變紅。
確實會離開你 Mac 的東西
1. 使用統計(Firebase Analytics)
| 事件 |
一併送出 |
| 開啟 app |
介面語言代碼 |
| 開啟某個畫面 |
哪個畫面(清理、重複檔案、磁碟分析…) |
| 清理完成 |
掃描深度、勾選了幾組、釋出空間的級距 |
| 權限步驟的結果 |
已授予或已略過 |
| 關閉功能導覽 |
看完了,或者停在第幾頁 |
| 授權已啟用 |
什麼都不帶 |
容量以級距送出(「小於 1 GB」「1–10 GB」「大於 10 GB」),而不是真實數字。一個精確數字在多次工作階段中反覆出現,就開始成為某一台特定機器的指紋;級距則不會。
Firebase 會自行附加更多內容,這不在我們的控制之內:app 版本、macOS 版本、機型、由你的 IP 位址推斷的國家/地區,以及每次安裝一個識別碼。
2. 當機報告(Firebase Crashlytics)
當 app 當掉時:呼叫堆疊、app 版本、macOS 版本、機器架構、介面語言。不含你當時開著的檔案名稱——報告根本不走那條路。
3. 更新檢查(Sparkle)
下載一個列出各版本的 XML 檔;若有更新版本,再下載更新套件。伺服器看到的就是任何網頁伺服器都看得到的:IP 位址、時間、macOS 版本和 MExplorer 版本。安裝前會以 EdDSA 簽章驗證這個套件。可在「設定 → 更新」裡關閉。
4. 授權啟用(自 1.0.3 起)
只有當你主動在這台 Mac 上啟用金鑰,或者打開使用你金鑰的 Mac 清單時才會發生。沒有心跳:app 從不按排程呼叫授權伺服器,首次啟用之後更是完全不再呼叫。
- 你的授權金鑰——用來查到你的授權。
- 一個機器碼——用來數你方案裡的 Mac。它是硬體識別碼的單向雜湊,不是序號:伺服器從不保存你 Mac 的真實識別碼,這個碼也無法和任何其他人的紀錄互相比對。
- 你 Mac 的名稱(「Công 的 MacBook Pro」)——好讓你分辨該移除哪一台。這是唯一新增的個人欄位,沒有它,那份清單就只是一行行雜湊。
- macOS 版本和 app 版本——用於支援和相容性統計。
保存期限:啟用紀錄和事件紀錄在 24 個月後刪除。授權和訂單紀錄保留更久,因為它們是購買憑證。
離線時不會有任何功能被鎖住。你 Mac 上的授權是永久的,而且離線驗證——就算授權伺服器永久關閉,一台已啟用的 Mac 也不會察覺。
如何關閉
使用統計和當機報告預設開啟,目前沒有關閉開關。這是一個商業決定,而且與我們自己規格書裡訂下的「opt-in」要求相牴觸。我們把它寫在這裡,而不是閉口不談。
- 在防火牆上攔截:MExplorer 只與
*.google-analytics.com、*.crashlytics.com、firebaselogging.googleapis.com、MOBILUCK 的更新伺服器通訊,以及在你啟用授權時與 licence.code247.ai 通訊。
- 使用一個沒有 Firebase 設定的建置。缺少設定檔的建置什麼都不會送出——這是程式碼的預設行為,不是隱藏選項。
完全取用磁碟權限是用來做什麼的
macOS 要求這項權限才能讀取 ~/Library,各個 app 的資料都放在那裡。沒有它,三項主要功能——依 app 統計佔用、已移除 app 的殘留、快取清理——都無法運作,因為作業系統在門口就把它們擋下了。
這項權限只讓 MExplorer 讀取。它不會用來蒐集任何要送出的東西:從你磁碟上讀到的一切,永遠不會進入上面那些事件。
自己動手查證
你不必聽信這一頁。Firebase 會把事件攢在本機資料庫裡,按它自己的節奏送出,所以看一次網路連線通常什麼都看不到——這並不表示 app 什麼都沒送。想看排隊中的內容,就在你自己的機器上打開這個佇列:
sqlite3 ~/Library/Application\ Support/Google/Measurement/google-app-measurement.sql \
"SELECT name, count(*) FROM events GROUP BY name"
你會看到的正是上表裡的那些事件,外加 Firebase 自己的幾個自動事件。你不會看到任何檔案名稱或路徑,因為它們根本沒有到那裡去的路。
更新於 2026 年 9 月 1 日。在那天之前,MExplorer 除了更新檢查什麼都不送,這一頁當時也是這麼寫的。我們在同一天改了軟體,也改了這一頁,而不是讓舊的承諾繼續掛著。
本文件以 MExplorer 網站所使用的每一種語言發布。提供譯文是為了讓你能用自己的語言讀懂條款;當譯文與英文在含義上有出入時,以英文版本為準。這不影響你在居住國依法享有的權利。