[英]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.