Ещё в декабре, но написать об этом удалось спустя 4 месяца. Давно об этом мечтал, и вот свершилось.

Установить GrapheneOS вовсе несложно, есть удобный пошаговый установщик в браузере. Главная проблема — это приобрести свежую модель Google Pixel. Телефоны недешёвые и не лучшие на рынке, но такова особенность GrapheneOS — только пиксели соответствуют всем требованиям безопасности, зато они поддерживаются целых 7 лет. Но скоро к ним добавится Motorola.

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

Но всё-таки, если вы выбрали GrapheneOS, то стоит хотя бы попробовать меньше зависеть от несвободных приложений. Я об этом задумался ещё несколько лет назад, и начал постепенно отказываться от Google Play: сначала F-Droid, а затем Obtainium. Поэтому когда я установил GrapheneOS, то без проблем скачал Obtainium, закинул туда ссылки на все свои приложения, и продолжил пользоваться телефоном как обычно. Хотя разработчики GrapheneOS рекомендуют Accrescent из-за безопасности, я не нашёл в нём смысла.

Однако большинство пользователей привыкли к Google Play, и начало работы с GrapheneOS для них покажется затруднительным. Разработчики предоставляют официальное приложение Google Play и сервисы Google в изолированной среде. Можно без проблем их поставить, войти в аккаунт и скачивать оттуда приложения. Работают даже платные приложения и игры с DRM Play Integrity. В качестве альтернативы рекомендуют Aurora Store, в котором можно скачивать из Google Play анонимно. Реализовано через временные аккаунты, и это так хлипко выглядит, что я бы не стал рекомендовать использовать это на постоянной основе. Всё равно некоторые приложения требуют сервисы Google для их работы.

Чуть менее очевидная необходимость сервисов Google кроется в Push-уведомлениях. Вот вы скачали свои проприетарные мессенджеры и соцсети, а уведомлений от них не будет, пока вы не скачаете сервисы Google или microG. Если повезёт, то приложения могут уметь работать в фоне (Telegram, Delta Chat) или реализовывать UnifiedPush (IronFox, Moshidon, Element) — для этого ставим Sunup.

В стоковом Android ещё с давних пор поддерживается многопользовательский режим: можно создать несколько пользователей, и устанавливать для них определённые приложения. Но почему-то в большинстве прошивок этой функции нет. А в GrapheneOS она сильно улучшена: повышенная изоляция, увеличенный лимит на общее количество пользователей (с 4 до 32), завершение сессии, пересылка уведомлений (только название приложения и пользователь). Так что весь spyware можно разнести по отдельным изолированным пользователям, и заходить в них только по необходимости. Правда, некоторые приложения могут быть не готовы к этому: Termux отказывается запускаться, а Geometry Dash не сохраняет данные. Кроме того, не изолируется сеть: если приложение пытается слушать занятый другим пользователем порт, то оно не будет работать (актуально для KDE Connect и некоторых прокси-клиентов). Зато изолируется интерфейс VPN. А ещё непонятно как передавать файлы — приходится пользоваться компьютером. Если нужно установить одно приложение в оба пользователя, то обновляться оно будет одновременно для всех.

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

Это не всё, что я хотел сказать про GrapheneOS — пост придётся разделить на несколько частей, которые выйдут позже. Но наконец хоть что-то про это написал, так что мне больше не нужно держать это в тайне.

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

По умолчанию для каждого приложения применяется оптимальная защита от эксплойтов. Из-за этого могут возникать ошибки, поэтому может понадобиться отключать эти меры защиты. Для некоторых приложений уже могут быть применены оптимальные параметры. К счастью, об этом особо не стоит задумываться, так как за всё время и кучу приложений я столкнулся только с двумя проблемами. IronFox вызывал ошибки memory tagging, но они ни на что не влияли, и потом вовсе прекратились. А ещё одно единственное приложение крашится, пока не отключить hardened memory allocator. Я думаю каждый сможет легко угадать с первой попытки, какое именно это приложение, ведь никакое другое не станет просто так крашится из-за мер безопасности. Как раз вылеты могут происходить, если приложение пытается воспользоваться эксплойтами.

Приложениям можно запретить доступ к интернету перед установкой и в разрешениях. Это не просто отрубает все подключения, а имитирует плохой интернет. Очень полезно, когда приложение может работать без интернета, но всё равно его просит. Но я этим пользовался редко. Хотелось бы встроенный фаервол, в котором можно было бы ограничивать отдельные адреса. Или просто отслеживание доменов (вроде в iOS что-то подобное есть).

С геолокацией я немного впал в ступор. Поначалу телефон вообще не мог определить где я нахожусь. Но как оказалось, надо включить эти сервисы локации: Network location, Geocoder, Secure User Plane Location (SUPL) и Predicted Satellite Data Service (PSDS). Можно выбрать разные серверы, я оставил те что от GrapheneOS. Ещё это зависит от местонахождения (надо быть на открытой местности, чтобы поймать сигнал спутника). Далее локация определяется вполне точно. Хотя иногда она бросала меня куда попало, но кажется это было из-за Google Fused Location в CoMaps. Я довольно редко пользуюсь картами, но при текущей конфигурации должно быть всё нормально.

Обновления приходят регулярно. Список изменений можно посмотреть в стандартном приложении Info. Процесс установки происходит полностью в фоне на вторичный раздел. Когда обновление будет готово, просто перезагрузите телефон, и всё! Далее в фоне будут оптимизироваться приложения, после чего нужно нажать на уведомление, чтобы перезапустить их. Можно вообще не беспокоиться, что скачивание прервётся из-за плохой сети, или во время установки что-то повредится. При ошибках так же автоматически происходит откат и повторное скачивание. Честно, мне трудно поверить, что такая user-friendly система обновлений реализована в GrapheneOS, а не стоковом Android. Но действительно, для повышенной безопасности пользователи должны всегда быть на актуальной версии. С такой простой системой обновлений никто не их не упустит.

Есть система бэкапов SeedVault. Хотя она признана устаревшей, и ведётся работа над заменой, работает вполне неплохо. Можно настроить автоматическое резервное копирование приложений (данные + APK) на свой сервер или на флешку (активируется автоматически при подключении). Архив зашифрован фразой из 12 слов, которые показываются при первом запуске. У каждого пользователя свои бэкапы.

GrapheneOS хорошо улучшает защиту от утечек при использовании VPN. Для каждого профиля можно использовать отдельную конфигурацию. По умолчанию при первом подключении активируется настройка "Always-on VPN", и блокируются все подключения без VPN. Это странное решение, не всегда я хочу использовать приложение как постоянную VPN... Можно было бы добавить галочку на модальном окне подтверждения установки первого соединения.

При подключении к компьютеру по USB по умолчанию передача файлов отключена. Нужно нажать на уведомление, затем выбрать нужный режим и ввести пин-код. Неудобненько.

Ещё из интересного можно выделить выдачу ограниченного доступа к файлам и контактам (Storage/Contacts Scopes), тревожный пароль (Duress Password), автоматическое отключение Wi-Fi и Bluetooth... Не хватает возможности фальсифицировать локацию или запись микрофона/камеры. Не помешал бы встроенный дистрибьютор или сервер UnifiedPush.

GrapheneOS features overview

Overview of GrapheneOS features differentiating it from the Android Open Source Project (AOSP).

GrapheneOS