Android 10(29)適配方案簡要說明

伊春網站建設公司創(chuàng)新互聯(lián)建站,伊春網站設計制作,有大型網站制作公司豐富經驗。已為伊春上1000家提供企業(yè)網站建設服務。企業(yè)網站搭建\成都外貿網站建設公司要多少錢,請找那個售后服務好的伊春做網站的公司定做!
1、根據Google官方文檔說明,Android10引入了大量變更
官方文檔:
1.1、Android 10 中的隱私權變更
1.1.1重大隱私權變更
分區(qū)存儲
針對外部存儲的過濾視圖,可提供對特定于應用的文件和媒體集合的訪問權限 訪問和共享外部存儲中的文件的應用 使用特定于應用的目錄和媒體集合目錄
增強了用戶對位置權限的控制力
僅限前臺權限,可讓用戶更好地控制應用對設備位置信息的訪問權限 在后臺時請求訪問用戶位置信息的應用 確保在沒有后臺位置信息更新的情況下優(yōu)雅降級
使用 Android 10 中引入的權限在后臺獲取位置信息
系統(tǒng)執(zhí)行后臺 Activity
針對從后臺啟動 Activity 實施了限制 不需要用戶互動就啟動 Activity 的應用 使用通知觸發(fā)的 Activity
不可重置的硬件標識符
針對訪問設備序列號和 IMEI 實施了限制 訪問設備序列號或 IMEI 的應用 使用用戶可以重置的標識符
無線掃描權限
訪問某些 WLAN、WLAN 感知和藍牙掃描方法需要獲得精確位置權限 使用 WLAN API 和藍牙 API 的應用 針對相關使用場景請求?ACCESS_FINE_LOCATION?權限
1.1.2更多隱私權變更
標識符和數據: 針對硬件標識符(如 IMEI、序列號、MAC 和類似數據)實施了新限制。
?移除了聯(lián)系人親密程度信息
?隨機分配 MAC 地址
?對 /proc/net 文件系統(tǒng)的訪問權限實施了限制
?對不可重置的設備標識符實施了限制
?限制了對剪貼板數據的訪問權限
?保護 USB 設備序列號
攝像頭和連接性: 針對攝像頭元數據和連接 API 提供了更強大的保護措施。 ?對訪問攝像頭詳情和元數據的權限實施了限制
?對啟用和停用 WLAN 實施了限制
?對直接訪問已配置的 WLAN 網絡實施了限制
?一些電話 API、藍牙 API 和 WLAN API 需要精確位置權限
權限 : 針對權限模型和要求的一些變更。
?限制對屏幕內容的訪問
?面向用戶的權限檢查(針對舊版應用)
?身體活動識別
?從界面中移除了權限組
1.2影響應用的行為變更
文檔:
限制非 SDK 接口: 為了幫助確保應用的穩(wěn)定性和兼容性,Android 平臺開始限制應用在 Android 9(API 級別 28)中使用非 SDK 接口。Android 10 包含更新后的受限制非 SDK 接口列表(基于與 Android 開發(fā)者之間的協(xié)作以及最新的內部測試)。我們的目標是在限制使用非 SDK 接口之前確保有可用的公開替代方案。
手勢導航: 從 Android 10 開始,用戶可以在設備中啟用手勢導航。用戶啟用后,手勢導航會影響設備上的所有應用,無論應用是否以 API 級別 29 為目標平臺。例如,如果用戶從屏幕邊緣向內滑動,系統(tǒng)會將該手勢解讀為“返回”導航,除非應用針對屏幕的相應部分明確替換該手勢。
NDK 方面的變更
?共享對象不得包含文本重定位
?Bionic 庫和動態(tài)鏈接器路徑變更
?系統(tǒng)二進制文件/庫會映射到只執(zhí)行內存
安全方面的變更
?TLS 1.3 默認處于啟用狀態(tài)
?TLS 不信任使用 SHA-1 簽名的證書
?KeyChain 行為變更和改進
?其他 TLS 和加密更改
WLAN 直連廣播
在 Android 10 中,以下與 WLAN 直連相關的廣播不具有粘性:
WIFI_P2P_CONNECTION_CHANGED_ACTION
WIFI_P2P_THIS_DEVICE_CHANGED_ACTION
如果的應用依賴于在注冊時接收這些廣播(因為其之前一直具有粘性),請在初始化時使用適當的 get() 方法獲取信息。
WLAN 感知功能 ?
Android 10 擴大了支持范圍,現(xiàn)在可以使用 WLAN 感知數據路徑輕松創(chuàng)建 TCP/UDP 套接字。要創(chuàng)建連接到 ServerSocket 的 TCP/UDP 套接字,客戶端設備需要知道服務器的 IPv6 地址和端口。這在之前需要通過頻外方式進行通信(例如使用 BT 或 WLAN 感知第 2 層消息傳遞),或者使用其他協(xié)議(例如 mDNS)通過頻內方式發(fā)現(xiàn)。而借助 Android 10,可以將此類消息作為網絡設置的一部分進行傳遞。
Go 設備上的 SYSTEM_ALERT_WINDOW
在 Android 10(Go 版本)設備上運行的應用無法獲得 SYSTEM_ALERT_WINDOW 權限。這是因為繪制疊加層窗口會使用過多的內存,這對低內存 Android 設備的性能十分有害。
如果在搭載 Android 9 或更低版本的 Go 版設備上運行的應用獲得了 SYSTEM_ALERT_WINDOW 權限,則即使設備升級到 Android 10,也會保留此權限。不過,尚不具有此權限的應用在設備升級后便無法獲得此權限了。
如果 Go 設備上的應用發(fā)送具有 ACTION_MANAGE_OVERLAY_PERMISSION 操作的 intent,則系統(tǒng)會自動拒絕此請求,并將用戶轉到設置屏幕,上面會顯示不允許授予此權限,原因是它會減慢設備的運行速度。如果 Go 設備上的應用調用 Settings.canDrawOverlays(),則此方法始終返回 false。同樣,這些限制不適用于在設備升級到 Android 10 之前便已收到 SYSTEM_ALERT_WINDOW 權限的應用。
關于以舊版 Android 系統(tǒng)為目標平臺的應用的警告
在搭載 Android 10 或更高版本的設備上,如果用戶首次運行以 Android 5.1(API 級別 22)或更低版本為目標平臺的應用,則會看到警告。如果此應用要求用戶授予權限,則系統(tǒng)會先向用戶提供調整應用權限的機會,然后才會允許此應用首次運行。
由于 Google Play 的目標 API 方面的要求,用戶只有在運行最近未更新的應用時才會看到這些警告。對于通過其他商店分發(fā)的應用,我們也將于 2019 年引入類似的目標 API 方面的要求。如需詳細了解這些要求,請參閱在 2019 年擴展目標 API 級別方面的要求。
移除了 SHA-2 CBC 加密套件
以下 SHA-2 CBC 加密套件已從平臺中移除:
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA256
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
這些加密套件不如使用 GCM 的類似加密套件安全,并且大多數服務器要么同時支持這些加密套件的 GCM 變體和 CBC 變體,要么二者均不支持。
應用使用情況的變更
?UsageStats 應用使用情況方面的改進 - 當在分屏或畫中畫模式下使用應用時,Android 10 現(xiàn)在能夠使用 UsageStats 準確地跟蹤應用使用情況。此外,Android 10 可以正確地跟蹤免安裝應用的使用情況。
?按應用開啟灰度模式 - Android 10 可針對各個應用設置灰度顯示模式。
?按應用開啟干擾模式 - Android 10 可以選擇性地將應用設置為“干擾模式”,此時系統(tǒng)會禁止顯示其通知,并且不會將其顯示為推薦的應用。
?暫停和播放 - 在 Android 10 中,暫停的應用無法播放音頻。
HTTPS 連接變更
如果在 Android 10 上運行的應用將 null 傳遞給 setSSLSocketFactory(),則會出現(xiàn) IllegalArgumentException。在以前的版本中,將 null 傳遞給 setSSLSocketFactory() 與傳入當前的默認 SSL 套接字工廠效果相同。
android.preference 庫已棄用
從 Android 10 開始,將棄用 android.preference 庫。開發(fā)者應該改為使用 AndroidX preference 庫,這是 Android Jetpack 的一部分。如需獲取其他有助于遷移和開發(fā)的資源,請查看經過更新的設置指南以及我們的公開示例應用和參考文檔。
ZIP 文件實用程序庫變更
Android 10 對 java.util.zip 軟件包(用于處理 ZIP 文件)中的類進行了以下變更。這些變更會讓庫的行為在 Android 和使用 java.util.zip 的其他平臺之間更加一致。
?Inflater
在以前的版本中,如果在調用 end() 之后調用 Inflater 類中的某些方法,這些方法會拋出 IllegalStateException。在 Android 10 中,這些方法會改為拋出 NullPointerException。
?ZipFile
在 Android 10 及更高版本中,如果所提供的 ZIP 文件不包含任何文件,則 ZipFile 的構造函數(采用的參數類型為 File、int 和 Charset)不會拋出 ZipException。
?ZipOutputStream
在 Android 10 及更高版本中,如果 ZipOutputStream 中的 finish() 方法嘗試為不包含任何文件的 ZIP 文件寫入輸出流,則此方法不會拋出 ZipException。
攝像頭變更
很多使用攝像頭的應用都會假定如果設備采用縱向配置,則物理設備也會處于縱向,正如攝像頭方向中所述。在過去可以做出這樣的假定,但隨著可用的設備類型(例如可折疊設備)的擴展,這一情況發(fā)生了變化。針對這些設備做出這樣的假定可能導致相機取景器的顯示產生錯誤的旋轉和/或縮放。
以 API 級別 24 或更高級別為目標平臺的應用應該明確設置 android:resizeableActivity,并提供必要的功能來處理多窗口操作。
電池用量跟蹤
從 Android 10 開始,只要在發(fā)生重大充電事件之后拔下設備電源插頭,SystemHealthManager 就會重置其電池用量統(tǒng)計信息。一般來說,重大充電事件指的是設備電池已充滿,或者設備電量從幾乎耗盡變?yōu)榧磳⒊錆M。
在 Android 10 之前,無論何時拔下設備電源插頭,無論電池電量有多微小的變化,電池用量統(tǒng)計信息都會重置。
Android Beam 已棄用
在 Android 10 中,我們正式棄用了 Android Beam,這是一項舊版功能,可通過近距離無線通信 (NFC) 在多個設備之間啟動數據共享。我們還棄用了一些相關的 NFC API。Android Beam 仍可供需要的設備制造商合作伙伴使用,但它已不再處于積極的開發(fā)階段。不過,Android 仍將繼續(xù)支持其他的 NFC 功能和 API,并且從標簽和付款中讀取數據等使用場景仍將繼續(xù)按預期執(zhí)行。
在Android10以前,只要程序獲得了READ_EXTERNAL_STORAGE權限,就可以隨意讀取外部的存儲公有目錄。只要程序獲得了WRITE_EXTERNAL_STORAGE權限,就可以隨意在寫入外部存儲的公有目錄上新建文件或文件夾
于是Google在Android10中提出了分區(qū)存儲,意在限制程序對外部存儲中公有目錄的使用。
分區(qū)存儲對內部存儲私有目錄和外部存儲私有目錄都沒有影響
簡單來說就是,在Android10中,
使用分區(qū)存儲的應用對自己創(chuàng)建的文件始終擁有讀/寫權限, 無論文件是否位于應用的私有目錄內 ,所以,如果應用僅保存和訪問自己創(chuàng)建的文件,則無需請求獲得READ_EXTERNAL_STORAGE或WRITE_EXTERNAL_STORAGE權限
如果要訪問其他應用創(chuàng)建的文件,則需要READ_EXTERNAL_STORAGE權限。并且仍然只能使用MediaStore提供的API或是SAF訪問。
這里需要注意的是,MediaStore提供的API只能訪問圖片、視頻、音頻,如果需要訪問其它任意格式的文件,需要使用SAF,它會調用系統(tǒng)內置的文件瀏覽器供用戶自主選擇文件
Android Q規(guī)定了App有兩種存儲空間模式視圖:Legacy View、Filtered View
系統(tǒng)通過下列方式確定App的運行模式:
判斷當前App運行的是什么模式,可以通過Environment提供的API進行判斷
MediaStore提供了下列幾種類型的訪問Uri,通過查找對應Uri數據,達到訪問的目的。
我們還可以使用getContentUri獲取所有volumeName
MediaProvider對于App存放到公共目錄文件,通過ContentResolver insert方法中Uri來確定
MediaStroe通過不同Uri,為用戶提供了增、刪、改方法,權限對應如下
例如PDF,PDF為非媒體類文件,因此我們不能通過MediaStore來獲取,對于這種其他類型的文件,一般使用SAF來讓用戶選擇
我們也推薦使用SAF讓用戶自己去創(chuàng)建,IntentAction為:ACTION_CREATE_DOCUMENT
訪問app-specific分為兩種情況,一種是訪問App自身App-specific目錄,第二是訪問其他App目錄文件
Android Q,App如果啟動了Filtered View,那么只能直接訪問自己目錄的文件:
App是FilteredView,其他App無法直接訪問當前App私有目錄,需要通過以下方法:
Android 10 中的隱私權變更
從Android 10開始已經無法完全標識一個設備,曾經用mac地址、IMEI等設備信息標識設備的方法,從Android 10開始統(tǒng)統(tǒng)失效。而且無論你的APP是否適配過Android 10。
從Android10開始普通應用不再允許請求權限android.permission.READ_PHONE_STATE。而且,無論你的App是否適配過Android 10(即targetSdkVersion是否大于等于29),均無法再獲取到設備IMEI等設備信息。
從 Android 10 開始,應用必須具有 READ_PRIVILEGED_PHONE_STATE 特許權限才能訪問設備的不可重置標識符(包含 IMEI 和序列號)。而普通應用無法申請該權限。
受影響的API:
—— targetSdkVersion29 的應用,其在獲取設備ID時,會直接返回null
—— targetSdkVersion=29 的應用,其在獲取設備ID時,會直接拋出異常SecurityException
如果您的App希望在Android 10以下的設備中仍然獲取設備IMEI等信息,可按以下方式進行適配:
默認情況下,在搭載 Android 10 或更高版本的設備上,系統(tǒng)會傳輸隨機分配的 MAC 地址。即從Android 10開始,普通應用已經無法獲取設備的真正mac地址,標識設備已經無法使用mac地址。
方法1、Google解決方案
如果您的應用有追蹤非登錄用戶的需求,可用ANDROID_ID來標識設備。
ANDROID_ID生成規(guī)則:簽名+設備信息+設備用戶
ANDROID_ID重置規(guī)則:設備恢復出廠設置時,ANDROID_ID將被重置
方法2、移動安全聯(lián)盟SDK
移動安全聯(lián)盟SDK
移動安全聯(lián)盟(Mobile Security Alliance,簡稱MSA)于2017年12月4日成立,由中國信息通信研究院聯(lián)合終端生產企業(yè)、安全企業(yè)、高等院校、研究機構、互聯(lián)網企業(yè)以及芯片企業(yè)、方案企業(yè)等產業(yè)鏈中各個環(huán)節(jié)的重要機構共同發(fā)起。
其他資料:
Android 設備唯一標識(多種實現(xiàn)方案)
(部分內容參考于網絡,如有不妥,請聯(lián)系刪除~)
本文主要介紹android10的GMS認證相關的內容,包括新特性、新要求、特殊問題以及失敗項等。
;ref_topic=9353615
主要有以下模塊:
GoogleDocumentsUIPrebuilt \ GoogleExtServicesPrebuilt \ ModuleMetadataGooglePrebuilt \ GooglePermissionControllerPrebuilt GoogleExtServicesConfigOverlay \ GooglePermissionControllerOverlay \ GooglePermissionControllerFrameworkOverlay
1、刷user版本并開機
2、打開Settings - System - Developer options - OEM unlocking
3、連接電腦,執(zhí)行adb reboot bootloader;或者長按volume up key和power key進入fastboot模式
4、執(zhí)行命令:fastboot flashing unlock ,出現(xiàn)選擇界面后,按volumn up key
5、執(zhí)行命令:fastboot reboot fastboot,請不要做任何操作,在進行下一步之前
6、執(zhí)行命令:fastboot flash system system.img (使用google簽名的 system.img)
7、執(zhí)行命令:fastboot reboot bootloader
8、執(zhí)行命令:fastboot flashing lock
9、執(zhí)行命令:fastboot reboot
備注: 如果是A/B load special,使用fastboot flash system_a system.img / fastboot flash system_b system.img 替換步驟6
1、刷user版本并開機
2、打開Settings - System - Developer options - OEM unlocking
3、連接電腦,執(zhí)行adb reboot bootloader;或者長按volume up key和power key進入fastboot模式
4、執(zhí)行命令:fastboot flashing unlock ,出現(xiàn)選擇界面后,按volumn up key
5、執(zhí)行命令:fastboot flash boot boot-debug.img,boot-debug.img來out目錄
6、執(zhí)行命令:fastboot reboot fastboot,請不要做任何操作,在進行下一步之前
7、執(zhí)行命令:fastboot flash system system.img (使用google簽名的 system.img)
8、執(zhí)行命令:fastboot reboot
備注: 如果是A/B load special,使用fastboot flash system_a system.img / fastboot flash system_b system.img 替換步驟7
adb shell appops set com.android.cts.verifier android:read_device_identifiers allow
目前,送測版本包括:New device或 MR、EEA Express Plus Device、Russia Device、RSA Device、SMR Device;各個版本都有不同的需求,請注意檢查
為了更容易通過測試,跑測前最好寫入以下內容:
Serial Number
Wifi Mac Address
BT Mac Address
IMEI
Google Key
kernel 4.14會出現(xiàn),需要申請patch
SIM卡問題,需要插入寫有效SIM卡
最新的daily build tool驗證
當前題目:android-10,android10系統(tǒng)升級包
網頁鏈接:http://chinadenli.net/article48/dsgcdep.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供服務器托管、ChatGPT、域名注冊、網站營銷、網頁設計公司、響應式網站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)