Сетевой интерфейс типа «фонет» — для чего он нужен?

bash выполняет каждую команду конвейера в отдельной подоболочке, если вы не включите параметр оболочки lastpipe

# bash requires job control to be disabled for lastpipe setting
set +m
shopt -s lastpipe

declare -i sum=0
find. -name '*.js' -print0 | while IFS= read -d '' -r name; do
    (( sum += $(wc -l < "$name") ))   # redirect the file into wc for easier output
done
echo $sum

Подстановки процессов удобны для решения этой проблемы с подоболочкой:

declare -i sum=0
while IFS= read -d '' -r name; do
    (( sum += $(wc -l < "$name") ))   # redirect the file into wc for easier output
done < <(
    find. -name '*.js' -print0
)
echo $sum

Однако это затрудняет чтение программы.

1
13.11.2020, 13:10
2 ответа

Фонет — это канальный/транспортный уровень для интерфейса интеллектуальных услуг(ISI ), который представляет собой протокол для связи с сотовым модемом, используемым мобильными телефонами Nokia. В некотором смысле ISI/Phonet служит альтернативой набору AT-команд и/или OBEX :за счет доступа к различным «фонетным ресурсам» с предварительно назначенными -номерами, модемом можно управлять по-разному, например, для:

  • сделать голосовой вызов (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драйвере . Последний проект использовал части драйвера oFono isimodemдля создания автономной -библиотекиlibisi. Wireshark также содержит диссектор для этого протокола.

2
18.03.2021, 22:54

When I connect one particularly old cellphone to my Linux laptop...

Похоже, что этот старый мобильный телефон — Nokia, и он предлагает работать как модем.

Полную документацию по семейству протоколов Phonet можно найти здесь:

https://www.kernel.org/doc/Documentation/networking/phonet.txt

what kind of data can be transferred over this kind of interface

Я полагаю, вы могли бы подключиться к нему с помощью какого-нибудь эмулятора терминала, такого как Minicom или Telix, и обмениваться с ним необработанными AT-командами, как с модемами былых дней. Может быть, сделать несколько сценариев оболочки, которые используют отправку dbus -, чтобы заставить его отправлять коды USSD и прочее. Это требует некоторых исследований.

0
18.03.2021, 22:54

Теги

Похожие вопросы