Android Attestation key導入步驟(Qualcomm Platform)

                                                                   預置谷歌 attestion key
目錄
預置谷歌 attestion key ............................................................................................................ 1
1、背景介紹 ............................................................................................................................. 1
2、 attestion key 組成部分 ....................................................................................................... 1
2.1、 Attestion key 組成 ....................................................................................................... 1
2.2、谷歌 keybox ................................................................................................................. 2
3、 Attestion key 預製方法....................................................................................................... 2
3.1、預製前提條件(RPMB 初始化) ............................................................................... 2
3.2、預製 Attestion key ....................................................................................................... 3


1、背景介紹
android8.0 開始谷歌要求增加每臺機器預製谷歌提供的 Attestion Key 的需求,該需求要
求出每臺機器都預製谷歌提供的 key,因此需要 oem 廠商在工廠完成預製。沒有預製該
key 將直接導致機器 cts 相關測試項失敗。
2、 attestion key 組成部分
2.1、 Attestion key 組成
每條 Attestion key 由兩條證書鏈組成,分別對應算法爲 ecdsa 和 rsa,證書鏈包括一個
私鑰和三級證書,具體形式如下:


2.2、 Google keybox
谷歌提供的 keybox 是 attestion key 的集合,會包含 n 個 attestion key,通過
DeviceID 來區分,在配置時選擇不同的 DeviceID 可以進行不同的 attestion key 配置。


注:因目前只有一個 key,無法列舉 Device ID。
3、 Attestion key 預製方法
3.1、預製前提條件(RPMB 初始化)
在預製 attestion key 前需要保證 RPMB 已經初始化,否則 RPMB 無法使用會導致預製
key 功能失效。
初始化 RPMB(手機連接電腦,確保 adb 可以使用)
adb root
adb shell
qseecom_sample_client smple64 v 14 1
在命令提示下選擇 1 即可
具體操作如下圖:


完成以上命令後需要重起手機,以保證 RPMB 正常初始化。
3.2、預製 Attestion key
在完成 RPMB 初始化並重起手機後,進行 Attestion key 的預製。預製使用搞通內置的
keybox 工具。具體操作如下:
(1) 手機連接電腦,確保 adb 可以使用
(2) 通過以下命令進行
adb root
adb push keybox.xml /data/
adb shell
cd /data/
LD_LIBRARY_PATH=/vendor/lib/hw KmInstallKeybox keybox.xml
dev1 true
說明:keyboxes.xml 爲谷歌提供的 attestion key 庫,裏面包含 n 條 attestion key
dev1 爲對應 key 的設備 ID,如 xxx_53600000001

燒入原理爲將 keybox.xml 文件中對應 DeviceID 爲xxx_53600000001
的一條 attestion key 燒入手機中。
具體如下圖:

注:預置成功需要重啓一次手錶,保證 attestion key 在重啓時生效。 FAQ: (1)對於 RPMB 的初始化,每臺手機只要做過一次,就無需在做,無論空片刷機或二次 升級都不會改變這個狀態 (2) attestion key 的配置,需要在每次空片刷機後重新配置,二次升級不會影響 attestion key 的配置 (3)在配置過程中,一定要保證 rpmb 初始化後在進行 attestion key 的配置,順序顛 倒會導致必須重新空片刷機後纔可以進行配置 (4)配置過程中返回 error=1004,表示機器已經預製過 attestion key。 (5)配置過程中返回 error=32,表示預製的文件格式不正確。 (6)配置過程中返回 error=10005,表示 RPMB 未預置。