Низкоуровневая коммуникация на Android/других мобильных платформах

В Android есть NDK для обработки нативного кода. Мне просто интересно, насколько глубоко вы можете зайти с низкоуровневым программированием на этой платформе - можете ли вы, например, контролировать то, что телефон передает через сеть GSM/UMTS, или просматривать исходные данные, которые получены.

Возможна ли вообще работа со встроенным телефонным модемом на этой/других платформах в рамках их API?

Я предполагаю, что вмешательство в нижние коммуникационные уровни (такие как сжатие голосовых данных, изменение кодировки и т. д.) означает игру с прошивкой коммуникационных модулей и, как правило, официально не поддерживается производителями телефонов.

Можете ли вы что-нибудь порекомендовать для прочтения или поиска по этим темам?


person NumberFour    schedule 08.10.2012    source источник
comment
Обычно я думаю, что вы не сможете получить доступ к низкоуровневым API. Android является открытым исходным кодом, вы можете проверить, как он работает на низком уровне, но ваше приложение не сможет получить доступ к модему на низком уровне, потому что API не являются общедоступными. Более того, NDK ведет список стабильных API. Использование чего-либо еще будет означать, что ваше приложение может не работать на будущем устройстве (поскольку за это время API мог измениться).   -  person Thomas Calc    schedule 08.10.2012
comment
Спасибо за ваш ответ. Не могли бы вы подробнее рассказать о других низкоуровневых API? Я ориентируюсь на конкретное устройство, поэтому переносимость в будущем не является проблемой прямо сейчас. Должен ли я тогда искать API для конкретного устройства?   -  person NumberFour    schedule 08.10.2012
comment
Проверка API-интерфейсов для конкретных устройств — хорошая идея (они могут быть у производителя), но я боюсь, что у них не будет каких-либо общедоступных API-интерфейсов (поскольку они обычно не предоставляют такую ​​​​критическую функциональность), поэтому вам нужно будет изучить все через NDK и низкоуровневые исследования. К сожалению, я не знаю эту область, поэтому я не могу больше помочь. Я опубликую несколько ссылок в ответе (надеюсь, вы тоже получите гораздо лучший и полезный ответ).   -  person Thomas Calc    schedule 09.10.2012


Ответы (1)


Публичный пакет API (он не очень богат с точки зрения ваших требований): http://developer.android.com/reference/android/telephony/package-summary.html

О низкоуровневых API (уровень радиоинтерфейса Android) можно прочитать здесь: https://web.archive.org/web/20120430043507/http://www.netmite.com/android./mydroid/development/pdk/docs/telephony.html

О внедрении (модификации) RIL: https://web.archive.org/web/20120430043507/http://www.netmite.com/android/mydroid/development/pdk/docs/telephony.html#androidTelephonyRILImplementing

Однако в этом случае вам нужно коснуться исходного кода Android, поэтому для разработки приложений это не вариант.

person Thomas Calc    schedule 08.10.2012
comment
В соответствии с RIL есть прошивка основной полосы частот, которая интерпретирует, обрабатывает и генерирует пакеты, которые передаются сетевому провайдеру. Прошивка основной полосы зависит от устройства, имеет закрытый исходный код и проприетарна. Таким образом, вы ограничены уровнем RIL, который реализует AT-команды для связи с основной полосой частот. модем. Вот как далеко вы можете зайти с привилегиями root. Дополнительную информацию см. в этой теме на XDA. - person KrisWebDev; 12.01.2014