CN108664293B - 安卓系统中的应用控制方法和装置 - Google Patents

安卓系统中的应用控制方法和装置 Download PDF

Info

Publication number
CN108664293B
CN108664293B CN201810468580.5A CN201810468580A CN108664293B CN 108664293 B CN108664293 B CN 108664293B CN 201810468580 A CN201810468580 A CN 201810468580A CN 108664293 B CN108664293 B CN 108664293B
Authority
CN
China
Prior art keywords
target
application
function
dalvik
android system
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
CN201810468580.5A
Other languages
English (en)
Other versions
CN108664293A (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.)
Beijing Anyun Century Technology Co Ltd
Original Assignee
Beijing Anyun Century Technology 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 Beijing Anyun Century Technology Co Ltd filed Critical Beijing Anyun Century Technology Co Ltd
Priority to CN201810468580.5A priority Critical patent/CN108664293B/zh
Publication of CN108664293A publication Critical patent/CN108664293A/zh
Application granted granted Critical
Publication of CN108664293B publication Critical patent/CN108664293B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了安卓系统中的应用控制方法和装置。所述方法包括:确定待控制的目标功能;根据所述目标功能无效化一个或多个目标方法,使所述安卓系统中的应用在调用目标方法时跳过该目标方法的执行。该技术方案的有益效果在于从系统层级进行方案设计,可以适用于系统中的几乎所有应用,并且在方法无效化设计上,还使得原应用的代码逻辑不中断,继续执行后续方法,保证了应用自身的稳定性,并且该技术方案消耗的资源并不高,在需要对多个应用进行功能控制时,不需要针对每个应用都单独执行控制操作,效率也更高。

Description

安卓系统中的应用控制方法和装置
技术领域
本发明涉及计算机技术领域,具体涉及安卓系统中的应用控制方法和装置。
背景技术
由于安卓系统的权限管理较为宽松,许多安卓应用要求用户在使用时向其开放各类权限,甚至出现诸如计算器应用需要摄像头权限等情况。许多优化应用虽然能针对某些应用进行功能控制,限制其使用某些功能,例如禁止频繁输出不必要的日志,但是具体实现都需要针对特定应用进行设计,并不适用于海量应用的大场景。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的安卓系统中的应用控制方法和装置。
依据本发明的一个方面,提供了一种安卓系统中的应用控制方法,包括:
确定待控制的目标功能;
根据所述目标功能无效化一个或多个目标方法,使所述安卓系统中的应用在调用目标方法时跳过该目标方法的执行。
可选地,所述确定的待控制的目标功能包括:
加载与目标功能对应的控制插件到安卓虚拟机Dalvik中。
可选地,所述根据所述目标功能无效化一个或多个目标方法包括:
根据所述控制插件中记载的一个或多个方法,在Dalvik中对相应的方法进行无效化处理。
可选地,所述在Dalvik中对相应的方法进行无效化处理包括:
修改相应方法在Dalvik中的Method结构体以实现方法无效化。
可选地,使所述安卓系统中的应用在调用目标方法时跳过该目标方法的执行包括:
接收所述应用对第一方法的调用请求;
判断所述第一方法是否为目标方法;
是则获取所述应用在第一方法后调用的第二方法,直接执行所述第二方法。
可选地,所述目标功能为日志功能;
所述目标方法包括:打印全部信息,打印调试信息,打印一般信息。
依据本发明的另一方面,提供了一种安卓系统中的应用控制装置,包括:
功能控制单元,适于确定待控制的目标功能;
应用控制单元,适于根据所述目标功能无效化一个或多个目标方法,使所述安卓系统中的应用在调用目标方法时跳过该目标方法的执行。
可选地,所述功能控制单元,适于加载与目标功能对应的控制插件到安卓虚拟机Dalvik中。
可选地,所述应用控制单元,适于根据所述控制插件中记载的一个或多个方法,在Dalvik中对相应的方法进行无效化处理。
可选地,所述应用控制单元,适于修改相应方法在Dalvik中的Method结构体以实现方法无效化。
可选地,所述应用控制单元,适于接收所述应用对第一方法的调用请求,判断所述第一方法是否为目标方法,是则获取所述应用在第一方法后调用的第二方法,直接执行所述第二方法。
可选地,所述目标功能为日志功能;
所述目标方法包括:打印全部信息,打印调试信息,打印一般信息。
依据本发明的又一方面,提供了一种智能终端,其中,该智能终端包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行根据上述任一项所述的方法。
依据本发明的再一方面,提供了一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现如上述任一项所述的方法。
由上述可知,本发明的技术方案,在安卓系统层级进行设计,确定了待控制的目标功能后直接将相应的目标方法无效化,这样应用要实现目标功能时,并不能执行相应的目标方法,也就实现了对应用的功能控制。该技术方案的有益效果在于从系统层级进行方案设计,可以适用于系统中的几乎所有应用,并且在方法无效化设计上,还使得原应用的代码逻辑不中断,继续执行后续方法,保证了应用自身的稳定性,并且该技术方案消耗的资源并不高,在需要对多个应用进行功能控制时,不需要针对每个应用都单独执行控制操作,效率也更高。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种安卓系统中的应用控制方法的流程示意图;
图2示出了根据本发明一个实施例的一种安卓系统中的应用控制装置的结构示意图;
图3示出了根据本发明一个实施例的智能终端的结构示意图;
图4示出了根据本发明一个实施例的计算机可读存储介质的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的一种安卓系统中的应用控制方法的流程示意图。如图1所示,该方法包括:
步骤S110,确定待控制的目标功能。
这里的功能可以是应用需要调用系统方法实现的功能,例如日志功能等等。
步骤S120,根据目标功能无效化一个或多个目标方法,使安卓系统中的应用在调用目标方法时跳过该目标方法的执行。
在实现一个功能时往往依赖于多个方法的执行,在具体实施时,未必需要将与该功能相关的所有方法无效化,可以仅对其中的一部分方法实施无效化处理。
当然,以日志服务为例,打印的日志要通过日志服务进行输出,在日志服务处设置过滤规则,也可以实现控制应用减少日志打印,但是需要注意的是,这样即使没有打印出较多日志,但是在打印的日志输出前,打印日志的方法还是被执行了,这无疑没有从根本上解决问题,而对方法进行无效化则是克服了这一点。
可见,图1所示的方法,在安卓系统层级进行设计,确定了待控制的目标功能后直接将相应的目标方法无效化,这样应用要实现目标功能时,并不能执行相应的目标方法,也就实现了对应用的功能控制。该技术方案的有益效果在于从系统层级进行方案设计,可以适用于系统中的几乎所有应用,并且在方法无效化设计上,还使得原应用的代码逻辑不中断,继续执行后续方法,保证了应用自身的稳定性,并且该技术方案消耗的资源并不高,在需要对多个应用进行功能控制时,不需要针对每个应用都单独执行控制操作,效率也更高。
在本发明的一个实施例中,上述方法中,确定的待控制的目标功能包括:加载与目标功能对应的控制插件到安卓虚拟机Dalvik中。
在本实施例中,可以与各个系统功能设置对应的控制插件,这些插件可以预置在安卓系统中,也可以由服务器下发或更新。安卓虚拟机Dalvik是应用运行所离不开的,简单地说,可以认为应用需要在Dalvik上运行,当应用需要执行系统方法时,通常是向相应的服务发送请求,由服务进行方法的执行,当然,这都需要Dalvik的支持。其中的服务起到了类似中间人的作用。
也正是因为应用都需要在Dalvik中对方法进行调用,Dalvik中实际保存了各类方法以供调用。因此在本发明的一个实施例中,上述方法中,根据目标功能无效化一个或多个目标方法包括:根据控制插件中记载的一个或多个方法,在Dalvik中对相应的方法进行无效化处理。
这样,根据控制插件中记载的方法,在Dalvik中匹配确定相应的方法,对其进行无效化处理即可,更具体来说,方法可以包括JAVA方法,通过JNI函数实现的native方法和虚拟机内部实现的native方法。
在Dalvik中,方法以Method结构体的形式被存储,基于此,给出了一种实现方法无效化的示例:即在本发明的一个实施例中,上述方法中,在Dalvik中对相应的方法进行无效化处理包括:修改相应方法在Dalvik中的Method结构体以实现方法无效化。
在本发明的一个实施例中,上述方法中,使安卓系统中的应用在调用目标方法时跳过该目标方法的执行包括:接收应用对第一方法的调用请求;判断第一方法是否为目标方法;是则获取应用在第一方法后调用的第二方法,直接执行第二方法。
安卓应用的代码中通常包括多个方法,这些方法有着相应的执行顺序,是由开发者确定的。因此作为系统而言,其并不能预知应用会调用哪些方法,只能在接收到应用的方法调用请求后,判断其是否为被无效了的方法。虽然这里看似需要进行数量庞大的操作,但实际上只需要CPU执行一条或几条指令即可实现,效率非常高,资源消耗非常少。可以说从总体上而言,还是远优于对应用中的功能单独进行hook(钩子)操作,实现功能控制的。
在本发明的实施例中,实现了在应用执行目标方法时,由于对目标方法预先进行了无效化,使得Dalvik不执行相应方法,继续执行应用在该方法后调用的后续方法,这一流程也类似于hook,但是需要注意的是,这是对虚拟机进行的hook,与对应用进行hook有着本质不同。
在本发明的一个实施例中,上述方法中,目标功能为日志功能;目标方法包括:打印全部信息,打印调试信息,打印一般信息。
在本实施例中以日志功能作为示例,给出了对应用进行功能控制的示例。实际上日志功能除了上述打印全部信息(vervbose)、打印调试信息(debug)、打印一般信息(information)的方法以外,还有显示警告信息(warning)和显示错误信息(error),而通常只有警告信息和错误信息才是开发者所迫切需要的,其他日志信息很可能就是应用运营方为了自身利益,无视用户隐私而恶意获取的。因此如果用户希望保护自己的隐私,可以在系统中开启功能控制,例如加载相应的控制插件,就能避免不必要的日志输出。即便是不考虑隐私泄露,据统计,一个用户在智能终端中安装了数量在平均水平的应用后,如果没有专门对日志功能进行控制,在锁屏后的10分钟内,打印的日志可能让达到4万条之多,这对电量的损耗也是非常大的。因此减少不必要的日志打印。
图2示出了根据本发明一个实施例的一种安卓系统中的应用控制装置的结构示意图。如图2所示,安卓系统中的应用控制装置200包括:
功能控制单元210,适于确定待控制的目标功能。
这里的功能可以是应用需要调用系统方法实现的功能,例如日志功能等等。
应用控制单元220,适于根据目标功能无效化一个或多个目标方法,使安卓系统中的应用在调用目标方法时跳过该目标方法的执行。
在实现一个功能时往往依赖于多个方法的执行,在具体实施时,未必需要将与该功能相关的所有方法无效化,可以仅对其中的一部分方法实施无效化处理。
当然,以日志服务为例,打印的日志要通过日志服务进行输出,在日志服务处设置过滤规则,也可以实现控制应用减少日志打印,但是需要注意的是,这样即使没有打印出较多日志,但是在打印的日志输出前,打印日志的方法还是被执行了,这无疑没有从根本上解决问题,而对方法进行无效化则是克服了这一点。可见,图2所示的装置,通过各单元的相互配合,在安卓系统层级进行设计,确定了待控制的目标功能后直接将相应的目标方法无效化,这样应用要实现目标功能时,并不能执行相应的目标方法,也就实现了对应用的功能控制。该技术方案的有益效果在于从系统层级进行方案设计,可以适用于系统中的几乎所有应用,并且在方法无效化设计上,还使得原应用的代码逻辑不中断,继续执行后续方法,保证了应用自身的稳定性,并且该技术方案消耗的资源并不高,在需要对多个应用进行功能控制时,不需要针对每个应用都单独执行控制操作,效率也更高。
在本发明的一个实施例中,上述装置中,功能控制单元210,适于加载与目标功能对应的控制插件到安卓虚拟机Dalvik中。
在本实施例中,可以与各个系统功能设置对应的控制插件,这些插件可以预置在安卓系统中,也可以由服务器下发或更新。安卓虚拟机Dalvik是应用运行所离不开的,简单地说,可以认为应用需要在Dalvik上运行,当应用需要执行系统方法时,通常是向相应的服务发送请求,由服务进行方法的执行,当然,这都需要Dalvik的支持。其中的服务起到了类似中间人的作用。
也正是因为应用都需要在Dalvik中对方法进行调用,Dalvik中实际保存了各类方法以供调用。在本发明的一个实施例中,上述装置中,应用控制单元220,适于根据控制插件中记载的一个或多个方法,在Dalvik中对相应的方法进行无效化处理。
这样,根据控制插件中记载的方法,在Dalvik中匹配确定相应的方法,对其进行无效化处理即可,更具体来说,方法可以包括JAVA方法,通过JNI函数实现的native方法和虚拟机内部实现的native方法。
在Dalvik中,方法以Method结构体的形式被存储,基于此,给出了一种实现方法无效化的示例:在本发明的一个实施例中,上述装置中,应用控制单元220,适于修改相应方法在Dalvik中的Method结构体以实现方法无效化。
在本发明的一个实施例中,上述装置中,应用控制单元220,适于接收应用对第一方法的调用请求,判断第一方法是否为目标方法,是则获取应用在第一方法后调用的第二方法,直接执行第二方法。
安卓应用的代码中通常包括多个方法,这些方法有着相应的执行顺序,是由开发者确定的。因此作为系统而言,其并不能预知应用会调用哪些方法,只能在接收到应用的方法调用请求后,判断其是否为被无效了的方法。虽然这里看似需要进行数量庞大的操作,但实际上只需要CPU执行一条或几条指令即可实现,效率非常高,资源消耗非常少。可以说从总体上而言,还是远优于对应用中的功能单独进行hook(钩子)操作,实现功能控制的。
在本发明的实施例中,实现了在应用执行目标方法时,由于对目标方法预先进行了无效化,使得Dalvik不执行相应方法,继续执行应用在该方法后调用的后续方法,这一流程也类似于hook,但是需要注意的是,这是对虚拟机进行的hook,与对应用进行hook有着本质不同。
在本发明的一个实施例中,上述装置中,目标功能为日志功能;目标方法包括:打印全部信息,打印调试信息,打印一般信息。
在本实施例中以日志功能作为示例,给出了对应用进行功能控制的示例。实际上日志功能除了上述打印全部信息(vervbose)、打印调试信息(debug)、打印一般信息(information)的方法以外,还有显示警告信息(warning)和显示错误信息(error),而通常只有警告信息和错误信息才是开发者所迫切需要的,其他日志信息很可能就是应用运营方为了自身利益,无视用户隐私而恶意获取的。因此如果用户希望保护自己的隐私,可以在系统中开启功能控制,例如加载相应的控制插件,就能避免不必要的日志输出。即便是不考虑隐私泄露,据统计,一个用户在智能终端中安装了数量在平均水平的应用后,如果没有专门对日志功能进行控制,在锁屏后的10分钟内,打印的日志可能让达到4万条之多,这对电量的损耗也是非常大的。因此减少不必要的日志打印。
综上所述,本发明的技术方案,在安卓系统层级进行设计,确定了待控制的目标功能后直接将相应的目标方法无效化,这样应用要实现目标功能时,并不能执行相应的目标方法,也就实现了对应用的功能控制。该技术方案的有益效果在于从系统层级进行方案设计,可以适用于系统中的几乎所有应用,并且在方法无效化设计上,还使得原应用的代码逻辑不中断,继续执行后续方法,保证了应用自身的稳定性,并且该技术方案消耗的资源并不高,在需要对多个应用进行功能控制时,不需要针对每个应用都单独执行控制操作,效率也更高。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的安卓系统中的应用控制装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
例如,图3示出了根据本发明一个实施例的智能终端的结构示意图。该智能终端包括处理器310和被安排成存储计算机可执行指令(计算机可读程序代码)的存储器320。存储器320可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器320具有存储用于执行上述方法中的任何方法步骤的计算机可读程序代码331的存储空间330。例如,用于存储计算机可读程序代码的存储空间330可以包括分别用于实现上面的方法中的各种步骤的各个计算机可读程序代码331。计算机可读程序代码331可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(CD)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为例如图4所述的计算机可读存储介质。图4示出了根据本发明一个实施例的一种计算机可读存储介质的结构示意图。该计算机可读存储介质400存储有用于执行根据本发明的方法步骤的计算机可读程序代码331,可以被智能终端300的处理器310读取,当计算机可读程序代码331由智能终端300运行时,导致该智能终端300执行上面所描述的方法中的各个步骤,具体来说,该计算机可读存储介质存储的计算机可读程序代码331可以执行上述任一实施例中示出的方法。计算机可读程序代码331可以以适当形式进行压缩。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明的实施例公开了A1、一种安卓系统中的应用控制方法,包括:
确定待控制的目标功能;
根据所述目标功能无效化一个或多个目标方法,使所述安卓系统中的应用在调用目标方法时跳过该目标方法的执行。
A2、如A1所述的应用控制方法,其中,所述确定的待控制的目标功能包括:
加载与目标功能对应的控制插件到安卓虚拟机Dalvik中。
A3、如A2所述的应用控制方法,其中,所述根据所述目标功能无效化一个或多个目标方法包括:
根据所述控制插件中记载的一个或多个方法,在Dalvik中对相应的方法进行无效化处理。
A4、如A3所述的应用控制方法,其中,所述在Dalvik中对相应的方法进行无效化处理包括:
修改相应方法在Dalvik中的Method结构体以实现方法无效化。
A5、如A2所述的应用控制方法,其中,使所述安卓系统中的应用在调用目标方法时跳过该目标方法的执行包括:
接收所述应用对第一方法的调用请求;
判断所述第一方法是否为目标方法;
是则获取所述应用在第一方法后调用的第二方法,直接执行所述第二方法。
A6、如A1所述的应用控制方法,其中,所述目标功能为日志功能;
所述目标方法包括:打印全部信息,打印调试信息,打印一般信息。
本发明的实施例还公开了B7、一种安卓系统中的应用控制装置,包括:
功能控制单元,适于确定待控制的目标功能;
应用控制单元,适于根据所述目标功能无效化一个或多个目标方法,使所述安卓系统中的应用在调用目标方法时跳过该目标方法的执行。
B8、如B7所述的装置,其中,
所述功能控制单元,适于加载与目标功能对应的控制插件到安卓虚拟机Dalvik中。
B9、如B8所述的装置,其中,
所述应用控制单元,适于根据所述控制插件中记载的一个或多个方法,在Dalvik中对相应的方法进行无效化处理。
B10、如B9所述的装置,其中,
所述应用控制单元,适于修改相应方法在Dalvik中的Method结构体以实现方法无效化。
B11、如B8所述的装置,其中,
所述应用控制单元,适于接收所述应用对第一方法的调用请求,判断所述第一方法是否为目标方法,是则获取所述应用在第一方法后调用的第二方法,直接执行所述第二方法。
B12、如B7所述的装置,其中,所述目标功能为日志功能;
所述目标方法包括:打印全部信息,打印调试信息,打印一般信息。
本发明的实施例还公开了C13、一种智能终端,其中,该智能终端包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行根据A1-A6中任一项所述的方法。
本发明的实施例还公开了D14、一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现如A1-A6中任一项所述的方法。

Claims (6)

1.一种安卓系统中的应用控制方法,包括:
确定待控制的目标功能;
根据所述目标功能无效化一个或多个目标方法,使所述安卓系统中的应用在调用目标方法时跳过该目标方法的执行;
所述确定的待控制的目标功能包括:
加载与目标功能对应的控制插件到安卓虚拟机Dalvik中;
所述根据所述目标功能无效化一个或多个目标方法包括:
根据所述控制插件中记载的一个或多个方法,在Dalvik中对相应的方法进行无效化处理;
所述在Dalvik中对相应的方法进行无效化处理包括:
修改相应的方法在Dalvik中的Method结构体,从而实现所述相应的方法的无效化;
使所述安卓系统中的应用在调用目标方法时跳过该目标方法的执行包括:
接收所述应用对第一方法的调用请求;
判断所述第一方法是否为目标方法;
是则获取所述应用在第一方法后调用的第二方法,直接执行所述第二方法。
2.如权利要求1所述的应用控制方法,其中,所述目标功能为日志功能;
所述目标方法包括:打印全部信息,打印调试信息,打印一般信息。
3.一种安卓系统中的应用控制装置,包括:
功能控制单元,适于确定待控制的目标功能;
应用控制单元,适于根据所述目标功能无效化一个或多个目标方法,使所述安卓系统中的应用在调用目标方法时跳过该目标方法的执行;
所述功能控制单元,适于加载与目标功能对应的控制插件到安卓虚拟机Dalvik中;
所述应用控制单元,适于根据所述控制插件中记载的一个或多个方法,在Dalvik中对相应的方法进行无效化处理;
其中,所述应用控制单元,适于修改相应的方法在Dalvik中的Method结构体,从而实现所述相应的方法的无效化;
所述应用控制单元,适于接收所述应用对第一方法的调用请求,判断所述第一方法是否为目标方法,是则获取所述应用在第一方法后调用的第二方法,直接执行所述第二方法。
4.如权利要求3所述的装置,其中,所述目标功能为日志功能;
所述目标方法包括:打印全部信息,打印调试信息,打印一般信息。
5.一种智能终端,其中,该智能终端包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行根据权利要求1-2中任一项所述的方法。
6.一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现如权利要求1-2中任一项所述的方法。
CN201810468580.5A 2018-05-16 2018-05-16 安卓系统中的应用控制方法和装置 Active CN108664293B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810468580.5A CN108664293B (zh) 2018-05-16 2018-05-16 安卓系统中的应用控制方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810468580.5A CN108664293B (zh) 2018-05-16 2018-05-16 安卓系统中的应用控制方法和装置

Publications (2)

Publication Number Publication Date
CN108664293A CN108664293A (zh) 2018-10-16
CN108664293B true CN108664293B (zh) 2022-02-18

Family

ID=63779832

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810468580.5A Active CN108664293B (zh) 2018-05-16 2018-05-16 安卓系统中的应用控制方法和装置

Country Status (1)

Country Link
CN (1) CN108664293B (zh)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103186386B (zh) * 2011-12-27 2017-10-27 腾讯科技(深圳)有限公司 应用加载方法及系统
KR101335512B1 (ko) * 2012-01-20 2013-12-02 주식회사 인프라웨어테크놀러지 안드로이드 기반의 공용 플랫폼을 탑재한 m2m 라우터 장치
CN105955766B (zh) * 2016-04-22 2019-08-30 北京小米移动软件有限公司 应用预加载方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Android平台dalvik模式下java Hook框架ddi的分析(1);墨鱼菜鸡;《博客园》;20170723;第1-22页 *

Also Published As

Publication number Publication date
CN108664293A (zh) 2018-10-16

Similar Documents

Publication Publication Date Title
CN111427596B (zh) 一种软件升级的方法、装置及终端设备
CN104049986A (zh) 插件加载方法及装置
US20210042150A1 (en) Method-call-chain tracking method, electronic device, and computer readable storage medium
CN108021405B (zh) 一种soc系统启动过程中存储介质的驱动方法和装置
CN109359092B (zh) 文件管理方法、桌面显示方法、装置、终端及介质
CN112882694A (zh) 一种程序编译方法、装置、电子设备及可读存储介质
CN112882732A (zh) 一种软件开发工具包sdk中功能代码的更新方法和装置
CN113656107A (zh) 移动应用的加载方法、装置及电子设备
CN110704131B (zh) 一种html5应用调用原生应用的方法和装置
CN112214267A (zh) 一种安卓脱壳加速方法、装置、存储介质及计算机设备
CN109190367B (zh) 利用沙箱运行应用程序安装包的方法及装置
CN110069217A (zh) 一种数据存储方法及装置
CN111722857A (zh) 软件开发工具包的更新方法、装置、电子设备及存储介质
US11853412B2 (en) Systems and methods for defeating stack-based cyber attacks by randomizing stack frame size
CN108664293B (zh) 安卓系统中的应用控制方法和装置
CN109144595B (zh) 基于插件框架启动组件的方法及装置
CN115952491A (zh) hook目标函数的方法、装置、电子设备及介质
WO2020037111A1 (en) Systems and methods for reliably injecting control flow integrity into binaries by tokenizing return addresses
CN115712918A (zh) 一种基于Linux系统的文件保护方法及电子设备
CN110442380B (zh) 一种数据预热方法及计算设备
CN112600803B (zh) Web端数据签名方法、装置及计算机设备
CN111414270B (zh) 一种异常处理方法及装置
CN113282363A (zh) 一种优化混合app的方法及装置
CN113741913A (zh) 图片配置方法、装置、系统和存储介质
CN113722715B (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