blocker 深度盤點:雙控制器架構與廣告組件精準打擊

系统工具 ·约 9 分钟 ·記筆記的貓:團子

blocker 是什麼

blocker 是一款專為 Android 打造的應用組件管控工具,它的核心定位不是「手機清理大師」那種泛濫的同質產品,而是面向對應用行為有精細管控需求的用戶,提供四大組件(Activity、Service、BroadcastReceiver、ContentProvider)的啟用/禁用權限。非 root 裝置透過 Shizuku 授權通道獲得 shell 級權限即可運作,root 裝置則能直接使用 PM 或 IFW 控制器,不依賴任何外部服務。

blocker 應用首頁截圖

它的能力面涵蓋:廣告 SDK 組件精準識別與打擊、雙控制器架構切換(PackageManager 直接寫系統 XML / Intent Firewall 攔截意圖)、規則匯入匯出(兼容 MyAndroidTools 格式)、應用目錄與 SDK 組件可視化瀏覽。最新版本 2.0.4044 安裝包僅 6.63M,輕量級的設計思路貫穿全程。

安裝

blocker 採用標準 Android APK 分發,安裝流程本身並無特殊之處——允許系統安裝未知來源應用後直接點擊安裝包即可,完整的版本變更記錄與安裝說明可在 blocker下載 頁面查閱。真正的安裝後決策在授權通道的選擇,這是 blocker 獨有的安裝體驗,直接決定後續使用的穩定性與功能上限。

三種路線可供選擇:其一,非 root 裝置走 Shizuku 授權——需要先在開發者選項中開啟無線除錯,透過配對碼與 IP:Port 完成 Shizuku 配對,再在 blocker 設定頁中選擇 Shizuku 模式即可開始使用;其二,已 root 裝置可直接選用 PackageManager 或 Intent Firewall 控制器,完全不依賴 Shizuku;其三,root 裝置還能組合 IFW+PM 雙通道,獲得最徹底的攔截效果。

需要特別注意的是,Shizuku 服務無法開機自啟——這是 Android 系統的硬限制,每次重啟手機後必須手動打開 Shizuku 應用點擊「啟動」按鈕,再回到 blocker 下拉刷新應用列表才能恢復正常運作。若嫌麻煩,考慮給裝置 root 是一勞永逸的解決方案。

blocker 設定頁控制器選擇截圖

核心能力盤點

雙控制器架構:PM vs IFW 的原理與取捨

blocker 最核心的設計亮點在於同時提供兩種控制器路線,使用者可根據裝置條件與需求自由切換。

PackageManager(PM)路線透過 Android 系統 API setComponentEnabledSetting() 或 pm disable 命令行,將組件的啟用狀態直接寫入 /data/system/users/0/package_restrictions.xml 系統文件。效果是立竿見影的——點擊組件開關後狀態立即生效,系統層面就知道該組件被禁用,任何應用嘗試啟動都會拿到「組件不可用」的結果。PM 路線的另一個優勢在於規則持久化,重啟手機後規則保留,且支援匯入匯出。但 PM 路線有一個固有的、無法在 blocker 層面解決的缺陷:應用可以捕获 ActivityNotFoundException 等異常後,在自身進程內調用 API 把被禁用的組件重新啟用。大廠應用(字節、騰訊、百度系)與 SDK 集成較多的應用幾乎都有這種自恢復邏輯。

Intent Firewall(IFW,意圖防火牆)路線則完全不同——它不修改組件的系統狀態,而是在 /data/system/ifw/ 目錄下寫入規則文件,對進入應用的 Intent 進行攔截。應用看到的組件狀態在系統層面仍是 enabled,但任何啟動該組件的 Intent 都會被 IFW 擋下。這種方式的好處是應用無法察覺到規則的存在,自然也不會嘗試自恢復——這正是 IFW 路線解決 PM 路線固有問題的關鍵。

IFW + PM 組合模式則在兩種路線之上疊加雙層攔截,適合已 root 且對大廠應用作戰的場景。推薦長期固定使用一種控制器,頻繁切換可能導致 IFW 規則在切回 PM 時被清掉,造成組件狀態顯示混亂。

廣告組件精準打擊

blocker 對廣告的處理不是模糊的「應用級禁用」,而是深入到 SDK 組件粒度的精準打擊。這是它區別於同類產品的核心競爭力。

以激勵影片廣告為例,完整的組件鏈條包含兩個環節:負責預加載廣告物料的後台 Service,以及負責播放影片的 Activity。只關閉其中一個都無法真正斷絕廣告——Service 關了但內存中已加載的物料還能播放一兩輪,Activity 關了但後台仍在不斷預加載偷跑流量。實戰中需要先定位應用的廣告 SDK 類型(穿山甲、AdMob、優量匯、Mintegral 等),找到對應的 Service 與 Activity 組件名稱,兩個同時關閉後殺掉應用重開才能驗證效果。

各主流 SDK 的激勵影片組件名稱已成為 blocker 用戶社區流傳的實戰手冊:穿山甲對應 AdRewardService + TTAdActivity,AdMob 對應 AdMobRewardAdActivity,優量匯對應 GDTRewardService + GDTRewardVideoActivity。這些知識點在 blocker 的使用過程中被頻繁驗證,形成了一套關於廣告組件識別與打擊的實戰語系。

規則匯入匯出與持久化

PM 路線的規則以 XML 格式存於系統文件,支援匯入匯出且兼容 MyAndroidTools 格式;IFW 路線的規則則以 JSON 文件形式存於 /data/system/ifw/ 目錄,同樣具備跨裝置遷移能力。這意味著你在一台裝置上調好的組件規則,可以直接導出後轉移到另一台裝置,避免重複勞動。切換控制器時 blocker 會自動將舊控制器的規則「翻譯」為新控制器的形式,無需手動重建,更多規則管理的進階技巧可在 blocker官網 的指南中找到。

短板與侷限

客觀而言,blocker 也存在幾個值得使用者知曉的侷限。PM 路線的組件復活問題是 Android 系統層面的設計決定,blocker 無法從根本上解決——應用管理自身組件狀態是合法行為,PM 路線只是改寫了系統層面的狀態記錄。Shizuku 無法開機自啟的同樣是 Android 安全策略的限制,非 root 用戶每次重啟手機都要手動啟動 Shizuku 是繞不開的摩擦。此外,IFW 路線在極罕見情況下可能存在繞過(某些應用通過非 Intent 機制啟動組件),此時 IFW+PM 組合模式能提供額外保障。最後需要注意的是,從 IFW 切回 PM 時 blocker 會清掉 IFW 規則的影響,某些在 IFW 模式下被攔截的組件可能在切換後重新變為 enabled。

誰該用 blocker

如果你符合以下幾類人群的特徵,blocker 值得成為你 Android 裝置的常駐工具:

root 極客與系統調控愛好者——這是 blocker 的主力用戶群。他們享受對裝置每一個組件的精細管控能力,root 後可以直接使用 PM/IFW 雙通道而不依賴 Shizuku,規則持久化且開機自動生效,零摩擦的體驗與深度的調控權限完美契合這類用戶的需求。

非 root 但厭惡應用廣告的普通用戶——透過 Shizuku 授權即可使用,雖然需要處理 Shizuku 開機自啟的問題,但相比同類產品的模糊禁用,blocker 的廣告組件精準打擊能做到「只關廣告不斷功能」——關閉 Service 停止後台預加載、保留 Activity 讓激勵影片獎勵仍可領取,這種精細的取捨能力對廣告厭惡者來說彌足珍貴。

對應用行為有好奇心的探索者——blocker 讓你能直觀看到每個應用有多少組件、哪些 SDK 集成在裡面、哪些組件在偷偷喚醒其他應用。這種可視化的能力本身就是理解 Android 應用生態的一扇窗口,對學習移動開發或系統優化的用戶來說是無價的參考工具。

本文為個人基於網路公開資料整理編寫,非官方內容,僅供學習交流參考;軟體版權歸原作者所有,請支持正版;使用過程中遇到問題請查閱官方管道,本文不承擔任何責任。

團子還試過這些