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
czd@ubt144c:/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.
rk3399和6618?/***************************************************/
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------------------------
rk3399性能,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------------------------
booti命令?注意問題點:
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
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态