基于无障碍服务的打开应用锁方法、终端设备及存储介质
技术领域
本发明涉及应用锁
技术领域
,尤其涉及基于无障碍服务的打开应用锁方法、终端设备及存储介质。背景技术
Android应用锁主要用于保护应用隐私,在启动应用时需要先进行密码验证。目前应用锁的实现方式有多种,针对不同的方式都有不同的破解方式,比如对于第三方应用锁,主要是实时监测加锁应用,在应用界面前端加一层密码锁界面,对于这种方式,只需要杀死第三方应用进程就能进入应用。
为了增强应用锁安全性,一些Android厂商开始从系统层级实现应用锁功能,原有的杀死第三方应用进程的方式就不再有效,打开应用锁需要使用ROOT提升权限或是使用特殊硬件设备。当前,随着Android手机系统安全的不断提升,Android手机获取ROOT已经成为难题;另一个方面,使用特殊硬件设备打开应用锁需要一定的设备费用,并且灵活性缺乏。
发明内容
为了解决上述问题,本发明提出了一种基于无障碍服务的打开应用锁方法、终端设备及存储介质。
具体方案如下:
一种基于无障碍服务的打开应用锁方法,包括以下步骤:
S1:当检测到设备进入密码锁界面后,启动无障碍服务,获取密码锁界面中键盘区域布局坐标和屏幕宽度坐标,根据键盘区域布局坐标和屏幕宽度坐标计算九宫格密码坐标,并对各九宫格区域进行编号,并记录每个编号矩形坐标;
S2:构建常用密码字典;
S3:针对常用密码字典中的每个密码,根据九宫格密码坐标,依序通过无障碍服务点击密码对应的坐标位置后,通过无障碍服务检测对应的解锁状态,直至根据解锁状态判定密码验证成功;当常用密码字典中所有密码校验均不成功时,进入S4;
S4:定义有效密码规则,获取符合有效密码规则的密码集合,并根据常用密码字典中的密码集合中各密码进行过滤,过滤掉密码集合中属于常用密码字典中的密码;
S5:针对过滤后的每个密码,根据九宫格密码坐标,依序通过无障碍服务点击密码对应的坐标位置后,通过无障碍服务检测对应的解锁状态,直至根据解锁状态判定密码验证成功后,将验证成功的密码更新至常用密码字典内。
进一步的,通过无障碍服务检测对应的解锁状态的方法为:通过无障碍服务获取密码锁界面中的页面元素,根据页面元素中包括的解锁状态对应的特征的类型,判断处于哪种解锁状态。
进一步的,有效密码规则包括以下两点:
一、有效密码为不重复的N位1~9中的数字,其中,4≤N≤9;
二、密码中任意相邻的两位数字在九宫格中的连线如果经过了其他数字,则判断密码中是否包含该经过的数字,且该经过的数字位于该相邻的两位数字之前,如果是,则判定为有效密码;否则判定为无效密码。
进一步的,通过无障碍服务手势在九宫格密码区域内做模拟滑动替代点击。
进一步的,通过无障碍服务手势在九宫格密码区域内做模拟滑动替代点击的方法为:计算密码对应的点击区域,获取点击坐标区域p1、p2点,采用无障碍服务手势模拟p1到p2的滑动以完成点击。
一种基于无障碍服务的打开应用锁终端设备,包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例上述的方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例上述的方法的步骤。
本发明采用如上技术方案,可以利用android无障碍提供的功能打开应用锁密码,可以进一步弥补对于当前手机ROOT难度大、特殊硬件使用复杂和成本因素难以实现打开应用锁的缺陷,同时采用了常用密码字典和定义有效密码规则相结合的方式,加速了检测性能,对于研究手机应用锁打开具有实用性强、高应用价值。
附图说明
图1所示为本发明实施例一的流程图。
图2所示为该实施例中密码锁界面示意图。
具体实施方式
为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。
现结合附图和具体实施方式对本发明进一步说明。
实施例一:
本发明实施例提供了一种基于无障碍服务的打开应用锁方法,如图1所示,所述方法包括以下步骤:
S1:当检测到设备进入密码锁界面后,启动无障碍服务,获取密码锁界面中键盘区域布局坐标和屏幕宽度坐标,根据键盘区域布局坐标和屏幕宽度坐标计算九宫格密码坐标,并对各九宫格区域进行编号,并记录每个编号矩形坐标。
该实施例中密码锁界面如图2所示,将各九宫格区域按照通用的编号循序依序编号为1~9。
S2:构建常用密码字典。
常用密码字典中保存着常用的或验证过的密码。
S3:针对常用密码字典中的每个密码,根据九宫格密码坐标,依序通过无障碍服务点击密码对应的坐标位置后,通过无障碍服务检测对应的解锁状态,直至根据解锁状态判定密码验证成功;当常用密码字典中所有密码校验均不成功时,进入S4。
进一步的,由于某些应用锁存在无障碍服务不具有直接点击屏幕坐标能力,因此使用无障碍服务手势在九宫格密码区域内做模拟滑动替代直接点击。具体方法为:计算密码对应的点击区域,获取点击坐标区域p1、p2点,采用无障碍服务手势模拟p1到p2的滑动完成点击效果。
该实施例中通过无障碍服务检测对应的解锁状态的方法为:通过无障碍服务获取密码锁界面中的页面元素,根据页面元素中包括的解锁状态对应的特征的类型,判断处于哪种解锁状态。
该实施例中解锁状态包括四种,分别为“输入密码”、“重试”、“错误”和“成功”,其中,“重试”对应需要等待的状态,“错误”对应不需要等待的状态。当检测到的解锁状态为“重试”时,休息等待一段时间(如30s),待密码锁界面被重置后,针对下一个密码重新进行步骤S3。当检测到的解锁状态为“错误”时,通过无障碍服务点击删除坐标,对密码锁界面进行置位后,针对下一个密码重新进行步骤S3。
该实施例中“输入密码”对应的特征为“输入密码”;“重试”对应的特征为“重试”或“等待”;“错误”对应的特征为“失败”或“错误”;“成功”对应的特征为“成功”。
S4:定义有效密码规则,获取符合有效密码规则的密码集合,并根据常用密码字典中的密码集合中各密码进行过滤,过滤掉密码集合中属于常用密码字典中的密码。
该实施例中有效密码规则包括以下两点:
一、有效密码为不重复的N位1~9中的数字,其中,4≤N≤9;
二、密码中任意相邻的两位数字在九宫格中的连线如果经过了其他数字,则判断密码中是否包含该经过的数字,且该经过的数字位于该相邻的两位数字之前,如果是,则判定为有效密码;否则判定为无效密码。
S5:针对过滤后的每个密码,根据九宫格密码坐标,依序通过无障碍服务点击密码对应的坐标位置后,通过无障碍服务检测对应的解锁状态,直至根据解锁状态判定密码验证成功后,将验证成功的密码更新至常用密码字典内。
本发明实施例提出了一种基于Android无障碍服务的应用锁打开方案,通过本实施例的方案,可以利用android无障碍提供的功能打开应用锁密码,可以进一步弥补对于当前手机ROOT难度大、特殊硬件使用复杂和成本因素难以实现打开应用锁的缺陷,同时采用了常用密码字典和定义有效密码规则相结合的方式,加速了检测性能,对于研究手机应用锁打开具有实用性强、高应用价值。采用无障碍服务模拟手势完成预设置密码的手势遍历,对每一次模拟结果状态进行检测,直到检测应用锁打开状态并进一步反馈回字典,持续提升打开应用锁能力。
实施例二:
本发明还提供一种基于无障碍服务的打开应用锁终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例一的上述方法实施例中的步骤。
进一步地,作为一个可执行方案,所述基于无障碍服务的打开应用锁终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述基于无障碍服务的打开应用锁终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,上述基于无障碍服务的打开应用锁终端设备的组成结构仅仅是基于无障碍服务的打开应用锁终端设备的示例,并不构成对基于无障碍服务的打开应用锁终端设备的限定,可以包括比上述更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述基于无障碍服务的打开应用锁终端设备还可以包括输入输出设备、网络接入设备、总线等,本发明实施例对此不做限定。
进一步地,作为一个可执行方案,所称处理器可以是中央处理单元(CentralProcessing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述基于无障碍服务的打开应用锁终端设备的控制中心,利用各种接口和线路连接整个基于无障碍服务的打开应用锁终端设备的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述基于无障碍服务的打开应用锁终端设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据手机的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例上述方法的步骤。
所述基于无障碍服务的打开应用锁终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)以及软件分发介质等。
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。