Как я разбиралась с CVE-2019-2215: путь от сборки ядра до root на Android
Заметка о том, как я применила навыки реверс-инжиниринга бинарных файлов к исследованию уязвимости ядра Android, с какими трудностями столкнулась и что из этого вынесла.

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

Почти месяц назад я забрал Honda Vezel 2024 года для китайского рынка. В штатном ГУ оказалось только Baidu CarLife. Android Auto нет и не будет. Дилер ничего не прошил, да и вряд ли смог бы. Без активации Honda Connect, которую невозможно сделать за границами Китая, по факту это ГУ которое умеет проигрывать радио/usb/bluetooth музыку. Поискал решения: либо коробочка wizcar и т.п., либо на реддите один иракец продавал приложение. А раз он справился и адаптер это уже умеет, значит, справилюсь и я. Если бы лет 10-15 назад я бы декомпилировал руками apk, то сейчас расчехляем Claude Code и поехали.
Так появился Headswap - приложение на телефоне, которое для ГУ выглядит как телефон с CarLife, а для Android Auto на том же телефоне выглядит как головное устройство. Код открыт (GPL-3.0), репозиторий на GitHub.
Далее расскажу про то как всё усторенно и какие с какими проблемами столкнулся за три с половиной недели. Наивный я, пологал, что сделал только для хондоводов, пока через несколько дней не присоединились сотни машин :)

Фото чужой визитки не должно покидать телефон — так требует 152-ФЗ. Рассказываю, как мы распознаём визитки на Android без облака: PaddleOCR v5 через ONNX Runtime в React Native, почему отказались от LLM, как ускорили снимок с 7,8 до 3 секунд и что ONNX Runtime по умолчанию отправляет в Microsoft.

Сегодня мы одновременно выпускаем Vivaldi 8.3 для Android, iOS и настольных компьютеров. Главная новинка — переработанный блокировщик рекламы и слежки. На Android пользователи получают более удобные группы вкладок, улучшенное управление мультимедиа и возможность быстро перейти к приложению на сайте. На iOS страницы с включенным блокировщиком загружаются заметно живее, батарея не разряжается так быстро, и вы сами выбираете, где открывать новые вкладки.
Отправил агенту задачу с телефона, убрал телефон в карман и хочешь узнать, когда он закончит. Обычно для этого берут пуши Google (FCM). У DSH Mobile облачного сервера нет, телефон разговаривает напрямую с компьютером, на котором работает агент. В версиях 0.9.x я переделал уведомления. Постоянного соединения в простое больше нет, а за отправленной задачей телефон следит, даже если Android выгрузил приложение или телефон перезагрузили. Расскажу, как это устроено и какие четыре ошибки нашлись по дороге. Самая заметная съедала 11 секунд на каждом ответе агенту, самая неприятная обрывала загрузку фото на 5 МБ.

В новой еженедельной подборке граф зависимостей целого приложения и больше ИИ-агентов в Android Studio Rabbit 2, Over The Air обновления Kotlin-кода и советы junior инженерам от нанимающего менеджера Anthropic, троян в ушах и угон аккаунтов через беспроводные наушники, новый AppsFlyer Performance Index, доставка 584 Мб модели Gemma через Google Play и многое другое. Заходите!

Я сделал react-native-glyph-ocr: библиотеку распознавания текста на устройстве для React Native. На iOS она работает на Apple Vision, на Android — на PaddleOCR. На фото этикеток с русским составом Android-версия читает 77–83% ингредиентов, а ML Kit — 13–28%.
В статье — почему не ML Kit, как выбирал движки, как устроены API и сканер камеры, что пришлось выбросить по дороге и где библиотека пока слабее, чем хотелось бы. Пакет уже в npm: npm i react-native-glyph-ocr.

Однажды два немецких пентестера взялись за рутинный аудит Bluetooth Auracast. Они рассчитывали отловить мелкие шероховатости в спецификации, но случайно обнаружили распахнутый настежь черный ход в миллионы наушников.
Речь о незащищённом сервисном интерфейсе, через который любой человек в радиусе действия Bluetooth может вытащить из чужих наушников криптографические ключи, клонировать устройство и получить контроль над звонками. И всё это без спаривания, вводов PIN‑кода и какой‑либо аутентификации. В итоге исследователи довели цепочку атаки до угона WhatsApp-аккаунтов. Уязвимость затронула устройства Sony, Marshall, JBL, Jabra, Beyerdynamic, Teufel и множество клонов AirPods.
Давайте разберемся, как реверс-инжиниринг утилиты обновления прошивки привёл к компрометации целой экосистемы Bluetooth-аудио, и почему ваша безопасность зависит от лени OEM-интеграторов.

Навайбкодил приложение для Android для менеджмента IP камер разных производителей с поддержкой функций камер, которых нет в других приложениях. Суть в том, чтобы не пользоваться каждодневно несколькими приложениями от производителей IP камер, а использовать одно приложение "всё-в-одном".
Кратко о том, что я добавил в своё приложение и выложил проект с открытым исходным кодом + APK в Github.

В YPtun появилась автоустановка серверов: вводите IP и пароль от VPS, нажимаете кнопку, и приложение само ставит сервер и заполняет поля подключения. Работает для семи движков на Android и ПК. Рассказываем, что происходит внутри и на чём мы спотыкались.

На моём Xiaomi 12T Pro загружается Arch Linux. Это не Termux и не chroot, а полноценная система: штатное ядро телефона, systemd, Wayland. Android остаётся рядом, при включении выбор делается кнопкой громкости. Ниже: как это устроено, что работает и на какие грабли я наступил по дороге. Большинство из них не привязаны к модели и встретятся на любом Qualcomm‑телефоне с GKI.

Прошёл год с момента выхода первой части. Тогда нам удалось вывести изображение на экран настоящего телефона. Это была проверка того, что идея в принципе реализуема.
Дальше началась системная работа, о которой я писал в предыдущей части. Теперь ОС наращивает userspace-слой. На экран вернулась картинка — уже с окнами, кнопками и приложениями для телефона, Raspberry Pi и QEMU. На телефоне заработал и тачскрин.
Эта часть будет обзорной: посмотрим, как теперь устроены связи между программами, файловая система и поддержка C и C++, запустим SQLite и DOOM. А в конце напишем своё GUI-приложение — калькулятор. В третьей части он выводил результат в UART. В этой сделаем калькулятор с окном и кнопками.

Открытый клиент удалённого рабочего стола с тачпадом чехла, общим диском, микрофоном и агентом для Windows — бесплатно, без рекламы и монетизации.
Я веб-разработчик, и моя работа устроена так, что «на связи» нужно быть в самый неожиданный момент: то прод упал в субботу вечером, то заказчик просит срочно поправить одну строчку, то нужно просто посмотреть, как ведёт себя вёрстка на боевом окружении. Всё это — на моём ПК: там настроенные программы, базы, локальный сервер для тестов и все проекты, которые я веду. ПК стоит дома, и уезжать от него далеко не хочется.
Какое-то время я честно пытался решить это ноутбуками. И каждый раз упирался в одно и то же.

Под конец 2025 года мой iPhone 11 стал всеми силами показывать, как ему тяжело в современных реалиях, когда приложения повышают свои системные требования, а сама обновлённая iOS на старых девайсах выглядит хуже, чем на тех, что поновее, — всё же 4 гигабайта ОЗУ играют свою роль. До iPhone 11 у меня была «лопата» Xiaomi Mi Max (не самый плохой смартфон, кстати!) и другие бюджетники, так что «андроиды» для меня были не в новинку. Но, глядя на цены на новые айфоны и конкурентов в лице Samsung, возник вопрос: а что, собственно, я потеряю, вернувшись сейчас на Android в лице Galaxy S25 Plus? Ох, с чего бы начать…
Сразу же дисклеймер: я уважаю обе операционные системы и вижу плюсы у обеих. Ваш опыт использования этих ОС может отличаться — и это нормально.

PocketDeploy запускает сайт и официальный Bluesky PDS внутри Android. Разбираю границы встроенного режима и Termux, HTTPS-шлюз, федерацию, резервную копию и известные проблемы безопасности. Реальные экраны, протоколы и неудачный опыт обслуживания облачного эмулятора на 2 ГБ. Следующий этап — воспроизводимый запуск и восстановление; готовность к работе 24/7 ещё не доказана.

28 октября моему пет-проекту PyLab, приложению для изучения Python и написания кода прямо на смартфоне, исполнилось два года. В прошлой статье я рассказывал, что умеет приложение, а сегодня расскажу о решениях: почему горячие правки обходятся дороже, чем кажется, чем окупился полный редизайн в версии 4, как одна идея пользователя стала любимой функцией и почему модерация в сторах превращает каждую ошибку в проблему на неделю.
Oct 25, 2026 · @Andrei
Я научил телефон ставить свежую сборку на часы TicWatch Pro 5 Enduro по Bluetooth, без adb на самих часах. Одна команда на ПК собирает оба приложения и доставляет APK на часы примерно за 2,5 минуты. Ниже — архитектуру моста и пять граблей Android 12–14, каждая из которых стоила мне вечера.
Откуда задача. Wear OS-часы отлаживаются через «Wireless debugging» по Wi-Fi. TicWatch выключает Wi-Fi вместе с adb, как только его снимают с руки. Типичная картина: adb devices показывает часы, а adb shell висит вечно, или mDNS видит устройство, но connect отказывает. Помогает только надеть часы или поставить их на зарядку.
При этом телефон и часы постоянно держат связь по Bluetooth — по ней и так ходят данные пульса. Телефон же надёжно сидит на adb по USB. Отсюда идея: команда идёт на телефон, а телефон пересылает её на часы по тому же каналу, что и в продакшене. Заодно отладочный путь проверяет реальную связку, а не параллельную.
Разбор медиастека TikTok на Android: как устроен закрытый плеер TTVideoEngine, поиск методов в обфусцированном байт-коде через сигнатуры ReVanced, алгоритм адаптивной проверки таймлайна и архитектура базы таймкодов на Cloudflare с kk-анонимностью.

Вы когда нибудь задумывались можно ли встроить Capacitor приложение в нативный проект? Вот и я до недавнего времени не задумывался. Но сегодня мы рассмотрим такой подход, его преимущества и недостатки и зачем вообще это может понадобиться.
Когда я разрабатывал GhostGram - экспериментальный клиент Telegram на Kotlin Multiplatform, - со стикерами пришлось повозиться.
Сначала всё выглядело относительно просто: получить файл TGS, передать его проигрывателю и показать анимацию в интерфейсе. Но на Android обнаружились две проблемы. Некоторые стикеры воспроизводились заметно быстрее, чем в официальном Telegram, а при отображении нескольких анимаций график HWUI показывал серьёзные задержки.
Я пробовал оптимизировать существующую реализацию, затем сменил библиотеку и в итоге пришёл к другому подходу: предварительно отрисовывать кадры в Bitmap и воспроизводить их как последовательность изображений.
Расскажу, почему я выбрал этот подход, что пришлось дорабатывать после первой реализации и почему проблема быстрого скролла пока осталась открытой.