Linux
如何將基於 Android 的手機連接到具有藍牙和 Internet 訪問權限的 Linux?
網路上充斥著關於如何將某某設備(包括基於 Linux 的設備)連接到提供 Internet 上行鏈路的 Android 手機的解釋。
我想反其道而行之。我希望能夠使用帶有藍牙加密狗的基於 Linux 的小型路由器作為我的 Android 手機的上行鏈路,通過藍牙 PAN 連接我的 Android 手機。
我可以設置Android端。如何設置 GNU/Linux 端?
- 目前這有可能嗎?
- 我該怎麼做?
我正在執行 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-lan
bridge的介面,此時應該出現在OpenWRT中。