发明内容
本发明的目的在于提出一种控制Android应用程序安装的方法及手机,能够对Android手机安装应用程序进行控制。
为达此目的,本发明采用以下技术方案:
本发明一方面提供了一种控制Android应用程序安装的方法,包括:
进入Android***管理员模式,设置允许***安装的应用程序签名;
监测到有应用程序安装时,读取所述应用程序的安装文件的签名信息;
判断是否有与所述应用程序的安装文件的签名信息匹配的允许***安装的应用程序签名;
若没有与所述应用程序的安装文件的签名信息匹配的允许***安装的应用程序签名,拒绝所述应用程序的安装;否则,安装所述应用程序到***中。
其中,所述进入Android***管理员模式,设置允许***安装的应用程序签名后,进一步包括:设置***允许的应用程序对***的操作权限;
所述监测到有应用程序安装时,读取所述应用程序的安装文件的签名信息后,进一步包括:读取所述安装文件中所述应用程序对***的操作权限值;
所述安装所述应用程序到***中,包括:
若有与所述应用程序安装文件的签名信息匹配的允许***安装的应用程序签名,判断所述应用程序对***的操作权限值是否符合预设的***允许的应用程序对***的操作权限,若不符合,退出所述应用程序的安装;若符合,继续安装所述应用程序到***中。
其中,所述若符合,继续安装所述应用程序到***中,包括:
检测到需打开adb调试接口时,提示用户进行校验;接收用户输入的用于校验的密码,并将该密码与***管理员模式下预设的打开adb调试接口的密码进行比对;若用户输入的密码与预设的打开adb调试接口的密码一致,打开adb调试接口,调用adb的push功能函数以安装所述应用程序,否则,拒绝打开adb调试接口,退出所述应用程序的安装;
或者,检测到需打开adb调试接口时,提示用户进行校验;采集用户面部图像信息,将该用户面部图像信息与***管理员模式下预设的打开adb调试接口的面部图像信息进行比对;若该用户面部图像信息与预设的打开adb调试接口的面部图像信息一致,打开adb调试接口,调用adb的push功能函数以安装所述应用程序,否则,拒绝打开adb调试接口,退出所述应用程序的安装。
其中,所述进入Android***管理员模式,设置允许***安装的应用程序签名后,进一步包括:设置打开adb调试接口的密码,或者设置打开adb调试接口的面部图像信息。
其中,所述应用程序的安装文件的类型为APK文件。
本发明第二方面还一个了一种实现Android应用程序安装控制的手机,包括:
设置模块,用于进入到Android***管理员模式,设置允许***安装的应用程序签名;
读取模块,用于当监测到有应用程序安装时,读取所述应用程序的安装文件的签名信息;
判断模块,用于判断是否有与所述应用程序的安装文件的签名信息匹配的允许***安装的应用程序签名;
安装控制模块,用于若没有与所述应用程序的安装文件的签名信息匹配的允许***安装的应用程序签名,拒绝所述应用程序的安装;否则,安装所述应用程序到***中。
其中,所述设置模块还用于,进入Android***管理员模式,设置***允许的应用程序对***的操作权限;
所述读取模块还用于,监测到有应用程序安装时,读取所述安装文件中所述应用程序对***的操作权限值;
所述安装控制模块具体用于,若没有与所述应用程序的安装文件的签名信息匹配的允许***安装的应用程序签名,拒绝所述应用程序的安装;若有与所述应用程序的安装文件的签名信息匹配的允许***安装的应用程序签名,判断所述应用程序对***的操作权限值是否符合预设的***允许的应用程序对***的操作权限,若不符合,退出所述应用程序的安装;若符合,继续安装所述应用程序到***中。
其中,还包括:
校验模块,用于检测到需打开adb调试接口时,提示用户进行校验,接收用户输入的密码,并将该密码与***管理员模式下预设的打开adb调试接口的密码进行比对,若该密码与预设的打开adb调试接口的密码一致,打开adb调试接口,调用adb的push功能函数以安装所述应用程序,否则,拒绝打开adb调试接口,退出所述应用程序的安装;或者用于,检测到需打开adb调试接口时,提示用户进行校验,采集用户面部图像信息,将该用户面部图像信息与***管理员模式下预设的打开adb调试接口的面部图像信息进行比对;若该用户面部图像信息与预设的打开adb调试接口的面部图像信息一致,打开adb调试接口,调用adb的push功能函数以安装所述应用程序,否则,拒绝打开adb调试接口,退出所述应用程序的安装。
其中,所述设置模块还用于,进入Android***管理员模式,设置打开adb调试接口的密码,或者设置打开adb调试接口的面部图像信息。
其中,所述应用程序安装文件的类型为APK文件。
实施本发明实施例,具有如下有益效果:
本发明实施例通过对待安装的应用程序进行签名校验,只有符合***管理员设置签名的应用程序才能进行安装,否则,拒绝安装该应用程序。通过本发明方便了对Android手机应用程序安装进行控制,同时还防止手机在未知的情况下装入病毒程序。
具体实施方式
下面结合本发明的附图对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中华的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中,Android设备可以包括:手机、平板电脑,PDA(PersonalDigital Assistant,掌上电脑)、电子阅读器、笔记本电脑、智能电视、车载终端等基于Android***的智能设备。
下面结合附图1-附图3,对本发明实施例提供的一种控制Android应用程序安装的方法进行详细介绍。
请参见图1,图1是本发明一种控制Android应用程序安装的方法一实施例的流程图,包括如下步骤S110~S140:
步骤S110,进入Android***管理员模式,设置允许***安装的应用程序签名。
以Android手机为例,进入Android***管理员模式,设置的允许手机***安装的应用程序签名,所述预设的允许手机***安装的应用程序签名可以不止一个,可以有几个,类似手机中来电防火墙中的白名单功能,并且所述允许该手机***安装的应用程序签名仅对***管理员(即具有root权限的用户)可见,非管理员权限的用户无法查看或修改。通常,进入Android***管理员模式时需进行密码验证,只有用户输入正确的密码才能进入到管理员模式。
步骤S120,监测到有应用程序安装时,读取所述应用程序的安装文件的签名信息。
Android设备中应用程序的安装文件的类型为APK文件,APK文件其实是zip格式,但通常后缀名被修改为.apk,通过UnZip解压后,可以看到Dex文件(即Dalvik可执行格式,该格式适合内存和处理器速度受限的***)。一个标准APK文件结构由mete-INF(Jar文件中常可以看到)、res(存放资源文件的目录)、AndroidManifest.xml(程序全局配置文件)、classes.dex(Dalvik字节码)以及resources.arsc(编译后的二进制资源文件)几部分组成。在Android平台的dalvik虚拟机的执行文件被打包为apk格式,最终运行时加载器会解压然后获取编译后的androidmanifest.xml文件中的permission分支相关的安全访问,但仍然存在很多安全限制,若将apk文件传到/system/app文件夹下会发现执行是不受限制的。
默认生成的APK文件是debug签名的,如果要发布到互联网(如AndroidMarket)中需要另外用keytool和jarsigner来对待发布的APK文件进行签名,签名信息可包括发布的时间信息或者该应用程序所有者信息等标识信息,所述签名信息还可包括该APK文件的加密信息。当Android设备监测到有应用程序安装时,首先读取所述应用程序的APK安装文件的签名信息。
步骤S130,将所述应用程序的安装文件的签名信息与所述允许***安装的应用程序签名进行匹配。
当预设的允许***安装的应用程序签名有多个时,该步骤具体为:依次读取所述若干允许***安装的应用程序签名,并将所述应用程序的安装文件的签名信息与当前读取到的允许***安装的应用程序签名进行匹配。匹配方式可为全字段匹配,也可为局部模糊匹配,本发明对此不作限定。
步骤S140,若没有与所述应用程序安装文件的签名信息匹配的允许***安装的应用程序签名,拒绝所述应用程序的安装;若有,安装所述应用程序到***中。
通过本实施例的控制Android应用程序安装的方法,当检测到Android应用程序需安装时,读取该应用程序的APK文件的签名信息,并将其与***管理员模式下设置的允许***安装的应用程序的签名进行比较,如果是允许安装的应用程序,则安装所述应用程序,否则拒绝安装该应用程序。有利于公司对下属员工的手机进行应用程序安装限制,或者便于家长对小孩使用的手机进行监管,同时还可防治手机被病毒程序入侵。
请参阅图2,图2是本发明一种控制Android应用程序安装的方法又一实施例的流程图,该实施例与上述第一实施例的主要区别在于进一步加入了对待安装应用程序对***的操作权限值的验证,以加强Android设备对应用程序安装的控制。如图2所示,包括如下步骤S210~S250。
步骤S210,进入Android***管理员模式,设置允许***安装的应用程序签名,并进一步设置***允许的应用程序对***的操作权限。
所述***允许的应用程序对***的操作权限即应用程序安装后对Android设备进行操作的操作权限。Android框架内把各种对象(包括设备上的各类数据,传感器,拨打电话,发送信息,控制别的应用程序等)的访问权限进行了详细的划分,具体包含在多项"Android.Permission"中。应用程序在运行前必须向Android***声明它将会用到的权限,否则Android***将会拒绝该应用程序访问通过该"Permission"许可的内容。
步骤S220,监测到有应用程序安装时,读取所述应用程序安装文件的签名信息,并读取所述安装文件中该应用程序对***的操作权限值。
比如,某输入法应用程序提供了一个智能通讯录的功能,用户可以在输入联系人拼音的前几个字符或首字母时自动呈现相关联系人的名字。为了实现这个功能,该输入法应用程序必须声明它需要读取设备中联系人的权限,即在相关代码中加上"android.permission.READ_CONTACTS"对象。监测到有该输入法应用程序安装时,读取安装文件的签名信息,并读取该应用程序对***的操作权限值READ_CONTACTS。
步骤S230,将所述应用程序安装文件的签名信息与所述允许***安装的应用程序签名进行匹配。
步骤S240,若没有与所述应用程序安装文件的签名信息匹配的允许***安装的应用程序签名,拒绝所述应用程序的安装;若有,执行下一步。
步骤S250,判断该应用程序对***的操作权限值是否符合***允许的应用程序对***的操作权限,若不符合,即该应用程序对***的操作权限值不是***允许的应用程序对***的操作权限,退出所述应用程序的安装;若符合,继续安装所述应用程序到***中。
通过本实施例的控制Android应用程序安装的方法,当检测到Android应用程序需安装时,会去读取该应用程序的APK文件的签名信息和对***的操作权限值,并将APK文件的签名信息与管理员设置的允许***安装的应用程序的签名进行比较,如果不是***允许安装的应用程序则拒绝安装该应用程序;如果是允许安装的应用程序,则进一步验证该应用程序的对***的操作权限值是否为***允许的操作权限,若是则继续安装该应用程序,否则退出该应用程序的安装。有利于公司对下属员工的手机进行应用程序安装限制,或者便于家长对小孩使用的手机进行监管,同时还可防治手机被病毒程序入侵。
常见的Android设备安装APK文件的方式有以下几种:
方式一,利用PC版的APK安装器安装。PC版的APK安装器即将APK文件安装到手机等Android设备上的一个PC端软件,比如豌豆荚等,在PC上安装好“APK安装器”,这个软件会自动关联PC端的APK程序,双击PC端的APK程序将其安装到手机。这种安装APK文件的方式实质该为将PC端的APK文件安装至Android模拟器或Android设备。
方式二,通过手机版的APK安装器(如ASTRO)安装。将APK文件拷贝到手机的SD卡后,在手机上运行安装好的APK安装器,找到SD卡中的APK文件进行安装。(浏览器或下载工具有可能把的下载的APK文件后缀名改为.zip,这种情况需先将文件重命名为.apk后缀再拷贝到手机)。
上述两种安装方式需通过调用adb的push功能函数实现(需要打开adb的调试接口)。其中,adb的全称为Android Debug Bridge,是Android sdk里的一个工具,其可以直接操作管理Android模拟器或者真实的Android设备,起到调试桥的作用。
方式三,通过Android SDK(Android软件开发工具包)安装。先下载并安装Android SDK程序和Android USB驱动程序到Android设备,打开Windows命令提示符,输入以下命令#adb install path/file.apk,把其中的path替换成需要安装的APK文件所在的目录的完整路径,把其中的file换成带安装的APK文件名。
基于APK文件的安装方式,请参阅图3,本发明还提供了控制Android应用程序安装的方法的另一实施例,本实施例针对需要调用adb的push功能函数实现APK文件安装的情况。如图3所示,所述Android应用程序安装控制的方法包括如下步骤S310~S390。
步骤S310,进入Android***管理员模式,设置允许***安装的应用程序签名,设置***允许的应用程序对***的操作权限,并设置打开adb调试接口的密码。
所述应用程序签名、***允许的应用程序对***的操作权限和打开adb调试接口的密码仅对***管理员权限的用户可见。
作为本发明另一优选实施例,该步骤还可为进入Android手机***管理员模式,设置允许***安装的应用程序签名,设置***允许的应用程序对***的操作权限,或者设置打开adb调试接口的面部图像信息。
步骤S320,监测到有应用程序安装时,读取所述应用程序的安装文件的签名信息。
步骤S330,将所述应用程序的安装文件的签名信息与所述允许***安装的应用程序签名进行匹配。
步骤S340,若没有与所述应用程序安装文件的签名信息匹配的允许***安装的应用程序签名,拒绝所述应用程序的安装;若有,执行下一步骤。
步骤S350,判断该应用程序对***的操作权限值是否符合***允许的应用程序对***的操作权限,若不符合,即该应用程序对***的操作权限值不是***允许的应用程序对***的操作权限,退出所述应用程序的安装;若符合,继续安装所述应用程序到***中。
步骤S360,检测到需打开adb调试接口时,弹出校验界面,提示用户进行校验。
当需要调用adb的push功能函数将APK文件拷贝到手机的指定目录时,需要打开adb的调试接口,本实施例中在打开adb调试接口的函数中加入一个密码校验机制:当检测到需要调用adb的push功能函数时,自动弹出一密码校验对话框,提示用户输入密码。
步骤S370,接收用户输入的用于校验的密码,并将该密码与***管理员模式下预设的打开adb调试接口的密码进行比对。
作为本发明另一优选实施例,该步骤还可为:采集用户面部图像信息,将该用户面部图像信息与***管理员模式下预设的打开adb调试接口的面部图像信息进行比对。
步骤S380,判断用户输入的密码与设置的打开adb调试接口的密码是否一致?若用户输入的密码与预设的打开adb调试接口的密码一致,执行下一步骤,否则,拒绝打开adb调试接口,退出所述应用程序的安装。
作为本发明另一优选实施例,该步骤还可为:判断采集的用户面部图像信息与预设的打开adb调试接口的面部图像信息是否一致?若一致,执行下一步骤,否则,拒绝打开adb调试接口,退出所述应用程序的安装。
步骤S390,打开adb调试接口,调用adb的push功能函数安装所述应用程序。
其中,所述步骤S320~S350中未详尽的内容请参考图2及其第二个实施例所述。
同理,该实施例中的adb的push功能函数调用的加密校验机制也结合到上述图1及其第一个实施例的方案中,其构成的技术方案也应当属于本发明请求保护的范围。
可见,通过加入adb的push功能函数调用的校验机制,对Android应用程序安装之前需先通过打开adb调试接口的操作进行校验,再进一步的控制了Android应用程序的安装。便于企业对下属员工,或者家长对小孩使用的Android手机进行监管,同时也防止了病毒软件对手机的入侵。
以下为本发明实施例提供的一种实现Android应用程序安装控制的手机的实施例,与上述的阅读模式启用方法实施例属于同一构思,一种实现Android应用程序安装控制的手机的实施例中未详尽描述的细节内容,可以参考上述方法实施例。
请参阅图4,所述手机包括:
设置模块410,用于进入到Android***管理员模式,设置允许***安装的应用程序签名。
较佳的,所述设置模块具体用于,进入到Android***管理员模式,设置一个或者若干个允许***安装的应用程序签名。所述允许***安装的应用程序签名仅对***管理员(即具有root权限的用户)可见,非管理员权限的用户无法查看或修改。
读取模块420,用于当监测到有应用程序安装时,读取所述应用程序安装文件的签名信息。具体请参见上述实施例所述,在此不再赘述。
判断模块430,用于判断是否有与所述应用程序的安装文件的签名信息匹配的允许***安装的应用程序签名。
当设置的所述允许安装的应用程序签名有多个时,较佳地,所述判断模块430具体用于,依次读取所述若干允许***安装的应用程序签名,并将所述应用程序安装文件的签名信息与当前读取对的允许***安装的应用程序签名进行匹配。其中,匹配方式可为全字段匹配,也可为局部模糊匹配,本发明对此不作限定。
安装控制模块440,用于若没有与所述应用程序安装文件的签名信息匹配的允许***安装的应用程序签名,拒绝所述应用程序的安装;若有与所述应用程序安装文件的签名信息匹配的允许***安装的应用程序签名,安装所述应用程序到***中。
本实施例所述的手机,当有应用程序安装时,手机读取该应用程序的APK文件的签名信息,跟***管理员设置的允许安装的应用程序的签名进行比较,如果是允许安装的应用程序,则安装所述应用程序到手机***中,否则拒绝安装该应用程序。有利于对Android应用程序的安装进行限制,同时该手机还可防止病毒程序的自动安装。
作为本发明又一优选实施例,所述设置模块410还用于,进入Android***管理员模式,设置***允许的应用程序对***的操作权限。所述读取模块420还用于,监测到有应用程序安装时,读取所述安装文件中所述应用程序对***的操作权限值。所述安装控制模块440具体用于,若没有与所述应用程序安装文件的签名信息匹配的允许***安装的应用程序签名,拒绝所述应用程序的安装;若有与所述应用程序安装文件的签名信息匹配的允许***安装的应用程序签名,进一步判断该应用程序对***的操作权限值是否为***允许的应用程序对***的操作权限,若不符合,退出所述应用程序的安装;若符合,继续安装所述应用程序到***中。
本实施例所述的手机,当有应用程序安装时,手机读取该应用程序的APK文件的签名信息和对***的操作权限值,将所述APK文件的签名信息跟***管理员设置的允许安装的应用程序签名进行比较,如果不是允许安装的应用程序则拒绝安装该应用程序;如果是允许安装的应用程序,则进一步根据所述应用程序对***的操作权限值判断是否为***允许安装的应用程序,若不是则拒绝安装,若是则安装所述应用程序到手机***中。所述手机可对Android应用程序的安装进一步进行限制,同时该手机还可防止病毒程序的自动安装。
作为本发明另一优选实施例,所述设置模块410还可用于,进入Android手机***管理员模式,设置打开adb调试接口的密码,或者设置打开adb调试接口的面部图像信息。所述手机还包括:校验模块,用于检测到需打开adb调试接口时,弹出校验界面,提示用户进行校验;接收用户输入的密码,并将该密码与***管理员模式下预设的打开adb调试接口的密码进行比对,若该密码与预设的打开adb调试接口的密码一致,打开adb调试接口,调用adb的push功能函数以安装所述应用程序,否则,拒绝打开adb调试接口,退出所述应用程序的安装;或者用于,检测到需打开adb调试接口时,提示用户进行校验,采集用户面部图像信息,将该用户面部图像信息与***管理员模式下预设的打开adb调试接口的面部图像信息进行比对;若该用户面部图像信息与预设的打开adb调试接口的面部图像信息一致,打开adb调试接口,调用adb的push功能函数以安装所述应用程序,否则,拒绝打开adb调试接口,退出所述应用程序的安装。具体请参见上述实施例所述,在此不再赘述。
其中,所述应用程序安装文件的类型为APK文件。
本实施例所述的手机,当Android手机需调用adb的push功能函数安装应用程序时,通过对adb的push功能函数调用进行校验,进一步可控制Android手机安装应用程序,同时还可防止病毒程序的自动安装。
本领域普通技术人员可以理解实现上述实施例方法中的全部或者部分流程,是可以通过计算机程序指令相关的硬件来完成,所述的程序可存储于一计算机可读存取介质中,该程序执行时,可包括上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(random access memory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利要求范围,因此,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,仍属本发明所涵盖的范围。