应用程序启动鉴权方法及装置的制造方法_2

文档序号:9376127阅读:来源:国知局
另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
[0051]本技术领域技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,执行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS (Personal Communicat1ns Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS (Global Posit1ning System,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
[0052]本技术领域技术人员可以理解,这里所使用的远端网络设备,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云。在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。本发明的实施例中,远端网络设备、终端设备与WNS服务器之间可通过任何通信方式实现通信,包括但不限于,基于3GPP、LTE、WIMAX的移动通信、基于TCP/IP、UDP协议的计算机网络通信以及基于蓝牙、红外传输标准的近距无线传输方式。
[0053]为了更好地阐述本发明所述的方法,以Android操作系统为例,对基于Android系统的活动管理服务操作流程做简单介绍:
[0054]活动管理服务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端,Applicat1n, Service和Activity都是Context的子类,Context理解为环境,也就是它能够告诉系统当前运行的Activity,Service的情况,包括显示、进程等。Context是一个abstract类,定义的方法具体实现在ContextImpl中,Contextffrapper作为Context的装饰类,里面的成员变量mBase指向Contextlmpl。
[0055]IActivityManager接口定义了 app访问AMS的接口,主要是应用请求AMS要完成某些操作,比如启动或结束Activity,启动、或暂停Service。ActivityManagerService实现了 IActivityManager中定义的接口,该类可以说是AMS的核心,AMS的所有具体工作基本上都在该类中或者通过该类控制,ActivityManagerService的实例在进程SystemServer刚启动时初始化。IApplicat1nThread接口定义了 AMS可以访问app的接口,AMS通过这些接口控制app进程以及完成app的响应,Applicat1nThread是IApplicat1nThread接口的具体实现,Applicat1nThread的实例是在app进程启动时创建ActivityThread对象时初始化,ActivityThread的成员变量mAppThread就是Applicat1nThread对象。另外为了实现跨进程调用,ActivityManagerProxy 和 Applicat1nThreadProxy 分别实现了IActivityManager 和 IApplicat1nThread 接口,其作为各自的代理供 client 和 server 使用。
[0056]AMS也是作为一个系统服务,通过Acti vityManager定义了一些接口可以供app使用,ActivityManager 中访问 AMS 的接口都是通过 Applicat1nThreadProxy 实现的。
[0057]为了实施对系统的活动管理服务(AMS)的监控,本发明需要基于Root权限(除非Root权限已开放)在系统的Framework层设置后台服务,使得该后台服务基于Binder机制与系统实现通信。
[0058]众所周知,Root权限是指Unix类操作系统(包括Linux、Android)的系统管理员权限,类似于Windows (视窗)系统中的Administrator (管理员)权限;Root权限可以访问和修改用户的移动设备中几乎所有的文件(Android系统文件及用户文件,不包括ROM)。鉴于此,业内提供了多种多样的提权方案用于获取Android系统的Root权限,实现用户权限提升,达致全面控制操作系统的目的。这些提权方案,依提权后权限作用的生命周期来看,包括永久Root权限和临时Root权限,顾名思义,永久Root权限情况下,应用程序一经Root授权,以后可不必再进行Root提权;而临时Root权限情况下,权限作用的生命周期只是操作系统的一次从开机到关机的过程,下次开机依然需要进行Root。
[0059]无论采用何种Root方式,提权的基本原理均是通过向系统植入用于接收权限请求的su,再结合SuperUser.apk应用程序实现人机交互,通过su与SuperUser.apk在运行时的相互配合,来实现有效的权限管理。本发明获取Root权限以便于在系统的Framework层设置后台服务对应用程序的安装行为进行监控,但采用何种Root方式不作为对本发明的限制。
[0060]基于上述原理,以Android系统为例,对本发明提供的一种应用程序启动鉴权方法做详细说明,参考图1所示,具体步骤如下:
[0061]步骤Sll:接收预设的后台服务发送的启动事件通知,所述启动事件通知基于后台服务拦截的应用程序的启动行为而生成。
[0062]本实施例所称的后台服务,是指由以本方法所预先实现的一个程序模块,运行于内存中,通过内存中的相应主进程实现如前所述的提权操作后,向系统注册的一个通信服务进程。所述后台服务基于Android系统所提供的Binder机制,向System Manager注册,通过Android提供的固有的Binder机制,在后台服务与其监听的活动管理服务(AMS)进程之间建立C/S架构的沟通管道。具体而言,当获取到系统的Root权限后,为了便于后续实现对系统中其它进程的监听以及相关操作功能,本发明首先启动具有已经获得Root权限的由本方法实例化后得以运行而形成的主进程,通过主进程在系统中插入所述后台服务,例如具体可通过系统调用函数ServiceManager.addService ()来实现插入操作,由此实现对本方法实例化程序所构造的后台服务的成功注册,所述后台服务由此成为系统底层级别的服务进程。需要注意的是,所述后台服务进程通过上述的配置,已经成为系统级别的服务进程,其权限显然高于其他用户层服务进程或应用进程的权限,因此该后台服务进程可以作为通信基础,为其他调用它的进程提供通信保障,完成系统与其他调用它的进程之间的通信连接。因此,所述的后台服务进程,具有与其监听的活动管理服务进程进行通信的能力,两者之间基于Binder机制进行通信,这种通信方式具有快速稳定的特点。所述后台服务进程主要用于实施对系统活动管理服务进程的监控,以便拦截活动管理服务进程用于启动某一应用程序的行为,这一行为主要是指通过函数调用激起的指令操作事件行为。
[0063]在具体实施例中,获取系统的Root权限后,向系统注册一个后台
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1