unplugged-system/packages/modules/Bluetooth/system/gd/rust
2025-10-06 13:59:42 +00:00
..
chromeos/examples Initial commit: AOSP 14 with modifications for Unplugged OS 2025-10-06 13:59:42 +00:00
common Initial commit: AOSP 14 with modifications for Unplugged OS 2025-10-06 13:59:42 +00:00
facade Initial commit: AOSP 14 with modifications for Unplugged OS 2025-10-06 13:59:42 +00:00
facade_proto Initial commit: AOSP 14 with modifications for Unplugged OS 2025-10-06 13:59:42 +00:00
gddi Initial commit: AOSP 14 with modifications for Unplugged OS 2025-10-06 13:59:42 +00:00
linux Initial commit: AOSP 14 with modifications for Unplugged OS 2025-10-06 13:59:42 +00:00
packets Initial commit: AOSP 14 with modifications for Unplugged OS 2025-10-06 13:59:42 +00:00
shim Initial commit: AOSP 14 with modifications for Unplugged OS 2025-10-06 13:59:42 +00:00
stack Initial commit: AOSP 14 with modifications for Unplugged OS 2025-10-06 13:59:42 +00:00
topshim Initial commit: AOSP 14 with modifications for Unplugged OS 2025-10-06 13:59:42 +00:00
README.md Initial commit: AOSP 14 with modifications for Unplugged OS 2025-10-06 13:59:42 +00:00

Rust build

Currently, the Rust components are built differently on Android vs Linux. We are missing Rust support in our GN toolchain so we currently build the Rust libraries as a staticlib and link in C++. This may change in the future once we have better support.

For now, you can build all of the Rust code using Cargo.

There are some dependencies:

  • You must have the protobuf-compiler package installed
  • You must have a recent version of Cargo + Rust

You should use build.py at the root to do your Rust builds so that it correctly points your dependencies towards the vendored crates and sets your $CARGO_HOME to the correct location.

Building packets package

This package depends on bluetooth_packetgen and thus simply using cargo build will fail. Follow the steps below to ensure the dependency is found in $CARGO_HOME/bin.

  1. Run m -j32 bluetooth_packetgen to compile bluetooth_packetgen c++ binary.
  2. Change directory to $CARGO_HOME/bin.
  3. Create a symlink in $CARGO_HOME/bin to compiled bluetooth_packetgen. ln -s ~/aosp/out/host/linux-x86/bin/bluetooth_packetgen bluetooth_packetgen

Enable GD Rust

  1. adb shell device_config put bluetooth INIT_gd_rust true
  2. Restart the device