CN113505011B - 权限同步方法、装置、电子设备与存储介质 - Google Patents
权限同步方法、装置、电子设备与存储介质 Download PDFInfo
- Publication number
- CN113505011B CN113505011B CN202111046737.3A CN202111046737A CN113505011B CN 113505011 B CN113505011 B CN 113505011B CN 202111046737 A CN202111046737 A CN 202111046737A CN 113505011 B CN113505011 B CN 113505011B
- Authority
- CN
- China
- Prior art keywords
- operating system
- shared memory
- memory area
- permission
- information
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明提供一种权限同步方法、装置、电子设备与存储介质,方法包括:从运行在第一操作系统环境的第二操作系统中获取待同步的第一权限信息集合;将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中;第一操作系统从所述共享内存区域中读取权限信息。本发明提供的权限同步方法、装置、电子设备与存储介质,通过将第二操作系统的第一权限信息集合传输到第一操作系统的共享内存区域,使得第一操作系统可在需要时从共享内存区域读取权限信息,从而实现了权限信息的快速同步,避免了第一操作系统重新设置权限信息所带来的效率低下的问题。
Description
技术领域
本发明涉及计算机操作系统技术领域,尤其涉及一种权限同步方法、装置、电子设备与存储介质。
背景技术
安卓(Android)是基于Linux内核的操作系统。为了扩展Linux OS发行版的应用生态,可以通过虚拟机、容器等方式实现在Linux OS中运行安卓应用。
发明内容
本发明提供一种权限同步方法、装置、电子设备与存储介质。
本发明提供一种权限同步方法,包括:
从运行在第一操作系统环境的第二操作系统中获取待同步的第一权限信息集合;
将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中;
Linux进程从所述第一操作系统的共享内存区域中读取权限信息。
根据本发明提供的一种权限同步方法,所述将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中,包括:
通过mmap映射的方式将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中。
根据本发明提供的一种权限同步方法,所述将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中,包括:
在第一操作系统与第二操作系统之间建立socket连接;
通过所述socket连接将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中。
根据本发明提供的一种权限同步方法,在所述将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中之后,方法还包括:
在第二操作系统中设置第一监控进程;其中,所述第一监控进程用于监控所述共享内存区域;
在所述共享内存区域中所存储的权限信息发生变化的情况下,从第二操作系统获取待同步的第二权限信息集合,并传输、保存在第一操作系统的共享内存区域中。
根据本发明提供的一种权限同步方法,在所述将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中之后,方法还包括:
在第一操作系统中设置第二监控进程;其中,所述第二监控进程用于监控所述共享内存区域;
在所述共享内存区域中所存储的权限信息发生变化的情况下,从第二操作系统获取待同步的第二权限信息集合,并传输、保存在第一操作系统的共享内存区域中。
根据本发明提供的一种权限同步方法,在所述将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中之后,方法还包括:
将所述第一权限信息集合写入存储装置。
根据本发明提供的一种权限同步方法,所述将所述第一权限信息集合写入存储装置,包括:
检查预设的第一标志信息;其中,所述第一标志信息与所述第一权限信息集合中的第一权限信息相对应,所述第一权限信息为所述第一权限信息集合中的任意一个权限信息;
在所述的第一标志信息为第一状态值的情况下,将所述第一权限信息实时写入磁盘;
在所述的标志信息为第二状态值的情况下,在一定的时延之后,再将所述第一权限信息写入存储装置。
根据本发明提供的一种权限同步方法,在所述从第二操作系统获取待同步的第二权限信息集合,并传输、保存在第一操作系统的共享内存区域中之后,方法还包括:
将所述第二权限信息集合写入存储装置。
本发明还提供了一种权限同步装置,包括:
权限信息获取模块,用于从运行在第一操作系统环境的第二操作系统中获取待同步的第一权限信息集合;
权限信息传输及存储模块,用于将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中;
权限信息读取模块,用于第一操作系统从所述第一操作系统的共享内存区域中读取权限信息。
本发明还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如所述权限同步方法的步骤。
本发明还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如所述权限同步方法的步骤。
本发明提供的权限同步方法、装置、电子设备与存储介质,通过将第二操作系统中的第一权限信息集合传输到第一操作系统的共享内存区域,使得第一操作系统可在需要时从共享内存区域读取权限信息,从而实现了权限信息的快速同步,避免了在第一操作系统中重新设置权限信息所带来的效率低下的问题。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的权限同步方法的流程图;
图2是本发明提供的权限同步方法在一个实施例中的实现示意图;
图3为本发明提供的权限同步装置的示意图;
图4是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
通过虚拟机、容器等方式实现Linux OS、Windows等支持Android OS中的应用是可行的。申请人意识到,移动端操作系统,例如Android、iOS等,实现了对应用和系统功能的权限管理,这是传统桌面端操作系统中所不存在的,如果要较好的实现对移动端应用的支持,防止其对宿主操作系统的功能造成干扰或恶意使用权限,需要在桌面端兼容移动端应用的权限和属性。
申请人同样意识到,在宿主Android系统中运行虚拟Android系统也是可行的,例如VMOS、光速虚拟机等方案,均实现了在Android OS中运行Android OS。在该类技术方案中,同样面临宿主操作系统无法获得、管理虚拟Android系统中的权限的问题。
在发明人所尝试的技术方案中,一种方式是在宿主操作系统开发专门的跨系统权限属性管理功能,在宿主端和移动端分别对移动端的每个应用和系统功能进行权限设定。在申请人的研究中发现这种方式不仅开发压力大,而且给用户带来了很大的使用负担,过于繁琐,且容易出现由于疏忽导致的权限设定冲突的情况。
在下述实施例中,第二操作系统包括各种具有对应用和功能具有权限管理的移动操作系统,例如Android、iOS等,此处所称的Android包括Google的Android OS和基于AOSP的各种衍生版,如MIUI、EMUI等。
在下述实施例中,第一操作系统包括各种桌面版操作系统,例如Windows、Linux、Mac OS等,也可以是移动操作系统,例如Android等。
在下述实施例中,第二操作系统运行在第一操作系统环境中,可以是以虚拟机的方式,例如第一操作系统通过虚拟机Hypervisor支持第二操作系统;可以是通过容器Container的方式支持第二操作系统,在容器环境下,第二操作系统与第一操作系统是共享操作系统内核的。
为了说明的方便,在下述实施例中,以第二操作系统为Android、第一操作系统为Linux OS,Android以容器化的方式共享Linux OS的Linux kernel为例说明本发明实施例的实现过程。
下面结合图1-图4描述本发明的权限同步方法、装置、电子设备与存储介质。
图1为本发明的权限同步方法的流程图,如图1所示,本发明提供的权限同步方法包括:
步骤101、从运行在第一操作系统环境的第二操作系统中获取待同步的第一权限信息集合。
权限用于描述某一主体对系统中的资源是否具有访问能力。例如,一安卓应用A具有访问接口或使用某硬件a的权限,则意味着允许安卓应用A访问接口或使用某硬件a;安卓应用B不具有访问接口或使用某硬件b的权限,则意味着禁止安卓应用B访问接口或使用某硬件b。
权限信息是用于描述权限的信息。在本实施例中,所述权限信息包括权限名称信息、权限属性信息与权限值。例如,用于确定某一主体是否能够连接因特网(Internet)的权限“INTERNET”,其权限名称信息可表示为“android.permission.INTERNET”。权限属性信息用于描述权限所属分组,如权限“INTERNET”的权限属性信息为“inet”(网络),说明该权限是与网络有关的。权限值用于描述权限的等级,最为常见的权限等级包括“允许”、“禁止”,可以用逻辑值“1”、“0”表示;也可以设置更多的权限等级,以对权限进行多样化的区分。
权限信息的具体组成并不局限于上述描述,本领域技术人员可根据实际需要确定权限信息的组成。
在本实施例中,所述权限信息是在Android OS下设置的或应用在安装时系统自动为其设置的,并保存在第二操作系统中的指定位置,因此可从第二操作系统中的指定位置获取待同步的权限信息。
例如,以第二操作系统为安卓系统为例,在安卓系统框架层(framework/base/data/etc/platform.xml)下设置了前述权限“INTERNET”的如下权限信息:
<permission name=”android.permission.INTERNET”>
<group gid=”inet”>
</permission>
其中,在“permission name”字段中存储了权限名称信息“android.permission.INTERNET”,在“group gid”字段中存储了权限“INTERNET”的所属分组(即权限属性信息)。
上述权限信息会在之后的步骤中被同步到第一操作系统中,由于待同步的权限信息可以是一个,也可以是多个,其至少包括第二操作系统中的至少一个应用和/或系统功能的权限信息,在本实施例中,将这些待同步的权限信息记为待同步的第一权限信息集合。
待同步的第一权限信息集合中所包含的权限信息的类型并不局限于上述示例,事先已经在第二操作系统中设置且第一操作系统中所需要的权限信息均可作为待同步的权限信息,在本实施例中不对待同步的第一权限信息集合中所包含的权限信息的具体类型进行限定。
需要说明的是,在本实施例中,在系统初始化时运行本发明的权限同步方法,以将第二操作系统中的相关权限统一同步到第一操作系统。
步骤102、将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中。
共享内存区域是指内存区域内所存储的数据能够被两个或多个进程访问。例如,Linux OS的共享内存区域是指该内存区域内所存储的数据能够被两个或多个Linux进程访问。
在前一步骤中获取待同步的第一权限信息集合后,在本步骤中可将这些信息传输并保存在第一操作系统的共享内存区域中。
由于第一操作系统环境与第二操作系统环境存在隔离,因此需要采用特定的方式将第一权限信息集合从安卓环境传输至Linux环境。如mmap映射的方式、socket服务的方式、管道(pipe)的方式、命名管道FIFO的方式、消息队列(Message Queue)的方式、信号量(Semaphore)的方式、信号(sinal)的方式等,在本实施例中,不对待同步信息的获取传输方式进行限定。
步骤103、第一操作系统从所述共享内存区域中读取权限信息。
例如,Linux OS中的某个预设进程、应用等可自由访问第一操作系统的共享内存区域,当Linux进程或应用需要获取权限信息时,首先在第一操作系统的共享内存区域中查找,若所述共享内存区域存储了Linux进程或应用所需要的权限信息,则可从共享内存区域读取。
例如,前述权限“INTERNET”的权限信息被传输并存储到Linux系统的一块共享内存区域中,在所述共享内存区域内通过链表的方式对其引用并管理;当有Linux进程或应用需要该权限信息时,通过查找链表获取其引用,得到真实数据所在的内存地址,从而获取最终的真实数据。
本发明提供的权限同步方法通过将第二操作系统中的第一权限信息集合传输到第一操作系统的共享内存区域,可在需要时从共享内存区域读取权限信息,从而实现了权限信息的快速同步,避免了重新设置权限信息所带来的效率低下的问题。
基于上述任一实施例,在本实施例中,所述将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中,包括:
通过mmap映射的方式将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中。
mmap使得进程之间通过映射同一个文件实现共享内存,文件被映射到进程地址空间后,进程可以像访问普通内存一样对文件进行访问。
例如,从安卓系统框架层中读取第一权限信息集合,然后以进程空间访问的方式(mmap)同步到第一操作系统的Linux内核空间。由于mmap本身的特性,因此在权限信息同步时只需要做一次拷贝操作,这有助于提升将权限信息从安卓系统同步到Linux系统中的效率。
本发明提供的权限同步方法通过mmap映射的方式将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中,基于mmap映射自身的特性,这一方式能够提升将权限信息从第二操作系统同步到第一操作系统中的效率。
基于上述任一实施例,在本实施例中,所述将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中,包括:
在第一操作系统与第二操作系统之间建立socket连接;
通过所述socket连接将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中。
socket也就是套接字,它用于对网络中不同主机上的应用进程之间进行双向通信。在本实施例中,也可将socket应用于第二操作系统与第一操作系统之间的通信。具体的说,可由第一操作系统启动一个socket连接,第二操作系统作为客户端链接第一操作系统启动的socket连接,从而在第一操作系统与第二操作系统之间建立双向通信,然后可利用该socket连接将待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中。
在后续的操作中,若第一操作系统需要对第二操作系统中的权限信息进行控制操作,利用所述socket连接可直接在Linux端发送指令,而不再强制要求必须在安卓端发送指令。
本发明提供的权限同步方法通过socket连接的方式将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中,使得权限信息的同步过程更为灵活。
基于上述任一实施例,在本实施例中,在所述将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中之后,方法还包括:
在第二操作系统中设置第一监控进程;其中,所述第一监控进程用于监控所述共享内存区域;
在所述共享内存区域中所存储的权限信息发生变化的情况下,从第二操作系统获取待同步的第二权限信息集合,并传输、保存在第一操作系统的共享内存区域中。
在之前的实施例中,对权限信息的同步一般是在系统初始化时实现的。但在系统运行过程中,存在对权限信息进行变更的情况。在本实施例中,对此类情况进行讨论。
以安卓为例,可在安卓系统中定制第一监控进程,所述第一监控进程可采用WatchDog进程实现。在安卓系统启动时,所述第一监控进程可以自行启动,实现对共享内存区域的监控。
第一监控进程对共享内存区域的监控主要是对共享内存区域中的标识信息的监控,所述标识信息能够反映共享内存区域中所存储的权限信息是否发生变化。例如,某一权限信息在存储到共享内存区域后未发生变化,则该权限信息所对应的标识信息的值为“0”;之后,若该权限信息发生变化,则该权限信息所对应的标识信息的值从“0”变为“1”。标识信息与权限信息之间存在对应关系,如每个权限信息存在唯一对应的标识信息。由于待同步的权限信息的类型不限于一种,因此共享内存区域中所设置的标识信息的类型也不限于一种。
当第一监控进程通过对标识信息的监控,发现有权限信息发生变化时,可重新从第二操作系统获取待同步的权限信息,并传输、保存在第一操作系统的共享内存区域中。需要说明的是,此处所述的待同步信息可以是根据发生变化的标识信息所确定的发生变化的权限信息,也可以是第一操作系统的共享内存区域之前已存储的所有权限信息。为了将此处待同步的权限信息与系统初始化时所同步的权限信息加以区分,在本实施例中,将此处待同步的权限信息记为待同步的第二权限信息集合。第二权限信息集合可包含一个或多个待同步的权限信息。
需要说明的是,本实施例所描述的权限信息发生变化可以是用户在第二操作系统中对权限信息进行改变,如第二操作系统某个功能申请了网络权限;也可以是用户在第一操作系统中发送指令,进而对第二操作系统中的权限信息进行改变。无论是何种原因造成的权限信息发生变化,都可将改变后的权限信息同步到第一操作系统的共享内存区域中,以使得第一操作系统中的进程能够及时获得更新后的权限信息。
本发明提供的权限同步方法通过在第二操作系统中启动第一监控进程,可以对第一操作系统的共享内存区域进行监控,从而在权限信息发生变化时能够及时发现,避免权限信息未及时同步所带来的数据风险。
基于上述任一实施例,在本实施例中,在所述将所述待同步的权限信息传输并保存在第一操作系统的共享内存区域中之后,方法还包括:
在第一操作系统中设置第二监控进程;其中,所述第二监控进程用于监控所述共享内存区域;
在所述共享内存区域中所存储的权限信息发生变化的情况下,从第二操作系统获取待同步的第二权限信息集合,并传输、保存在第一操作系统的共享内存区域中。
在之前的实施例中,对权限信息的同步一般是在系统初始化时实现的。但在实际应用过程中,存在对权限信息进行变更的情况。
以Linux OS为例,可由Linux系统中的init进程启动第二进程,所述第二监控进程可采用WatchDog进程实现。
第二监控进程对共享内存区域的监控主要是对共享内存区域中的标识信息的监控,所述标识信息能够反映共享内存区域中所存储的权限信息是否发生变化。例如,某一权限信息在存储到共享内存区域后未发生变化,则该权限信息所对应的标识信息的值为“0”;之后,若该权限信息发生变化,则该权限信息所对应的标识信息的值从“0”变为“1”。标识信息与权限信息之间存在对应关系,如每个权限信息存在唯一对应的标识信息。由于待同步的权限信息的类型不限于一种,因此共享内存区域中所设置的标识信息的类型也不限于一种。
当第二监控进程通过对标识信息的监控,发现有权限信息发生变化时,可重新从第二操作系统获取待同步的权限信息,并传输、保存在第一操作系统的共享内存区域中。需要说明的是,此处所述的待同步信息可以是根据发生变化的标识信息所确定的发生变化的权限信息,也可以是第一操作系统的共享内存区域之前已存储的所有权限信息。为了将此处待同步的权限信息与系统初始化时所同步的权限信息加以区分,在本实施例中,将此处待同步的权限信息记为待同步的第二权限信息集合。第二权限信息集合可包含一个或多个待同步的权限信息。
本发明提供的权限同步方法通过在第一操作系统中启动第二监控进程,可以对第一操作系统的共享内存区域进行监控,从而在权限信息发生变化时能够及时发现,避免权限信息未及时同步所带来的数据风险。
基于上述任一实施例,在本实施例中,在所述将所述待同步的权限信息传输并保存在第一操作系统的共享内存区域中之后,方法还包括:
将所述第一权限信息集合写入存储装置。
在本实施例中,在将所述第一权限信息集合保存到共享内存区域之后,还要将所述第一权限信息集合写入存储装置。
内存中保存的信息在计算设备断电后会消失。为了实现已同步权限信息的本地永久化保存,在本实施例中,将第一权限信息集合写入存储装置。
当计算设备再次启动后,优先从本地存储装置读取第一权限信息集合,而不需要等待权限同步后再做权限信息的设置,提高了工作效率。
基于上述任一实施例,在本实施例中,所述将所述第一权限信息集合写入存储装置,包括:
检查预设的第一标志信息;其中,所述第一标志信息与所述第一权限信息集合中的第一权限信息相对应,所述第一权限信息为所述第一权限信息集合中的任意一个权限信息;
在所述的第一标志信息为第一状态值的情况下,将所述第一权限信息实时写入存储装置;
在所述的标志信息为第二状态值的情况下,在所选择的时延之后,再将所述第一权限信息写入存储装置。
在本实施例中,对第一权限信息集合中的任意一个权限信息写入磁盘的时机加以规定。为此,可预先为第一权限信息集合中的各个权限信息设置对应的标志信息,该标志信息能够反映所对应的权限信息写入磁盘的紧要程度。
若第一权限信息集合中的第一权限信息十分重要且急迫,可以将第一标志信息设置为第一状态值。当检查到第一标志信息为第一状态值时,一旦第一权限信息写入第一操作系统的共享内存区域,就需要将第一权限信息实时同步到存储装置中。这样做保证了重要权限信息的及时保存,能有效避免突发故障可能带来的风险。
若第一权限信息相对不太重要或相对不太急迫,可以将所述第一标志信息设置为第二状态值。当检查到第一标志信息为第二状态值时,在第一权限信息写入第一操作系统的共享内存区域之后,允许经历一定的时延,例如设置为30s、1min等之后,再将第一权限信息同步到存储装置中。一般来说,可在第一操作系统相对空闲的情况下,实现第一权限信息在存储装置中的存储,从而降低了第一操作系统因为存储权限信息的相关操作而被频繁打断的次数。
本实施例所描述的时延可根据实际需要确定,在本实施例中不对时延值的大小进行限制。
所述第一状态值与第二状态值可以根据需要设定,如将第一状态值设为0,将第二状态值设为1,也可以是其他的候选值,在本实施例中不对其具体取值进行限制。
本发明提供的权限同步方法通过检查预设的标志信息,确定权限信息从共享内存区域同步到存储装置的时机,从而可以根据权限信息的重要程度决定同步的时机,在数据安全与工作效率之间取得平衡。
基于上述任一实施例,在本实施例中,在所述从第二操作系统获取待同步的第二权限信息集合,并传输、保存在第一操作系统的共享内存区域中之后,方法还包括:
将所述第二权限信息集合写入存储装置。
在系统运行过程中,权限信息实时发生变化后,第二权限信息集合也被传输并保存到第一操作系统的共享内存区域中。在本实施例中,需要将所述第二权限信息集合写入存储装置,以实现第二权限信息集合中的权限信息的本地永久化保存。
第二权限信息集合写入存储装置的过程与前述第一权限信息集合写入磁盘的过程并无本质区别,因此不在此处做重复说明。
本发明提供的权限同步方法,在计算设备再次启动后,可优先从本地磁盘读取第二权限信息集合,而不需要等待安卓权限同步后再做权限信息的设置,提高了工作效率。
在本发明的实施例中,上述所称的存储装置,可以是本地磁盘,例如HDD、SSD等,也可以是外置存储装置,例如U盘、SD卡等,还可以是网络存储装置,例如局域网NAS、云存储等。
以第一操作系统为Linux OS、第二操作系统为Android为例,图2是本发明提供的权限同步方法在一个实施例中的实现示意图。参考图2,在该实施例中,可采用mmap映射的方式把Android平台相关的权限及属性同步到Linux的共享内存区域,使Linux进程可以以普通内存的方式快速进行访问。具体包括:
S1、首先把Android相关权限及属性通过mmap的方映射到一块共享内存的区域;在必要时同步到磁盘,便于系统拉起时针对状态做相关处理。同时Android端启动一个WatchDog进程,用于关注共享内存的变化,当有变化时会针对相关变化的权限做相关的事件调度调整,以达到Linux系统对Android系统控制与改变的同步能力。
S2、Linux进程可以通过普通读取内存的方式去共享内存区域读取相关的权限数据做同步处理,如果有必要启动一个单独WatchDog进程针对共享内存变化时做事件调度调整,以达到Linux系统实时监控Android权限变更的能力。
S3、当数据写入共享内存时,本发明可以通过一个标志来判断是需要实时同步磁盘,或者根据某个时机来把数据同步到磁盘,如进程关闭前等,便于下次系统启动时的一些权限可以直接通过本地读取。
在另一个实施例中,本发明提供的权限同步方法还可以通过socket的方式实现。具体包括:
S11、通过socket的方式把Android平台相关的权限及属性同步到Linux共享内存区域;
S12、Linux端启动一个socket服务,Android端作为客户端链接Linux端启动的socket服务,然后把相关权限及属性通过socket的方式同步到linux端并写入共享内存,便于Linux端相关进程可以供需获取;
S13、当Linux同步了Android端的权限后,如需要相关权限控制的操作可通过socket的方式向Android端发送相关控制请求。
下面对本发明提供的权限同步装置进行描述,下文描述的权限同步装置与上文描述的权限同步方法可相互对应参照。
图3为本发明提供的权限同步装置的示意图,如图3所示,本发明提供的权限同步装置包括:
权限信息获取模块301,用于从运行在第一操作系统环境的第二操作系统中获取待同步的第一权限信息集合;
权限信息传输及存储模块302,用于将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中;
权限信息读取模块303,用于第一操作系统从所述共享内存区域中读取权限信息。
本发明提供的权限同步装置通过将第二操作系统中的第一权限信息集合传输到第一操作系统的共享内存区域,可在需要时从共享内存区域读取权限信息,从而实现了权限信息的快速同步,避免了在第一操作系统中重新设置权限信息所带来的效率低下的问题。
基于上述任一实施例,在本实施例中,所述权限信息传输及存储模块302用于:
通过mmap映射的方式将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中。
本发明提供的权限同步装置通过mmap映射的方式将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中,基于mmap映射自身的特性,这一方式能够提升将权限信息从第二操作系统同步到第一操作系统中的效率。
基于上述任一实施例,在本实施例中,所述权限信息传输及存储模块302用于:
在第一操作系统与第二操作系统之间建立socket连接;
通过所述socket连接将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中。
本发明提供的权限同步装置通过socket的方式将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中,使得权限信息的同步过程更为灵活。
基于上述任一实施例,在本实施例中,装置还包括:
第一监控模块,用于在第二操作系统中启动第一监控进程;其中,所述第一监控进程用于监控所述共享内存区域;
二次传输及存储模块,用于在所述共享内存区域中所存储的权限信息发生变化的情况下,从第二操作系统获取待同步的第二权限信息集合,并传输、保存在第一操作系统的共享内存区域中。
本发明提供的权限同步装置通过在第二操作系统中启动第一监控进程,可以对第一操作系统的共享内存区域进行监控,从而在权限信息发生变化时能够及时发现,避免权限信息未及时同步所带来的数据风险。
基于上述任一实施例,在本实施例中,装置还包括:
第二监控模块,用于在第一操作系统中启动第二监控进程;其中,所述第二监控进程用于监控所述共享内存区域;
二次传输及存储模块,在所述共享内存区域中所存储的权限信息发生变化的情况下,从第二操作系统获取待同步的第二权限信息集合,并传输、保存在第一操作系统的共享内存区域中。
本发明提供的权限同步装置通过在第一操作系统中启动第二监控进程,可以对第一操作系统的共享内存区域进行监控,从而在权限信息发生变化时能够及时发现,避免权限信息未及时同步所带来的数据风险。
基于上述任一实施例,在本实施例中,装置还包括:
第一写入模块,用于将所述第一权限信息集合写入存储装置。
本发明提供的权限同步装置在计算设备再次启动后,优先从本地磁盘读取第一权限信息集合,而不需要等待安卓权限同步后再做权限信息的设置,提高了工作效率。
基于上述任一实施例,在本实施例中,所述第一写入模块,包括:
标志信息检查单元,用于检查预设的第一标志信息;其中,所述第一标志信息与所述第一权限信息集合中的第一权限信息相对应,所述第一权限信息为所述第一权限信息集合中的任意一个权限信息;
实时写入单元,用于在所述的第一标志信息为第一状态值的情况下,将所述第一权限信息实时写入存储装置;
延时写入单元,用于在所述的标志信息为第二状态值的情况下,在一定的时延之后,再将所述第一权限信息写入存储装置。
本发明提供的权限同步装置通过检查预设的标志信息,确定权限信息从共享内存区域同步到存储装置的时机,从而可以根据权限信息的重要程度决定同步的时机,在数据安全与工作效率之间取得平衡。
基于上述任一实施例,在本实施例中,装置还包括:
第二写入模块,用于将所述第二权限信息集合写入存储装置。
本发明提供的权限同步装置,在计算设备再次启动后,可优先从本地磁盘读取第二权限信息集合,而不需要等待安卓权限同步后再做权限信息的设置,提高了工作效率。
图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行权限同步方法,该方法包括:
从第二操作系统中获取待同步的第一权限信息集合;
将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中;
第一操作系统从所述共享内存区域中读取权限信息。
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的权限同步方法,该方法包括:
从运行在第一操作系统环境的第二操作系统中获取待同步的第一权限信息集合;
将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中;
第一操作系统从所述共享内存区域中读取权限信息。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的权限同步方法,该方法包括:
从运行在第一操作系统环境的第二操作系统中获取待同步的第一权限信息集合;
将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中;
第一操作系统从所述共享内存区域中读取权限信息。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种权限同步方法,其特征在于,包括:
从运行在第一操作系统环境的第二操作系统中获取待同步的第一权限信息集合;
将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中;
第一操作系统从所述共享内存区域中读取权限信息;
在第二操作系统中设置第一监控进程;其中,所述第一监控进程用于监控所述共享内存区域;
在所述共享内存区域中所存储的权限信息发生变化的情况下,从第二操作系统获取待同步的第二权限信息集合,并传输、保存在第一操作系统的共享内存区域中。
2.根据权利要求1所述的权限同步方法,其特征在于,所述将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中,包括:
通过mmap映射的方式将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中。
3.根据权利要求1所述的权限同步方法,其特征在于,所述将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中,包括:
在第一操作系统与第二操作系统之间建立socket连接;
通过所述socket连接将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中。
4.根据权利要求1所述的权限同步方法,其特征在于,在所述将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中之后,方法还包括:
在第一操作系统中设置第二监控进程;其中,所述第二监控进程用于监控所述共享内存区域;
在所述共享内存区域中所存储的权限信息发生变化的情况下,从第二操作系统获取待同步的第二权限信息集合,并传输、保存在第一操作系统的共享内存区域中。
5.根据权利要求1所述的权限同步方法,其特征在于,在所述将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中之后,方法还包括:
将所述第一权限信息集合写入存储装置。
6.根据权利要求1所述的权限同步方法,其特征在于,将所述第一权限信息集合写入存储装置,包括:
检查预设的第一标志信息;其中,所述第一标志信息与所述第一权限信息集合中的第一权限信息相对应,所述第一权限信息为所述第一权限信息集合中的任意一个权限信息;
在所述的第一标志信息为第一状态值的情况下,将所述第一权限信息实时写入存储装置;
在所述的标志信息为第二状态值的情况下,在所选择的时延之后,再将所述第一权限信息写入存储装置。
7.根据权利要求1或4所述的权限同步方法,其特征在于,在所述从第二操作系统获取待同步的第二权限信息集合,并传输、保存在第一操作系统的共享内存区域中之后,方法还包括:
将所述第二权限信息集合写入存储装置。
8.一种权限同步装置,其特征在于,包括:
权限信息获取模块,用于从运行在第一操作系统环境的第二操作系统中获取待同步的第一权限信息集合;
权限信息传输及存储模块,用于将所述待同步的第一权限信息集合传输并保存在第一操作系统的共享内存区域中;
权限信息读取模块,用于第一操作系统从所述共享内存区域中读取权限信息;
第一监控模块,用于在第二操作系统中启动第一监控进程;其中,所述第一监控进程用于监控所述共享内存区域;
二次传输及存储模块,用于在所述共享内存区域中所存储的权限信息发生变化的情况下,从第二操作系统获取待同步的第二权限信息集合,并传输、保存在第一操作系统的共享内存区域中。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述权限同步方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述权限同步方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111046737.3A CN113505011B (zh) | 2021-09-08 | 2021-09-08 | 权限同步方法、装置、电子设备与存储介质 |
PCT/CN2022/104353 WO2023035754A1 (zh) | 2021-09-08 | 2022-07-07 | 权限同步方法、装置、电子设备与存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111046737.3A CN113505011B (zh) | 2021-09-08 | 2021-09-08 | 权限同步方法、装置、电子设备与存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113505011A CN113505011A (zh) | 2021-10-15 |
CN113505011B true CN113505011B (zh) | 2021-12-07 |
Family
ID=78016458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111046737.3A Active CN113505011B (zh) | 2021-09-08 | 2021-09-08 | 权限同步方法、装置、电子设备与存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113505011B (zh) |
WO (1) | WO2023035754A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113505011B (zh) * | 2021-09-08 | 2021-12-07 | 北京鲸鲮信息系统技术有限公司 | 权限同步方法、装置、电子设备与存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109976925A (zh) * | 2019-03-27 | 2019-07-05 | 北京翼辉信息技术有限公司 | 一种基于混合多系统核间实时通信的方法和系统 |
CN111259408A (zh) * | 2018-12-03 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 应用权限管理及检查方法、装置、设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942178A (zh) * | 2014-03-03 | 2014-07-23 | 浙江大学 | 多核处理器上实时操作系统与非实时操作系统之间的通信方法 |
CN105138398B (zh) * | 2015-09-30 | 2019-09-27 | 山东乾云启创信息科技股份有限公司 | 同步通信模式下socket通信与进程管理通用平台及方法 |
CN108183871B (zh) * | 2017-11-23 | 2019-03-12 | 北京三快在线科技有限公司 | 一种虚拟交换机、虚拟交换机启动方法,电子设备 |
US10579520B2 (en) * | 2017-11-30 | 2020-03-03 | Webroot Inc. | Multi-ring shared, traversable, and dynamic advanced database |
CN108369604B (zh) * | 2017-12-28 | 2021-12-03 | 深圳前海达闼云端智能科技有限公司 | 一种多操作系统共享文件系统的方法、装置和电子设备 |
CN113505011B (zh) * | 2021-09-08 | 2021-12-07 | 北京鲸鲮信息系统技术有限公司 | 权限同步方法、装置、电子设备与存储介质 |
-
2021
- 2021-09-08 CN CN202111046737.3A patent/CN113505011B/zh active Active
-
2022
- 2022-07-07 WO PCT/CN2022/104353 patent/WO2023035754A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111259408A (zh) * | 2018-12-03 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 应用权限管理及检查方法、装置、设备及存储介质 |
CN109976925A (zh) * | 2019-03-27 | 2019-07-05 | 北京翼辉信息技术有限公司 | 一种基于混合多系统核间实时通信的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2023035754A1 (zh) | 2023-03-16 |
CN113505011A (zh) | 2021-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10817386B2 (en) | Virtual machine recovery method and virtual machine management device | |
US7328437B2 (en) | Management of locks in a virtual machine environment | |
CN109842651B (zh) | 一种业务不间断的负载均衡方法和系统 | |
WO2017008675A1 (zh) | 一种用于虚拟化环境下传输数据的方法与设备 | |
CN106469085B (zh) | 虚拟机在线迁移方法、装置及系统 | |
US11809901B2 (en) | Migrating the runtime state of a container between two nodes | |
US8375200B2 (en) | Embedded device and file change notification method of the embedded device | |
EP3680787A1 (en) | Method for synchronization between primary database and standby database, database system and device | |
CN102385523A (zh) | 一种云操作系统的驱动安装和管理方法 | |
US10609141B2 (en) | Methods and apparatuses for cluster switching | |
US10635604B2 (en) | Extending a cache of a storage system | |
CN114281484B (zh) | 数据传输方法、装置、设备及存储介质 | |
CN109391694B (zh) | 基于sftp的文件传输方法及相关设备 | |
CN113626286A (zh) | 多集群实例处理方法、装置、电子设备及存储介质 | |
CN111782318A (zh) | 远程挂载本地磁盘到云桌面虚拟机中共享访问系统及方法 | |
EP3384384A1 (en) | Methods and devices for acquiring data using virtual machine and host machine | |
US20140082275A1 (en) | Server, host and method for reading base image through storage area network | |
CN113505011B (zh) | 权限同步方法、装置、电子设备与存储介质 | |
US9032484B2 (en) | Access control in a hybrid environment | |
CN108563492B (zh) | 数据获取方法、虚拟机以及电子设备 | |
US20150212898A1 (en) | Data migration method and systems | |
CN115291998A (zh) | 一种rbd-nbd映射方法及装置 | |
CN105302662B (zh) | 一种多机备份的方法和系统 | |
CN111506321B (zh) | 软件运行环境的装载方法及系统 | |
CN108733822A (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220401 Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing. Patentee after: BEIJING BYTEDANCE NETWORK TECHNOLOGY Co.,Ltd. Address before: 2005, floor 2, No. 39, West Street, Haidian District, Beijing 100082 Patentee before: Beijing jingling Information System Technology Co.,Ltd. |