Pull to refresh

Как я случайно обошёл блокировку Google Pixel и получил за это $70 тысяч

Reading time8 min
Views83K

Я обнаружил уязвимость, похоже, затронувшую все телефоны Google Pixel: вы можете дать мне любое заблокированное устройство Pixel, и я верну его вам разблокированным. Баг устранили в обновлении безопасности 5 ноября 2022 года.

Проблема позволяла атакующему с физическим доступом к телефону обойти меры защиты экрана блокировки (отпечаток пальца, PIN и так далее), получив полный доступ к устройству пользователя. Уязвимость зафиксирована как CVE-2022-20465; она может затронуть и устройства Android других производителей. Мои рекомендации по патчу и сырой баг-репорт, отправленные Google, можно найти здесь: feed.bugs.xdavidhu.me.
Читать дальше →
Total votes 192: ↑189 and ↓3+186
Comments163

Как работает Activity. Часть 1

Reading time12 min
Views19K

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

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

В первой части совсем немного расскажу про Binder, про то, как происходит запуск Activity, как стартует процесс приложения и как на вызов Activity влияют флаги и launch mode. Во второй части будет про то, как вызываются методы жизненного цикла Activity, что происходит при сворачивании приложения, и более подробно расскажу про старт первой Activity.

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments0

Энергопотребление Android-приложений

Reading time9 min
Views22K

Ваши пользователи жалуются на то, что приложение очень быстро сажает заряд телефона? Запущенный фоновый сервис внезапно останавливается? Сообщения от FCM не доходят до пользователя? Что связывает эти три серьезных вопроса? Ответ прост — неверно выстроенная работа с энергопотреблением приложения.


Давайте разберемся в основных моментах, связанных с этой темой. Возможно, это позволит вам в будущем избежать ошибок, с которыми сталкивалось большинство разработчиков мобильных приложений.


В интернете огромное количество разрозненной информации, собрать которую в единое общее руководство было одной из основных целей этой статьи.


image

Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments13

Зона доступа: 30 способов, которые позволят разблокировать любой смартфон. Часть 1

Reading time16 min
Views339K


В своей работе компьютерные криминалисты регулярно сталкиваются с кейсами, когда надо оперативно разблокировать смартфон. Например, данные из телефона нужны следствию, чтобы понять причины суицида подростка. В другом случае — помогут выйти на след преступной группы, нападающей на водителей-дальнобойщиков. Бывают, конечно, и милые истории — родители забыли пароль от гаджета, а на нем осталось видео с первыми шагами их малыша, но таких, к сожалению, единицы. Но и они требуют профессионального подхода к вопросу. В этой статье Игорь Михайлов, специалист Лаборатории компьютерной криминалистики Group-IB, рассказывает о способах, которые позволяют экспертам-криминалистам обойти блокировку смартфона.
Читать дальше →
Total votes 30: ↑27 and ↓3+24
Comments22

Основы безопасности операционной системы Android. Native user space, ч.2

Reading time8 min
Views43K

Вступление


Сегодня я продолжу рассматривать безопасность на уровне немного выше ядра. Во второй части мы рассмотрим, откуда появляются system.img, userdata.img и cache.img, а также как обеспечивается безопасность в Native user space.
Всем кому интересно, добро пожаловать!
Читать дальше →
Total votes 45: ↑44 and ↓1+43
Comments4

Ищем бета-тестеров мобильного приложения Payoneer

Reading time1 min
Views6.4K
Уважаемые жители «Хабра», мы рады объявить, что мобильное приложение Payoneer наконец-то дошло до стадии бета-теста. Если вы являетесь владельцем аккаунта в Payoneer и заинтересованы в том, чтобы одному из первых протестировать приложение, подавайте заявку.
Читать дальше →
Total votes 15: ↑11 and ↓4+7
Comments23

Основы безопасности операционной системы Android. Безопасность на уровне Application Framework. Binder IPC

Reading time6 min
Views44K

Вступление


После небольшого перерыва я продолжаю объяснять базовые принципы как обеспечивается безопасность в операционной системе Android. Сегодня я начну описывать безопасность на уровне Application Framework. Но чтобы понять данную тему, вначале необходимо рассмотреть как в Android реализован механизм межпроцессного взаимодействия (Inter-Process Communication (IPC)). Этот механизм называется Binder IPC, и сегодня мы будем рассматривать его особенности. Все, кому интересно, добро пожаловать!
Читать дальше →
Total votes 29: ↑29 and ↓0+29
Comments7

Основы безопасности операционной системы Android. Native user space, ч.1

Reading time8 min
Views97K

Вступление


В этой статье я попробую рассмотреть безопасность чуть-чуть повыше ядра, а именно: как работает безопасность в Native user space. Мы коснемся темы процесса загрузки операционной системы и рассмотрим структуру файловой системы Android. Как я уже говорил, я не очень силен в Linux, поэтому если заметите неточности, то исправляйте — меня научите и статью улучшите. Так как эта тема довольно обширная, я решил разбить её на две части. В первой части мы рассмотрим процесс загрузки операционной системы и особенности файловой системы. Всем кому интересно, добро пожаловать!
Читать дальше →
Total votes 46: ↑41 and ↓5+36
Comments29

Основы безопасности операционной системы Android. Уровень ядра

Reading time6 min
Views100K

Вступление


Самой распространенной операционной системой для смартфонов на сегодняшний день является Android. Но не только этот факт подогревает интерес к ней. Открытость, возможность что-то настроить, подкрутить, и, естественно, сломать тоже в немалой степени способствуют увеличению популярности этой платформы. Я попробую поделиться опытом, как устроена эта операционная система, а так же рассмотреть систему безопасности. Всем, кому интересно, добро пожаловать! В этой статье я рассмотрю безопасность на уровне ядра.
Читать дальше →
Total votes 108: ↑102 and ↓6+96
Comments19

Лучшие доклады на Google I/O 2017: Архитектура и не только

Reading time5 min
Views12K
Привет! Меня зовут Михаил Баранников, я — Android-разработчик в e-Legion. Недавно вернулся с Google I/O и решил поделиться впечатлениями и ссылками на интересные выступления. Всего на конференции было 14 параллельных треков, а значит — огромное количество докладов. Статья полезна для тех, кто планирует посмотреть видеозаписи докладов по Android-разработке, но не знает с чего начать.


Total votes 28: ↑27 and ↓1+26
Comments3

Поездка на Google I/O: как, зачем и сколько стоит

Reading time6 min
Views10K
В этом году я впервые побывал на Google I/O. По итогу, могу с уверенностью сказать, что было круто! О докладах я рассказал в предыдущей статье, а теперь — о самой поездке. Рекомендую каждому Android-разработчику туда съездить. Под катом — лайфхаки на тот случай, если вы хотите побывать на Google I/O, но не знаете, как это сделать и во сколько вам это обойдётся.


Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments10

Патчим прошивку Android за 5 минут

Reading time2 min
Views30K

Задача


Все началось с того, что я захотел установить на планшет Digma Optima 7.61 игру GTA San Andreas. К сожалению, виртуальная SD-карта планшета имеет объем менее 1 Гб, а кэш игры весит порядка 2-3 Гб. На планшете установлен Android 4.4.2 и возможность просто взять и сменить память по умолчанию в нем отсутствует. Так же в нем отсутствует файл /etc/vold.fstab (он есть на более старых версиях андроида, и изменив данный файл с root-правами, можно поменять местами виртуальную и реальную карты памяти).

Необходимые инструменты


1. Компьютер или ноутбук с ОС Linux.
2. Утилиты adb и fastboot (входят в состав Android SDK, так же, как заметил tmnhy, входят в репозитории как отдельные пакеты).
3. Набор утилит bootimg_tools (нашел здесь).

Решение

Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments28

История создания библиотеки для группового общения андроид-устройств через Wi-Fi Peer-to-Peer соединение

Reading time6 min
Views12K
image

Предыстория


Мотивом написания данного приложения послужила курсовая работа по дисциплине «Компьютерные системы и сети». Честно говоря, эта одна из самых мной нелюбимых сторон в компьютерных технологиях, и я решил «подстраивать» курсовой проект под свои интересы, а именно, под Андроид-разработку.

Было решено создать библиотеку для соединения Андроид-устройств по средством Wi-Fi Direct технологии и передачи данных между ними (Wi-Fi Peer-to-Peer соединение осуществляется как раз с помощью технологии Wi-Fi Direct).
Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments20

AStA: собираем APK на самом устройстве

Reading time6 min
Views4.4K
Что такое AStA? Это акроним от «Android Studio on Android». Это метод, позволяющий собирать проекты Android Studio на Android устройстве с помощью chroot/Debian, JDK, Android SDK и Gradle.

Зачем это вообще нужно? Да мало ли, зачем… Бывает, например, хочется проверить какую-то идею, а декстопа под рукой нет. В общем, пусть на вопрос «зачем» каждый ответит для себя сам.

Какие существуют альтернативы? Из существующих решений мне известно только AIDE, но у него есть свои минусы. Во-первых, постоянно выскакивает окошко с предложением проапгрейдить версию за 600 рублей, а если этого не сделать, то нельзя сохранять проекты, состоящие из более чем 5 файлов. Во-вторых, AIDE не поддерживает сборку проектов Android Studio, состоящих из более, чем одного модуля.
Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments9

Несколько книг для начинающего и продолжающего разработчика под Android

Reading time8 min
Views69K

Android books


В прошлом году я входил в миры Android. Помимо изучения исходников, документации, статей, блогов, аудио- и видео-материалов по теме, читал книги. Спешу поделиться читательским опытом.


Под катом небольшой обзор восьми книг. Темы следующие:


  1. RxJava
  2. Потоки в Android
  3. Разработка под Android на Java
  4. Kotlin. Обзор языка
  5. Kotlin. Практика
  6. Kotlin. Обзор языка с уклоном на Android
  7. Разработка под Android на Kotlin
  8. Rx в Kotlin
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments10

Project Mainline в Android 10

Reading time3 min
Views14K
Вчера вышло очередное обновление ОС для мобильных устройств от Google. Одним из главных нововведений Android 10 стал «Project Mainline». Попробую разобраться что это, для чего и как работает.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments19

Оживляем тормозящий Samsung Galaxy TAB 2 WiFi

Reading time4 min
Views133K
Предлагаю Вашему вниманию свой рецепт оживления старого, тормозящего планшета и приведение его ПО в актуальное состояние.

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

Настала очередь уборки гаража, где я и нашел Samsung Galaxy Tab 2 7.0" P3110 (без слота сим карты). Ради интереса включил, он моргнул экраном и загрузился Android 4.1.

Здорово, подумал я, надежная железка, если за пару лет нахождения в неотапливаемом помещении завелась и загрузилась. Пожалуй, возьму я его под свою книжку. Собственно так я получил возможность несколько раз перечитать содержимое страницы, пока текст прокручивается на следующую, и пошагово смотреть любимые сериалы.
Решено было обновить и ускорить
Total votes 52: ↑41 and ↓11+30
Comments42

Особенности обновлений прошивки мобильных устройств

Reading time6 min
Views4.6K
Обновлять или не обновлять прошивку на личном телефоне каждый решает самостоятельно.
Кто-то ставит CyanogenMod, кто-то не чувствует себя хозяином устройства без TWRP или jailbreak.
В случае с обновлением корпоративных мобильных телефонов процесс должен быть относительно единообразным, иначе IT-шникам даже Рагнарёк покажется забавой.

О том, как это происходит в «корпоративном» мире, читайте под катом.

Особенности обновлений прошивки мобильных устройств рисунок 1
Читать дальше →
Total votes 6: ↑3 and ↓30
Comments4

Зона доступа: 30 способов, которые позволят разблокировать любой смартфон. Часть 2

Reading time14 min
Views21K


По правде говоря, технические методы разблокировки мобильных устройств не являются самоцелью для компьютерного криминалиста. Его основная задача — получить доступ к данным, хранящимся в памяти. Поэтому, если исследователю удается извлечь информацию из устройства в обход установленного PIN-кода или графического пароля — необходимость в разблокировке обычно отпадает. С другой стороны, если эксперт все-таки извлекает данные на физическом или логическом уровнях, то он может получить информацию, которая поможет ему в дальнейшем разблокировать девайс. В этой статье Игорь Михайлов, специалист Лаборатории компьютерной криминалистики Group-IB, продолжает рассказывать о способах, которые позволяют экспертам-криминалистам обойти блокировку мобильного устройства. Первую часть можно посмотреть здесь.
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments4

Создание SDK под Android в стиле Single-Activity

Reading time4 min
Views5.5K

Single activity подходом при создании конечного приложения под Android никого не удивишь. Но мы пошли дальше и использовали No-Activity при разработке SDK. Сейчас разберемся для чего это понадобилось, возникшие сложности и как их решали.

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments13