web-dev-qa-db-ja.com

Bluetoothデバイスクラスを変更する方法

宣伝されているbluetoothデバイスクラスをコンピューターから電話に変更しようとしています。ubuntu12.04を実行しています。 bluezソースをダウンロードし、main.confファイルを編集して行を変更しました

Class = 0x000100 

他の何かに。私は使った

Class = 0x0c025a 

それからmake && make installを実行しました。 /etc/bluetooth/main.confファイルが私の変更で更新されたため、これは問題なく動作すると思います。

問題は、実際にデバイスに接続しようとすると

hcitool cc <bdaddr>

0x000100ではなく、クラス0x0c025aを使用して広告を出していることがわかります。

この変更を有効にするためにここで何が欠けていますか?

3
twinPrimesAreEz

まず、インターフェース名を見つけます。

hciconfig

hci0など、インターフェイスの名前が表示されます。

インターフェースクラスを表示する場合:

hciconfig hci0 class

デバイスクラスが表示されます。

最後に、スーパーユーザー権限で:

Sudo hciconfig hci0 class 000408

デバイスの新しいクラスをセットアップする必要があります。

16進表現と2進表現のbluetoothクラスの便利なリファレンスは、次の場所にあります。 http://www.question-defense.com/tools/class-of-device-bluetooth-cod-list-in-binary- and-hex

8
JJW

/etc/bluetooth/main.confファイルのクラス名を変更する必要があります。

Class = 0x00041C

次に、Bluetoothサービスを再起動します

Sudo service bluetooth restart

次に、トップパネルアイコンからBluetoothをオフにして、オンにします。

1
Durgesh

BlueZ hostnameプラグインは、/etc/bluetooth/main.confNameおよびClass設定をオーバーライドします。 Bluetooth Class of Device(CoD)を指定するには、次の手順に従います。

  1. /lib/systemd/system/bluetooth.serviceを変更して、bluetoothデーモンの起動時にhostnameプラグインのロードをスキップします。例:

    Sudo sed -i 's/bluetoothd/bluetoothd \-\-noplugin=hostname/g' /lib/systemd/system/bluetooth.service
    

または、--plugin=<plugins>を使用して包含リストを指定できます。 bluetoothd(8)および https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/plugins を参照してください

  1. /etc/bluetooth/main.confを編集し、[一般]セクションでClassを指定します。 BlueZ X.YZ以外のものが必要な場合は、Nameも指定します。

    [General]
    Class = 0x1c0420
    Name = UbuntuCarAudio
    
  2. 変更を有効にするために、Bluetoothサービスを再起動または再起動します。

    Sudo systemctl daemon-reload
    Sudo service bluetooth restart
    
  3. hciconfig -aまたはecho 'show' | bluetoothctlを実行して、変更を確認します。 hciconfig -aは、デコードされたデバイスクラス(CoD)情報を表示します。

    Name: 'UbuntuCarAudio'
    Class: 0x1c0420
    Service Classes: Rendering, Capturing, Object Transfer
    Device Class: Audio/Video, Car Audio
    
1
Chris Sidi