Drivers
“phonet”類型的網路介面——它有什麼用?
當我將諾基亞 6300 手機連接到我的 Linux 筆記型電腦時,它主要顯示為一個串列埠設備 (
/dev/ttyACM0
),我可以通過它與pppd
. 同一個 USB 設備還提供了一個名為usbpn0
type的神秘網路介面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 還包含此協議的解析器。