Тёмный

Разработка приложения-компаньона с Bluetooth для Flipper Zero 

Android Broadcast. Все об Андроид разработке
Просмотров 16 тыс.
50% 1

Взял интервью у Никиты Куликова, разработчика open source Android приложения-компаньона для Flipper Zero, которое активно использует Bluetooth Low Energy (BLE)
🔗 Telegram канал "Android Broadcast" ttttt.me/android_broadcast
💰 Поддержать проект на Boosty boosty.to/androidbroadcast
🔗 Чат сообщества в Telegram ttttt.me/android_broadcast_talks
🔗 Telegram канал "Kotlin Broadcast" ttttt.me/kotlin_broadcast
🔗 Flipper Zero Android GitHub github.com/flipperdevices/Fli...
🔗 Flipper Kickstarter www.kickstarter.com/projects/...
🔗 Купить Flipper Zero amperka.ru/product/flipper-zero
🔗 Nordic Semiconductor Android BLE Library github.com/NordicSemiconducto...
00:00 Про Flipper Zero
00:34 Тамагочи для исследователей безопасности
05:05 Гаджет для хакера
06:56 Как происходит коммуникация по Bluetooth между устройствам
10:08 Разница между Bluetooth и BLE
12:11 Насколько важен BLE
14:04 Формат данных для передачи
16:42 Безопасность соединения
17:32 Особенности архитектуры приложения с Bluetooth
19:00 Оптимизация
21:47 Почему не обычный Bluetooth
23:02 Развитие Bluetooth
26:32 Передача данных по Bluetooth умерла
29:46 Проблемы на устройствах разных вендоров
35:36 Развитие Bluetooth в Android
45:44 Что стоит улучшить в Bluetooth API
47:47 Как изучить работу с Bluetooth
#androiddev #android #программирование #kotlin #КириллРозов #андроид #AndroidBroadcast

Наука

Опубликовано:

 

17 май 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 45   
@AndroidBroadcast
@AndroidBroadcast Год назад
🔗 Telegram канал "Android Broadcast" ttttt.me/android_broadcast 💰 Поддержать проект на Boosty boosty.to/androidbroadcast 🔗 Чат сообщества в Telegram ttttt.me/android_broadcast_talks 🔗 Telegram канал "Kotlin Broadcast" ttttt.me/kotlin_broadcast
@antaki93
@antaki93 Год назад
Вот это ностальгия для меня :) Когда-то начинал свой путь в андроид-разработке с подобного приложения-компаньона с BLE. Ох уж этот гигантский коллбэк, ох уж эти байтовые массивы, адвертайзинг и всё прочее...)
@ihorkolodyuk6441
@ihorkolodyuk6441 3 месяца назад
отличный девайс, спасибо вам 👍
@alexgireff2180
@alexgireff2180 Год назад
Отличный контент, спасибо, Кирилл! Наверное, немного не хватило более подробной информации о месте BLE в архитектурном плане. Но Никита упомянул про сервисы. Значит, есть направление, куда копать))) Видел Никиту в видео несколько раз в различные периоды его карьеры. Очень приятно смотреть, как человек растёт, развивается и продолжает исследовать. Так держать!
@AndroidBroadcast
@AndroidBroadcast Год назад
Исходники открыты, лучше посмотрите их
@albinapavlenko9924
@albinapavlenko9924 Год назад
А мы, когда перекидывали файлу по ИК-порту, телефоны просто на лавочку клали. Держать 2 часа два телефона в хитром положении довольно неудобно 🤪. Беседа просто отличная! Большое спасибо, очень информативно!
@volodymyr.od.ua.
@volodymyr.od.ua. Год назад
Очень интересно, спасибо!!
@ivanov83
@ivanov83 Год назад
О, крутая тема. Спасибо большое что затронули. Никита - красавчик, раньше часто виделись на офлайн митапах до ковида, не знал что он в флиппере сейчас работает. Очень много работал с интеграцией мобильных приложений, и через обычный bluetooth (RFCOMM socket и вот это всё) и через BLE (GATT сервисы и иже с ними). BLE - хороший годный протокол, но апи для работы с ним в андроиде - чистая боль и страдание. Жуткие колбэки к которым невозможно толком подвязаться, необходимость делать простые операции типа подписки на NOTIFY уведомления от gatt характеристики путём низкоуровневых операций, когда в ios это делается в одну строчку. У каждого вендора какие-то свои приколы, типа невозможности отправить или принять данные в первую 1-2 секунды, необходимость выжидать паузу между передачей фреймов. Никакой обратной связи и индикации ошибок, операция может просто не выполниться и никакое исключение не будет выброшено. Ограничение в 20 байт полезной нагрузки на передаваемый фрейм. Расширение размера пейлоада предусмотрено в протоколе но не работает на практике в большинстве устройств, и вообще не работает в ios, поэтому, для унификации используют фреймы по 20 байт. Заявленная пропускная способность BLE в 2 мбит/сек - чушь полная. Это расчёт для сферической идеальной ситуации в вакууме. В действительности фреймы передаются по радио в специальные окна, которые зависят от многих параметров и буферы с кадрами должны быть подготовлены заранее. На практике это просто не работает в мобилках (которые КМК используют и реализуют так мало возможностей блютус как можно было) и несколько килобайт в секунду, это то что вы реально получите. Загрузка обновления прошивки на устройство по 20 минут и прочие прелести прилагаются. ИМХО, главная причина по которой все пользуются этими жуткими костылями для постоянного соединения через BLE, это то что только через него можно сделать полноценное приложение компаньон. Android поддерживает и bluetooth и BLE. ios - только BLE, apple имеет готовое апи для работы с bluetooth classic, но не релизит его публично (впрочем можно им воспользоваться на джейлбрейкнутых устройствах), отсюда и весь этот цирк с конями. Хотя для подобных сценариев BLE подходит значительно хуже стандартного сокета. Безопасность блютус периферии - это вообще атас. Ничего более удивительного в жизни не видел. Да, есть стандартный пейринг, но во-первых, вся работа процесса пейринга скрыта как чёрный ящик, и возможности посмотреть реально передаваемые байты у нас нет, а атаки понижающие защиту с шифрования на ничего с помощью специального оборудования уже всплывали, а во-вторых, логика аутентификации мастер устройства и приём команд только от него НЕ (!) встроена в протокол пейринга, в результате к доброй половине устройств можно просто подклбчиться когда спаренный с ним телефон не в зоне радио и не держит с ним активного соединения, и передавать свои команды. К тому же, для передачи важных данных нельзя доверять защиту встроенному пейрингу, необходим отдельный слой шифрования и подписи данных на прикладном уровне, а такое я видел в жизни ровно один раз - это был платёжный терминал, ко всем остальным устройствам можно было подключиться любому мимокрокодилу и отправить им что угодно (например текст на экран с бегущей строкой, это не шутка, я такое лично видел), исправить это практически невозможно, а производителям периферии в большей части случаев просто пофиг. Только отсутсвие широкого интереса со стороны исследователей к этим проблемам удерживает скандалы которые могут разжечься по этому поводу В общем, блютус - это весело. Спасибо за отличный выпуск!)
@LionZXY
@LionZXY Год назад
Расширение MTU таки работает, на ios стабильно как часы, на андроид как пойдет, но в большинстве случаев тоже работает. 1мбит/с для BLE реальная скорость, у нас есть прототипы BLE устройства которое выдает такую скорость - на нашем устройстве этого нельзя сделать из-за ограничений со стороны STM. Снифать ble/bluetooth довольно легко, мы такое делали в микроволновке. Защита от MITM тоже встроена в протокол и стандарт, правда реализованная не на всех чипах эмбедеда - мы имеем у себя "trust zone" куда пускаем только запейренные устройства и не доверенную зону, которую могут считывать все. Хотя по остальному было почитать очень интересно, если вдруг меня увидите где-то, я бы пообщался)
@silentage6310
@silentage6310 Месяц назад
Благодарю, полезный комментарий. тоже сейчас делаю железку с мобильным управлением по БТ. пока придумал при спаривании передавать токен, и потом авторизовываться им после очередного подключения.
@VokaMut
@VokaMut Год назад
Спасибо за обзор, очень интересно =) 3:35 очень много "типа"
@ViktorYakunin
@ViktorYakunin Год назад
По поводу блютуза - работал с почти всем стэком, адвертайзинг, комуникации по бле и по обычному бт в основном через сериал. Как отметил гость, для того чтобы сделать контракт нужно наворачивать свой RPC + протобаф. Вообще это довольно не сложно, просто специфика. Адвертайзинг позволяет делать довольно интересные вещи, мы на нем соц сеть строили
@user-by1id2ix4h
@user-by1id2ix4h Год назад
Кирилл, спасибо за интервью Контент 🔥
@borisveriga5252
@borisveriga5252 Год назад
Спасибо за интервью парни!
@burivuh26
@burivuh26 Год назад
С 47:59 я порвался. Отличное интервью
@kychkin_nikolay
@kychkin_nikolay Год назад
Кстати как универсальный регулировщик для умного дома удобно. А то не хочется ставить "левые" приложения, а тут опенсорс одно приложение и все работает.
@handleftman
@handleftman Год назад
В новостях пишут, что PayPal заблокировал их счёт с деньгами .... и это те люди, которые оплачивали Flipper (
@MrPwnzrus
@MrPwnzrus Год назад
Это же парень, который у АйТи бороды был , приятно видеть его и тут
@AndroidBroadcast
@AndroidBroadcast Год назад
О да, только сейчас вспомнил. Выпуск про Kotlin, но говорили про Android. В тот момент от компетентности интервьювера меня бомбануло
@LionZXY
@LionZXY Год назад
@@AndroidBroadcast а что не так говорил))) Вроде сейчас смотрю и не сказал бы что не так. А сам айтиборода специально притворялся что ничего не знает, чтобы я разжевывал очевидные вещи и ребятам не из айти было интересно слушать
@ra9ftm
@ra9ftm Год назад
Никита, что можете сказать про библиотеку blessed-android и blessed-android-coroutines?
@LionZXY
@LionZXY Год назад
Выглядит хорошо, я бы попробовал. Удивительно что пропустил когда ресерчил ещё год назад
@gigaprose
@gigaprose Год назад
Извините, что вклиниваюсь, но эта blessed-android чем-то концептуально лучше, чем rxBLE?
@ra9ftm
@ra9ftm Год назад
Пока думаю выбрать от Nordic или blessed
@quverr
@quverr Год назад
Так а как купить то его ? :) на сайте "We're busy updating the Flipper Shop for you and will be back soon."
@AndroidBroadcast
@AndroidBroadcast Год назад
Надо. ждать. обещают скоро открыть продажи
@LionZXY
@LionZXY Год назад
На сайте амперки можно оформить предзаказ
@dmitryskripka7445
@dmitryskripka7445 3 месяца назад
Так и не удалось купить этот девайс. Сайт отправляет в Joom, а там только чехол для этого устройства, защитные плёнки, и еще что-то, но самого устройства нет...
@AndroidBroadcast
@AndroidBroadcast 3 месяца назад
Посмотри на Авито
@dmitryskripka7445
@dmitryskripka7445 3 месяца назад
@@AndroidBroadcast В Беларуси нет Авито, я даже телефон продавца не могу посмотреть, не имея SIM карты, с номером, начинающимся на +7.... Даже, если попрошу кого, то квест с конвертацией денег в RUR, сделает это, и без того не особо дешевое устройство, стоящим как чугунный мост.
@mex5341
@mex5341 Год назад
Почему на Андроиде всё ещё нет аналога airDrop?
@AndroidBroadcast
@AndroidBroadcast Год назад
Nearby Share
@ViktorYakunin
@ViktorYakunin Год назад
по ходу я параноик, ибо сливать ключи доступа на какую-то штуку, которая потом может их слить с привязкой по жпс... можем получить еще один "кто звонит" или базу паролей вифи вашего города, только последствия куда плачевнее
@LionZXY
@LionZXY Год назад
Все опенсорс же
@ViktorYakunin
@ViktorYakunin Год назад
@@LionZXY есть вариант проверить прошивку и приложение? Есть вариант залить свою прошивку? Передает ли девайс инфу по ключам на телефон?
@LionZXY
@LionZXY Год назад
@@ViktorYakunin Конечно, есть вариант - и прошивка и приложение reproducable, собирается из исходников одной командой на любом компьютере
@ViktorYakunin
@ViktorYakunin Год назад
@@LionZXY окей, как вытащить прошивку с устройства, чтобы проверить чексум с той версией, которую собрал из исходников?
@LionZXY
@LionZXY Год назад
@@ViktorYakunin как-то можно через dfu
@dakarkaret3144
@dakarkaret3144 Год назад
Что там у флиппера с пейпалом кстати? Зарплаты платят или уже стоки дают? А с сертификацией в Украине?
@LionZXY
@LionZXY Год назад
Это деньги на будущие партии, не говоря уж о том что это далеко не все деньги. Просто неприятно, но для бизнеса не фатально. Флипперы в Украину уже поедут 12 сентября, вы вроде должны были email получить об этом
@xbotdroid2211
@xbotdroid2211 Год назад
Настоящая боль! когда iOS разработчик сделал работу с BLE по подключению к другому девайсу на изи с первого раза и это заняло в три раза меньше времени без доп фиксов🤣 А ты днями штудируешь доку, юзаешь рефлексию, чтобы дотянутся до закрытых методов, накидываешь кучу кастылей, занимаешься работой с потоками и все равно ничего🤷‍♂️
@AndroidBroadcast
@AndroidBroadcast Год назад
В такие моменты вежливых слов не подбирается
@LionZXY
@LionZXY Год назад
Я: комментарии к ютубу не могут заставить меня плакать Комментарии к ютубу:
@Strimer767
@Strimer767 2 месяца назад
Почему он не на русском
@livewithoutregrets4056
@livewithoutregrets4056 17 дней назад
Обычный органайзер сигналов
Далее
Я СКУФ!
06:12
Просмотров 1 млн
Decrypt a Mifare Classic 1K
6:12
Просмотров 7 тыс.
Тест Haval на угоностойкость
10:26
OAuth в мобильных приложениях
41:55
НЕ ПОКУПАЙ iPad Pro
13:46
Просмотров 284 тыс.