CN105095746B - 应用程序启动鉴权方法及装置 - Google Patents
应用程序启动鉴权方法及装置 Download PDFInfo
- Publication number
- CN105095746B CN105095746B CN201510382853.0A CN201510382853A CN105095746B CN 105095746 B CN105095746 B CN 105095746B CN 201510382853 A CN201510382853 A CN 201510382853A CN 105095746 B CN105095746 B CN 105095746B
- Authority
- CN
- China
- Prior art keywords
- application program
- background service
- startup
- application
- interface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 99
- 230000004044 response Effects 0.000 claims abstract description 29
- 230000003993 interaction Effects 0.000 claims description 7
- 230000004397 blinking Effects 0.000 abstract description 2
- 239000002699 waste material Substances 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 101
- 230000008569 process Effects 0.000 description 59
- 230000006399 behavior Effects 0.000 description 48
- 238000004891 communication Methods 0.000 description 23
- 230000006854 communication Effects 0.000 description 23
- 230000000694 effects Effects 0.000 description 13
- 238000012544 monitoring process Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 10
- 239000011230 binding agent Substances 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000012800 visualization Methods 0.000 description 4
- 241000208340 Araliaceae Species 0.000 description 3
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 3
- 235000003140 Panax quinquefolius Nutrition 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 235000008434 ginseng Nutrition 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000763 evoking effect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- GBBVHDGKDQAEOT-UHFFFAOYSA-N 1,7-dioxaspiro[5.5]undecane Chemical compound O1CCCCC11OCCCC1 GBBVHDGKDQAEOT-UHFFFAOYSA-N 0.000 description 1
- 235000001674 Agaricus brunnescens Nutrition 0.000 description 1
- 235000019944 Olestra Nutrition 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005314 correlation function Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种应用程序启动鉴权方法,该方法主要包括以下步骤:接收预设的后台服务发送的启动事件通知,所述启动事件通知基于后台服务拦截的应用程序的启动行为而生成;响应于该启动事件通知,启动锁定界面以接收用户的密码输入,对该应用程序的启动行为进行鉴权;依据鉴权结果通知所述后台服务放行或禁止启动该应用程序。此外还提供一种应用程序启动鉴权装置。本发明可以在应用程序自启动之前进行锁定,通过用户鉴权确定是否启动,解决锁定时画面闪现现象,避免CPU定时轮询造成的时间浪费,实现更好用户体验的程序锁功能。
Description
技术领域
本发明涉及智能终端安全领域,具体而言,本发明涉及一种应用程序启动鉴权方法及装置。
背景技术
随着智能终端技术的快速发展,各种功能的应用程序如雨后春笋般涌现而出,占据着市场。不可否认多种多样的应用程序在生产生活的各个方面不同程度满足着人们的需求,但同时也为用户的隐私保护带来了不小的风险。
智能移动设备上的安全软件很多都提供软件锁功能以保护用户的隐私信息,基本都是通过调用android的***服务ActivityManagerService中的接口getTasks(intmaxNum,int flags,IThumbnailReceiver receiver)方法查询当前屏幕最上方的画面是否属于指定的应用,如果是则直接显示一个画面覆盖在屏幕最上方以达到锁定应用的目的。
现有技术在实现这个功能时,安全软件定时检查指定的应用程序的主画面是否已经显示在屏幕最上方,一旦发现显示,安全软件就立即弹出画面覆盖在屏幕上方,需要用户输入密码或通过其他手段获得授权才能进入软件主画面。由于现有技术实现方式是定时轮询,一方面会无谓地浪费CPU时间,另一方面是由于时间差导致的用户体验差和隐私泄露问题,因为只有检测到了应用程序画面的相关数据,才弹出锁定画面,所以应用程序启动和锁定画面的启动之间的时间差可能导致应用的主画面闪现一下才被覆盖锁定。
发明内容
本发明的目的旨在解决上述至少一个问题,提供一种应用程序启动鉴权方法及装置。
为了实现上述目的,本发明所述一种应用程序启动鉴权方法具体步骤如下:接收预设的后台服务发送的启动事件通知,所述启动事件通知基于后台服务拦截的应用程序的启动行为而生成;
响应于该安装事件通知,启动锁定界面以接收用户的密码输入指令,对该应用程序的启动行为进行鉴权;
依据鉴权结果通知所述后台服务放行或禁止启动该应用程序。
具体的,所述后台服务运行于***的framework层,将所述启动事件通知发送到***的App层。
具体的,所述后台服务将待启动应用程序的包名作为参数调用回调函数以发送所述启动事件通知。
进一步的,启动锁定界面进行鉴权的步骤中,仅当接收到应用程序的启动事件通知时显示所述锁定界面。
具体的,所述后台服务采用钩子函数对待启动应用程序的启动函数挂钩以实现对其启动行为的拦截。
具体的,由所述后台服务根据其接收的放行或结束启动应用程序的通知,允许或禁止活动管理服务执行对所述应用程序的启动操作。
进一步的,所述活动管理服务具体指执行应用程序启动操作的ActivityManagerService。
具体的,所述锁定界面为接收到应用程序的启动事件通知时显示,并提供密码输入框的用户交互界面。
进一步的,进行鉴权时,验证用户在锁定界面输入的密码以完成所述对应用程序的鉴权。
具体的,当鉴权成功时,直接通知所述后台服务放行启动应用程序;当鉴权失败时,显示告警信息以提示用户鉴权失败,禁止或暂停启动该应用程序。
具体的,启动锁定界面进行鉴权之前,还包括以下步骤:
通过远程接口提交获取允许启动的应用程序包名列表的远程请求;
接收云端服务器反馈的允许启动的应用程序包名列表;
进一步的,还包括步骤:当待启动的应用程序存在于所述允许启动的应用程序包名列表中时,直接通知所述后台服务放行启动该些应用程序。
具体的,启动锁定界面进行鉴权之前,查询存储于本地的允许启动的应用程序包名列表,当待启动的应用程序存在于所述列表中时,直接通知后台服务放行启动所述列表中的应用程序。
还提供一种应用程序启动鉴权装置,该装置包括以下单元:
接收单元:用于接收预设的后台服务发送的启动事件通知,所述启动事件通知基于后台服务拦截的应用程序的启动行为而生成;
响应单元:响应于该启动事件通知,用于启动锁定界面以接收用户的密码输入指令,对该应用程序的启动行为进行鉴权;
执行单元:用于依据鉴权结果通知所述后台服务放行或禁止启动该应用程序。
具体的,所述后台服务运行于***的framework层,将所述启动事件通知发送到***的App层。
具体的,所述后台服务将待启动应用程序的包名作为参数调用回调函数以发送所述启动事件通知。
进一步的,所述响应单元中,仅当接收到应用程序的启动事件通知时显示所述锁定界面。
具体的,所述后台服务采用钩子函数对待启动应用程序的启动函数挂钩以实现对其启动行为的拦截。
具体的,由所述后台服务根据其接收的放行或结束启动应用程序的通知,允许或禁止活动管理服务执行对所述应用程序的启动操作。
进一步的,所述活动管理服务具体指执行应用程序启动操作的ActivityManagerService。
具体的,所述锁定界面为接收到应用程序的启动事件通知时显示,并提供密码输入框的用户交互界面。
进一步的,所述响应单元鉴权时,验证用户在锁定界面输入的密码以完成所述对应用程序的鉴权。
具体的,所述执行单元进一步被配置为:当鉴权成功时,直接通知所述后台服务放行启动应用程序;当鉴权失败时,显示告警信息以提示用户鉴权失败,禁止或暂停启动该应用程序。
具体的,还包括远程交互单元,被配置为执行如下功能:
通过远程接口提交获取允许启动的应用程序包名列表的远程请求;
接收云端服务器反馈的允许启动的应用程序包名列表;
进一步的,当待启动的应用程序存在于所述允许启动的应用程序包名列表中时,直接通知所述后台服务放行启动该些应用程序。
具体的,所述响应单元被配置为在启动锁定界面进行鉴权之前,查询存储于本地的允许启动的应用程序包名列表,当待启动的应用程序存在于所述列表中时,直接通知后台服务放行启动所述列表中的应用程序。
相比现有技术,本发明的方案具有以下优点:
1、本发明在Android***的Framework层的应用启动接口中加入钩子函数,中断原来的直接启动过程,先回调安全软件的接口以发送应用程序启动的通知事件,然后根据用户授权结果,确定是否继续执行应用程序的启动流程。通过用钩子函数对应用程序启动的相关函数进行挂钩,并在应用程序显示其主界面前启动锁定界面,从而可以解决应用程序启动界面和锁定界面显示速度之间的时间差问题,使得锁定界面显示时无画面闪现现象,提高用户体验度。同时,通过该锁定界面接收用户的授权指令,允许启动获得启动权限的应用程序,从而避免用户的隐私泄露,实现更好用户体验的程序锁功能;
2、本发明在应用程序启动主界面之前,对其启动行为进行拦截,并显示锁定界面,以接收用户的密码输入指令,对应用程序的启动行为进行鉴权。仅当拦截到应用程序的启动行为时才启动锁定界面,不同于现有技术检测到应用程序界面相关数据时才弹出锁定界面。由此避免了CPU在对应用程序界面相关数据进行检测时的定时轮询造成的资源浪费,使得智能设备运行更加流畅。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明所述应用程序启动鉴权方法原理示意图;
图2为本发明所述应用程序启动鉴权装置原理框图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,执行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(Personal Communications Service,个人通信***),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global Positioning System,全球定位***)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
本技术领域技术人员可以理解,这里所使用的远端网络设备,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云。在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。本发明的实施例中,远端网络设备、终端设备与WNS服务器之间可通过任何通信方式实现通信,包括但不限于,基于3GPP、LTE、WIMAX的移动通信、基于TCP/IP、UDP协议的计算机网络通信以及基于蓝牙、红外传输标准的近距无线传输方式。
为了更好地阐述本发明所述的方法,以Android操作***为例,对基于Android***的活动管理服务操作流程做简单介绍:
活动管理服务ActivityManagerService(简称AMS)是Android的***服务之一,也可以说是Android上层***最核心的模块之一,其主要完成管理应用进程的生命周期以及进程的Activity,Service,Broadcast和Provider等主要功能。活动管理服务在***启动阶段由***服务systemserver启动,它的构造以及运行都是在SystemServer当中进行。从***运行的角度看,AMS可以分为Client端和Service端:Client端运行在各个app进程,app进程实现了具体的Activity,Service等,并且调用***接口来完成显示;Service端运行在SystemServer进程,是***级别的ActivityManagerService的具体实现,其响应Client端的***调用请求,并且管理Client端各个app进程的生命周期。在Client端,Application,Service和Activity都是Context的子类,Context理解为环境,也就是它能够告诉***当前运行的Activity,Service的情况,包括显示、进程等。Context是一个abstract类,定义的方法具体实现在ContextImpl中,ContextWrapper作为Context的装饰类,里面的成员变量mBase指向ContextImpl。
IActivityManager接口定义了app访问AMS的接口,主要是应用请求AMS要完成某些操作,比如启动或结束Activity,启动、或暂停Service。ActivityManagerService实现了IActivityManager中定义的接口,该类可以说是AMS的核心,AMS的所有具体工作基本上都在该类中或者通过该类控制,ActivityManagerService的实例在进程SystemServer刚启动时初始化。IApplicationThread接口定义了AMS可以访问app的接口,AMS通过这些接口控制app进程以及完成app的响应,ApplicationThread是IApplicationThread接口的具体实现,ApplicationThread的实例是在app进程启动时创建ActivityThread对象时初始化,ActivityThread的成员变量mAppThread就是ApplicationThread对象。另外为了实现跨进程调用,ActivityManagerProxy和ApplicationThreadProxy分别实现了IActivityManager和IApplicationThread接口,其作为各自的代理供client和server使用。
AMS也是作为一个***服务,通过ActivityManager定义了一些接口可以供app使用,ActivityManager中访问AMS的接口都是通过ApplicationThreadProxy实现的。
为了实施对***的活动管理服务(AMS)的监控,本发明需要基于Root权限(除非Root权限已开放)在***的Framework层设置后台服务,使得该后台服务基于Binder机制与***实现通信。
众所周知,Root权限是指Unix类操作***(包括Linux、Android)的***管理员权限,类似于Windows(视窗)***中的Administrator(管理员)权限;Root权限可以访问和修改用户的移动设备中几乎所有的文件(Android***文件及用户文件,不包括ROM)。鉴于此,业内提供了多种多样的提权方案用于获取Android***的Root权限,实现用户权限提升,达到全面控制操作***的目的。这些提权方案,依提权后权限作用的生命周期来看,包括永久Root权限和临时Root权限,顾名思义,永久Root权限情况下,应用程序一经Root授权,以后可不必再进行Root提权;而临时Root权限情况下,权限作用的生命周期只是操作***的一次从开机到关机的过程,下次开机依然需要进行Root。
无论采用何种Root方式,提权的基本原理均是通过向***植入用于接收权限请求的su,再结合SuperUser.apk应用程序实现人机交互,通过su与SuperUser.apk在运行时的相互配合,来实现有效的权限管理。本发明获取Root权限以便于在***的Framework层设置后台服务对应用程序的安装行为进行监控,但采用何种Root方式不作为对本发明的限制。
基于上述原理,以Android***为例,对本发明提供的一种应用程序启动鉴权方法做详细说明,参考图1所示,具体步骤如下:
步骤S11:接收预设的后台服务发送的启动事件通知,所述启动事件通知基于后台服务拦截的应用程序的启动行为而生成。
本实施例所称的后台服务,是指由以本方法所预先实现的一个程序模块,运行于内存中,通过内存中的相应主进程实现如前所述的提权操作后,向***注册的一个通信服务进程。所述后台服务基于Android***所提供的Binder机制,向System Manager注册,通过Android提供的固有的Binder机制,在后台服务与其监听的活动管理服务(AMS)进程之间建立C/S架构的沟通管道。具体而言,当获取到***的Root权限后,为了便于后续实现对***中其它进程的监听以及相关操作功能,本发明首先启动具有已经获得Root权限的由本方法实例化后得以运行而形成的主进程,通过主进程在***中***所述后台服务,例如具体可通过***调用函数ServiceManager.addService()来实现***操作,由此实现对本方法实例化程序所构造的后台服务的成功注册,所述后台服务由此成为***底层级别的服务进程。需要注意的是,所述后台服务进程通过上述的配置,已经成为***级别的服务进程,其权限显然高于其他用户层服务进程或应用进程的权限,因此该后台服务进程可以作为通信基础,为其他调用它的进程提供通信保障,完成***与其他调用它的进程之间的通信连接。因此,所述的后台服务进程,具有与其监听的活动管理服务进程进行通信的能力,两者之间基于Binder机制进行通信,这种通信方式具有快速稳定的特点。所述后台服务进程主要用于实施对***活动管理服务进程的监控,以便拦截活动管理服务进程用于启动某一应用程序的行为,这一行为主要是指通过函数调用激起的指令操作事件行为。
在具体实施例中,获取***的Root权限后,向***注册一个后台服务SecurityService,该后台服务运行于***的Framework层,用于监控待启动应用程序的启动行为,所述启动行为具体为当AMS执行启动操作时,调用任意执行启动操作的函数接口的行为。
具体而言,在App层注册***,用于接收所述后台服务发送的应用程序启动的事件通知。在具体实施例中,App层安全软件定义回调函数接口QihooPkgStartListener.checkPkgStart(),并提供一个自定义的接口函数QihooAppManager.setPkgStartListener(String packageName,QihooPkgStartLis tenerlistener)用于向***中注册***。其中,参数packageName表征待启动应用程序的包名。同时,在***框架层添加一个名为SecurityService的安全服务,当应用启动时,framework层的后台服务提供的接口函数checkPkgStartForUser()会调用App层安全软件的回调函数接口checkPkgStart(String packageName),将应用程序的启动事件通知由框架层发送到应用层,以便在应用层提供可视化界面对该启动事件进行鉴权。需要说明的是,此时应用程序的实际启动动作还未触发。其中,所述checkPkgStartForUser()函数如下:
public boolean checkPkgStartForUser(String packageName,
IBinder caller,Intent intent,
String resolvedType,IBinder resultTo,
String resultWho,int requestCode,
int startFlags,String profileFile,
ParcelFileDescriptor profileFd,
Bundle options,int userId)
运行checkPkgStartForUser()函数检测是否有应用程序启动,其中,所述函数参数包括应用程序包名packageName、启动事件相关信息的描述信息intent等。
在调用该应用程序启动检测函数之前,先通过由后台服务预先注入框架层的钩子函数监控应用程序的启动行为并获取相关参数信息,其中,所述钩子函数可以对startActivity()函数进行挂钩以实现对启动行为的拦截。所述函数接口startActivity()为启动应用程序Activity的一种方式,通过调用该函数接口创建应用程序主界面的一个实例,以调用显示Activity栈中的应用程序主界面。故而,对函数接口startActivity()进行挂钩,以实现对应用程序启动事件的拦截,生成启动事件通知。
当然,以上只是对挂钩函数的一个列举,也可以是应用程序启动过程执行的任意可挂钩的操作,本领域人员应该理解相应的挂钩操作。
其中,术语“钩子”涵盖了用于通过拦截在软件组件之间传递的函数调用、消息、或事件来改变或增加操作***、应用程序、或其他软件组件的行为的技术。而处理这种被拦截的函数调用、事件或消息的代码就被称为钩子函数。钩子通常用于各种目标,包括对功能进行调试和对功能进行扩展。其示例可以包括在键盘或鼠标事件传递到应用程序之前拦截它们,或者拦截***调用(system call)、或者***函数行为、函数执行结果等,以监视或修改应用程序或其他组件的功能等等。本实施例即可采用钩子函数接管所述应用程序启动时执行的任意可挂钩接口函数的操作。
所述运行于***的framework层后台服务SecurityService,一旦发现有应用程序自行启动,立即将该待启动应用程序的程序包名packageName作为参数调用App层安全软件提供的回调函数,将所述启动事件通知发送到***的App层。
步骤S12:响应于该启动事件通知,启动锁定界面以接收用户的密码输入指令,对该应用程序的启动行为进行鉴权。
所述后台服务通过调用回调函数,将应用程序的包名作为参数从Framework层传到App层,以通知应用程序的启动行为。在本步骤中便可以基于接收到的该应用程序包名参数,对相应的应用程序的启动行为进行鉴权。
具体而言,响应于应用程序的启动事件通知,依据应用程序的包名packageName确定要锁定的应用程序,暂停该应用程序的启动行为,并启动锁定界面。所述锁定界面仅当接收到应用程序的启动事件通知时显示,具体为提供密码输入框的用户交互界面,所述密码输入框具体可以为简单的文本编辑框、数字密码键盘、图案密码键盘、指纹识别区等任何用于接收密码输入的界面形式。接收用户的密码输入指令,验证输入的密码,以对应用程序的启动行为进行鉴权。
在其他实施例中,在启动锁定界面进行鉴权之前,还可以通过向云端服务器请求允许启动的应用程序包名列表,以确定获得启动授权的应用程序包名,具体步骤如下:
1、通过远程接口提交获取允许启动的应用程序包名列表的远程请求;
基于设备的身份信息或第三方账户通过远程接口提交远程请求,请求获取允许启动的应用程序包名列表。其中,所述允许启动的应用程序包名列表由云端服务器预先统计生成,客户端接收用户设定的允许应用程序启动的指令,将相应的应用程序的包名封装成数据包,发送给云端服务器,云端服务器将该应用程序包名与该设备的身份信息或第三方的账户关联存储。在其他实施例中,所述允许启动的应用程序包名列表也可以由云端服务器统计应用程序允许启动的用户数量生成,云端服务器将用户数量超过一定阈值的应用程序记录于所述允许启动的应用程序包名列表中。
2、接收云端服务器反馈的允许启动的应用程序包名列表。
接收反馈的包含允许启动的应用程序包名列表的应答数据包,对其进行解析,获取相应的允许启动的应用程序包名。
在启动锁定界面之前,查询当前启动的应用程序包名是否属于所述云端服务器反馈的允许启动的应用程序包名列表,如果属于则判断该应用程序获得启动权限;如果不属于则判断该应用程序未获得启动权限,以便于根据该鉴权结果执行后续步骤。
在其他实施例中,所述允许启动的应用程序包名列表也可以存储于本地,即客户端提供一用于设定允许启动应用程序的可视化界面,接收用户的设定指令,记录用户设定的允许启动的应用程序包名并存储于本机,生成所述允许启动的应用程序包名列表。在启动锁定界面之前,查询当前启动的应用程序包名是否属于所述本地存储的允许启动的应用程序包名列表,如果属于则判断该应用程序获得启动权限;如果不属于则判断该应用程序未获得启动权限,以便于根据该鉴权结果执行后续步骤。
步骤S13:依据鉴权结果通知所述后台服务放行或禁止启动该应用程序。
上述步骤验证用户输入的密码信息以对应用程序的启动行为鉴权,由此得知待启动应用程序是否有启动权限,依据该鉴权结果通知所述后台服务放行或禁止启动该应用程序。具体实施例中,App层的安全软件调用接口函数QihooAppManager.resumeOrAbortPackage(String packageName,bo olean abort),并由该函数调用所述后台服务SecurityService提供的接口函数resumeOrAbortPackage(String packageName,boolean abort),将鉴权结果由App层传到framework层,以通知framework放行或禁止启动相应的应用程序。其中,当鉴权成功时,第二个参数abort设置为false,否则设置为true。
如果鉴权成功,即鉴权结果为允许该应用程序启动,则后台服务SecurityService接收到允许启动应用程序的事件通知,对该应用程序的启动行为放行,恢复被中断的app启动过程,即对拦截的启动接口函数放行,使得活动管理服务继续从原挂钩函数的跳转处执行后续代码,静默执行应用程序的启动过程。
如果鉴权失败,即鉴权结果为禁止该应用程序启动,则后台服务SecurityService接收到禁止启动应用程序的事件通知,结束该应用程序的启动行为。具体可由钩子函数调用Process.killProcess(pid)函数结束应用程序的进程或调用forcestopPackage()函数强制关闭应用程序的进程。同时,App层安全软件提供一用户界面,显示告警信息以提示用户鉴权失败。
在本发明的另一种实施方案中,***接收了启动事件通知之后,在启动锁定界面进行鉴权之前,先查询存储于本地的允许启动的应用程序包名列表。对照待启动应用程序包名与存储于本地的允许启动的应用程序包名列表,当待启动的应用程序存在于本地存储的允许启动的应用程序包名列表中时,无需用户输入密码鉴权,直接通知所述后台服务放行启动该些应用程序,即由后台服务对拦截的启动接口函数放行,使得活动管理服务继续从原挂钩函数的跳转处执行后续代码,静默执行应用程序的启动过程。
在本发明的另一种实施方案中,***接收了启动事件通知之后,在启动锁定界面进行鉴权之前,先通过远程接口向云端服务器提交获取允许启动的应用程序包名列表的远程请求,然后接收云端服务器反馈的允许启动的应用程序包名列表。对照待启动应用程序包名与云端服务器反馈的允许启动的应用程序包名列表,当待启动的应用程序存在于云端服务器反馈的允许启动的应用程序包名列表时,无需用户输入密码鉴权,直接通知所述后台服务放行启动该些应用程序,即由后台服务对拦截的启动接口函数放行,使得活动管理服务继续从原挂钩函数的跳转处执行后续代码,静默执行应用程序的启动过程。
以下基于模块化思维,进一步揭示依照本发明所述的应用程序启动鉴权方法所实现的实施方式。
请参阅图2,本发明所提供的应用程序启动鉴权装置,包含接收单元11、响应单元12、执行单元13。结合上述应用程序启动鉴权方法,以下详细揭示各模块所实现的具体功能:
接收单元11:用于接收预设的后台服务发送的基于后台服务拦截的应用程序的启动行为而生成的启动事件通知。
本实施例所称的后台服务,是指由以本发明所预先实现的一个程序模块,运行于内存中,通过内存中的相应主进程实现如前所述的提权操作后,向***注册的一个通信服务进程。所述后台服务基于Android***所提供的Binder机制,向System Manager注册,通过Android提供的固有的Binder机制,在后台服务与其监听的活动管理服务(AMS)进程之间建立C/S架构的沟通管道。具体而言,当获取到***的Root权限后,为了便于后续实现对***中其它进程的监听以及相关操作功能,本发明首先启动具有已经获得Root权限的由本方法实例化后得以运行而形成的主进程,通过主进程在***中***所述后台服务,例如具体可通过***调用函数ServiceManager.addService()来实现***操作,由此实现对本方法实例化程序所构造的后台服务的成功注册,所述后台服务由此成为***底层级别的服务进程。需要注意的是,所述后台服务进程通过上述的配置,已经成为***级别的服务进程,其权限显然高于其他用户层服务进程或应用进程的权限,因此该后台服务进程可以作为通信基础,为其他调用它的进程提供通信保障,完成***与其他调用它的进程之间的通信连接。因此,所述的后台服务进程,具有与其监听的活动管理服务进程进行通信的能力,两者之间基于Binder机制进行通信,这种通信方式具有快速稳定的特点。所述后台服务进程主要用于实施对***活动管理服务进程的监控,以便拦截活动管理服务进程用于启动某一应用程序的行为,这一行为主要是指通过函数调用激起的指令操作事件行为。
在具体实施例中,获取***的Root权限后,向***注册一个后台服务SecurityService,该后台服务运行于***的Framework层,用于监控待启动应用程序的启动行为,所述启动行为具体为当AMS执行启动操作时,调用任意执行启动操作的函数接口的行为。
具体而言,在App层的接收单元11注册***,用于接收所述后台服务发送的应用程序启动的事件通知。在具体实施例中,本发明所述接收单元11定义回调函数接口QihooPkgStartListener.checkPkgStart(),并提供一个自定义的接口函数QihooAppManager.setPkgStartListener(String packa geName,QihooPkgStartListenerlistener)用于向***中注册***。其中,参数packageName表征待启动应用程序的包名。同时,在***框架层添加一个名为SecurityService的安全服务,当应用启动时,framework层的后台服务提供的接口函数checkPkgStartForUser()会调用App层安全软件的回调函数接口checkPkgStart(String packageName),将应用程序的启动事件通知由框架层发送到应用层,以便在应用层提供可视化界面对该启动事件进行鉴权。需要说明的是,此时应用程序的实际启动动作还未触发。其中,所述checkPkgStartForUser()函数如下:
public boolean checkPkgStartForUser(String packageName,
IBinder caller,Intent intent,
String resolvedType,IBinder resultTo,
String resultWho,int requestCode,
int startFlags,String profileFile,
ParcelFileDescriptor profileFd,
Bundle options,int userId)
运行checkPkgStartForUser()函数检测是否有应用程序启动,其中,所述函数参数包括应用程序包名packageName、启动事件相关信息的描述信息intent等。
在调用该应用程序启动检测函数之前,先通过由后台服务预先注入框架层的钩子函数监控应用程序的启动行为并获取相关参数信息,其中,所述钩子函数可以对startActivity()函数进行挂钩以实现对启动行为的拦截。所述函数接口startActivity()为启动应用程序Activity的一种方式,通过调用该函数接口创建应用程序主界面的一个实例,以调用显示Activity栈中的应用程序主界面。故而,对函数接口startActivity()进行挂钩,以实现对应用程序启动事件的拦截,生成启动事件通知。
当然,以上只是对挂钩函数的一种列举,也可以是应用程序启动过程执行的任意可挂钩的操作,本领域人员应该理解相应的挂钩操作。
其中,术语“钩子”涵盖了用于通过拦截在软件组件之间传递的函数调用、消息、或事件来改变或增加操作***、应用程序、或其他软件组件的行为的技术。而处理这种被拦截的函数调用、事件或消息的代码就被称为钩子函数。钩子通常用于各种目标,包括对功能进行调试和对功能进行扩展。其示例可以包括在键盘或鼠标事件传递到应用程序之前拦截它们,或者拦截***调用(system call)、或者***函数行为、函数执行结果等,以监视或修改应用程序或其他组件的功能等等。本实施例即可采用钩子函数接管所述应用程序启动时执行的任意可挂钩接口函数的操作。
所述运行于***的framework层后台服务SecurityService,一旦发现有应用程序自行启动,立即将该待启动应用程序的程序包名packageName作为参数调用App层安全软件提供的回调函数,将所述启动事件通知发送到***的App层,由所述接收单元11接收所述启动事件通知。
响应单元12:响应于该启动事件通知,用于启动锁定界面以接收用户的密码输入指令,对该应用程序的启动行为进行鉴权。
所述后台服务通过调用回调函数,将应用程序的包名作为参数从Framework层传到App层,以通知应用程序的启动行为。本发明所述响应单元12便可以基于接收到的该应用程序包名参数,对相应的应用程序的启动行为进行鉴权。
具体而言,所述响应单元12响应于应用程序的启动事件通知,依据应用程序的包名packageName确定要锁定的应用程序,暂停该应用程序的启动行为,并启动锁定界面。所述锁定界面仅当接收到应用程序的启动事件通知时显示,具体为提供密码输入框的用户交互界面,所述密码输入框具体可以为简单的文本编辑框、数字密码键盘、图案密码键盘、指纹识别区等任何用于接收密码输入的界面形式。响应单元12接收用户的密码输入指令,验证输入的密码,以对应用程序的启动行为进行鉴权。
在其他实施例中,本发明装置还包括远程交互单元,在启动锁定界面进行鉴权之前,由所述远程交互单元通过向云端服务器请求允许启动的应用程序包名列表,以确定获得启动授权的应用程序包名,具体执行步骤如下:
1、通过远程接口提交获取允许启动的应用程序包名列表的运程请求;
基于设备的身份信息或第三方账户通过远程接口提交远程请求,请求获取允许启动的应用程序包名列表。其中,所述允许启动的应用程序包名列表由云端服务器预先统计生成,客户端接收用户设定的允许应用程序启动的指令,将相应的应用程序的包名封装成数据包,发送给云端服务器,云端服务器将该应用程序包名与该设备的身份信息或第三方的账户关联存储。在其他实施例中,所述允许启动的应用程序包名列表也可以由云端服务器统计应用程序允许启动的用户数量生成,云端服务器将用户数量超过一定阈值的应用程序记录于所述允许启动的应用程序包名列表中。
2、接收云端服务器反馈的允许启动的应用程序包名列表。
接收反馈的包含允许启动的应用程序包名列表的应答数据包,对其进行解析,获取相应的允许启动的应用程序包名。
在启动锁定界面之前,响应单元12查询当前启动的应用程序包名是否属于所述云端服务器反馈的允许启动的应用程序包名列表,如果属于则判断该应用程序获得启动权限;如果不属于则判断该应用程序未获得启动权限,以便于根据该鉴权结果执行后续本发明装置的后续单元。
在其他实施例中,所述允许启动的应用程序包名列表也可以存储于本地,即客户端提供一用于设定允许启动应用程序的可视化界面,接收用户的设定指令,记录用户设定的允许启动的应用程序包名并存储于本机,生成所述允许启动的应用程序包名列表。在启动锁定界面之前,响应单元12查询当前启动的应用程序包名是否属于所述本地存储的允许启动的应用程序包名列表,如果属于则判断该应用程序获得启动权限;如果不属于则判断该应用程序未获得启动权限,以便于根据该鉴权结果执行本发明装置的后续单元。
执行单元13:用于依据鉴权结果通知所述后台服务放行或禁止启动该应用程序。
本发明所述响应单元12验证用户输入的密码信息以对应用程序的启动行为鉴权,由此得知待启动应用程序是否有启动权限,执行单元13依据该鉴权结果通知所述后台服务放行或禁止启动该应用程序。具体实施例中,App层的安全软件调用接口函数QihooAppManager.resumeOrAbortPackage(String packageName,boolean abort),并由该函数调用所述后台服务SecurityService提供的接口函数resumeOrAbortPackage(StringpackageName,boolean abort),将鉴权结果由App层传到framework层,以通知framework放行或禁止启动相应的应用程序。其中,当鉴权成功时,第二个参数abort设置为false,否则设置为true。
如果鉴权成功,即鉴权结果为允许该应用程序启动,则后台服务SecurityService接收到允许启动应用程序的事件通知,对该应用程序的启动行为放行,恢复被中断的app启动过程,即对拦截的启动接口函数放行,使得活动管理服务继续从原挂钩函数的跳转处执行后续代码,静默执行应用程序的启动过程。
如果鉴权失败,即鉴权结果为禁止该应用程序启动,则后台服务SecurityService接收到禁止启动应用程序的事件通知,结束该应用程序的启动行为。具体可由钩子函数调用Process.killProcess(pid)函数结束应用程序的进程或调用forcestopPackage()函数强制关闭应用程序的进程。同时,App层安全软件提供一用户界面,显示告警信息以提示用户鉴权失败。
在本发明的另一种实施方案中,***接收了启动事件通知之后,在启动锁定界面进行鉴权之前,所述响应单元12被配置为先查询存储于本地的允许启动的应用程序包名列表。对照待启动应用程序包名与存储于本地的允许启动的应用程序包名列表,当待启动的应用程序存在于本地存储的允许启动的应用程序包名列表中时,无需用户输入密码鉴权,由执行单元13直接通知所述后台服务放行启动该些应用程序,即由后台服务对拦截的启动接口函数放行,使得活动管理服务继续从原挂钩函数的跳转处执行后续代码,静默执行应用程序的启动过程。
在本发明的另一种实施方案中,***接收了启动事件通知之后,在启动锁定界面进行鉴权之前,先启用远程交互单元,通过远程接口向云端服务器提交获取允许启动的应用程序包名列表的远程请求,然后接收云端服务器反馈的允许启动的应用程序包名列表。由响应单元12对照待启动应用程序包名与云端服务器反馈的允许启动的应用程序包名列表,当待启动的应用程序存在于云端服务器反馈的允许启动的应用程序包名列表时,无需用户输入密码鉴权,由执行单元13直接通知所述后台服务放行启动该些应用程序,即由后台服务对拦截的启动接口函数放行,使得活动管理服务继续从原挂钩函数的跳转处执行后续代码,静默执行应用程序的启动过程。
由于本发明前述说明的三种方法逻辑上可以存在于同一实施例中。为便于更直观地理解本发明,如下结合前述的三种方法介绍本发明的一个具体应用场景。
本发明的一个应用场景中:用户在自己的手机上安装了一款基于本发明的安全保护软件,为保护个人隐私,通过设置密码来添加其手机上的图片处理APP为私密应用。用户点击打开该APP,根据本发明所提供的应用程序鉴权装置即通过钩子函数调用监听接口接收到后台服务发出的该图片处理APP启动请求,随即查询该图片处理APP是否存在于本地存储的允许启动的应用程序包名列表中,如果存在,则不做处理,直接打开该程序。另一方面,在用户手机连接网络的前提下,通过本发明的应用程序鉴权装置中的远程交互单元,查询该图片处理APP是否存在于云端服务器反馈的允许启动的应用程序包名列表,如果存在,则不做处理,直接打开该程序。由于用户的前期设置,该图片处理APP的程序包不在此列表内,基于本发明安全软件立刻锁定当前手机界面,提供一个密码输入界面。当用户输入的验证密码与前期设置的密码一致时,安全软件判定当前用户具备查看该图片处理APP的权限,随即放行,该图片处理APP正常开启;当用户输入的验证密码与前期设置的密码不一致时,安全软件判定当前用户不具备查看该图片处理APP的权限,即终止该图片处理APP的启动,并在锁定界面显示“密码错误,无权查看”的告警信息。
综上所述,本发明深入到***底层实现对应用程序的监控,及时准确地发现应用程序启动,快速提供鉴权界面,能够更有效地保护应用程序不被随意启动运行。
在此处所提供的说明书中,虽然说明了大量的具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实施例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (22)
1.一种应用程序启动鉴权方法,其特征在于,包括以下步骤:
接收预设的后台服务发送的启动事件通知,所述启动事件通知基于后台服务拦截的应用程序的启动行为而生成;
响应于该启动事件通知,启动锁定界面以接收用户的密码输入指令,对该应用程序的启动行为进行鉴权;
依据鉴权结果通知所述后台服务放行或禁止启动该应用程序;
所述后台服务将待启动应用程序的包名作为参数调用回调函数以发送所述启动事件通知;
其中,在启动锁定界面进行鉴权之前,查询存储于本地的允许启动的应用程序包名列表,当待启动的应用程序存在于所述列表中时,直接通知后台服务放行启动所述列表中的应用程序。
2.根据权利要求1所述的方法,其特征在于,所述后台服务运行于***的framework层,将所述启动事件通知发送到***的App层。
3.根据权利要求1所述的方法,其特征在于,启动锁定界面进行鉴权的步骤中,仅当接收到应用程序的启动事件通知时显示所述锁定界面。
4.根据权利要求1所述的方法,其特征在于,所述后台服务采用钩子函数对待启动应用程序的启动函数挂钩以实现对其启动行为的拦截。
5.根据权利要求1所述的方法,其特征在于,由所述后台服务根据其接收的放行或结束启动应用程序的通知,允许或禁止活动管理服务执行对所述应用程序的启动操作。
6.根据权利要求5所述的方法,其特征在于,所述活动管理服务具体指执行应用程序启动操作的ActivityManagerService。
7.根据权利要求1所述的方法,其特征在于,所述锁定界面为接收到应用程序的启动事件通知时显示,并提供密码输入框的用户交互界面。
8.根据权利要求7所述的方法,其特征在于,进行鉴权时,验证用户在锁定界面输入的密码以完成所述对应用程序的鉴权。
9.根据权利要求1所述的方法,其特征在于,当鉴权成功时,直接通知所述后台服务放行启动应用程序;
当鉴权失败时,显示告警信息以提示用户鉴权失败,禁止或暂停启动该应用程序。
10.根据权利要求1所述的方法,其特征在于,启动锁定界面进行鉴权之前,还包括以下步骤:
通过远程接口提交获取允许启动的应用程序包名列表的远程请求;
接收云端服务器反馈的允许启动的应用程序包名列表。
11.根据权利要求10所述的方法,其特征在于,还包括步骤:当待启动的应用程序存在于所述允许启动的应用程序包名列表中时,直接通知所述后台服务放行启动该些应用程序。
12.一种应用程序启动鉴权装置,其特征在于,包括:
接收单元:用于接收预设的后台服务发送的启动事件通知,所述启动事件通知基于后台服务拦截的应用程序的启动行为而生成;
响应单元:响应于该启动事件通知,用于启动锁定界面以接收用户的密码输入指令,对该应用程序的启动行为进行鉴权;
执行单元:用于依据鉴权结果通知所述后台服务放行或禁止启动该应用程序;
所述后台服务将待启动应用程序的包名作为参数调用回调函数以发送所述启动事件通知;
所述响应单元被配置为在启动锁定界面进行鉴权之前,查询存储于本地的允许启动的应用程序包名列表,当待启动的应用程序存在于所述列表中时,直接通知后台服务放行启动所述列表中的应用程序。
13.根据权利要求12所述的装置,其特征在于,所述后台服务运行于***的framework层,将所述启动事件通知发送到***的App层。
14.根据权利要求12所述的装置,其特征在于,所述响应单元中,仅当接收到应用程序的启动事件通知时显示所述锁定界面。
15.根据权利要求12所述的装置,其特征在于,所述后台服务采用钩子函数对待启动应用程序的启动函数挂钩以实现对其启动行为的拦截。
16.根据权利要求12所述的装置,其特征在于,由所述后台服务根据其接收的放行或结束启动应用程序的通知,允许或禁止活动管理服务执行对所述应用程序的启动操作。
17.根据权利要求16所述的装置,其特征在于,所述活动管理服务具体指执行应用程序启动操作的ActivityManagerService。
18.根据权利要求12所述的装置,其特征在于,所述锁定界面为接收到应用程序的启动事件通知时显示,并提供密码输入框的用户交互界面。
19.根据权利要求18所述的装置,其特征在于,所述响应单元鉴权时,验证用户在锁定界面输入的密码以完成所述对应用程序的鉴权。
20.根据权利要求12所述的装置,其特征在于,所述执行单元进一步被配置为:当鉴权成功时,直接通知所述后台服务放行启动应用程序;
当鉴权失败时,显示告警信息以提示用户鉴权失败,禁止或暂停启动该应用程序。
21.根据权利要求12所述的装置,其特征在于,还包括远程交互单元,被配置为执行如下功能:
通过远程接口提交获取允许启动的应用程序包名列表的远程请求;
接收云端服务器反馈的允许启动的应用程序包名列表。
22.根据权利要求21所述的装置,其特征在于,当待启动的应用程序存在于所述允许启动的应用程序包名列表中时,直接通知所述后台服务放行启动该些应用程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510382853.0A CN105095746B (zh) | 2015-07-02 | 2015-07-02 | 应用程序启动鉴权方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510382853.0A CN105095746B (zh) | 2015-07-02 | 2015-07-02 | 应用程序启动鉴权方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105095746A CN105095746A (zh) | 2015-11-25 |
CN105095746B true CN105095746B (zh) | 2018-06-19 |
Family
ID=54576155
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510382853.0A Active CN105095746B (zh) | 2015-07-02 | 2015-07-02 | 应用程序启动鉴权方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105095746B (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843668B (zh) * | 2016-03-11 | 2019-11-15 | 北京奇虎科技有限公司 | 派生进程驻存方法、派生程序生成方法及相应的装置 |
CN106022101B (zh) * | 2016-05-17 | 2019-12-06 | Oppo广东移动通信有限公司 | 一种应用管理方法及终端 |
CN107437013A (zh) | 2016-05-27 | 2017-12-05 | 阿里巴巴集团控股有限公司 | 身份验证方法和装置 |
CN107817995B (zh) * | 2016-09-12 | 2021-03-30 | 华为技术有限公司 | 一种后台静默启动应用的方法、装置及终端设备 |
JP2018051798A (ja) * | 2016-09-26 | 2018-04-05 | 富士ゼロックス株式会社 | 画像形成装置及びプログラム |
CN106778173B (zh) * | 2016-12-15 | 2021-02-23 | 北京数字天域科技有限责任公司 | 一种基于智能操作***的应用锁设置的方法及装置 |
CN106845211A (zh) * | 2016-12-16 | 2017-06-13 | 北京奇虎科技有限公司 | 移动终端及其应用启动方法及装置 |
CN108206741A (zh) * | 2016-12-16 | 2018-06-26 | 北京国双科技有限公司 | 服务的验证方法、装置及*** |
CN106709371A (zh) * | 2016-12-30 | 2017-05-24 | 深圳天珑无线科技有限公司 | 应用锁控制方法及装置 |
EP3611615A4 (en) * | 2017-04-19 | 2020-04-29 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | METHOD AND DEVICE FOR ACCELERATED START-UP OF AN APPLICATION AND TERMINAL |
CN107038358B (zh) * | 2017-04-20 | 2020-12-25 | 北京安云世纪科技有限公司 | 一种自启动处理方法和装置及移动终端 |
CN107256356A (zh) * | 2017-06-20 | 2017-10-17 | 广东欧珀移动通信有限公司 | 支付类应用程序管理方法、装置及移动终端 |
CN107169337A (zh) * | 2017-06-27 | 2017-09-15 | 上海传英信息技术有限公司 | 管理方法、装置及终端 |
CN107169322A (zh) * | 2017-07-12 | 2017-09-15 | 重庆工业职业技术学院 | 一种计算机软件安全加密管理*** |
CN107577955B (zh) * | 2017-08-23 | 2019-10-25 | 北京国信云服科技有限公司 | 一种Android***应用Hook方法及应用锁 |
CN108563934B (zh) * | 2018-03-09 | 2020-07-10 | 青岛海信移动通信技术股份有限公司 | 一种指纹解锁的方法及装置 |
CN109145572A (zh) * | 2018-06-29 | 2019-01-04 | 东软集团股份有限公司 | 用户认证方法、装置和存储介质以及电子设备 |
CN109167882A (zh) * | 2018-09-27 | 2019-01-08 | 努比亚技术有限公司 | 一种应用关联启动控制方法、终端及计算机可读存储介质 |
CN109766689B (zh) * | 2018-12-27 | 2023-12-12 | 百视通网络电视技术发展有限责任公司 | 基于Hook实现电视盒子的应用监控授权***及方法 |
CN112052098A (zh) * | 2020-09-02 | 2020-12-08 | 北京微步在线科技有限公司 | 一种进程的保护方法及装置 |
CN112199208B (zh) * | 2020-09-09 | 2023-07-07 | 福建天泉教育科技有限公司 | 一种在安卓***上提供额外功能接口的方法与终端 |
CN113158165B (zh) * | 2021-05-20 | 2023-05-02 | 读书郎教育科技有限公司 | 一种Android终端快速锁定应用的方法及设备 |
CN113867831B (zh) * | 2021-09-08 | 2024-07-05 | 深圳Tcl新技术有限公司 | 智能设备控制方法、智能设备、存储介质及电子设备 |
CN117056173B (zh) * | 2023-10-12 | 2024-01-30 | 麒麟软件有限公司 | 在Web操作***上监控安卓应用生命周期的方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102480548A (zh) * | 2010-11-23 | 2012-05-30 | 腾讯科技(深圳)有限公司 | 应用程序启动方法及装置 |
CN103577237A (zh) * | 2013-11-15 | 2014-02-12 | 北京奇虎科技有限公司 | 应用程序启动的控制方法及装置 |
CN103617380A (zh) * | 2013-11-28 | 2014-03-05 | 北京邮电大学 | 应用程序权限动态控制方法和*** |
CN104123162A (zh) * | 2014-07-29 | 2014-10-29 | 北京奇虎科技有限公司 | 控制应用程序自启的方法及装置 |
CN104376257A (zh) * | 2014-12-12 | 2015-02-25 | 北京奇虎科技有限公司 | 应用程序自我保护、主动防御方法与装置 |
CN104702770A (zh) * | 2013-12-06 | 2015-06-10 | 中兴通讯股份有限公司 | 终端锁定的方法、装置和*** |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9342381B2 (en) * | 2011-02-03 | 2016-05-17 | Symantec Corporation | Method and system for establishing a DLP-compliant environment |
CN102955904A (zh) * | 2011-08-18 | 2013-03-06 | 网秦无限(北京)科技有限公司 | 防止移动通讯设备泄密的方法和*** |
-
2015
- 2015-07-02 CN CN201510382853.0A patent/CN105095746B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102480548A (zh) * | 2010-11-23 | 2012-05-30 | 腾讯科技(深圳)有限公司 | 应用程序启动方法及装置 |
CN103577237A (zh) * | 2013-11-15 | 2014-02-12 | 北京奇虎科技有限公司 | 应用程序启动的控制方法及装置 |
CN103617380A (zh) * | 2013-11-28 | 2014-03-05 | 北京邮电大学 | 应用程序权限动态控制方法和*** |
CN104702770A (zh) * | 2013-12-06 | 2015-06-10 | 中兴通讯股份有限公司 | 终端锁定的方法、装置和*** |
CN104123162A (zh) * | 2014-07-29 | 2014-10-29 | 北京奇虎科技有限公司 | 控制应用程序自启的方法及装置 |
CN104376257A (zh) * | 2014-12-12 | 2015-02-25 | 北京奇虎科技有限公司 | 应用程序自我保护、主动防御方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105095746A (zh) | 2015-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105095746B (zh) | 应用程序启动鉴权方法及装置 | |
US8782412B2 (en) | Secured privileged access to an embedded client on a mobile device | |
US6850943B2 (en) | Security system and methodology for providing indirect access control | |
CN103336924B (zh) | 用于移动终端应用程序的启动锁 | |
US10356612B2 (en) | Method of authenticating a terminal by a gateway of an internal network protected by an access security entity providing secure access | |
CN104376263B (zh) | 应用程序行为拦截的方法和装置 | |
US9848001B2 (en) | Secure access to mobile applications | |
US20130061323A1 (en) | System and method for protecting against malware utilizing key loggers | |
CN105897668A (zh) | 一种第三方账号授权方法、设备、服务器及其*** | |
CA2665961C (en) | Method and system for delivering a command to a mobile device | |
CN109040030B (zh) | 单点登录方法和*** | |
CN114598541B (zh) | 一种安全评估方法及装置、电子设备和可读存储介质 | |
CN101483658A (zh) | 浏览器输入内容保护的***和方法 | |
US8510819B2 (en) | System and method for managing and securing mobile devices | |
CN112632605A (zh) | 一种防止越权访问的方法、装置、计算机设备及存储介质 | |
CN103152351A (zh) | 网络设备、ad 域单点登录的方法及*** | |
CN113726726A (zh) | 一种基于边缘计算的电力物联网可信度量方法 | |
US20150172310A1 (en) | Method and system to identify key logging activities | |
US10826901B2 (en) | Systems and method for cross-channel device binding | |
CN104573489A (zh) | 禁止应用创建桌面图标的方法及装置 | |
EP3738012B1 (en) | Asserting user, app, and device binding in an unmanaged mobile device | |
KR102465744B1 (ko) | 로그인 세션 전달을 이용한 기기인증 방법 | |
CN109218315A (zh) | 一种安全管理方法和安全管理装置 | |
US10375056B2 (en) | Providing a secure communication channel during active directory disaster recovery | |
Nuakoh et al. | MonitR®: A Mobile Application for Monitoring Online Accounts' Security |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220718 Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015 Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park) Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Patentee before: Qizhi software (Beijing) Co.,Ltd. |
|
TR01 | Transfer of patent right |