簡體   English   中英

構建支持藍牙的 Android Automotive 模擬器

[英]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(沒有修改),如鏈接說明的上一部分中所述。 我能夠在模擬器中運行圖像。 現在我需要添加藍牙支持。

問題:

我將引用說明並解釋我所做的事情。 我會加粗我不確定或讓我卡住的部分。

核心:

  1. 將缺少的btusb.ko添加到您的內核中:

該倉庫中沒有“goldfish_defconfig”文件。 但是,有文件“common/arch/x86/configs/x86_64_defconfig”。 那是正確的文件嗎?

來賓機器人:

  1. vendor.mk文件中,包括 Linux 本機 HIDL 和幾個權限:

修改文件“device/generic/goldfish/vendor.mk”,應該沒問題。

  1. 創建單向路徑屬性以切換 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”。 這些文件是否正確?

  1. 每當將屬性 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

這是我完全卡住的部分。 我應該如何處理提供的代碼片段? 我應該修改一些現有文件還是添加新文件,在哪里?

  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

在這里我也被困住了。 我應該如何處理提供的代碼? 我應該修改哪個文件?

  1. 修改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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM