簡體   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