安全和隱私變更
隱私保護是Android Q重要的主題之一,Android Q帶來了一系列增強用戶隱私保護的變更。
1
應用文件存儲空間限制
應用訪問限制是Android Q影響最大變更之一。在Android Q系統中,應用只可以通過路徑讀取自己應用沙箱內的文件,如果需要讀取應用沙箱外的文件,需要使用安卓統一接口來實現。該變更對大部分應用都會產生較重大的影響,需要開發者進行重點關注,后續我們也將以專題的形式來詳細解讀應該變更的影響和應對策略。
2
禁止訪問不可更改的ID
Android Q將禁止非系統應用訪問用戶不可更改的ID,包括IMEI號、SN號、USB序列號等。系統WiFi Mac地址默認是隨機生成的,不再是固定的Mac地址,防止用戶隱私被追蹤。該變更將對依賴設備信息的業務產生影響,比如數據上報、用戶畫像、推薦和廣告等,需要開發者進行重點關注。
3
不允許后台彈頁面
Android Q將禁止應用后台啟動activity,這將對后台彈出頁面使用場景產生重大影響,如:鬧鍾、音樂鎖屏、應用后台安裝等。在目前的預覽版中,該變更未正式實施,但是對有后台彈頁面的行為會產生toast警告,提示開發者進行相關的整改。
該變更對有通知的應用,widget和快捷方式沒有影響,開發者可以將一些必要的場景改用通知的方式去實現。
4
位置權限三態化
Android Q中,應用在申請地理位置授權時,將增加使用時可用和始終可用兩個選擇。這將對需要后台GPS定位的使用場景產生影響,開發者在使用后台定位時需要增加前台服務。
5
剪切板訪問限制
Android Q中,系統將禁止應用在后台訪問剪切板,以更好地保護用戶隱私。
AOSP變更
1
Hidden API
在Android P中,谷歌已經開始限制Hidden API的使用,在Android Q中,新增了max-o和max-p兩種類型,黑名單的數量也大幅增加。這將對所有使用非SDK接口的應用產生影響。
開發者需要自行檢測非SDK接口的名單,並將還在使用的黑名單接口反饋給谷歌申請加到灰名單中,手機廠商也會配合應用進行測試驗證和相關的適配工作。
2
折疊屏適配
現在越來越多的手機廠商發布了折疊屏的手機,谷歌在Android Q系統中提供了統一的折疊屏方案和適配接口,系統增加了最小比例設置的參數minAspectRatio,應用可以通過meta-data聲明。
該變更對所有在折疊屏設備上的應用都會產生影響,主要需要解決手機從折疊形態到展開狀態轉化時應用重新加載和展開狀態下應用顯示比例適配兩個問題。
多媒體新特性
1
Heif格式圖片支持
在Android P系統中已經增加了對Heif格式圖片的軟解碼和軟編碼的支持,系統圖庫也支持Heif格式圖片顯示。在Android Q中,將支持拍照直接生成Heif格式的圖片。這將對圖片讀取和分享的使用場景產生影響,相關的應用(如社交類、圖片美化類)應進行Heif格式圖片的支持適配。
2
並發錄音
在Android P及之前的安卓系統中,不支持並發錄音,錄音焦點不可搶占。在Android Q中增加了對並發錄音的支持,錄音焦點可以被搶占。這將對后台錄音的場景產生影響,可能會錄到空數據。有相關使用場景的應用需要通過接口去監聽錄音焦點的狀態變化,並及時作出應對。
3
錄音source限制
Android Q系統對AUDIO_SOURCE_VOICE_CALL類型的錄音源增加權限限制,CAPTURE_AUDIO_OUTPUT需要系統簽名才可以使用,其他應用無法申請。該變更將導致應用無法錄音,一些社交類軟件的語音電話功能會受到影響。
開發者需要將錄音源改為AUDIO_SOURCE_VOICE_COMMUNICATION來規避這個問題的發生。
4
MediaProvider
Android Q系統增加了對MediaProvider的sql語句管控,mediastore中定義的列以外的信息,無法查詢,不合法的查詢列會返回空值。
文件的位置信息被刪除,將無法通過MediaProvider進行查詢。開發者需要對查詢的語句進行排查和整改,動態申請ACCESS_MEDIA_LOCATION權限,然后通過MediaProvider的openFile獲取文件的exif信息。
系統應用變更
安裝器接口廢棄
Android Q系統將禁止調用intent(action為INSTALL_PACKAGE)拉起安裝器,該應用將對TargetSdkVersion<24的應用產生影響,應用內安裝的功能將無法實現。開發者可以使用FileProvider進行適配,使用content Uri替代file Uri。
OS特性變更
禁止非系統應用調用dex2oat
Android Q將禁止非系統應用調用dex2oat,該變更通過selinux權限進行管控,只對TargetSdkVersion≥Q的應用產生影響,需要開發者進行排查是否有相關操作。此外該變更還會對加固程序產生影響,需要加固廠商進行重點關注。
API LEVEL政策變更
2019 Google Play上架API LEVEL政策規定,對於新上架的應用,2019年8月1日以后,應用TargetSdkVersion需要大於等於28;對於更新的應用,2019年11月1日前需要將應用TargetSdkVersion升級到28及以上。