Android 13 中 Bluetooth 模块的代码路径主要位于 packages/modules/Bluetooth (原 AOSP 中为 system/bt,从 Android 12 开始迁移到新路径)。以下是详细的结构介绍:
app层
packages/apps/Settings/src/com/android/settings/connecteddevice/
├── BluetoothDashboardFragment.java # 🔥蓝牙主界面
├── ConnectedDeviceDashboardFragment.java # 连接设备主界面
├── ConnectedDeviceGroupController.java
├── PreviouslyConnectedDevicePreferenceController.java
├── SavedDeviceGroupController.java
└── ...
packages/apps/Settings/src/com/android/settings/bluetooth/
├── BluetoothDeviceDetailsFragment.java # 设备详情页
├── BluetoothPairingDetail.java # 配对界面
├── BluetoothDevicePreference.java # 设备项
├── BluetoothDeviceUpdater.java # 基类
├── SavedBluetoothDeviceUpdater.java # 已配对设备更新器
├── ConnectedBluetoothDeviceUpdater.java # 可用设备更新器
├── BluetoothSwitchPreferenceController.java # 蓝牙开关控制器
├── AdvancedBluetoothDetailsHeaderController.java
├── BluetoothDetailsProfilesController.java
├── BluetoothDetailsMapSettingsController.java
└── ... 其他控制器
fwk层
packages/modules/Bluetooth/
├── Android/
│ ├── app/ # 蓝牙服务apk
│ ├── / #
│ ├── / #
│ └── ...
├── apex/ # 构建蓝牙 APEX 包,用于模块化更新
├── floss/ # Google 开发的开源蓝牙协议栈
├── framework/ # 蓝牙框架
├── pandora/ # 用于蓝牙认证和测试
├── service/ # 蓝牙服务管理
├── sysprop/ # 蓝牙系统属性配置
├── system/ # 蓝牙协议栈
├── tools/ # 工具脚本
hal层
hardware/interfaces/bluetooth/
├── 1.0
│ ├── Android.bp
│ ├── default
│ ├── IBluetoothHciCallbacks.hal
│ ├── IBluetoothHci.hal
│ ├── types.hal
│ └── vts
├── 1.1
│ ├── Android.bp
│ ├── default
│ ├── IBluetoothHciCallbacks.hal
│ ├── IBluetoothHci.hal
│ └── vts
├── a2dp
│ └── 1.0
└── audio
├── 2.0
├── 2.1
├── aidl
├── OWNERS
└── utils