[英]Building Android Automotive emulator with bluetooth support
我一直在嘗試構建一個安卓汽車模擬器來啟用藍牙支持。 https://source.android.com/devices/automotive/start/passthrough上有說明。 但是,這些說明留下了很多空白,我需要在制作 android 自定義構建方面更有經驗的人的建議。
系統:
我正在單獨的 Linux 計算機上構建,但我計划在 Windows 上使用 AVD 圖像。 我正在構建一個 x86 64 位變體。
當前狀態:
我已經構建了一個 android AVD 映像,並且我已經構建了一個自定義的 goldfish-kernel-54(沒有修改),如鏈接說明的上一部分中所述。 我能夠在模擬器中運行圖像。 現在我需要添加藍牙支持。
問題:
我將引用說明並解釋我所做的事情。 我會加粗我不確定或讓我卡住的部分。
核心:
- 將缺少的
btusb.ko
添加到您的內核中:
該倉庫中沒有“goldfish_defconfig”文件。 但是,有文件“common/arch/x86/configs/x86_64_defconfig”。 那是正確的文件嗎?
來賓機器人:
- 在
vendor.mk
文件中,包括 Linux 本機 HIDL 和幾個權限:
修改文件“device/generic/goldfish/vendor.mk”,應該沒問題。
- 創建單向路徑屬性以切換 HIDL,使其使用 Linux 本機 HIDL 實現
說明告訴我修改文件“selinux/common/domain.te”和“selinux/common/property_contexts”。 但是,沒有文件夾“selinux”。 我修改了文件“device/generic/goldfish/sepolicy/common/property_contexts”和“device/generic/goldfish/sepolicy/common/property_contexts”。 這些文件是否正確?
- 每當將屬性 qemu.preferred.bt.service 設置為通過時,您將關閉 HIDL 實現
service btlinux-1.1 /vendor/bin/hw/android.hardware.bluetooth@1.1-service.btlinux
class hal
user bluetooth
group bluetooth net_admin net_bt_admin
capabilities NET_ADMIN NET_RAW SYS_NICE
disabled
on property:qemu.preferred.bt.service=passthrough
stop vendor.bluetooth-1-1
start btlinux-1.1
這是我完全卡住的部分。 我應該如何處理提供的代碼片段? 我應該修改一些現有文件還是添加新文件,在哪里?
- 添加藍牙配置文件以獲得完整功能,例如在真實 USB 設備上
hal/bluetooth/bdroid_buildcfg.h
#ifndef _BDROID_BUILDCFG_H
#define _BDROID_BUILDCFG_H
#define BTM_DEF_LOCAL_NAME "gCar Emulator"
#define BTA_AV_SINK_INCLUDED TRUE
/* Handsfree device */
#define BTA_DM_COD {0x26, 0x04, 0x08}
#endif
在這里我也被困住了。 我應該如何處理提供的代碼? 我應該修改哪個文件?
- 修改
BoardConfig.mk
文件,確定配置文件的保存位置
我修改了文件“device/google_car/avd_car/avd_car_device/BoardConfig.mk”(按照給定說明在早期階段創建)。 這是正確的文件,還是我應該修改金魚文件夾中的一些文件?
提前感謝您的任何建議!
你需要做一些修改
該倉庫中沒有“goldfish_defconfig”文件。 但是,有文件“common\/arch\/x86\/configs\/x86_64_defconfig”。 那是正確的文件嗎?
根據文檔,提到了位於common-modules\/virtual-device<\/em>中的goldfish_defconfig.fragment<\/strong>
修改文件“device\/generic\/goldfish\/vendor.mk”,應該沒問題。
是的,如果您使用的是 google 提供的 AAOS 模擬器,則該文件是正確的
說明告訴我修改文件“selinux\/common\/domain.te”和“selinux\/common\/property_contexts”。 但是,沒有文件夾“selinux”。 我修改了文件“device\/generic\/goldfish\/sepolicy\/common\/property_contexts”和“device\/generic\/goldfish\/sepolicy\/common\/property_contexts”。 這些文件是否正確?
是的,這些是正確的文件
這是我完全卡住的部分。 我應該如何處理提供的代碼片段? 我應該修改一些現有文件還是添加新文件,在哪里?
在system\/bt\/vendor_libs\/linux\/interface\/<\/em>文件夾中有一個名為android.hardware.bluetooth@1.1-service.btlinux.rc<\/strong>的 rc 文件
在這里我也被困住了。 我應該如何處理提供的代碼? 我應該修改哪個文件?
一個文件bdroid_buildcfg.h<\/strong>這是在建\/化妝\/目標\/板\/ mainline_arm64 \/藍牙\/ bdroid_buildcfg.h<\/em>
我修改了文件“device\/google_car\/avd_car\/avd_car_device\/BoardConfig.mk”(按照給定說明在早期階段創建)。 這是正確的文件,還是我應該修改金魚文件夾中的一些文件?
您可以使用相同的vendor.mk<\/strong>文件來擁有位於device\/generic\/goldfish\/vendor.mk 中的配置<\/em>
構建金魚內核后,您需要復制驅動程序和內核映像
構建模擬器並運行。 我希望你能連接BT設備"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.