Android O 讓安裝應用更安全
部分觀察仔細的用戶會注意到 Android O 的一個新特性:“允許未知來源” 的設置已經消失不見。要知道,這是在此前的 Android 版本中,安裝 Google Play 或是其他認證商店之外的應用所必經的設置。本文就圍繞新的未知來源應用安裝許可,以及它為用戶以及開發者所帶來的益處展開。
前段時間我們發布了 Google Play 保護機制 (Google Play Protect),它能夠全面且實時地保護您的設備。不同于第三方來源軟件中會攜帶有潛在有害應用 (PHAs) ,Google Play 仍然是目前最安全的應用來源地。
潛在有害應用開發者的常見套路,是通過惡意下載器 (hostile downloader) 來加載他們的應用。試舉一例,某個游戲應用中或許并不包含惡意代碼,但它會將潛在有害應用偽裝為一項重要升級,繼而安裝到用戶的設備之上 (更多關于惡意下載器的信息請查閱 2016 年 Android 安全性總覽) 。用戶只要允許了未知來源應用安裝,就很容易讓這樣狡詐的手段得逞。
上圖中左 (預覽版 Android O) :潛在有害應用偽裝為系統升級的安裝界面;右 (Android O) :潛在有害應用安裝前,首先需要用戶允許該 App 進行安裝
在 Android O 系統下,安裝未知來源應用許可會使得該操作的安全性更高。就像其他的運行時權限 (runtime permissions) 一樣,該項許可與觸發安裝的 App 綁定。確保在彈出安裝頁面之前,先讓用戶確認安裝權限。在安裝了 Android O 或更高版本系統的設備上,惡意下載器就無法在用戶獲得提示之前,誘導用戶進行安裝。
新的許可機制能夠為用戶提供透明化,可控且線性的可信任來源安裝許可。在設置中,用戶能夠看到已經允許安裝未知來源 App 的應用列表。用戶也可按照自身需求,隨時撤回某個應用的許可。
上圖中隨時都能夠查看已允許安裝未知來源 App 的應用列表。如需讓獲取許可更具效率,開發者可在安裝過程中,直接讓用戶跳轉至許可界面。
開發者層面的變動
如要利用這一新的許可機制,通過包安裝器 (Package Installer) 下載以及安裝其他 App 的應用開發者們需要作出一些變動。如果應用在使用 26 或更高級別的 targetSdkLevel 來引導用戶安裝其他 App,那么清單文件則需要包括 REQUEST_INSTALL_PACKAGES 許可:
- <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
沒有聲明此項許可的應用無法安裝其他 App。對于無 App 安裝需求的應用來說,這是一種非常方便的安保辦法。開發者可以通過 ACTION_MANAGE_UNKNOWN_APP_SOURCES 意圖動作 (Intent action),讓用戶直接跳轉到安裝 未知來源應用 (Install unknown apps) 的界面。也可以通過使用包管理器 (PackageManager) canRequestPackageInstalls ( ) API,查詢安裝許可的狀態。
請記住,如果這些 App 已在 Google Play 上發布,而且能夠安裝和更新其他應用,那么 Google Play 政策法規 仍然適用。絕大多數情況下,這種行為并不恰當;相反,您應該在 Google Play Store 的應用列表中提供一個深層鏈接 (deep-link)。
請確保已經了解更多有關安裝未知來源應用的發布指南,并關注與 Android O 安全性相關的更多公告。
【本文是51CTO專欄機構“谷歌開發者”的原創稿件,轉載請聯系原作者(微信公眾號:Google_Developers)】