Обновить
128K+

Android *

Пишем под самую популярную мобильную ОС

134,09
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Расширение врёт: как я учил Android-приложение открывать двести типов файлов по первым байтам

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели2.6K

У каждого файла два имени. Первое написано после точки, и верить ему нельзя: его придумал человек, почтовый клиент или сайт, который «на всякий случай» переименовал вложение. Второе лежит в первых байтах. Вот оно почти никогда не врёт.

Я делаю XanderFiles — просмотрщик для Android, который открывает двести с лишним расширений: от PDF и Excel до winmail.dat, подписанных .p7m, RAR с паролем, книг FB2, RAW с фотоаппаратов, билетов Wallet, снимков КТ с диска из клиники и рисунков CorelDRAW. Это статья не о том, как меня достала надпись «Не удаётся открыть файл». Она о том, как всё устроено внутри и на какие грабли я наступил. Будут WebAssembly, матрёшка из Outlook, правка чужого минифицированного кода на лету и картинки, которые никто не рисует.

Читать далее

Новости

Блокировщик, который нельзя смахнуть: как я следил за чужими приложениями на Android без AccessibilityService

Время на прочтение4 мин
Охват и читатели3K

Я делаю приложение, которое перед открытием выбранных приложений и игр показывает свой экран с коротким заданием. Чтобы это работало, нужно в каждый момент знать, какое приложение на переднем плане, не разряжать батарею и пережить агрессивную экономию энергии у разных производителей. Рассказываю, на чём я спотыкался и как это сейчас устроено.

Читать далее

Как я разбиралась с CVE-2019-2215: путь от сборки ядра до root на Android

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели4.1K

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

Читать далее

Android Auto в Baidu CarLife: я подружил два протокола и что сломалось по дороге

Уровень сложностиСредний
Время на прочтение18 мин
Охват и читатели6.2K

Почти месяц назад я забрал 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.

Далее расскажу про то как всё усторенно и какие с какими проблемами столкнулся за три с половиной недели. Наивный я, пологал, что сделал только для хондоводов, пока через несколько дней не присоединились сотни машин :)

Читать далее

Распознавание визиток на телефоне без облака: PaddleOCR, ONNX и React Native

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели5.3K

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

Читать далее

Мобильный Vivaldi 8.3: быстрый и чистый интернет в кармане

Время на прочтение5 мин
Охват и читатели5.2K

Сегодня мы одновременно выпускаем Vivaldi 8.3 для Android, iOS и настольных компьютеров. Главная новинка — переработанный блокировщик рекламы и слежки. На Android пользователи получают более удобные группы вкладок, улучшенное управление мультимедиа и возможность быстро перейти к приложению на сайте. На iOS страницы с включенным блокировщиком загружаются заметно живее, батарея не разряжается так быстро, и вы сами выбираете, где открывать новые вкладки.

Читать далее

Как DSH Mobile дожидается ответа ИИ-агента без пушей Google

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели8.4K

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

Читать далее

Мобильная разработка за неделю #651 (26 октября — 1 ноября)

Время на прочтение6 мин
Охват и читатели6.7K

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

Читать далее

Как я научил React Native читать кириллицу на Android: OCR на Vision и PaddleOCR

Время на прочтение8 мин
Охват и читатели8.2K

Я сделал 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.

Читать далее

Троян в твоих ушах: как угнать WhatsApp и Amazon через беспроводные наушники

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели11K

Однажды два немецких пентестера взялись за рутинный аудит Bluetooth Auracast. Они рассчитывали отловить мелкие шероховатости в спецификации, но случайно обнаружили распахнутый настежь черный ход в миллионы наушников.

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

Давайте разберемся, как реверс-инжиниринг утилиты обновления прошивки привёл к компрометации целой экосистемы Bluetooth-аудио, и почему ваша безопасность зависит от лени OEM-интеграторов.

Читать далее

IP камеры разных брендов в одном приложении на Android

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели7.1K

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

Кратко о том, что я добавил в своё приложение и выложил проект с открытым исходным кодом + APK в Github.

Читать далее

YPtun — клиент, который сам поднимает себе сервер

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели9K

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

Как это устроено

Arch Linux на Xiaomi 12T Pro: стоковое ядро Android, vendor‑модули и девять граблей загрузки

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели5.5K

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

Читать далее

Ближайшие события

Пишем свою мобильную ОС с нуля на Rust. Часть 4: GUI, SQLite и DOOM

Время на прочтение13 мин
Охват и читатели9.4K

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

Дальше началась системная работа, о которой я писал в предыдущей части. Теперь ОС наращивает userspace-слой. На экран вернулась картинка — уже с окнами, кнопками и приложениями для телефона, Raspberry Pi и QEMU. На телефоне заработал и тачскрин.

Эта часть будет обзорной: посмотрим, как теперь устроены связи между программами, файловая система и поддержка C и C++, запустим SQLite и DOOM. А в конце напишем своё GUI-приложение — калькулятор. В третьей части он выводил результат в UART. В этой сделаем калькулятор с окном и кнопками.

Читать далее

Планшет вместо ноутбука: RDP‑клиент под Android, после которого ноутбук остаётся дома

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели5.7K

Открытый клиент удалённого рабочего стола с тачпадом чехла, общим диском, микрофоном и агентом для Windows — бесплатно, без рекламы и монетизации.

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

Какое-то время я честно пытался решить это ноутбуками. И каждый раз упирался в одно и то же.

Читать далее

Я вернулся на Android, и мне не понравилось

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели10K

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

Сразу же дисклеймер: я уважаю обе операционные системы и вижу плюсы у обеих. Ваш опыт использования этих ОС может отличаться — и это нормально.

Читать далее

PocketDeploy: веб-приложение и свой Bluesky PDS на Android — что получилось и где пока пределы

Уровень сложностиСредний
Время на прочтение24 мин
Охват и читатели3.9K

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

Разобрать архитектуру

PyLab — 2 года: как пользователи превращают пет-проект в продукт

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели5.4K

28 октября моему пет-проекту PyLab, приложению для изучения Python и написания кода прямо на смартфоне, исполнилось два года. В прошлой статье я рассказывал, что умеет приложение, а сегодня расскажу о решениях: почему горячие правки обходятся дороже, чем кажется, чем окупился полный редизайн в версии 4, как одна идея пользователя стала любимой функцией и почему модерация в сторах превращает каждую ошибку в проблему на неделю.

Читать далее

Обновляем приложение на Wear OS-часах без adb по Wi-Fi: мост через телефон

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели5K

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-патч и k-анонимность

Уровень сложностиСложный
Время на прочтение6 мин
Охват и читатели6K

Разбор медиастека TikTok на Android: как устроен закрытый плеер TTVideoEngine, поиск методов в обфусцированном байт-коде через сигнатуры ReVanced, алгоритм адаптивной проверки таймлайна и архитектура базы таймкодов на Cloudflare с kk-анонимностью.

Читать далее
1
23 ...