发明内容
由于现有方法存在上述问题,本发明提出跨系统安装应用的方法、装置、电子设备及存储介质。
第一方面,本发明提供了一种跨系统安装应用的方法,包括:
下载第一操作系统的应用;所述第一操作系统的应用包含第一操作系统的应用程序包;
通过第一操作系统的包管理器解析所述第一操作系统的应用程序包,得到解析信息;
按照预设的通信结构体根据所述解析信息生成第一数据包;
将所述第一数据包发送至第二操作系统的权限管理模块;
通过所述权限管理模块判断是否允许安装所述第一操作系统的应用;
若允许,则在第二操作系统安装所述第一操作系统的应用。
进一步地,所述第一数据包包括:应用类型、应用签名信息、应用标识以及权限信息。
进一步地,所述将所述第一数据包发送至第二操作系统的权限管理模块,包括:
通过第一操作系统服务代理根据所述第一数据包生成第二操作系统可识别的第二数据包;
将所述第二数据包通过第二操作系统服务代理发送至第二操作系统的权限管理模块。
进一步地,所述通过所述权限管理模块判断是否允许安装所述第一操作系统的应用,包括:
获取终端当前所处的模式;
根据所述第一数据包确定所述第一操作系统的应用的应用类型以及应用签名信息;
通过所述权限管理模块根据所述模式确定对应的应用类型集合;
判断所述第一操作系统的应用的应用类型是否属于所述应用类型集合以及所述应用签名信息是否为未知来源;
若所述第一操作系统的应用的应用类型属于所述应用类型集合且所述应用签名信息不为未知来源,则允许安装。
进一步地,所述解析信息包含所述第一操作系统的应用的包名、入口类名以及图标,在所述安装所述第一操作系统的应用之后,还包括:
判断是否收到第一操作系统的包管理器发送的广播;所述广播用于指示安装完成;
若收到,将所述包名、所述入口类名以及所述图标发送至第二操作系统的应用图标管理模块;
通过所述应用图标管理模块在第二操作系统生成桌面文件和桌面图标。
进一步地,所述通过所述应用图标管理模块在第二操作系统生成桌面文件和桌面图标,包括:
通过所述应用图标管理模块根据所述包名以及所述入口类名生成桌面文件启动命令;
通过所述桌面文件启动命令生成桌面文件。
第二方面,本发明提供了一种跨系统安装应用的装置,包括:
获取模块,下载第一操作系统的应用;所述第一操作系统的应用包含第一操作系统的应用程序包;
处理模块,用于通过第一操作系统的包管理器解析所述第一操作系统的应用程序包,得到解析信息;按照预设的通信结构体根据所述解析信息生成第一数据包;将所述第一数据包发送至第二操作系统的权限管理模块;通过所述权限管理模块判断是否允许安装所述第一操作系统的应用;若允许,则在第二操作系统安装所述第一操作系统的应用。
进一步地,所述处理模块具体用于:
所述第一数据包包括:应用类型、应用签名信息、应用标识以及权限信息。
进一步地,所述处理模块具体用于:
通过第一操作系统服务代理根据所述第一数据包生成第二操作系统可识别的第二数据包;
将所述第二数据包通过第二操作系统服务代理发送至第二操作系统的权限管理模块。
进一步地,所述处理模块具体用于:
获取终端当前所处的模式;
根据所述第一数据包确定所述第一操作系统的应用的应用类型以及应用签名信息;
通过所述权限管理模块根据所述模式确定对应的应用类型集合;
判断所述第一操作系统的应用的应用类型是否属于所述应用类型集合以及所述应用签名信息是否为未知来源;
若所述第一操作系统的应用的应用类型属于所述应用类型集合且所述应用签名信息不为未知来源,则允许安装。
进一步地,所述解析信息包含所述第一操作系统的应用的包名、入口类名以及图标,所述处理模块具体用于:
在所述安装所述第一操作系统的应用之后,判断是否收到第一操作系统的包管理器发送的广播;所述广播用于指示安装完成;
若收到,将所述包名、所述入口类名以及所述图标发送至第二操作系统的应用图标管理模块;
通过所述应用图标管理模块在第二操作系统生成桌面文件和桌面图标。
进一步地,所述处理模块具体用于:
通过所述应用图标管理模块根据所述包名以及所述入口类名生成桌面文件启动命令;
通过所述桌面文件启动命令生成桌面文件。
第三方面,本发明还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的跨系统安装应用的方法。
第四方面,本发明还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述的跨系统安装应用的方法。
由上述技术方案可知,本发明提供的跨系统安装应用的方法、装置、电子设备及存储介质,通过将解析信息发送至第二操作系统的权限管理模块请求权限,实现了高效地在第二操作系统安装第一操作系统的应用并提高了在第二操作系统安装第一操作系统的应用的安全性。
具体实施方式
下面结合附图,对本发明的具体实施方式作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
在下述实施例中,第一操作系统包括桌面版操作系统,例如Windows、Linux、MacOS等,也可以是移动操作系统,例如安卓、iOS等。
在下述实施例中,第二操作系统包括移动操作系统,例如安卓、iOS等。也可以是桌面版操作系统,例如Windows、Linux、Mac OS等。
需要说明的是,此处所称的安卓包括Google的Android OS和基于AOSP的各种衍生版,如MIUI、EMUI等。
为了说明的方便,在下述实施例中,以第一操作系统为安卓,第二操作系统为Linux为例说明本发明实施例的实现过程。
本发明实施例提供的跨系统安装应用的方法,可以适用于如图1所示的系统架构中,该系统架构包括安卓端100、Linux端200。
具体的,安卓端100用于通过安卓应用商店下载安卓应用。
需要说明的是,安卓应用包含安卓应用程序包。
安卓端100用于通过安卓的包管理器解析安卓应用程序包,得到解析信息;按照预设的通信结构体根据解析信息生成第一数据包。
安卓端100还用于将第一数据包发送至Linux端的权限管理模块。
Linux端200通过权限管理模块判断是否允许安装安卓应用;若允许,则在Linux端安装安卓应用。
需要说明的是,图1仅是本发明实施例系统架构的一种示例,本发明对此不做具体限定。
基于上述所示意的系统架构,图2为本发明实施例提供的一种跨系统安装应用的方法所对应的流程示意图,如图2所示,该方法包括:
步骤201,下载第一操作系统的应用。
在一种可能的实施方式中,通过第一操作系统的应用商店下载第一操作系统的应用。
需要说明的是,第一操作系统的应用包含第一操作系统的应用程序包。
具体的,安卓应用程序包(Android application package,APK)是安卓操作系统使用的一种应用程序包文件格式,用于分发和安装移动应用及中间件。
步骤202,通过第一操作系统的包管理器解析第一操作系统的应用程序包,得到解析信息;
具体的,在下载第一操作系统的应用后,将第一操作系统的应用程序包拷贝到预设的目录下,比如/data/app。
进一步地,通过第一操作系统的包管理器解析第一操作系统的应用程序包。
需要说明的是,包管理器(Package Manager Service,PKMS)主要是对AndroidMainfest.xml文件进行解析。然后将解析信息保存在Package对象中。
步骤203,按照预设的通信结构体根据解析信息生成第一数据包。
具体的,从Package对象里将解析信息放入预设的通信结构体中。
需要说明的是,预设的通信结构体是由一批数据组合而成的一种新的数据类型,组成结构型数据的每个数据称为结构型数据的“成员”,用来表示类型不同但是又相关的若干数据。
在一种可能的实施方式中,第一数据包包括:应用类型、应用签名信息、应用标识以及权限信息。
需要说明的是,数据包还可以包括应用属性等,本发明实施例对此不做具体限定。
具体的,应用签名信息就是对应用的签名,对应用中可执行文件或脚本数据进行一次Hash,然后再进行一次RSA加密后获得的结果。应用标识及应用UID,系统启动的时候,会对每个应用分配一个UID。
举例来说,应用类型可以为游戏类型、办公类型等。
本发明实施例中,权限信息包括网络权限、相机权限、内存访问权限、存储权限、通话权限等。
上述方案,通过预设的通信结构将解析信息打包,使得在传输至第二操作系统的过程中更高效。
步骤204,将第一数据包发送至第二操作系统的权限管理模块。
具体的,通过第一操作系统服务代理根据第一数据包生成第二操作系统可识别的第二数据包;
将第二数据包通过第二操作系统服务代理发送至第二操作系统的权限管理模块。
本发明实施例中,将数据包发送到第二操作系统的权限管理模块进行统一的管理。
上述方案,通过第一操作系统的应用商店下载第一操作系统的应用,调用第一操作系统的包管理器安装,但是不再由第一操作系统的端进行权限管理,而是由第二操作系统的权限管理模块(Permission Manager Service)来管理。
步骤205,通过权限管理模块判断是否允许安装第一操作系统的应用;
步骤206,若允许,则在第二操作系统安装第一操作系统的应用。
上述方案,通过将解析信息发送至第二操作系统的权限管理模块请求权限,实现了高效地在第二操作系统安装第一操作系统的应用并提高了在第二操作系统安装第一操作系统的应用的安全性。
进一步地,本发明实施例步骤205中具体的步骤流程如图3所示,如下:
步骤301,获取终端当前所处的模式。
举例来说,终端当前所处的模式可以为儿童模式、监督模式等。
步骤302,根据第一数据包确定第一操作系统的应用的应用类型以及应用签名信息。
在一种可能的实施方式中,第一数据包包括:应用类型、应用签名信息、应用标识以及权限信息。
步骤303,通过权限管理模块根据模式确定对应的应用类型集合。
举例来说,终端当前所处的模式可以为儿童模式时,儿童模式对应的应用类型集合为学习类型、办公类型。
步骤304,判断第一操作系统的应用的应用类型是否属于应用类型集合以及应用签名信息是否为未知来源。
举例来说,终端当前所处的模式可以为儿童模式时,儿童模式对应的应用类型集合为学习类型、办公类型。第一操作系统的应用的应用类型为游戏类型,此时权限管理模块不允许安装第一操作系统的应用。
步骤305,若第一操作系统的应用的应用类型属于应用类型集合且应用签名信息不为未知来源,则允许安装。
举例来说,终端当前所处的模式可以为儿童模式时,儿童模式对应的应用类型集合为学习类型、办公类型。第一操作系统的应用的应用类型为学习类型,权限管理模块在判断应用签名信息不为未知来源即为被信任的签名信息后允许安装第一操作系统的应用。
进一步地,本发明实施例在权限管理模块允许安装第一操作系统的应用后,将第一数据包存到第二操作系统对应的权限组中并返回允许安装信号。在权限管理模块不允许安装第一操作系统的应用后,丢弃第一数据包并返回不允许安装信号。
上述方案,通过终端当前所处的模式判断第一操作系统的应用的应用类型是否属于应用类型集合以及应用签名信息是否为未知来源有效组织了不安全访问,提高了在第二操作系统安装第一操作系统的应用的安全性。
本发明实施例中,解析信息包含第一操作系统的应用的包名、入口类名以及图标。
进一步地,在安装第一操作系统的应用之后的步骤流程如图4所示,具体如下:
步骤401,判断是否收到第一操作系统的包管理器发送的广播.
需要说明的是,广播用于指示安装完成。
步骤402,若收到,将包名、入口类名以及图标发送至第二操作系统的应用图标管理模块。
步骤403,通过应用图标管理模块在第二操作系统生成桌面文件和桌面图标。
本发明实施例中,在安装完成后,第一操作系统的包管理器发送安装完成的广播。
进一步地,本发明实施例添加监听,在收到广播后将第一操作系统的应用的包名、入口类名以及图标发送至第二操作系统的应用图标管理模块,生成desktop文件和桌面图标。
上述方案,通过添加监听广播,从而实现在安装完成后生成桌面文件和桌面图标。
具体的,通过应用图标管理模块根据包名以及入口类名生成桌面文件启动命令;
通过桌面文件启动命令生成桌面文件。
进一步地,第二操作系统的应用图标管理模块在接收到图标后,将其存放在预设的目录中。然后桌面文件里设置为对应的名称。第二操作系统桌面显示相应第二操作系统的图标。
基于同一发明构思,图5示例性的示出了本发明实施例提供的一种跨系统安装应用的应用的装置,该装置可以为一种跨系统安装应用的方法的流程。
所述装置,包括:
获取模块501,下载第一操作系统的应用;所述第一操作系统的应用包含第一操作系统的应用程序包;
处理模块502,用于通过第一操作系统的包管理器解析所述第一操作系统的应用程序包,得到解析信息;按照预设的通信结构体根据所述解析信息生成第一数据包;将所述第一数据包发送至第二操作系统的权限管理模块;通过所述权限管理模块判断是否允许安装所述第一操作系统的应用;若允许,则在第二操作系统安装所述第一操作系统的应用。
进一步地,所述处理模块502具体用于:
所述第一数据包包括:应用类型、应用签名信息、应用标识以及权限信息。
进一步地,所述处理模块502具体用于:
通过第一操作系统服务代理根据所述第一数据包生成第二操作系统可识别的第二数据包;
将所述第二数据包通过第二操作系统服务代理发送至第二操作系统的权限管理模块。
进一步地,所述处理模块502具体用于:
获取终端当前所处的模式;
根据所述第一数据包确定所述第一操作系统的应用的应用类型以及应用签名信息;
通过所述权限管理模块根据所述模式确定对应的应用类型集合;
判断所述第一操作系统的应用的应用类型是否属于所述应用类型集合以及所述应用签名信息是否为未知来源;
若所述第一操作系统的应用的应用类型属于所述应用类型集合且所述应用签名信息不为未知来源,则允许安装。
进一步地,所述解析信息包含所述第一操作系统的应用的包名、入口类名以及图标,所述处理模块502具体用于:
在所述安装所述第一操作系统的应用之后,判断是否收到第一操作系统的包管理器发送的广播;所述广播用于指示安装完成;
若收到,将所述包名、所述入口类名以及所述图标发送至第二操作系统的应用图标管理模块;
通过所述应用图标管理模块在第二操作系统生成桌面文件和桌面图标。
进一步地,所述处理模块502具体用于:
通过所述应用图标管理模块根据所述包名以及所述入口类名生成桌面文件启动命令;
通过所述桌面文件启动命令生成桌面文件。
基于相同的发明构思,本发明又一实施例提供了一种电子设备,参见图6,所述电子设备具体包括如下内容:处理器601、存储器602、通信接口603和通信总线604;
其中,所述处理器601、存储器602、通信接口603通过所述通信总线604完成相互间的通信;所述通信接口603用于实现各设备之间的信息传输;
所述处理器601用于调用所述存储器602中的计算机程序,所述处理器执行所述计算机程序时实现上述跨系统安装应用的方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:下载第一操作系统的应用;所述第一操作系统的应用包含第一操作系统的应用程序包;通过第一操作系统的包管理器解析所述第一操作系统的应用程序包,得到解析信息;按照预设的通信结构体根据所述解析信息生成第一数据包;将所述第一数据包发送至第二操作系统的权限管理模块;通过所述权限管理模块判断是否允许安装所述第一操作系统的应用;若允许,则在第二操作系统安装所述第一操作系统的应用。
基于相同的发明构思,本发明又一实施例提供了一种非暂态计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述跨系统安装应用的方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:下载第一操作系统的应用;所述第一操作系统的应用包含第一操作系统的应用程序包;通过第一操作系统的包管理器解析所述第一操作系统的应用程序包,得到解析信息;按照预设的通信结构体根据所述解析信息生成第一数据包;将所述第一数据包发送至第二操作系统的权限管理模块;通过所述权限管理模块判断是否允许安装所述第一操作系统的应用;若允许,则在第二操作系统安装所述第一操作系统的应用。
此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,跨系统安装应用的装置,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,跨系统安装应用的装置,或者网络设备等)执行各个实施例或者实施例的某些部分所述的跨系统安装应用的方法。
此外,在本发明中,诸如“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
此外,在本发明中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
此外,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。