繁体   English   中英

在AOSP项目中,哪里可以找到Android HAL的实际实现源代码?

[英]Where can I find source code of actual implementation of Android HALs in AOSP project?

我开始从aosp项目中学习android os内部知识。 在阅读了有关android HAL的内容之后,我有兴趣研究了一些与内核驱动程序有关的HAL模块的实际实现。 我在android / hardware / interfaces下找到的是某种粘合代码。 此粘合代码必须加载实际的HAL模块,该模块可能会打开某些设备并与实际硬件通信。

那么在哪里可以找到与真实硬件相关的HAL的实际实现呢?

我基本上是在看图形堆栈,如果有人可以指出hwcomposer和gralloc的HAL实现,那就太好了。 在Android模拟器中使用的通用或开源代码。

我从另一个论坛得知,它是由OEM提供的。 但是考虑到Android模拟器,我希望在aosp下的某个地方找到它们。 至少对于某些通用组件。

考虑到SOC供应商提供了一些HAL,并且同一HAL的还有开源版本(假设供应商hwcomposer和drm_hwcomposer)在哪里配置了,使用哪个?

任何了解HAL代码流的资源链接也将有所帮助。

那么在哪里可以找到与真实硬件相关的HAL的实际实现呢?

HAL实现必须由供应商/ OEM提供。 在这里可以找到源。

对于大多数HAL而言,Android附带了一个虚拟实现,通常仅提供最低限度的标准来避免系统崩溃,这令人惊讶地很少。 我还没有检查所有HAL。 您可以在hardware/interfaces/<hal>/<version>/default找到这些虚拟实现。 有时,它们hardware/libhardware实现包装在旧的HAL接口下的hardware/libhardware 找到真实硬件/内核访问的最佳机会就在那里。 但是,这些实现可能已过时,不再使用。

考虑到SOC供应商提供了一些HAL,并且同一HAL的还有开源版本(假设供应商hwcomposer和drm_hwcomposer)在哪里配置了,使用哪个?

必须在设备清单(例如device/<vendor>/<board>/device.mk )中配置将要包含在设备中的HAL实现:

PRODUCT_PACKAGES += hwcomposer.<vendor>

任何了解HAL代码流的资源链接也将有所帮助。

一个很好的资源是https://source.android.com/devices/architecture/hidl上的官方文档。

由于Android几乎更改了与Android 8有关的HAL界面的所有内容,因此可以通过搜索有关Treble文章来找到更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM