CN109033802B - 未授权安卓应用获取系统权限的实现方法与装置 - Google Patents
未授权安卓应用获取系统权限的实现方法与装置 Download PDFInfo
- Publication number
- CN109033802B CN109033802B CN201810910052.0A CN201810910052A CN109033802B CN 109033802 B CN109033802 B CN 109033802B CN 201810910052 A CN201810910052 A CN 201810910052A CN 109033802 B CN109033802 B CN 109033802B
- Authority
- CN
- China
- Prior art keywords
- service
- custom
- application
- interface
- target operating
- 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
Images
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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephone Function (AREA)
Abstract
本发明提供一种未授权安卓应用获取系统权限的实现方法与装置,该方法包括:在目标操作系统中,内置安装事先取得了目标操作系统的授权权限,并进行了平台签名的自定义应用服务;定义自定义系统服务,并在自定义系统服务中绑定自定义应用服务,以通过自定义系统服务的相应接口,返回自定义应用服务的对象;将绑定了自定义应用服务的自定义系统服务嵌入到目标操作系统中;利用未授权安卓应用,调用自定义系统服务的对象,并基于自定义系统服务的对象,返回自定义应用服务的对象,实现未授权安卓应用在目标操作系统中的授权。本发明使得未授权应用能够在特定应用场景下便捷地访问系统接口。
Description
技术领域
本发明涉及计算机技术领域,更具体地,涉及一种未授权安卓应用获取系统权限的实现方法与装置。
背景技术
通常情况下,一个安卓应用app只有在其AndroidManifest.xml文件中申请权限android:sharedUserId="android.uid.system",并且使用特定平台的签名文件进行签名后,才能获取系统权限。但是,一般安卓应用app的开发者很难获取到特定平台的签名文件。
在一种解决方案中,先开发一个授权了的自定义应用服务,该应用服务用来申请系统权限并进行平台签名。之后,再开发一个安卓应用app,该app通过调用自定义应用服务的接口,来执行一些需要系统权限才能执行的操作。
但是,上述解决方案是一种异步调用服务接口的方式,即:android app必须要先异步绑定服务对象,当onServiceConnected()回调被调用时,才能调用自定义应用服务的接口。然而,在一些特殊需求中,android app必须采取同步调用服务接口的方式,即:需绕开绑定服务的操作,直接获取到服务的对象,并同步调用服务的接口。
发明内容
为了克服上述问题或者至少部分地解决上述问题,本发明提供一种未授权安卓应用获取系统权限的实现方法与装置,以使得在特定应用场景下,未授权应用能够同步调用有系统权限的服务接口,达到便捷地访问系统接口的效果。
第一方面,本发明提供一种未授权安卓应用获取系统权限的实现方法,包括:在目标操作系统中内置安装自定义应用服务,所述自定义应用服务事先取得了所述目标操作系统的授权权限,并进行了平台签名;定义自定义系统服务,并在所述自定义系统服务中绑定所述自定义应用服务,以通过所述自定义系统服务的相应接口,返回所述自定义应用服务的对象;将绑定了所述自定义应用服务的自定义系统服务嵌入到所述目标操作系统中;利用所述未授权安卓应用,调用所述自定义系统服务的对象,并基于所述自定义系统服务的对象,返回所述自定义应用服务的对象,实现所述未授权安卓应用在所述目标操作系统中的授权。
其中,所述在目标操作系统中内置安装自定义应用服务的步骤进一步包括:定义所述自定义应用服务的接口,并对所述自定义应用服务进行所述接口的实现;在所述自定义应用服务的配置文件中,添加所述目标操作系统的系统级权限,并对所述自定义应用服务进行所述目标操作系统的平台签名;将经过接口实现并进行权限添加和平台签名的自定义应用服务内置安装到所述目标操作系统中。
其中,所述定义自定义系统服务的步骤进一步包括:定义自定义系统服务的接口,并通过定义自定义系统服务的构造函数,实现所述接口,完成所述自定义系统服务的定义。
其中,所述在所述自定义系统服务中绑定所述自定义应用服务的步骤进一步包括:在所述自定义系统服务的构造函数RoutonManagerService()中绑定所述自定义应用服务,并定义通过接口getISettingsServBinder()返回所述自定义应用服务的对象的业务逻辑。
其中,所述将绑定了所述自定义应用服务的自定义系统服务嵌入到所述目标操作系统中的步骤进一步包括:在所述目标操作系统中,定义获取系统服务接口getSystemService,并定义系统服务管理器RoutonManager;在ContextImpl.java中创建自定义系统服务管理器RoutonService,用于管理所述自定义系统服务;将所述自定义系统服务管理器RoutonService管理的所述自定义系统服务,加入所述系统服务管理器RoutonManager,实现所述自定义系统服务的嵌入安装。
其中,所述利用所述未授权安卓应用,调用所述自定义系统服务的对象,并基于所述自定义系统服务的对象,返回所述自定义应用服务的对象,实现所述未授权安卓应用在所述目标操作系统中的授权的步骤进一步包括:利用所述未授权安卓应用,通过访问所述自定义系统服务的接口,获取所述自定义系统服务的对象;基于所述自定义系统服务的对象,利用接口getISettingsServBinder(),获取所述自定义应用服务的对象;基于所述自定义应用服务的对象,通过调用所述自定义系统服务的接口,实现对所述目标操作系统的接口的访问。
第二方面,本发明提供一种未授权安卓应用获取系统权限的实现装置,包括:第一定义模块,用于在目标操作系统中内置安装自定义应用服务,所述自定义应用服务事先取得了所述目标操作系统的授权权限,并进行了平台签名;第二定义模块,用于定义自定义系统服务,并在所述自定义系统服务中绑定所述自定义应用服务,以通过所述自定义系统服务的相应接口,返回所述自定义应用服务的对象;绑定模块,用于将绑定了所述自定义应用服务的自定义系统服务嵌入到所述目标操作系统中;授权实现模块,用于利用所述未授权安卓应用,调用所述自定义系统服务的对象,并基于所述自定义系统服务的对象,返回所述自定义应用服务的对象,实现所述未授权安卓应用在所述目标操作系统中的授权。
第三方面,本发明提供一种电子设备,包括:至少一个处理器,以及至少一个与所述处理器通信连接的存储器;所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上所述的未授权安卓应用获取系统权限的实现方法。
第四方面,本发明提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如上所述的未授权安卓应用获取系统权限的实现方法。
本发明提供的一种未授权安卓应用获取系统权限的实现方法与装置,通过事先定义具有权限的自定义应用服务和自定义系统服务,并将二者进行绑定,使得在特定应用场景下,未授权应用能够同步调用有系统权限的服务接口,达到便捷地访问系统接口的效果。
附图说明
图1为本发明实施例一种未授权安卓应用获取系统权限的实现方法的流程图;
图2为本发明实施例一种未授权安卓应用获取系统权限的实现方法的流程图;
图3为本发明实施例一种未授权安卓应用获取系统权限的实现装置的结构示意图;
图4为本发明实施例一种电子设备的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
在实际应用中,在未授权应用获取操作系统权限的过程中,需要对未授权应用单独进行平台签名,或者采用异步调用服务接口的形式,实现未授权应用的授权。但无论是哪一种方式,未授权应用在调用系统服务时,都需要多步操作,不能实现便捷的系统接口访问,效率低,用户体验不好。
针对现有技术存在的上述问题,本发明实施例提出一种未授权安卓应用获取系统权限的实现思路,即:首先,在系统中内置安装一个授权了的自定义应用服务。其次,在定制开发的android操作系统框架中嵌入一个自定义系统服务,系统启动时会自动启动这个自定义系统服务。然后,再由这个自定义系统服务来绑定和获得自定义应用服务对象。最后,在未授权的android app中,先获取自定义系统服务对象,再通过自定义系统服务对象获取自定义应用服务对象,就可以自由调用自定义应用服务的接口,来访问有系统权限的系统接口了。
如此,android app开发者无需向android设备厂商索要平台签名文件,也无需添加android.uid.system权限,即可实现安卓应用的授权。并且,android app开发者可以同步调用有系统权限的服务接口,达到便捷地访问系统接口的目的。
作为本发明实施例的一个方面,本实施例提供一种未授权安卓应用获取系统权限的实现方法,参考图1,为本发明实施例一种未授权安卓应用获取系统权限的实现方法的流程图,包括:
S101,在目标操作系统中内置安装自定义应用服务,自定义应用服务事先取得了目标操作系统的授权权限,并进行了平台签名。
可以理解为,为了使未授权安卓应用能够顺利得到目标操作系统的授权,可以通过事先在目标操作系统中内置一个授权了的自定义应用服务来实现。
具体而言,事先要定义一个自定义应用服务,并在该自定义应用服务中添加目标操作系统的权限,同时需要利用特定平台的签名文件进行自定义应用服务apk的平台签名。之后将添加了权限并进行平台签名的自定义应用服务内置安装到目标操作系统中。
S102,定义自定义系统服务,并在自定义系统服务中绑定自定义应用服务,以通过自定义系统服务的相应接口,返回自定义应用服务的对象。
可以理解为,在上述步骤的基础上,还需要定义一个自定义系统服务,才能实现未授权应用对目标操作系统中接口的调用。例如在定制开发的android操作系统框架中嵌入一个自定义系统服务,在启动系统时会自动启动这个自定义系统服务。
因此,本步骤中首先根据定制开发的目标操作系统框架,定义一个自定义系统服务,并在该自定义系统服务中绑定根据上述步骤定义的自定义应用服务。同时,需定义自定义系统服务的相关接口,如构造函数RoutonManagerService()以及数据返回接口getISettingsServBinder()等,以使未授权安卓应用在获取目标操作系统权限过程中,能够利用相应的接口,返回自定义应用服务的对象。
S103,将绑定了自定义应用服务的自定义系统服务嵌入到目标操作系统中。
可以理解为,在根据上述步骤定义了自定义应用服务和自定义系统服务,并将二者进行绑定后,需要将其嵌入到目标操作系统中,并在目标操作系统运行时能自动启动这个自定义系统服务,才能实现未授权应用对目标操作系统中接口的调用。因此在进行上述定义和绑定后,通过自定义系统服务管理器等方式,将绑定了自定义应用服务的自定义系统服务嵌入到目标操作系统中。
S104,利用未授权安卓应用,调用自定义系统服务的对象,并基于自定义系统服务的对象,返回自定义应用服务的对象,实现未授权安卓应用在目标操作系统中的授权。
可以理解为,在上述步骤处理的基础上,在未授权的android app中,先通过自定义系统服务获取自定义系统服务对象,再通过自定义系统服务对象获取自定义应用服务对象,就可以自由调用自定义应用服务的接口,并访问有系统权限的系统接口。
本发明实施例提供的一种未授权安卓应用获取系统权限的实现方法,通过事先定义具有权限的自定义应用服务和自定义系统服务,并将二者进行绑定,使得在特定应用场景下,未授权应用能够同步调用有系统权限的服务接口,达到便捷地访问系统接口的效果。
其中,根据上述实施例可选的,在目标操作系统中内置安装自定义应用服务的步骤进一步包括:
定义自定义应用服务的接口,并对自定义应用服务进行接口的实现;
在自定义应用服务的配置文件AndroidManifest.xml中,添加目标操作系统的系统级权限android.uid.system,并对自定义应用服务进行目标操作系统的平台签名;
将经过接口实现并进行权限添加和平台签名的自定义应用服务内置安装到目标操作系统中。
可以理解为,在根据上述实施例进行自定义应用服务的定义时,以安卓操作系统为例,对自定义应用服务的定义步骤进行说明如下:
首先,定义自定义应用服务com.android.server.routon的接口;
例如,实现代码为
其次,实现自定义应用服务的接口;
再次,在自定义应用服务的AndroidManifest.xml中添加android.uid.system权限;
然后,对自定义应用服务apk进行平台签名;
最后,将这个自定义应用服务RoutonSettingsServ_signed.apk内置安装在操作系统中。
其中,根据上述实施例可选的,定义自定义系统服务的步骤进一步包括:定义自定义系统服务的接口,并通过定义自定义系统服务的构造函数,实现接口,完成自定义系统服务的定义。
可以理解为,在进行自定义系统服务的定义时,首先新建定义文件,定义自定义系统服务的接口IRoutonManager。然后,通过定义自定义系统服务RoutonManagerService,实现上述定义的IRoutonManager接口。完成定义和接口实现之后,便完成了自定义系统服务的定义。
其中,根据上述实施例可选的,在自定义系统服务中绑定自定义应用服务的步骤进一步包括:在自定义系统服务的构造函数RoutonManagerService()中绑定自定义应用服务,并定义通过接口getISettingsServBinder()返回自定义应用服务的对象的业务逻辑。
可以理解为,在进行自定义系统服务的定义时,同时定义了自定义系统服务的构造函数RoutonManagerService()以及返回接口getISettingsServBinder()。在进行自定义系统服务中自定义应用服务的绑定时,新建文件,在定义系统服务的构造函数RoutonManagerService()中绑定自定义应用服务;并定义通过接口getISettingsServBinder()返回自定义应用服务的对象的业务逻辑,以使在进行未授权应用的授权时,能够使未授权文件通过接口getISettingsServBinder()返回自定义应用服务的对象。
其中,根据上述实施例可选的,将绑定了自定义应用服务的自定义系统服务嵌入到目标操作系统中的步骤进一步包括:
在目标操作系统中,定义获取系统服务接口getSystemService,并定义系统服务管理器RoutonManager;
在ContextImpl.java中创建自定义系统服务管理器RoutonService,用于管理自定义系统服务;
将自定义系统服务管理器RoutonService管理的自定义系统服务,加入系统服务管理器RoutonManager,实现自定义系统服务的嵌入安装。
可以理解为,本实施例实现在目标操作系统框架中嵌入自定义系统服务。具体而言,对于安卓操作系统框架,首先定义类自定义服务管理器类RoutonManager,然后在系统服务嵌入自定义系统服务。具体而言,为了让应用层可以使用getSystemService接口获得服务,在ContextImpl.java中创建自定义系统服务管理器RoutonService;之后将这个服务自定义系统服务RoutonManagerService加入到系统的服务管理器ServiceManager中,实现自定义系统服务到目标操作系统的嵌入。
其中,根据上述实施例可选的,利用未授权安卓应用,调用自定义系统服务的对象,并基于自定义系统服务的对象,返回自定义应用服务的对象,实现未授权安卓应用在目标操作系统中的授权的步骤进一步包括:
利用未授权安卓应用,通过访问自定义系统服务的接口,获取自定义系统服务的对象;
基于自定义系统服务的对象,利用接口getISettingsServBinder(),获取自定义应用服务的对象;
基于自定义应用服务的对象,通过调用自定义系统服务的接口,实现对目标操作系统的接口的访问。
可以理解为,在上述实施例的基础上,要实现未授权安卓应用在目标操作系统中的授权,并进而调用目标操作系统的相关接口,需要未授权的android app调用自定义应用服务对象的接口。
具体而言,根据上述实施例,在未授权的android app获得名称为ROUTON_SERVICE的自定义系统服务对象;再通过自定义系统服务对象获得自定义应用服务对象;之后即可随意调用服务的接口,执行一些需要系统权限才能进行的操作。
为进一步说明本发明的技术方案,以安卓操作系统框架为例,进行如下详细的说明,但不对本发明的保护范围进行限制。
如图2所示,为本发明实施例一种未授权安卓应用获取系统权限的实现方法的流程图,图中,自下而上:
设计了一个自定义应用服务RoutonSettingsServ,该服务拥有系统权限,并且需要平台签名。这个服务实现了服务接口IRoutonSettingsService。
设计了一个自定义系统服务RoutonManagerService,该服务实现接口IRoutonManager。在服务中,绑定自定义应用服务接口IRoutonSettingsService,获得自定义应用服务的对象。
还设计了一个自定义系统服务RoutonManager,该服务是对应用层开放的IRoutonManager接口的管理类。
最后设计了一个供应用程序调用的系统接口包iDRDeviceManager。在该接口包中,先获得自定义系统服务,再获得自定义应用服务。
作为本发明实施例的另一个方面,本发明实施例根据上述实施例提供一种未授权安卓应用获取系统权限的实现装置,该装置用于在上述各实施例中实现对未授权安卓应用获取系统权限的实现。因此,在上述各实施例的未授权安卓应用获取系统权限的实现方法中的描述和定义,可以用于本发明实施例中各个执行模块的理解,具体可参考上述实施例,此处不在赘述。
根据本发明实施例的一个实施例,未授权安卓应用获取系统权限的实现装置的结构如图3所示,为本发明实施例一种未授权安卓应用获取系统权限的实现装置的结构示意图,包括:第一定义模块301、第二定义模块302、绑定模块303和授权实现模块304。
其中,第一定义模块301用于在目标操作系统中内置安装自定义应用服务,自定义应用服务事先取得了目标操作系统的授权权限,并进行了平台签名;第二定义模块302用于定义自定义系统服务,并在自定义系统服务中绑定自定义应用服务,以通过自定义系统服务的相应接口,返回自定义应用服务的对象;绑定模块303用于将绑定了自定义应用服务的自定义系统服务嵌入到目标操作系统中;授权实现模块304用于利用未授权安卓应用,调用自定义系统服务的对象,并基于自定义系统服务的对象,返回自定义应用服务的对象,实现未授权安卓应用在目标操作系统中的授权。
其中可选的,第一定义模块具体用于:定义自定义应用服务的接口,并对自定义应用服务进行接口的实现;在自定义应用服务的配置文件AndroidManifest.xml中,添加目标操作系统的系统级权限android.uid.system,并对自定义应用服务进行目标操作系统的平台签名;将经过接口实现并进行权限添加和平台签名的自定义应用服务内置安装到目标操作系统中。
其中可选的,第二定义模块具体用于:定义自定义系统服务的接口,并通过定义自定义系统服务的构造函数,实现接口,完成自定义系统服务的定义。
其中可选的,第二定义模块具体用于:在自定义系统服务的构造函数RoutonManagerService()中绑定自定义应用服务,并定义通过接口getISettingsServBinder()返回自定义应用服务的对象的业务逻辑。
其中可选的,绑定模块具体用于:在目标操作系统中,定义获取系统服务接口getSystemService,并定义系统服务管理器RoutonManager;在ContextImpl.java中创建自定义系统服务管理器RoutonService,用于管理自定义系统服务;将自定义系统服务管理器RoutonService管理的自定义系统服务,加入系统服务管理器RoutonManager,实现自定义系统服务的嵌入安装。
其中可选的,授权实现模块具体用于:利用未授权安卓应用,通过访问自定义系统服务的接口,获取自定义系统服务的对象;基于自定义系统服务的对象,利用接口getISettingsServBinder(),获取自定义应用服务的对象;基于自定义应用服务的对象,通过调用自定义系统服务的接口,实现对目标操作系统的接口的访问。
可以理解的是,本发明实施例中可以通过硬件处理器(hardware processor)来实现上述各实施例的装置中的各相关功能模块。并且,本发明实施例各未授权安卓应用获取系统权限的实现装置产生的有益效果与对应的上述各方法实施例相同,可以参考上述各方法实施例,此处不再赘述。
作为本发明实施例的又一个方面,本实施例根据上述实施例提供一种电子设备,参考图4,为本发明实施例一种电子设备的结构框图,包括:至少一个处理器401,以及至少一个与处理器401通信连接的存储器402。其中,存储器402中存储有可在处理器401上运行的计算机程序,处理器401执行该计算机程序时,实现如上述实施例的未授权安卓应用获取系统权限的实现方法。
可以理解为,该电子设备中至少包含一个处理器401和一个存储器402,且处理器401和存储器402之间形成通信连接,可以进行相互间信息和指令的传输,如处理器401从存储器402中读取未授权安卓应用获取系统权限的实现方法的程序指令等。
电子设备运行时,处理器401调用存储器402中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:定义自定义系统服务,并在所述自定义系统服务中绑定所述自定义应用服务,以通过所述自定义系统服务的相应接口,返回所述自定义应用服务的对象;以及在所述自定义系统服务的构造函数RoutonManagerService()中绑定所述自定义应用服务,并定义通过接口getISettingsServBinder()返回所述自定义应用服务的对象的业务逻辑等。
本发明再一个实施例中,提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令使计算机执行如上述实施例的未授权安卓应用获取系统权限的实现方法。
可以理解为,上述的计算机指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。或者,实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例提供的一种电子设备和一种非暂态计算机可读存储介质,通过事先定义具有权限的自定义应用服务和自定义系统服务,并将二者进行绑定,使得在特定应用场景下,未授权应用能够同步调用有系统权限的服务接口,达到便捷地访问系统接口的效果。
可以理解的是,以上所描述的装置、电子设备及存储介质的实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,既可以位于一个地方,或者也可以分布到不同网络单元上。可以根据实际需要选择其中的部分或全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上实施方式的描述,本领域的技术人员可以清楚地了解,各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令,用以使得一台计算机设备(如个人计算机,服务器,或者网络设备等)执行上述各方法实施例或者方法实施例的某些部分所述的方法。
另外,本领域内的技术人员应当理解的是,在本发明的申请文件中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明的说明书中,说明了大量具体细节。然而应当理解的是,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。
然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种未授权安卓应用获取系统权限的实现方法,其特征在于,包括:
在目标操作系统中内置安装自定义应用服务,所述自定义应用服务事先取得了所述目标操作系统的授权权限,并进行了平台签名;
定义自定义系统服务,并在所述自定义系统服务中绑定所述自定义应用服务,以通过所述自定义系统服务的相应接口,返回所述自定义应用服务的对象;
将绑定了所述自定义应用服务的自定义系统服务嵌入到所述目标操作系统中;
利用所述未授权安卓应用,调用所述自定义系统服务的对象,并基于所述自定义系统服务的对象,返回所述自定义应用服务的对象,实现所述未授权安卓应用在所述目标操作系统中的授权。
2.根据权利要求1所述的方法,其特征在于,所述在目标操作系统中内置安装自定义应用服务的步骤进一步包括:
定义所述自定义应用服务的接口,并对所述自定义应用服务进行所述接口的实现;
在所述自定义应用服务的配置文件中,添加所述目标操作系统的系统级权限,并对所述自定义应用服务进行所述目标操作系统的平台签名;
将经过接口实现并进行权限添加和平台签名的自定义应用服务内置安装到所述目标操作系统中。
3.根据权利要求1所述的方法,其特征在于,所述定义自定义系统服务的步骤进一步包括:
定义自定义系统服务的接口,并通过定义自定义系统服务的构造函数,实现所述接口,完成所述自定义系统服务的定义。
4.根据权利要求3所述的方法,其特征在于,所述在所述自定义系统服务中绑定所述自定义应用服务的步骤进一步包括:
在所述自定义系统服务的构造函数RoutonManagerService()中绑定所述自定义应用服务,并定义通过接口getISettingsServBinder()返回所述自定义应用服务的对象的业务逻辑。
5.根据权利要求1所述的方法,其特征在于,所述将绑定了所述自定义应用服务的自定义系统服务嵌入到所述目标操作系统中的步骤进一步包括:
在所述目标操作系统中,定义获取系统服务接口getSystemService,并定义系统服务管理器RoutonManager;
在ContextImpl.java中创建自定义系统服务管理器RoutonService,用于管理所述自定义系统服务;
将所述自定义系统服务管理器RoutonService管理的所述自定义系统服务,加入所述系统服务管理器RoutonManager,实现所述自定义系统服务的嵌入安装。
6.根据权利要求4所述的方法,其特征在于,所述利用所述未授权安卓应用,调用所述自定义系统服务的对象,并基于所述自定义系统服务的对象,返回所述自定义应用服务的对象,实现所述未授权安卓应用在所述目标操作系统中的授权的步骤进一步包括:
利用所述未授权安卓应用,通过访问所述自定义系统服务的接口,获取所述自定义系统服务的对象;
基于所述自定义系统服务的对象,利用接口getISettingsServBinder(),获取所述自定义应用服务的对象;
基于所述自定义应用服务的对象,通过调用所述自定义系统服务的接口,实现对所述目标操作系统的接口的访问。
7.一种未授权安卓应用获取系统权限的实现装置,其特征在于,包括:
第一定义模块,用于在目标操作系统中内置安装自定义应用服务,所述自定义应用服务事先取得了所述目标操作系统的授权权限,并进行了平台签名;
第二定义模块,用于定义自定义系统服务,并在所述自定义系统服务中绑定所述自定义应用服务,以通过所述自定义系统服务的相应接口,返回所述自定义应用服务的对象;
绑定模块,用于将绑定了所述自定义应用服务的自定义系统服务嵌入到所述目标操作系统中;
授权实现模块,用于利用所述未授权安卓应用,调用所述自定义系统服务的对象,并基于所述自定义系统服务的对象,返回所述自定义应用服务的对象,实现所述未授权安卓应用在所述目标操作系统中的授权。
8.一种电子设备,其特征在于,包括:至少一个处理器,以及至少一个与所述处理器通信连接的存储器;
所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1至6中任一所述的方法。
9.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至6中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810910052.0A CN109033802B (zh) | 2018-08-10 | 2018-08-10 | 未授权安卓应用获取系统权限的实现方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810910052.0A CN109033802B (zh) | 2018-08-10 | 2018-08-10 | 未授权安卓应用获取系统权限的实现方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109033802A CN109033802A (zh) | 2018-12-18 |
CN109033802B true CN109033802B (zh) | 2020-08-28 |
Family
ID=64632731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810910052.0A Active CN109033802B (zh) | 2018-08-10 | 2018-08-10 | 未授权安卓应用获取系统权限的实现方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109033802B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110941812B (zh) * | 2019-10-23 | 2022-07-12 | 天津智融创新科技发展有限公司 | 一种特权功能调用方法和系统 |
CN115002548A (zh) * | 2022-05-19 | 2022-09-02 | 深圳前海茂佳软件科技有限公司 | 电视平台应用接口调用方法、装置、终端设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103646218A (zh) * | 2013-12-12 | 2014-03-19 | 用友软件股份有限公司 | 数据访问权限和行为权限的定义装置和定义方法 |
CN106355084A (zh) * | 2016-08-31 | 2017-01-25 | 上海斐讯数据通信技术有限公司 | 基于回调机制的安卓组权限管理方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10601787B2 (en) * | 2016-06-06 | 2020-03-24 | Cisco Technology, Inc. | Root of trust of geolocation |
-
2018
- 2018-08-10 CN CN201810910052.0A patent/CN109033802B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103646218A (zh) * | 2013-12-12 | 2014-03-19 | 用友软件股份有限公司 | 数据访问权限和行为权限的定义装置和定义方法 |
CN106355084A (zh) * | 2016-08-31 | 2017-01-25 | 上海斐讯数据通信技术有限公司 | 基于回调机制的安卓组权限管理方法及系统 |
Non-Patent Citations (2)
Title |
---|
Automatic detection of inter-application permission leaks in Android applications;D. Sbîrlea 等;《IBM Journal of Research and Development》;20131114;第57卷(第6期);全文 * |
基于安卓系统的APP开发技术研究;衷文;《中国新通信》;20171013;第19卷(第14期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109033802A (zh) | 2018-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10255054B2 (en) | Enforcing security policies for software containers | |
US11340893B2 (en) | Mobile application update preserving changes to the application made by a client | |
CN101960446B (zh) | 基于安全浏览器的应用 | |
US9443101B2 (en) | Low-cost specification and enforcement of a privacy-by-consent-policy for online services | |
US10447814B2 (en) | Joint servicing of software packages | |
Singh | An overview of android operating system and its security | |
CN106990960B (zh) | 代码部署方法及装置 | |
JP6074516B2 (ja) | アドレス帳にプラグインを追加する方法、装置、設備、プログラム及び記録媒体 | |
US10594800B2 (en) | Platform runtime abstraction | |
CN106471466A (zh) | 短暂应用 | |
CN110839014B (zh) | 一种认证方法、装置、计算机设备及可读存储介质 | |
CN104268463A (zh) | 一种摄像头调用权限管理方法和设备 | |
US8959485B2 (en) | Security protection domain-based testing framework | |
CN111181975A (zh) | 一种账号管理方法、装置、设备及存储介质 | |
CN109033802B (zh) | 未授权安卓应用获取系统权限的实现方法与装置 | |
CN115374481B (zh) | 数据脱敏处理的方法、装置、存储介质及电子设备 | |
Do et al. | Enforcing file system permissions on android external storage: Android file system permissions (afp) prototype and owncloud | |
US10162619B1 (en) | Fleet-wide management of software packages | |
WO2017016231A1 (zh) | 一种策略管理方法、系统及计算机存储介质 | |
CN110990798A (zh) | 应用程序权限配置方法、装置、电子设备及存储介质 | |
CN107621946B (zh) | 一种软件开发方法、装置及系统 | |
US11829777B2 (en) | Microservice deployment | |
CN107392010B (zh) | 执行Root操作的方法及装置、终端设备、存储介质 | |
WO2023016151A1 (zh) | Linux系统安全应用的软件框架及创建方法 | |
CN108804236B (zh) | 一种aidl文件的共享方法及系统 |
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 |