Drivers

“phonet”類型的網路介面——它有什麼用?

  • November 14, 2020

當我將諾基亞 6300 手機連接到我的 Linux 筆記型電腦時,它主要顯示為一個串列埠設備 ( /dev/ttyACM0),我可以通過它與pppd. 同一個 USB 設備還提供了一個名為usbpn0type的神秘網路介面phonet,由一個名為的驅動程序模組提供服務cdc_phonet

$ ip addr show dev usbpn0
35: usbpn0: <POINTOPOINT,NOARP> mtu 65541 qdisc noop state DOWN group default qlen 3
   link/phonet 1b peer 00
   family 35 ???/0 scope link 
$ readlink /sys/class/net/usbpn0/device/driver
../../../../../../bus/usb/drivers/cdc_phonet

有一個關於這種介面的核心文件文件,但解釋不多;只是它是諾基亞調製解調器的某種基於數據包的介面,沒有任何解釋數據包應該包含什麼。

這個網路介面是什麼?它是乾什麼用的?如果有的話,我該如何使用它?

Phonet 是智能服務介面 ( ISI ) 的鏈路/傳輸層,它是用於與諾基亞手機使用的蜂窩調製解調器進行通信的協議。從某種意義上說,ISI/Phonet 可以替代 AT 命令集和/或 OBEX:通過使用預先分配的號碼訪問各種“Phonet 資源”,可以以不同的方式驅動調製解調器,例如:

  • 撥打語音電話 ( PN_CALL, 0x01; PN_MODEM_CALL, 0xc9)
  • 發送和接收 SMS 消息 ( PN_SMS, 0x02)
  • 配置呼叫限制和轉移,並發送USSD程式碼(PN_SS,0x06)
  • 解鎖 SIM 卡並訪問電話簿 ( PN_SIM, 0x09)
  • 檢查網路狀態和信號強度 ( PN_NETWORK, 0x0a; PN_MODEM_NETWORK, 0xc8)
  • 檢查調製解調器的標識符,例如序列號和 IMEI ( PN_PHONE_INFO, 0x1b; PN_MODEM_INFO, 0xc5)
  • 訪問智能卡功能 ( PN_UICC, 0x8c)

我什至看到有人詢問有關通過PN_FILE_MANAGER(0x65) 資源訪問智能手機文件系統的問題,但沒有找到可以執行此操作的工作程式碼。但據我所知,ISI/Phonet 不能傳輸 IP 流量:連接到移動網路仍然必須通過串列鏈路上的 PPP 執行。

Phonet 客戶端的實現可以在oFono項目中找到,特別是在isimodem驅動程序中。一些程式碼也可以在freesmartphone.org的 Cornucopia 項目的modem_nokia_isi驅動程序中找到。後一個項目使用 oFonoisimodem驅動程序的一部分來建構一個獨立的庫,libisi. Wireshark 還包含此協議的解析器

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