Pull to refresh

Comments 31

Вариант с записью bluetooth пакетов на смартфоне (Параметры разработчика/Журнал отслеживания Bluetooth) с последующим анализом WireShark'ом почему-то не работал или показался неудобным?
Спасибо, не знал что такой путь есть. С WireShark-ом у меня не очень, пробовал мой лог из Packet Sniffer конвертировать в pcap и смотреть в WireShark-е. Показалось очень сложно. У Packet Sniffer очень простой интерфейс. И неудобный, фильтры работаю почему-то не всегда, приходится просматривать от начала до конца. Но всё очень наглядно.
Баловался схожим образом с «умной» лампочкой. Правда, я реверсил их прилагу для Android. Ну думали поковырять приложение MiBand? Могут проясниться некоторые «магические» значения. И, кстати, если не боитесь Go / NodeJS, есть обёртки над BlueZ под эти языки. Работают не через спавн процесса а через настоящий сокет к HCI-устройсву.
Разобрать MIBand не думал, на форумах пишут, что производитель её всё больше обфусцирует с каждой новой версией. Смысл, если все потом передается в открытом виде? Да, есть еще очень много интересного, чего не попробовал, PyGATT, например, или вот ребята пишут мибанду (https://bitbucket.org/OscarAcena/mibanda) — библиотеку для доступа к браслету из Python. NodeJS — очень интересно, обязательно посмотрю, спасибо.
У вас браслет одновременно работает и в телефоне и с малинкой?
И не совсем понял фразу что малинка в роли ретранслятора.
Да, работа с малиной не портит профиль браслета в телефоне, так как используется user info телефона. Собственно, браслет «думает», что малина — это телефон. Ретранслятор? Я не подобрал правильного термина — задача малины принять данные от браслета и передать в облако.
Если не сложно, напишите про это подробнее. Или тыкните местом если это есть в статье и пропустил.
Поясните пожалуйста, что вас интересует. Использование user info из телефона? Вот:
Один из исследователей предыдущей версии браслета в своем блоге написал, что не все сервисы могут быть доступны анонимному устройству. Насколько я смог разобраться, в ряде случаев устройство, взаимодействующее с браслетом, должно передать в браслет корректную информацию о пользователе, которая частично хешируется при спаривании со смартфоном.


Еще вот:
Соединение в интерактивном режиме без спаривания обычно длится секунд 20. Это так называемый низкий уровень секретности
Браслет с малиной работает без спаривания, это security=low в gatttool по умолчанию.

Практически вся информация с браслета доступна любому анонимному устройству, кроме измерения пульса, для этого нужно представиться телефоном и отправить на браслет данные пользователя.
Следующий шаг — написать приложение для Android, которое бы периодически отправляло пульс в какой-нибудь Google Fit.

Кстати, кое-какой код для работы с браслетом (первой версии) есть в проекте Gadgetbridge
Меня больше интересует как использовать браслет по назначению и плюс одновременно авторизовываться им на моём ноуте по силе сигнала от браслета.
А вы точно уверены что этого хотите? Подделать MAC адрес браслета — раз плюнуть.
Тогда хочу ещё что то наподобие ssl для защищённого соединения и передачи данных. Браслет же как то скрывает от не авторизованных устройств какие то данные.
Анонимное устройство не может получить пульс, но может его подслушать. Также нельзя скачать с браслета данные пользователя (но тоже можно подслушать), остальное раздается всем кто попросит. Используется минимальный уровень безопасности, хотя, например, уже на следующем уровне — middle, данные начинают шифроваться.
В любом случае я хочу это для удобства, а не для защиты от целенаправленной атаки.
А как заставить браслет быть одновременно и спаренным с телефоном и обнаруживаемым? Что то я не нашёл ни в апи, ни в описании здесь или на сайте по ссылке.
Когда браслет обменивается информацией с телефоном, к нему нельзя подключиться. Так что только по очереди.
Однако, Xiaomi меня огорчают. Я понимаю, когда используют нестандартные характеристики, но когда описанную в спеках HR Control Point используют нестандартным образом, это уже дурные манеры.
Кстати, как я понял, по указанной команде пульс измеряется один раз, а режима постоянного измерения, как у нагрудных датчиков, которые передают информацию каждую секунду, там нет?
Вроде можно мерить непрерывно, используя приложение в смартфоне (не пробовал). Но нужно понимать, что измерение пульса при помощи оптического датчика отличается от режима измерения нагрудным датчиком, если он электрокардиографический. Цикл измерения браслетом это примерно 15 секунд, потом данные усредняются и отправляются в виде нотификации. Есть не мало моделей браслетов, которые начинают измерять пульс непрерывно, после нажатия кнопки на браслете.
Насколько я понимаю, нагрудный датчик, как и оптический, подсчитывает удары сердца, только использует сопротивление, а не свет, и измеряет ближе к источнику, за счёт чего определение RR-интервалов точнее и энергозатраты ниже. Однако, вряд ли он определяет пульс только по RR-интервалам, тоже наверняка усредняет за какое-то время.
Gear S сначала несколько секунд измеряет пульс, потом обновляет каждую секунду. Но временами врёт страшно.
Управление виброй — это здорово, а что хотелось бы еще: описание API для управления LED.
Притом не просто ID цвета передавать, а полноценное RGB-888 (24бит) значение.
И принципиальный вопрос: можно ли с достаточной точностью в этом BLE управлять временем приёма и обработки пакетов, что я имею в виду:
например зажигаем LED на 150мс, затем пауза 400мс, затем зажигаем на 750мс, затем опять пауза 400мс.

PS: да, я действительно мечтаю сделать на браслете прием сообщений по азбуке Морзе, индикация принимаемого сообщения — по короткой вибрации, началло передачи сообщения — по резкому взмаху (как на многих браслетах и прочих смартвочах включается дисплей по взмаху bottom-top) — кстати, для этого бы надо уметь считывать и интерпретировать даные акселерометра, если их конечно можно вытащить в RAW из «народного» браслета…
LED в новой версии уже не цветные, а белые, во всяком случае нет ни одного штатного режима, который показал бы обратное. Подозреваю, что теперь предусмотрен только один режим — индикация значения по схеме: первый мигает — остальные выключены, первый включен — второй мигает, два включены — третий мигает, три включены. Индикация работает при спаривании со смартфоном, заряде батареи и контроле прогресса (взмахом руки).

Что касается акселерометра, данные можно было получить в старой версии в режиме нотификации. Сейчас не понятно по какому адресу искать. Анализ трафика показывает, что смартфон разрешает браслету четыре нотификации, одна из которых это сердечный ритм. Можно посмотреть на три оставшиеся. Если получится, проверю и сделаю update.
Мне первая версия браслета тоже интересна (кстати, в китайском клоне первой версии тоже монохромные LED ставили).
Где можно почерпнуть информацию о API первой версии браслета: возможности управления LED и телеметрия с акселерометра — с акселерометром там та еще эпопея, если передаются не последовательности значений (семплированные с периодом 100мс за последние, например, неск. секунд), то с какой периодичностью можно запрашивать эти данные вручную?
вот и вот Но про акселерометр там ничего толкового нет, что-то вроде:
0xFF0E read notify SENSOR_DATA, и всё.
Подскажите, а можно ли использовать надетый на руку браслет и раскиданные по помещению активные маячки для определения местоположения человека? В каждой комнате маячок с софтом определения силы сигнала для браслета. Реально ли?

Для этого нужно заложить алгоритм триангуляции в браслет. Ну или хотя бы читать RSSI на браслете и скидывать на мозгатое устройство для анализа. Т.е. это изменение прошивки. Думаю, это практически невыполнимая задача для непрофессионала.

А наоборот нельзя на маячках квартирных силу сигнала браслета смотреть? Тогда не нужно будет в него лезть в нутро.

Маячки обычно только адвертисят и ещё "тупее" браслета, разве нет?

Я образно употребляю слово «маячок». Здесь «маячок» = девайс с кастомной прошивкой, запитанный от сети. Вроде бы в своей прошивке можно организовать мониторинг силы сигнала до нескольких браслетов в радиусе действия?

Аа. Я подумал именно про "beacons". Тогда конечно можно. Пруф можно даже собрать из нескольких мобильных телефонов с тулзами из статьи, а триангулировать на бумажке.

Sign up to leave a comment.

Articles

Change theme settings