CN113064621A - 一种智能设备安卓系统对密码键盘系统固件升级的方法 - Google Patents
一种智能设备安卓系统对密码键盘系统固件升级的方法 Download PDFInfo
- Publication number
- CN113064621A CN113064621A CN202110399885.7A CN202110399885A CN113064621A CN 113064621 A CN113064621 A CN 113064621A CN 202110399885 A CN202110399885 A CN 202110399885A CN 113064621 A CN113064621 A CN 113064621A
- Authority
- CN
- China
- Prior art keywords
- password keyboard
- keyboard system
- firmware
- parameter
- data packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000004891 communication Methods 0.000 claims abstract description 11
- 230000008569 process Effects 0.000 claims description 36
- 230000004044 response Effects 0.000 claims description 21
- 230000005540 biological transmission Effects 0.000 claims description 6
- 229940057373 c-time Drugs 0.000 claims description 3
- 230000003993 interaction Effects 0.000 claims description 3
- 238000012795 verification Methods 0.000 claims description 3
- 239000000047 product Substances 0.000 description 9
- 238000012360 testing method Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000007795 chemical reaction product Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
- G06F3/0202—Constructional details or processes of manufacture of the input device
- G06F3/0219—Special purpose keyboards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种智能设备安卓系统对密码键盘系统固件升级的方法,包括以下步骤:步骤F1,智能设备包括安卓系统和密码键盘系统;在智能设备内部,使安卓系统和密码键盘系统直接通过串口硬件进行连接;步骤F2,智能设备的安卓系统,采用内部串口通信方式,对密码键盘系统完成固件升级。本发明提供的智能设备安卓系统对密码键盘系统固件升级的方法,智能设备的安卓系统通过内部串口通信方式,对密码键盘系统完成固件升级,解决了传统PC端对密码键盘系统进行固件升级所具有的安全问题,本发明提高了对密码键盘系统固件升级的安全性。
Description
技术领域
本发明属于固件升级技术领域,具体涉及一种智能设备安卓系统对密码键盘系统固件升级的方法。
背景技术
智能设备,例如智能POS设备,配置安卓Android系统与密码键盘系统。由于密码键盘系统为单片机平台,因此,当需要对密码键盘系统进行固件升级时,采用以下方式:PC端为android系统平台,密码键盘系统外接串口到PC端,实现PC端与密码键盘系统进行硬件连接,然后,通过PC端对密码键盘系统进行固件升级。
此种固件升级方式存在以下问题:
由于密码键盘系统主要用于密码输入、刷卡等安全管控,因此,对密码键盘系统的安全管控要求比较严格,采用传统的PC端对密码键盘系统进行固件升级的方式,需要密码键盘系统外接串口硬件,对密码键盘系统安全产生一定的风险,无法满足密码键盘系统安全要求。
发明内容
针对现有技术存在的缺陷,本发明提供一种智能设备安卓系统对密码键盘系统固件升级的方法,可有效解决上述问题。
本发明采用的技术方案如下:
本发明提供一种智能设备安卓系统对密码键盘系统固件升级的方法,包括以下步骤:
步骤F1,智能设备包括安卓系统和密码键盘系统;在智能设备内部,使安卓系统和密码键盘系统直接通过串口硬件进行连接;
步骤F2,智能设备的安卓系统,采用内部串口通信方式,对密码键盘系统完成固件升级。
优选的,步骤F2具体包括:
预先定义安卓系统和密码键盘系统进行通信的数据包结构;所述数据包结构包括五个字段,分别为:Direction字段、Step字段、Len字段、Content字段和CRC16字段;
所述Direction字段用于标识传输方向,其中,Host表示由安卓系统发往密码键盘系统;Chip表示由密码键盘系统发往安卓系统;
Step字段表示下载交互步骤编号,共分为五个步骤,顺次进行;
Len字段表示数据包长度;
Content字段用于存放数据包的内容;
CRC16字段为数据包的CRC校验字段;
固件升级过程包括Step1-Step5:
Step1,当安卓系统需要对密码键盘系统进行固件升级时,安卓系统持续向密码键盘系统发送开始进行固件升级的指令;
然后,安卓系统判断是否在设定时间内接收到来自于密码键盘系统的数据应答包;如果没有,则下载超时,表明密码键盘系统固件升级失败,结束流程;如果有,则执行Step2;
其中,对于密码键盘系统,当接收到来自于安卓系统的固件升级的指令时,密码键盘系统向安卓系统返回的数据应答包携带以下信息:
Direction字段标识从密码键盘系统发往安卓系统;
Step字段为Step1;
Content字段携带有密码键盘系统的芯片序号C-SN、调试阶段的启动等待时间C-Time、调试阶段参数信息C-Info和密码键盘系统当前所处阶段Stage;其中,密码键盘系统当前所处阶段Stage包括调试阶段和产品阶段;
Step2,安卓系统向密码键盘系统发送获取密码键盘系统相关参数的指令;然后,安卓系统判断是否在设定时间内接收到来自于密码键盘系统的数据应答包;如果没有,则表明升级超时,安卓系统退出下载流程进入启动流程,即:返回Step1;如果有,则执行Step3;
其中,对于密码键盘系统,当接收到来自于安卓系统的获取密码键盘系统相关参数的指令时,密码键盘系统向安卓系统返回的数据应答包携带以下信息:当前所处阶段Stage和设备序号E-SN;其中,如果密码键盘系统当前没有被写入设备序号E-SN,则设备序号E-SN为空;
Step3,安卓系统向密码键盘系统发送芯片参数数据包;然后,安卓系统判断是否在设定时间内接收到来自于密码键盘系统的数据应答包;如果没有,则表明升级超时,安卓系统退出下载流程进入启动流程,即:返回Step1;如果有,则执行Step4;
其中,安卓系统向密码键盘系统发送的芯片参数数据包,包括:需写入的序列号E–SN、本阶段的启动等待延时E–Time、flash加扰配置和RSA公钥号;其中,需写入的序列号E–SN是指:如果Step2接收到的设备序号E-SN为空,则需写入的序列号E–SN为向密码键盘系统写入的用于对密码键盘系统唯一标识的序列号E–SN;如果Step2接收到的设备序号E-SN不为空,则需写入的序列号E–SN为空;
flash加扰配置为:配置对密码键盘系统的flash是否进行加扰操作;
Step4,安卓系统向密码键盘系统发送固件信息数据包;然后,安卓系统判断是否在设定时间内接收到来自于密码键盘系统的数据应答包;如果没有,则表明升级超时,安卓系统退出下载流程进入启动流程,即:返回Step1;如果有,则执行Step5;
其中,安卓系统向密码键盘系统发送的固件信息数据包,包括:
Refresh参数,含义为:本次下载是否刷新Flash扰码,即:用于对密码键盘系统的flash进行配置,如果Step3中flash加扰配置为需要对flash进行加扰操作,则Refresh参数代表需要刷新Flash扰码;否则,不需要刷新Flash扰码;
Erase参数,含义为:需要对密码键盘系统的flash擦除的flash区域;
F-Protect参数,含义为:启动密码键盘系统时,flash区域中的只读锁定的区域;
F-Valid参数,含义为:固件数据包文件头结构有效;其中,固件数据包是指Step5中需要发送给密码键盘系统进行固件升级的固件数据包;
sg-Start参数,含义为:固件数据包的起始位置;
sg-Len参数,含义为:固件数据包的长度;
sg-Ver参数,含义为:升级后的程序文件版本;
sg-Opt参数,含义为:使用的HASH选项;
sg-Hash参数,含义为:固件数据包的的HASH校验值;
sg-Crc32参数,含义为:固件数据包的的CRC32校验值;
密码键盘系统接收到来自于安卓系统的固件信息数据包后,根据固件信息数据包的内容,执行相应操作,包括:
如果Refresh参数为需要刷新Flash扰码,则密码键盘系统刷新Flash扰码;
根据Erase参数,密码键盘系统将对应的flash区域擦除;
根据F-Protect参数,密码键盘系统将对应的flash区域只读锁定;
读取F-Valid参数,然后,根据sg-Start参数、sg-Len参数、sg-Hash参数和sg-Crc32参数,密码键盘系统获得固件数据包的起始位置、长度、HASH校验值和CRC32校验值;
Step5,安卓系统向密码键盘系统发送固件数据包;然后,安卓系统判断是否在设定时间内接收到来自于密码键盘系统的升级成功应答;如果没有,则表明升级超时,安卓系统退出下载流程进入启动流程,即:返回Step1;如果有,则表明密码键盘系统升级成功,结束流程;
其中,安卓系统向密码键盘系统发送的固件数据包,包括:
F-Unlock参数:写入固件数据包时,密码键盘系统的Flash对应的只读寄存器的值,即:操作flash前需解除只读保护;
F-Addr参数:表示固件数据包的起始地址;
F-Data参数:表示固件数据包的具体内容;
其中,在固件数据包超过1K时,安卓系统需分块发送固件数据包,直至分块全部发送完成;
密码键盘系统接收到来自于安卓系统的固件数据包后,根据固件数据包的内容,执行相应操作,包括:
根据F-Unlock参数,密码键盘系统将flash的对应区域解除只读保护;
根据F-Addr参数和F-Data参数,定位到固件数据包的具体内容;然后,根据Step4的sg-Start参数、sg-Len参数、sg-Hash参数和sg-Crc32参数,对固件数据包进行校验,如果校验通过,则将固件数据包写入到Flash对应区域,执行Flash,完成对密码键盘系统的固件升级。
本发明提供的一种智能设备安卓系统对密码键盘系统固件升级的方法具有以下优点:
本发明提供的智能设备安卓系统对密码键盘系统固件升级的方法,智能设备的安卓系统通过内部串口通信方式,对密码键盘系统完成固件升级,解决了传统PC端对密码键盘系统进行固件升级所具有的安全问题,本发明提高了对密码键盘系统固件升级的安全性。
附图说明
图1为本发明提供的一种智能设备安卓系统对密码键盘系统固件升级的方法的流程示意图。
具体实施方式
为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明提供的智能设备安卓系统对密码键盘系统固件升级的方法,智能设备的安卓系统通过内部串口通信方式,对密码键盘系统完成固件升级,解决了传统PC端对密码键盘系统进行固件升级所具有的安全问题,本发明提高了对密码键盘系统固件升级的安全性。
参考图1,本发明提供的一种智能设备安卓系统对密码键盘系统固件升级的方法,包括以下步骤:
步骤F1,智能设备包括安卓系统和密码键盘系统;其中,安卓系统可称为android系统,密码键盘系统可称为Dock系统。在智能设备内部,使安卓系统和密码键盘系统直接通过串口硬件进行连接;
步骤F2,智能设备的安卓系统,采用内部串口通信方式,对密码键盘系统完成固件升级。
步骤F2具体包括:
预先定义安卓系统和密码键盘系统进行通信的数据包结构;所述数据包结构包括五个字段,分别为:Direction字段、Step字段、Len字段、Content字段和CRC16字段;
所述Direction字段用于标识传输方向,其中,Host表示由安卓系统发往密码键盘系统;Chip表示由密码键盘系统发往安卓系统;
Step字段表示下载交互步骤编号,共分为五个步骤,顺次进行;
Len字段表示数据包长度;
Content字段用于存放数据包的内容;
CRC16字段为数据包的CRC校验字段;
固件升级过程包括Step1-Step5,因此,密码键盘系统下载固件数据包流程共分为5步,分别标记为Step1、Step2、Step3、Step4、Step5。其中Step1、2为下载建立连接过程数据包,Step1、2超时,将导致芯片退出下载流程进入启动流程。Step3为芯片参数数据包,需要升级到产品阶段时,需在Step3中携带RSA2048公钥、产品阶段的配置信息。Step4为固件信息数据包,用于向芯片传递固件信息。Step5为固件数据包(固件超过1K时,分块下载),用于传递固件程序数据。
Step1,当安卓系统需要对密码键盘系统进行固件升级时,安卓系统持续向密码键盘系统发送开始进行固件升级的指令;
例如,安卓系统持续发送0x7F,向密码键盘系统表明需要下载固件数据包进行升级。密码键盘系统连续收到10个正确的0x7F后,回复数据应答包。
然后,安卓系统判断是否在设定时间内接收到来自于密码键盘系统的数据应答包;如果没有,则下载超时,表明密码键盘系统固件升级失败,结束流程;如果有,则执行Step2;
其中,对于密码键盘系统,当接收到来自于安卓系统的固件升级的指令时,密码键盘系统向安卓系统返回的数据应答包携带以下信息:
Direction字段标识从密码键盘系统发往安卓系统;
Step字段为Step1;
Content字段携带有密码键盘系统的芯片序号C-SN、调试阶段的启动等待时间C-Time、调试阶段参数信息C-Info和密码键盘系统当前所处阶段Stage;其中,密码键盘系统当前所处阶段Stage包括调试阶段和产品阶段;
具体的,密码键盘系统的BootLoader将芯片(为密码键盘系统的芯片)生命周期划分为4个阶段,每一阶段只可向相邻下一阶段升级,不可回退(写入OTP,不可擦除和重写)。
1.测试阶段:用于芯片厂商对芯片进行检测。此阶段芯片存储器(OTP、FLASH、RAM)处于初始状态,芯片生产厂商可以下载程序测试芯片及外围接口,此阶段不设保护。芯片通过电路测试和性能测试后,在OTP中打入质检测试标记、注入SN(唯一序号)。芯片进入下一阶段(调试阶段)。
2.调试阶段:用于设备厂商对芯片的软硬件调试。调试阶段设备厂商可能会频繁下载调试固件,同时芯片尚未成为成熟产品,所以对该阶段只提供基本保护(保护芯片身份信息:SN、测试标记)。当开发完成后,设备厂商向芯片注入RSA公钥(用于下载认证和签名),同时可根据OTP中版本区域值,对固件版本进行管理。注入RSA公钥后,芯片进入产品阶段。
3.产品阶段:芯片与其它软硬件结合,以终端产品形式供用户使用。此阶段芯片工作于用实际产品环境中,根据安全配置,设备厂商可对芯片固件程序进行更新升级(需验证签名)。
4.结束:芯片硬件达到使用寿命。
Step2,安卓系统向密码键盘系统发送获取密码键盘系统相关参数的指令;然后,安卓系统判断是否在设定时间内接收到来自于密码键盘系统的数据应答包;如果没有,则表明升级超时,安卓系统退出下载流程进入启动流程,即:返回Step1;如果有,则执行Step3;
其中,对于密码键盘系统,当接收到来自于安卓系统的获取密码键盘系统相关参数的指令时,密码键盘系统向安卓系统返回的数据应答包携带以下信息:当前所处阶段Stage和设备序号E-SN;其中,如果密码键盘系统当前没有被写入设备序号E-SN,则设备序号E-SN为空;其中,当前所处阶段Stage是指调试阶段或产品阶段。设备序号E-SN为用于唯一标识密码键盘系统的序列号。
Step3,安卓系统向密码键盘系统发送芯片参数数据包;然后,安卓系统判断是否在设定时间内接收到来自于密码键盘系统的数据应答包;如果没有,则表明升级超时,安卓系统退出下载流程进入启动流程,即:返回Step1;如果有,则执行Step4;
其中,安卓系统向密码键盘系统发送的芯片参数数据包,包括:需写入的序列号E–SN、本阶段的启动等待延时E–Time、flash加扰配置和RSA公钥号;其中,需写入的序列号E–SN是指:如果Step2接收到的设备序号E-SN为空,则需写入的序列号E–SN为向密码键盘系统写入的用于对密码键盘系统唯一标识的序列号E–SN;如果Step2接收到的设备序号E-SN不为空,则需写入的序列号E–SN为空;
flash加扰配置为:配置对密码键盘系统的flash是否进行加扰操作;
RSA公钥号是指:密码键盘系统执行升级后的程序时,首先通过RSA公钥号和自身已有的私钥号进行解密,然后,再运行升级后的程序。
Step4,安卓系统向密码键盘系统发送固件信息数据包;然后,安卓系统判断是否在设定时间内接收到来自于密码键盘系统的数据应答包;如果没有,则表明升级超时,安卓系统退出下载流程进入启动流程,即:返回Step1;如果有,则执行Step5;
其中,安卓系统向密码键盘系统发送的固件信息数据包,包括:
Refresh参数,含义为:本次下载是否刷新Flash扰码,即:用于对密码键盘系统的flash进行配置,如果Step3中flash加扰配置为需要对flash进行加扰操作,则Refresh参数代表需要刷新Flash扰码;否则,不需要刷新Flash扰码;
Erase参数,含义为:需要对密码键盘系统的flash擦除的flash区域;
F-Protect参数,含义为:启动密码键盘系统时,flash区域中的只读锁定的区域;
F-Valid参数,含义为:固件数据包文件头结构有效;其中,固件数据包是指Step5中需要发送给密码键盘系统进行固件升级的固件数据包;
sg-Start参数,含义为:固件数据包的起始位置;
sg-Len参数,含义为:固件数据包的长度;
sg-Ver参数,含义为:升级后的程序文件版本;
sg-Opt参数,含义为:使用的HASH选项;
sg-Hash参数,含义为:固件数据包的的HASH校验值;
sg-Crc32参数,含义为:固件数据包的的CRC32校验值;
密码键盘系统接收到来自于安卓系统的固件信息数据包后,根据固件信息数据包的内容,执行相应操作,包括:
如果Refresh参数为需要刷新Flash扰码,则密码键盘系统刷新Flash扰码;
根据Erase参数,密码键盘系统将对应的flash区域擦除;
根据F-Protect参数,密码键盘系统将对应的flash区域只读锁定;
读取F-Valid参数,然后,根据sg-Start参数、sg-Len参数、sg-Hash参数和sg-Crc32参数,密码键盘系统获得固件数据包的起始位置、长度、HASH校验值和CRC32校验值;
Step5,安卓系统向密码键盘系统发送固件数据包;然后,安卓系统判断是否在设定时间内接收到来自于密码键盘系统的升级成功应答;如果没有,则表明升级超时,安卓系统退出下载流程进入启动流程,即:返回Step1;如果有,则表明密码键盘系统升级成功,结束流程;
其中,安卓系统向密码键盘系统发送的固件数据包,包括:
F-Unlock参数:写入固件数据包时,密码键盘系统的Flash对应的只读寄存器的值,即:操作flash前需解除只读保护;
F-Addr参数:表示固件数据包的起始地址;
F-Data参数:表示固件数据包的具体内容;
其中,在固件数据包超过1K时,安卓系统需分块发送固件数据包,直至分块全部发送完成;
密码键盘系统接收到来自于安卓系统的固件数据包后,根据固件数据包的内容,执行相应操作,包括:
根据F-Unlock参数,密码键盘系统将flash的对应区域解除只读保护;
根据F-Addr参数和F-Data参数,定位到固件数据包的具体内容;然后,根据Step4的sg-Start参数、sg-Len参数、sg-Hash参数和sg-Crc32参数,对固件数据包进行校验,如果校验通过,则将固件数据包写入到Flash对应区域,执行Flash,完成对密码键盘系统的固件升级。
综上所述,本发明提供的一种智能设备安卓系统对密码键盘系统固件升级的方法具有以下优点:
本发明提供的智能设备安卓系统对密码键盘系统固件升级的方法,智能设备的安卓系统通过内部串口通信方式,对密码键盘系统完成固件升级,解决了传统PC端对密码键盘系统进行固件升级所具有的安全问题,本发明提高了对密码键盘系统固件升级的安全性。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (2)
1.一种智能设备安卓系统对密码键盘系统固件升级的方法,其特征在于,包括以下步骤:
步骤F1,智能设备包括安卓系统和密码键盘系统;在智能设备内部,使安卓系统和密码键盘系统直接通过串口硬件进行连接;
步骤F2,智能设备的安卓系统,采用内部串口通信方式,对密码键盘系统完成固件升级。
2.根据权利要求1所述的智能设备安卓系统对密码键盘系统固件升级的方法,其特征在于,步骤F2具体包括:
预先定义安卓系统和密码键盘系统进行通信的数据包结构;所述数据包结构包括五个字段,分别为:Direction字段、Step字段、Len字段、Content字段和CRC16字段;
所述Direction字段用于标识传输方向,其中,Host表示由安卓系统发往密码键盘系统;Chip表示由密码键盘系统发往安卓系统;
Step字段表示下载交互步骤编号,共分为五个步骤,顺次进行;
Len字段表示数据包长度;
Content字段用于存放数据包的内容;
CRC16字段为数据包的CRC校验字段;
固件升级过程包括Step1-Step5:
Step1,当安卓系统需要对密码键盘系统进行固件升级时,安卓系统持续向密码键盘系统发送开始进行固件升级的指令;
然后,安卓系统判断是否在设定时间内接收到来自于密码键盘系统的数据应答包;如果没有,则下载超时,表明密码键盘系统固件升级失败,结束流程;如果有,则执行Step2;
其中,对于密码键盘系统,当接收到来自于安卓系统的固件升级的指令时,密码键盘系统向安卓系统返回的数据应答包携带以下信息:
Direction字段标识从密码键盘系统发往安卓系统;
Step字段为Step1;
Content字段携带有密码键盘系统的芯片序号C-SN、调试阶段的启动等待时间C-Time、调试阶段参数信息C-Info和密码键盘系统当前所处阶段Stage;其中,密码键盘系统当前所处阶段Stage包括调试阶段和产品阶段;
Step2,安卓系统向密码键盘系统发送获取密码键盘系统相关参数的指令;然后,安卓系统判断是否在设定时间内接收到来自于密码键盘系统的数据应答包;如果没有,则表明升级超时,安卓系统退出下载流程进入启动流程,即:返回Step1;如果有,则执行Step3;
其中,对于密码键盘系统,当接收到来自于安卓系统的获取密码键盘系统相关参数的指令时,密码键盘系统向安卓系统返回的数据应答包携带以下信息:当前所处阶段Stage和设备序号E-SN;其中,如果密码键盘系统当前没有被写入设备序号E-SN,则设备序号E-SN为空;
Step3,安卓系统向密码键盘系统发送芯片参数数据包;然后,安卓系统判断是否在设定时间内接收到来自于密码键盘系统的数据应答包;如果没有,则表明升级超时,安卓系统退出下载流程进入启动流程,即:返回Step1;如果有,则执行Step4;
其中,安卓系统向密码键盘系统发送的芯片参数数据包,包括:需写入的序列号E–SN、本阶段的启动等待延时E–Time、flash加扰配置和RSA公钥号;其中,需写入的序列号E–SN是指:如果Step2接收到的设备序号E-SN为空,则需写入的序列号E–SN为向密码键盘系统写入的用于对密码键盘系统唯一标识的序列号E–SN;如果Step2接收到的设备序号E-SN不为空,则需写入的序列号E–SN为空;
flash加扰配置为:配置对密码键盘系统的flash是否进行加扰操作;
Step4,安卓系统向密码键盘系统发送固件信息数据包;然后,安卓系统判断是否在设定时间内接收到来自于密码键盘系统的数据应答包;如果没有,则表明升级超时,安卓系统退出下载流程进入启动流程,即:返回Step1;如果有,则执行Step5;
其中,安卓系统向密码键盘系统发送的固件信息数据包,包括:
Refresh参数,含义为:本次下载是否刷新Flash扰码,即:用于对密码键盘系统的flash进行配置,如果Step3中flash加扰配置为需要对flash进行加扰操作,则Refresh参数代表需要刷新Flash扰码;否则,不需要刷新Flash扰码;
Erase参数,含义为:需要对密码键盘系统的flash擦除的flash区域;
F-Protect参数,含义为:启动密码键盘系统时,flash区域中的只读锁定的区域;
F-Valid参数,含义为:固件数据包文件头结构有效;其中,固件数据包是指Step5中需要发送给密码键盘系统进行固件升级的固件数据包;
sg-Start参数,含义为:固件数据包的起始位置;
sg-Len参数,含义为:固件数据包的长度;
sg-Ver参数,含义为:升级后的程序文件版本;
sg-Opt参数,含义为:使用的HASH选项;
sg-Hash参数,含义为:固件数据包的的HASH校验值;
sg-Crc32参数,含义为:固件数据包的的CRC32校验值;
密码键盘系统接收到来自于安卓系统的固件信息数据包后,根据固件信息数据包的内容,执行相应操作,包括:
如果Refresh参数为需要刷新Flash扰码,则密码键盘系统刷新Flash扰码;
根据Erase参数,密码键盘系统将对应的flash区域擦除;
根据F-Protect参数,密码键盘系统将对应的flash区域只读锁定;
读取F-Valid参数,然后,根据sg-Start参数、sg-Len参数、sg-Hash参数和sg-Crc32参数,密码键盘系统获得固件数据包的起始位置、长度、HASH校验值和CRC32校验值;
Step5,安卓系统向密码键盘系统发送固件数据包;然后,安卓系统判断是否在设定时间内接收到来自于密码键盘系统的升级成功应答;如果没有,则表明升级超时,安卓系统退出下载流程进入启动流程,即:返回Step1;如果有,则表明密码键盘系统升级成功,结束流程;
其中,安卓系统向密码键盘系统发送的固件数据包,包括:
F-Unlock参数:写入固件数据包时,密码键盘系统的Flash对应的只读寄存器的值,即:操作flash前需解除只读保护;
F-Addr参数:表示固件数据包的起始地址;
F-Data参数:表示固件数据包的具体内容;
其中,在固件数据包超过1K时,安卓系统需分块发送固件数据包,直至分块全部发送完成;
密码键盘系统接收到来自于安卓系统的固件数据包后,根据固件数据包的内容,执行相应操作,包括:
根据F-Unlock参数,密码键盘系统将flash的对应区域解除只读保护;
根据F-Addr参数和F-Data参数,定位到固件数据包的具体内容;然后,根据Step4的sg-Start参数、sg-Len参数、sg-Hash参数和sg-Crc32参数,对固件数据包进行校验,如果校验通过,则将固件数据包写入到Flash对应区域,执行Flash,完成对密码键盘系统的固件升级。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110399885.7A CN113064621B (zh) | 2021-04-14 | 2021-04-14 | 一种智能设备安卓系统对密码键盘系统固件升级的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110399885.7A CN113064621B (zh) | 2021-04-14 | 2021-04-14 | 一种智能设备安卓系统对密码键盘系统固件升级的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113064621A true CN113064621A (zh) | 2021-07-02 |
CN113064621B CN113064621B (zh) | 2024-06-18 |
Family
ID=76566651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110399885.7A Active CN113064621B (zh) | 2021-04-14 | 2021-04-14 | 一种智能设备安卓系统对密码键盘系统固件升级的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113064621B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102890636A (zh) * | 2011-07-20 | 2013-01-23 | 中兴通讯股份有限公司 | 安卓系统下的固件升级方法及系统 |
WO2016149908A1 (zh) * | 2015-03-24 | 2016-09-29 | 华为技术有限公司 | 一种终端系统的升级方法、终端及系统 |
WO2016202088A1 (zh) * | 2015-06-17 | 2016-12-22 | 中兴通讯股份有限公司 | 引导程序升级方法、嵌入式设备、控制设备及嵌入式系统 |
CN106293812A (zh) * | 2016-07-30 | 2017-01-04 | 广东智慧电子信息产业股份有限公司 | 基于nfc技术的ic卡点检终端及其应用程序升级方法 |
US20180101377A1 (en) * | 2016-10-11 | 2018-04-12 | Barfield, Inc. | Remote application update of measurement device field firmware |
CN109656608A (zh) * | 2019-01-08 | 2019-04-19 | 深圳市网心科技有限公司 | 一种mcu固件升级方法及其相关设备 |
CN110187909A (zh) * | 2019-06-03 | 2019-08-30 | 山东海格尔信息技术股份有限公司 | 一种基于安卓系统的单片机固件升级方法 |
CN112035152A (zh) * | 2020-08-24 | 2020-12-04 | 成都三零嘉微电子有限公司 | 一种SoC芯片固件升级的安全处理系统及方法 |
CN112379901A (zh) * | 2020-11-04 | 2021-02-19 | 深圳市科信通信技术股份有限公司 | 单片机固件升级方法、装置、计算机设备及存储介质 |
-
2021
- 2021-04-14 CN CN202110399885.7A patent/CN113064621B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102890636A (zh) * | 2011-07-20 | 2013-01-23 | 中兴通讯股份有限公司 | 安卓系统下的固件升级方法及系统 |
WO2016149908A1 (zh) * | 2015-03-24 | 2016-09-29 | 华为技术有限公司 | 一种终端系统的升级方法、终端及系统 |
WO2016202088A1 (zh) * | 2015-06-17 | 2016-12-22 | 中兴通讯股份有限公司 | 引导程序升级方法、嵌入式设备、控制设备及嵌入式系统 |
CN106293812A (zh) * | 2016-07-30 | 2017-01-04 | 广东智慧电子信息产业股份有限公司 | 基于nfc技术的ic卡点检终端及其应用程序升级方法 |
US20180101377A1 (en) * | 2016-10-11 | 2018-04-12 | Barfield, Inc. | Remote application update of measurement device field firmware |
CN109656608A (zh) * | 2019-01-08 | 2019-04-19 | 深圳市网心科技有限公司 | 一种mcu固件升级方法及其相关设备 |
CN110187909A (zh) * | 2019-06-03 | 2019-08-30 | 山东海格尔信息技术股份有限公司 | 一种基于安卓系统的单片机固件升级方法 |
CN112035152A (zh) * | 2020-08-24 | 2020-12-04 | 成都三零嘉微电子有限公司 | 一种SoC芯片固件升级的安全处理系统及方法 |
CN112379901A (zh) * | 2020-11-04 | 2021-02-19 | 深圳市科信通信技术股份有限公司 | 单片机固件升级方法、装置、计算机设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
朱琼: "基于嵌入式移动智能终端固件升级系统的设计与实现", 硕士电子, vol. 2014, no. 11, 15 October 2014 (2014-10-15) * |
罗成娥;任海强;: "基于CAN总线的在线升级系统设计与实现", 数字通信, no. 06, 25 December 2013 (2013-12-25) * |
Also Published As
Publication number | Publication date |
---|---|
CN113064621B (zh) | 2024-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107634859B (zh) | 一种固件升级方法及装置 | |
CN107783776B (zh) | 固件升级包的处理方法及装置、电子设备 | |
CN112035152A (zh) | 一种SoC芯片固件升级的安全处理系统及方法 | |
CN105159707A (zh) | 一种安全的金融终端的固件烧写方法及金融终端 | |
CN103745167B (zh) | 单片机的iap方法及装置 | |
US20170109546A1 (en) | Securing of the loading of data into a nonvolatile memory of a secure element | |
CN202584165U (zh) | 一种ic卡生产测试系统 | |
KR20080048545A (ko) | 하드웨어―지원 장치 구성 검출 | |
CN105337995A (zh) | 一种智能卡快速个人化方法及系统 | |
CN111262697A (zh) | 一种芯片晶圆测试控制方法及装置、芯片 | |
CN115220796A (zh) | 安全引导设备 | |
CN109408099A (zh) | 远程fpga固件代码更新系统、方法及介质 | |
CN112231649A (zh) | 一种固件加密处理方法、装置、设备及介质 | |
CN113064621B (zh) | 一种智能设备安卓系统对密码键盘系统固件升级的方法 | |
CN115357274A (zh) | 远程io设备固件升级方法及系统 | |
CN116820528A (zh) | 固件版本升级方法、装置、芯片和电子设备 | |
JP2004503860A (ja) | データ処理方法及び保護された命令の実行のための装置 | |
CN111459496A (zh) | 一种防篡改的程序文件的生成方法、设备的升级方法 | |
CN115688120A (zh) | 安全芯片固件导入方法、安全芯片及计算机可读存储介质 | |
CN115828255A (zh) | 升级签名固件的方法、电子设备和存储介质 | |
CN113626792A (zh) | PCIe Switch固件安全执行方法、装置、终端及存储介质 | |
US20210132859A1 (en) | Content modification control | |
CN115185562B (zh) | 一种基于双核的应用程序在线升级方法、系统及存储介质 | |
CN103744706A (zh) | 一种vci设备程序升级方法和装置 | |
CN111310172B (zh) | 通过反汇编验证处理器执行轨迹的方法及控制部件 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |