fuchsia.bluetooth.sys

新增日期:7

通訊協定

存取權

定義於 fuchsia.bluetooth.sys/access.fidl

抽象藍牙一般存取設定檔中定義的作業模式和程序的通訊協定 (請參閱「核心規格 v5.1」、「Vo 3」、「Part C」)。

此通訊協定下程序適用於整個系統。在這些程序中扮演有效角色的藍牙控制器可以使用 HostWatcher 通訊協定管理。

當基礎管道關閉時,存取權通訊協定執行個體發起的程序將會終止。

連線

啟動與指定的 id 的對等點連線。這個方法會連結 BR/EDR 和 LE 傳輸,視對等點已知支援的技術而定。

  • 要求 id。要連線的對等點 ID。
  • 如果無法啟動與對等點的連線,請回報 Error.FAILED
  • 如果無法辨識 id,則回報 Error.PEER_NOT_FOUND

要求

名稱類型
id fuchsia.bluetooth/PeerId

回應

名稱類型
payload Access_Connect_Result

中斷連線

將所有邏輯連結連結到指定 id 的對等點。這包括使用所有 Access 和 fuchsia.bluetooth.le 通訊協定執行個體啟動的 LE 和 BR/EDR 連結。

  • 要求 id 要中斷連線的對等點 ID。
  • 如果無法辨識 id,則回報 Error.PEER_NOT_FOUND

要求

名稱類型
id fuchsia.bluetooth/PeerId

回應

名稱類型
payload Access_Disconnect_Result

清除

移除所有連結資訊,並將現有連結與指定 id 的對等點取消連結。

  • 要求 id。要忘記的對等點 ID。
  • 如果無法辨識 id,則回報 Error.PEER_NOT_FOUND

要求

名稱類型
id fuchsia.bluetooth/PeerId

回應

名稱類型
payload Access_Forget_Result

MakeDiscoverable

在 BR/EDR 傳輸上,讓系統進入「一般可探索」模式。主動式主機會回應一般查詢 (定期進入查詢掃描模式)。

  • 錯誤回報錯誤。無法輸入查詢模式時,發生錯誤。

要求

名稱類型
token server_end<ProcedureToken>

回應

名稱類型
payload Access_MakeDiscoverable_Result

配對

啟動與指定 options 的遠端 id 配對。 配對程序完成後或取消,這項呼叫才會完成。如果沒有找到與 id 的連線對等點,或配對程序失敗,則會傳回錯誤。如果已命名的對等點已配對,則系統會立即傳回成功值,除非配對超過 LE,且 PairingOptions.le_security_level 的安全性高於目前的安全等級,此時我們會嘗試將安全性提高至所要求的層級。

配對將優先採用 options.transport 指出的傳輸設定。如果目前未連線該傳輸,配對作業就會失敗與 Error.PEER_NOT_FOUND。目前,如果系統要求 DUAL_MODE,我們會嘗試透過 LE 傳輸進行配對。

  • 要求 id。要用來啟動配對的對等點 ID
  • 要求 options 此配對要求所使用的設定選項
  • 如果無法辨識 id,或在要求的傳輸上未連線對等互連,則錯誤回報 Error.PEER_NOT_FOUND
  • 如果傳送的格式錯誤選項,則錯誤回報 Error.INVALID_ARGUMENTS
  • 配對期間發生錯誤時,錯誤回報 Error.FAILED

要求

名稱類型
id fuchsia.bluetooth/PeerId
options PairingOptions

回應

名稱類型
payload Access_Pair_Result

SetDeviceClass

設定本機裝置類別,讓系統在系統處於可偵測模式時,向附近的同業顯示該類別。

  • 要求 device_class。要指派給系統的裝置類別。

要求

名稱類型
device_class fuchsia.bluetooth/DeviceClass

SetLocalName

為藍牙系統指定本機名稱。當系統處於可探索模式及命名程序期間,附近對等使用者就會看到這個名稱。

  • 要求 name 要指派給系統的完整本機名稱。

要求

名稱類型
name fuchsia.bluetooth/DeviceName

SetPairingDelegate

指派 PairingDelegate 以回應雲端硬碟配對程序。委派代表會設定為使用所提供的 I/O 功能判斷配對方法。

一次只能註冊一個 PairingDelegate。如果關閉 PairingDelegate,系統會取消所有與委派代表相關的進行中配對程序,並關閉先前指派給此存取權執行個體的 PairingDelegate。

  • 要求 input 藍牙輸入能力
  • 要求 output 藍牙輸出能力
  • 要求 delegate 用戶端已完成 PairingDelegate 管道。

淘汰 - 這個方法已納入 fuchsia.bluetooth.sys/Pairing 通訊協定中。末日光明

https://fxbug.dev/42180744 進一步瞭解遷移作業。

已淘汰:HEAD 已新增:7

要求

名稱類型
input InputCapability
output OutputCapability
delegate PairingDelegate

StartDiscovery

啟動一般探索程序。所有一般可偵測的 BR/EDR、LE 和 BR/EDR/LE 裝置都會顯示在同類群組清單中,您可以透過呼叫 fuchsia.bluetooth.sys/Access.WatchPeers 查看。

  • 錯誤回報錯誤。如果無法啟動任何傳輸的探索作業,則錯誤回報。

要求

名稱類型
token server_end<ProcedureToken>

回應

名稱類型
payload Access_StartDiscovery_Result

WatchPeers

傳回系統已知的所有對等裝置 (可連線的藍牙裝置) 清單。第一次呼叫會產生快照,將所有已知對等端的快照立即傳送至 updated 回傳量計。只有在最近一次呼叫後回報的項目中新增、修改或移除項目時,後續呼叫才會收到回應。

  • 回應 updated 自上次呼叫 WatchPeers() 後新增或更新的同類應用程式。
  • 回應 removed 自上次呼叫 WatchPeers() 後遭移除的對等 ID。

要求

<EMPTY>

回應

名稱類型
updated vector<Peer>
removed vector<fuchsia.bluetooth/PeerId>

啟動

定義於 fuchsia.bluetooth.sys/bootstrap.fidl

用於初始化永久核心藍牙資料的通訊協定。此通訊協定會填入可判斷這部裝置身分的資料,讓這些資料判斷其他藍牙裝置的辨識結果。

這個通訊協定只能在核心藍牙主機子系統產生其身分之前取得。修訂初始資料後,這項能力就會無法使用,即使已連接新的藍牙轉接器,也無法使用此功能。

基於涉及隱私和連接密鑰的功能,以及讓這部裝置使用其他裝置的藍牙身分的能力,這個通訊協定只應暴露可保證資料來源的特定特殊權限元件。

AddIdentities

將 ID 新增至未填入的藍牙堆疊。

重複呼叫會附加身分。

要求

名稱類型
identities vector<Identity>

提交

將所有新增的啟動資料寫入藍牙核心堆疊。無論是否成功,伺服器都會關閉管道。如果成功傳回且不含錯誤,即使未寫入啟動資料,系統仍會將堆疊初始化。如果任何主機或繫結的對等點資料不足或不一致,會傳回 INVALID_HOST_IDENTITY (用戶端可能會取得其他通訊協定控制代碼來重試)。

要求

<EMPTY>

回應

名稱類型
payload Bootstrap_Commit_Result

設定

定義於 fuchsia.bluetooth.sys/configuration.fidl

為核心藍牙系統設定參數和功能的通訊協定。這些設定會套用至系統已知的所有 bt-host 驅動程式。

這個通訊協定只應向高權限元件公開,例如測試/評估環境中的藍牙開發人員工具。

更新

settings 中顯示的欄位套用至系統已知的所有 bt-host 驅動程式。settings 中沒有的欄位將維持不變。

  • 要求 settings 提供使用中的 bt-host 驅動程式的新設定;只需要有修改過的設定。
  • 回應 result 套用新設定後,填入完整資料的資料表,其中包含新設定的結果。

要求

名稱類型
settings Settings

回應

名稱類型
result Settings

HostWatcher

定義於 fuchsia.bluetooth.sys/host_watcher.fidl

觀察及管理系統上藍牙控制器的通訊協定。

SetActive

將具有指定的 id 的主機指定為啟用中。所有藍牙程序都會轉送到這個主機。系統會停用先前指派的任何執行中的主機,並終止所有待處理的程序。

  • 如果系統找不到包含 id 的主機,就會失敗。

要求

名稱類型
id fuchsia.bluetooth/HostId

回應

名稱類型
payload HostWatcher_SetActive_Result

觀看

取得所有可用的藍牙控制器及其狀態的清單。只有在此清單自上次傳送此訊息後有變更時,系統才會傳送回應。

要求

<EMPTY>

回應

名稱類型
hosts vector<HostInfo>

配對中

定義於 fuchsia.bluetooth.sys/pairing.fidl

允許系統用戶端啟用藍牙配對。

已新增:HEAD

SetDelegate

指派 PairingDelegate2 來處理配對程序。提供的 I/O 功能會用來判斷使用的方法。

在整個系統期間,只能設定一個 PairingDelegate 或 PairingDelegate2。如果在設定另一個委派項目時呼叫這個方法,新的委派作業會立即關閉。

關閉 PairingDelegate2 會取消配對委派設定。進行中的 PairingRequests 仍可完成,但新的要求會視為未設定委派項目。

如未設定委派項目,則所有配對都會遭到拒絕,即使對等連線是由本機裝置啟動也一樣。

  • 要求 input 藍牙輸入能力,請參閱 InputCapability
  • 要求 output 藍牙輸出能力,請參閱 OutputCapability
  • 要求 delegate PairingDelegate2 將接收配對要求

要求

名稱類型
input InputCapability
output OutputCapability
delegate PairingDelegate2

SetPairingDelegate

指派 PairingDelegate 以回應配對程序。所提供的 I/O 功能會用來判斷使用的配對方法。

在整個系統期間,只能設定一個 PairingDelegate - 如果設定了另一個委派代表,這時系統會立即關閉新的委派代表。在 PairingDelegate 設定後關閉,系統會取消所有進行中的配對程序,而不會接受及取消委派委派代表。

如果未設定 PairingDelegate,即使本機裝置已啟動對等互連連線,所有配對都會遭到拒絕。

  • 要求 input 藍牙輸入能力,請參閱 InputCapability
  • 要求 output 藍牙輸出能力,請參閱 OutputCapability
  • 要求 delegate PairingDelegate,以便接收配對要求

要求

名稱類型
input InputCapability
output OutputCapability
delegate PairingDelegate

PairingDelegate

定義於 fuchsia.bluetooth.sys/pairing.fidl

藍牙配對委派代表負責確認或拒絕接收來自於連線或正在連線到本機裝置的藍牙對等端發出的配對要求。

任何新的配對都會導致 PairingDelegate.OnPairingRequest 呼叫,包括將 InputCapability 和 OutputCapability 設為 none 的配對。委派代表需要有足夠的背景資訊,判斷要接受還是拒絕配對。

每個系統一次只能設定一個委派代表。如要瞭解如何設定配對委派,請參閱 fuchsia.bluetooth.sys.Pairing

OnLocalKeypress

委派代表可以使用 PairingMethod.PASSKEY_ENTRY 在配對期間傳送此事件,通知本機按鍵的對等點。

傳送本機按鍵事件,可讓使用者在輸入密碼金鑰時有更多時間配對。

此指令應僅在使用 PASSKEY_ENTRY 方法接收到 OnPairingRequest 後,及該配對要求的代表之前傳送。

  • 要求 id ID 屬於有效的配對要求的對等裝置 ID
  • 要求 keypress 應該傳送的通知類型

回應

名稱類型
id fuchsia.bluetooth/PeerId
keypress PairingKeypress

OnPairingComplete

對等點的配對程序完成後會呼叫此方法。這可能是因為作業順利完成,或是發生錯誤 (例如因對等點取消、逾時或連線中斷)。

  • 要求 id。配對的對等點藍牙對等點 ID。
  • 如果配對成功,就會要求 success 為 true,否則傳回 false。

要求

名稱類型
id fuchsia.bluetooth/PeerId
success bool

OnPairingRequest

會呼叫 ,確認配對。如果 accept 回應為 true,否則系統會繼續進行配對程序。如果使用配對方法需要密碼金鑰,就必須一併提供密碼金鑰。不需要密碼金鑰的配對方法會忽略 entered_passkey 回應。

配對作業可能會在收到回應前失敗 (通常是逾時或對等點中斷連線)。發生這種情況時,系統會呼叫 OnPairingComplete 方法。系統會忽略此案件傳送的任何回應。

  • 要求取得配對的對等點 peer 資訊
  • 要求啟用配對的 method 方法。查看 PairingMethod
  • 如果使用 PASSKEY_DISPLAY 或 PASSKEY_COMPARISON,則要求 displayed_passkey 要向使用者顯示的密碼金鑰。反之亦然。
  • 如果接受配對,則回應 accept true
  • 使用者輸入的回應 entered_passkey 密碼金鑰。除非方法為 PASSKEY_ENTRY,否則會遭到忽略。

要求

名稱類型
peer Peer
method PairingMethod
displayed_passkey uint32

回應

名稱類型
accept bool
entered_passkey uint32

OnRemoteKeypress

呼叫此方法,使用 PairingMethod.PASSKEY_DISPLAY 在配對期間通知對等裝置的按鍵事件。

這個事件可在使用者於對等裝置上輸入密碼金鑰時,提供按鍵事件事件給委派代表,以提供回應式使用者體驗。每次按下按鍵都會呼叫這個事件。

只有在為 id 傳送 OnPairingRequest 到傳送 OnPairingComplete 之間,系統才會呼叫此事件。

注意:許多裝置不會傳送這些事件

  • 要求 id 傳送 keypress 事件的對等點 ID。
  • 要求 keypress 接收的事件類型。

要求

名稱類型
id fuchsia.bluetooth/PeerId
keypress PairingKeypress

PairingDelegate2

定義於 fuchsia.bluetooth.sys/pairing.fidl

藍牙配對委派代表負責確認或拒絕接收來自於連線或正在連線到本機裝置的藍牙對等端發出的配對要求。

任何新的配對都會導致 PairingDelegate.StartRequest 呼叫,包括將 InputCapability 和 OutputCapability 設為 none 的配對。委派代表需要有足夠的背景資訊,才能判斷是否要接受或拒絕配對。

每個系統一次只能設定一個委派代表。如要瞭解如何設定配對委派,請參閱 fuchsia.bluetooth.sys.Pairing

已新增:HEAD

RequestComplete

對等點的配對程序完成後會呼叫此方法。這可能是因為成功完成或發生錯誤 (例如因對等點取消、逾時或中斷連線)。

  • 要求 id。配對的對等點藍牙對等點 ID
  • 如果配對成功,就會要求 success 為 true,否則傳回 false

要求

名稱類型
id fuchsia.bluetooth/PeerId
success bool

StartRequest

開始與 peer 配對時呼叫。配對程序會使用 PairingRequest 通訊協定繼續進行。

配對的屬性會在 info 中提供,以指出本機要建立哪種互動類型。

系統一次可以為不同的對等互連項目啟用多項要求,而且要求的效力可能會超過這個通訊協定。如果您捨棄要求通訊協定,系統就會自動拒絕配對。

所有欄位都會持續顯示。

要求

名稱類型
payload PairingDelegate2StartRequestRequest

PairingRequest

定義於 fuchsia.bluetooth.sys/pairing.fidl

這個通訊協定會在進行配對時啟用,並透過 PairingDelegate.StartRequest 提供給 PairingDelegate。 如果配對程序提早完成且未成功,伺服器會以 Epitaph 關閉這個通訊協定:

  • ZX_ERR_UNAVAILABLE - 藍牙對等互連已中斷連線
  • ZX_ERR_NOT_SUPPORTED - 未預期提供密碼金鑰
  • ZX_ERR_BAD_STATE - 在未使用 PairingProperties.passkey_entry 時傳送按鍵按下
  • ZX_ERR_TIMED_OUT - 未偵測到活動,且配對已停止
已新增:HEAD

接受

接受配對要求。 如果使用 PairingProperties.passkey_entry 方法,就必須提供 entered_passkey,否則會忽略此要求。

要求

名稱類型
payload PairingRequestAcceptRequest

按鍵

用於通訊本機按鍵,以更新配對進度的遠端對等點。此方法的回應應用於流量控制。

要求

名稱類型
keypress PairingKeypress

回應

<EMPTY>

OnComplete

配對完成後傳送一次,緊接在通訊協定關閉前傳送。成功值和 PeerId 也會使用 PairingDelegate.RequestComplete 呼叫傳送至委派代表。

回應

名稱類型
success bool

OnKeypress

配對方法為 passwordskey_display 時傳送。可用於更新 UI,用於表示按鍵接收。

回應

名稱類型
keypress PairingKeypress

拒絕

拒絕配對要求。關閉這項通訊協定也會拒絕配對要求。

要求

<EMPTY>

ProcedureToken

定義於 fuchsia.bluetooth.sys/access.fidl

代表啟用中的程序。支援這個通訊協定的控制代碼有效性取決於其附加的程序活動。具體來說:

  1. 關閉權杖處理常式,即代表附加程序停止。
  2. 系統會關閉符記控制代碼,說明程序已在內部終止。

結構化

Access_Connect_Response

定義於 fuchsia.bluetooth.sys/access.fidl

<EMPTY>

Access_Disconnect_Response

定義於 fuchsia.bluetooth.sys/access.fidl

<EMPTY>

Access_Forget_Response

定義於 fuchsia.bluetooth.sys/access.fidl

<EMPTY>

Access_MakeDiscoverable_Response

定義於 fuchsia.bluetooth.sys/access.fidl

<EMPTY>

Access_Pair_Response

定義於 fuchsia.bluetooth.sys/access.fidl

<EMPTY>

Access_StartDiscovery_Response

定義於 fuchsia.bluetooth.sys/access.fidl

<EMPTY>

Bootstrap_Commit_Response

定義於 fuchsia.bluetooth.sys/bootstrap.fidl

<EMPTY>

定義於 fuchsia.bluetooth.sys/pairing.fidl

<EMPTY>

HostWatcher_SetActive_Response

定義於 fuchsia.bluetooth.sys/host_watcher.fidl

<EMPTY>

定義於 fuchsia.bluetooth.sys/identity.fidl

代表 128 位元密鑰。

欄位類型說明預設
value uint8[16] 無預設

LeConnectionParameters

定義於 fuchsia.bluetooth.sys/identity.fidl

對等點偏好使用的 LE 連線參數。

欄位類型說明預設
connection_interval uint16 無預設
connection_latency uint16 無預設
supervision_timeout uint16 無預設

Ltk

定義於 fuchsia.bluetooth.sys/identity.fidl

代表用於連結加密的 LE 長期對等金鑰。如果使用 LE Secure Connections 配對進行分散式,則 edivrand 欄位會是 0。

欄位類型說明預設
key PeerKey 無預設
ediv uint16 無預設
rand uint64 無預設

PasskeyEntry

定義於 fuchsia.bluetooth.sys/pairing.fidl

<EMPTY>

PeerKey

定義於 fuchsia.bluetooth.sys/identity.fidl

代表從對等點收到的金鑰。

欄位類型說明預設
security SecurityProperties

此金鑰接收這個連結的安全屬性。

無預設
data Key

金鑰內容。

無預設

SecurityProperties

定義於 fuchsia.bluetooth.sys/identity.fidl

欄位類型說明預設
authenticated bool 無預設
secure_connections bool 無預設
encryption_key_size uint8 無預設

ENUMS

BondableMode 嚴格

類型:uint32

定義於 fuchsia.bluetooth.sys/pairing_options.fidl

在配對程序期間,裝置是否應形成藍牙連結。 如「核心規格 v5.2 版 | 第 3 版」、「第 C 部分」、「第 4.3 版」所述

名稱說明
1

在與同類裝置配對時,裝置會形成連結

2

在與同類裝置配對時,裝置不會形成連結

BootstrapError 嚴格

類型:uint32

定義於 fuchsia.bluetooth.sys/bootstrap.fidl

名稱說明
1
2

BrEdrSecurityMode 嚴格

類型:uint32

定義於 fuchsia.bluetooth.sys/security_mode.fidl

BT 裝置的 BR/EDR 安全模式會決定裝置可能的安全性屬性。這個模式不會對裝置連線的現有安全屬性做出具體保證,而是對允許的安全屬性設定限制。詳情請參閱核心規格 v5.4 Vol. 3、第 C 5.2.2 部分。

新增日期:14 天

名稱說明
1

在 BR/EDR 安全模式 4 中,系統會使用配對裝置間最低的分母演算法來驗證和加密通訊。請注意,這表示如果不支援 SC,金鑰產生、驗證和加密演算法的強度可能低於安全連線。

2

在「僅限安全連線」模式中,裝置會拒絕不支援安全連線的連線,並強制執行金鑰長度較長的憑證。

僅限 SC 模式也會嘗試強制使用者確認預期的對等互連。因此,沒有螢幕的裝置 (例如耳機) 通常不會支援 SC 的原因。

錯誤:strict

類型:uint32

定義於 fuchsia.bluetooth.sys/access.fidl

名稱說明
1

無法執行作業。

2

找不到為作業指定的對等點。

3

作業時間限制已到期。

4

操作已取消。

5

作業已在進行中。

6

不支援這項作業。

7

作業指定的引數集無效。

輸入功能嚴格

類型:uint32

定義於 fuchsia.bluetooth.sys/pairing.fidl

配對交換庫的輸入功能。應根據本機系統輸入配對要求回應的能力進行設定。詳情請參閱第 3 卷、第 C 部分、表 5.3 部分。

名稱說明
1

使用者沒有可用輸入方式來回應配對要求「是」或「否」。注意:啟用這項設定後,系統會將大多數的配對視為未經驗證,且容易受到中間機器攻擊。

2

使用者可以回應「是」或「否」要求。

3

使用者擁有鍵盤 (或其他 UI) 可以輸入數字代碼,並傳送已完成或取消的訊號。

LeSecurityMode 嚴格

類型:uint32

定義於 fuchsia.bluetooth.sys/security_mode.fidl

BLE 裝置的 LE 安全模式會決定裝置可能的安全屬性。 這個模式不會對裝置連線的現有安全性屬性做出具體保證,而是針對允許的安全性屬性設定限制。詳情請參閱核心規格 v5.2 Vol. 3,第 C 10.2 部分。

名稱說明
1

在 LE 安全模式 1 中,通訊會經過加密保護,而 BLE 型服務可能會對加密金鑰指定不同的驗證要求、金鑰大小或安全連線保護要求。

2

在「僅限安全連線」模式中,所有安全通訊都必須使用 128 位元、經過驗證和 LE Secure 連線產生的加密金鑰。如果裝置因系統限製而無法滿足這些加密金鑰屬性,則任何與這類裝置有關的連線都將完全無法保護連結。這個模式不會防止未加密的通訊,只會對所有加密通訊強制執行更嚴格的政策。

OutputCapability 嚴格

類型:uint32

定義於 fuchsia.bluetooth.sys/pairing.fidl

配對掃描的輸出功能。您應根據本機系統向使用者顯示資訊 (啟動或接受藍牙配對) 的能力來設定。詳情請參閱第 3 卷、第 C 部分、表 5.4 部分。

名稱說明
1

沒有可配對的螢幕。

2

一則螢幕能顯示至少 6 位數的十進位數字。

PairingKeypress 嚴格

類型:uint32

定義於 fuchsia.bluetooth.sys/pairing.fidl

輸入密碼金鑰時,用來與同事傳送進度資訊。各種按鍵類型都可用來自訂要在要求配對的使用者傳遞什麼內容。

名稱說明
1

使用者輸入了一組數字。

2

使用者清除了一個數字。

3

使用者已清除整個密碼金鑰。

4

使用者已輸入密碼金鑰。

PairingMethod 嚴格

類型:uint32

定義於 fuchsia.bluetooth.sys/pairing.fidl

安全管理員規定的配對方法所需的不同類型。 藍牙 SIG 對不同裝置功能有不同的要求。

名稱說明
1

系統會要求使用者接受或拒絕配對。這是最低的方法,即使兩部裝置都不支援輸入或輸出功能,委派代表仍會要求確認任何未基於使用者意圖啟動的配對。

2

使用者會在這部裝置上顯示 6 位數密碼金鑰,因此必須在對等裝置上輸入這組金鑰。

3

使用者會在這部裝置上看到 6 位數的密碼金鑰,這組金鑰也會顯示在對等互連裝置上。如果密碼金鑰相符,使用者就必須比較密碼金鑰並接受配對。

PASSKEY_ENTRY

4

系統會要求使用者在此裝置上輸入 6 位數密碼金鑰,並透過對等互連裝置進行通訊。

PairingSecurityLevel 嚴格

類型:uint32

定義於 fuchsia.bluetooth.sys/pairing_options.fidl

此配對所需的安全等級 - 對應於第 3 卷第 3 部分、第 2.3.1 節在安全管理員通訊協定中定義的安全等級

名稱說明
1

無 MITM 防護的加密 (未驗證)

2

以 MITM 防護 (經驗證) 加密,不過這種等級無法完全防止被動竊聽程式

技術類型嚴格

類型:uint32

定義於 fuchsia.bluetooth.sys/peer.fidl

名稱說明
1
2
3

資料表

BondingData

定義於 fuchsia.bluetooth.sys/identity.fidl

代表單一對等點的連結資料。

序數欄位類型說明
identifier fuchsia.bluetooth/PeerId

可明確識別這個對等點的識別碼。

local_address fuchsia.bluetooth/Address

與這個繫結相關聯的本機藍牙身分位址。

name fuchsia.bluetooth/DeviceName

對等點的名稱 (如果已知)。

address fuchsia.bluetooth/Address

對等點的身分地址。

le_bond LeBondData

這個對等點在 LE 傳輸上配對時存在的資料。

bredr_bond BredrBondData

這個對等點在 BR/EDR 傳輸上配對時存在的資料。

BredrBondData

定義於 fuchsia.bluetooth.sys/identity.fidl

序數欄位類型說明
role_preference fuchsia.bluetooth/ConnectionRole

同儕偏好的相片角色。具體情況取決於角色切換程序。如果透過分頁和對等點連線,系統不會自動設定這個標記。如未選取,則對等點沒有表示偏好。

services vector<fuchsia.bluetooth/Uuid>[65535]

從 EIR 資料或 SDP 取得的已知服務 UUID。

HostData

定義於 fuchsia.bluetooth.sys/identity.fidl

代表永久本機主機資料。

序數欄位類型說明
irk LocalKey

在隱私權啟用的情況下,BT 主機裝置會使用本機身分解決金鑰,用於產生可解析私人地址。

如果主機未使用 LE 隱私保護,或者只有使用無法解析的私人地址,就可能缺少這項資訊。

注意:在配對過程中,系統會將此金鑰分配給 LE 點。用戶端必須謹慎指派與本機 bt-host 身分一致的 IRK。

HostInfo

定義於 fuchsia.bluetooth.sys/host_watcher.fidl

藍牙控制器及其關聯主機子系統狀態的相關資訊。

序數欄位類型說明
id fuchsia.bluetooth/HostId

專門用於識別目前系統上的主機。

系統一律會提供這個欄位。

technology TechnologyType

本變壓器支援的藍牙技術。

系統一律會提供這個欄位。

active bool

指出這是否為使用中的主機。系統則有一個主動主機可處理所有藍牙程序。

local_name fuchsia.bluetooth/DeviceName

這個主機的本機名稱。這是當這個主機處於可探索模式時,其他裝置會看到的名稱。

discoverable bool

是否可透過 BR/EDR 和 LE 實體頻道找到本機轉接器。

discovering bool

系統目前是否正在執行裝置探索服務。

addresses vector<fuchsia.bluetooth/Address>

與主機相關聯的地址 (LE 和/或 BR/EDR)。

系統一律會先回報公開網址。

系統一律會提供這個欄位。

新增時間:11 張

身分識別

定義於 fuchsia.bluetooth.sys/identity.fidl

代表單一主機子系統執行個體的永久設定。這會用於呈現身分 (查詢、查詢回應和廣告),以及繫結密鑰召回 (將連結資料加密給與此身分相關聯的對等點)。

每個用來建立繫結的 BR/EDR BD_ADDR 和低功耗公開身分位址,都應有自己的身分識別執行個體,內含對應的對等執行個體。

每個支援 LE 隱私權的 Identity 執行個體都應有一個身分解決金鑰 (IRK),且該金鑰應與發布至該連結的對等點一致。

序數欄位類型說明
host HostData
bonds vector<BondingData>

使用公開身分地址的所有鍵都必須包含相同的本機地址。

LeBondData

定義於 fuchsia.bluetooth.sys/identity.fidl

序數欄位類型說明
connection_parameters LeConnectionParameters

對等點的偏好連線參數 (如果已知)。

services vector<fuchsia.bluetooth/Uuid>[65535]

已知的 GATT 服務 UUID。

irk PeerKey

用於產生及解析隨機位址的身分解析 RemoteKey。

csrk PeerKey

連線簽章可解決用於在未加密資料簽署的 RemoteKey。

peer_ltk Ltk

當對等點處於 LE 週邊裝置角色時,用來加密連線的 LE 長期金鑰。

在舊版配對中 (peer_ltk.security.secure_connections 為 false),這個索引鍵會對應至對等點發布的金鑰。在安全連線配對中,只有一個 LTK,且 peer_ltklocal_ltk 相同。

local_ltk Ltk

當對等點處於 LE Central 角色時,用來加密連線的 LE 長期金鑰。

在舊版配對中 (local_ltk.security.secure_connections 為 false),這個金鑰會對應至本機裝置發布的金鑰。在安全連線配對中,只有一個 LTK 和 local_ltkpeer_ltk 相同。

PairingDelegate2StartRequestRequest 資源

定義於 fuchsia.bluetooth.sys/pairing.fidl

序數欄位類型說明
peer Peer

提出要求的對等點。

info PairingProperties

配對的屬性。

request PairingRequest

用來完成配對程序的通訊協定。

PairingOptions

定義於 fuchsia.bluetooth.sys/pairing_options.fidl

可讓呼叫端更精細地控管配對程序的參數。這個資料表的所有欄位皆為選用,而且如果未設定任何欄位,配對仍會成功。

序數欄位類型說明
le_security_level PairingSecurityLevel

僅適用於 LE。如果使用的話,請決定要配對的 Security Manager 安全等級。如未顯示,則解讀為 PairingSecurityLevel.AUTHENTICATED。

bondable_mode BondableMode

如果傳輸為 LOW_ENERGY 或 DUAL_MODE,請檢查裝置是否應在配對期間形成綁定。如未顯示,系統會視為可連結模式。

如果傳輸為 CLASSIC,則必須留空,否則將值設為 BONDABLE。CLASSIC 傳輸目前不支援 NON_BONDABLE 模式

transport TechnologyType

如果交通方式為 LOW_ENERGY,表示您希望透過 LE 傳輸進行配對。 如果運輸方式為 CLASSIC,請指出您希望透過 Br/Edr 傳輸進行配對。如果傳輸為 DUAL_MODE,請表示希望同時透過兩種傳輸方式進行配對。如果不是,則解讀為 TechnologyType.DUAL_MODE

PairingRequestAcceptRequest

定義於 fuchsia.bluetooth.sys/pairing.fidl

序數欄位類型說明
entered_passkey uint32

對等節點

定義於 fuchsia.bluetooth.sys/peer.fidl

代表遠端 BR/EDR、LE 或雙模式 BR/EDR/LE 點。

序數欄位類型說明
id fuchsia.bluetooth/PeerId

可在目前的系統上識別這個對等點。

系統一律會提供這個欄位。

address fuchsia.bluetooth/Address

用於識別這個對等點的藍牙裝置位址。當 name 無法使用時,用戶端應向使用者顯示這個欄位。

系統一律會提供這個欄位。

注意:用戶端應使用 identifier 欄位來追蹤對等互連,而非追蹤其位址。

technology TechnologyType

此對等互連項目支援的藍牙技術。

系統一律會提供這個欄位。

connected bool

表示該對等互連項目是否存在 BR/EDR 和/或 LE 連線。

系統一律會提供這個欄位。

bonded bool

這個對等點是否已建立繫結。

系統一律會提供這個欄位。

name fuchsia.bluetooth/DeviceName

對等點的名稱 (如果已知)。

appearance fuchsia.bluetooth/Appearance

LE 外觀屬性。如果這個對等點支援 LE,且其外觀資訊是透過廣告和/或 GATT 取得,就會顯示。

device_class fuchsia.bluetooth/DeviceClass

此裝置的裝置類別 (如果已知)。

rssi int8

這個同類應用程式最近獲得的廣告信號強度。如果知道的話,會顯示。

tx_power int8

這個對等互連項目獲得的最新傳輸功率。如果知道的話,會顯示。

services vector<fuchsia.bluetooth/Uuid>[65535]

這個對等互連項目上已知可用的服務 UUID 清單。

此為舊欄位,不應用於新程式碼。

已淘汰

le_services vector<fuchsia.bluetooth/Uuid>[65535]

目前已知可在 LE 傳輸服務使用的 UUID 清單。

若是 CLASSIC,則一律不顯示。

bredr_services vector<fuchsia.bluetooth/Uuid>[65535]

先前在 BR/EDR 傳輸上發現的服務 UUID 快取清單。如果後續搜尋找不到對等互連服務,系統不會移除對等互連服務。

如果技術為 LOW_ENERGY,則一律不顯示。

此為舊欄位,不應用於新程式碼。

已淘汰

設定

定義於 fuchsia.bluetooth.sys/configuration.fidl

代表可供設定的藍牙主機子系統參數。每個參數都會在藍牙系統初始化時設為預設。您可以在 //src/connectivity/bluetooth/core/bt-gap/config/default.js 中查看每個參數的預設值。

序數欄位類型說明
le_privacy bool

如果為 true,則啟用 LE Privacy 功能 (如果設為 False)。如果沒有,請保持目前的值。啟用後,所有廣播本機裝置位址的 BLE 程序 (主動掃描、連線啟動和廣告) 都會使用可解析私人位址類型。停用時,這些程序會顯示指派給控制器的本機公開身分位址。

我們強烈建議您對產品啟用這項功能。

le_background_scan bool

如果設為 True,則啟用 LE 背景掃描功能 (如果設為 False)。如果沒有,請保持目前的值。啟用後,系統會維護進行中的被動掃描,並為處於「可連線」或「導向式連線」模式的綁定對等點建立連線。

bredr_connectable_mode bool

如果設為 True,則啟用 BR/EDR 可連線模式 (如果設為 False)。如果沒有,請保持目前的值。啟用後,bt-host 裝置會進入 BR/EDR 頁面掃描模式,並接受連線。

le_security_mode LeSecurityMode

如果存在,則會設定主機子系統的 LE 安全模式;如果不存在,則維持現值。詳情請參閱 BT Core Spec v5.2 Vol. 3 Part C 10.2。如果顯示並設為「僅限安全連線」模式,任何不符合「僅限安全連線」模式的有效連線都會中斷連線。

bredr_security_mode BrEdrSecurityMode

如果存在,則會設定主機子系統的 BR/EDR 安全模式;如果沒有,則讓目前的值維持不變。詳情請參閱 BT Core Spec v5.2 Vol. 3 Part C 5.2.2。如果顯示並設為「僅限安全連線」模式,任何不符合「僅限安全連線」模式的有效連線都會中斷連線。

新增日期:14 天

聯合國

Access_Connect_Result 嚴格

定義於 fuchsia.bluetooth.sys/access.fidl

序數Variant類型說明
response Access_Connect_Response
err Error

Access_Connection_Result 嚴格

定義於 fuchsia.bluetooth.sys/access.fidl

序數Variant類型說明
response Access_Disconnect_Response
err Error

Access_Forget_Result 嚴格

定義於 fuchsia.bluetooth.sys/access.fidl

序數Variant類型說明
response Access_Forget_Response
err Error

Access_MakeDiscoverable_Result 嚴格

定義於 fuchsia.bluetooth.sys/access.fidl

序數Variant類型說明
response Access_MakeDiscoverable_Response
err Error

Access_Pair_Result 嚴格

定義於 fuchsia.bluetooth.sys/access.fidl

序數Variant類型說明
response Access_Pair_Response
err Error

Access_StartDiscovery_Result 嚴格

定義於 fuchsia.bluetooth.sys/access.fidl

序數Variant類型說明
response Access_StartDiscovery_Response
err Error

Bootstrap_Commit_Result 嚴格

定義於 fuchsia.bluetooth.sys/bootstrap.fidl

序數Variant類型說明
response Bootstrap_Commit_Response
err BootstrapError

HostWatcher_SetActive_Result 嚴格

定義於 fuchsia.bluetooth.sys/host_watcher.fidl

序數Variant類型說明
response HostWatcher_SetActive_Response
err zx/Status

PairingProperties 彈性

定義於 fuchsia.bluetooth.sys/pairing.fidl

已新增:HEAD
序數Variant類型說明
consent Consent

系統會要求使用者接受或拒絕配對。這是最低的方法,即使兩部裝置都不支援輸入或輸出功能,委派代表仍會要求確認任何未基於使用者意圖啟動的配對。

passkey_display uint32

使用者會在這部裝置上顯示 6 位數密碼金鑰,使用者必須將這組金鑰登錄在對等互連裝置上。提供要顯示的密碼金鑰。

passkey_confirmation uint32

使用者會在這部裝置上看到 6 位數的密碼金鑰,這組金鑰也會顯示在對等互連裝置上。如果密碼金鑰相符,使用者就必須比較密碼金鑰並接受配對。提供要顯示的密碼金鑰。

4

passkey_entry PasskeyEntry

系統會要求使用者在此裝置上輸入 6 位數密碼金鑰,並透過對等互連裝置進行通訊。

業者

名稱類型說明
MAX_PEER_SERVICES 65535 uint16

每項傳輸的探索服務數量上限。目前已設為用於存取服務的有效 16 位元控制代碼或 PSM 數量。

別名

名稱說明
LocalKey fuchsia.bluetooth.sys/Key

代表本機產生的金鑰,將分配到一或多個鍵。