CN111523136B - 应用程序的权限管理方法、装置、设备及存储介质 - Google Patents

应用程序的权限管理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN111523136B
CN111523136B CN202010641598.8A CN202010641598A CN111523136B CN 111523136 B CN111523136 B CN 111523136B CN 202010641598 A CN202010641598 A CN 202010641598A CN 111523136 B CN111523136 B CN 111523136B
Authority
CN
China
Prior art keywords
program
interface
application
management
application program
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
Application number
CN202010641598.8A
Other languages
English (en)
Other versions
CN111523136A (zh
Inventor
林龙润
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010641598.8A priority Critical patent/CN111523136B/zh
Publication of CN111523136A publication Critical patent/CN111523136A/zh
Application granted granted Critical
Publication of CN111523136B publication Critical patent/CN111523136B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Automation & Control Theory (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种应用程序的权限管理方法、装置、设备及存储介质,涉及应用安全领域。该方法应用于管理程序中,管理程序用于对第一应用程序的接口调用权限进行管理,该方法包括:接收第一应用程序发送的接口调用请求;通过钩子函数Hook技术截获接口调用请求,接口调用请求用于请求调用服务接口,服务接口是第一应用程序调用第二应用程序的接口;根据管控策略确定第一应用程序是否具有服务接口的接口调用权限,管控策略是管理程序对接口调用权限配置的策略;响应于第一应用程序具有的接口调用权限,向第一应用程序返回调用结果。使得管理程序对应用程序的管控方式更加灵活,同时降低了管理程序对应用程序的管控成本,保障用户的隐私安全。

Description

应用程序的权限管理方法、装置、设备及存储介质
技术领域
本申请涉及应用安全领域,特别涉及应用程序的权限管理方法、装置、设备及存储介质。
背景技术
用户在使用应用程序的情况下,用户的操作会对应用程序产生隐私数据的调用以及功能模块的调用(如调用摄像头功能等),用户使用的应用程序是安装在终端上的应用程序。终端利用相关的管控技术对应用程序可能出现的敏感行为进行管控。
以重打包技术为例,终端对需要管控的应用程序可能出现的敏感行为构建单独的功能模块,然后将该功能模块通过重打包技术二次附加到该应用程序上。比如,应用程序A要调用终端的摄像头,终端针对应用程序A调用摄像头这一行为构建功能模块a,该功能模块a负责管控应用程序调用终端摄像头的行为,将功能模块a通过重打包技术附加在应用程序A上。
上述技术方案中,终端需要将构建的功能模块通过重打包技术附加在应用程序上,终端对应用程序的管控方式不够灵活。
发明内容
本申请实施例提供了一种应用程序的权限管理方法、装置、设备及存储介质,通过构建自定义服务程序和自定义客户端程序,使得应用程序的管控方式更加灵活。所述技术方案如下述技术方案所示。
根据本申请的一方面,提供了一种应用程序的权限管理方法,所述方法应用于管理程序,所述管理程序用于对第一应用程序的接口调用权限进行管理,所述方法包括如下步骤:
接收所述第一应用程序发送的接口调用请求;
通过钩子函数Hook技术截获所述接口调用请求,将所述接口调用请求发送至所述管理程序中的自定义客户端程序,所述接口调用请求用于请求调用服务接口,所述服务接口是所述第一应用程序调用第二应用程序的接口;
通过所述自定义客户端程序将所述接口调用请求发送至所述管理程序中的自定义服务程序;
通过所述自定义服务程序获取管控策略,所述管控策略是所述管理程序对所述接口调用权限配置的策略;
通过所述自定义服务程序根据所述管控策略确定所述第一应用程序是否具有所述服务接口的接口调用权限;
响应于所述第一应用程序具有的接口调用权限,向所述第一应用程序返回调用结果。
根据本申请的另一方面,提供了一种应用程序的权限管理装置,所述装置包括如下部分:
接收模块,用于接收第一应用程序发送的接口调用请求;
发送模块,用于通过钩子函数Hook技术截获所述接口调用请求,将所述接口调用请求发送至管理程序中的自定义客户端程序,所述接口调用请求用于请求调用服务接口,所述服务接口是所述第一应用程序调用第二应用程序的接口,所述管理程序用于对所述第一应用程序的接口调用权限进行管理;通过所述自定义客户端程序将所述接口调用请求发送至所述管理程序中的自定义服务程序;
获取模块,用于通过所述自定义服务程序获取管控策略,所述管控策略是管理程序对所述接口调用权限配置的策略;
处理模块,用于通过所述自定义服务程序根据所述管控策略确定所述第一应用程序是否具有所述服务接口的接口调用权限;
所述发送模块,用于响应于所述第一应用程序具有的接口调用权限,向所述第一应用程序返回调用结果。
根据本申请的另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述方面所述的应用程序的权限管理方法。
根据本申请的另一方面,提供了一种计算机可读存储介质,所述可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述方面所述的应用程序的权限管理方法。
根据本申请的另一方面,提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,所述处理器执行所述计算机指令,使得所述计算机设备执行如上述方面所述的应用程序的权限管理方法。
本申请实施例提供的技术方案带来的有益效果至少包括如下效果。
通过管理程序对接口调用权限配置的管控策略,利用Hook技术截获接口调用请求,使得对应用程序的接口调用权限的管理方式达到系统级别的管理,且管控过程对于应用程序来说是透明无感知的(即无需对应用程序进行改进),使得管理程序对应用程序的管控方式更加灵活,同时降低了管理程序对应用程序的管控成本。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例提供的应用程序的权限管理方法的流程图;
图2是本申请一个示例性实施例提供的计算机系统的框架图;
图3是本申请另一个示例性实施例提供的应用程序的权限管理方法的流程图;
图4是本申请一个示例性实施例提供的应用程序调用服务接口的系统框架的结构示意图;
图5是本申请另一个示例性实施例提供的应用程序调用服务接口的系统框架的结构示意图;
图6是本申请另一个示例性实施例提供的应用程序的权限管理方法的流程图;
图7是本申请一个示例性实施例提供的结合界面的应用程序的权限管理方法的流程图;
图8是本申请一个示例性示例提供的管理程序的界面示意图;
图9是本申请一个示例性示例提供的经过拦截后的第一应用程序的界面示意图;
图10是本申请另一个示例性示例提供的经过拦截后的第一应用程序的界面示意图;
图11是本申请另一个示例性示例提供的经过拦截后的第一应用程序的界面示意图;
图12是本申请一个示例性示例提供的设置管控策略的界面示意图;
图13是本申请一个示例性实施例提供的应用程序的权限管理装置的结构框图;
图14是本申请一个示例性实施例提供的计算机设备的装置结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,对本申请实施例涉及的名词进行介绍。
云安全(Cloud Security) 是指基于云计算商业模式应用的安全软件、硬件、用户、机构、安全云平台的总称。云安全融合了并行处理、网格计算、未知病毒行为判断等新兴技术和概念,通过网状的大量客户端对网络中软件行为的异常监测,获取互联网中木马、恶意程序的最新信息,并发送到服务端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端。
云安全主要研究方向包括:1. 云计算安全,主要研究如何保障云自身及云上各种应用的安全,包括云计算机系统安全、用户数据的安全存储与隔离、用户接入认证、信息传输安全、网络攻击防护、合规审计等;2. 安全基础设施的云化,主要研究如何采用云计算新建与整合安全基础设施资源,优化安全防护机制,包括通过云计算技术构建超大规模安全事件、信息采集与处理平台,实现对海量信息的采集与关联分析,提升全网安全事件把控能力及风险控制能力;3. 云安全服务,主要研究各种基于云计算平台为用户提供的安全服务,如防病毒服务等。
示意性的,本申请实施例中根据管控策略对应用程序的接口调用权限进行管理,该管控策略可存储于云服务器中,管理人员根据不同的应用程序以及不同的终端类型设计不同的管控策略,通过云服务器共享不同的管控策略,使得管理程序在管理应用程序时具有针对性。
钩子函数(Hook):是指一种用于捕获消息的函数。在系统调用函数之前,利用Hook技术先捕获函数调用消息,从而提前获得该函数的控制权,利用Hook技术能够加工处理(改变)该函数的执行行为和消息传递(如中断消息的传递)。也即,通过Hook技术可将原有的程序改变为期望的程序。本申请实施例以Hook技术对安卓(Android)系统的框架接口(Application Programming Interface,API)进行改变为例来说明。
应用敏感行为:是指在应用程序运行的过程中,涉及对隐私数据、安全信息的操作,涉及应用程序对系统应用程序或多媒体功能模块的操作所对应的行为。示意性的,应用程序为即时通讯程序,在即时通讯程序中记录有用户的聊天记录,用户触发查询聊天记录的操作时属于应用敏感行为;或者,应用程序为即时通讯程序,当用户通过即时通讯程序向他人发送照片时,即时通讯程序请求调用终端的摄像头或调用系统相册,该调用过程属于应用敏感行为。
图1示出了本申请实施例提供了一种基于Hook技术的应用权限管理方法,该方法应用于如图2所示的终端210中。该方法包括如下步骤。
步骤101,应用程序请求调用服务接口。
应用程序调用某种服务接口时,操作系统确定该应用程序是否具有调用该服务接口的权限,或者,操作系统确定该应用程序是否涉及用户的隐私数据。比如,第一用户使用即时通讯程序向第二用户发送图片,即时通讯程序向操作系统请求调用终端的摄像模块,或者,即时通讯程序向操作系统请求调用系统相册,该系统相册存储有用户保存的图片。
基于操作系统原有的系统框架客户端程序和系统框架服务程序,该操作系统还包括预先构建的自定义客户端程序和自定义服务程序,该自定义客户端程序和自定义服务程序分别根据系统中原有的系统框架客户端程序和系统框架服务程序构建的,在自定义客户端程序中包括虚拟应用包管理模块(Virtual Package Manager,VPM)、虚拟行为管理模块(Virtual Activity Manger,VAM)和虚拟窗口管理模块(Virtual Window Manger,VWM)。在自定义服务程序中包括虚拟应用包管理服务模块(Virtual Package Manager Services,VPMS)、虚拟行为管理服务模块(Virtual Activity Manger Services,VAMS)和虚拟窗口管理服务模块(Virtual Window Manger Services,VWMS)。
步骤102,应用程序向系统框架服务程序发送接口调用请求。
应用程序通过向系统框架服务程序发送接口调用请求来请求调用某个服务接口。示意性的,应用程序调用终端的摄像模块,应用程序向系统框架服务程序发送关于调用摄像模块的接口调用请求。
步骤103,通过Hook技术获取应用程序发送的接口调用请求。
示意性的,应用程序向系统框架服务程序发送接口调用请求,该接口调用请求用于调用摄像模块。通过Hook技术将该接口调用请求进行拦截,将拦截的接口调用请求发送至自定义客户端程序。
步骤104,自定义客户端程序接收接口调用请求。
自定义客户端程序将接口调用请求发送至信息管理模块(Binder Driver),由信息管理模块向自定义服务程序发送该接口调用请求。信息管理模块用于在自定义客户端程序和自定义服务程序之间进行信息传输。
步骤105,自定义服务程序获取管控策略。
自定义服务程序在接收到接口调用请求时查询管控策略,该管控策略用于对应用程序的接口调用权限进行管理。
示意性的,服务器中存储有与应用程序的调用权限对应的管控策略,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。管控策略包括防止数据泄露类的策略(如是否允许调用系统文件夹)、防止钓鱼类的策略(如是否允许拨打电话)、个人信息保护类的策略(如是否允许读取通话记录)和应用程序运行类的策略(如是否允许应用程序保持后台运行)。
示意性的,云服务器将管控策略发送至自定义服务程序处,则自定义服务程序根据管控策略确定应用程序是否具有接口调用权限。在一些实施例中,管控策略可通过自定义客户端程序或自定义服务程序中任意一种程序获取。
步骤106,自定义服务程序根据管控策略确定应用程序具有的接口调用权限。
若自定义服务程序根据管控策略判断应用程序具有接口调用权限,进入步骤107;若自定义服务程序根据管控策略判断应用程序不具有接口调用权限,进入步骤109。
步骤107,自定义服务程序向系统框架服务程序发送接口调用请求。
若自定义服务程序根据管控策略判断应用程序具有接口调用权限,则自定义服务程序向系统框架服务程序发送接口调用请求,该接口调用请求用于请求应用程序调用的目标服务接口。比如,即时通讯程序调用摄像模块,则自定义服务程序向系统框架服务发送关于调用摄像模块的接口调用请求。
步骤108,系统框架服务程序根据接口调用权限将调用结果返回至自定义客户端程序。
系统框架服务程序根据接口调用请求向自定义客户端程序发送接口调用响应。
步骤109,自定义客户端程序将调用结果返回至应用程序。
自定义客户端程序将接口调用响应返回至应用程序,应用程序根据接口调用响应成功调用目标服务接口,如即时通讯程序根据接口调用响应调用摄像模块;或者,管控策略限制应用程序调用目标服务接口(即应用程序不具有接口调用权限),自定义服务程序返回伪接口调用响应,如,自定义服务程序根据管控策略不允许即时通讯程序调用摄像模块,则自定义服务程序向即时通讯程序发送伪接口调用响应,应用程序无法调用目标服务接口,在一些实施例中,在终端上显示应用程序调用服务接口失败的提示信息。
步骤110,结束。
本申请实施例提供的方法,基于Hook技术获取接口调用请求,在应用程序请求调用服务接口时,通过自定义服务程序根据管控策略确定应用程序是否具有接口调用权限,使得系统框架服务程序对应用程序的管控转换为自定义服务程序和自定义客户端程序对应用程序的管控,无需对终端原有的操作系统进行修改,管控方式更加灵活。
本申请实施例提供的应用程序的权限管理方法可以应用于如下场景。
一、通讯类应用程序的权限管理。
在该应用场景下,采用本申请实施例提供的方法管理通讯类应用的接口调用权限,根据通讯类应用程序的系统框架客户端程序构建自定义客户端程序,根据通讯应用程序调用的服务接口所属的系统框架服务程序构建自定义服务程序,当通讯类应用程序调用某个服务接口时,通过Hook技术对通讯类应用程序发送的接口调用请求进行拦截,通过自定义服务程序确定该通讯类应用程序是否具有接口调用权限,从而通过自定义服务程序和自定义客户端程序向该通讯类应用程序返回调用结果。比如,第一用户使用即时通讯程序与第二用户进行视频通话,即时通讯程序需要调用终端的摄像头,利用上述方法确定即时通讯程序是否具有调用摄像模块的权限,若即时通讯程序具有调用摄像模块的权限,则第一用户使用即时通讯程序与第二用户正常进行视频通话。
二、游戏应用程序的权限管理。
在该应用场景下,采用本申请实施例提供的方法管理游戏应用程序的接口调用权限,同样基于游戏应用程序的系统框架客户端程序和系统框架服务程序分别构建自定义客户端程序和自定义服务程序。通过Hook技术对游戏应用程序发送的接口调用请求进行拦截,通过自定义服务程序确定游戏应用程序具有的接口调用权限,通过自定义服务程序和自定义客户端程序向该游戏应用程序返回调用结果。比如,游戏应用程序获取用户使用的终端所在的地理位置,利用上述方法确定游戏应用程序是否具有调用定位模块的权限,若即时通讯程序没有调用定位模块的权限,则游戏应用程序无法获取终端所在的地理位置。
上述仅以两种应用场景为例进行说明,本申请实施例提供的方法还可以应用于其他需要对应用程序具有的接口调用权限进行管理的场景,比如应用程序调用网络连接模块,应用程序调用用户帐号的联系人等,本申请实施例并不对具体应用场景进行限定。
本申请实施例提供的应用程序的权限管理方法可应用于管理程序中,该管理程序具有对应用程序的接口调用权限的管理能力。在一些实施例中,管理程序运行在终端中,或管理程序运行在服务器中,本申请实施例以管理程序运行在终端中为例进行说明。
请参考图2,其示出了本申请一个示例性实施例提供的计算机系统的示意图。该计算机系统200中包括终端210和服务器220,其中,终端210与服务器220之间通过通信网络进行数据通信。可选地,通信网络可以是有线网络或者无线网络,且该通信网络可以是局域网、城域网以及广域网中的至少一种。
终端210中安装有多个应用程序:应用程序1、应用程序2……应用程序n,应用程序可以是即时通讯程序、购物应用程序、游戏应用程序、视频播放程序、音频播放程序、地图应用程序等,本申请实施例对应用程序的类型不加以限定。终端210中还包括操作系统211和管理程序212,其中管理程序中包括预先构建的系统接口代理213(包括自定义客户端程序和自定义服务程序)。系统接口代理213通过Hook技术实现对应用程序发送的接口调用请求进行拦截。可选地,终端210可以是智能手机、智能手表、平板电脑、膝上便携式笔记本电脑等移动终端,也可以是台式电脑、投影式电脑等终端,本申请实施对终端的类型不加以限定。下述各个实施例以终端210包括智能手机为例进行说明。
服务器220可以实现为独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
如图2所示,服务器220向终端210发送管控策略,该管控策略用于管理终端210中的多个应用程序是否具有调用服务接口的权限。示意性的,管控策略包括防止数据泄露类的策略(如,是否允许调用系统文件夹)、防止钓鱼类的策略(如,是否允许拨打电话)、个人信息保护类的策略(如是否允许读取通话记录)和应用运行类的策略(如,是否允许应用程序保持后台运行)。终端210根据管控策略确定应用程序是否具有调用某个服务接口的接口调用权限,比如,应用程序1不具有调用摄像模块的接口调用权限,应用程序2不具有调用麦克风模块的接口调用权限。
示意性的,应用程序2向操作系统211发送用于调用麦克风模块的接口调用请求,由于终端210中预先构建系统接口代理213(包括自定义服务程序和自定义客户端程序),通过钩子函数(Hook)将应用程序2发送的接口调用请求进行拦截,由系统接口代理213接收该接口调用请求,根据该接口调用请求确定应用程序2调用麦克风模块,系统接口代理213根据管控策略确定应用程序2是否具有调用麦克风模块的接口调用权限。
示意性的,应用程序2不具有调用麦克风模块的权限,则系统接口代理213向应用程序2发送权限禁止的服务响应(伪接口调用响应),相应地,在终端210上显示有提示信息“请授予麦克风权限”,提示用户应用程序2不具有调用麦克风模块的接口调用权限。
示意性的,应用程序2具有调用麦克风模块的接口调用权限,则系统接口代理213向操作系统211发送接口调用请求,该接口调用请求用于请求调用麦克风模块,操作系统211根据该接口调用请求作出服务响应,将该服务响应发送至系统接口代理213,系统接口代理213将该服务响应发送至应用程序2,则应用程序2成功调用麦克风模块。
图3示出了本申请一个示例性实施例提供的应用程序的权限管理方法的流程图。本实施例以该方法用于如图2所示计算机系统200中的终端210为例进行说明,该方法包括如下步骤。
步骤301,接收第一应用程序发送的接口调用请求。
示意性的,在终端210上安装和运行有管理程序,管理程序用于对第一应用程序的接口调用权限进行管理。第一应用程序是安装在终端上的任意类型的应用程序,比如即时通讯程序、游戏应用程序、社交应用程序等,本申请对应用程序的类型不加以限定。
示意性的,在终端210上显示有已安装的第一应用程序的程序标识,响应于第一应用程序的程序标识接收到启动指令,终端210运行第一应用程序。以终端210包括智能手机为例,用户通过点击第一应用程序的程序标识启动第一应用程序,或者,用户在管理程序的界面中点击第一应用程序的程序标识以启动第一应用程序。本申请实施例对第一应用程序的启动方式不加以限定。
在第一应用程序运行的过程中需要调用服务接口时,第一应用程序向系统框架服务程序发送接口调用请求。服务接口包括第一应用程序调用第二应用程序的接口,第二应用程序包括:从应用商店或应用市场等第三方平台下载的应用程序和操作系统中预先安装的系统程序(比如短信应用、电话应用等)。在一些实施例中,服务接口还包括第一应用程序调用操作系统中的功能模块对应的接口,比如第一应用程序调用定时模块的服务接口,第一应用程序调用定位模块的服务接口等。
结合图4对第一应用程序调用服务接口进行说明。以图4所示的操作系统是安卓系统为例进行说明,在安卓系统中包括客户端进程40(Client App Process)和系统框架服务程序50(Framework Services),客户端进程40和系统框架服务程序50之间通过信息管理模块46(Binder Driver)进行信息传输。
客户端进程40包括客户端(应用程序,Client App)41,客户端41通过通讯信息承载体(IBinder)与系统框架客户端程序(Frame Client)42进行信息传递,系统框架客户端程序42包括应用包管理模块(Package Manager,PM)43、行为管理模块44(ActivityManger,AM)和窗口管理模块(Window Manger,WM)45。系统框架服务程序50包括行为管理服务模块(Activity Manger Services,AMS)51、应用包管理服务模块(Package ManagerServices,PMS)52和窗口管理服务模块(Window Manger Services,WMS)53。应用包管理模块43用于管理应用程序安装、卸载和升级的接口(API);行为管理模块44用于获取运行中的行为信息,如进程(Process)信息、应用程序信息、服务(Services)信息、任务(Task)信息;窗口管理模块45用于创建系统中的窗口(Window)。
当客户端41需要调用某个服务接口时,通过系统框架客户端程序42向系统框架服务程序50发送接口调用请求,该接口调用请求传递至信息管理模块46,由信息管理模块46根据接口调用请求确定客户端41要调用的服务接口。信息管理模块46向系统框架服务程序50发送该接口调用请求,系统框架服务程序50根据接口调用请求作出服务响应,由信息管理模块46传递回系统框架客户端程序42,再由系统框架客户端程序42传递至客户端41,从而实现客户端41对服务接口的调用。
步骤302,通过钩子函数Hook技术截获接口调用请求,接口调用请求用于请求调用服务接口,服务接口是第一应用程序调用第二应用程序的接口。
在系统调用函数之前,利用Hook技术先捕获函数调用消息,从而提前获得该函数的控制权,利用Hook技术能够加工处理(改变)该函数的执行行为和消息传递(如中断消息的传递)。也即,通过Hook技术可将原有的程序改变为期望的程序。
第一应用程序向系统框架客户端程序发送接口调用请求,该接口调用请求被钩子函数截获。在管理程序的系统中预先构建有自定义客户端程序和自定义服务程序。
请参考图5,其示出了本申请一个示例性实施例提供的系统框架图。当钩子函数截获该接口调用请求后,将接口调用请求发送至自定义客户端程序(自定义FrameworkClient)502,由自定义客户端程序502向自定义服务程序(自定义Services)506发送接口调用请求,自定义客户端程序502和自定义服务程序506之间的通信方式是进程间通信(IPC,Inter-Process Communication),由通讯信息承载体(Binder)实现。
步骤303,根据管控策略确定第一应用程序是否具有服务接口的接口调用权限,管控策略是管理程序对接口调用权限配置的策略。
管控策略是指管理程序对应用程序的接口调用权限进行管理时所设置的策略或规定,管控策略包括数据防泄漏类的策略、防钓鱼保护类的策略、个人信息保护类的策略和应用运行类的策略。
以表一为例对管控策略的类型和策略名称进行说明:
示意性的,管控策略是由服务器下发的,该服务器可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。在一些实施例中,管控策略还可以是管理程序预先配置的。
示意性的,以终端为智能手机,第一应用程序为地图应用,服务接口为定位模块对应的服务接口为例进行说明。在智能手机上安装和运行有管理程序,该管理程序管理地图应用,该管理程序配置有策略分类为个人信息保护设置的管控策略,当用户通过地图应用对当前所在的位置进行定位时,地图应用请求调用终端的定位模块(或定位系统)的服务接口,管控策略为:允许地图应用获取地理位置,则地图应用调用定位模块的服务接口,将定位结果反馈给用户。
步骤304,响应于第一应用程序具有的接口调用权限,向第一应用程序返回调用结果。
示意性的,第一应用程序为社交应用,用户在社交应用上发布带有图片的信息,社交应用请求调用系统相册(第二应用程序)对应的服务接口,若第一应用程序具有调用系统相册的接口调用权限,则用户能够在社交应用中打开系统相册,选择需要发布的图片,进而发布带有图片的信息;若第一应用程序不具有调用系统相册对应的接口调用权限,则通过如图5所示的自定义服务程序506向自定义客户端程序502发送伪接口调用响应,则在第一应用程序的界面上显示调用结果,比如,显示提示信息为“无法打开系统相册,请授予权限”。
综上所述,本实施例提供的方法,通过构建自定义客户端程序和自定义服务程序,利用Hook技术截获接口调用请求,使得系统框架客户端程序(第一应用程序)与系统框架服务程序之间的信息传递转换为在自定义客户端程序和自定义服务程序之间进行信息传递,使得对应用程序的接口调用权限的管理达到系统级别的管理,且管控过程对于应用程序来说是透明无感知的(并不需要对应用程序进行改进),使得管理程序对应用程序的管控方式更加灵活,同时降低了管理程序对应用程序的管控成本。
图6示出了本申请另一个示例性实施例提供的应用程序的权限管理方法的流程图。本实施例以该方法用于如图2所示计算机系统200中的终端210为例进行说明,该方法包括如下步骤。
步骤601,接收第一应用程序发送的接口调用请求。
示意性的,以终端包括智能手机,第一应用程序是即时通讯程序为例进行说明。在智能手机中安装和运行有管理程序,管理程序用于对第一应用程序的接口调用权限进行管理,管理程序基于管控策略对应用程序的接口调用权限进行管理。示意性的,该管控策略是由云服务器下发至管理程序的。
客户端调用服务接口的过程需要两个进程进行进程间通信,进程是系统中正在运行的一个程序,操作系统为每个进程分配独立的地址空间,一个进程是无法访问另一个进程的变量和数据结构,如果想让一个进程访问另一个进程的资源,需要进程间通信,如管道(Pipe)、消息队列(Message Queue,MQ)、套接字(Socket)等。客户端在调用服务接口时,需要系统框架客户端程序504和系统框架服务程序508进行进程间通信,本申请实施例以进程间通信方式通过通讯信息承载体(Binder)实现来说明。
如图5所示,管理程序包括预先构建的自定义服务程序(自定义Services)506和自定义客户端程序(自定义Framework Client)502,其中,自定义服务程序506是根据终端的操作系统中的系统框架服务程序(系统Framework Services)508构建的,自定义客户端程序502是根据操作系统中的系统框架客户端程序(系统Framework Client)504中的动态逻辑构建的,系统框架客户端镜像程序(系统Framework Client Mirror)503是对系统框架客户端程序(系统Framework Client)504进行复制后得到的(“复制”是指通过反射的方式对系统框架客户端程序504进行操作后得到系统框架客户端镜像程序503)。
自定义客户端程序502的作用是:对客户端501发起的接口调用请求进行拦截,并进一步通过Hook技术将接口调用请求重新定向到系统框架客户端镜像程序503。在未构建上述自定义客户端程序502时,客户端501在调用服务接口时需要向系统框架客户端程序504发出接口调用请求,由于构建了自定义客户端程序502,通过自定义客户端502将接口调用请求拦截,进而将该接口调用请求定向发送至系统框架客户端镜像程序503。可以理解的是,自定义客户端程序502和系统框架客户端镜像程序503构成了一个“虚拟的”系统框架客户端程序504。使得原本由系统框架客户端程序504向系统框架服务程序508发起的服务接口调用请求能够转换为由自定义客户端程序502向自定义服务程序506发起。
步骤602,通过Hook技术截获接口调用请求,将接口调用请求发送至管理程序中的自定义客户端程序。
如图5所示,客户端进程500与服务进程之间进行进程间通信,通信过程为如下过程。
客户端501向系统框架服务程序508发送接口调用请求,由于管理程序预先构建与系统框架客户端程序504对应的自定义客户端程序502和系统框架客户端镜像程序503,通过Hook技术对接口调用请求进行拦截,该接口调用请求由自定义客户端程序502截获,自定义客户端程序502将该接口调用请求发送至服务请求接口(Iservice Fetcher)505以获取要调用的服务接口。
步骤603,通过自定义客户端程序将接口调用请求发送至管理程序中的自定义服务程序。
服务请求接口505将接口调用请求发送至信息管理模块(Binder Driver)507,由信息管理模块507根据要调用的服务接口进行处理(得到自定义服务程序506能够识别的信息),再将处理后的信息发送至自定义服务程序506。
步骤604,通过自定义服务程序获取管控策略。
在一些实施例中,自定义服务程序506获取管控策略。示意性的,该管控策略是由云服务器下发至管理程序中的,或者该管控策略是管理程序预先配置的。管控策略的具体内容可参考表一的描述,此处不再赘述。
在另一些实施例中,可通过自定义客户端程序502获取管控策略。示意性的,如图1所示的实施例中通过自定义客户端获取管控策略或者通过自定义服务程序获取管控策略。
步骤605,通过自定义服务程序根据管控策略确定第一应用程序是否具有服务接口的接口调用权限。
自定义服务程序506根据管控策略确定第一应用程序是否具有调用某个服务接口的接口调用权限。比如,管控策略规定社交类应用不能调用定位模块对应的服务接口,则自定义服务程序506根据该管控策略确定社交类应用不具有调用定位模块对应的服务接口的权限。又比如,管控策略规定游戏应用程序不能调用摄像模块对应的服务接口,则自定义服务程序506根据该管控策略确定游戏应用程序不具有调用摄像模块对应的服务接口的权限。
步骤606,响应于第一应用程序具有的接口调用权限,向第一应用程序返回调用结果。
管理程序根据第一应用程序具有的接口调用权限,向第一应用程序返回调用结果。
基于上述过程,管理程序向第一应用程序返回的调用结果包括两类:第一,第一应用程序允许调用第二应用程序;第二,第一应用程序禁止调用第二应用程序。
第一,第一应用程序允许调用第二应用程序,包括如下步骤。
步骤607a,响应于第一应用程序具有服务接口的接口调用权限,通过自定义服务程序向系统框架服务程序发送接口调用请求。
如图5所示,自定义服务程序506根据管控策略确定第一应用程序具有服务接口的接口调用权限时,自定义服务程序506向系统框架服务程序508发送该接口调用请求,自定义服务程序506和系统框架服务程序508之间以进程间通信的方式进行信息传输。
步骤608a,通过系统框架服务程序根据接口调用请求向自定义服务程序发送接口调用响应。
示意性的,第一应用程序请求调用蓝牙模块对应的服务接口,且该第一应用程序具有蓝牙模块对应的接口调用权限。通过系统框架服务程序508根据蓝牙模块的接口调用请求向自定义服务程序506发送接口调用响应。
步骤609a,通过自定义服务程序向自定义客户端程序发送接口调用响应。
响应于自定义服务程序506接收到该接口调用响应,通过服务返回接口向信息管理模块507发送接口调用响应,由信息管理模块507对该接口调用响应进行处理(得到自定义客户端程序502能够识别的信息),将处理后的信息发送服务请求接口505,服务请求接口505根据该接口调用响应向自定义客户端程序502发送获取到的服务,即自定义客户端程序502获取到要调用的服务接口。
步骤610a,通过自定义客户端程序向第一应用程序发送接口调用响应。
通过自定义客户端程序502向第一应用程序(客户端501)发送接口调用响应。在一些实施例中,自定义客户端程序502向第一应用程序发送已获取到的服务接口。第一应用程序直接利用服务接口对第二应用程序进行调用。
步骤611a,响应于第一应用程序接收到接口调用响应,管理程序允许第一应用程序调用第二应用程序。
响应于客户端501(第一应用程序)接收到自定义客户端程序502发送的接口调用响应,第一应用程序根据接口调用响应调用第二应用程序,如第一应用程序根据接口调用响应正常调用蓝牙模块对应的服务接口。
第二,第一应用程序禁止调用第二应用程序,包括如下步骤。
步骤607b,响应于第一应用程序不具有服务接口的接口调用权限,通过自定义服务程序向自定义客户端程序发送伪接口调用响应。
示意性的,第一应用程序请求调用蓝牙模块对应的服务接口为例,且第一应用程序不具有蓝牙模块对应的接口调用权限。自定义服务程序506根据管控策略确定第一应用程序不具有该接口调用权限时,自定义服务程序506向信息管理模块507发送伪接口调用响应,伪接口调用响应与接口调用响应相对,伪接口调用响应于用于表征第一应用程序不具有接口调用权限时,自定义服务程序代替系统框架服务程序作出的响应。
信息管理模块507对伪接口调用响应进行信息处理(得到自定义客户端程序能够识别的信息),将处理后的信息发送至服务请求接口505,由服务请求接口505根据伪接口调用响应向自定义客户端程序502发送无法调用的响应。
步骤608b,通过自定义客户端程序向第一应用程序发送伪接口调用响应。
由自定义客户端程序502通过服务请求接口505将伪接口调用响应传递给第一应用程序(客户端501)。
步骤609b,响应于第一应用程序接收到伪接口调用响应,管理程序禁止第一应用程序调用第二应用程序。
响应于第一应用程序接收到自定义客户端程序502发送的伪接口调用响应,第一应用程序根据伪接口调用响应无法调用第二应用程序,如第一应用程序根据伪接口调用响应无法调用蓝牙模块对应的服务接口。
综上所述,本实施例提供的方法,通过管理程序中预先构建的自定义客户端程序和自定义服务程序,利用Hook技术截获接口调用请求,使得系统框架客户端程序(第一应用程序)与系统框架服务程序之间的信息传递转换为在自定义客户端程序和自定义服务程序之间进行信息传递,使得对应用程序的接口调用权限的管理达到系统级别的管理,且管控过程对于应用程序来说是透明无感知的(并不需要对应用程序进行改进),使得管理程序对应用程序的管控方式更加灵活,同时降低了管理程序对应用程序的管控成本。
当第一应用程序具有接口调用权限时,通过自定义服务程序与自定义客户端程序之间传递接口调用请求和接口调用响应,由于自定义服务程序能够根据管控策略对第一应用程序的接口调用权限进行管理,使得自定义客户端能够准确传递自定义服务程序发送的接口调用响应,保证第一应用程序准确调用第二应用程序。
当第一应用程序不具有接口调用权限时,通过自定义服务程序与自定义客户端程序之间传递接口调用请求和伪接口调用响应,由于自定义服务程序能够根据管控策略对第一应用程序的接口调用权限进行管理,使得自定义客户端能够准确传递自定义服务程序发送的伪接口调用响应,保证管理程序准确禁止第一应用程序调用第二应用程序。
本申请实施例提供的方法无需考虑应用程序本身的版本或应用状态,且对于被管控的应用程序来说,管控的过程是透明无感知的,本申请实施例提供的方法可以达到系统系别的管控效果,且无需配备硬件设施,降低了管控应用程序的成本,同时使得管控方式更加灵活。
可以理解的是,基于“仿造”系统原有程序这一思想,对应用程序的权限管理还可以通过如下方式实现。
根据终端的操作系统构建一个虚拟操作系统,应用程序调用服务接口的过程在该虚拟操作系统进行,通过虚拟操作系统中构建的虚拟应用程序与虚拟框架服务程序之间的信息传递,无需Hook技术截获接口调用请求。
下面结合用户界面对应用程序的权限管理方法进行说明。
图7示出了本申请一个示例性实施例提供的应用程序的权限管理方法,该方法应用于如图2所示的计算机系统200的终端210中,该方法包括如下步骤。
步骤701,显示应用管理界面,应用管理界面是管理程序的界面,管理程序用于对应用程序的接口调用权限进行管理,应用管理界面包括第一应用程序的程序标识,第一应用程序具有全部或部分接口的接口调用权限。
以终端包括智能手机为例进行说明。如图8所示,显示管理程序对应的应用管理界面80,该应用管理界面80包括第一应用程序的程序标识81。示意性的,应用程序的程序标识可以是应用程序的名称,也可以是应用程序的图标,本申请实施例对程序标识的类型不加以限定。
步骤702,响应于接收到程序标识上的触发操作,且第一应用程序不具有接口调用权限,显示经过拦截后的第一应用程序的界面。
以终端包括智能手机为例进行说明,触发操作是用户通过点击显示屏产生的。当用户点击第一应用程序的程序标识时,显示如图9所示的界面。在一些实施例中,用户在如图8所示的应用管理界面80上点击程序标识,显示如图9所示的界面。在另一些实施例中,用户在终端的桌面界面点击程序标识。当终端是连接有外部输入设备的终端(如台式电脑)时,触发操作是由用户通过外部输入设备(如鼠标、键盘等)产生的。
在一些实施例中,在第一应用程序的界面上显示有水印,水印用于防止第一应用程序在使用时泄露敏感信息。
如图9所示,在该界面上显示有管理程序对第一用应用程序添加的水印83(该水印是TestUser)。水印是指向多媒体信息中添加某些数字信息以达到文件真伪鉴别、版权保护的功能,水印信息不影响原始文件的可观性和完整性。比如,当用户对图9所示的界面截屏时,水印83能够保证截图的来源以及防止敏感信息泄露。在一些实施例中,根据不同的终端显示不同的水印,或者根据应用程序的不同显示不同的水印,本申请实施例对此不加以限定。
在另一些实施中,在第一应用程序的界面上显示提示信息,提示信息用于提示第一应用程序禁止调用第二应用程序。
如图10所示,在界面87上显示有提示信息88,该提示信息88为“涉及隐私内容,无法调用相机权限、存储权限和麦克风权限”。该提示信息88表示用户使用的第一应用程序不具有摄像模块、存储模块、语音采集模块对应的接口调用权限。由自定义服务程序向自定义客户端程序发送伪接口调用响应,在第一应用程序接收到该伪接口调用响应后,根据该伪接口调用响应显示该提示信息88。
在另一些实施例中,在第一应用程序的界面上既显示有水印,又显示有提示信息。
如图11所示,在第一应用程序的界面84上显示有水印85和提示信息86。由提示信息86可知,第一应用程序不具有截屏程序对应的接口调用权限,防止用户在使用第一应用程序时泄露敏感信息。
上述经过拦截后的第一应用程序的界面是通过如下方式得到的:
1、通过Hook技术对第一应用程序发送的接口调用请求进行拦截,接口调用请求用于请求调用第一服务接口,第一服务接口是第一应用程序调用第二应用程序的接口;
2、根据管控策略确定第一应用程序不具有第一服务接口的接口调用权限,管控策略是管理程序对接口调用权限配置的策略;
3、向第一应用程序返回调用结果得到第一应用程序的界面。
可以理解的是,当第一应用程序具有服务接口的接口调用权限时,第一应用程序正常调用第二应用程序。
对管控策略的设置界面进行说明。示意性的,如图12所示,界面90是管控策略的设置界面。该界面90上包括应用程序具有的接口调用权限对应的管控策略,即基于该界面90,可设置第一应用程序允许调用哪些服务接口,不允许调用哪些服务接口。比如,在界面90上勾选允许获取地理位置,则第一应用程序能调用终端的定位模块对应的服务接口。
可以理解的是,管控策略的设置界面90可在终端上实现或在服务器侧实现(服务器包括提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器)。在一些实施例中,管控策略的设置界面是设置在云服务器上的。此外,本申请实施例对管控策略的设置界面的具体表现形式不加以限定。
在一些实施例中,可针对不同的应用程序分别设置对应的管控策略,或者对不同的应用场景设置对应的管控策略,或者根据运行应用程序的终端的特性设置对应的管控策略,本申请实施例对此不加以限定。
综上所述,本实施例提供的方法,通过以界面显示的方式,使得用户能够更加直观地确定使用的第一应用程序所具有的接口调用权限。通过在第一应用程序的界面上叠加水印,防止用户在使用第一应用程序的过程中泄露敏感信息。通过在第一应用程序上显示提示信息,使得用户在使用第一应用程序的过程中明确第一应用程序不具有何种接口调用权限。
通过管控策略的设置界面,使得管理人员能够直接对管控策略进行设置,方便管理人员针对不同的应用程序或不同的应用场景及时对管控策略进行调整,提高了对应用程序的管理效率。
图13是本申请一个示例性实施例提供的应用程序的权限管理装置的结构框图,该装置设置在管理程序中,管理程序用于对第一应用程序的接口调用权限进行管理,该装置包括如下部分:
接收模块1310,用于接收第一应用程序发送的接口调用请求;
获取模块1320,用于通过钩子函数Hook技术截获接口调用请求,接口调用请求用于请求调用服务接口,服务接口是第一应用程序调用第二应用程序的接口;
处理模块1330,用于根据管控策略确定第一应用程序是否具有服务接口的接口调用权限,管控策略是管理程序对接口调用权限配置的策略;
发送模块1340,用于响应于第一应用程序具有的接口调用权限,向第一应用程序返回调用结果。
在一个可选的实施例中,所述发送模块1340,用于通过Hook技术截获接口调用请求,将接口调用请求发送至管理程序中的自定义客户端程序;通过自定义客户端程序将接口调用请求发送至管理程序中的自定义服务程序;所述获取模块1320,用于通过自定义服务程序获取管控策略;所述处理模块1330,用于通过自定义服务程序根据管控策略确定第一应用程序是否具有服务接口的接口调用权限。
在一个可选的实施例中,所述发送模块1340,用于通过自定义服务程序向操作系统中的系统框架服务程序发送接口调用请求;通过系统框架服务程序根据接口调用请求向自定义服务程序发送接口调用响应;通过自定义服务程序向自定义客户端程序发送接口调用响应。
在一个可选的实施例中,所述发送模块1340,用于通过自定义客户端程序向第一应用程序发送接口调用响应;所述接收模块1310,用于响应于第一应用程序接收到接口调用响应,管理程序允许第一应用程序调用第二应用程序。
在一个可选的实施例中,所述发送模块1340,用于响应于第一应用程序不具有服务接口的接口调用权限,通过自定义服务程序向自定义客户端程序发送伪接口调用响应。
在一个可选的实施例中,所述发送模块1340,用于通过自定义客户端程序向第一应用程序发送伪接口调用响应;所述接收模块1310,用于响应于第一应用程序接收到伪接口调用响应,管理程序禁止第一应用程序调用第二应用程序。
在一个可选的实施例中,该装置包括显示模块1350;
所述显示模块1350,用于显示应用管理界面,应用管理界面是管理程序的界面,管理程序用于对应用程序的接口调用权限进行管理,应用管理界面包括第一应用程序的程序标识,第一应用程序具有全部或部分服务接口的接口调用权限;
所述显示模块1350,用于响应于接收到程序标识上的触发操作,且第一应用程序不具有接口调用权限,显示经过拦截后的第一应用程序的界面。
综上所述,本实施例提供的装置,通过管理程序中预先构建的自定义客户端程序和自定义服务程序,利用Hook技术截获接口调用请求,使得系统框架客户端程序(第一应用程序)与系统框架服务程序之间的信息传递转换为在自定义客户端程序和自定义服务程序之间进行信息传递,使得管理应用程序的接口调用权限达到系统级别的管理,且管控过程对于应用程序来说是透明无感知的(并不需要对应用程序进行改进),使得管理程序对应用程序的管控方式更加灵活,同时降低了管理程序对应用程序的管控成本。
当第一应用程序具有接口调用权限时,通过自定义服务程序与自定义客户端程序之间传递接口调用请求和接口调用响应,由于自定义服务程序能够根据管控策略对第一应用程序的接口调用权限进行管理,使得自定义客户端能够准确传递自定义服务程序发送的接口调用响应,保证第一应用程序准确调用第二应用程序。
当第一应用程序不具有接口调用权限时,通过自定义服务程序与自定义客户端程序之间传递接口调用请求和伪接口调用响应,由于自定义服务程序能够根据管控策略对第一应用程序的接口调用权限进行管理,使得自定义客户端能够准确传递自定义服务程序发送的伪接口调用响应,保证管理程序准确禁止第一应用程序调用第二应用程序。
本申请实施例提供的方法无需考虑应用程序本身的版本或应用状态,且对于被管控的应用程序来说,管控的过程是透明无感知的,本申请实施例提供的方法可以达到系统系别的管控效果,且无需配备硬件设施,降低了管控应用程序的成本,同时使得管控方式更加灵活。
通过以界面显示的方式,使得用户能够更加直观地确定使用的第一应用程序所具有的接口调用权限。通过在第一应用程序的界面上叠加水印,防止用户在使用第一应用程序的过程中泄露敏感信息。通过在第一应用程序上显示提示信息,使得用户在使用第一应用程序的过程中明确第一应用程序不具有何种接口调用权限。
通过管控策略的设置界面,使得管理人员能够直接对管控策略进行设置,方便管理人员针对不同的应用程序或不同的应用场景及时对管控策略进行调整,提高了对应用程序的管理效率。
需要说明的是:上述实施例提供应用程序的权限管理装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的应用程序的权限管理装置与应用程序的权限管理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图14,其示出了本申请一个示例性实施例提供的计算机设备1400的结构框图。该计算机设备1400可以是便携式移动终端,比如:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器。计算机设备1400还可能被称为用户设备、便携式终端等其他名称。
通常,计算机设备1400包括有:处理器1401和存储器1402。
处理器1401可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1401可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1401也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1401可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1401还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1402可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是有形的和非暂态的。存储器1402还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1402中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1401所执行以实现本申请实施例中提供的应用程序的权限管理方法。
在一些实施例中,计算机设备1400还可选包括有:外围设备接口1403和至少一个外围设备。具体地,外围设备包括:射频电路1404、触摸显示屏1405、摄像头1406、音频电路1407、定位组件1408和电源1409中的至少一种。
外围设备接口1403可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1401和存储器1402。在一些实施例中,处理器1401、存储器1402和外围设备接口1403被集成在同一芯片或电路板上;在一些其他实施例中,处理器1401、存储器1402和外围设备接口1403中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1404用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1404通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1404将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1404包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等。射频电路1404可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1404还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
触摸显示屏1405用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。触摸显示屏1405还具有采集在触摸显示屏1405的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1401进行处理。触摸显示屏1405用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,触摸显示屏1405可以为一个,设置计算机设备1400的前面板;在另一些实施例中,触摸显示屏1405可以为至少两个,分别设置在计算机设备1400的不同表面或呈折叠设计;在再一些实施例中,触摸显示屏1405可以是柔性显示屏,设置在计算机设备1400的弯曲表面上或折叠面上。甚至,触摸显示屏1405还可以设置成非矩形的不规则图形,也即异形屏。触摸显示屏1405可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(OrganicLight-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件1406用于采集图像或视频。可选地,摄像头组件1406包括前置摄像头和后置摄像头。通常,前置摄像头用于实现视频通话或自拍,后置摄像头用于实现照片或视频的拍摄。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能,主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能。在一些实施例中,摄像头组件1406还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1407用于提供用户和计算机设备1400之间的音频接口。音频电路1407可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1401进行处理,或者输入至射频电路1404以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在计算机设备1400的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1401或射频电路1404的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1407还可以包括耳机插孔。
定位组件1408用于定位计算机设备1400的当前地理位置,以实现导航或LBS(Location Based Service,基于位置的服务)。定位组件1408可以是基于美国的GPS(Global Positioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源1409用于为计算机设备1400中的各个组件进行供电。电源1409可以是交流电、直流电、一次性电池或可充电电池。当电源1409包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,计算机设备1400还包括有一个或多个传感器1410。该一个或多个传感器1410包括但不限于:加速度传感器1411、陀螺仪传感器1412、压力传感器1413、指纹传感器1414、光学传感器1415以及接近传感器1416。
加速度传感器1411可以检测以计算机设备1400建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1411可以用于检测重力加速度在三个坐标轴上的分量。处理器1401可以根据加速度传感器1411采集的重力加速度信号,控制触摸显示屏1405以横向视图或纵向视图进行用户界面的显示。加速度传感器1411还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器1412可以检测计算机设备1400的机体方向及转动角度,陀螺仪传感器1412可以与加速度传感器1411协同采集用户对计算机设备1400的3D动作。处理器1401根据陀螺仪传感器1412采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器1413可以设置在计算机设备1400的侧边框和/或触摸显示屏1405的下层。当压力传感器1413设置在计算机设备1400的侧边框时,可以检测用户对计算机设备1400的握持信号,根据该握持信号进行左右手识别或快捷操作。当压力传感器1413设置在触摸显示屏1405的下层时,可以根据用户对触摸显示屏1405的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器1414用于采集用户的指纹,以根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1401授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1414可以被设置计算机设备1400的正面、背面或侧面。当计算机设备1400上设置有物理按键或厂商Logo时,指纹传感器1414可以与物理按键或厂商Logo集成在一起。
光学传感器1415用于采集环境光强度。在一个实施例中,处理器1401可以根据光学传感器1415采集的环境光强度,控制触摸显示屏1405的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏1405的显示亮度;当环境光强度较低时,调低触摸显示屏1405的显示亮度。在另一个实施例中,处理器1401还可以根据光学传感器1415采集的环境光强度,动态调整摄像头组件1406的拍摄参数。
接近传感器1416,也称距离传感器,通常设置在计算机设备1400的正面。接近传感器1416用于采集用户与计算机设备1400的正面之间的距离。在一个实施例中,当接近传感器1416检测到用户与计算机设备1400的正面之间的距离逐渐变小时,由处理器1401控制触摸显示屏1405从亮屏状态切换为息屏状态;当接近传感器1416检测到用户与计算机设备1400的正面之间的距离逐渐变大时,由处理器1401控制触摸显示屏1405从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图14中示出的结构并不构成对计算机设备1400的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本申请实施例还提供一种计算机设备,该计算机设备包括处理器和存储器,该存储器中存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述各方法实施例提供的应用程序的权限管理方法。
本申请实施例还提供一种计算机可读存储介质,该存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述各方法实施例提供的应用程序的权限管理方法。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个方法实施例提供应用程序的权限管理方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (7)

1.一种应用程序的权限管理方法,其特征在于,所述方法应用于管理程序,所述管理程序用于对第一应用程序的接口调用权限进行管理,所述方法包括:
显示应用管理界面,所述应用管理界面是所述管理程序的界面,所述应用管理界面包括所述第一应用程序的程序标识,所述第一应用程序具有全部或部分服务接口的接口调用权限;
响应于接收到所述程序标识上的触发操作,启动所述第一应用程序,并且在所述第一应用程序的界面上显示有水印,所述水印用于防止所述第一应用程序在使用时泄露敏感信息;
接收所述第一应用程序发送的接口调用请求;
通过钩子函数Hook技术截获所述接口调用请求,将所述接口调用请求发送至所述管理程序中的自定义客户端程序,所述接口调用请求用于请求调用服务接口,所述服务接口是所述第一应用程序调用第二应用程序的接口,所述自定义客户端程序是根据终端的操作系统中的系统框架客户端程序中的动态逻辑构建的;
通过所述自定义客户端程序将所述接口调用请求发送至信息管理模块;
通过所述信息管理模块将所述接口调用请求发送至所述管理程序中的自定义服务程序,所述自定义服务程序是根据所述操作系统中的系统框架服务程序构建的;
通过所述自定义服务程序获取管控策略,所述管控策略是所述管理程序对所述接口调用权限配置的策略,所述管控策略包括以下至少一种:是否允许调用系统文件夹、是否允许拨打电话、是否允许读取通话记录和是否允许应用程序保持后台运行;
通过所述自定义服务程序根据所述管控策略确定所述第一应用程序是否具有所述服务接口的接口调用权限;
响应于所述第一应用程序不具有接口调用权限,通过所述自定义服务程序向所述自定义客户端程序发送伪接口调用响应,所述伪接口调用响应与接口调用响应相对,所述伪接口调用响应用于表征所述第一应用程序不具有所述接口调用权限时,所述自定义服务程序代替所述系统框架服务程序作出的响应;
响应于所述第一应用程序具有接口调用权限,通过所述自定义服务程序向操作系统中的所述系统框架服务程序发送所述接口调用请求,通过所述系统框架服务程序根据所述接口调用请求向所述自定义服务程序发送接口调用响应,通过所述自定义服务程序向所述自定义客户端程序发送所述接口调用响应;
通过所述自定义客户端程序向所述第一应用程序发送所述接口调用响应或所述伪接口调用响应,
响应于所述第一应用程序接收到所述伪接口调用响应,根据所述伪接口调用响应在所述第一应用程序的界面上显示提示信息,所述提示信息用于提示所述第一应用程序禁止调用所述第二应用程序。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于所述第一应用程序接收到所述接口调用响应,所述管理程序允许所述第一应用程序调用所述第二应用程序。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于所述第一应用程序接收到所述伪接口调用响应,所述管理程序禁止所述第一应用程序调用所述第二应用程序。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于接收到所述程序标识上的触发操作,且所述第一应用程序不具有所述接口调用权限,显示经过拦截后的所述第一应用程序的界面,其中,所述经过拦截后的所述第一应用程序的界面上显示有所述水印。
5.一种应用程序的权限管理装置,其特征在于,所述装置包括:
显示模块,用于显示应用管理界面,所述应用管理界面是管理程序的界面,所述管理程序用于对第一应用程序的接口调用权限进行管理,所述应用管理界面包括所述第一应用程序的程序标识,所述第一应用程序具有全部或部分服务接口的接口调用权限;响应于接收到所述程序标识上的触发操作,启动所述第一应用程序,并且在所述第一应用程序的界面上显示有水印,所述水印用于防止所述第一应用程序在使用时泄露敏感信息;
接收模块,用于接收第一应用程序发送的接口调用请求;
发送模块,用于通过钩子函数Hook技术截获所述接口调用请求,将所述接口调用请求发送至管理程序中的自定义客户端程序,所述接口调用请求用于请求调用服务接口,所述服务接口是所述第一应用程序调用第二应用程序的接口,所述自定义客户端程序是根据终端的操作系统中的系统框架客户端程序中的动态逻辑构建的;所述管理程序用于对所述第一应用程序的接口调用权限进行管理;通过所述自定义客户端程序将所述接口调用请求发送至信息管理模块;通过所述信息管理模块将所述接口调用请求发送至所述管理程序中的自定义服务程序,所述自定义服务程序是根据所述操作系统中的系统框架服务程序构建的;
获取模块,用于通过所述自定义服务程序获取管控策略,所述管控策略是所述管理程序对所述接口调用权限配置的策略,所述管控策略包括以下至少一种:是否允许调用系统文件夹、是否允许拨打电话、是否允许读取通话记录和是否允许应用程序保持后台运行;
处理模块,用于通过所述自定义服务程序根据所述管控策略确定所述第一应用程序是否具有所述服务接口的接口调用权限;
所述发送模块,用于响应于所述第一应用程序不具有接口调用权限,通过所述自定义服务程序向所述自定义客户端程序发送伪接口调用响应,所述伪接口调用响应与接口调用响应相对,所述伪接口调用响应用于表征所述第一应用程序不具有所述接口调用权限时,所述自定义服务程序代替所述系统框架服务程序作出的响应;响应于所述第一应用程序具有接口调用权限,通过所述自定义服务程序向操作系统中的所述系统框架服务程序发送所述接口调用请求,通过所述系统框架服务程序根据所述接口调用请求向所述自定义服务程序发送接口调用响应,通过所述自定义服务程序向所述自定义客户端程序发送所述接口调用响应;通过所述自定义客户端程序向所述第一应用程序发送所述接口调用响应或所述伪接口调用响应,
所述显示模块还用于:响应于所述第一应用程序接收到所述伪接口调用响应,根据所述伪接口调用响应在所述第一应用程序的界面上显示提示信息,所述提示信息用于提示所述第一应用程序禁止调用所述第二应用程序。
6.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至4任一所述的应用程序的权限管理方法。
7.一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至4任一所述的应用程序的权限管理方法。
CN202010641598.8A 2020-07-06 2020-07-06 应用程序的权限管理方法、装置、设备及存储介质 Active CN111523136B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010641598.8A CN111523136B (zh) 2020-07-06 2020-07-06 应用程序的权限管理方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010641598.8A CN111523136B (zh) 2020-07-06 2020-07-06 应用程序的权限管理方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN111523136A CN111523136A (zh) 2020-08-11
CN111523136B true CN111523136B (zh) 2023-09-22

Family

ID=71909988

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010641598.8A Active CN111523136B (zh) 2020-07-06 2020-07-06 应用程序的权限管理方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN111523136B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110535724B (zh) * 2019-08-28 2022-11-08 深圳市网心科技有限公司 应用程序网络读写限制方法、装置、电子设备及存储介质
CN112199720A (zh) * 2020-10-12 2021-01-08 广州虎牙科技有限公司 权限监控处理方法、装置、计算机设备及介质
CN112965765B (zh) * 2021-02-02 2024-01-16 深圳市优必选科技股份有限公司 服务调用方法、装置、电子设备及存储介质
CN113935014A (zh) * 2021-10-14 2022-01-14 北京鲸鲮信息系统技术有限公司 设备节点的开启控制方法及装置、电子设备、存储介质
CN116560858A (zh) * 2023-07-07 2023-08-08 北京蔚领时代科技有限公司 Vr云服务器容器隔离方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104462980A (zh) * 2014-12-30 2015-03-25 北京奇虎科技有限公司 一种应用程序权限管理的方法、装置、系统及移动终端
CN107193666A (zh) * 2017-04-20 2017-09-22 北京安云世纪科技有限公司 应用程序之间调用的控制方法及装置
CN110062106A (zh) * 2019-03-27 2019-07-26 努比亚技术有限公司 一种应用程序的调用方法、移动终端及存储介质
CN111367684A (zh) * 2018-12-26 2020-07-03 北京天融信网络安全技术有限公司 一种过滤远程过程调用的方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104462980A (zh) * 2014-12-30 2015-03-25 北京奇虎科技有限公司 一种应用程序权限管理的方法、装置、系统及移动终端
CN107193666A (zh) * 2017-04-20 2017-09-22 北京安云世纪科技有限公司 应用程序之间调用的控制方法及装置
CN111367684A (zh) * 2018-12-26 2020-07-03 北京天融信网络安全技术有限公司 一种过滤远程过程调用的方法和装置
CN110062106A (zh) * 2019-03-27 2019-07-26 努比亚技术有限公司 一种应用程序的调用方法、移动终端及存储介质

Also Published As

Publication number Publication date
CN111523136A (zh) 2020-08-11

Similar Documents

Publication Publication Date Title
CN111523136B (zh) 应用程序的权限管理方法、装置、设备及存储介质
JP7338044B2 (ja) 顔画像送信方法、値転送方法、装置および電子機器
CN110674022B (zh) 行为数据获取方法、装置及存储介质
CN109547495B (zh) 敏感操作处理方法、装置、服务器、终端及存储介质
CN111190748B (zh) 数据共享方法、装置、设备及存储介质
CN113542290B (zh) 数据访问请求的处理方法、装置、设备及可读存储介质
CN111490996B (zh) 网络攻击处理方法、装置、计算机设备及存储介质
CN107959727B (zh) 网页与客户端之间进行通讯的方法及装置
CN110321228B (zh) 原生方法的调用方法、装置、设备及计算机可读存储介质
CN115039378A (zh) 一种音频输出方法及终端设备
CN110851823B (zh) 数据访问方法、装置、终端及存储介质
CN111427949B (zh) 一种创建大数据服务的方法及装置
CN111866140A (zh) 融合管理设备、管理系统、服务调用方法及介质
EP4030680A1 (en) Application processing method and related product
CN110825465B (zh) 日志数据处理方法、装置、电子设备及存储介质
CN111970298B (zh) 应用访问方法、装置、存储介质及计算机设备
CN114816600B (zh) 会话消息显示方法、装置、终端及存储介质
CN114124405B (zh) 业务处理方法、系统、计算机设备及计算机可读存储介质
CN113051015B (zh) 页面渲染方法、装置、电子设备及存储介质
CN113742757A (zh) 数据访问方法、装置、设备及可读存储介质
CN113569219A (zh) 直播嵌入程序授权方法、装置、设备及存储介质
CN110502708B (zh) 基于JSBridge进行通信的方法、装置及存储介质
CN111191254B (zh) 访问校验方法、装置、计算机设备及存储介质
CN113076452A (zh) 应用分类的方法、装置、设备及计算机可读存储介质
CN113689206A (zh) 资源转移方法、装置、系统、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40027334

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant