不用Root也能優(yōu)化手機(jī)?為此我嘗試了這十款應(yīng)用
我們并不能在每一臺(tái)設(shè)備上都輕松獲取到 root 權(quán)限,這背后的原因也多種多樣:設(shè)備廠商根本就沒有開放 bootloader 解鎖(如華為)、解鎖需要遭受不可逆的功能損失(如索尼和三星)、解鎖后會(huì)丟掉保修等等。
求穩(wěn)并不是一件壞事,畢竟選擇 Android 并非就意味著一定要選擇「折騰」。但在沒有 root 權(quán)限的大前提下,想要為壓制毒瘤、保護(hù)隱私做些什么還有可能性嗎?
答案自然是肯定的。
adb 激活的分類和典型用例
很多 Android 用戶都或多或少接觸過(guò) adb(Android Debug Bridge,Android 調(diào)試橋) ,作為一個(gè)相對(duì)高級(jí)的開發(fā)和調(diào)試工具,我們可以借助 adb 進(jìn)行一些平時(shí)難以接觸到的隱藏操作,同樣達(dá)到壓制毒瘤、保護(hù)隱私的目的。而那些原本需要 root 權(quán)限才能使用的優(yōu)化工具大多也在此基礎(chǔ)上進(jìn)行發(fā)揮,給出了基于 adb 的非 root 模式。
Tips:有關(guān) adb 的信息,可以查看這份 官方文檔,在 Windows 上安裝 adb 也可以查看這份 教程。
以 adb 來(lái)進(jìn)行隱藏操作,達(dá)到系統(tǒng)原本達(dá)不到的目的,實(shí)現(xiàn)方式其實(shí)有許多種。為了方便介紹,在這里我先簡(jiǎn)單分成以下三類:
- A類:通過(guò) adb 啟動(dòng)一個(gè) .sh 腳本進(jìn)行提權(quán),從而獲得極高的權(quán)限,對(duì) app 持有生殺大權(quán)。這一類因其難度較低,能實(shí)現(xiàn)的功能也比較全面,所以相對(duì)普遍。缺點(diǎn)是重啟后就需要重新進(jìn)行 adb 提權(quán)操作。
- B類:通過(guò) adb 將一個(gè) app 任命為「設(shè)備管理員」,為你掌管設(shè)備權(quán)限,權(quán)限也比較高。重啟后不會(huì)失效,但是任命的步驟繁瑣、在一些國(guó)產(chǎn) ROM 上有兼容問(wèn)題。
- C類:通過(guò) adb 賦予 app 部分敏感權(quán)限,權(quán)限較低,獲得的能力也極為有限。但好在步驟不繁瑣、重啟也不會(huì)失效。
相比 root 模式「直接授權(quán)就能用」的爽快,這三類實(shí)現(xiàn)方式都需要使用 adb 進(jìn)行一些操作,多了些繁瑣,但也少了一些風(fēng)險(xiǎn)。雖然它們各自有一些優(yōu)缺點(diǎn)長(zhǎng)短處,但也架不住我們?nèi){齊驅(qū),共同運(yùn)用、相互彌補(bǔ)。那些對(duì)系統(tǒng)自帶的 app 管理不滿意的朋友,可以在下面的方案中多多嘗試,各取所需。
PS:圖中所列的壓制毒瘤的功能,從力度上來(lái)說(shuō)可近似于按從小到大排列。額外功能和價(jià)格等信息可以參看此 Google Sheets 。
A類:以 Shizuku Manager 為例
提到A類激活方式,除了兇名遠(yuǎn)揚(yáng)的黑閾,大家比較熟知的可能就是來(lái)自人氣開發(fā)者 Rikka 的 Shizuku Manager。與 Riru 系列的思路相似,Shizuku Manager 也是「占坑后提供 API 分配授權(quán)」的典范。如果需要使用多個(gè)A類授權(quán)的 app,比如冰箱、App Ops 等,那么先激活 Shizuku Manager ,再透過(guò)它對(duì)其它 app 進(jìn)行授權(quán)會(huì)是一個(gè)比較省心的方案。
方式:將手機(jī)連上電腦,輸入對(duì)應(yīng)指令 adb shell sh /sdcard/Android/data/moe.shizuku.privileged.api/files/start.sh 即可。其余 app 的激活指令各不相同,但一般都以 .sh 結(jié)尾,會(huì)在引導(dǎo)界面給出。
注意事項(xiàng):不要改動(dòng)手機(jī) USB 默認(rèn)選項(xiàng)、不要關(guān)閉開發(fā)者選項(xiàng)或者是 adb 調(diào)試,這些將會(huì)導(dǎo)致授權(quán)失效。
花式玩法:市面上有售許多「黑閾激活器」之類的小玩意,為了嘗鮮我也買了一個(gè)。想在沒有電腦的情況下使用,除了激活器以外還需要一個(gè) USB-A 口電源和一條 A2C 之類的數(shù)據(jù)線,使用起來(lái)也相當(dāng)繁瑣。還有就是一些A類授權(quán)的應(yīng)用在提權(quán)完畢后,可以代替電腦上的終端來(lái)「執(zhí)行指令」,給其它A類、B類、C類進(jìn)行授權(quán)。比如黑閾在完成提權(quán)后,可以激活 Shizuku Manager,甚至簡(jiǎn)單輸入 reboot 來(lái)重啟。
B類:以小黑屋為例
冰箱和小黑屋都是凍結(jié)類優(yōu)化 app 中的翹楚,我也都付費(fèi)各自體驗(yàn)過(guò)一陣。相比冰箱的老牌持穩(wěn),我想講講用心創(chuàng)新的小黑屋。小黑屋同時(shí)支持單獨(dú)使用A類激活和B類激活,也支持使用冰箱、Shizuku Manager 等激活。付費(fèi)后還能添加靜默安裝等實(shí)用功能。
方式:進(jìn)入手機(jī)的設(shè)置——賬號(hào),將所有賬號(hào)都刪除,同時(shí)關(guān)閉多用戶、應(yīng)用雙開、訪客模式等功能。將手機(jī)連接到電腦,輸入對(duì)應(yīng)指令 adb shell dpm set-device-owner web1n.stopapp/.receiver.AdminReceiver 即可。成功后重啟,將會(huì)看到「手機(jī)被小黑屋管理」(可自定義)。
注意事項(xiàng):國(guó)產(chǎn)廠商以及三星可能修改了許多 Android 的底層機(jī)制,導(dǎo)致使用這個(gè)具有風(fēng)險(xiǎn)。請(qǐng)先查看 小黑屋的文檔 和 冰箱的文檔 。
花式玩法:小黑屋的B類激活可以通過(guò) root 達(dá)成,免去了刪除賬號(hào)再加入的麻煩,適合有能力獲取臨時(shí) root 權(quán)限、但為了保持 OTA 等原因而不長(zhǎng)期持有權(quán)限的玩家。小黑屋的衍生品權(quán)限狗也主打控制 App Ops 。權(quán)限狗除了依靠 Shizuku Manager 激活外,還可以透過(guò)已經(jīng)成為設(shè)備管理員的小黑屋激活,如此一來(lái)控制權(quán)限的功能就算重啟也不會(huì)失效。
C類:以綠色守護(hù)為例
綠色守護(hù)的鼎鼎大名,我想沒有哪個(gè)玩家還沒聽說(shuō)過(guò)。就算是非 root 模式,綠色守護(hù)也能起到一定的輔助優(yōu)化作用,其中個(gè)人覺得最為突出的便是嗜睡模式,強(qiáng)制手機(jī)在熄滅屏幕后進(jìn)入 Doze ,可以起到顯著節(jié)電的效果。
類似功能的還有來(lái)自國(guó)外著名內(nèi)核、應(yīng)用開發(fā)者 Franco 的 Naptime。BBS 是 BetterBatteryStats 的簡(jiǎn)稱,主要作用是檢測(cè) CPU 的 Deep Sleep 時(shí)長(zhǎng)、Alarms 以及 Wakelock 喚醒鎖的發(fā)生情況,幫助玩家抓住幕后的喚醒兇手,可謂是神探一名。
方式:大體上來(lái)說(shuō),還是復(fù)制粘貼 adb 命令,不過(guò)這些命令的作用不是激活腳本或是任命設(shè)備管理員,而是賦予某個(gè) app 某個(gè)敏感權(quán)限罷了。
以 綠色守護(hù) 為例,
連接手機(jī)至電腦后,依次在終端輸入:
- 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
之后可以強(qiáng)行停止一次綠色守護(hù)再運(yùn)行,確保權(quán)限生效。
Naptime、BBS 的授權(quán)過(guò)程也類似,app 的引導(dǎo)界面也附上了相應(yīng)的 adb 指令。
花式玩法:C類激活勝在持久,重啟后依舊有效,可以在A類激活失效后依舊起到一些輔助優(yōu)化作用。BBS 在 Play 商店需要付費(fèi),但是卻可以在 XDA 論壇 里免費(fèi)獲取。
實(shí)例演示,以三星健康喚醒為例
前篇文章 提到我將三星 Galaxy Watch Active 從 iPhone 換綁到了 Pixel 2 上,獲得更多功能的同時(shí),我也有了一些煩惱:與手表綁定,Pixel 安裝了 4 個(gè)三星 App,我明顯感覺手機(jī)的待機(jī)耗電增加。為了一探究竟,我首先派遣前面提到的追兇神探——BBS。將 Pixel 連接到電腦,輸入引導(dǎo)界面的三條 adb 指令后,我成功地激活了 BBS。
將 Pixel 使用一段時(shí)間后,我?guī)е唤z好奇打開 BBS,在兩個(gè)小時(shí)的待機(jī)中,我消耗了 4% 的電,這個(gè)成績(jī)不是很糟糕,但是也不符合 Pixel 的一貫水平。首先查看重要指標(biāo) Deep Sleep,如果在沒有充電的情況下,熄屏狀態(tài)下 Deep Sleep 占比不夠高甚至是沒有,那么手機(jī)的待機(jī)續(xù)航成績(jī)一定不好看。BBS 同時(shí)也給出了另一個(gè)指標(biāo),就是熄屏喚醒時(shí)長(zhǎng),同理。其次查看第二個(gè)重要指標(biāo) Partial Wakelocks 局部喚醒鎖,這里會(huì)顯示當(dāng)前安裝 app 的喚醒鎖次數(shù)和時(shí)長(zhǎng),顯然三星健康的名為 PedometerLib 時(shí)長(zhǎng)有些偏多。看來(lái)三星健康會(huì)利用手機(jī)的傳感器進(jìn)行(我不需要的)計(jì)步,對(duì)步數(shù)數(shù)據(jù)進(jìn)行補(bǔ)充。***查看第三個(gè)重要指標(biāo) Alarms,一看三星健康居然在過(guò)去的兩小時(shí)不到里,喚醒了 242 次。
仔細(xì)進(jìn)行思索:三星健康并不直接和手表同步,只負(fù)責(zé)導(dǎo)入被同步到 Watch Active Plugin 中的數(shù)據(jù);三星健康也并不需要一直計(jì)量步數(shù);我沒有使用三星健康的社交功能。因此三星健康并不需要常駐我的后臺(tái),我需要壓制。我首先想到的是 Android Pie 自帶的后臺(tái)限制(并沒有用,我已經(jīng)開了),然后使用綠色守護(hù)強(qiáng)行停止。但是很快強(qiáng)行停止會(huì)被另外的三星 app 喚醒。***適合我的方案有黑閾的激進(jìn)模式、以及各家的凍結(jié)/停用。
三星健康只是一個(gè)簡(jiǎn)單的實(shí)例,它其實(shí)也并沒有很過(guò)分,只是它的耗電從我的角度來(lái)說(shuō)太過(guò)多余。但當(dāng)越來(lái)越多的毒瘤爬滿你的 Android 手機(jī),而系統(tǒng)自帶的管理功能還在「防君子不防小人」的時(shí)候,你該如何抉擇呢?面對(duì)「仰天大笑出門去,手機(jī)半路就沒電」的窘境,你是佛系一把多充電,還是毒瘤堆中驚坐起、流暢使用又一年呢?