天天看點

rk3399_secureboot在linux環境中操作說明

1、在SDK代碼建立檔案夾,放置相關Secureboot工具:

mkdir device/rockchip/rk3399/secureboot //建立目錄,

2、使用SecureBootConsole 工具簽名前,請先指定好type.xml中的晶片類型,例如3288,3399:

例如vim type.xml打開type.xml檔案進行設定為3399,

3399

3、生成公私鑰 (如輸入參數增加-p,則會輸出功能步驟中列印的log資訊)

執行指令: SecureBootConsole -k|-kk SaveKeyDir //generate key -k(1024) -kk(2048),1024和2048是key的類型

例如以下操作: //在目前目錄生成key檔案

SecureBootConsole -k ./ 或者: SecureBootConsole -kk ./ //我這裡rk3399使用SecureBootConsole -kk ./指令

4、簽名分立固件【secure boot固件要求:固件要求boot.img和 recovery.img都需要包含 kernel.img,

即SDK自動編譯腳本build.sh需要添加語句:./mkimage.sh ota,加在make otapackage -j4之後】

給分立固件簽名:trust.img uboot.img recovery.img boot.img //注意:不用單獨給kernel以及resource去簽名

執行指令:SecureBootConsole -si privatekey _path image_path

5、簽名loader

5.1 //Sign Loader soft 1024

[email protected]:/work/czd/rk3399_7.1_ind/Secureboot_rk3399/SecureBootConsole_v1.90$ SecureBootConsole -p -sl publicKey.bin ./Image-rk3399_all/MiniLoaderAll.bin

INFO:Start to sign Loader(MiniLoaderAll.bin).

INFO:Sign loader succeed.

6、簽完loader和分立固件後對固件進行打包(update.img)

./mkupdate.sh //執行linux打包工具Linux_Pack_Firmware/rockdev中的mkupdate.sh腳本,把上面已經簽名的loader和分立固件打包成update.img檔案

7、Make efuse ota update.zip //即編譯ota 簽名的固件包

7.1確定build/tools/目錄有drmsigntool簽名工具,如果沒有,需要添加;

7.2把上面生成的key(公私密鑰)拷貝到build/target/product/security/目錄。

7.3執行正常的ota打包即可。

以上的4, 5,6步驟可以直接添加到一個shell腳本檔案中實作。

----------------------rk3399 command------------------------

SecureBootConsole -kk SaveKeyDir //生成密鑰

sudo ./SecureBootConsole -slx privateKey.bin publicKey.bin Image/MiniLoaderAll.bin //簽名 loader

sudo ./SecureBootConsole -si privateKey.bin Image/recovery.img //簽名recovery.img

sudo ./SecureBootConsole -si privateKey.bin Image/boot.img //簽名boot.img

sudo ./SecureBootConsole -si privateKey.bin Image/trust.img //簽名trust.img

sudo ./SecureBootConsole -si privateKey.bin Image/uboot.img //簽名uboot.img

./mkupdate.sh //打包簽名的loader和分立固件成update.img,在Linux_Pack_Firmware/rockdev中執行mkupdate.sh腳本

sudo ./SecureBootConsole -sh privateKey.bin update.img //固件打包好後,簽固件的md5值

----------------------rk3399 command------------------------

注意問題點:

1、SecureBootConsole生成key時,參數使用-k(1024),然後就可以使用以下語句簽名loader:

//Sign Loader soft 1024

SecureBootConsole -sl publickey_path loader_path

如果是-kk(2048)則需要使用下面的語句簽名loader,否則會簽名失敗:

//SignEx Loader (efuse 2048)

SecureBootConsole -slx privatekey_path publickey _pathl oader_path

2、key的放置目錄

參考文檔:

RK3399_Efuse_Operation_Instructions_V1.00_20190214.pdf

SecureBootConsole 說明文檔.docx

繼續閱讀