CN107967423B - 一种权限获取的方法以及终端设备 - Google Patents

一种权限获取的方法以及终端设备 Download PDF

Info

Publication number
CN107967423B
CN107967423B CN201610915147.2A CN201610915147A CN107967423B CN 107967423 B CN107967423 B CN 107967423B CN 201610915147 A CN201610915147 A CN 201610915147A CN 107967423 B CN107967423 B CN 107967423B
Authority
CN
China
Prior art keywords
target
task
authority
function
permission
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
CN201610915147.2A
Other languages
English (en)
Other versions
CN107967423A (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 CN201610915147.2A priority Critical patent/CN107967423B/zh
Publication of CN107967423A publication Critical patent/CN107967423A/zh
Application granted granted Critical
Publication of CN107967423B publication Critical patent/CN107967423B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72448User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions
    • H04M1/72463User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions to restrict the functionality of the device

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Telephone Function (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例公开了一种权限获取的方法以及终端设备,用于解决现有的应用软件中,相同的权限,在多处有相同的权限申请代码的问题,可以有效地避免应用软件重复代码过多,减低应用软件代码量。其方法包括:通过接收目标任务执行指令,根据目标任务执行指令,执行与目标任务对应的任务函数,其中,目标任务的类型不同时所对应的任务函数不同,不同的任务函数中包括相同的目标权限注释信息,当执行到任务函数时中的目标权限注释信息处时,显示申请目标权限的提示信息,当接收到允许获取目标权限的指令时,从权限函数库中调用与目标权限注释信息对应的权限获取函数,通过执行权限获取函数获取目标权限。

Description

一种权限获取的方法以及终端设备
技术领域
本发明涉及终端领域,尤其涉及到一种权限获取的方法以及终端设备。
背景技术
安卓6.0(android 6.0)系统,为谷歌公司在2015年发布的android系统版本,目前越来越多的终端设备,例如手机等终端设备,都采用android系统。与android 6.0之前的android系统不同的是,在android 6.0系统中,android 6.0系统在本身会对应用软件的危险权限做严格的校验,因此开发人员在编写应用软件代码时,不仅仅需要申明权限,如果没有申请过申明中的某个危险权限,在调用需要该危险权限的方法,即需要该危险权限的任务函数前,需要通过调用对应的权限申请函数来申请该危险权限,当通过权限获取函数收到用户的授权后,即获取了该危险权限后,才能调用任务函数。
即在调用任务函数时,如果任务函数的执行需要某个危险权限,对应的,需要该危险权限的权限申请代码。在现有技术的权限获取的方法中,往往使用的是PermissionsDispatcher来自动生成获取危险权限的代码。其中,PermissionsDispatcher为第三方库,为github开源代码库上的开源项目。即,利用第三方库PermissionsDispatcher,每一个需要危险权限的任务函数都会自动生成检验是否已经拥有该危险权限、申请该危险权限以及获取该危险权限的权限代码,当不同任务函数具有相同的危险权限时,对于每一个任何函数,都会生成相同的权限代码,即会造成相同的危险权限,在多处有相同的权限代码,造成应用软件重复代码过多,代码量过大。
发明内容
本发明实施例提供了一种权限获取的方法以及终端设备,用于解决现有的应用软件中,相同的权限,在多处有相同的权限申请代码的问题,可以有效地避免应用软件重复代码过多,减低应用软件代码量。
有鉴于此,本发明第一方面提供了一种权限获取的方法,该方法包括:
接收目标任务的执行指令;
根据所述执行指令,执行与所述目标任务对应的任务函数,所述目标任务的类型不同时所对应的任务函数不同,不同的任务函数中包括相同的目标权限注释信息;
当执行到所述任务函数时中的目标权限注释信息处时,显示申请所述目标权限的提示信息;
当接收到允许获取所述目标权限的指令时,从权限函数库中调用与所述目标权限注释信息对应的权限获取函数;
通过执行所述权限获取函数获取所述目标权限。
本发明第二方面提供了一种终端设备,该终端设备包括:
接收模块,用于接收目标任务的执行指令;
执行模块,用于根据所述接收模块接收的所述执行指令,执行与所述目标任务对应的任务函数,所述目标任务的类型不同时所对应的任务函数不同,不同的任务函数中包括相同的目标权限注释信息;
显示模块,用于当执行到所述任务函数时中的目标权限注释信息处时,显示申请所述目标权限的提示信息;
调用模块,用于当接收到允许获取所述目标权限的指令时,从权限函数库中调用与所述目标权限注释信息对应的权限获取函数;
获取模块,通过执行所述调用模块调用的所述权限获取函数获取所述目标权限。
相较于现有技术,从以上技术方案可以看出,本发明提出一种权限获取的方法,通过接收目标任务执行指令,根据目标任务执行指令,执行与目标任务对应的任务函数,其中,目标任务的类型不同时所对应的任务函数不同,不同的任务函数中包括相同的目标权限注释信息,当执行到任务函数时中的目标权限注释信息处时,显示申请目标权限的提示信息,当接收到允许获取目标权限的指令时,从权限函数库中调用与目标权限注释信息对应的权限获取函数,执行权限获取函数,从而获取目标权限。可见,本发明提出权限获取的方法中,其针对包含有相同的目标权限注释信息时任务函数,都是通过从权限函数库中调用与目标权限注释信息对应的权限获取函数来获取目标权限,即对于不同的任务函数的目标权限,都是调用权限函数库里的权限获取函数,,即权限获取代码,不会造成相同的权限,在多处有相同的代码,可以有效地避免应用软件重复代码过多,从而减低应用软件代码量。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一种权限获取的方法一个实施例流程示意图;
图2为本发明实施例一种应用软件的一个示意图;
图3为本发明实施例一种权限获取的方法另一实施例流程示意图;
图4为本发明实施例一种目标权限对应的任务函数的一个代码示意图;
图5为本发明实施例一种目标权限的检验、申请函数的一个代码示意图;
图6为本发明实施例一种显示申请目标权限的提示信息的一个示意图;
图7为本发明实施例一种终端设备一个实施例结构示意图;
图8为本发明实施例一种终端设备另一实施例结构示意图;
图9为本发明实施例一种终端设备另一实施例结构示意图;
图10为本发明实施例一种终端设备另一实施例结构示意图。
具体实施方式
本发明实施例提供了一种权限获取的方法以及终端设备,用于解决现有的应用软件中,相同的权限,在多处有相同的权限申请代码的问题,可以有效地避免应用软件重复代码过多,减低应用软件代码量。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明主要适用于安装有操作系统的终端设备中,其中操作系统可以是,但不局限于android系统,网际操作系统(英文全称:Internet work 0perating System,缩写:IOS)等操作系统,尤其适用于android6.0系统,或者android6.0之后的android系统。其中,终端设备泛指安装了上述操作系统的终端平台,例如可以是电脑,手机,笔记本,个人数字助理(英文全称:Personal Digital Assistant,缩写:PDA)、车载电脑等终端设备,此处不做具体限定。
在装有应用软件的终端设备上,针对不同的应用软件,不同的应用软件具有不同的权限需求,对此本发明提出了一种权限获取的方法,适用于不同的应用软件中,可以有效地改进应用软件代码量重复过多,从而代码量过大的问题。需要说明的是,本发明涉及到应用软件可以是即时互助平台类应用软件,例如腾讯公司的“同学我来了”等应用平台;也可以是即时通讯软件应用,例如:微信,微博,QQ等。当然,当终端设备为手机时,还可以是一些游戏应用,例如:手机网页游戏,手机单机游戏等,例如:可以是神庙逃亡,王者之剑,王者荣耀等手机游戏。这里需要说明的是,上述的说明在这里只是举例说明,此处不做具体限定。
这里以终端设备安装的系统为android系统为例,由上述背景技术描述可知,对于android6.0之前的android系统,在应用软件安装的时候,根据权限声明会产生一个权限列表,用户只有在同意权限列表中权限之后才能完成应用软件的安装,造成了我们想要使用某个应用软件,就必须要默默忍受其一些不必要的权限,例如;应用软件要访问通讯录、短信等。而在android6.0或者android6.0之后的android系统,我们可以直接安装,尽管在安装的时候会申明会用到哪些权限,但当应用软件运行过程中需要我们授予危险权限的时候,我们可以予以拒绝,例如:单机的象棋对战,请求访问网络,用户可以选择拒绝。
即在实际应用中,在终端设备上运行应用时,可能涉及应用否需要获取某个权限的问题,例如,常见的权限:一般将权限分为两类,一类是普通权限,这类权限一般不涉及用户隐私,一般是不需要用户进行授权的,比如开启手机震动、开启蓝牙等;另一类是危险权限,一般是涉及到用户隐私的,需要用户进行授权,比如读取安全数码卡(英文全称:SecureDigital Memory Card,缩写:SD)、访问通讯录信息等。在现有技术中,在安装的应用软件中,在每一个需要危险权限的方法,即任务函数都会自动生成检验是否已经拥有了该危险权限、申请该危险权限以及获取该危险权限的权限代码,当不同任务函数具有相同的危险权限时,对于每一个任何函数,都会生成上述权限代码,即会造成相同的危险权限,在多处有相同的代码,造成应用软件重复代码过多,代码量过大。本发明提出了一种权限获取的方法,不会造成相同的权限,在多处有相同的权限申请代码,可以有效地避免应用软件重复代码过多,从而减低应用软件代码量。
下面通过具体的实施例进行介绍,请参阅图1,图1为本发明一种权限获取的方法一个实施例流程示意图,包括:
101、接收目标任务的执行指令;
在本实施例中,可以接收目标任务的执行指令。例如目标任务可以是应用软件所拥有的某项功能或者某些具体的应用。
其中,上述应用软件具体可以是即时互助平台类应用软件,例如腾讯公司的“同学我来了”等应用平台。也可以是其他应用软件,例如:微信,微博,QQ等应用软件,具体此处不做限定。
这里以“同学我来了”为例,如图2所示,目标任务的执行指令具体可以是指点击“附近”的功能,或者点击“我来帮”等功能。
102、根据所述执行指令,执行与所述目标任务对应的任务函数,所述目标任务的类型不同时所对应的任务函数不同,不同的任务函数中包括相同的目标权限注释信息;
本实施例中,当接收到上述目标任务的执行指令时,执行与所述目标任务对应的任务函数,其中,所述目标任务的类型不同时所对应的任务函数不同,不同的任务函数中包括相同的目标权限注释信息。
其中,为了方便叙述与理解,这里仍然以“同学我来了”应用软件为例进行说明:
在“同学我来了”应用软件中,目标任务可以有多种,例如上述“附近”功能,“我来帮”功能,或者在共享平台中分享当前的地理位置等功能,应理解,在这些任务的执行中,一般需要获取某些权限,例如获取用户当前地理位置的权限,这里就假设获取用户当前地理位置的权限为目标权限,通过每个目标任务都有其对应的任务函数来实现,即对应的任务函数中都有该目标权限的注释信息,每个任何函数可以有多个不同的目标权限,具体由实际的应用软件的需求所决定,具体此处不做限定。
103、当执行到所述任务函数时中的目标权限注释信息处时,显示申请所述目标权限的提示信息;
本实施例中,当执行到所述任务函数时中的目标权限注释信息处时,显示申请所述目标权限的提示信息,即通过人机交互的方式显示申请该目标权限的提示信息。
104、当接收到允许获取所述目标权限的指令时,从权限函数库中调用与所述目标权限注释信息对应的权限获取函数;
本实施例中,当显示了申请目标权限的提示信息后,若接收到允许获取目标权限的指令时,则从权限函数库中调用与目标权限注释信息所对应的权限获取函数。
需要说明的是,权限函数库为预先配置的函数库,在该权限函数库中,包含有每一种目标权限所对应的权限获取函数。
105、通过执行所述权限获取函数获取所述目标权限。
当从权限函数库中调用与所述目标权限注释信息对应的权限获取函数后,通过执行所述权限获取函数获取所述目标权限。
可见,本发明提出权限获取的方法中,其针对包含有相同的目标权限注释信息时任务函数,都是通过从权限函数库中调用与目标权限注释信息对应的权限获取函数来获取目标权限,即对于不同的任务函数的目标权限,都是调用权限函数库里的权限获取函数,即权限获取代码,不会造成相同的权限,在多处有相同的权限申请代码,可以有效地避免应用软件重复代码过多,从而减低应用软件的代码量。
请参阅图3,图3为本发明一种权限获取的方法另一实施例示意图,包括:
301、接收目标任务的执行指令;
需要说明的是,步骤301可以参考步骤101的描述,具体此处不做赘述。
302、判断所述目标任务所对应的任务函数是否符合预置拦截条件,若是,则执行步骤303;
本实施例中,当接收了目标任何的执行指令后,判断所述目标任务所对应的任务函数是否符合预置拦截条件,若所述目标任务所对应的任务函数符合预置拦截条件,则执行步骤303。
其中,在一种实现方式中,所述目标任务对应的任务函数包含标记信息,判断所述目标任务所对应的任务函数是否符合预置拦截条件,包括:
当所述标记信息与预置标记信息一致时,则确定所述目标任务对应的任务函数符合所述预置拦截条件。
为了便于理解,下面通过具体的例子进行说明:例如,这里以通过android编程实现为例,本发明实施例中,可以基于面向切面编程(英文全称:Aspect OrientedProgramming,缩写:AOP)框架,通过预编译方式和运行期动态代理来实现上述拦截过程。应理解,AOP是面向对象编程(英文全称:Object Oriented Programming,缩写:OOP)的延续,是软件开发中的一个热点,利用AOP可以对应用软件业务逻辑的各个部分进行隔离,从而使得应用软件业务逻辑各部分之间的耦合度降低,提高应用软件中代码的可重用性,同时提高了开发的效率。
例如,以android编程为例,可以通过申请切面的方式来实现上述拦截过程,应理解,在AOP中,切面即是某一类函数的描述,例如以TakePhoto结尾的函数。举个具体的例子,假设申请如下所示的切面:
execution(@test.tencent.com.aop.anonation.PermissionCheck**TakePhoto(..))&&@annotation(permissionCheck)。
本领域技术人员可以知道,上述代码即为一个切面,它表示使用PermissionCheck标注,并且以TakePhoto结尾的函数,有了这个切面,这里就可以对和这个切面相匹配,即与预置标记信息,PermissionCheck以及TakePhoto相匹配的函数进行拦截了。例如,这里假设目标任务对应的任务函数为图4所示的函数,即使用PermissionCheck标注,并且以TakePhoto结尾的函数,即标记信息为PermissionCheck以及TakePhoto的函数,与预置标记信息一致,则说明符合预置拦截条件,之后执行步骤303。
303、根据所述执行指令,执行与所述目标任务对应的任务函数,所述目标任务的类型不同时所对应的任务函数不同,不同的任务函数中包括相同的目标权限注释信息;
即不同任务函数中可以包含相同目标权限的注释信息,每个任何函数可以有多个不同的目标权限,具体由实际的应用软件的需求所决定,具体此处不做限定。
例如,这里以图4所示的任务函数为例,其目标权限的注释信息如下代码所示:
@PermissionCheck(permession={Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE
Manifest.permission.ACCESS_NETWORK_STATE
Manifest.permission.RECORD_AUDIO})。
304、当执行到所述任务函数时中的目标权限注释信息处时,从所述权限函数库中调用所述目标权限的检验函数;
本实施例中,当执行到所述任务函数时中的目标权限注释信息处时,从所述权限函数库中调用目标权限的检验函数。
这里仍然以图4所示的函数为任务函数为例,应理解,如图4的任务函数中,表示执行该任务函数需要注释中的4个权限,当任务函数对应的目标权限注释信息时,从所述权限函数库中调用目标权限的检验函数。
305、通过执行所述目标权限的检验函数判断是否获得所述目标权限,若否,则执行步骤306;
当调用了目标权限的检验函数后,通过执行该目标权限的检验函数来判断是否已经获得了该目标权限,当判断当前未获得目标权限时,执行步骤306。
306、从所述权限函数库中调用所述目标权限的申请函数;
即当通过执行该目标权限的检验函数判断结果指示未获得该目标权限时,从所述权限函数库中调用该目标权限的申请函数。
307、通过执行所述目标权限的申请函数显示申请所述目标权限的提示信息;
本实施例中,当通过从权限函数库中调用了目标权限的申请函数后,通过执行该申请函数显示申请所述目标权限的提示信息。
例如,这里仍然以android编程为例,以目标权限为访问SD卡为例,可以通过图5所示的android代码来实现步骤305中的检验目标权限,以及步骤306-步骤307中显示申请目标权限的提示信息。
例如,最终通过如图6所示的人机交互界面来显示申请访问SD卡权限的提示信息。
308、当接收到允许获取所述目标权限的指令时,从权限函数库中调用与所述目标权限注释信息对应的权限获取函数;
当接收到允许获取所述目标权限的指令时,即当用户通过图6所示的人机交互界面点击,允许获取该目标权限的指令时,从所述权限函数库中调用与目标权限注释信息对应的权限获取函数。
309、通过执行所述权限获取函数获取所述目标权限。
当从所述权限函数库中调用与目标权限注释信息对应的权限获取函数,通过执行所述权限获取函数来获取目标权限。
可见,在本实施例提出的权限获取的方法中,其针对包含有相同的目标权限注释信息时任务函数,都是通过从权限函数库中调用与目标权限注释信息对应的申请函数,检验函数以及权限获取函数,最终获取目标权限,即对于不同的任务函数的目标权限,在目标权限的获取过程中,都是调用权限函数库里的函数来实现,在实际的实现上,不会造成相同的权限,在多处有相同的权限检验代码、权限申请代码,权限获取代码的生成,可以有效地避免应用软件重复代码过多,减低应用软件代码量。
为了便于理解,下面以AOP为框架,利用android编程实现来本发明的一个编写场景进行描述:
1)在android项目中引入AOP框架,在andriod studio开发环境中,这一点可以通过在项目的build.grale文件中进行相关的依赖配置引入,具体细节具体此处不做赘述。
2)编写权限校验注解,这样就可以在相关方法的执行上去定义方法执行所需要的权限,具体如下代码所示:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public@interface PermissionCheck{public String[]permession();}。
3)申明一个切面,举个具体的例子:
比如:execution(@test.tencent.com.aop.anonation.PermissionCheck**TakePhoto(..))&&@annotation(permissionCheck),这就是一个切面,它表示使用PermissionCheck标注,并且以TakePhoto结尾的函数有了这个切面,这里就可以对和这个切面想匹配的函数进行拦截。例如,如图4所示的函数。
4)有了切面,接下来就可以对横切点进行编码,应理解,对于一个切面,有三个切点,@before,@arround,@after三个切点,分别表示方法执行之前,方法执行,方法执行之后。这里要做的事情是编写针对方法之前进行相关危险权限的检验代码等权限代码,通过@Before切点编写方法执行所需要的一项权限的检验代码,以及对应的权限申请代码和权限获取代码,通过切面实现如果没有权限就申请,直到所有权限检验完毕,才执行权限对应的方法。通过上述步骤来编写应用软件权限获取的代码。
上面对本发明实施例中一种权限获取的方法进行了介绍,下面对本发明实施例中的终端设备进行介绍:
请参阅图7,图7为本发明实施例一种终端设备一个实施例结构示意图,包括接收模块701、执行模块702、显示模块703、调用模块704以及获取模块705。
其中,接收模块701,用于接收目标任务的执行指令;
执行模块702,用于根据所述接收模块701接收的所述执行指令,执行与所述目标任务对应的任务函数,所述目标任务的类型不同时所对应的任务函数不同,不同的任务函数中包括相同的目标权限注释信息;
显示模块703,用于当执行到所述任务函数时中的目标权限注释信息处时,显示申请所述目标权限的提示信息;
调用模块704,用于当接收到允许获取所述目标权限的指令时,从权限函数库中调用与所述目标权限注释信息对应的权限获取函数;
获取模块705,通过执行所述调用模块704调用的所述权限获取函数获取所述目标权限。
结合图7,请参阅图8,该终端设备还包括:
第一判断模块706,用于在所述显示模块显示申请所述目标权限的提示信息之前,判断是否获得所述目标权限;
第一触发模块707,用于若所述第一判断模块706判断未获得所述目标权限,则触发显示申请所述目标权限的提示信息。
结合图8,请参阅图9,该终端设备还包括;
第二判断模块708,用于在根据所述目标任务执行指令,执行与所述目标任务对应的任务函数之前,判断所述目标任务所对应的任务函数是否符合预置拦截条件;
第二触发模块709,用于当所述第二判断模块708判断所述目标任务所对应的任务函数符合所述预置拦截条件时,则触发所述根据所述目标任务执行指令,执行与所述目标任务对应的任务函数的操作。
在一种可能的实现方式中,所述第二判断模块708具体用于当所述标记信息与预置标记信息一致时,则判断所述目标任务对应的任务函数符合所述预置拦截条件。
,在一种可能的实现方式中,所述第一判断模块706具体用于从所述权限函数库中调用所述目标权限的检验函数;通过执行所述检验函数检验是否获取所述目标权限。
在一种可能的实现方式中,所述显示模块703具体用于从所述权限函数库中调用所述目标权限的申请函数;通过执行所述目标权限的申请函数显示申请所述目标权限的提示信息。
上面从模块化功能实体的角度对本发明实施例中的终端设备进行描述,下面从硬件处理的角度对本发明实施例中的终端设备进行描述:
请参阅图10,图10示出的是与本发明实施例提供的终端设备相关结构的框图。请参考图10,该终端设备可以包括:射频(英文全称:Radio Frequency,缩写:RF)电路1010、存储器1020、输入单元1030、显示单元1040、传感器1050、无线保真(英文全称:wirelessfidelity,缩写:WiFi)模块1060、处理器1070、以及电源1080等部件。本领域技术人员可以理解,图10中示出的终端设备结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,具体此处不做限定。
下面结合图10对终端设备各个构成部件进行简单的介绍:
其中,RF电路1010可用于测试消息的接收和发送,此外,RF电路1010还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(英文全称:Global System of Mobile communication,缩写:GSM)、通用分组无线服务(英文全称:General Packet Radio Service,缩写:GPRS)、码分多址(英文全称:Code Division Multiple Access,缩写:CDMA)、宽带码分多址(英文全称:Wideband Code Division Multiple Access,缩写:WCDMA)、长期演进(英文全称:LongTerm Evolution,缩写:LTE)、电子邮件、短消息服务(英文全称:Short MessagingService,缩写:SMS)等。
进一步地,输入单元1030可以包括触控面板1031以及其他输入设备1032,显示单元1040可以显示面板1041。
处理器1070是终端设备的控制中心,利用各种接口和线路连接整个终端设备各个部分,例如通过总线的方式进行连接,通过运行或执行存储在存储器1020内的软件程序和/或模块,以及调用存储在存储器1020内的数据,执行终端设备的各种功能和处理数据,可选的,处理器1080可包括一个或多个处理单元;优选的,处理器1080可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1080中。
终端设备还包括给各个部件供电的电源1090(比如电池),优选的,电源可以通过电源管理系统与处理器1070逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
需要说明的是,上述所涉及到的处理器可以是中央处理器(英文全称:centralprocessing unit,缩写:CPU),网络处理器(英文全称:network processor,缩写:NP)或者CPU和NP的组合。处理器还可以进一步包括硬件芯片,具体可以是专用集成电路(英文全称:application-specific integrated circuit,缩写:ASIC),可编程逻辑器(英文全称:programmable logic device,缩写:PLD)或其组合。另外PLD可以是复杂可编程逻辑器件(英文全称:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文全称:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文全称:generic array logic,缩写:GAL)或其任意组合,在本发明中不做任何限定。
总线可以是外设部件互连标准(英文全称:peripheral componentinterconnect,缩写:PCI)总线或扩展工业标准结构(英文全称:extended industrystandard architecture,缩写:EISA)总线等。所述总线还可以分为地址总线、数据总线、控制总线等。为便于表示,图10仅用粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本发明实施例中,终端设备的处理器具体用于执行以下步骤:
接收目标任务的执行指令;
根据所述执行指令,执行与所述目标任务对应的任务函数,所述目标任务的类型不同时所对应的任务函数不同,不同的任务函数中包括相同的目标权限注释信息;
当执行到所述任务函数时中的目标权限注释信息处时,显示申请所述目标权限的提示信息;
当接收到允许获取所述目标权限的指令时,从权限函数库中调用与所述目标权限注释信息对应的权限获取函数;
通过执行所述权限获取函数获取所述目标权限。
在一种可能的实现中,所述显示申请所述目标权限的提示信息之前,所述处理器还用于
判断是否获得所述目标权限,若否,则触发显示申请所述目标权限的提示信息。
在一种可能的实现方式中,所述处理器用于:
从所述权限函数库中调用所述目标权限的检验函数;
通过执行所述目标权限的检验函数判断是否获得所述目标权限。
在一种可能的实现方式中,所述处理器还用于:
从所述权限函数库中调用所述目标权限的申请函数;
通过执行所述目标权限的申请函数显示申请所述目标权限的提示信息。
在一种可能的实现方式中,根据所述目标任务执行指令,执行与所述目标任务对应的任务函数之前,所述处理器还用于:
判断所述目标任务所对应的任务函数是否符合预置拦截条件;
当所述目标任务所对应的任务函数符合所述预置拦截条件时,则触发所述根据所述目标任务执行指令,执行与所述目标任务对应的任务函数的操作。
在一种可能的实现方式中看,所述目标任务对应的任务函数包含标记信息,所述处理器还用于:
当所述标记信息与预置标记信息一致时,则确定所述目标任务对应的任务函数符合所述预置拦截条件。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的终端设备的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,模块和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (12)

1.一种权限获取的方法,其特征在于,包括:
接收目标任务的执行指令;
根据所述执行指令,执行与所述目标任务对应的任务函数,所述目标任务的类型不同时所对应的任务函数不同,不同的任务函数中包括相同的目标权限注释信息;
当执行到所述任务函数中的目标权限注释信息处时,显示申请所述目标权限的提示信息;
当接收到允许获取所述目标权限的指令时,从权限函数库中调用与所述目标权限注释信息对应的权限获取函数;
通过执行所述权限获取函数获取所述目标权限。
2.根据权利要求1所述的方法,其特征在于,所述显示申请所述目标权限的提示信息之前,所述方法还包括:
判断是否获得所述目标权限,若否,则触发显示申请所述目标权限的提示信息。
3.根据权利要求2所述的方法,其特征在于,所述判断是否获得所述目标权限,包括:
从所述权限函数库中调用所述目标权限的检验函数;
通过执行所述目标权限的检验函数判断是否获得所述目标权限。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述显示申请所述目标权限的提示信息,包括:
从所述权限函数库中调用所述目标权限的申请函数;
通过执行所述目标权限的申请函数显示申请所述目标权限的提示信息。
5.根据权利要求4所述的方法,其特征在于,根据所述目标任务执行指令,执行与所述目标任务对应的任务函数之前,所述方法还包括:
判断所述目标任务所对应的任务函数是否符合预置拦截条件;
当所述目标任务所对应的任务函数符合所述预置拦截条件时,则触发所述根据所述目标任务执行指令,执行与所述目标任务对应的任务函数的操作。
6.根据权利要求5所述的方法,其特征在于,所述目标任务对应的任务函数包含标记信息;
当所述标记信息与预置标记信息一致时,则确定所述目标任务对应的任务函数符合所述预置拦截条件。
7.一种终端设备,其特征在于,包括:
接收模块,用于接收目标任务的执行指令;
执行模块,用于根据所述接收模块接收的所述执行指令,执行与所述目标任务对应的任务函数,所述目标任务的类型不同时所对应的任务函数不同,不同的任务函数中包括相同的目标权限注释信息;
显示模块,用于当执行到所述任务函数中的目标权限注释信息处时,显示申请所述目标权限的提示信息;
调用模块,用于当接收到允许获取所述目标权限的指令时,从权限函数库中调用与所述目标权限注释信息对应的权限获取函数;
获取模块,通过执行所述调用模块调用的所述权限获取函数获取所述目标权限。
8.根据权利要求7所述的终端设备,其特征在于,所述终端设备还包括:
第一判断模块,用于在所述显示模块显示申请所述目标权限的提示信息之前,判断是否获得所述目标权限;
第一触发模块,用于若所述第一判断模块判断未获得所述目标权限,则触发显示申请所述目标权限的提示信息。
9.根据权利要求8所述的终端设备,其特征在于,所述第一判断模块具体用于:
从所述权限函数库中调用所述目标权限的检验函数;
通过执行所述检验函数检验是否获取所述目标权限。
10.根据权利要求7-8中任一项所述的终端设备,其特征在于,所述显示模块具体用于:
从所述权限函数库中调用所述目标权限的申请函数;
通过执行所述目标权限的申请函数显示申请所述目标权限的提示信息。
11.根据权利要求10所述的终端设备,其特征在于,所述终端设备还包括:
第二判断模块,用于在根据所述目标任务执行指令,执行与所述目标任务对应的任务函数之前,判断所述目标任务所对应的任务函数是否符合预置拦截条件;
第二触发模块,用于当所述第二判断模块判断所述目标任务所对应的任务函数符合所述预置拦截条件时,则触发所述根据所述目标任务执行指令,执行与所述目标任务对应的任务函数的操作。
12.根据权利要求11所述的终端设备,其特征在于,所述目标任务对应的任务函数包含标记信息,所述第二判断模块具体用于:
当所述标记信息与预置标记信息一致时,则判断所述目标任务对应的任务函数符合所述预置拦截条件。
CN201610915147.2A 2016-10-20 2016-10-20 一种权限获取的方法以及终端设备 Active CN107967423B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610915147.2A CN107967423B (zh) 2016-10-20 2016-10-20 一种权限获取的方法以及终端设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610915147.2A CN107967423B (zh) 2016-10-20 2016-10-20 一种权限获取的方法以及终端设备

Publications (2)

Publication Number Publication Date
CN107967423A CN107967423A (zh) 2018-04-27
CN107967423B true CN107967423B (zh) 2020-12-04

Family

ID=61997234

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610915147.2A Active CN107967423B (zh) 2016-10-20 2016-10-20 一种权限获取的方法以及终端设备

Country Status (1)

Country Link
CN (1) CN107967423B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110197660A (zh) * 2019-05-10 2019-09-03 百度在线网络技术(北京)有限公司 一种系统授权的语音确认方法及系统
CN110262832A (zh) * 2019-06-20 2019-09-20 北京金山安全软件有限公司 应用程序权限判断方法、装置和电子设备

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101620536A (zh) * 2009-08-17 2010-01-06 用友软件股份有限公司 一种调用功能函数的方法和装置
CN103220662A (zh) * 2012-01-20 2013-07-24 腾讯科技(深圳)有限公司 一种应用程序的处理方法和移动终端
CN103577750A (zh) * 2013-11-15 2014-02-12 北京奇虎科技有限公司 隐私权限管理方法和装置
CN103617380A (zh) * 2013-11-28 2014-03-05 北京邮电大学 应用程序权限动态控制方法和系统
CN103905651A (zh) * 2014-04-30 2014-07-02 北京邮电大学 智能终端中应用权限管理方法及系统
CN104462889A (zh) * 2013-09-12 2015-03-25 腾讯科技(深圳)有限公司 一种应用权限管理方法及装置
CN104794374A (zh) * 2015-04-16 2015-07-22 香港中文大学深圳研究院 一种用于安卓系统的应用权限管理方法和装置
CN104809390A (zh) * 2014-01-26 2015-07-29 中兴通讯股份有限公司 系统安全运行的方法及装置
CN105100074A (zh) * 2015-07-01 2015-11-25 小米科技有限责任公司 数据操作处理方法、装置以及终端设备
CN105426754A (zh) * 2015-11-13 2016-03-23 上海斐讯数据通信技术有限公司 一种权限管理方法及系统
CN105701415A (zh) * 2016-01-04 2016-06-22 上海斐讯数据通信技术有限公司 一种移动终端内核权限管理系统及方法
CN104102880B (zh) * 2014-06-30 2016-10-05 华中科技大学 一种检测Android权限提升攻击的应用程序重写方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8621439B2 (en) * 2011-09-06 2013-12-31 Microsoft Corporation Modern application tracing

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101620536A (zh) * 2009-08-17 2010-01-06 用友软件股份有限公司 一种调用功能函数的方法和装置
CN103220662A (zh) * 2012-01-20 2013-07-24 腾讯科技(深圳)有限公司 一种应用程序的处理方法和移动终端
CN104462889A (zh) * 2013-09-12 2015-03-25 腾讯科技(深圳)有限公司 一种应用权限管理方法及装置
CN103577750A (zh) * 2013-11-15 2014-02-12 北京奇虎科技有限公司 隐私权限管理方法和装置
CN103617380A (zh) * 2013-11-28 2014-03-05 北京邮电大学 应用程序权限动态控制方法和系统
CN104809390A (zh) * 2014-01-26 2015-07-29 中兴通讯股份有限公司 系统安全运行的方法及装置
CN103905651A (zh) * 2014-04-30 2014-07-02 北京邮电大学 智能终端中应用权限管理方法及系统
CN104102880B (zh) * 2014-06-30 2016-10-05 华中科技大学 一种检测Android权限提升攻击的应用程序重写方法和系统
CN104794374A (zh) * 2015-04-16 2015-07-22 香港中文大学深圳研究院 一种用于安卓系统的应用权限管理方法和装置
CN105100074A (zh) * 2015-07-01 2015-11-25 小米科技有限责任公司 数据操作处理方法、装置以及终端设备
CN105426754A (zh) * 2015-11-13 2016-03-23 上海斐讯数据通信技术有限公司 一种权限管理方法及系统
CN105701415A (zh) * 2016-01-04 2016-06-22 上海斐讯数据通信技术有限公司 一种移动终端内核权限管理系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《基于Android平台的应用程序权限管理模型》;黄桂洲;《中国优秀硕士学位论文全文数据库(信息科技辑)》;20150115;第2015年卷(第1期);第I138-730页 *

Also Published As

Publication number Publication date
CN107967423A (zh) 2018-04-27

Similar Documents

Publication Publication Date Title
US9923902B2 (en) Remote processsing of mobile applications
Gibler et al. Androidleaks: Automatically detecting potential privacy leaks in android applications on a large scale
Jeon et al. A practical analysis of smartphone security
CN101694688B (zh) 代码签字系统及方法
RU2630553C2 (ru) Способ, инструментарий и устройство для добавления подключаемого расширения в адресную книгу
EP3396905B1 (en) Method and device for securely sending a message
CN108427649B (zh) Usb接口的接入管理方法、终端设备、系统及存储介质
US20120072991A1 (en) Methods and systems for rating privacy risk of applications for smart phones and other mobile platforms
CN108512939B (zh) 一种区块链共识方法、装置及相关设备
CN108255701B (zh) 场景测试方法及移动终端
CN106445548B (zh) 一种测试包下发方法和装置
CN101398875A (zh) 软件发行商信任扩展应用程序
CN104036194B (zh) 一种应用程序中泄露隐私数据的漏洞检测方法及装置
CN110244963B (zh) 数据更新方法、装置及终端设备
Kim et al. Digital forensic analysis of intelligent and smart IoT devices
CN107967423B (zh) 一种权限获取的方法以及终端设备
CN112671609A (zh) 一种资产普查与安全检测方法、装置及终端设备
CN109522683B (zh) 软件溯源方法、系统、计算机设备及存储介质
EP3574428B1 (en) Safe data access through any data channel
EP3136278B1 (en) Dynamically loaded code analysis device, dynamically loaded code analysis method, and dynamically loaded code analysis program
US10296737B2 (en) Security enforcement in the presence of dynamic code loading
CN107368337B (zh) 应用下载方法、装置及终端设备
CN114745185A (zh) 集群访问方法及装置
US9609080B2 (en) Systems and methods for device identity delegation for application software
CN110765426A (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
GR01 Patent grant
GR01 Patent grant