首页 / 专利库 / 电脑零配件 / 计算机系统 / 软件 / 一种用于Android文件的安全防护方法和系统

一种用于Android文件的安全防护方法和系统

阅读:2发布:2020-08-21

专利汇可以提供一种用于Android文件的安全防护方法和系统专利检索,专利查询,专利分析的服务。并且本 申请 公开了一种用于Android文件的安全防护方法和系统。其中,包括当Zygote父 进程 接收到应用程序的 请求 ,Zygote 父进程 通过分叉获得Zygote 子进程 ,同时激活被设置于Zygote父进程的权限 控制器 ,利用权限控制器判断应用程序的 访问 权限,并制定无权限目标文件列表,从而获得无权限分区列表,暂停应用程序的进程,卸载mount namespace的无权限分区列表,并恢复应用程序的进程。该方案通过将目标文件进行单独分区挂载,并对无访问权限的进程进行卸载,不仅增强了对该进程隐藏目标文件的效果,同时,在Zygote父进程中加入权限控制器,可以实现对单个应用进程单独配置权限的效果,使得控制粒度更细。,下面是一种用于Android文件的安全防护方法和系统专利的具体信息内容。

1.一种用于Android文件的安全防护方法,其特征在于,所述方法包括:
S1:基于系统启动时,通过Init进程创建Zygote父进程
S2:当所述Zygote父进程接收到应用程序的请求,所述Zygote父进程通过分叉获得Zygote子进程,同时激活被设置于所述Zygote父进程的权限控制器
S3:利用所述权限控制器判断应用程序的访问权限,并制定无权限目标文件列表,从而获得无权限分区列表;
S4:暂停所述应用程序的进程,通过Linux内核中的API关联到所述应用程序进程的mount namespace;以及
S5:卸载所述mount namespace的所述无权限分区列表,并恢复所述应用程序的进程。
2.根据权利要求1所述的一种用于Android文件的安全防护方法,其特征在于,在步骤S1中的所述Zygote父进程通过Init进程的Service方式启动,并且独立于所述Init进程的mount namespace。
3.根据权利要求1所述的一种用于Android文件的安全防护方法,其特征在于,在所述S2步骤前,通过所述Init进程读取所述目标文件的挂载分区的预设规则,将所述目标文件挂载至相应的分区。
4.根据权利要求3所述的一种用于Android文件的安全防护方法,其特征在于,所述预设规则为通过所述Init进程读取所述目标文件的配置,并将所述目标文件进行分区挂载,从而获得含有所述目标文件的所述Zygote父进程。
5.根据权利要求1所述的一种用于Android文件的安全防护方法,其特征在于,在所述S2步骤中,所述Zygote父进程通过fork函数形成独立于Zygote父进程且含有所述目标文件的所述Zygote子进程。
6.根据权利要求5所述的一种用于Android文件的安全防护方法,其特征在于,所述Zygote子进程为所述应用程序创建执行运行环境。
7.根据权利要求1所述的一种用于Android文件的安全防护方法,其特征在于,所述权限控制器用于监控所述应用程序请求执行的访问权限和运行时的权限控制。
8.根据权利要求7所述的一种用于Android文件的安全防护方法,其特征在于,所述运行时的权限控制为是否可读,是否可写,是否可执行。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-8中任一所述的方法。
10.一种用于Android文件的安全防护系统,其特征在于,所述系统包括:
系统启动单元:配置用于基于系统启动时,通过Init进程创建Zygote父进程;
接收激活单元:配置用于当所述Zygote父进程接收到应用程序的请求,将所述Zygote父进程分叉出Zygote子进程,同时激活被设置于所述Zygote父进程的权限控制器;
访问权限单元:配置用于利用所述权限控制器,Zygote子进程判断应用程序的访问权限,并制定无权限目标文件列表,从而获得无权限分区列表;
暂停关联单元:配置用于暂停所述应用程序的进程,通过Linux内核中的API关联到所述应用程序进程的mount namespace;以及
卸载运行单元:配置用于卸载所述mount namespace的所述无权限分区列表,并恢复所述应用程序的进程。

说明书全文

一种用于Android文件的安全防护方法和系统

技术领域

[0001] 本申请涉及计算机软件安全技术领域,具体涉及一种用于Android文件的安全防护方法和系统。

背景技术

[0002] Android自身出于安全的考虑,已经利用虚拟机原理加以实现,以最大程度降低侵入的可能。虚拟机用于进一步运行应用程序进程。虚拟机的启动源于系统的Zygote(业内称之为孵化器)模,Zygote是由Linux操作系统内核实现的初始化(init)函数加载。Zygote被加载后,便通过自身的孵化函数分叉(fork)来复制自身,形成新进程去实现系统服务的一系列初始化功能,包括对Native层的服务进行初始化、对Java层的服务进行初始化,最终进入Binder通信系统监听请求,给应用层和系统提供各种服务请求。在这个过程中,Android界面管理服务(Activty Manager Service,AMS)和应用程序管理服务(Package Manager Service,PMS)在内的一系列的Java层的服务被陆续加载,而Zygote则退居后台继续监听是否有新的孵化请求。一旦AMS为运行应用程序而向Zygote发起孵化请求时,Zygote便会继续孵化自身,然后通过新的Zygote进程加载虚拟机,使该应用程序运行于该虚拟机中。
[0003] Android系统中是一种基于Linux内核进行开发的系统,因此Android具有跟Linux系统一致的文件系统的权限控制方式。在Android系统中通常包含很多具有特殊权限功能的目标文件或可执行程序。但是,具有特殊功能或权限的文件只对特定的进程开放,如系统进程或者其中某些应用进序,而对于其他的应用进程则需要隐藏这些特殊文件的存在。一方面是防止某些应用进程滥用这些特殊权限的文件的功能,另一方面也是防止被读取敏感信息而泄露用户的隐私。此外,类似su文件这样具有最高权限的可执行程序,存放的位置也相对固定,很多应用进程可以通过扫描存放位置的方式来判断该文件是否存在,确认存在该文件之后,进而尝试获取该执行权限。因此,隐藏特殊的文件的存放位置也显得尤为重要。发明内容
[0004] 本申请的目的在于提出了一种用于Android文件的安全防护方法和系统,有效避免因扫描目标文件的固定存放位置而被发现的险,同时使得对应用程序进程的控制粒度更细。
[0005] 第一方面,本申请实施例提供了一种用于Android文件的安全防护方法,该方法包括:
[0006] S1:基于系统启动时,通过Init进程创建Zygote父进程
[0007] S2:当Zygote父进程接收到应用程序的请求,Zygote父进程通过分叉获得Zygote子进程,同时激活被设置于Zygote父进程的权限控制器
[0008] S3:利用权限控制器判断应用程序的访问权限,并制定无权限目标文件列表,从而获得无权限分区列表;
[0009] S4:暂停应用程序的进程,通过Linux内核中的API关联到应用程序进程的mount namespace;以及
[0010] S5:卸载mount namespace的无权限分区列表,并恢复应用程序的进程。
[0011] 在该方法中,Zygote进程内设置权限控制器,并利用权限控制器判断应用程序的访问权限,获得无权限分区列表,进而卸载无权限分区内的目标文件,从而达到对应用程序隐藏目标文件的目的。该方法利用Android的现有文件系统设置从应用程序访问的环境中根源卸载目标文件,有效实现对目标文件的隐藏,同时,权限监控器的运用,使其控制粒度更细。
[0012] 在一些具体实施例中,在步骤S1中的Zygote父进程通过Init进程的Service方式启动,并且独立于Init进程的mount namespace。Zygote进程是由Init初始化进程以Service的方式启动的,在这个过程中,Zygote进程会从Init进程的mount namespace中单独独立出来。
[0013] 在一些具体实施例中,在S2步骤前,通过Init进程读取目标文件的挂载分区的预设规则,将目标文件挂载至相应的分区。凭借预设规则,可以快速将目标文件进行分类,便于加快对目标文件的分区挂载。
[0014] 在一些具体实施例中,预设规则为通过Init进程读取目标文件的配置,并将目标文件进行分区挂载,从而获得含有目标文件的Zygote父进程。Init进程先读取目标文件进行分区挂载,而Zygote父进程是由Init进程的Service方式启动,因此Zygote父进程也含有所有目标文件的分区数据。
[0015] 在一些具体实施例中,在S2步骤中,Zygote父进程通过fork函数形成独立于Zygote父进程且含有目标文件的Zygote子进程。根据应用程序的执行请求,Zygote父进程fork函数孵化出Zygote子进程,因此,Zygote子进程也含有所有的目标文件资源和Zygote父进程中的权限控制器。
[0016] 在一些具体实施例中,Zygote子进程为应用程序创建执行运行环境。所有应用程序进程都是由Zygote子进程形成独立沙箱运行。
[0017] 在一些具体实施例中,权限控制器用于监控应用程序请求执行的访问权限和运行时的权限控制。权限控制器用于判断应用程序进程运行前是否拥有对那些配置好的目标文件的访问权限和当允许访问后对该应用程序进程行为的监控。
[0018] 在一些具体实施例中,运行时的权限控制为是否可读,是否可写,是否可执行。提高对应用程序实行单独控制权限,从而使得对应用程序进程控制粒度更细。
[0019] 另一方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述实施例的方法。
[0020] 第三方面,本申请实施例提供了一种用于Android文件的安全防护的系统,该系统包括:
[0021] 系统启动单元:配置用于基于系统启动时,通过Init进程创建Zygote父进程;
[0022] 接收激活单元:配置用于当Zygote父进程接收到应用程序的请求,将Zygote父进程分叉出Zygote子进程,同时激活被设置于Zygote父进程的权限控制器;
[0023] 访问权限单元:配置用于利用权限控制器,Zygote子进程判断应用程序的访问权限,并制定无权限目标文件列表,从而获得无权限分区列表;
[0024] 暂停关联单元:配置用于暂停应用程序的进程,通过Linux内核中的API关联到应用程序进程的mount namespace;以及
[0025] 卸载运行单元:配置用于卸载mount namespace的无权限分区列表,并恢复应用程序的进程。
[0026] 本申请提供的一种用于Android文件的安全防护方法和系统。其中,通过在Zygote进程内设置权限控制器,并利用权限控制器制定无权限分区列表,进而卸载无权限分区内的目标文件,从而达到对应用程序隐藏目标文件的目的。通过利用Android的现有文件系统设置从应用程序访问的环境中根源卸载目标文件,从而有效实现对目标文件的隐藏,同时,在单个应用程序进程配置单独的权限控制器,可以使Zygote进程对应用程序的控制粒度更细,对目标文件进行有效的保护,防止信息数据泄露。本方法区别于传统基于Linux权限控制方案,即基于Linux文件系统分区挂载存放的方式来存放目标文件,从而达到目标文件对应用程序进程隐藏的效果,更好的保护系统的安全,保障用户的隐私。附图说明
[0027] 通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
[0028] 图1是根据本申请实施例中的一种用于Android文件的安全防护方法的流程图
[0029] 图2是根据本申请的一个具体实施例的用于Android文件的安全防护方法的进程示意架构图;
[0030] 图3是根据本申请实施例的一种用于Android文件的安全防护系统的示意性结构框图
[0031] 图4适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。

具体实施方式

[0032] 下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
[0033] 需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
[0034] 图1示出了根据本申请实施例中的一种用于Android文件的安全防护方法的流程图。如图1所示,该方法包括启动系统,接收激活进程、访问权限、暂停关联和卸载运行的步骤。
[0035] 在步骤S1中:基于系统启动时,通过Init进程创建Zygote父进程。
[0036] 在该步骤中,Android系统的Zygote进程是所有应用程序进程的父进程,Zygote进程是由Init进程以服务(Service)的方式启动的,在这个过程中,Zygote进程会从Init进程的挂载分区命名空间(mount namespace)中独立出来,形成新的namespace。
[0037] 在步骤S2中:当Zygote父进程接收到应用程序的请求,Zygote父进程通过分叉获得Zygote子进程,同时激活被设置于Zygote父进程的权限控制器。
[0038] 在该步骤中,Android应用程序是用Java语言开发出来的,而Java语言必须由虚拟机解释执行,利用虚拟机的原理,当Zygote父进程接收到应用程序的运行请求时,Zygote父进程fork出来,并独立形成各自mount namespace的Zygote子进程,用于形成应用程序的执行运行环境。这也就是Init的mount namespace为其他所有进程共享的原因。在Zygote父进程中设置有权限控制器,在收到应用程序的运行请求时,权限控制器也被激活,用于对应用程序进程权限的控制可以监控。
[0039] 在步骤S3中:利用权限控制器判断应用程序的访问权限,并制定无权限目标文件列表,从而获得无权限分区列表。
[0040] 在该步骤中,权限控制器被设置在Zygote进程,通过fork函数出来的应用程序进程也都含有对应该应用程序进程的权限控制器,通过权限控制器判断该权限控制器对应的应用程序中各个分区资源是否可以被应用程序进程访问,并指定该应用程序的无权限目标文件列表,从而获得无权限分区列表。
[0041] 在步骤S4中:暂停应用程序的进程,通过Linux内核中的API关联到应用程序进程的mount namespace。
[0042] 在该步骤中,通过Linux内核中的应用程序接口(Application Program Interface,API)关联到应用程序进度,当应用程序对指定的API进行调用时,通过一些技术手段截获对该函数的调用,将对该函数调用重定到指定的代理函数中的一技术,以便执行下一步Zygote进程对无权限分区列表的卸载操作。
[0043] 在步骤S5中:卸载mount namespace的无权限分区列表,并恢复应用程序的进程。
[0044] 在该步骤中,在Zygote进程执行卸载应用程序进程中无权限分区列表后,在恢复应用程序进程的运行状态。由于应用程序进程里面就已经卸载掉了所有无访问权限的目标文件分区,因此应用程序进程不管用什么方式都无法判断出系统中是否存被卸载目标文件,从根源上避免应用程序对目标文件的访问,从而增强对无权限的应用程序进程隐藏目标文件的效果,提高Android文件的安全防护功能。
[0045] 在一些具体的实施例中,当Zygote父进程接受应用程序的执行请求,Zygote父进程便会迅速的通过自我复制一个Zygote子进程用来加载应用程序。在自我复制的过程中,会调用Linux中的Fork函数,Fork函数执行完成后Zygote子进程和Zygote父进程完全一样,都含有目标文件资源和权限控制器,唯一不同的是这两个虚拟机在不同的进程空间中,也就符合应用程序的沙箱隔离。
[0046] 在一些具体的实施例中,在执行步骤S1之前要将目标文件以配置文件的形式设置好各个目标文件要进行挂载的分区。当然,设置的方式有很多种,其中以配置文件的形式只是本申请中列举的其中一种。
[0047] 在一些具体的实施例中,由Init进程读取配置文件并根据配置将各个目标文件分别挂载到对应的分区中,因此,在Iint进程的mount namespace中也有了所有目标文件的分区数据。
[0048] 在一些具体的实施例中,在Zygote进程启动之后,同时启动该Zygote进程分区权限控制器,这个分区权限控制器的主要作用就是用于判断随后启动的应用程序进程是否拥有对那些配置好的目标文件资源的访问权限。
[0049] 在一些优选的实施例中,权限控制器用于监控应用程序请求执行的访问权限和运行时的权限控制。权限控制器用于判断应用程序进程运行前是否拥有对那些配置好的目标文件的访问权限和当允许访问后对该应用程序进程行为的监控。
[0050] 在进一步优选的实施例中,运行时的权限控制为是否可读,是否可写,是否可执行。提高对应用程序实行单独控制权限,从而使得对应用程序进程控制粒度更细。
[0051] 在一些具体的实施例中,应用程序进程通过Zygote进程fork出来之,因此应用程序进程由于继承了Zygote的mount namespace,此时的应用程序进程也已经挂载好了所有的目标文件,Zygote进程先通过权限控制器判断出该应用程序进程拥有哪些资源的访问权限,并列出那些无访问权限的资源列表。
[0052] 继续参考图2,其示出了根据本申请的一个具体实施例的用于Android文件的安全防护方法的进程示意架构图。该方法主要分为目标文件的分区挂载和APP进程权限特殊资源的分区数据处理以上两大步骤。
[0053] 第一大步:目标文件的分区挂载
[0054] 步骤(1.1):启动Init进程。
[0055] 步骤(1.2):由Init进程读取配置文件并根据配置将各个特殊的资源文件分别挂载到对应的挂载(mount)分区中;在Iint进程的mount namespace中就有了所有的特殊资源的分区数据。
[0056] 第二大步:APP进程权限特殊资源的分区数据处理
[0057] 步骤(2.1):启动Zygote进程。
[0058] 步骤(2.2):在Zygote进程启动之后同时激活Zygote进程内的分区权限控制器。
[0059] 步骤(2.3):当接收到App1和App2执行请求时,Zygote进程分别fork出App1进程和App2进程。
[0060] 步骤(2.4):Zygote进程通过分区权限控制器对目标进程分区访问权限判断,判断当前进程对各资源分区的权限,并列出App1进程的无访问权限目标文件列表为/b,App2进程的无访问权限目标文件列表为/a,返回无访问权限的分区列表。
[0061] 步骤(2.5):暂停目标进程,分别单独卸载(umount)无访问权限分区。
[0062] 步骤(2.6):恢复目标进程。
[0063] 在一些具体的实施例中,可以通过Zygote父进程中的分区权限控制器对目标进程分区访问权限判断,也可以通过fork出App1进程和App2进程的各Zygote子进程中的分区权限控制器进行对目标进程分区访问权限判断。
[0064] 在进一步优选实施例中,当通过fork出App1进程和App2进程的各Zygote子进程中的分区权限控制器进行对目标进程分区访问权限判断时,在步骤(2.4)中,获得列出App1进程的无权限目标文件列表为/b,App2进程的无权限目标文件列表为/a,执行返回App1进程和App2进程的各自对应Zygote子进程中的对应无权限分区列表。
[0065] 在进一步优选实施例中,当目标进程被分区权限控制器允许进行访问后,目标进程对目标文件的权限为是否可读,是否可写,是否可执行。对应用程序实行单独控制权限,从而使控制粒度更细。
[0066] 在一些具体的实施例中,在步骤(1.2)中,通过Init进程读取目标文件的配置,并将目标文件进行分区挂载,从而获得含有目标文件的Zygote进程。Init进程先读取目标文件进行分区,而Zygote进程是由Init进程的Service方式启动,因此Zygote进程也含有所有目标文件的分区数据。
[0067] 在一些具体的实施例中,在步骤(2.1)中,Zygote进程通过Init进程的Service方式启动,并且独立于Init进程的mount namespace。Zygote进程是由Init初始化进程以Service的方式启动的,在这个过程中,Zygote进程会从Init进程的mount namespace中单独独立出来。
[0068] 此外,本申请还提出了一种用于Android文件的安全防护系统。其中如图3所示,包括:系统启动单元301、接收激活单元302、访问权限单元303、暂停关联单元304和卸载运行单元305。其中,通过系统启动单元301,创建Zygote父进程,当接收激活单元302收到应用程序执行进程的请求,激活权限控制器,利用访问权限单元303获得无权限分区列表,最后通过执行暂停关联单元304和卸载运行单元305完成对无权限访问的应用程序进行隐藏目标文件,从而提高安全性能的目的。
[0069] 系统启动单元301:配置用于基于系统启动时,通过Init进程创建Zygote父进程。
[0070] 接收激活单元302:配置用于当Zygote父进程接收到应用程序的请求,将Zygote父进程分叉出Zygote子进程,同时激活被设置于Zygote父进程的权限控制器。
[0071] 访问权限单元303:配置用于利用权限控制器,Zygote子进程判断应用程序的访问权限,并制定无权限目标文件列表,从而获得无权限分区列表。
[0072] 暂停关联单元304:配置用于暂停应用程序的进程,通过Linux内核中的API关联到应用程序进程的mount namespace。
[0073] 卸载运行单元305:配置用于卸载mount namespace的无权限分区列表,并恢复应用程序的进程。
[0074] 下面参考图4,其示出了适于用来实现本申请实施例的电子设备的计算机系统400的结构示意图。图4示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
[0075] 如图4所示,计算机系统400包括中央处理单元(CPU)401,其可以根据存储在只读存储器(ROM)402中的程序或者从存储部分408加载到随机访问存储器(RAM)403中的程序而执行各种适当的动作和处理。在RAM 403中,还存储有系统400操作所需的各种程序和数据。CPU 401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
[0076] 以下部件连接至I/O接口405:包括键盘鼠标等的输入部分406;包括诸如、液晶显示器(LCD)等以及扬声器等的输出部分407;包括硬盘等的存储部分408;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器410也可以根据需要连接至I/O接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。
[0077] 特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分409从网络上被下载和安装,和/或从可拆卸介质411被安装。在该计算机程序被中央处理单元(CPU)401执行时,执行本申请的方法中限定的上述功能。
[0078] 需要说明的是,本申请的计算机可读介质可以是计算机可读信号介质或者计算机可读介质或者是上述两者的任意组合。计算机可读介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
[0079] 可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0080] 附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0081] 描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括系统启动单元、接收激活单元、访问权限单元、暂停关联单元和卸载运行单元。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,系统启动单元还可以被描述为“基于系统启动时,通过Init进程创建Zygote父进程”。
[0082] 作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:系统启动单元、接收激活单元、访问权限单元、暂停关联单元和卸载运行单元。其中,系统启动单元:配置用于基于系统启动时,通过Init进程创建Zygote父进程;接收激活单元:配置用于当Zygote父进程接收到应用程序的请求,将Zygote父进程分叉出Zygote子进程,同时激活被设置于Zygote父进程的权限控制器;访问权限单元:配置用于利用权限控制器,Zygote子进程判断应用程序的访问权限,并制定无权限目标文件列表,从而获得无权限分区列表;暂停关联单元:配置用于暂停应用程序的进程,通过Linux内核中的API关联到应用程序进程的mount namespace;以及卸载运行单元:配置用于卸载mount namespace的无权限分区列表,并恢复应用程序的进程。
[0083] 以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈