首页> 中国专利> 一种Android混合HAL的管理方法及系统

一种Android混合HAL的管理方法及系统

摘要

本发明提供一种Android混合HAL的管理方法及系统,所述方法包括:基于硬件设备特性创建代理HAL文件库,并对所述代理HAL文件库的配置文件添加覆盖字段;将所述代理HAL文件库挂载至Android文件库的目录中,以使Android系统域在HAL路径初始化时基于所述配置文件将所述代理HAL文件库与原有的虚拟通用HAL文件库进行覆盖合并。通过实施本发明实施例能够在基于Android HAL的硬件设备上同时运行Linux操作系统和Android系统,并提高设备兼容性和硬件特性支持度。

著录项

  • 公开/公告号CN113835768A

    专利类型发明专利

  • 公开/公告日2021-12-24

    原文格式PDF

  • 申请/专利权人 北京鲸鲮信息系统技术有限公司;

    申请/专利号CN202111427763.0

  • 发明设计人 李翔;

    申请日2021-11-29

  • 分类号G06F9/4401(20180101);G06F9/448(20180101);G06F8/71(20180101);

  • 代理机构11002 北京路浩知识产权代理有限公司;

  • 代理人任少瑞

  • 地址 100080 北京市海淀区西大街39号2层2005

  • 入库时间 2023-06-19 13:49:36

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-05-13

    专利申请权的转移 IPC(主分类):G06F 9/4401 专利申请号:2021114277630 登记生效日:20220505 变更事项:申请人 变更前权利人:北京鲸鲮信息系统技术有限公司 变更后权利人:北京字节跳动网络技术有限公司 变更事项:地址 变更前权利人:100080 北京市海淀区西大街39号2层2005 变更后权利人:100041 北京市石景山区实兴大街30号院3号楼2层B-0035房间

    专利申请权、专利权的转移

说明书

技术领域

本发明涉及计算机技术领域,尤其涉及一种Android混合HAL的管理方法及系统。

背景技术

目前,在基于Android HAL的硬件设备上的Linux系统运行Android系统时,为了设备兼容性需要,通常采用通用方案。这些以Android采用虚拟设备的通用方案,存在以下性能问题:对于设备的硬件特性无法完美支持;应用无法识别真正设备类型,这样会导致出现诸如无法通过GMS设备认证以及应用的风控等问题。

发明内容

本发明提供一种Android混合HAL的管理方法、系统、电子设备及存储介质,用以解决上述技术问题,能够在基于Android HAL的硬件设备上同时运行Linux操作系统和Android系统,并提高设备兼容性和硬件特性支持度。

本发明提供一种Android混合HAL的管理方法,包括:

基于硬件设备特性创建代理HAL文件库,并对所述代理HAL文件库的配置文件添加覆盖字段;

将所述代理HAL文件库挂载至Android文件库的目录中,以使Android系统域在HAL路径初始化时基于所述配置文件将所述代理HAL文件库与原有的虚拟通用HAL文件库进行覆盖合并。

在一个实施例中,所述将所述代理HAL文件库挂载至Android文件库的目录中,以使Android系统域在HAL路径初始化时基于所述配置文件将所述代理HAL文件库与原有的虚拟通用HAL文件库进行覆盖合并,包括:

将所述代理HAL文件库挂载至Android文件库的目录中,以使Android系统域在HAL路径初始化时,基于所述配置文件将所述虚拟通用HAL文件库中的目标HAL文件替换为所述代理HAL文件库的HAL文件;其中,所述目标HAL文件的文件类型与所述代理HAL文件库的HAL文件类型相对应。

在一个实施例中,所述的Android混合HAL的管理方法还包括:

利用预设的互斥机制或预设的分时复用机制对所述代理HAL文件库与Linux系统共同调用HAL的过程进行调用协调管理。

在一个实施例中,所述基于硬件设备特性创建代理HAL文件库,包括:

根据硬件设备特性构建HAL调用接口,基于所述HAL调用接口创建所述代理HAL文件库。

在一个实施例中,所述对所述代理HAL文件库的配置文件添加覆盖字段,具体为:

在所述代理HAL文件库的manifest文件中添加override字段。

在一个实施例中,所述代理HAL文件库中的HAL文件为ODM HAL文件。

在一个实施例中,所述将所述代理HAL文件库挂载至Android文件库的目录中,具体为:

将所述代理HAL文件库挂载至Android文件库的odm目录中。

本发明还提供一种Android混合HAL的管理系统,包括:

文件配置模块,用于基于硬件设备特性创建代理HAL文件库,并对所述代理HAL文件库的配置文件添加覆盖字段;

文件挂载模块,用于将所述代理HAL文件库挂载至Android文件库的目录中,以使Android系统域在HAL路径初始化时基于所述配置文件将所述代理HAL文件库与原有的虚拟通用HAL文件库进行覆盖合并。

本发明还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述Android混合HAL的管理方法的步骤。

本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述Android混合HAL的管理方法的步骤。

本发明提供的Android混合HAL的管理方法、系统、电子设备及存储介质,通过构建与硬件设备特性相关联的代理HAL文件库,并配置覆盖字段,从而使得Android系统域在加载Android文件库的时候将原有的虚拟通用HAL文件库的对应部分替换为代理HAL文件库的文件,从而使得Android系统域可以通过代理HAL文件库调用真实的Android HAL,进而能够在基于Android HAL的硬件设备上同时运行Linux操作系统和Android系统,并提高设备兼容性和硬件特性支持度。

附图说明

为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的Android混合HAL的管理方法的流程示意图;

图2是本发明实施例提供的Android混合HAL的调用方式示意图;

图3是本发明实施例提供的Android混合HAL的管理系统的结构示意图;

图4是本发明实施例提供的电子设备的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明实施例提供一种Android混合HAL的管理方法,可以包括步骤:

S1、基于硬件设备特性创建代理HAL文件库,并对所述代理HAL文件库的配置文件添加覆盖字段;

S2、将所述代理HAL文件库挂载至Android文件库的目录中,以使Android系统域在HAL路径初始化时基于所述配置文件将所述代理HAL文件库与原有的虚拟通用HAL文件库进行覆盖合并。

在本发明实施例中,首先创建一个能够支持硬件设备特性的代理HAL文件库,该代理HAL文件库可以在接收到HAL调用请求时,转发调用至真实的Android HAL(可以包括Hardware Android Vendor HAL和ODM HAL),从而使得Android系统域能够通过该代理HAL文件库兼容特定硬件的特性。在创建代理HAL文件库时,需要在其配置文件中添加覆盖字段,例如在manifest文件中进行override配置,以使Android系统域在初始化的时候对原有的相关HAL文件进行覆盖。

本发明实施例提供的Android混合HAL的管理方法,通过构建与硬件设备特性相关联的代理HAL文件库,并配置覆盖字段,从而使得Android系统域在加载Android文件库的时候将原有的虚拟通用HAL文件库的对应部分替换为代理HAL文件库的文件,从而使得Android系统域可以通过代理HAL文件库调用真实的Android HAL,进而能够在基于AndroidHAL的硬件设备上同时运行Linux操作系统和Android系统,并提高设备兼容性和硬件特性支持度。

在一个实施例中,步骤S2可以包括:

将所述代理HAL文件库挂载至Android文件库的目录中,以使Android系统域在HAL路径初始化时,基于所述配置文件将所述虚拟通用HAL文件库中的目标HAL文件替换为所述代理HAL文件库的HAL文件;其中,所述目标HAL文件的文件类型与所述代理HAL文件库的HAL文件类型相对应。

需要说明的是,代理HAL文件库中不一定包括原有的所有类型的HAL文件,例如:原有的虚拟通用HAL文件库中包括有Android Vendor HAL和Android ODM HAL,而代理HAL文件库主要为ODM HAL文件,则在覆盖字段的配置下,Android系统域在HAL路径初始化时,只会对虚拟通用HAL文件库中相应类型的目标HAL文件(Android ODM HAL)进行替换(覆盖),其他没有被替换的HAL文件依然按原有的方式进行调用(即通过Virtual Vendor HAL进行HAL的访问)。

本发明实施例提供的Android混合HAL的管理方法,通过对特定的硬件特性创建相应的代理HAL文件库,并对原有的虚拟通用HAL文件库中相应类型的目标HAL文件进行替换,从而能够对部分HAL进行直接访问真实硬件的HAL,替代了通过Virtual Vendor HAL来访问HAL的方式,既保证了Andorid系统的设备兼容性,又可以实现Andriod系统对于设备硬件特性、设备类型信息等的支持。另外,通过区分HAL类型进行配置,并仅对相应类型的HAL进行替换,有效简化了实现过程的复杂度,并提高系统的可靠性。

在一个实施例中,所述的Android混合HAL的管理方法还可以包括步骤:

S3、利用预设的互斥机制或预设的分时复用机制对所述代理HAL文件库与Linux系统共同调用HAL的过程进行调用协调管理。

需要说明的是,Android Domain调用Proxy ODM HAL以及Linux系统直接调用Android Vendor HAL和ODM HAL时会存在调用冲突的问题,本发明实施例通过采用互斥或分时复用机制对这一问题进行调用控制,从而克服这一调用冲突问题,有效提高了系统运行的稳定性和可靠性。

在一个实施例中,所述基于硬件设备特性创建代理HAL文件库,包括:

根据硬件设备特性构建HAL调用接口,基于所述HAL调用接口创建所述代理HAL文件库。

在本发明实施例中,代理HAL文件库的创建过程首先是根据硬件设备特性构建HAL调用接口,在基于HAL调用接口创建所述代理HAL文件库,通过接口的形式来实现AndroidDomain通过代理HAL文件库直接调用Android HAL层,从而能够简化实现的复杂度。

在一个实施例中,所述对所述代理HAL文件库的配置文件添加覆盖字段,具体为:

在所述代理HAL文件库的manifest文件中添加override字段。

在本发明实施例中,对所述代理HAL文件库的配置文件添加覆盖字段的方式可以为:在所述代理HAL文件库的manifest文件中添加override字段。可以理解的是,AndroidDomain在启动时,根据VINTF机制,会扫描odm、vendor路径的manifest文件,并做相关合并。由于代理 HAL文件库的文件都配置了override,因此会覆盖掉Virtual Vendor的相对应的HAL。从而使得Android系统域可以通过代理HAL文件库调用真实的Android HAL,进而能够在基于Android HAL的硬件设备上同时运行Linux操作系统和Android系统,并提高设备兼容性和硬件特性支持度。

在一个实施例中,所述代理HAL文件库中的HAL文件为ODM HAL文件。进一步地,所述将所述代理HAL文件库挂载至Android文件库的目录中,具体为:

将所述代理HAL文件库挂载至Android文件库的odm目录中。

在本发明实施例中,代理HAL文件库中的文件为与设备特性相关联的ODM HAL文件,其中,在挂载时是将代理HAL文件库挂载至Android文件库的odm目录中。通过配置ODMHAL文件并挂载到对应的odm目录下,在Android Domain启动时即可依据VINTF机制扫描odm、vendor路径的manifest文件,并做相关合并。由于代理 HAL文件库的文件都配置了override,因此会覆盖掉Virtual Vendor的相对应的HAL。从而使得Android系统域可以通过代理HAL文件库调用真实的Android HAL,进而能够在基于Android HAL的硬件设备上同时运行Linux操作系统和Android系统,并提高设备兼容性和硬件特性支持度。

基于上述方案,为便于更好的理解本发明实施例提供的Android混合HAL的管理方法,以下列举具体实例进行详细说明:

为了便于阅读,先对文中部分名词进行解释:

HAL:Hardware Abstract Layer,硬件抽象层;

Android Domain:表示基于Linux系统上运行的Android系统域;

VINTF:Android系统机制,Vendor Interface object,指的是android 8.0分离system和vendor分区的机制之一,用来检查system和vendor依赖是否匹配。

Vendor HAL:一般芯片厂商提供的基于某款芯片的通用vendor HAL;

ODM HAL:一般ODM厂商基于某款芯片的特定设备的HAL。

如图2所示,本发明实施例的具体实现过程如下:

1、首先,和通用的Linux运行Android系统一样,将一套完整的Virtual HAL安装到Android Domain文件系统的vendor目录。这样Android Domain打包进一套通用的VirtualVendor HAL。

2、通过Linux系统创建一套设备相关(基于硬件设备特性创建)的Proxy ODM HAL文件库。该Proxy ODM HAL在接收到调用请求后,能够转发调用给真实的Hardware AndroidVendor HAL和ODM HAL。

同时,该Proxy ODM HAL还可以通过互斥或分时复用机制,解决Android Domain调用Proxy ODM HAL以及Linux系统直接调用Android Vendor HAL和ODM HAL时出现的冲突问题。

另外在Proxy ODM HAL的manifest文件中,所有的HAL都设置上override配置。

3、Linux准备好Android Domain Proxy ODM HAL之后,将Proxy ODM HAL mountbind(挂载)到Android文件系统的odm目录。

4、Android Domain在启动时,根据VINTF机制,会扫描odm、vendor路径的manifest文件,并对文件进行相关合并。由于odm路径中的Proxy ODM HAL都配置了override,因此会覆盖掉Virtual Vendor的相对应的HAL。

通过以上步骤,只要通过Proxy ODM HAL直接访问真实硬件的HAL,就可以替换掉相对应的标准的Android Virtual Vendor HAL进行HAL访问的方式。因此这样一套AndroidDomian的HAL混合机制,既可以保证Android Domain的通用兼容性,又可实现对于特定硬件的支持。

下面对本发明提供的Android混合HAL的管理系统进行描述,下文描述的Android混合HAL的管理系统与上文描述的Android混合HAL的管理方法可相互对应参照。

请参见图3,本发明实施例提供了一种Android混合HAL的管理系统,包括:

文件配置模块1,用于基于硬件设备特性创建代理HAL文件库,并对所述代理HAL文件库的配置文件添加覆盖字段;

文件挂载模块2,用于将所述代理HAL文件库挂载至Android文件库的目录中,以使Android系统域在HAL路径初始化时基于所述配置文件将所述代理HAL文件库与原有的虚拟通用HAL文件库进行覆盖合并。

在一个实施例中,文件挂载模块2具体用于:

将所述代理HAL文件库挂载至Android文件库的目录中,以使Android系统域在HAL路径初始化时,基于所述配置文件将所述虚拟通用HAL文件库中的目标HAL文件替换为所述代理HAL文件库的HAL文件;其中,所述目标HAL文件的文件类型与所述代理HAL文件库的HAL文件类型相对应。

在一个实施例中,所述的Android混合HAL的管理方法还包括:

调用管理模块,用于利用预设的互斥机制或预设的分时复用机制对所述代理HAL文件库与Linux系统共同调用HAL的过程进行调用协调管理。

在一个实施例中,所述文件配置模块1具体用于:

根据硬件设备特性构建HAL调用接口,基于所述HAL调用接口创建所述代理HAL文件库。

在一个实施例中,所述文件配置模块1具体还用于:

在所述代理HAL文件库的manifest文件中添加override字段。

在一个实施例中,所述代理HAL文件库中的HAL文件为ODM HAL文件。

在一个实施例中,所述将所述代理HAL文件库挂载至Android文件库的目录中,具体为:

将所述代理HAL文件库挂载至Android文件库的odm目录中。

可以理解的是上述系统项实施例,是与本申请方法项实施例相对应的,本申请实施例提供的Android混合HAL的管理系统,可以实现本申请任意一项方法项实施例提供的Android混合HAL的管理方法。

本案实施例的Android混合HAL的管理系统的工作原理与上述实施例的Android混合HAL的管理方法是相应的,此处不再一一赘述。

图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行所述的Android混合HAL的管理方法,该方法包括:基于硬件设备特性创建代理HAL文件库,并对所述代理HAL文件库的配置文件添加覆盖字段;将所述代理HAL文件库挂载至Android文件库的目录中,以使Android系统域在HAL路径初始化时基于所述配置文件将所述代理HAL文件库与原有的虚拟通用HAL文件库进行覆盖合并。

此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各实施例所提供的Android混合HAL的管理方法,该方法包括:基于硬件设备特性创建代理HAL文件库,并对所述代理HAL文件库的配置文件添加覆盖字段;将所述代理HAL文件库挂载至Android文件库的目录中,以使Android系统域在HAL路径初始化时基于所述配置文件将所述代理HAL文件库与原有的虚拟通用HAL文件库进行覆盖合并。

又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的Android混合HAL的管理方法,该方法包括:基于硬件设备特性创建代理HAL文件库,并对所述代理HAL文件库的配置文件添加覆盖字段;将所述代理HAL文件库挂载至Android文件库的目录中,以使Android系统域在HAL路径初始化时基于所述配置文件将所述代理HAL文件库与原有的虚拟通用HAL文件库进行覆盖合并。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号