Содержание статьи
Когда говорят про слежку через телефоны, подслушивание и прочие злоупотребления со стороны их производителей и разработчиков приложений, почти всегда имеют в виду именно Android. Это и не удивительно, поскольку платформа максимально открытая, исходники доступны каждому, а значит, и вариантов одной и той же системы с разными модификациями куда больше.
Каждый производитель пытается как‑то выделиться, и часто при этом в систему попадает неопределенное количество софта сомнительного происхождения, который сыплет рекламой и ворует данные, а особо ушлые производители не стесняются внедрять и откровенную малварь.
www
Мы уже писали про шпионские замашки некоторых популярных прошивок. Хоть статье уже исполнилось шесть лет, актуальности она не потеряла, разве что объемы утечки стали больше, а каналы — скрытнее.
GrapheneOS (ранее известная как CopperheadOS) — это прошивка на основе AOSP, в которой сделан максимальный упор на конфиденциальность и защиту пользователя от всякого рода шпионских штук. При этом, в отличие от Ъ‑защищенных поделок, она сохраняет юзабельность, позволяя устанавливать приложения и сохраняя привычный интерфейс.
К обеспечению приватности разработчики GrapheneOS подходят очень методично и последовательно: вместо красивого брендинга все усилия вкладываются в глубоко технические улучшения, а все фичи должны в первую очередь не ухудшать безопасность, даже если пользователи просят добавить что‑то просто красивое. Сервисы Google Play по умолчанию отсутствуют, но можно установить их внутрь специальной песочницы, где они будут иметь ограниченные права.
Эти и другие фишки делают GrapheneOS самой продвинутой защищенной ОС для смартфонов в 2025 году. Я пользуюсь ей уже некоторое время и хотел бы поделиться своим опытом. Как знать — может, прочитав эту статью, и ты захочешь установить себе GrapheneOS!
Графеновая броня
Сразу оговорюсь, что все описанное в сегодняшней статье применимо далеко не на всех устройствах. Актуальная версия GrapheneOS совместима лишь с устройствами Google Pixel 6 и выше, Pixel 4 и 5 продолжают получать только обновления безопасности, а некоторые старые версии прошивки работали также на более старых Pixel и Nexus 5 и выше. Такие высокие требования — не прихоть маркетологов (тут их вообще нет), а жизненная необходимость: иначе не обеспечить адекватную защиту. Вот неполный список обязательных требований к устройству, чтобы разработчики вообще взялись за портирование GrapheneOS на него:
- поддержка всех аппаратных мер безопасности для сторонних операционных систем;
- минимум пять лет официальной поддержки устройства производителем, включая регулярные обновления драйверов;
- аппаратная виртуализация;
- изолированные модули радиосвязи, обработки изображений и другие;
- верифицированная загрузка с защитой от понижения версии прошивки и загрузчика;
- наличие аппаратного хранилища ключей и аппаратная же проверка паролей с троттлингом, чтобы избежать брутфорса;
- аппаратная поддержка функций анонимизации, например рандомизации MAC-адресов Wi-Fi;
- возможность отключения передачи данных по USB и отладочных протоколов в контроллере USB-порта.
Список, разумеется, далеко не полный, но дает представление об уровне стандартов. Все это позволяет реализовать самые передовые практики обеспечения приватности и безопасности.
info
Под приватностью я понимаю защиту от слежки посторонними лицами, а под безопасностью — защиту от неавторизованного доступа к компонентам системы. Например, рекламные SDK представляют проблему для приватности, но не для безопасности, а эксплоит для Chrome, который обходит песочницу и позволяет выполнять код в системе, — это уже проблема безопасности, а не приватности. В реальности грань довольно тонка, а проблемы безопасности могут напрямую перерасти в проблемы приватности, так что деление довольно условное.
Что же конкретно может предложить GrapheneOS для защиты пользователя? Даже заметных изменений довольно много. Давай пройдемся по ним по порядку.
Sandboxed Google Play
Сервисы Google Play глубоко интегрированы в систему любого смартфона на Android. Обычно они установлены как системное приложение, имеют широкие права и могут скрытно делать что угодно: хоть следить за твоей локацией, хоть выгружать контакты (это зовется синхронизацией), хоть устанавливать сомнительный софт, иногда почти неотличимый от спайвари. Отозвать у них эти разрешения не то чтобы невозможно, но довольно затруднительно, а некоторые забрать и правда нельзя.
Многие скажут: да что сложного, просто не ставь их и живи спокойно! Без сервисов Google Play действительно можно жить, и многие кастомные прошивки поставляются без них, вот только пользоваться таким телефоном заметно менее удобно. В частности, перестает работать Play Market, так что устанавливать приложения приходится вручную или из сторонних магазинов, некоторые приложения отказываются работать или работают неправильно, хромает доставка уведомлений, и происходят другие неприятные вещи. Замена в виде microG помогает далеко не всегда, так что для удобства, конечно, лучше держать настоящие сервисы.
GrapheneOS эту проблему решает очень элегантно. Туда устанавливаются настоящие сервисы Google Play, но работают они в песочнице, специально доработанной для совместимости с ними. Туда же можно установить и Android Auto — точнее, часть подсистемы, которая отвечает за трансляцию телефона на автомобильный борткомпьютер и требует для этого широких привилегий.
Устанавливаются такие приложения через встроенный магазин GrapheneOS App Store. Из недостатков — приложений мало, и все они довольно специфические (сервисы Google Play, Android Auto, GrapheneOS Auditor и подобные).
info
Android Auto в силу фундаментальных особенностей его устройства полностью запихать в песочницу совсем без привилегий невозможно. В GrapheneOS есть специальное расширение для поддержки этой важной функции. Если ты решишь пользоваться Android Auto в GrapheneOS, просто имей в виду, что песочница тут не настолько неприступная, как в случае с другими приложениями. Впрочем, серьезных рисков это не несет: почти все привилегии Android Auto все же можно отобрать в рамках обычной песочницы без потери функциональности.
Подключить какие‑то свои репозитории в GrapheneOS App Store невозможно, так что после установки всего необходимого в первый день он становится не нужен, а удалить само приложение магазина нельзя.

Песочница с гуглосервисами настолько специфическая, что под нее сделали даже отдельные меню в настройках. Там можно, в частности, управлять спецразрешениями этих сервисов и перехватывать запросы к Google Location API и Play Integrity API.
Нужно при этом понимать, что, несмотря на все усилия разработчиков GrapheneOS, гуглосервисы создавались с учетом постоянного наличия привилегированного доступа к системе и некоторые фичи могут не действовать, когда сервис запущен в песочнице. Например, работа с аппаратными ключами FIDO2 пока не поддерживается, но ее обещают реализовать в будущем.

Google Location API
Сервисы геолокации Google полагаются не только на GPS, но и на другие источники — в частности, сотовые вышки и ближайшие точки доступа Wi-Fi. Эта фича значительно улучшает точность позиционирования и способна работать даже без доступа к GPS.
Следуя политике максимальной изоляции проприетарных сервисов Google от системы, разработчики GrapheneOS встроили в систему альтернативную реализацию сервиса локации, которая работает на тех же принципах, но не полагается на Google. Это значительно улучшает приватность и работает довольно стабильно, но если по какой‑то особой причине тебе понадобился сервис именно от Google — можно переключиться на него.
Для этого используй переключатель Reroute location requests to OS APIs в настройках Sandboxed Google Play и предоставь сервисам Google постоянный фоновый доступ к геолокации. Подробности — на официальной справочной странице.
Из заметных неудобств, возникающих от принудительного заталкивания гуглосервисов в песочницу, могу отметить менее приятную процедуру установки и обновления приложений. Если при традиционной работе гугломаркета приложение можно установить одной кнопкой, то в GrapheneOS после нажатия кнопки установки в Play Market нужно дождаться скачивания, определиться с доступом к сети для нового приложения и подтвердить установку во всплывающем в случайный момент окне, которое может появиться внезапно прямо во время активной работы с другим приложением. Очень легко его закрыть случайным тапом, и процесс придется начинать сначала.
При обновлении установку новой версии тоже нужно подтверждать вручную. Установка порядка 30 приложений при переходе на GrapheneOS превратилась в пытку, потому что всплывающие одно поверх другого подтверждения установки мешали друг другу и процесс часто прерывался, так что поставил все нужное я раза с пятого.

Отключение доступа в сеть
Я уже упоминал разрешение на доступ в интернет. Так вот, это не просто файрвол, который может резать соединения отдельных приложений, а полноценно реализованный механизм спуфинга важных API для работы с сетью. Например, вместо простого отказа в доступе при попытке пользоваться интернетом приложение получит ошибку, говорящую об отсутствии сетевого соединения, а API проверки доступа к интернету будет говорить, что устройство вообще ни к какой сети не подключено.
Продолжение доступно только участникам
Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».
Присоединяйся к сообществу «Xakep.ru»!
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее