基于Android容器的设备隔离方法及其终端与流程

文档序号:11261873阅读:214来源:国知局
基于Android容器的设备隔离方法及其终端与流程

本发明涉及android系统设备隔离技术领域,尤其涉及一种基于android容器的设备隔离方法及其终端。



背景技术:

随着电子产品的高速发展,在android上基于容器的多系统方法已经被提了出来,其中实现了进程隔离,文件系统隔离,网络隔离等。由于每一容器的目的不同,具体应用不同,其提供的服务也有所不同,其对应使用的外部设备也不同。出于安全的考虑,在具体实施上没有必要让每一容器看到所有的外部设备的节点,而现有技术还没解决上述技术问题。

因此,亟需一种安全性能高的每一容器只能够看到自己所需要的外部设备的节点的基于android容器的设备隔离方法及其终端。



技术实现要素:

本发明的目的在于提供一种基于android容器的设备隔离方法,以实现每个容器只能够看到自己所需要的外部设备,增强了android容器的隔离性和安全性。

本发明的另一目的在于提供一种基于android容器的设备隔离终端,以实现每个容器只能够看到自己所需要的外部设备,增强了android容器的隔离性和安全性。

为实现上述目的,本发明提供了一种基于android容器的设备隔离方法,其包括:

(1)建立每一容器与所述容器需要的外部设备的对应关系;

(2)监听外部设备的连接状态的变化,在任一外部设备的连接状态发生变化时查询需要该外部设备的容器;

(3)对需要该外部设备的容器进行添加或删除该外部设备的节点的操作。

与现有技术相比,本发明先建立每一个容器与该容器需要的外部设备的对应关系,在任一外部设备的连接状态发生变化时,仅对需要该外部设备的容器进行添加或删除该外部设备的节点的操作,使得每个容器只能够看到自己所需要的外部设备,当不同的用户使用不同的容器时,该用户只能查看到当前容器下的所需要的外部设备,增强了android容器的隔离性和安全性,进一步提升了android容器的安全系数。

较佳地,所述步骤(1)具体包括:

分析每一容器对外部设备的需求;

分别在每一容器上保存该容器对外部设备的需求信息。

较佳地,所述步骤(2)具体包括:

在任一外部设备的连接状态发生变化时,该外部设备提请内核空间发送uevent广播;

监听uevent广播,根据监听到的uevent广播查询提请内核空间发送所述uevent广播的外部设备,查询需要该外部设备的容器。

较佳地,所述步骤(3)具体包括:

将所述uevent广播发送至需要该外部设备的容器上,所述容器依据所述uevent广播进行添加或删除该外部设备的节点的操作。

较佳地,所述外部设备的连接状态包括插入状态和拔出状态,

所述步骤(2)中:在任一外部设备的连接状态发生变化时,该外部设备提请内核空间发送添加外部设备的节点的uevent广播或删除外部设备的节点的uevent广播,所述外部设备的连接状态的变化为插入状态时,所述uevent广播为添加外部设备的节点的uevent广播;所述外部设备的连接状态的变化为拔出状态时,所述uevent广播为删除外部设备的节点的uevent广播;

所述步骤(3)中:所述容器依据添加外部设备的节点的uevent广播进行添加该外部设备的节点的操作,所述容器依据删除设备节点的uevent广播进行删除该外部设备的节点的操作。

较佳地,所述步骤(2)中,在任一外部设备的连接状态发生变化时查询需要该外部设备的容器具体包括:

根据每一容器的所述需求信息判断该外部设备是否被该容器支持,若是则该容器为需要该外部设备的容器。

相应的,本发明还提供了一种基于android容器的设备隔离终端,其包括:

处理器,适于实现各项指令;以及

存储设备,适于存储各项指令,所述指令适于由处理器加载并执行:

(1)建立每一容器与所述容器需要的外部设备的对应关系;

(2)监听外部设备的连接状态的变化,在任一外部设备的连接状态发生变化时查询需要该外部设备的容器;

(3)对需要该外部设备的容器进行添加或删除该外部设备的节点的操作。

较佳地,所述处理器执行所述步骤(1)的指令具体包括:

分析每一容器对外部设备的需求;

分别在每一容器上保存该容器对外部设备的需求信息。

较佳地,所述处理器执行所述步骤(2)的指令具体包括:

在任一外部设备的连接状态发生变化时,该外部设备提请内核空间发送uevent广播;

监听uevent广播,根据监听到的uevent广播查询提请内核空间发送所述uevent广播的外部设备,查询需要该外部设备的容器。

较佳地,所述处理器执行所述步骤(3)的指令具体包括:

将所述uevent广播发送至需要该外部设备的容器上,所述容器依据所述uevent广播进行添加或删除该外部设备的节点的操作。

较佳地,所述外部设备的连接状态包括插入状态和拔出状态,

所述处理器执行所述步骤(2)中的指令:在任一外部设备的连接状态发生变化时,该外部设备提请内核空间发送添加外部设备的节点的uevent广播或删除外部设备的节点的uevent广播,所述外部设备的连接状态的变化为插入状态时,所述uevent广播为添加外部设备的节点的uevent广播;所述外部设备的连接状态的变化为拔出状态时,所述uevent广播为删除外部设备的节点的uevent广播;

所述处理器执行所述步骤(3)中的指令:所述容器依据添加外部设备的节点的uevent广播进行添加该外部设备的节点的操作,所述容器依据删除设备节点的uevent广播进行删除该外部设备的节点的操作。

较佳地,所述处理器执行所述步骤(2)的指令中,在任一外部设备的连接状态发生变化时查询需要该外部设备的容器的指令具体包括:

根据每一容器的所述需求信息判断该外部设备是否被该容器支持,若是则该容器为需要该外部设备的容器。

通过以下的描述并结合附图,本发明将变得更加清晰,这些附图用于解释本发明的实施例。

附图说明

图1是本发明的基于android容器的设备隔离方法的主流程图。

图2是本发明的步骤s101的流程图。

图3是本发明的步骤s102的流程图。

图4是本发明的步骤s103的流程图。

图5是本发明的基于android容器的设备隔离终端的结构框图。

具体实施方式

现在参考附图描述本发明的实施例,附图中类似的元件标号代表类似的元件。

请参考图1,本发明基于android容器的设备隔离方法包括:

s101,建立每一容器与所述容器需要的外部设备的对应关系。其中,每一容器可以对应若干外部设备,任一外部设备也可以对应多个容器。

s102,监听外部设备的连接状态的变化,在任一外部设备的连接状态发生变化时查询需要该外部设备的容器。其中,外部设备的连接状态发生变化时,该外部设备提请内核空间发送对应的uevent广播,依据uevent广播查询需要该外部设备的容器。

s103,对需要该外部设备的容器进行添加或删除该外部设备的节点的操作。具体地,当步骤s102查询到容器需要该外部设备时,将该uevent广播发送到需要该外部设备的容器上,并对需要该外部设备的容器进行添加或删除该外部设备的节点的操作。

需要说明的是,uevent广播是一种在内核空间和用户空间之间通信的机制,主要用于监听外部设备的连接状态的变化。内核空间可以发送uevent广播,每一容器通过对应的用户空间可以监听内核空间发送的uevent广播。

如图2所示,步骤s101具体包括:

s1011,分析每一容器对外部设备的需求。其中,在android的启动过程中,分析每一容器对外部设备的不同需求;

s1012,分别在每一容器上保存该容器对外部设备的需求信息。其中,在步骤s1011中,android分析了每一容器对外部设备的不同需求,为每一容器保存该容器对外部设备的需求信息,该需求信息可以独立保存于对应的容器上,也可以以隔离的方式保存在内核空间上,故在此不以为限。

如图3所示,步骤s102具体包括:s1021,在任一外部设备的连接状态发生变化时,该外部设备提请内核空间发送uevent广播;s1022,监听uevent广播,根据监听到的uevent广播查询提请内核空间发送所述uevent广播的外部设备,查询需要该外部设备的容器。

具体地,android的用户空间有一个ueventd的后台服务,该ueventd用于监听内核空间发送的uevent广播;本发明通过用户空间的ueventd监听来自内核空间的uevent广播,ueventd是netlink的一种,而netlink属于网络子系统,在具体操作时,通过将uevent挂载在不同的netnamespace上,当通过该uevent发送uevent广播时,就可以将该uevent广播发送到指定的容器上。需要说明的是,本发明提及的不同容器就是不同的namespace。

较佳者,在步骤s102中,在任一外部设备的连接状态发生变化时,查询需要该外部设备的容器具体包括:根据每一容器的所述需求信息判断该外部设备是否被该容器支持,若是则该容器为需要该外部设备的容器,依次查询各个容器从而得到需要该外部设备的所有容器。

如图4所示,步骤s103具体包括:s1031,将所述uevent广播发送至需要该外部设备的容器上,所述容器依据所述uevent广播进行添加或删除该外部设备的节点的操作。具体地,当ueventd监听到来自内核空间的uevent广播后,通过在/dev下用mknod的方式创建和删除外部设备的节点。更具体地,对于支持可热插拔的外部设备,插入外部设备时,内核空间判断外部设备是否已经被内核空间支持,若是则添加该外部设备并发送类型为add的uevent广播,此时ueventd在监听到该uevent广播后在/dev下创建该外部设备的节点,从而建立所述外部设备与所述容器的连接关系;拔出外部设备时,内核空间发送类型为remove的uevent广播,ueventd在监听到该uevent广播后在/dev下将该外部设备的节点进行删除,从而中断所述外部设备与所述容器的连接关系。

请参考图1-图4,外部设备的连接状态包括插入状态和拔出状态,在步骤s102中:在任一外部设备的连接状态发生变化时,该外部设备提请内核空间发送添加外部设备的节点的uevent广播或删除外部设备的节点的uevent广播。其中,所述外部设备的连接状态的变化为插入状态时,所述uevent广播为添加外部设备的节点的uevent广播;所述外部设备的连接状态的变化为拔出状态时,所述uevent广播为删除外部设备的节点的uevent广播。在步骤s103中:所述容器依据添加外部设备的节点的uevent广播进行添加该外部设备的节点的操作,所述容器依据删除设备节点的uevent广播进行删除该外部设备的节点的操作。

请参考图5,相应地,本发明还提供了一种基于android容器的设备隔离终端100,包括处理器1和存储设备2,所述处理器1适于实现各项指令;所述存储设备2适于存储各项指令。所述指令适于由处理器1加载并执行,所述指令包括:建立每一容器与所述容器需要的外部设备的对应关系;监听外部设备的连接状态的变化,在任一外部设备的连接状态发生变化时查询需要该外部设备的容器;对需要该外部设备的容器进行添加或删除该外部设备的节点的操作。

较佳者,处理器1执行所述建立每一容器与所述容器需要的外部设备的对应关系的指令具体包括:分析每一容器对外部设备的需求;分别在每一容器上保存该容器对外部设备的需求信息。

较佳者,处理器1执行所述监听外部设备的连接状态的变化,在任一外部设备的连接状态发生变化时查询需要该外部设备的容器的指令具体包括:在任一外部设备的连接状态发生变化时,该外部设备提请内核空间发送uevent广播;监听uevent广播,根据监听到的uevent广播查询提请内核空间发送所述uevent广播的外部设备,查询需要该外部设备的容器。

较佳者,处理器1执行所述对需要该外部设备的容器进行添加或删除该外部设备的节点的操作的指令具体包括:将所述uevent广播发送至需要该外部设备的容器上,所述容器依据所述uevent广播进行添加或删除该外部设备的节点的操作。

较佳者,所述外部设备的连接状态包括插入状态和拔出状态,处理器1执行所述监听外部设备的连接状态的变化,在任一外部设备的连接状态发生变化时查询需要该外部设备的容器中的指令时:在任一外部设备的连接状态发生变化时,该外部设备提请内核空间发送添加外部设备的节点的uevent广播或删除外部设备的节点的uevent广播。其中,所述外部设备的连接状态的变化为插入状态时,所述uevent广播为添加外部设备的节点的uevent广播;所述外部设备的连接状态的变化为拔出状态时,所述uevent广播为删除外部设备的节点的uevent广播。处理器1执行所述对需要该外部设备的容器进行添加或删除该外部设备的节点的操作中的指令时:所述容器依据添加外部设备的节点的uevent广播进行添加该外部设备的节点的操作,所述容器依据删除设备节点的uevent广播进行删除该外部设备的节点的操作。

较佳者,处理器1执行所述监听外部设备的连接状态的变化,在任一外部设备的连接状态发生变化时查询需要该外部设备的容器中的指令时,在任一外部设备的连接状态发生变化时查询需要该外部设备的容器的指令具体包括:根据每一容器的所述需求信息判断该外部设备是否被该容器支持,若是则该容器为需要该外部设备的容器。

以上所揭露的仅为本发明的优选实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明申请专利范围所作的等同变化,仍属本发明所涵盖的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1