Linux

如何將基於 Android 的手機連接到具有藍牙和 Internet 訪問權限的 Linux?

  • April 15, 2020

網路上充斥著關於如何將某某設備(包括基於 Linux 的設備)連接到提供 Internet 上行鏈路的 Android 手機的解釋。

我想反其道而行之。我希望能夠使用帶有藍牙加密狗的基於 Linux 的小型路由器作為我的 Android 手機的上行鏈路,通過藍牙 PAN 連接我的 Android 手機。

我可以設置Android端。如何設置 GNU/Linux 端?

  1. 目前這有可能嗎?
  2. 我該怎麼做?

我正在執行 Android 10(連接設備)並且我對 Linux 端(目前它是 Debian 或 OpenWRT,取決於我嘗試的設備)很靈活,通過藍牙和上行鏈路以及路由提供繫繩。

注意:我想強調一下,我對基於 WiFi 的解決方案感興趣。我需要通過藍牙,即 PAN。

看起來你需要這樣的東西讓我在這裡複製相關部分,以防萬一):

首先,您需要在 OPENWRT 韌體中啟用 BT PAN 支持:

$ git clone https://git.openwrt.org/openwrt/openwrt.git/
$ cd openwrt
$ ./scripts/feeds update -a
$ ./scripts/feeds install -a
$ cp enable_btpan_usbrndis_for_wzr-hz-g300nh.seed .config
$ make defconfig
$ make

將映像刷入路由器後,使用 bluetoothctl 打開加密狗

bluetoothctl power on

ssh 登錄到 OpenWrt 並將 NAP UUID 設置為 bluetoothd:

dbus-send --system
--dest=org.bluez /org/bluez/hci0
--type=method_call
org.bluez.NetworkServer1.Register
string:“00001116-0000-1000-8000-00805f9b34fb”
string:"br-lan"

通過執行檢查藍牙是否支持 NAP 角色bluetoothd show。它應該顯示如下內容:

Controller 00:1B:DC:06:61:D4 (public)
Name: BlueZ 5.49
Alias: BlueZ 5.49
Class: 0x00020000
Powered: yes
Discoverable: no
Pairable: yes
UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
UUID: NAP (00001116-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb)
UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb)
Modalias: usb:v1D6

預先將您的設備(電話)設置為受信任(顯然,用您自己的 MAC 代替):

root@OpenWrt:~# bluetoothctl
[bluetooth]# trust 00:02:5B:00:A5:A5
[CHG] Device 00:02:5B:00:A5:A5 Trusted: yes
Changing 00:02:5B:00:A5:A5 trust succeeded
[bluetooth]#

使 BT 在 OpenWrt 路由器上可發現並從 Android 設備與其配對。然後在設備屬性中勾選“用於 Internet 訪問”複選框。

bnep0屬於br-lanbridge的介面,此時應該出現在OpenWRT中。

引用自:https://unix.stackexchange.com/questions/568587