本发明涉及智能终端领域,尤其涉及一种系统权限管理方法、装置及智能终端。
背景技术:
目前市面上的各种智能终端(例如手机、机顶盒、ipad等)中的应用要获取终端系统权限,都需要通过系统签名认证,而目前的各种智能终端都只支持一种系统签名,该系统签名为终端厂家设置的默认签名信息,因此目前智能终端中基本都是终端的内置应用具有系统权限,而各运营商提供的第三方应用的签名一般都是运营商自己的签名信息,这就导致运营商提供的应用不能正常获得终端系统权限。例如:如果用户在android智能终端中准备安装非系统签名的apk,此时apk是无法获取到系统权限的。从上述描述中可以看出,目前的智能设备是一种只支持单一签名的设备,如果用户安装了与系统签名不一致的apk时,此apk的使用就会受到限制,实际上是限制了智能设备对各种应用的普遍支持,也就降低了设备的兼容性,这也必定会严重影响用户的体验,尤其是对有特殊需求的运营商客户。目前,为了解决上述问题,各运营商想要使其apk具备系统权限,一般有两种办法:
方法一:
1.在应用程序的androidmanifest.xml中的manifest节点中加入android:shareduserid="android.uid.system"这个属性。
2.修改android.mk文件,加入local_certificate:=platform这一行。
3.使用mm命令来编译
方法二:
1.同上,加入android:shareduserid="android.uid.system"这个属性。
2.使用eclipse编译出apk文件,但是这个apk文件是不能用的。
3.用压缩软件打开apk文件,删掉meta-inf目录下的cert.sf和cert.rsa两个文件。
4.使用目标系统的platform密钥来重新给apk文件签名。这步比较麻烦。
a、首先找到密钥文件,在我的android源码目录中的位置
是"build/target/product/security/",下面的platform.pk8和platform.x509.pem两个文件。
b、然后用android提供的signapk工具来签名,signapk的源代码是在"build/tools/signapk"下,用法为"signapkplatform.x509.pemplatform.pk8input.apkoutput.apk"这样生成的apk运行在系统进程中,并具有了system权限。
以上两种方法使用起来都是比较复杂,且难以操作,方法一需要运营商将apk发给终端厂家进行签名,但是运营商应用商城的apk很多且经常需要升级,操作难度大。方法二需要厂家提供签名文件给运营商,这样操作在一定程度上会造成厂家签名信息的泄露,对厂家的信息、技术安全存在较大的隐患。可见现有的方法都是想办法将应用的签名设置为智能终端厂家所指定的唯一系统签名信息以获取系统权限,根据上述分析可知这种方式存在操作难度大、存在安全隐患的问题。
技术实现要素:
本发明实施例提供的系统权限管理方法、装置及智能终端,主要解决的技术问题是:解决现有将应用的签名尽可能设置为智能终端厂家设置的唯一系统签名信息以获取系统权限,存在操作难度大、有安全隐患的问题。
为解决上述技术问题,本发明实施例提供一种系统权限管理方法,包括:
在智能终端获取到待安装的应用后,获取该应用的签名信息;
将所述签名信息与预设合法签名列表中的合法签名信息进行匹配,所述预设合法签名列表包含所述智能终端系统的系统签名信息和至少一个运营商签名信息;
在所述签名信息与所述合法签名信息中的任意一个匹配成功时,允许所述应用在所述智能终端上安装,并设置该应用具有系统权限。
本发明实施例还提供一种系统权限管理装置,包括;
签名信息获取模块,用于在智能终端获取到待安装的应用后,获取该应用的签名信息;
认证模块,用于将所述签名信息与预设合法签名列表中的合法签名信息进行匹配,所述预设合法签名列表包含所述智能终端系统的系统签名信息和至少一个运营商签名信息;
权限管理模块,用于在所述签名信息与所述合法签名信息中的任意一个匹配成功时,允许所述应用在所述智能终端上安装,并设置该应用具有系统权限。
本发明实施例还提供一种智能终端,包括如上所述的系统权限管理装置。
本发明实施例还提供一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行前述的系统权限管理方法。
本发明的有益效果是:
根据本发明实施例提供的系统权限管理方法、装置、智能终端及存储介质,可以先预设合法签名列表,预设的合法签名列表中除了包含智能终端系统的系统签名信息外,还可包括至少一个运营商签名信息,也即可以预先将相应运营商的签名信息加入智能终端的合法签名列表中。这样当在智能终端获取到待安装的应用后,可直接将该应用的签名信息与预设合法签名列表中的合法签名信息进行匹配,如与合法签名列表中的任意一个合法签名信息匹配成功时,允许该应用在智能终端上安装,并设置该应用具有系统权限。通过上述方式,智能终端则不再只支持一个系统签名,其可以支持两个以上的系统签名;运营商不需要将应用发给终端厂家让其帮忙设置签名,终端厂家也不需要将自己的签名信息发给运营商,既能比较简单方便的实现对运营商应用系统权项的支持和管理,又能提升安全性。
附图说明
图1为本发明实施例一中应用安装过程中的系统权限管理方法流程示意图;
图2为本发明实施例一中应用升级过程中的系统权限管理方法流程示意图;
图3为本发明实施例一中应用运行过程中的系统权限管理方法流程示意图;
图4为本发明实施例二中智能终端结构示意图;
图5为本发明实施例二中系统权限管理装置结构示意图一;
图6为本发明实施例二中系统权限管理装置结构示意图二;
图7为本发明实施例二中系统权限管理装置结构示意图三。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例只是本发明中一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一:
本实施例提供的系统权限管理方法适用于各种系统的各种类型智能终端,例如适用于android、ios、windowsphone、symbian、blackberryos、windowsmobile等系统,也适用于手机、ipad、各种阅读器等移动类型的智能终端,也适用于非移动类型的智能终端。
本实施例中对于智能终端系统权限的管理,可以先设置一个合法签名列表,该合法签名列表中预先存储允许使用系统权限的各合法签名信息,自然包括智能终端系统的系统签名信息,也即智能终端厂家预先默认的签名信息。除此之外,本实施例中的合法签名信息还包括至少一个运营商签名信息。具体的,各运营商可以与对应的智能终端制造商协商,让终端制造商将运营商的运营商签名信息作为合法信息存储在合法签名列表中。因此,本实施例中的运营商签名信息包含的个数以及具体包含哪些运营商的签名信息都可以根据实际应用场景灵活设定。通过以上设置,智能终端在通过签名认证进行系统权限管理时,就不再仅根据终端的系统签名信息进行管理,还根据签名合法列表中的合法签名信息对各应用进行管理,当应用的签名信息与其中任意一个运营商签名信息匹配时,也可给该应用下发系统权限。这样不需要运营商频繁的将应用发给终端厂家进行签名,节省人力、物力和成本;同时运营商也不需要将自身的签名信息发给运营商,避免安全隐患。
另外,根据上述描述可知,本实施例中的合法签名列表中的合法签名信息可支持实时更新,例如当有新的运营商加入或者之前加入的运营商的签名信息发生变化时,则可以直接或由终端制造商向智能终端发送对应的更新信息,根据该更新消息对合法签名列表中的合法签名信息进行对应更新。
基于上述设置,请参见图1所示,本实施例中的系统权限管理方法包括:
s101:智能终端获取到待安装的应用。
该步骤智能终端可以从运营商应用商城或通过其他来源获取到待安装应用的安装包。
s102:获取该应用的签名信息。
具体可以从应用的安装包中获取到签名信息,此时的签名信息一般为运营商的签名信息,但也可能为终端系统的系统签名信息,例如当运营商之前就已经获取到终端系统的系统签名信息时,就可能是系统签名信息。
s103:将获取的签名信息与预设的合法签名列表中的合法签名信息进行匹配。
s104:判断匹配是否成功,如是,转至s105;否则,转至s106。
该判断步骤中,只要获取的签名信息与合法签名列表中的任意一个合法签名信息匹配成功时,就判定匹配成功。
s105:允许上述待安装的应用在智能终端上安装,并设置该应用具有系统权限,也即该应用安装之后可以申请到系统权限。
s106:允许上述待安装的应用在智能终端上安装,并设置该应用不具有系统权限,也即该应用安装之后不能申请到系统权限。这样既能实现智能终端支持多签名,又能最大限度的保证系统运行安全。
本实施例中,对于终端的应用中,并非所有应用都需要申请系统权限。因此,对于需要申请系统权限的应用,其安装包中一般都设有申请系统权限的标识信息。因此,本实施例中,对于待安装的应用,在获取其签名信息进行匹配之前,还可以先判断该应用的安装包中是否存在申请系统权限的标识信息,如存在,再转至上述s102获取其签名信息并进行后续的判断;否则,直接转至上述s106对该应用进行安装,但安装之后其不能申请系统权限。下面以android系统的应用apk为示例进行说明。
对于android系统的apk软件安装包,具体可以在其androidmanifest.xml中查看是否具有上述标识信息,如没有则并没有申请系统权限,这类apk无需校验签名信息就可以直接顺利的安装到智能终端中。
上述s103中,将获取的签名信息与预设的合法签名列表中的合法签名信息进行匹配时,可以遵循以下匹配规则进行匹配:
先将获取的签名信息与合法签名列表中的系统签名信息进行匹配,如匹配成功,则签名认证成功,否则,再将该签名信息与剩下的运营商签名信息进行匹配。合法签名列表当运营商签名信息包括多个时,此时可以按序逐个匹配;也可以预先设置各运营商签名信息的优先级,例如发布应用越多的运营商优先级越高,然后按照设定的优先级进行匹配;或者直接随机匹配等等。
本实施例中,当智能终端中存在待升级的应用时(例如某一个或多个应用需要升级,且可通过自升级的方式完成升级),需要先判断该应用升级前后的签名信息是否一致,如不一致,则该存在被恶意篡改的可能。针对这种情况现有的是一律禁止升级。但会存在运营商在开始发布该应用时使用的签名信息1,但在后续对该应用升级时改为使用签名信息2的情况,此时也对该应用禁止升级会导致正常的升级也失败。对于这种情况,本实施例可以先将签名信息2通过上述更新流程加入合法签名列表中作为合法签名信息;然后通过上述判定签名信息2与签名信息1不一致时,将签名信息2与合法签名列表中的合法签名信息进行匹配,且匹配时可以按照上述匹配规则进行匹配,如匹配成功,则允许该待升级应用升级,并设置其具有系统权限;如匹配失败,此时才判定可能被恶意篡改,不允许该带升级应用升级。具体过程参见图2所示,包括:
s201:智能终端上的某一待升级应用需要升级。
此时只能终端可以通过各种渠道获取到对应的升级包。
s202:获取待升级应用升级后的签名信息2以及升级前当前的签名信息1。
具体可以从升级包中获取升级后的签名信息2.
s203:判断两个签名信息是否一致,如是,转至s204;否则,转至s205;
s204:允许待升级应用升级。
s205:将签名信息2与预设的合法签名列表中的合法签名信息进行匹配。具体匹配规则也可以用上述示例的匹配规则。
s206:判断匹配是否成功,如是,转至s207;否则,转至s208。
s207:允许该待升级应用升级,并设置其具有系统权限。
s208:不允许该待升级应用升级。
通过上述进一步的判断过程,可以避免因运营商的签名信息发生变化时,该运营商之前的应用不能正常完成升级的问题。可进一步提升系统权限管理的合理性和准确性。
本实施例中,智能终端上已安装好的各应用在运营过程中,尤其是具备申请系统权限的应用在运营过程中,其某个动作实际需要使用系统权限(例如下载安装或卸载其他应用)时,本实施例为了进一步提升管理的安全性,还可对这些应用做进一步的鉴权认定。此时会接收到智能终端的应用在运行过程中发送的系统权限申请请求,然后获取发起系统权限申请请求之应用的签名信息,并与合法签名列表中的合法签名信息进行匹配,匹配成功允许应用执行系统权限,也即允许其继续执行上述动作;否则,禁止应用执行系统权限,也即禁止其继续执行上述动作,并可弹出一个对应的错误提示。具体过程参见图3所示,包括:
s301:智能终端上的某一运行过程中的应用发送系统权限申请请求。
s302:获取发起系统权限申请请求之应用的签名信息。
s303:将获取的签名信息与预设的合法签名列表中的合法签名信息进行匹配。具体匹配规则也可以用上述示例的匹配规则。
s304:判断匹配是否成功,如是,转至s305;否则,转至s306。
s305:允许发起系统权限申请请求之应用继续执行上述动作。
s306:不允许发起系统权限申请请求之应用执行上述动作。
本实施例通过在智能终端中提前将运营商的签名信息设置为合法签名信息以进行后续签名认证,可以使得智能终端在改动最小的前提下支持多签名认证,相对现有智能终端仅支持一种签名认证的方案,成本更低,控制更灵活,且安全性更好。
实施例二:
本实施例提供了一种智能终端,该智能终端的系统可以是android、ios、windowsphone、symbian、blackberryos、windowsmobile等系统中的任意一种,且该终端可以是手机、ipad、各种阅读器等移动类型的智能终端,也可以是非移动类型的智能终端。参见图4所示,该智能终端包括系统权限管理装置10。其中,参见图5所示,系统权限管理装置10包括列表维护模块11、签名信息获取模块12、认证模块13以及权限管理模块14。
列表维护模块11用于在智能终端上维护预先设置的合法签名列表,该合法签名列表中预先存储允许使用系统权限的各合法签名信息,自然包括智能终端系统的系统签名信息,也即智能终端厂家预先默认的签名信息。除此之外,本实施例中的合法签名信息还包括至少一个运营商签名信息。具体的,各运营商可以与对应的智能终端制造商协商,让终端制造商将运营商的运营商签名信息作为合法信息存储在合法签名列表中。因此,本实施例中的运营商签名信息包含的个数以及具体包含哪些运营商的签名信息都可以根据实际应用场景灵活设定。通过以上设置,智能终端在通过签名认证进行系统权限管理时,就不再仅根据终端的系统签名信息进行管理,还根据签名合法列表中的合法签名信息对各应用进行管理,当应用的签名信息与其中任意一个运营商签名信息匹配时,也可给该应用下发系统权限。这样不需要运营商频繁的将应用发给终端厂家进行签名,节省人力、物力和成本;同时运营商也不需要将自身的签名信息发给运营商,避免安全隐患。
另外,本实施例中的合法签名列表中的合法签名信息可支持实时更新,例如当有新的运营商加入或者之前加入的运营商的签名信息发生变化时,则可以直接或由终端制造商向智能终端发送对应的更新信息,列表维护模块11可根据该更新消息对合法签名列表中的合法签名信息进行对应更新。
签名信息获取模块12,用于在智能终端获取到待安装的应用后,获取该应用的签名信息;具体可以从应用的安装包中获取到签名信息。
认证模块13,用于将签名信息获取模块12获取的签名信息与合法签名列表中的合法签名信息进行匹配。认证模块13可以采用以下匹配规则进行匹配:
先将获取的签名信息与合法签名列表中的系统签名信息进行匹配,如匹配成功,则签名认证成功,否则,再将该签名信息与剩下的运营商签名信息进行匹配。合法签名列表当运营商签名信息包括多个时,此时可以按序逐个匹配;也可以预先设置各运营商签名信息的优先级,例如发布应用越多的运营商优先级越高,然后按照设定的优先级进行匹配;或者直接随机匹配等等。
权限管理模块14,用于在签名信息与所述合法签名信息中的任意一个匹配成功时,允许应用在所述智能终端上安装,并设置该应用具有系统权限;否则,许上述待安装的应用在智能终端上安装,并设置该应用不具有系统权限,也即该应用安装之后不能申请到系统权限。这样既能实现智能终端支持多签名,又能最大限度的保证系统运行安全。
本实施例中,对于终端的应用中,并非所有应用都需要申请系统权限。因此,对于需要申请系统权限的应用,其安装包中一般都设有申请系统权限的标识信息。因此,参见图6所示,本实施例中,系统权限管理装置10还包括应用类型判断模块15,用于判断待安装应用的安装包中是否存在申请系统权限的标识信息,如存在,再通知签名信息获取模块12获取其签名信息并进行后续的判断。
参见图7所示,本实施例中的系统权限管理装置还包括升级处理模块16,在某一应用升级过程中:
签名信息获取模块12还用于在智能终端存在待升级应用时,获取待升级应用升级后的签名信息和待升级应用升级前当前的签名信息;
升级处理模块16用于判断待升级应用升级后的签名信息和待升级应用升级前当前的签名信息是否一致;
认证模块13还用于在升级处理模块16的判断结果为不一致时,将升级后的签名信息与合法签名列表中的合法签名信息进行匹配;
权限管理模块14还用于在认证模块13匹配成功时,允许待升级应用升级,并设置待升级应用具有系统权限;否则,不允许该待升级应用升级,防止被恶意篡改。这样可以避免因运营商的签名信息发生变化时,该运营商之前的应用不能正常完成升级的问题,又能避免恶意篡改。可进一步提升系统权限管理的合理性和准确性。
本实施例中,智能终端上已安装好的各应用在运营过程中,尤其是具备申请系统权限的应用在运营过程中,其某个动作实际需要使用系统权限(例如下载安装或卸载其他应用)时,本实施例为了进一步提升管理的安全性,还可对这些应用做进一步的鉴权认定。此时,签名信息获取模块12还用于在智能终端的应用在运行过程中发送的系统权限申请请求时,获取发起系统权限申请请求之应用的签名信息;
认证模块13还用于将上述签名信息与合法签名列表中的合法签名信息进行匹配;匹配规则也可以采用上述匹配规则,也可以采用与上述规则不同的其他规则。
权限管理模块14还用于在认证模块匹配成功时,允许应用执行系统权限,也即允许其继续执行上述动作;否则,禁止应用执行系统权限,也即禁止其继续执行上述动作,并可弹出一个对应的错误提示。
本实施例中的智能终端提前将运营商的签名信息设置为合法签名信息以进行后续签名认证,可以使得智能终端在改动最小的前提下支持多签名认证,相对现有智能终端仅支持一种签名认证的方案,成本更低,控制更灵活,且安全性更好。
以上内容是结合具体的实施方式对本发明实施例所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。