著录项信息
专利名称 | 一种在智能终端中校验软件版权的方法及装置 |
申请号 | CN201310533210.2 | 申请日期 | 2013-10-31 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2014-01-29 | 公开/公告号 | CN103544413A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F21/12 | IPC分类号 | G;0;6;F;2;1;/;1;2查看分类表>
|
申请人 | 宇龙计算机通信科技(深圳)有限公司 | 申请人地址 | 广东省深圳市南山区高新技术产业园(北区)梦溪道2号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 宇龙计算机通信科技(深圳)有限公司 | 当前权利人 | 宇龙计算机通信科技(深圳)有限公司 |
发明人 | 彭日亮 |
代理机构 | 深圳市顺天达专利商标代理有限公司 | 代理人 | 郭伟刚 |
摘要
本发明公开了一种在智能终端中校验软件版权的方法包括以下步骤:S1、初始化所述智能终端的软硬件环境;S2、读取智能终端中预存的硬件熔丝eFUSE标记值;S3、根据eFUSE标记值判断智能终端中的寄存器是否完成熔丝;S4、若寄存器已经完成熔丝,校验智能终端的软件的版权;若寄存器未完成熔丝,驱动所述智能终端进入eFUSE模式处理,实施本发明的有益效果是,在智能终端开机后自动执行软件版权的校验整个过程,并且在校验不成功时,提示升级所述软件至授权版本,提升了大规模生产过程中的生产效率和产能,提升了产品竞争力,本发明是还公开了一种在智能终端中校验软件版权的装置。
1.一种在智能终端中校验软件版权的方法,其特征在于,包括以下步骤:
S1、初始化所述智能终端的软硬件环境;
S2、读取所述智能终端中预存的硬件熔丝eFUSE标记值;
S3、根据所述eFUSE标记值判断所述智能终端中的寄存器是否完成熔丝;
S4、若所述寄存器已经完成熔丝,校验所述智能终端的软件的版权;若所述寄存器未完成熔丝,驱动所述智能终端进入eFUSE模式处理;
其中,所述步骤S4中,驱动所述智能终端进入eFUSE模式处理包括以下子步骤:
S41b、驱动所述智能终端进入eFUSE模式;
S42b、控制内置eFUSE控制电源的开启;
S43b、根据所述智能终端的软件的授权秘钥和证书,对相应的eFUSE寄存器赋值并在所述eFUSE寄存器中写入所述赋值;
S44b、读回写入eFUSE寄存器中的所述赋值,根据读回的所述赋值判断所述步骤S43b中写入操作是否成功;
S45b、如果所述写入操作成功,设置所述eFUSE标记值为已经完成熔丝的状态,如果所述写入操作不成功,设置所述eFUSE标记值为未完成熔丝的状态。
2.根据权利要求1所述的在智能终端中校验软件版权的方法,其特征在于,所述步骤S4中,校验所述智能终端的软件的版权包括以下子步骤:
S41a、读取所述软件的版权信息;
S42a、根据所述版权信息判断所述软件是否经过授权;
S43a、如果所述软件经过授权,则校验通过,所述智能终端正常开机;如果未经授权,则提示所述软件未经授权,并提示升级所述软件至授权版本。
3.根据权利要求2所述的在智能终端中校验软件版权的方法,其特征在于,所述子步骤S41a中,所述软件的版权信息包括所述软件的被授权的密钥和证书;
所述子步骤S42a包括以下操作:
判断所述软件的被授权的密钥和证书是否与相应写入到所述寄存器中的参数值一致,如果所述软件的被授权的密钥和证书与相应写入到所述寄存器中的参数值一致,则判断所述软件已经经过授权,如果所述软件的被授权的密钥和证书与相应写入到所述寄存器中的参数值不一致或者所述软件没有被授权的密钥和证书,则判断所述软件未经授权。
4.根据权利要求1所述的在智能终端中校验软件版权的方法,其特征在于,还包括以下步骤:
S5、所述设置所述eFUSE标记值为已经完成熔丝的状态步骤之后,重新启动所述智能终端,转到步骤S1,继续执行步骤S1至S4,直到完成校验所述智能终端的软件的版权。
5.根据权利要求1所述的在智能终端中校验软件版权的方法,其特征在于,所述步骤S4还包括以下子步骤:
步骤S40b、在所述步骤S41b之前,预先设置循环执行所述智能终端进入eFUSE模式处理的次数;
S46b、在所述步骤S45b之后,将所述智能终端进入eFUSE模式处理的次数自减1,并判断所述智能终端进入eFUSE模式处理的次数是否等于0;如果此时所述智能终端进入eFUSE模式处理的次数为0,则跳出所述eFUSE模式,并结束校验流程;如果此时所述智能终端进入eFUSE模式处理的次数不为0,则转到步骤S41b,继续执行步骤S41b至S46b。
6.一种在智能终端中校验软件版权的装置,其特征在于,包括以下模块:
初始化模块,用于初始化所述智能终端的软硬件环境;
读取状态模块,用于读取所述智能终端中预存的硬件熔丝eFUSE标记值;
判断模块,用于根据所述eFUSE标记值判断所述智能终端中的寄存器是否完成熔丝;
校验模块,用于在若所述寄存器已经完成熔丝时校验所述智能终端的软件的版权;以及在所述寄存器未完成熔丝时驱动所述智能终端进入eFUSE模式处理;
其中,所述校验模块包括以下单元:
驱动单元,用于驱动所述智能终端进入eFUSE模式;
电源控制单元,用于控制内置eFUSE控制电源的开启;
赋值单元,用于根据所述智能终端的软件的授权秘钥和证书,对相应的eFUSE寄存器赋值并在所述eFUSE寄存器中写入所述赋值;
写入结果判断单元,用于读回写入eFUSE寄存器中的所述赋值,根据读回的所述赋值判断所述赋值单元中写入操作是否成功;
标记设置单元,用于在所述写入操作成功时,设置所述eFUSE标记值为已经完成熔丝的状态,以及在所述写入操作不成功时,设置所述eFUSE标记值为未完成熔丝的状态。
7.根据权利要求6所述的在智能终端中校验软件版权的装置,其特征在于,所述校验模块包括以下单元:
信息读取单元,用于读取所述软件的版权信息;
授权判断单元,用于根据所述版权信息判断所述软件是否经过授权;
校验执行单元,用于在所述软件经过授权时,确定校验通过,并驱动所述智能终端正常开机;以及在所述软件未经授权时,提示所述软件未经授权,并提示升级所述软件至授权版本。
8.根据权利要求7所述的在智能终端中校验软件版权的装置,其特征在于,所述信息读取单元中,所述软件的版权信息包括所述软件的被授权的密钥和证书;
所述授权判断单元包括:
授权状态判断子单元,用于判断所述软件的被授权的密钥和证书是否与相应写入到所述寄存器中的参数值一致,如果所述软件的被授权的密钥和证书与相应写入到所述寄存器中的参数值一致,则据此继续判断所述软件已经经过授权,如果所述软件的被授权的密钥和证书与相应写入到所述寄存器中的参数值不一致或者所述软件没有被授权的密钥和证书,则据此继续判断所述软件未经授权。
9.根据权利要求6所述的在智能终端中校验软件版权的装置,其特征在于,所述智能终端中校验软件版权的装置还包括,
跳转执行模块,用于在标记设置单元设置所述eFUSE标记值为已经完成熔丝的状态之后,重新启动所述智能终端,转到执行初始化模块,继续执行初始化模块、读取状态模块、判断模块、校验模块,直到完成校验所述智能终端的软件的版权。
10.根据权利要求6所述的在智能终端中校验软件版权的装置,其特征在于,所述校验模块还包括,
循环次数设置单元,用于在执行驱动单元之前,预先设置循环执行所述智能终端进入eFUSE模式处理的次数;
循环单元,用于在执行标记设置单元之后,对所述智能终端进入eFUSE模式处理的次数自减1,并判断所述智能终端进入eFUSE模式处理的次数是否等于0;如果此时所述智能终端进入eFUSE模式处理的次数为0,则跳出所述eFUSE模式,并结束校验;如果此时所述智能终端进入eFUSE模式处理的次数不为0,则转到执行驱动单元,继续执行驱动单元、电源控制单元、赋值单元、写入结果判断单元、标记设置单元、循环单元。
一种在智能终端中校验软件版权的方法及装置\n技术领域\n[0001] 本发明涉及软件安全技术领域,更具体地说,涉及一种在智能终端中校验软件版权的方法及装置。\n背景技术\n[0002] 随着智能终端比如智能手机、平板电脑等的发展,安装在这些智能终端中的软件也在不断发展和更新,为了吸引消费者的购买,各终端设计生产厂商也在推出了具有自己特色的软件。这些软件通常是以固件的形式内置在智能终端中,消费者在购买这些智能终端后,很多人都会寻求更新固件,比如从一种操作系统软件改为另外一种操作系统软件,或者从操作系统软件的一个版本更新到另一个版本。这种自行更新固件的行为或破坏智能终端的操作系统的稳定性和安全性,进而影响到了终端设计生产厂商的利益。\n[0003] 为了防止使用者自行更新固件,现有技术的智能终端校验软件的版权技术普遍采用了安全启动(Secure Boot)结合硬件熔丝(eFUSE)保护机制来判定智能终端软件版本是否为授权版本,如果为非授权版本,则不允许智能终端继续开机。\n[0004] 当前的检验智能终端软件的版权的方式,主要是通过以下步骤实现:首先通过专业夹具固定住智能终端,该夹具上带有eFUSE控制器电源,当终端固定在夹具上时,由夹具上的针脚连接eFUSE控制器电源以实现供电;通过USB数据线或其他连线连接终端和安装有仿真器或者专用熔丝软件的PC,然后PC端的仿真器或专用熔丝软件发送指令让智能终端进入eFUSE模式,进入该模式后,再通过相关指令从终端读取相应版权信息判断所述智能终端的软件是否为授权版本。\n[0005] 可以看出,以上操作对于时序有特殊要求,而且需要专业的外部工具配合,而且在操作上也比较繁琐,对操作人员要求很高,对智能终端的大规模生产来说,生产设计厂商不仅会因此增加工位、使用多种工具也会带来高额成本,同时因软件的版权校验的过程时间较长,大大影响相关厂商的生产效率和产能。\n发明内容\n[0006] 本发明要解决的技术问题在于,针对现有技术的上述智能终端软件的版权校验方法需要专业的工具配合,操作繁琐,对操作人员要求高,以及在智能终端的大规模生产过程中,生产设计厂商因此增加工作岗位、使用多种工具带来的高额成本,同时因软件的版权校验的过程时间较长,大大影响相关厂商的生产效率和产能的缺陷,提供一种在智能终端中校验软件版权的方法及装置。\n[0007] 本发明解决其技术问题所采用的技术方案是:构造一种在智能终端中校验软件版权的方法,包括以下步骤:\n[0008] S1、初始化所述智能终端的软硬件环境;\n[0009] S2、读取所述智能终端中预存的硬件熔丝eFUSE标记值;\n[0010] S3、根据所述eFUSE标记值判断所述智能终端中的寄存器是否完成熔丝;\n[0011] S4、若所述寄存器已经完成熔丝,校验所述智能终端的软件的版权;若所述寄存器未完成熔丝,驱动所述智能终端进入eFUSE模式处理。\n[0012] 在本发明所述的在智能终端中校验软件版权的方法中,所述步骤S4中,校验所述智能终端的软件的版权包括以下子步骤:\n[0013] S41a、读取所述软件的版权信息;\n[0014] S42a、根据所述版权信息判断所述软件是否经过授权;\n[0015] S43a、如果所述软件经过授权,则校验通过,所述智能终端正常开机;如果未经授权,则提示所述软件未经授权,并提示升级所述软件至授权版本。\n[0016] 在本发明所述的在智能终端中校验软件版权的方法中,所述子步骤S41a中,所述软件的版权信息包括所述软件的被授权的密钥和证书;所述子步骤S42a包括以下操作:\n[0017] 判断所述软件的被授权的密钥和证书是否与相应写入到所述寄存器中的参数值一致,如果所述软件的被授权的密钥和证书与相应写入到所述寄存器中的参数值一致,则判断所述软件已经经过授权,如果所述软件的被授权的密钥和证书与相应写入到所述寄存器中的参数值不一致或者所述软件没有被授权的密钥和证书,则判断所述软件未经授权。\n[0018] 在本发明所述的在智能终端中校验软件版权的方法中,所述步骤S4中,驱动所述智能终端进入eFUSE模式处理包括以下子步骤:\n[0019] S41b、驱动所述智能终端进入eFUSE模式;\n[0020] S42b、控制内置eFUSE控制电源的开启;\n[0021] S43b、根据所述智能终端的软件的授权秘钥和证书,对相应的eFUSE寄存器赋值并在所述eFUSE寄存器中写入所述赋值;\n[0022] S44b、读回写入eFUSE寄存器中的所述赋值,根据读回的所述赋值判断所述步骤S43b中写入操作是否成功;\n[0023] S45b、如果所述写入操作成功,设置所述eFUSE标记值为已经完成熔丝的状态,如果所述写入操作不成功,设置所述eFUSE标记值为未完成熔丝的状态。\n[0024] 在本发明所述的在智能终端中校验软件版权的方法中,所述设置所述eFUSE标记值为已经完成熔丝的状态步骤之后,还包括以下步骤:\n[0025] S5、所述设置所述eFUSE标记值为已经完成熔丝的状态步骤之后,重新启动所述智能终端,转到步骤S1,继续执行步骤S1至S4,完成校验所述智能终端的软件的版权。\n[0026] 在本发明所述的在智能终端中校验软件版权的方法中,所述步骤S4还包括以下子步骤:步骤S40b、在所述步骤S41b之前,预先设置循环执行所述智能终端进入eFUSE模式处理的次数;\n[0027] S46b、在所述步骤S45b之后,将所述智能终端进入eFUSE模式处理的次数自减1,并判断所述智能终端进入eFUSE模式处理的次数是否等于0;如果此时所述智能终端进入eFUSE模式处理的次数为0,则跳出所述eFUSE模式,并结束校验流程;如果此时所述智能终端进入eFUSE模式处理的次数不为0,则转到步骤S41b,继续执行步骤S41b至S46b。\n[0028] 实施本发明的在智能终端中校验软件版权的方法,具有以下有益效果:通过本发明实施例提供的在智能终端中校验软件版权的方法,可以有效解决现有技术的上述智能终端的软件版权的校验方法需要专业的工具配合,操作繁琐,对操作人员要求高,以及在智能终端的大规模生产过程中,生产设计厂商因此增加工作岗位、使用多种工具带来的高额成本,同时因智能终端软件的版权的校验过程时间较长,大大影响相关厂商的生产效率和产能的缺陷,不再依赖于诸多外部辅助工具以及不需要太多人员进行操作,所有的操作由智能终端自身独立自动完成,因此,实施本发明实施例提供的技术方案操作简便、快捷,不同于现有技术的软件版权的校验过程中需要注意辅助工具的协同以及特定操作时序,整个软件版权的校验过程在终端开机时自动执行,并且可以提示最终校验结果,提升了大规模生产过程中的生产效率和产能,提升了产品竞争力。\n[0029] 本发明还提供一种在智能终端中校验软件版权的装置,包括以下模块:\n[0030] 初始化模块,用于初始化所述智能终端的软硬件环境;\n[0031] 读取状态模块,用于读取所述智能终端中预存的硬件熔丝eFUSE标记值;\n[0032] 判断模块,用于根据所述eFUSE标记值判断所述智能终端中的寄存器是否完成熔丝;\n[0033] 校验模块,用于在若所述寄存器已经完成熔丝时校验所述智能终端的软件的版权;以及在所述寄存器未完成熔丝时驱动所述智能终端进入eFUSE模式处理。\n[0034] 在本发明所述的在智能终端中校验软件版权的装置中,所述校验模块包括以下单元:\n[0035] 信息读取单元,用于读取所述软件的版权信息;\n[0036] 授权判断单元,用于根据所述版权信息判断所述软件是否经过授权;\n[0037] 校验执行单元,用于在所述软件经过授权时,确定校验通过,并驱动所述智能终端正常开机;以及在所述软件未经授权时,提示所述软件未经授权,并提示升级所述软件至授权版本。\n[0038] 在本发明所述的在智能终端中校验软件版权的装置中,所述信息读取单元中,所述软件的版权信息包括所述软件的被授权的密钥和证书;\n[0039] 所述授权判断单元包括:\n[0040] 授权状态判断子单元,用于判断所述软件的被授权的密钥和证书是否与相应写入到所述寄存器中的参数值一致,如果所述软件的被授权的密钥和证书与相应写入到所述寄存器中的参数值一致,则据此继续判断所述软件已经经过授权,如果所述软件的被授权的密钥和证书与相应写入到所述寄存器中的参数值不一致或者所述软件没有被授权的密钥和证书,则据此继续判断所述软件未经授权。\n[0041] 在本发明所述的在智能终端中校验软件版权的装置中,所述校验模块包括以下单元:\n[0042] 驱动单元,用于驱动所述智能终端进入eFUSE模式;\n[0043] 电源控制单元,用于控制内置eFUSE控制电源的开启;\n[0044] 赋值单元,用于根据所述智能终端的软件的授权秘钥和证书,对相应的eFUSE寄存器赋值并在所述eFUSE寄存器中写入所述赋值;\n[0045] 写入结果判断单元,用于读回写入eFUSE寄存器中的所述赋值,根据读回的所述赋值判断所述赋值单元中写入操作是否成功;\n[0046] 标记设置单元,用于在所述写入操作成功时,设置所述eFUSE标记值为已经完成熔丝的状态,以及在所述写入操作不成功时,设置所述eFUSE标记值为未完成熔丝的状态。\n[0047] 在本发明所述的在智能终端中校验软件版权的装置中,所述智能终端中校验软件版权的装置还包括,\n[0048] 跳转执行模块,用于在标记设置单元设置所述eFUSE标记值为已经完成熔丝的状态之后,重新启动所述智能终端,转到执行初始化模块,继续执行初始化模块、读取状态模块、判断模块、校验模块,直到完成校验所述智能终端的软件的版权。\n[0049] 在本发明所述的在智能终端中校验软件版权的装置中,所述校验模块还包括,[0050] 循环次数设置单元,用于在执行驱动单元之前,预先设置循环执行所述智能终端进入eFUSE模式处理的次数;\n[0051] 循环单元,用于在执行标记设置单元之后,对所述智能终端进入eFUSE模式处理的次数自减1,并判断所述智能终端进入eFUSE模式处理的次数是否等于0;如果此时所述智能终端进入eFUSE模式处理的次数为0,则跳出所述eFUSE模式,并结束校验;如果此时所述智能终端进入eFUSE模式处理的次数不为0,则转到执行驱动单元,继续执行驱动单元、电源控制单元、赋值单元、写入结果判断单元、标记设置单元、循环单元。\n[0052] 实施本发明的在智能终端中校验软件版权的装置,具有以下有益效果:通过本发明实施例提供的在智能终端中校验软件版权的装置,可以有效解决现有技术的上述智能终端的软件版权的校验方法需要专业的工具配合,操作繁琐,对操作人员要求高,以及在智能终端的大规模生产过程中,生产设计厂商因此增加工作岗位、使用多种工具带来的高额成本,同时因智能终端校验软件的版权过程时间较长,大大影响相关厂商的生产效率和产能的缺陷,不再依赖于诸多外部辅助工具以及不需要太多人员进行操作,所有的操作由智能终端自身独立自动完成,因此,实施本发明实施例提供的技术方案操作简便、快捷,不同于现有技术的软件版权的校验过程中需要注意辅助工具的协同以及特定操作时序,整个软件版权的校验过程在终端开机时自动执行,并且可以提示最终校验结果,提升了大规模生产过程中的生产效率和产能,提升了产品竞争力。\n附图说明\n[0053] 下面将结合附图及实施例对本发明作进一步说明,附图中:\n[0054] 图1是本发明一个较佳实施例提供的在智能终端中校验软件版权的方法流程图;\n[0055] 图2是本发明一个较佳实施例提供的在图1所示的步骤S4中校验所述智能终端的软件的版权的子步骤的具体流程图;\n[0056] 图3是本发明一个较佳实施例提供的在图1所示的步骤S4中驱动所述智能终端进入eFUSE模式处理的子步骤的具体流程图;\n[0057] 图4是本发明一个较佳实施例提供的在智能终端中校验软件版权的装置的结构示意图;\n[0058] 图5是本发明一个较佳实施例提供的图4所示的校验模块4的结构示意图;\n[0059] 图6是本发明另一个较佳实施例提供的图4所示的校验模块4的结构示意图;\n[0060] 图7是本发明一个较佳实施例提供的在智能终端中校验软件版权的方法流程图。\n具体实施方式\n[0061] 为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。\n[0062] 如图1所示,在本发明实施例提供的在智能终端中校验软件版权的方法第一实施例中,包括以下步骤:\n[0063] S1、初始化所述智能终端的软硬件环境;这个步骤可以通过运行bootloader(引导加载)程序来实现,bootloader是在操作系统内核运行之前运行的一段小程序。通过这段小程序,可以完成初始化硬件设备、建立内存空间映射图,从而将智能终端的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在智能终端中,通常并没有像BIOS(basic input output system,基本输入输出系统)那样的固件程序,因此整个智能终端的系统加载启动任务就完全由BootLoader来完成。比如在一个基于ARM7TDMI core的嵌入式系统中,系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的BootLoader程序。当然本步骤的S1的完成也不局限于通过运行bootloader程序来完成所述智能终端的软硬件环境,可以通过其他程序来实现。\n[0064] S2、读取所述智能终端中预存的硬件熔丝eFUSE标记值;在智能终端预先存储硬件熔丝eFUSE标记值,所述eFUSE标记值可以通过一个比特位来标记,比如1和0,或者也可以通过一个字节来标记,只要能标记寄存器的状态(也就是是否完成熔丝)即可。\n[0065] S3、根据所述eFUSE标记值判断所述寄存器是否完成熔丝;所述eFUSE标记值如S2步骤所述,可以是1和0,比如eFUSE标记值为1表示寄存器完成熔丝,0表示寄存器没有完成熔丝;或者eFUSE标记值为0表示寄存器完成熔丝,1表示寄存器没有完成熔丝,当然也可以通过一个字节或者几个字节的值来表示eFUSE标记值,从而判断寄存器是否完成熔丝。\n[0066] S4、若所述寄存器已经完成熔丝,校验所述智能终端的软件的版权;若所述寄存器未完成熔丝,驱动所述智能终端进入eFUSE模式处理。值得注意的是,寄存器熔丝是一个不可逆转的过程,如果已经完成了熔丝,就不可以再次对寄存器进行熔丝,而且所述智能终端的软件可以是一个,也可以有很多个,而且针对每个软件,也不是将该软件所有的信息都写入相关寄存器,只需要写入该软件需要保护的部分即可,因此相关寄存器可以是一个,也可以是两个,也可以是两个以上,这是根据软件中哪些部分需要被保护来确定的。\n[0067] 上述所有步骤均在智能终端内部完成,并不需要借助外部专门工具辅助,比如专业夹具、eFUSE控制器电源、外部PC和仿真器或PC上的专用熔丝软件和USB数据线等。可以看出,通过在智能终端中预先存储硬件熔丝eFUSE标记值,配合其他模块,可以实现在智能终端内部实现自动校验软件的版权,而现有技术通过专业夹具配合安装在PC上的专门熔丝软件和专业夹具上的eFUSE控制器电源,整个校验过程需要通过人工对所有软件一一校验,费时费力。\n[0068] 较佳地,如图2所示,图1所示的所述步骤S4中,校验所述智能终端的软件的版权包括以下子步骤:\n[0069] S41a、读取所述软件的版权信息;值得注意的是,这里的版权信息并不局限于知识产权法意义上的著作权,而是指一切智能终端生成设计厂商所想要保护的,不想被他人破解的信息。\n[0070] S42a、根据所述版权信息判断所述软件是否经过授权;\n[0071] S43a、如果所述软件经过授权,则校验通过,所述智能终端正常开机;如果未经授权,则提示所述软件未经授权,并提示升级所述软件至授权版本。\n[0072] 较佳地,所述在智能终端中校验软件版权的方法中,\n[0073] 所述子步骤S41a中,所述软件的版权信息包括所述软件的被授权的密钥和证书;\n这里所说的授权的密钥和证书,是事先已经确定的,可以通过在网上下载或者由软件的供应商提供。\n[0074] 所述子步骤S42a包括以下操作:\n[0075] 判断所述软件的被授权的密钥和证书是否与相应写入到所述寄存器中的参数值一致,如果所述软件的被授权的密钥和证书与相应写入到所述寄存器中的参数值一致,则判断所述软件已经经过授权,如果所述软件的被授权的密钥和证书与相应写入到所述寄存器中的参数值不一致或者所述软件没有被授权的密钥和证书,则判断所述软件未经授权。\n因为所述寄存器中的参数值是根据所述软件的被授权的密钥和证书来写入的,所以,只要是经过授权的软件,则所述软件的被授权的密钥和证书与相应写入到所述寄存器中的参数值一致,否则说明所述软件没有经过授权,可能是使用者擅自更换所述智能终端的软件,而且擅自更换的软件是未经授权的。\n[0076] 较佳地,如图3所示,图1所示的所述步骤S4中,驱动所述智能终端进入eFUSE模式处理包括以下子步骤:\n[0077] S41b、驱动所述智能终端进入eFUSE模式;可以知道,驱动所述智能终端进入eFUSE模式处理与驱动所述智能终端进入eFUSE模式不是同一个概念,驱动所述智能终端进入eFUSE模式只是驱动所述智能终端进入eFUSE模式处理的一个步骤。\n[0078] S42b、控制内置eFUSE控制电源的开启;因为现有技术中eFUSE控制电源必须通过专业夹具上的专门电源来供电,还需要通过专门的夹具固定好所述智能终端,再通过专门的夹具的针脚来完成对所述智能终端的熔丝,因此非常不便,而本发明实施例提供的较佳实施例的该步骤,可以利用在所述智能终端内部的特定程序,通过智能终端的主板电源完成熔丝需要的供电,也就是eFUSE控制电源实际上是所述智能终端本身的电源,不但省去了专门的夹具,也省去了专业夹具上的专门电源供电。\n[0079] S43b、根据所述智能终端的软件的授权秘钥和证书,对相应的eFUSE寄存器赋值并在所述eFUSE寄存器中写入所述赋值;因为这个对驱动所述智能终端进入eFUSE模式处理,是因为寄存器没有完成熔丝,说明相应的eFUSE寄存器没有写入与所述智能终端的软件的授权秘钥和证书相对应的值,因此需要根据所述智能终端的软件的授权秘钥和证书,对相应的eFUSE寄存器赋值并在所述eFUSE寄存器中写入所述赋值。现有技术中,通过安装在外部PC上的仿真器或PC上的专用熔丝软件等其他外部工具读取当前智能终端终端的寄存器标记值值,判定是否已经熔丝或哪些寄存器需要熔丝,然后再结合当前智能终端产品被授权的秘钥和证书,对相应的寄存器赋值,再把这些值写入到这些寄存器,但是本发明提供的较佳实施例的该步骤,只需要在所述智能内部的软件流程的执行,就可以对在所述eFUSE寄存器中写入所述赋值。\n[0080] S44b、读回写入eFUSE寄存器中的所述赋值,根据读回的所述赋值判断所述步骤S43b中写入操作是否成功;在所述eFUSE寄存器中写入所述赋值,还要判断写入是否正确,是否成功,因为需要从eFUSE寄存器中读回所述赋值,根据读回的所述赋值来判断在所述eFUSE寄存器中写入所述赋值是否成功。\n[0081] S45b、如果所述写入操作成功,设置所述eFUSE标记值为已经完成熔丝的状态,如果所述写入操作不成功,设置所述eFUSE标记值为未完成熔丝的状态。\n[0082] 较佳地,还包括以下步骤:S5、所述设置所述eFUSE标记值为已经完成熔丝的状态步骤之后,重新启动所述智能终端,然后转到图1所示的步骤S1,继续执行步骤S1至S4,直到完成校验所述智能终端的软件的版权。可以理解的是,任何本发明实施例提供的对S1至S4的扩展都可以包含在本实施例中。因为已经成功在eFUSE寄存器中写入所述智能终端的软件的授权秘钥和证书,在经过执行设置所述eFUSE标记值为已经完成熔丝的状态步骤之后,转到步骤S1,继续执行步骤S1至S4,所述智能终端的软件的版权会成功的通过校验。\n[0083] 较佳地,图3所示的所述步骤S4还包括以下子步骤:\n[0084] 步骤S40b、在所述步骤S41b之前,预先设置循环执行所述智能终端进入eFUSE模式处理的次数;\n[0085] S46b、在所述步骤S45b之后,将所述智能终端进入eFUSE模式处理的次数自减1,并判断所述智能终端进入eFUSE模式处理的次数是否等于0;如果此时所述智能终端进入eFUSE模式处理的次数为0,则跳出所述eFUSE模式,并结束校验流程;如果此时所述智能终端进入eFUSE模式处理的次数不为0,则转到步骤S41b,继续执行步骤S41b至S46b。这样是做为了增加根据所述智能终端的软件的授权秘钥和证书,对相应的eFUSE寄存器赋值并在所述eFUSE寄存器中写入所述赋值,同时也不至于一直尝试写入所述赋值,避免陷入死循环。\n[0086] 实施本发明的在智能终端中校验软件版权的方法,具有以下有益效果:通过本发明实施例提供的在智能终端中校验软件版权的方法,可以有效解决现有技术的上述智能终端的软件版权的校验方法需要专业的工具配合,操作繁琐,对操作人员要求高,以及在智能终端的大规模生产过程中,生产设计厂商因此增加工作岗位、使用多种工具带来的高额成本,同时因智能终端校验软件的版权过程时间较长,大大影响相关厂商的生产效率和产能的缺陷,不再依赖于诸多外部辅助工具以及不需要太多人员进行操作,所有的操作由智能终端自身独立自动完成,因此,实施本发明实施例提供的技术方案操作简便、快捷,不同于现有技术的软件版权的校验过程中需要注意辅助工具的协同以及特定操作时序,整个软件版权的校验过程在终端开机时自动执行,并且可以提示最终校验结果,提升了大规模生产过程中的生产效率和产能,提升了产品竞争力。\n[0087] 图4所示的本发明一个较佳实施例提供的在智能终端中校验软件版权的装置10的结构示意图中,包括以下模块:\n[0088] 初始化模块1,用于初始化所述智能终端的软硬件环境;初始化模块1可以通过调用bootloader(引导加载)程序来实现,bootloader是在操作系统内核运行之前运行的一段小程序。通过这段小程序,可以完成初始化硬件设备、建立内存空间映射图,从而将智能终端的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在智能终端中,通常并没有像BIOS(basic input output system,基本输入输出系统)那样的固件程序,因此整个智能终端的系统加载启动任务就完全由BootLoader来完成。比如在一个基于ARM7TDMI core的嵌入式系统中,系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的BootLoader程序。当然初始化模块1不限于调用bootloader程序来完成所述智能终端的软硬件环境,可以通过调用其他程序来实现。\n[0089] 读取状态模块2,用于读取所述智能终端中预存的硬件熔丝eFUSE标记值;在智能终端预先存储硬件熔丝eFUSE标记值,所述eFUSE标记值可以通过一个比特位来标记,比如1和0,或者也可以通过一个字节来标记,只要能标记寄存器的状态(也就是是否完成熔丝)即可。\n[0090] 判断模块3,用于根据所述eFUSE标记值判断所述智能终端中的寄存器是否完成熔丝;所述eFUSE标记值如S2步骤所述,可以是1和0,比如eFUSE标记值为1表示寄存器完成熔丝,0表示寄存器没有完成熔丝;或者eFUSE标记值为0表示寄存器完成熔丝,1表示寄存器没有完成熔丝,当然也可以通过一个字节或者几个字节的值来表示eFUSE标记值,从而判断寄存器是否完成熔丝。\n[0091] 校验模块4,用于在若所述寄存器已经完成熔丝时校验所述智能终端的软件的版权;以及在所述寄存器未完成熔丝时驱动所述智能终端进入eFUSE模式处理。值得注意的是,寄存器熔丝是一个不可逆转的过程,如果已经完成了熔丝,就不可以再次对寄存器进行熔丝,而且所述智能终端的软件可以是一个,也可以有很多个,而且针对每个软件,也不是都其的信息写入相关寄存器,因此相关寄存器可以是一个,也可以是两个,也可以是两个以上,这是根据软件中哪些部分需要被保护来确定的。\n[0092] 可以看出,通过在智能终端中预先存储硬件熔丝eFUSE标记值,配合其他模块,可以实现在智能终端内部实现自动校验软件的版权,而现有技术则没有只能通过专业夹具配合安装在PC上的专业熔丝软件和专业夹具上的eFUSE控制器电源,整个校验过程需要通过人工对所有软件一一校验,费时费力。\n[0093] 较佳地,如图5所示,图4所示的校验模块4的结构示意图,包括以下单元:\n[0094] 信息读取单元41a,用于读取所述软件的版权信息;值得注意的是,这里的版权信息并不局限于知识产权法意义上的著作权,而是指一切智能终端生成设计厂商所想要保护的,不想被他人破解的信息。\n[0095] 授权判断单元42a,用于根据所述版权信息判断所述软件是否经过授权;\n[0096] 校验执行单元43a,用于在所述软件经过授权时,确定校验通过,并驱动所述智能终端正常开机;以及在所述软件未经授权时,提示所述软件未经授权,并提示升级所述软件至授权版本。\n[0097] 较佳地,所述信息读取单元中41a中,所述软件的版权信息包括所述软件的被授权的密钥和证书;\n[0098] 所述授权判断单元42a包括:\n[0099] 授权状态判断子单元,用于判断所述软件的被授权的密钥和证书是否与相应写入到所述寄存器中的参数值一致,如果所述软件的被授权的密钥和证书与相应写入到所述寄存器中的参数值一致,则据此继续判断所述软件已经经过授权,如果所述软件的被授权的密钥和证书与相应写入到所述寄存器中的参数值不一致或者所述软件没有被授权的密钥和证书,则据此继续判断所述软件未经授权。因为所述寄存器中的参数值是根据所述软件的被授权的密钥和证书来写入的,所以,只要是经过授权的软件,则所述软件的被授权的密钥和证书与相应写入到所述寄存器中的参数值一致,否则说明所述软件没有经过授权,可能是使用者擅自更换所述智能终端的软件,而且擅自更换的软件是未经授权的。\n[0100] 较佳地,如图6所示,图4所示的校验模块4的结构示意图,包括以下单元:\n[0101] 驱动单元41b,用于驱动所述智能终端进入eFUSE模式;可以知道,驱动单元41b只是校验模块4的一个单元。\n[0102] 电源控制单元42b,用于控制内置eFUSE控制电源的开启;因为现有技术中eFUSE控制电源必须通过专业夹具上的专门电源来供电,还需要通过专门的夹具固定好所述智能终端,再通过专门的夹具的针脚来完成对所述智能终端的熔丝,因此非常不便,而本发明实施例提供的较佳实施例的该电源控制单元42b,可以利用在所述智能终端内部的特定装置,通过智能终端的主板电源完成熔丝需要的供电,也就是eFUSE控制电源实际上是所述智能终端本身的电源,不但省去了专门的夹具,也省去了专业夹具上的专门电源供电。\n[0103] 赋值单元43b,用于根据所述智能终端的软件的授权秘钥和证书,对相应的eFUSE寄存器赋值并在所述eFUSE寄存器中写入所述赋值;赋值单元43b的存在,是因为寄存器没有完成熔丝,说明相应的eFUSE寄存器没有写入与所述智能终端的软件的授权秘钥和证书相对应的值,因此需要根据所述智能终端的软件的授权秘钥和证书,对相应的eFUSE寄存器赋值并在所述eFUSE寄存器中写入所述赋值。现有技术中,通过安装在外部PC上的仿真器或PC上的专用熔丝软件等其他外部工具读取当前智能终端终端的eFUSE寄存器值,判定是否已经熔丝或哪些寄存器需要熔丝,然后再结合当前智能终端产品被授权的秘钥和证书,对相应的寄存器赋值,再把这些值写入到这些寄存器,但是本发明提供的较佳实施例中,只需要通过赋值单元43b的执行,就可以对在所述eFUSE寄存器中写入所述赋值。\n[0104] 写入结果判断单元44b,用于读回写入eFUSE寄存器中的所述赋值,根据读回的所述赋值判断所述赋值单元43b中写入操作是否成功;在所述eFUSE寄存器中写入所述赋值,还要判断写入是否正确,是否成功,所以需要从eFUSE寄存器中读回所述赋值,根据读回的所述赋值来判断在所述eFUSE寄存器中写入所述赋值是否成功。\n[0105] 标记设置单元45b,用于在所述写入操作成功时,设置所述eFUSE标记值为已经完成熔丝的状态,以及在所述写入操作不成功时,设置所述eFUSE标记值为未完成熔丝的状态。\n[0106] 较佳地,所述智能终端中校验软件版权的装置还包括,跳转执行模块,用于在标记设置单元45b设置所述eFUSE标记值为已经完成熔丝的状态之后,重新启动所述智能终端,转到执行初始化模块1,继续执行初始化模块1、读取状态模块2、判断模块3、校验模块4,直到完成校验所述智能终端的软件的版权。\n[0107] 因为已经成功在eFUSE寄存器中写入所述智能终端的软件的授权秘钥和证书,在经过标记设置单元45b设置所述eFUSE标记值为已经完成熔丝的状态之后,转到执行初始化模块1,继续执行初始化模块1、读取状态模块2、判断模块3、校验模块4,所述智能终端的软件的版权会成功的通过校验。\n[0108] 较佳地,校验模块4还包括,\n[0109] 循环次数设置单元,用于在执行驱动单元41b之前,预先设置循环执行所述智能终端进入eFUSE模式处理的次数;\n[0110] 循环单元,用于在执行标记设置单元45b之后,对所述智能终端进入eFUSE模式处理的次数自减1,并判断所述智能终端进入eFUSE模式处理的次数是否等于0;如果此时所述智能终端进入eFUSE模式处理的次数为0,则跳出所述eFUSE模式,并结束校验;如果此时所述智能终端进入eFUSE模式处理的次数不为0,则转到执行驱动单元41b,继续执行驱动单元\n41b、电源控制单元42b、赋值单元43b、写入结果判断单元44b、标记设置单元45b、循环单元。\n这样是为了增加根据所述智能终端的软件的授权秘钥和证书,对相应的eFUSE寄存器赋值并在所述eFUSE寄存器中写入所述赋值,同时也不至于一直尝试写入所述赋值,避免陷入死循环。\n[0111] 实施本发明的在智能终端中校验软件版权的装置,具有以下有益效果:通过本发明实施例提供的在智能终端中校验软件版权的装置,可以有效解决现有技术的上述智能终端的软件版权的校验方法需要专业的工具配合,操作繁琐,对操作人员要求高,以及在智能终端的大规模生产过程中,生产设计厂商因此增加工作岗位、使用多种工具带来的高额成本,同时因智能终端校验软件的版权过程时间较长,大大影响相关厂商的生产效率和产能的缺陷,不再依赖于诸多外部辅助工具以及不需要太多人员进行操作,所有的操作由智能终端自身独立自动完成,因此,实施本发明实施例提供的技术方案操作简便、快捷,不同于现有技术的软件版权的校验过程中需要注意辅助工具的协同以及特定操作时序,整个软件版权的校验过程在终端开机时自动执行,并且可以提示最终校验结果,提升了大规模生产过程中的生产效率和产能,提升了产品竞争力。\n[0112] 以下结合图4至图7,对本发明实施例提供的较佳的在智能终端中校验软件版权的方法和装置10做更进一步地说明:\n[0113] S01、初始化模块1初始化化所述智能终端的软硬件环境;跳转到步骤S02;\n[0114] S02、读取状态模块2读取所述智能终端中预存的硬件熔丝eFUSE标记值;跳转到步骤S03;\n[0115] S03、判断模块3根据所述eFUSE标记值判断所述智能终端中的寄存器是否已经完成熔丝;若没有完成熔丝,则跳转到步骤S04a,如果已经完成熔丝,则跳转到步骤S04b;\n[0116] S04a、如果没有完成熔丝,校验模块4中的循环次数设置单元预先设置循环执行所述智能终端进入eFUSE模式处理的次数;跳转到步骤S05;\n[0117] S05、校验模块4中的驱动单元41b驱动所述智能终端进入eFUSE模式;跳转到步骤S06;\n[0118] S06、校验模块4中的电源控制单元42b控制内置eFUSE控制电源的开启;跳转到步骤S07;\n[0119] S07、校验模块4中的赋值单元43b根据所述智能终端的软件的授权秘钥和证书,对相应的eFUSE寄存器赋值并在所述eFUSE寄存器中写入所述赋值;跳转到步骤S08;\n[0120] S08、校验模块4中写入结果判断单元44b读回写入eFUSE寄存器中的所述赋值,根据读回的所述赋值判断所述赋值单元43b中写入操作是否成功;如果不成功,跳转到步骤S09a,如果成功,跳转到步骤S09b;\n[0121] S09a、校验模块4中的标记设置单元45b设置所述eFUSE标记值为未完成熔丝的状态;跳转到步骤S10;\n[0122] S10、校验模块4中的循环单元,对所述智能终端进入eFUSE模式处理的次数自减1,并判断所述智能终端进入eFUSE模式处理的次数是否等于0;如果此时所述智能终端进入eFUSE模式处理的次数为0,跳转到步骤S11;如果此时所述智能终端进入eFUSE模式处理的次数不为0,跳转到步骤S05;\n[0123] 步骤S11、校验模块4中的循环单元控制跳出所述eFUSE模式,并结束校验;\n[0124] 步骤S09b、校验模块4中的标记设置单元45b设置所述eFUSE标记值为已经完成熔丝的状态;跳转到步骤S12;\n[0125] S12、重启所述智能终端,并跳转到步骤S01;\n[0126] S04b、校验模块4中的信息读取单元41a读取所述软件的版权信息;跳转到步骤S13;\n[0127] S13、校验模块4中的授权判断单元42a根据所述版权信息判断所述软件是否经过授权;如果所述软件经过授权,跳转到步骤S14b,如果所述软件没有经过授权,跳转到步骤S14a;\n[0128] S14b、校验模块4中的校验执行单元43a控制所述智能终端正常开机;结束校验;\n[0129] S14a、校验模块4中的校验执行单元43a提示所述软件未经授权,并提示升级所述软件至授权版本;结束校验。\n[0130] 上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
法律信息
- 2017-02-15
- 2014-03-12
实质审查的生效
IPC(主分类): G06F 21/12
专利申请号: 201310533210.2
申请日: 2013.10.31
- 2014-01-29
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |