一种Android插件化虚拟化Binder Hook方法转让专利

申请号 : CN202210683840.7

文献号 : CN114995955B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 请求不公布姓名

申请人 : 广州千悦科技有限公司

摘要 :

本发明公开了一种Android插件化虚拟化Binder Hook方法,包括:启动插件之前,获取ServiceManager中所有系统服务;将所有系统服务发送至虚拟服务端,虚拟服务端生成虚拟系统服务,将虚拟系统服务返回至虚拟客户端;在虚拟客户端基于虚拟系统服务初始化ServiceManager;启动插件,在插件使用真实系统服务时,请求数据通过所述虚拟系统服务发送至虚拟服务端,由虚拟服务端处理相应的请求。插件端任何运行环境未遭到破坏,ServiceManager中无法进行分辨或检测是否被修改,可达到最大化的兼容性与反检测性。

权利要求 :

1.一种 Android 插件化虚拟化 Binder Hook 方法,其特征在于,包括:S100,启动插件之前,获取ServiceManager中所有系统服务;

S200,将所有系统服务发送至虚拟服务端,虚拟服务端生成虚拟系统服务,将虚拟系统服务返回至虚拟客户端;

S300,在虚拟客户端基于虚拟系统服务初始化 ServiceManager;

S400,启动插件,在插件使用真实系统服务时,请求数据通过所述虚拟系统服务发送至虚拟服务端,由虚拟服务端处理相应的请求;

所述S300包括:

S301,在虚拟客户端基于虚拟系统服务模拟Android 系统服务行为;

S302,将ServiceManager 中的  sCache  对应的系统服务替换,初始化ServiceManager;

所述虚拟客户端为插件端,插件端ServiceManager 中的 sCache 对应的系统服务被替换,插件无法正常直接获取到原始Binder,当虚拟客户端处理插件端的请求时,插件的运行与真实系统服务之间不能进行交互;

还包括:

对Android系统的隐私泄露进行动态检测;

获取某一隐私相关api的动态执行上下文信息,该信息表明api函数是由哪些函数调用或触发的;

通过匹配算法预测在实时api调用过程中发生的隐私泄露行为。

2.根据权利要求1所述的一种 Android 插件化虚拟化 Binder Hook 方法,其特征在于,所述S200包括:S201,将所有系统服务通过IPC机制发送至虚拟服务端;

S202,虚拟服务端通过代码生成技术,生成继承系统服务的代码,形成虚拟系统服务;

S203,形成虚拟系统服务后经过IPC机制发送回插件,使用IPC机制,将真实Binder变成android.os.BinderProxy,隐藏真实Binder身份。

3.根据权利要求1所述的一种 Android 插件化虚拟化 Binder Hook 方法,其特征在于,所述S400中虚拟服务端处理相应的请求,包括:S401,虚拟服务端处理相应的请求或数据,实现虚拟化功能;

S402,当虚拟服务端不处理相应的请求或数据时,将数据或请求转入至真实系统服务,基于真实系统服务返回相应的指令或数据。

4.根据权利要求2所述的一种 Android 插件化虚拟化 Binder Hook 方法,其特征在于,所述继承系统服务包括以下一系列的若干个系统服务中的一个或者多个:用户交互操作管理服务、剪切板管理服务、通知管理服务、手机音频管理服务和Package的管理服务。

5.根据权利要求1所述的一种 Android 插件化虚拟化 Binder Hook 方法,其特征在于,所述通过匹配算法预测在实时api调用过程中发生的隐私泄露行为,包括:若存在某一api动态执行上下文信息与静态软件函数调用图中的一条调用路径,则计算两者之间的相似度;

相似度计算通过求和的方式统计出相同的函数在函数栈中所占的比例;

使用匹配算法找到与该api函数调用最接近的上下文信息,并使用信息预测此次api调用发生的隐私泄露的几率。

6.根据权利要求5所述的一种 Android 插件化虚拟化 Binder Hook 方法,其特征在于,所述匹配算法包括:从函数栈中取出具有相同函数名称的隐私相关api上下文信息;

通过相似性计算公式计算上下文信息与函数栈的相似性,基于相似性计算结果确定最相似的上下文以预测发生的隐私泄露。

7.根据权利要求5所述的一种 Android 插件化虚拟化 Binder Hook 方法,其特征在于,将每次实时api调用的动态执行上下文信息与用户的授权选择进行记录,记录的数据包括:软件包名、软件的动态执行情况和用户的选择;

将记录的数据通过树形数据结构对用户的行为进行存储;

当调用某一接口或数据时存在获取隐私数据操作行为,且对获取隐私数据操作执行了三次拒绝操作时,将调用及拒绝操作同步反馈给上下文匹配模块;

当再次发生相同调用时,通过查询得到历史数据引导用户操作。

说明书 :

一种Android插件化虚拟化Binder Hook方法

技术领域

[0001] 本发明涉及Android系统技术领域,具体涉及一种Android插件化虚拟化Binder Hook方法。

背景技术

[0002] Android系统通过Binder机制给应用程序提供了一系列的系统服务,诸如ActivityManagerService(用户交互操作管理),ClipboardManager(剪切板管理),AudioManager(手机音频管理)等;这些广泛存在系统服务给应用程序提供了诸如任务管理,音频,视频等异常强大的功能。
[0003] 在虚拟化领域内,作为各个插件的管理者,为了使得插件能够无缝地使用这些系统服务,框架需要对系统提供的Binder机制进行Hook,从而进行实现对插件的管理。
[0004] 例如:插件内需要判断手机剪切板内是否有内容,为了保护隐私,我们需要在拦截android.content.IClipboard中的hasPrimaryClip方法,进行强制返回没有内容,这样一来就可以避免用户隐私信息被泄漏的风险。
[0005] 现有方案实施流程如下:
[0006] 1.在启动插件之前,需要获取ServiceManager中sCache的所有系统服务。
[0007] 2.将系统服务进行“代理”操作,代理的作用等同于拦截并且发送。
[0008] 3.启动插件,在插件使用系统服务时能够被“代理”拦截,实现相关虚拟化功能。
[0009] 现有方案存在的弊端如下:
[0010] 1.从上述技术分析,我们所有操作都在插件内进行“代理”与入侵,如果插件对ServiceManager的sCache中进行检测,那么可以检测出并非真实的系统代理,而是被Hook(入侵/修改)过的。2.从上述技术分析,插件可以利用Java语言中的反射技术,是可以通过拿到原始的系统服务直接与系统交互,绕过“代理”,可能导致用户隐私被窃取。

发明内容

[0011] 本发明提供一种Android插件化虚拟化Binder Hook方法,以解决现有技术中存在的上述问题。
[0012] 本发明提供一种Android插件化虚拟化Binder Hook方法,包括:
[0013] S100,启动插件之前,获取ServiceManager中所有系统服务;
[0014] S200,将所有系统服务发送至虚拟服务端,虚拟服务端生成虚拟系统服务,将虚拟系统服务返回至虚拟客户端;
[0015] S300,在虚拟客户端基于虚拟系统服务初始化ServiceManager;
[0016] S400,启动插件,在插件使用真实系统服务时,请求数据通过所述虚拟系统服务发送至虚拟服务端,由虚拟服务端处理相应的请求。
[0017] 优选的,所述S200包括:
[0018] S201,将所有系统服务通过IPC机制发送至虚拟服务端;
[0019] S202,虚拟服务端通过代码生成技术,生成继承系统服务的代码,形成虚拟系统服务;
[0020] S203,形成虚拟系统服务后经过IPC机制发送回插件,使用IPC机制,将真实Binder变成android.os.BinderProxy,隐藏真实Binder身份。
[0021] 优选的,所述S300包括:
[0022] S301,在虚拟客户端基于虚拟系统服务模拟Android系统服务行为;
[0023] S302,将ServiceManager中的sCache对应的系统服务替换,初始化ServiceManager。
[0024] 优选的,所述S400中虚拟服务端处理相应的请求,包括:
[0025] S401,虚拟服务端处理相应的请求或数据,实现虚拟化功能;
[0026] S402,当虚拟服务端不处理相应的请求或数据时,将数据或请求转入至真实系统服务,基于真实系统服务返回相应的指令或数据。
[0027] 优选的,所述继承系统服务包括以下一系列的若干个系统服务中的一个或者多个:用户交互操作管理服务、剪切板管理服务、通知管理服务、手机音频管理服务和Package的管理服务。
[0028] 优选的,所述虚拟客户端为插件端,插件端ServiceManager中的sCache对应的系统服务被替换,插件无法正常直接获取到原始Binder,当虚拟客户端处理插件端的请求时,插件的运行与真实系统服务之间不能进行交互。
[0029] 优选的,还包括:
[0030] 对Android系统的隐私泄露进行动态检测;
[0031] 获取某一隐私相关api的动态执行上下文信息,该信息表明api函数是由哪些函数调用或触发的;
[0032] 通过匹配算法预测在实时api调用过程中发生的隐私泄露行为。
[0033] 优选的,所述通过匹配算法预测在实时api调用过程中发生的隐私泄露行为,包括:
[0034] 若存在某一api动态执行上下文信息与静态软件函数调用图中的一条调用路径,则计算两者之间的相似度;
[0035] 相似度计算通过求和的方式统计出相同的函数在函数栈中所占的比例;
[0036] 使用匹配算法找到与该api函数调用最接近的上下文信息,并使用信息预测此次api调用发生的隐私泄露的几率。
[0037] 优选的,所述匹配算法包括:
[0038] 从函数栈中取出具有相同函数名称的隐私相关api上下文信息;
[0039] 通过相似性计算公式计算上下文信息与函数栈的相似性,基于相似性计算结果确定最相似的上下文以预测发生的隐私泄露。
[0040] 优选的,将每次实时api调用的动态执行上下文信息与用户的授权选择进行记录,记录的数据包括:软件包名、软件的动态执行情况和用户的选择;
[0041] 将记录的数据通过树形数据结构对用户的行为进行存储;
[0042] 当调用某一接口或数据时存在获取隐私数据操作行为,且对获取隐私数据操作执行了三次拒绝操作时,将调用及拒绝操作同步反馈给上下文匹配模块;
[0043] 当再次发生相同调用时,通过查询得到历史数据引导用户操作。
[0044] 与现有技术相比,本发明具有以下优点:
[0045] 本发明提供一种Android插件化虚拟化Binder Hook方法,包括:启动插件之前,获取ServiceManager中所有系统服务;将所有系统服务发送至虚拟服务端,虚拟服务端生成虚拟系统服务,将虚拟系统服务返回至虚拟客户端;在虚拟客户端基于虚拟系统服务初始化ServiceManager;启动插件,在插件使用真实系统服务时,请求数据通过所述虚拟系统服务发送至虚拟服务端,由虚拟服务端处理相应的请求。插件端任何运行环境未遭到破坏,ServiceManager中无法进行分辨或检测是否被修改,可达到最大化的兼容性与反检测性。
[0046] 本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
[0047] 下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

[0048] 附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
[0049] 图1为本发明实施例中一种Android插件化虚拟化Binder Hook方法的流程图;
[0050] 图2为本发明实施例中生成虚拟系统服务的方法流程图;
[0051] 图3为本发明实施例中初始化ServiceManager的方法流程图。

具体实施方式

[0052] 以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
[0053] 本发明实施例提供了一种Android插件化虚拟化Binder Hook方法,请参照图1,该方法包括以下几个步骤:
[0054] S100,启动插件之前,获取ServiceManager中所有系统服务;
[0055] S200,将所有系统服务发送至虚拟服务端,虚拟服务端生成虚拟系统服务,将虚拟系统服务返回至虚拟客户端;
[0056] S300,在虚拟客户端基于虚拟系统服务初始化ServiceManager;
[0057] S400,启动插件,在插件使用真实系统服务时,请求数据通过所述虚拟系统服务发送至虚拟服务端,由虚拟服务端处理相应的请求。
[0058] 上述技术方案的工作原理为:本实施例采用的方案是S100,启动插件之前,获取ServiceManager中所有系统服务;
[0059] S200,将所有系统服务发送至虚拟服务端,虚拟服务端生成虚拟系统服务,将虚拟系统服务返回至虚拟客户端;
[0060] S300,在虚拟客户端基于虚拟系统服务初始化ServiceManager;
[0061] S400,启动插件,在插件使用真实系统服务时,请求数据通过所述虚拟系统服务发送至虚拟服务端,由虚拟服务端处理相应的请求。
[0062] 具体的,通过设置虚拟系统服务,让插件在使用远程系统服务时,将虚拟系统服务充当远程系统服务,通过虚拟系统的方式完全实现一套服务,这样一来就不存在所谓的代理。
[0063] 由于设置的虚拟系统服务需要面对海量的机型与系统,不可能硬编码所有成千上万的系统的服务方法,这是不现实并且是不可靠的。本实施例的方案根据每一个手机,使用动态生成技术,为每一台手机量身定做所需的系统服务类。
[0064] 例如:在“服务端”中初始化这个动态生成的IClipboard服务,将通过IPC跨进程的方式传递到“客户端”,将“客户端”ServiceManager中的sCache对应的系统服务替换。这样一来,我们完全模拟了系统初始化ServiceManager的逻辑,不需要任何的“代理”。
[0065] 具体实现步骤:
[0066] 1.在启动插件之前,需要获取ServiceManager中sCache的所有系统服务。
[0067] 2.将所有系统服务通过IPC机制发送到“服务端”。
[0068] 3.服务端通过代码生成技术,生成继承系统服务XXXXX$Stub的代码,例:android.app.IActivityManager$Stub等,生成“虚拟系统服务”。
[0069] 4.通过IPC机制将“虚拟系统服务”发送回“客户端”。
[0070] 5“.客户端”通过“服务端”返回的“虚拟系统服务”,模拟Android系行为,重新初始化ServiceManager,将其服务替换。
[0071] 6.启动插件,在插件使用系统服务时,数据将通过“虚拟系统服务”发送至“服务端”,由“服务端”处理实现相关虚拟化功能。如果不处理,则转发到真实系统,完成一整套服务。
[0072] 上述技术方案的有益效果为:采用本实施例提供的方案可产生如下效果:
[0073] 1.根据上述原理,本方案的核心思想是完全模拟了真实系统是如何初始化插件的ServiceManager,使虚拟系统与真实系统的行为是一样的。虚拟系统进程与真实系统进程,在插件眼里其实是一样的。只是一个android.os.BinderProxy对象。所以插件并不知道这个服务是真实系统进程的还是虚拟系统进程的。
[0074] 2.根据上述原理,插件无法正常直接获取到原始Binder,无法与系统服务直接交互,所有交互均被管控,不存在隐私泄漏问题。
[0075] 3.根据上述原理,插件端任何运行环境未遭到破坏,ServiceManager中进行分辨或检测是否被修改,可达到最大化的兼容性与反检测性。
[0076] 在另一实施例中,如图2所示,所述S200包括:
[0077] S201,将所有系统服务通过IPC机制发送至虚拟服务端;
[0078] S202,虚拟服务端通过代码生成技术,生成继承系统服务的代码,形成虚拟系统服务;
[0079] S203,形成虚拟系统服务后经过IPC机制发送回插件,使用IPC机制,将真实Binder变成android.os.BinderProxy,隐藏真实Binder身份。
[0080] 上述技术方案的工作原理为:本实施例采用的方案是所述S200包括:
[0081] S201,将所有系统服务通过IPC机制发送至虚拟服务端;
[0082] S202,虚拟服务端通过代码生成技术,生成继承系统服务的代码,形成虚拟系统服务;
[0083] S203,形成虚拟系统服务后经过IPC机制发送回插件,使用IPC机制,将真实Binder变成android.os.BinderProxy,隐藏真实Binder身份。
[0084] 上述技术方案的有益效果为:采用本实施例提供的方案所述S200包括:
[0085] S201,将所有系统服务通过IPC机制发送至虚拟服务端;
[0086] S202,虚拟服务端通过代码生成技术,生成继承系统服务的代码,形成虚拟系统服务;
[0087] S203,形成虚拟系统服务后经过IPC机制发送回插件,使用IPC机制,将真实Binder变成android.os.BinderProxy,隐藏真实Binder身份。
[0088] 在另一实施例中,如图3所示,所述S300包括:
[0089] S301,在虚拟客户端基于虚拟系统服务模拟Android系统服务行为;
[0090] S302,将ServiceManager中的sCache对应的系统服务替换,初始化ServiceManager。
[0091] 上述技术方案的工作原理为:本实施例采用的方案是所述S300包括:
[0092] S301,在虚拟客户端基于虚拟系统服务模拟Android系统服务行为;
[0093] S302,将ServiceManager中的sCache对应的系统服务替换,初始化ServiceManager。
[0094] 上述技术方案的有益效果为:采用本实施例提供的方案所述S300包括:
[0095] S301,在虚拟客户端基于虚拟系统服务模拟Android系统服务行为;
[0096] S302,将ServiceManager中的sCache对应的系统服务替换,初始化ServiceManager。
[0097] 在另一实施例中,所述S400中虚拟服务端处理相应的请求,包括:
[0098] S401,虚拟服务端处理相应的请求或数据,实现虚拟化功能;
[0099] S402,当虚拟服务端不处理相应的请求或数据时,将数据或请求转入至真实系统服务,基于真实系统服务返回相应的指令或数据。
[0100] 上述技术方案的工作原理为:本实施例采用的方案是所述S400中虚拟服务端处理相应的请求,包括:
[0101] S401,虚拟服务端处理相应的请求或数据,实现虚拟化功能;
[0102] S402,当虚拟服务端不处理相应的请求或数据时,将数据或请求转入至真实系统服务,基于真实系统服务返回相应的指令或数据。
[0103] 上述技术方案的有益效果为:采用本实施例提供的方案所述S400中虚拟服务端处理相应的请求,包括:
[0104] S401,虚拟服务端处理相应的请求或数据,实现虚拟化功能;
[0105] S402,当虚拟服务端不处理相应的请求或数据时,将数据或请求转入至真实系统服务,基于真实系统服务返回相应的指令或数据。
[0106] 在另一实施例中,所述继承系统服务包括以下一系列的若干个系统服务中的一个或者多个:用户交互操作管理服务、剪切板管理服务、通知管理服务、手机音频管理服务和Package的管理服务。
[0107] 上述技术方案的工作原理为:所述继承系统服务包括以下一系列的若干个系统服务中的一个或者多个:用户交互操作管理服务、剪切板管理服务、通知管理服务、手机音频管理服务和Package的管理服务。
[0108] 上述技术方案的有益效果为:采用本实施例提供的方案所述继承系统服务包括以下一系列的若干个系统服务中的一个或者多个:用户交互操作管理服务、剪切板管理服务、通知管理服务、手机音频管理服务和Package的管理服务。
[0109] 在另一实施例中,所述虚拟客户端为插件端,插件端ServiceManager中的sCache对应的系统服务被替换,插件无法正常直接获取到原始Binder,当虚拟客户端处理插件端的请求时,插件的运行与真实系统服务之间不能进行交互。
[0110] 上述技术方案的工作原理为:本实施例采用的方案是所述虚拟客户端为插件端,插件端ServiceManager中的sCache对应的系统服务被替换,插件无法正常直接获取到原始Binder,当虚拟客户端处理插件端的请求时,插件的运行与真实系统服务之间不能进行交互。
[0111] 上述技术方案的有益效果为:采用本实施例提供的方案所述虚拟客户端为插件端,插件端ServiceManager中的sCache对应的系统服务被替换,插件无法正常直接获取到原始Binder,当虚拟客户端处理插件端的请求时,插件的运行与真实系统服务之间不能进行交互。
[0112] 另外,本实施例的优点如下:
[0113] 1.通过代码生成技术,动态生成继承系统服务XXXXX$Stub的代码服务端代码,例:android.app.IActivityManager$Stub等。
[0114] 2.通过传递虚拟进程服务中的服务端Binder,替换插件端ServiceManager,插件端请求数据由“服务端”处理或代转发至真实系统。
[0115] 3.形成虚拟系统服务后经过IPC机制发送回插件,使用IPC机制,将真实Binder变成android.os.BinderProxy,隐藏真实Binder身份。
[0116] 在另一实施例中,还包括:
[0117] 对Android系统的隐私泄露进行动态检测;
[0118] 获取某一隐私相关api的动态执行上下文信息,该信息表明api函数是由哪些函数调用或触发的;
[0119] 通过匹配算法预测在实时api调用过程中发生的隐私泄露行为。
[0120] 上述技术方案的工作原理为:本实施例采用的方案是还包括:
[0121] 对Android系统的隐私泄露进行动态检测;
[0122] 获取某一隐私相关api的动态执行上下文信息,该信息表明api函数是由哪些函数调用或触发的;
[0123] 通过匹配算法预测在实时api调用过程中发生的隐私泄露行为。
[0124] 上述技术方案的有益效果为:采用本实施例提供的方案还包括:
[0125] 对Android系统的隐私泄露进行动态检测;
[0126] 获取某一隐私相关api的动态执行上下文信息,该信息表明api函数是由哪些函数调用或触发的;
[0127] 通过匹配算法预测在实时api调用过程中发生的隐私泄露行为。
[0128] 在另一实施例中,所述通过匹配算法预测在实时api调用过程中发生的隐私泄露行为,包括:
[0129] 若存在某一api动态执行上下文信息与静态软件函数调用图中的一条调用路径,则计算两者之间的相似度;
[0130] 相似度计算通过求和的方式统计出相同的函数在函数栈中所占的比例;
[0131] 使用匹配算法找到与该api函数调用最接近的上下文信息,并使用信息预测此次api调用发生的隐私泄露的几率。
[0132] 上述技术方案的工作原理为:本实施例采用的方案是所述通过匹配算法预测在实时api调用过程中发生的隐私泄露行为,包括:
[0133] 若存在某一api动态执行上下文信息与静态软件函数调用图中的一条调用路径,则计算两者之间的相似度;
[0134] 相似度计算通过求和的方式统计出相同的函数在函数栈中所占的比例;
[0135] 使用匹配算法找到与该api函数调用最接近的上下文信息,并使用信息预测此次api调用发生的隐私泄露的几率。
[0136] 上述技术方案的有益效果为:采用本实施例提供的方案所述通过匹配算法预测在实时api调用过程中发生的隐私泄露行为,包括:
[0137] 若存在某一api动态执行上下文信息与静态软件函数调用图中的一条调用路径,则计算两者之间的相似度;
[0138] 相似度计算通过求和的方式统计出相同的函数在函数栈中所占的比例;
[0139] 具体的,相似度计算公式如下:
[0140]
[0141]
[0142] 其中,S为相似度,fi为第i个动态执行上下文信息,i=1,2…n,n为函数调用栈中函数的个数,nj为第j个调用路径,j=1,2…m,m为调用路径中函数的个数,F(fi,nj)为fi和nj的分段函数,用于标识动态执行上下文信息和调用路径之间是否相等,若相等该函数为1,不相等该函数为0。
[0143] 使用匹配算法找到与该api函数调用最接近的上下文信息,并使用信息预测此次api调用发生的隐私泄露的几率。
[0144] 在另一实施例中,所述匹配算法包括:
[0145] 从函数栈中取出具有相同函数名称的隐私相关api上下文信息;
[0146] 通过相似性计算公式计算上下文信息与函数栈的相似性,基于相似性计算结果确定最相似的上下文以预测发生的隐私泄露。
[0147] 上述技术方案的工作原理为:本实施例采用的方案是所述匹配算法包括:
[0148] 从函数栈中取出具有相同函数名称的隐私相关api上下文信息;
[0149] 通过相似性计算公式计算上下文信息与函数栈的相似性,基于相似性计算结果确定最相似的上下文以预测发生的隐私泄露。
[0150] 上述技术方案的有益效果为:采用本实施例提供的方案所述匹配算法包括:
[0151] 从函数栈中取出具有相同函数名称的隐私相关api上下文信息;
[0152] 通过相似性计算公式计算上下文信息与函数栈的相似性,基于相似性计算结果确定最相似的上下文以预测发生的隐私泄露。
[0153] 在另一实施例中,对插件端的操作进行引导操作,具体的:
[0154] 将每次实时api调用的动态执行上下文信息与用户的授权选择进行记录,记录的数据包括:软件包名、软件的动态执行情况和用户的选择;
[0155] 将记录的数据通过树形数据结构对用户的行为进行存储;
[0156] 当调用某一接口或数据时存在获取隐私数据操作行为,且对获取隐私数据操作执行了三次拒绝操作时,将调用及拒绝操作同步反馈给上下文匹配模块;
[0157] 当再次发生相同调用时,通过查询得到历史数据引导用户操作。
[0158] 上述技术方案的技术原理为:将每次实时api调用的动态执行上下文信息与用户的授权选择进行记录,记录的数据包括:软件包名、软件的动态执行情况和用户的选择;
[0159] 将记录的数据通过树形数据结构对用户的行为进行存储;
[0160] 当调用某一接口或数据时存在获取隐私数据操作行为,且对获取隐私数据操作执行了三次拒绝操作时,将调用及拒绝操作同步反馈给上下文匹配模块;
[0161] 当再次发生相同调用时,通过查询得到历史数据引导用户操作。
[0162] 上述技术方案的有益效果为:将每次实时api调用的动态执行上下文信息与用户的授权选择进行记录,记录的数据包括:软件包名、软件的动态执行情况和用户的选择;
[0163] 将记录的数据通过树形数据结构对用户的行为进行存储;
[0164] 当调用某一接口或数据时存在获取隐私数据操作行为,且对获取隐私数据操作执行了三次拒绝操作时,将调用及拒绝操作同步反馈给上下文匹配模块;
[0165] 当再次发生相同调用时,通过查询得到历史数据引导用户操作。
[0166] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。