Android P(9.0)GMS認證新要求

本文檔主要初步整理Android P對GMS認證的新要求

一、基本環境

主機要求:
  • Java 8
  • Python 2.7
  • ADB 1.0.39
VTS 環境
$ sudo apt-get install python-dev

$ sudo apt-get install python-protobuf
$ sudo apt-get install protobuf-compiler

$ sudo apt-get install python-virtualenv
$ sudo apt-get install python-pip
注意事項:

1、P版的CTS測試過程中,不要拔手機,否則最終結果無法完整測試出所有模塊
2、測試指令發生了變化,具體可在終端使用help查看
3、由于AVB2.0的影響,替換GSI和之前的方法有所不同,需要注意


二、CTS

1、Android 9.0 針對 WLAN RTT 功能增加了一個 API,此 API 允許設備測量自身與接入點之間的距離,從而顯著提高室內位置信息精確度。
以下是支持 WLAN RTT 的兩款推薦設備:Google Wifi 和 Compulab 的 Filet2 接入點(使用 5GHz 頻段,帶寬設為 40MHz)。

2、Android 9.0 的初始 API 級別

對于搭載 Android 9.0 的設備,請將屬性 ro.product.first_api_level 設置為在代號、標記和細分版本號上找到的有效值。

對于搭載 Android 8.x 或更低版本的設備,請為產品的第一個版本取消設置(移除)屬性 ro.product.first_api_level。對于所有后續版本,請將 ro.product.first_api_level 設置為正確的 API 級別值。

3、Android 9.0 引入了 Open Mobile API 測試用例,用于檢查安全元件底層實現是否符合標準,需要特殊的SIM卡進行測試。

4、視頻播放的存儲空間要求
以下是按最大視頻播放分辨率列出的存儲空間要求:

  • 480x360: 98MB
  • 720x480: 193MB
  • 1280x720: 606MB
  • 1920x1080: 1863MB

5、部分基本要求

  • 屏幕尺寸至少為 2.5 英寸。

  • 必須支持第三方輸入法編輯器應用。

  • 必須提供“Home”、“Recents”和“Back ”功能;“Back ”功能的常規按下事件和長按事件都可以發送到前臺應用,上述事件不得被系統占用,且可從 Android 設備外部觸發。

  • 必須支持觸摸屏輸入。

  • 如果包含各種sensor,則需要保證sensor的最低性能要求,參考CDD文檔。

  • 32位系統和64位系統,在不同的密度和分辨率的情況下,對最小內存都有要求,參考CDD文檔。

  • 必須包含麥克風,必須具有音頻輸出機制,并聲明 android.hardware.audio.output。

  • 必須支持多種音頻視頻編解碼,具體參考CDD文檔。

Android 9.0 CDD文檔:https://source.android.com/compatibility/9/android-9-cdd
百度云盤:https://pan.baidu.com/s/13Cwr5rj9GrC2qhDoM-NCvg 提取:gyth
----待更新----


三、CTS-ON-GSI

----待更新----


四、VTS

1、Android 8.x VTS測試包括98個測試模塊,總共約6100項測試;Android 9.0 VTS測試則包括212個模塊,總共約 7790 項測試。

2、對于搭載Android 9.0 的設備,有兩組可用的 GSI:一組用于搭載 Android 9 的設備,另一組則用于升級到 Android 9 的設備。

搭載 Android 9 的設備可以為 A/B 和非 A/B 設備使用相同的 GSI。

例如,要測試基于 arm64 ABI 且包含與 2018-08-05 Android 安全安全補丁程序的設備,請選擇以下 GSI:

system_aosp_arm64_20180805.img

升級到 Android 9 的設備應使用與該設備(是否支持 A/B 更新)的 ABI 對應的 GSI 以及設備的 security_patch_level。這種方式與搭載 Android 8.x 的設備的方式類似。

例如,要測試基于 arm64 ABI、支持 A/B 更新且包含與 2018-08-05 Android安全補丁程序的設備,請選擇以下 GSI:

system_aosp_arm64_ab_20170801.img
3、注意:運行 Android 8.x 的設備不需要SIM 卡。運行 Android 9.0 的設備則必須包含一張用于 VTS 測試的 SIM 卡。用于VTS測試的SIM卡與用于CTS中Open Mobile API測試的SIM卡是同一種特殊的SIM卡。

4、確保設備已連接到支持 IPv6 的 WLAN 網絡(如果該設備具有GPS/WLAN/移動網絡功能,必須將其恢復出廠設置并開啟位置信息設置)。


五、GTS

GMS包更新了以下幾個feature:

  • Uncompressed DEX in Privileged Apps
  • AndroidPlatformServices
  • GoogleRestore
  • Device Health Services (Turbo)
  • GmsCore APK Variant for Android 9
  • GoogleContacts is Non-privileged
  • Non-SDK API Access Whitelist
  • Google Media Effects Library Deprecation
  • Use of PRODUCT_SYSTEM_DEFAULT_PROPERTIES
  • Updated Wizard Scripts
  • Updated SearchLauncher

1、Android 9.0不再需要com.google.android.media.effects.jar,包括已升級的設備。

2、Android 9.0如果預加載GoogleContacts,則必須為非特權(non-privileged ),版本必須高于2.5。

3、Android 9.0設置向導中的A backup from the cloud選項要出現在Google帳戶登錄界面之前。

4、Android 9.0的GMS備份功能支持端到端加密備份,需要注意鎖屏實現機制。

5、Android 9.0的GMS設備必須保留SettingsBackupAgent。

6、Android 9.0引入了App standby buckets,讓平臺根據用戶限制應用程序。如果啟用此功能,Google必須可以更新限制參數,以確保應用開發者的一致性。

具體的內容請參考以下文檔:
鏈接:https://pan.baidu.com/s/1Slz0Y7bXhTEHGWuAVXa6Xg
提取碼:39a0

----待更新----


六、BTS

BTS測試直接測試Android系統鏡像。通過掃描系統鏡像,檢查其中是否預安裝了惡意軟件和其他可能有害的應用 (可能是由 OEM 的供應商和提供商引入的)。BTS 采用了和 Google Play同樣的安全掃描和分析的技術。

注意:Google 會不斷更新數據庫以及用于檢測惡意軟件和安全威脅的技術。所以可能之前通過的版本也會被檢測出來新的問題。

可以通過以下某種方式上傳軟件版本(我們一般通過3PL提交):

Google云端硬盤:google將共享一個 Google 云端硬盤文件夾,可以將自己的版本復制到該文件夾中。

SFTP保管箱:google將為您設置一個安全文件傳輸協議 (SFTP) 帳號,以上傳編譯軟件。

通過3PL提交:使用其中一種支持的格式將固件提交給3PL驗證者。

在后臺,BTS 會自動在 Google 的基礎架構上運行,無法離線使用的內部服務。BTS 完成后,相關結果會出現在 APFE 上。
BTS結果處理:

任何疑似預安裝了惡意軟件或其他問題都將被視為測試失敗無法通過認證。Google只能提供惡意軟件軟件包名稱和惡意軟件類。無法提供關于可能產生的影響、其行為或如何檢測到該行為的詳細信息。

如果Google在版本已獲批準后發現問題,合作伙伴必須及時處理新問題,并發布已根據合作伙伴協議解決相關問題的更新版本。仍然包含問題的新版本將不會獲得批準。

如果認為APK的標記有誤,需要上報給google,并提供盡可能詳細的關于該應用預期功能的信息。提供有關文件來源的詳細信息(尤其是在文件由內部或由供應商制作而成的情況下)。Google會根據具體情況進行調查并處理這些應用。


七、STS

----待更新----


八、Cts Verifier

1、Cts Verifier測試中Android9.0關于camera的測試相對于Android8.x來說更加復雜,測試項也更多,需要重點關注。

----待更新----


九、GMS認證注意事項

1、所有自動化測試套件都會嘗試在運行時下載內容,包括CTS媒體文件或業務邏輯文件。很多情況下防火墻會導致測試準備失敗。可以嘗試嘗試將下面的內容添加到.profile(在Ubuntu上)。

export JAVA_TOOL_OPTIONS =' -  Djava.net.useSystemProxies = true'

2、Android 9.0 強烈建議預加載app的最低目標SDK版本為26或者更高。

3、Android 9.0 必須支持DNS over TLS,并且必須提供UI支持,默認的DNS隱私模式設置應該是自動的。

4、Android 9.0 的Widevine 數字版權管理,Android 9: Version 14 for new devices. Version 13 or 14 for upgrading devices。

5、應用程序崩潰對話框,Android 9.0 改變了App Crash Dialog的行為。它不再出現前臺和后臺應用程序的一次性崩潰。但是,如果應用程序連續崩潰兩次或多次,App Crash Dialog仍會顯示,讓用戶可以選擇查看應用信息或強制關閉應用,不能修改此行為。

6、Android 9.0引入了在AOSP中發布的運營商ID數據庫packages/providers/TelephonyProvider/assets/carrier_list.textpb,不能改變此實現或數據庫的內容,必須使用AOSP中發布的最新版本的運營商ID數據庫。

7、如果滿足某些硬件要求,強烈推薦Android 9.0 支持低延遲,MIDI和專業音頻功能。

- Devices having 2GB or more RAM: [`android.hardware.audio.low_latency`] [`android.software.midi`]
- Devices having 4GB or more RAM: [`android.hardware.audio.pro`]

8、Android 9.0中,如果ActivityManager.isLowRamDevice()為false,相機HAL必須使用android.hardware.camera.device@3.2或更高版本。

如果ActivityManager.isLowRamDevice()為true,則攝像頭HAL可以提供android.hardware.camera.device@1.0版本。但強烈建議使用3.2版本及以上。

9、Android 9.0的設備必須在以下內核版本上運行:

  • 4.4.107 or higher
  • 4.9.84 or higher
  • 4.14.42 or higher
    在2018年下半年推出的SoC必須運行在4.9.8以及以上的內核版本

10、VNDK library classification and ABI
Android 9.0的設備必須默認打開 VNDK snapshots :BOARD_VNDK_VERSION := current

11、Android 9.0的設備必須在設備的非易失性存儲上具有以下分區:

  • system - for the framework-specific portions of the code
  • vendor - for the chipset-specific portions of the code
  • boot - for the Linux kernel image

12、Android 9.0的設備的設備必須使用system-as-root

- BOARD_BUILD_SYSTEM_ROOT_IMAGE := true

13、系統SDK要求
Android 9.0 的設備必須通過設置BOARD_SYSTEMSDK_VERISONS:= 28來啟用SystemSDK。

Vendor分區中的所有APK和JAR都不得使用系統分區中定義的隱藏API。

無論API是否來自AOSP,系統分區中定義的隱藏API都不得使用@SystemApi進行注釋。

14、Android 9.0的設備必須定義PRODUCT_SHIPPING_API_LEVEL, 其值必須大于等于28。

15、Android 9.0 的Managed profile badging標記有變化,如下圖:


unnamed.png

----待更新----

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,283評論 6 530
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 97,947評論 3 413
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,094評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,485評論 1 308
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,268評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,817評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,906評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,039評論 0 285
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,551評論 1 331
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,502評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,662評論 1 366
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,188評論 5 356
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,907評論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,304評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,563評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,255評論 3 389
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,637評論 2 370