Можно ли взломать поддержку периферийного режима BLE в Android?

Это сообщение в блоге from radius networks обсуждает, как устройства Android пока не могут использоваться в качестве iBeacon (также известный как периферийный режим BLE), даже если оборудование устройства поддерживает BLE, поскольку Android не имеет API-интерфейсов для периферийного режима BLE.

ПРИМЕЧАНИЕ: BLE означает Bluetooth с низким энергопотреблением.

Прочитав этот раздел, я собираюсь предложить какую-нибудь глупость

Поскольку их SDK поддерживает только центральную роль, «рекламировать» услугу как центральный сервер означает спокойно сидеть и раскрывать (или «рекламировать») свои характеристики услуги другому устройству в периферийном режиме после того, как соединение уже установлено. Это установление соединения требует, чтобы другое устройство сначала показывало фактическую радиорекламу. SDK Samsung этого не сделает.

Можно ли обмануть устройство в центральном режиме (телефон Samsung), заставив думать, что другое устройство в периферийном режиме установило соединение с ним, а затем заставить центральный режим «рекламировать»? Можно ли обмануть телефон, подделав соединение в программном обеспечении?

Наверное, глупая идея, возможно, можно обмануть устройство в центральном режиме, но «реклама» не является рекламой периферийного режима BLE и не будет напоминать iBeacon в периферийном режиме.

Мне очень нужна поддержка периферийного режима BLE от Android, и на данный момент я мог бы что-нибудь взломать в надежде, что Android в конечном итоге будет поддерживать этот набор функций, который, кстати, уже является запрос функции


person Russell Sullivan    schedule 17.12.2013    source источник
comment
Возможно, один из стеков синих зубов другого продавца может быть взломан. В статье Википедии о BLE перечислены следующие устройства Android с чипами BLE: Casio (Gz'One Commando 4G LTE) HTC (One, One Mini, One Max, Desire 300, Desire 601, Desire 500, Desire X, Butterfly S) LG (Nexus 4, Nexus 5, Optimus G, 4X, G2 и выше) Motorola Moto X и Moto G Sony (Xperia V, Xperia Z, Xperia SP, Xperia L, Xperia M, Xperia Z Ultra, Xperia Z1, Xperia C) Samsung (Galaxy S3, S3 Mini, Galaxy S4, S4 Mini, Note 2 и Note 3) [21] XIAOMI (Mi2 и выше)   -  person Russell Sullivan    schedule 18.12.2013


Ответы (1)


Я не думаю, что этот метод сработает, даже если можно «обмануть» Android, заставив его думать, что он подключен к другому устройству BLE. Хотя этот вопрос касается Samsung BLE SDK, я думаю, что тот же ответ относится и к выделенным API BLE Android (android.bluetooth.BluetoothAdapter), которые поставляются начиная с Android 4.3.

Давайте на минуту отложим в сторону уловки - даже если у Android действительно есть соединение с другим устройством BLE, можете ли вы заставить его рекламировать? Если под «рекламой» вы имеете в виду раскрытие своих услуг другому устройству, ответ - да. Но эта радиопередача осуществляется по частному каналу между двумя устройствами и не может быть обнаружена сканированием BLE так же, как реклама iBeacon. На самом деле это вовсе не реклама - вот почему я сказал в сообщении в блоге, что документация Samsung вводит в заблуждение. Так что, если вы не можете сделать это с реальным соединением, то обмануть соединение тоже не получится.

Мое понимание стеков bluetooth ограничено, но я думаю, что фактическая реклама радиовещания, которую может уловить сканирование, контролируется аппаратным набором микросхем BLE, что означает, что у вас должен быть доступ к тем частям стека bluetooth, которые сообщают оборудованию, чтобы это случилось. Я не думаю, что в Samsung BLE SDK или Android SDK есть что-то, что намеренно позволяет это.

Альтернативой может быть выполнение прямых вызовов JNI стека BlueDroid. Я не уверен, позволяют ли это разрешения Android, или даже если реклама реализована в стеке BlueDroid.

ОБНОВЛЕНИЕ: передача в качестве периферийного устройства теперь возможна в Android 4.4.3 и Android L. См. здесь.

person davidgyoung    schedule 17.12.2013
comment
Спасибо, Дэвид, я подумал, что неправильно понял перегруженный термин рекламы, спасибо, что прояснил его. Итак, я думаю, нам всем придется подождать, пока Android реализует API-интерфейсы BLE для периферийного режима. Черт, мне действительно нужен Android, чтобы поддерживать это на конкурентном уровне с iOS. - person Russell Sullivan; 18.12.2013
comment
Бесстыдный плагин, но мы проделали некоторую работу, чтобы включить это, но для этого требуется настраиваемое ПЗУ, возможно, часть работы может быть перенесена на решение на основе NDK: blog.cozybit.com/enpting-peripheral-mode-in-android-kitkat-4-4 - - обратите внимание, что внизу мы указываем, что мастер AOSP уже поддерживает это, поэтому Android 4.5 / 5.0 будет поддерживать это. - person silverjam; 03.03.2014
comment
Хорошая работа! Я действительно надеюсь, что это закончится в 4.5 / 5.0, но поскольку фиксация мастера AOSP, поддерживающего периферийный режим, произошла 6 августа 2013 г. (до выпуска 4.4), я не думаю, что мы можем рассчитывать на его включение в следующем Версия Android. android.googlesource.com/platform/frameworks/base/+/ - person davidgyoung; 03.03.2014
comment
@davidgyoung Я думаю, что ситуация может быть более позитивной, обратите внимание на сообщение из этого коммита: android.googlesource.com/platform/frameworks/base / + / ee0b3e9 - person Maks; 31.07.2014
comment
Да, ситуация существенно изменилась с более свежими версиями ОС. Android L теперь имеет общедоступные API-интерфейсы для рекламы в качестве периферийного устройства. В Android 4.4.3 есть скрытые API, позволяющие это сделать. См .: stackoverflow.com/questions/25033940/ - person davidgyoung; 31.07.2014
comment
@davidgyoung Вы все еще пытаетесь проверить, поддерживает ли какое-либо другое устройство Android5 функцию рекламы, кроме Nexus 6, 9? Я вижу, что кто-то сказал, что Moto E 4G работает, но в моей стране можно купить только Moto G 2. У вас есть какие-нибудь предложения? Благодарность! - person Shawn; 12.04.2015
comment
Список устройств, который я знаю сейчас, находится здесь: altbeacon.github. io / android-beacon-library / - person davidgyoung; 12.04.2015
comment
@davidgyoung У меня проблема с рекламой услуг ... см. мой вопрос здесь .. stackoverflow.com/questions/31490649/ - person Shubham; 18.07.2015