三层安全模式的区别

作者: 朱明武(mingmo)
电量计有三层安全模式:sealed(加锁), unsealed(解锁), full access(全访问)。在不同安全模式下切换需要不同的安全密码。下面以bq40z50-r2为例(bq40z50-r1/r2/r3均适用)介绍三层安全模式的区别、模式切换方法、如何读取密码及如何修改密码。
1、三层安全模式的区别
不同安全模式下电量计的信息访问权限不同。
sealed(加锁)模式下,标准sbs命令(command)可以访问、部分扩展命令(extended command)不能使用、不能读写data memory参数(不能导出导入gg文件)、不可以烧录chem id、不能烧录或导出固件(fw)。具体sbs命令访问权限请参考电量计技术参考手册(technical reference manual),里面manufactureraccess() command list表格的available in sealed mode标记了能否访问。
unsealed(解锁)模式下,标准sbs命令(command)可以访问、部分扩展命令(extended command)不能使用、可以读写data memory参数(可以导出导入gg文件)、可以烧录chem id、不能烧录或导出固件 (fw)。
full access(全访问)模式下,所有sbs命令(command)可以访问、可以读写data memory参数(可以导出导入gg文件)、可以烧录chem id、不能烧录或导出固件 (fw)。bq40z50-r2从ti出货时默认是full access(全访问)模式。
2、三层安全模式之间切换方法
2.1 从full access or unsealed 进入 sealed
往manufactureraccess()发送命令 0x0030 即可让bq40z50-r2进入sealed(加锁)模式。通过检查旗标operationstatus()[sec1, sec0] = 1,1.可以判断电量计处于sealed(加锁)模式。
注意,如果该电量计的srec固件曾经加锁过,那么在full access or unsealed模式下发送复位命令或导出srec固件后都会使得电量计加锁,进入sealed模式。
2.2 从sealed 进入unsealed
从sealed 进入unsealed需要往manufactureraccess()发送两个字的unseal key密码。默认unseal key第一个字是0x0414,第二个字是0x3672。先发送第一个字,接着在4秒内发第二个字,中间不能有其它命令读写电量计。通过检查旗标operationstatus()[sec1, sec0] = 1,0.可以判断电量计处于unsealed(解锁)模式。
2.3从unsealed 进入full access
从unsealed进入full access需要往manufactureraccess()发送两个字的full access key密码。默认full access key第一个字是0xffff,第二个字是0xffff。先发送第一个字,接着在4秒内发第二个字,中间不能有其它命令读写电量计。通过检查旗标operationstatus()[sec1, sec0] = 0,1.可以判断电量计处于full access(全访问)模式。
3、如何读取安全密码
在解锁模式下用manufactureraccess() 0x0035命令读取安全密码(security keys)。
首先,打开bqstudio的advanced comm smb界面,配置target addr = 16 (hex);在write block 位置输入 44(hex),在 block中输入 35 00 ,然后点击write block 按钮。
然后,在 read block 位置输入 44(hex),点击 read block按钮,即可读取电量计的安全密码。返回的数据以小端序显示,即低字节在前、高字节在后。比如下图1,返回14 04 72 36 ff ff ff ff,其中0414是unseal key的第一个字节,3672是unseal key的第二个字节,ffff是full access key的第一个字节,最后一组ffff是full access key的第二个字节。
图1 读取密码
4、如何修改安全密码
在解锁模式下用manufactureraccess() 0x0035命令修改安全密码(security keys)。下面举例把bq40z50-r2默认unseal key密码0x0414, 0x3672修改为0x1234, 0x5678,保留full access key(默认0xffff, 0xffff)不变。
打开bqstudio的advanced comm smb界面,配置target addr = 16 (hex);在write block 位置输入 44(hex),在 block中输入 35 00 34 12 78 56 ff ff ff ff,然后点击write block 按钮,如图2所示。 transaction log显示绿色表示字节已经成功发送电量计。
按照第3节介绍的安全密码读取方法,读回密码检验密码是否修改正确。如下图3,在 read block 返回35 00 34 12 78 56 ff ff ff ff表示密码修改成功。
制定密码时要注意unseal key的第一个字节与full access key的第一个字节不能相同。比如unseal key 0x1234, 0x5678与full access key 0x1234, 0xffff的第一个字节相同为0x1234,因此这不是有效的密码。


再谈 HPM6700/6400/6300 产品系列串口接收不定长数据的方式
AI+SaaS可以为新零售带来什么吗
苹果M1芯片Mac成功运行Windows应用
基于89C52单片机的独立按键原理图
三菱PLCGXworks2如何和电脑联线
三层安全模式的区别
在Linux Kernel 5.10中,华为提交的补丁数量为1434个
广东省工信厅调研组实地考察河套国际性产业与标准组织聚集区
那些年,我们关注过的放大电路设计要点
iPhone 8采用苹果新专利,已确认没有AR功能?
无人机巡检管理系统上线仁新高速,开启巡检病害“智慧眼”
韩国 LG 关闭 PCB 业务,国内多家中小 PCB 厂商破产,为何?
Petalinux BSP安装与构建过程
土壤水分传感器选择依据浅谈分享
如何实现__import__()动态导入
惠州数据中心预计每年创造32亿产值 SA网络最快5月17日启动
苹果面临重重困难,依然拥有强大竞争力
小米米粉节:小米MIX、小米Note2现货开卖不用抢了!
破百快充扎堆出现 破百快充的技术原理
AXIe 模块化测试标准