我們並不能在每一臺裝置上都輕鬆獲取到 root 許可權,這背後的原因也多種多樣:裝置廠商根本就沒有開放 bootloader 解鎖(如華為)、解鎖需要遭受不可逆的功能損失(如索尼和三星)、解鎖後會丟掉保修等等。

求穩並不是一件壞事,畢竟選擇 Android 並非就意味著一定要選擇「折騰」。但在沒有 root 許可權的大前提下,想要為壓制毒瘤、保護隱私做些什麼還有可能性嗎?

答案自然是肯定的。

adb 啟用的分類和典型用例

很多 Android 使用者都或多或少接觸過 adb(Android Debug Bridge,Android 除錯橋) ,作為一個相對高階的開發和除錯工具,我們可以藉助 adb 進行一些平時難以接觸到的隱藏操作,同樣達到壓制毒瘤、保護隱私的目的。而那些原本需要 root 許可權才能使用的最佳化工具大多也在此基礎上進行發揮,給出了基於 adb 的非 root 模式。

Tips:有關 adb 的資訊,可以檢視這份 官方文件,在 Windows 上安裝 adb 也可以檢視這份 教程。

以 adb 來進行隱藏操作,達到系統原本達不到的目的,實現方式其實有許多種。為了方便介紹,在這裡我先簡單分成以下三類:

A類:透過 adb 啟動一個 。sh 指令碼進行提權,從而獲得極高的許可權,對 app 持有生殺大權。這一類因其難度較低,能實現的功能也比較全面,所以相對普遍。缺點是重啟後就需要重新進行 adb 提權操作。

B類:透過 adb 將一個 app 任命為「裝置管理員」,為你掌管裝置許可權,許可權也比較高。重啟後不會失效,但是任命的步驟繁瑣、在一些國產 ROM 上

有相容問題

C類:透過 adb 賦予 app 部分敏感許可權,許可權較低,獲得的能力也極為有限。但好在步驟不繁瑣、重啟也不會失效。

相比 root 模式「直接授權就能用」的爽快,這三類實現方式都需要使用 adb 進行一些操作,多了些繁瑣,但也少了一些風險。雖然它們各自有一些優缺點長短處,但也架不住我們三駕齊驅,共同運用、相互彌補。那些對系統自帶的 app 管理不滿意的朋友,可以在下面的方案中多多嘗試,各取所需。

不用 root 也能最佳化手機?為此我嘗試了這十款應用

PS:圖中所列的壓制毒瘤的功能,從力度上來說可近似於按從小到大排列。額外功能和價格等資訊可以參看此 Google Sheets 。

A類:以 Shizuku Manager 為例

提到A類啟用方式,除了兇名遠揚的黑閾,大家比較熟知的可能就是來自人氣開發者 Rikka 的 Shizuku Manager。與 Riru 系列的思路相似,Shizuku Manager 也是「佔坑後提供 API 分配授權」的典範。如果需要使用多個A類授權的 app,比如冰箱、App Ops 等,那麼先啟用 Shizuku Manager ,再透過它對其它 app 進行授權會是一個比較省心的方案。

方式:將手機連上電腦,輸入對應指令

adb shell sh /sdcard/Android/data/moe。shizuku。privileged。api/files/start。sh

即可。其餘 app 的啟用指令各不相同,但一般都以 。sh 結尾,會在引導介面給出。

注意事項:不要改動手機 USB 預設選項、不要關閉開發者選項或者是 adb 除錯,這些將會導致授權失效。

花式玩法:市面上有售許多「黑閾啟用器」之類的小玩意,為了嚐鮮我也買了一個。想在沒有電腦的情況下使用,除了啟用器以外還需要一個 USB-A 口電源和一條 A2C 之類的資料線,使用起來也相當繁瑣。還有就是一些A類授權的應用在提權完畢後,可以代替電腦上的終端來「執行指令」,給其它A類、B類、C類進行授權。比如黑閾在完成提權後,可以啟用 Shizuku Manager,甚至簡單輸入 reboot 來重啟。

B類:以小黑屋為例

冰箱和小黑屋都是凍結類最佳化 app 中的翹楚,我也都付費各自體驗過一陣。相比冰箱的老牌持穩,我想講講用心創新的小黑屋。小黑屋同時支援單獨使用A類啟用和B類啟用,也支援使用冰箱、Shizuku Manager 等啟用。付費後還能新增靜默安裝等實用功能。

方式:進入手機的設定——賬號,

將所有賬號都刪除

,同時關閉多使用者、應用雙開、訪客模式等功能。將手機連線到電腦,輸入對應指令

adb shell dpm set-device-owner web1n。stopapp/。receiver。AdminReceiver

即可。成功後重啟,將會看到「手機被小黑屋管理」(可自定義)。

注意事項:國產廠商以及三星可能修改了許多 Android 的底層機制,導致使用這個具有風險。請先檢視 小黑屋的文件 和 冰箱的文件 。

不用 root 也能最佳化手機?為此我嘗試了這十款應用

花式玩法:小黑屋的B類啟用可以透過 root 達成,免去了刪除賬號再加入的麻煩,適合有能力獲取臨時 root 許可權、但為了保持 OTA 等原因而不長期持有許可權的玩家。小黑屋的衍生品許可權狗也主打控制 App Ops 。許可權狗除了依靠 Shizuku Manager 啟用外,還可以透過已經成為裝置管理員的小黑屋啟用,如此一來

控制權限的功能就算重啟也不會失效

C類:以綠色守護為例

綠色守護的鼎鼎大名,我想沒有哪個玩家還沒聽說過。就算是非 root 模式,綠色守護也能起到一定的輔助最佳化作用,其中個人覺得最為突出的便是嗜睡模式,強制手機在熄滅屏幕後進入 Doze ,可以起到顯著節電的效果。

類似功能的還有來自國外著名核心、應用開發者 Franco 的 Naptime。BBS 是 BetterBatteryStats 的簡稱,主要作用是檢測 CPU 的 Deep Sleep 時長、Alarms 以及 Wakelock 喚醒鎖的發生情況,幫助玩家抓住幕後的喚醒兇手,可謂是神探一名。

方式:大體上來說,還是複製貼上 adb 命令,不過這些命令的作用不是啟用指令碼或是任命裝置管理員,而是賦予某個 app 某個敏感許可權罷了。

以 綠色守護 為例,

連線手機至電腦後,依次在終端輸入:

adb -d shell pm grant com。oasisfeng。greenify android。permission。WRITE_SECURE_SETTINGS

adb -d shell pm grant com。oasisfeng。greenify android。permission。DUMP

adb -d shell pm grant com。oasisfeng。greenify android。permission。READ_LOGS

adb -d shell pm grant com。oasisfeng。greenify android。permission。GET_APP_OPS_STATS

之後可以強行停止一次綠色守護再執行,確保許可權生效。

不用 root 也能最佳化手機?為此我嘗試了這十款應用

Naptime、BBS 的授權過程也類似,app 的引導介面也附上了相應的 adb 指令。

花式玩法

:C類啟用勝在持久,重啟後依舊有效,可以在A類啟用失效後依舊起到一些輔助最佳化作用。BBS 在 Play 商店需要付費,但是卻可以在 XDA 論壇 裡免費獲取。

例項演示,以三星健康喚醒為例

前篇文章 提到我將三星 Galaxy Watch Active 從 iPhone 換綁到了 Pixel 2 上,獲得更多功能的同時,我也有了一些煩惱:與手錶繫結,Pixel 安裝了 4 個三星 App,我明顯感覺手機的待機耗電增加。為了一探究竟,我首先派遣前面提到的追兇神探——BBS。將 Pixel 連線到電腦,輸入引導介面的三條 adb 指令後,我成功地激活了 BBS。

不用 root 也能最佳化手機?為此我嘗試了這十款應用

將 Pixel 使用一段時間後,我帶著一絲好奇開啟 BBS,在兩個小時的待機中,我消耗了 4% 的電,這個成績不是很糟糕,但是也不符合 Pixel 的一貫水平。首先檢視重要指標 Deep Sleep,如果在沒有充電的情況下,熄屏狀態下 Deep Sleep 佔比不夠高甚至是沒有,那麼手機的待機續航成績一定不好看。BBS 同時也給出了另一個指標,就是熄屏喚醒時長,同理。其次檢視第二個重要指標 Partial Wakelocks 區域性喚醒鎖,這裡會顯示當前安裝 app 的喚醒鎖次數和時長,顯然三星健康的名為 PedometerLib 時長有些偏多。看來三星健康會利用手機的感測器進行(我不需要的)計步,對步數資料進行補充。最後檢視第三個重要指標 Alarms,一看三星健康居然在過去的兩小時不到裡,喚醒了

242

次。

仔細進行思索:三星健康並不直接和手錶同步,只負責匯入被同步到 Watch Active Plugin 中的資料;三星健康也並不需要一直計量步數;我沒有使用三星健康的社交功能。因此三星健康並不需要常駐我的後臺,我需要壓制。我首先想到的是 Android Pie 自帶的後臺限制(並沒有用,我已經開了),然後使用綠色守護強行停止。但是很快強行停止會被另外的三星 app 喚醒。最後適合我的方案有黑閾的激進模式、以及各家的凍結/停用。

不用 root 也能最佳化手機?為此我嘗試了這十款應用

三星健康只是一個簡單的例項,它其實也並沒有很過分,只是它的耗電從我的角度來說太過多餘。但當越來越多的毒瘤爬滿你的 Android 手機,而系統自帶的管理功能還在「防君子不防小人」的時候,你該如何抉擇呢?面對「仰天大笑出門去,手機半路就沒電」的窘境,你是佛系一把多充電,還是毒瘤堆中驚坐起、流暢使用又一年呢?