如果僅從新功能和新樣式的角度去看 Android Q 的第一個 Beta 版本,很多人應該都會得出「Android Q 算不上是個大版本更新」這個結論。但事實卻並非如此——如果說 Android Oreo 的最大更新點是 通知系統、Android Pie 的最大更新點是 Home 鍵手勢,那麼將 Android Q 與此前的 Android 版本區分開來的最大改動,應該就是隱私了。

權限收緊,全面封堵流氓行爲

在 Android 操作系統中,隱私和權限是密切掛鉤的。

正因爲如此,Google 自 Android 6.0 Marshmallow 開始就引入了運行時權限(runtime permissions)特性,允許用戶在應用運行過程中根據實際需求授予特定權限。例如當應用第一次運行並嘗試獲取位聯繫人權限時,我們會看到這樣一個彈窗。

這可能是新版 Android 最重要的新功能,你一定要了解

運行時權限申請彈窗

引入運行時權限的本意是讓應用的權限申請流程更加清晰透明,給予用戶更多的主動權。但長久以來這個授權機制在實施效果上卻並不理想:一方面,一般用戶並沒有像預期那樣獲得權限管理這件事情上的主動權,很多應用開發商由此摸索出了不給權限便拒絕正常工作這種流氓思路;另一方面,對那些面向低版本 Android 系統開發的老舊應用來說,它們則可以完全規避掉這個機制。

對權限管理機制的進一步細化和完善,顯然成爲了 Google 要解決的一大問題。Android Q 針對權限管理機製做出瞭如下更新:

首先,正如很多人都注意到的那樣,位置權限的授予方式在 Android Q Beta 1 版本中變得更加靈活。除了允許和拒絕,Android Q 還爲位置權限加入了額外的「僅在使用該應用期間允許」選項,對於那些不需要在後臺獲取位置信息的應用而言,這種權限授予方式不僅可以減少應用後臺期間的電量消耗,還能在一定程度上避免不必要的個人隱私信息泄露。

這可能是新版 Android 最重要的新功能,你一定要了解

位置權限可以僅在使用應用期間授予

其次,即便是上面提到的那些面向低版本 Android 系統開發、屬於運行時權限機制「管轄」範圍以外的老舊應用,它們的權限請求也無法像以往那樣在安裝後便被設置爲「默認允許」了。在 Android Q 上安裝這樣一款「老應用」後,系統會在該應用初次運行時直接以全屏界面提示應用將要獲取的權限並提供手動開關,我們可以根據實際需求酌情授予。

這可能是新版 Android 最重要的新功能,你一定要了解

通過降低 SDK 版本來繞過權限申請的做法不再可行

再次,一個名爲「隱私權」的設置項在 Android Q 中也成爲了一個獨立的一級設置項。這個設置項目下不僅整合了應用權限管理、鎖屏通知展示方式、Google 自動填充服務和 Google 位置信息記錄等常見隱私設定,還首次在 Android 系統層面向用戶提供了「廣告 ID 和個性化」開關,允許用戶選擇停用廣告個性化功能。

這可能是新版 Android 最重要的新功能,你一定要了解

隱私權與廣告 ID 設置

最後,大量不規範的應用行爲將在 Android Q 中得到限制:

彈出窗口將被完全封殺,Google 不再允許應用直接從後臺啓動一個 activity 窗口來對用戶當前的窗口和任務進行幹擾,在 Beta 1 的實際體驗中,Magisk 的 root 權限授予窗口和 1Password 的密碼自動填寫窗口在系統數次提示後都再也不會彈出。

這可能是新版 Android 最重要的新功能,你一定要了解

後臺彈出窗口將被封禁提示

後臺應用無法讀取剪貼板內容,在 Android Q 中,只有被設置爲默認輸入法或正在前臺運行的應用才能讀取剪貼板數據,換句話說,當前依賴後臺運行的大多數第三方剪貼板管理應用都將面臨「失業」——事實上,我們此前推薦過的 Cliper 已經在 Android Q 第一個 Beta 版本放出的同時宣佈將於今年 5 月關閉剪貼板內容同步服務。

這可能是新版 Android 最重要的新功能,你一定要了解

Clipper 的聲明 | 圖:AndroidPolice

懸浮窗權限也將定時自動撤銷,很多 Android 應用都可以藉助懸浮窗特性來實現一些便利功能(如 FooView、Share 等),但這個特性同時也爲惡意應用盜取用戶隱私提供絕密手段。爲此,Android Q 也會在應用進程被殺、應用重啓或設備重啓後自動撤銷先前用戶授予的懸浮窗權限。如果你像我一樣使用 Share 刷微博,就會發現幾乎每次啓動 Share 後點開微博視頻都需要重新授予 Share 懸浮窗權限。

這可能是新版 Android 最重要的新功能,你一定要了解

Share 的視頻懸浮窗權限也會被定期重重置

另外值得一提的是,IMEI、MEID 等不可重置的設備標識信息在 Android Q 中也不再通過電話權限向第三方應用開放,同時,連接 Wi-Fi 後的 MAC 地址也將自動隨機化處理

這可能是新版 Android 最重要的新功能,你一定要了解

Android 9 中需要手動開啓的 MAC 地址隨機化選項

沙箱來襲,還你一個整潔的存儲空間

大多數應用都需要在我們的手機裏儲存信息,而這種儲存行爲本應是有序的:Android 系統一直以來都提供了 /data sdcard/Android/data 兩個目錄來進行應用數據文件存放,無論應用開發商選擇將應用數據放在何處,都不至於讓你的內部存儲空間像上圖所示那樣混亂不堪。

這種不按照規範隨意存儲信息在公共目錄甚至內部存儲空間根目錄的行爲不僅影響美觀、降低文件管理效率,無形中也爲「全家桶」應用之間的「協作」提供了便利。舉個例子,我們在 A 應用中因爲需要上傳用戶頭像而授予了它內部存儲空間的讀寫權限,但 A 應用在獲得授權後,還悄悄將它收集到的設備隱私信息(如 IMEI)明文儲存在了內部存儲空間根目錄。

這樣一來,其他應用即便被拒絕授予敏感信息的訪問權限,也能通過內部存儲空間中的這個文件實現隱私信息的「共享」

這可能是新版 Android 最重要的新功能,你一定要了解

混亂的內部存儲空間

Google 在此前的 Android 版本中一直在探索存儲功能的改進方向,包括引入對 SD 卡的訪問限制和限定目錄訪問權限控制等,但內部存儲空間「髒、亂、差」的現象一直都沒有得到根本性地改善,對用戶而言隱私風險也依然存在。

而這次在 Android Q 中,Google 引入了一個更加強力的新機制來應對上述問題——應用域和媒體域存儲(App-scoped and media-scoped storage)。

儘管這個新機制有着非常長的名字,但它的原理其實和我們大家耳熟能詳的「沙箱」概念類似:既然無法避免應用向公共目錄隨意讀寫文件,那不如索性將它們各自放進一個與世隔絕的沙箱裏,既能對應用間數據和用戶隱私數據進行有效隔離,又能保證內部存儲空間乾淨整潔。

這可能是新版 Android 最重要的新功能,你一定要了解

首份 Android Q Beta 1 兼容性測試報告節選

「沙箱」機制無疑會對當下大部分存儲行爲不端的國產應用造成不小的衝擊,更直白地說,這其中大部分應用在 Android Q 下不僅無法在內部存儲空間內隨意創建文件,如果不跟進適配新的存儲行爲機制,它們甚至連相冊文件都無法正常讀取

關聯閱讀:兼容率達78%!首份Android Q版本兼容性評測報告出爐

不過目前 Android Q Beta 1 中的應用數據「沙箱化」默認爲關閉狀態,如果你想手動測試效果,可以按照以下步驟打開:

  1. 手機端開啓 USB 調試並連接電腦
  2. 電腦端打開命令行窗口或終端,執行 adb shell sm set-isolated-storage on

隨後手機會重啓,重啓後在命令行或終端中執行 adb shell getprop sys.isolated_storage_snapshot,若返回 true 則爲開啓成功。

這可能是新版 Android 最重要的新功能,你一定要了解

ADB 開啓「沙箱」模式

需要注意的是,考慮到應用兼容性問題,「沙箱化」機制僅適於用於面向 Android Q 開發的應用或開啓「沙箱」後重新安裝的應用。如果開啓「沙箱」前應用已經使用過內部存儲空間(比如保留數據 OTA 至 Android Q Beta 1),則需要卸載該應用重新安裝才能使「沙箱」機制機制生效。

開啓前後內部存儲空間的效果對比可參考下圖:

這可能是新版 Android 最重要的新功能,你一定要了解

賞心悅目不是嗎

最後,雖然這個新機制對那些一直以來都按照開發規範設計的應用而言幾乎沒有任何影響,但大部分應用、包括文件管理器應用在開啓了「沙箱」機制後都將遇到問題,至於如何應對這些新機制帶來的問題,在尊重用戶隱私數據的前提下合理利用內部存儲空間,不妨參考 @燒餅 不久前分享在 Matrix 社區的文章。

關聯閱讀:Android Q 存儲行爲大變化,對用戶和應用的影響都有哪些 - 少數派

Google 更強硬,但我們還需要更多

通過上面的介紹可以看出,未來在 Android Q 的測試版或正式版本中,當下荼毒國內安卓生態的諸多「毒瘤」應用和「毒瘤」行爲都將得到限制,與此同時,我們此前多次推薦過的諸如存儲重定向這樣的應用也將因此面臨「失業」。

從用戶的角度出發,這類 hack 向、有一定折騰成本和兼容性風險的應用逐漸失去作用是件好事,而當我們回過頭來重新審視那些在 Android Q 推出後依然不會「失業」的應用就會發現,即便 Google 如此強硬,我們仍有一個最爲根本的問題亟待解決,即不給權限不讓用的問題

換句話說,除了文中所提到的改進,Android 還需要更強力的流氓應用對策(比如允許用戶像 AppOps 那樣給個空權限)。關於這一點,希望我們能在 Android Q 接下來的測試版本中看到更多。

相關文章