Android. Использование GrapheneOS.
Системная навигация.
По умолчанию в GrapheneOS используется навигация с помощью жестов.
Режим системной навигации можно настроить в Настройки ⇒ Система ⇒ Жесты ⇒ Режим навигации
. Это же меню доступно в Настройки ⇒ Спец. возможности ⇒ Управление системой ⇒ Режим навигации
.
https://gekkk.co/i/fd38cf21b84882a6c23d1dfd1ab33325

Навигация с помощью жестов.
Нижняя часть экрана является зарезервированной сенсорной зоной для системной навигации. В центре отображается линия, показывающая, что панель навигации присутствует во всей нижней части экрана. В большинстве приложений в этой области отображается подложка. Современные приложения могут сообщить операционной системе, что они могут обойтись без подложки, чтобы отображать там содержимое приложения. Для примера откройте приложение «Настройки».
Свайп вверх от навигационной панели, одновременно убирая палец с экрана, ― это жест «Домой».
Свайп вверх от навигационной панели, удерживая палец на экране перед тем, как отпустить, ― это жест «Недавние приложения». Самое последнее открытое приложение всегда находится справа. Каждый шаг влево возвращает на один шаг назад в истории недавно открытых приложений. При открытии приложения с помощью активности «Недавние приложения» оно будет перемещено в правое положение в списке недавних приложений, как и при открытии нового приложения.
В разделе «Недавние приложения» есть кнопка скриншота ― альтернатива удерживанию кнопок питания и уменьшения громкости во время работы с приложением.
Вместо того чтобы открывать недавние приложения, вы можете провести пальцем вправо по навигационной панели, чтобы открыть предыдущее приложение, и провести пальцем влево, чтобы открыть следующее приложение. При этом порядок недавних приложений не изменится. Обычно это лучший способ навигации по недавним приложениям.
Проведение пальцем влево или вправо по экрану внутри приложения (не по панели навигации) ― это жест «Назад». Предполагается, что приложения должны избегать применения конфликтующих жестов, но у них есть возможность переопределить этот жест, если им действительно нужно от него избавиться. Некоторые устаревшие приложения без активного развития своего пользовательского интерфейса до сих пор не решили эту проблему, несмотря на то, что жесты уже несколько лет используются по умолчанию в Android. Избежать срабатывания жеста назад можно одним из двух простых способов: не проводить пальцем по экрану вблизи его края или на мгновение задержать палец на краю экрана перед проведением пальца. Более продвинутый вариант ― использовать диагональный свайп, направленный резко в нижнюю часть экрана, так как это позволит обойти жест «назад», но при этом задействует большинство жестов приложений. Продвинутый вариант ― самый удобный, если привыкнуть к нему.
Чтобы открыть лоток приложений с главного экрана, используется жест смахивания вверх, начинающийся в любом месте экрана. Этот жест нужно начинать выше системной навигационной панели, поскольку любой жест, начинающийся на навигационной панели, обрабатывается операционной системой как жест системной навигации.
Навигация с помощью трех кнопок.
Трехкнопочная навигация ― это старейшая навигационная система Android на базе сенсорного экрана. Она будет поддерживаться в обозримом будущем, чтобы обеспечить доступность для пользователей, неспособных легко использовать жесты.
Полоса в нижней части экрана отведен под кнопки навигации. Кнопка «Назад» находится слева, кнопка «Домой» ― в центре, а кнопка «Недавние приложения» ― справа.
Доступ к хранилищу
В GrapheneOS применяется тот же подход к доступу к хранилищу, что и в современном Android, и имеется функция Storage Scopes как полностью совместимая альтернатива стандартным разрешениям на использование внутренней памяти в Android. Стандартный подход к доступу к хранилищу заключается в том что существует два типа хранилищ, доступных для приложений:
⭘ app-private («внутреннее»). хранилище:
● недоступно для других приложений
● не требует никаких разрешений для полного доступа
● очищается при удалении приложения
⭘ shared («внешнее»). хранилище:
● общее с другими приложениями
● доступ регулируется с помощью разрешений
● файлы сохраняются после деинсталляции
Каталоги Android/data/ и Android/obb/ не считаются частью внешнего хранилища.
Для современных приложений доступ к общему хранилищу контролируется следующим образом:
⭘ Без каких-либо разрешений на хранение приложение может:
● создавать медиафайлы в стандартных каталогах (аудио в Music/, Ringtones/ и т.д., изображения в Pictures/ и DCIM/, видео в DCIM/ и Movies/)
● создавать файлы любого типа (как мультимедийные, так и не мультимедийные) в папках Documents/ и Download/
● создавать новые каталоги внутри стандартных каталогов
● переименовывать/удалять файлы, созданные самим приложением
● переименовывать/удалять каталоги, если оно может переименовывать/удалять все файлы в этих каталогах
● Разрешение доступа к медиа («Allow access to media only», READ_EXTERNAL_STORAGE
) позволяет приложению читать медиафайлы, созданные другими приложениями. Файлы, не относящиеся к медиа, остаются для него невидимыми. Для приложений, ориентированных на Android 13, разрешение на доступ к медиа разделяется на READ_MEDIA_IMAGES
, READ_MEDIA_VIDEO
и READ_MEDIA_AUDIO
.
● Разрешение на управление медиафайлами («Allow app to manage media», MANAGE_MEDIA) позволяет приложению удалять и переименовывать медиафайлы, созданные другими приложениями.
● Специальное разрешение «Доступ ко всем файлам» («All files access», MANAGE_EXTERNAL_STORAGE
) позволяет приложению читать, создавать, переименовывать и удалять файлы и каталоги любого типа в любом каталоге общего хранилища (включая корневой каталог).
Для устаревших приложений (тех, которые работают на Android 9 или ниже, и тех, которые работают на Android 10 и запрашивают устаревший режим хранения) разрешения на доступ к хранилищу имеют другое значение:
● Без разрешения на доступ к хранилищу приложение не имеет права доступа к любым файлам или каталогам в общем хранилище.
● Разрешение READ_EXTERNAL_STORAGE
позволяет приложению читать как мультимедийные, так и не мультимедийные файлы в любом каталоге.
● Разрешение WRITE_EXTERNAL_STORAGE
позволяет приложению создавать, переименовывать и удалять файлы (любого типа) и каталоги в любом каталоге общего хранилища (включая корневой каталог).
Области хранения (Storage Scopes)
https://gekkk.co/i/80834a69e3c6d295e677a5f474a6b4b2

GrapheneOS предоставляет функцию Storage Scopes в качестве полностью совместимой альтернативы стандартным разрешениям на хранение данных в Android. Storage Scopes может быть включена только в том случае, если приложение не имеет никаких разрешений на хранение. Включение Storage Scopes заставляет приложение считать, что у него есть все разрешения на хранение, которые были запрошены, несмотря на то, что на самом деле у него их нет.
Это означает, что приложение не может видеть файлы, созданные другими приложениями. Приложению по-прежнему разрешено создавать файлы и каталоги, как и любому другому современному приложению, не имеющему разрешения на доступ к хранилищу.
Если приложение запрашивает разрешение «Доступ ко всем файлам» (или является устаревшим приложением, запрашивающим разрешение WRITE_EXTERNAL_STORAGE
), то ограничения на запись, которые обычно применяются к приложениям, не имеющим разрешения на доступ к хранилищу, ослабляются, чтобы обеспечить тот же доступ на запись, который был бы у приложения, если бы ему было предоставлено разрешение «Доступ ко всем файлам». Это сделано для обеспечения совместимости с приложениями, которые, например, создают новый каталог в корне общего хранилища или записывают текстовый файл в каталог Music/. Никакого дополнительного доступа на чтение таким приложениям не предоставляется, они по-прежнему могут видеть только свои собственные файлы.
Для всех остальных приложений включение Storage Scopes не дает никакого дополнительного доступа к хранилищу, кроме того, который уже есть у современного приложения, не имеющего никаких разрешений на хранение.
По желанию пользователи могут указать, к каким файлам, созданным другими приложениями, приложение может получить доступ. Доступ может быть предоставлен к конкретному файлу или ко всем файлам в каталоге.
Наиболее существенным ограничением Storage Scopes является тот факт, что приложение потеряет доступ к созданным им файлам, если его удалить, а затем установить снова, как и любое другое приложение, не имеющее разрешения на доступ к хранилищу. В этом случае пользователю необходимо вручную предоставить доступ к этим файлам/директориям.
Доступ к контактам (Contact Scopes)
https://gekkk.co/i/b06bb476c02707cca45a41480c30d2f8

В Android доступ к контактам контролируется с помощью разрешения, которое предоставляет доступ на чтение и запись ко всем контактам, хранящимся на устройстве.
Многие приложения (например, популярные приложения для обмена сообщениями) отказываются работать без разрешения Contacts.
GrapheneOS предоставляет функцию Contact Scopes в качестве альтернативы предоставлению разрешения Contacts. Включение функции Contact Scopes заставляет приложение считать, что у него есть разрешение «Контакты», хотя на самом деле его нет. По умолчанию приложению с включенным Contact Scopes не разрешен доступ к контактам в любом виде.
⭘ По желанию можно предоставить доступ на чтение к следующим областям:
● Контактные данные (номер телефона или электронная почта). Доступ к каждому типу номера и электронной почты в контакте предоставляется отдельно. Доступ к имени контакта предоставляется автоматически.
● Одиночный контакт. Доступ предоставляется ко всем данным контакта, кроме фотографии.
● Группа контактов. Предоставление доступа ко всем контактам в группе.
Когда функция Contact Scopes включена, доступ на запись полностью заблокирован: приложение не может редактировать любые данные контакта, добавлять или удалять контакты и т.д.
Аттестация прошивки.
Для этой процедуры вам понадобится второй смартфон на базе Android 12 или выше.
● Установите на втором смартфоне приложение Auditor из Play Store или из репозитория приложений Apps, разработанного GrapheneOS.
● На втором смартфоне запустите приложение Auditor и нажмите «Auditor (device performing verification)». На экране отобразится QR-код.
● На аттестуемом смартфоне запустите приложение Auditor и нажмите «Auditee (device being verified)» и предоставьте приложению доступ к камере.
https://gekkk.co/i/a71440c1965231919b4cea9bf190ea01

● Отсканируйте QR с экрана второго смартфона. На экране аттестуемого смартфона отобразится большой QR-код.
● На втором смартфоне нажмите на изображение QR и предоставьте приложению доступ к камере.
● Отсканируйте QR с экрана аттестуемого смартфона. На экране второго смартфона отобразятся результаты аттестации.
При первой проверке результаты будут представлены на оранжевом фоне с заголовком «Successfully performed basic initial verification and pairing» («Успешно выполнена базовая первоначальная проверка и сопряжение»). При повторных аттестациях фон должен быть зеленым, а заголовок поменяется на «Successfully performed strong paired verification and identity confirmation» («Успешно выполнена усиленная проверка с сопряжением и подтверждение подлинности»).
В результатах аттестации отображается подтверждение подлинности операционной системы: GrapheneOS (unmodified official release), а так же полный хэш загрузочного ключа, отображаемого при загрузке смартфона f0a890375d1405e62ebfd87e8d3f475f948ef031bbf9ddd516d5f600a23677e8. Тот же хэш можно найти на сайте GrapheneOS.
Обновления.
Система обновления реализует автоматические фоновые обновления. Она проверяет наличие обновлений примерно раз в четыре часа при наличии подключения к сети, а затем загружает и устанавливает обновления в фоновом режиме. Если загрузка прервется, она продолжит работу с того места, на котором остановилась. Прерывание установки также не грозит, поскольку обновления устанавливаются на вторичную копию GrapheneOS, которая становится активной только после завершения обновления. После завершения обновления вы получите уведомление, и вам нужно будет просто перезагрузиться с помощью кнопки в уведомлении или обычной перезагрузки. Если новая версия не загрузится, операционная система будет возвращена к прошлой версии, а программа обновления попытается загрузить и установить обновление снова.
Программа обновления работает, пока устройство заблокировано / простаивает, в том числе до первой разблокировки, поскольку она специально разработана для запуска до расшифровки пользовательских данных.
Информация об изменениях в релизах доступна в разделе Releases на официальном сайте проекта.
Настройка обновлений.
https://gekkk.co/i/c6d0b2658086e0b3a697d07a7e7fa630

Настройка параметров обновлений доступна в разделе Настройки ⇒ Система ⇒ System update
.
Опция «Check for updates» вручную запускает проверку обновлений. При этом необходимо выполнить перечисленные ниже условия конфигурации, например, подключиться к Интернету через один из разрешенных типов сети.
Настройку «Release channel» можно изменить со стандартного канала Stable на канал Beta, если вы хотите помочь в тестировании.
Параметр «Permitted networks» определяет, какие сети будут использоваться для выполнения обновлений. По умолчанию используется любое сетевое соединение. Можно установить значение «Not roaming», чтобы отключить обновление, когда сотовая связь использует роуминг, или «Unmetered», чтобы отключить его в сотовых сетях, а также в сетях Wi-Fi, отмеченных как сети с тарификацией.
Параметр «Require battery above warning level» определяет, будут ли обновления выполняться только при заряде батареи выше уровня, при котором отображается предупреждающее сообщение. Стандартное значение ― 15% емкости.
Параметр «Require device to be charging» определяет, будут ли обновления выполняться только тогда, когда устройство заряжается.
Включение настройки «Automatic reboot» позволяет программе обновления перезагружать устройство после обновления, если оно долгое время находилось в режиме ожидания. Если эта настройка включена, устройство может получать любое количество обновлений полностью автоматически, даже если оно полностью бездействует.
Опция «Notification settings» ― это ярлык к настройкам уведомлений System Updater, который позволяет управлять настройками уведомлений. Эти уведомления включают в себя ошибки обновления, прогресс и подсказки о перезагрузке. По умолчанию все уведомления включены.
Безопасность.
Сервер обновлений не является доверенной стороной, поскольку обновления подписываются и проверяются, а атаки на понижение версии предотвращаются. Протокол обновления не отправляет идентифицирующую информацию на сервер обновлений и хорошо работает через VPN / Tor. GrapheneOS не может выполнить правительственный заказ на создание, подписание и отправку вредоносного обновления на устройство конкретного пользователя на основе такой информации, как IMEI, серийный номер и т.д. Серверу обновлений известен только IP-адрес, используемый для подключения к нему, и версия, с которой производится обновление.
Обновления Android могут поддерживать ограничения по серийному номеру, чтобы они проверялись только на определенном устройстве, но GrapheneOS отклоняет любые обновления с ограничением по серийному номеру как для обновлений по воздуху (приложение Updater), так и для обновлений в режиме recovery.
Отключение обновлений.
Настоятельно рекомендуется оставить автоматическое обновление включенным и настроить разрешенные сети, если использование трафика является проблемой для вашего мобильного соединения. Однако клиент обновлений можно отключить, зайдя в Настройки ⇒ Приложения ⇒ Показать все
, включив «Показать системные процессы» через меню ⋮, выбрав System Updater и отключив приложение.
https://gekkk.co/i/650cfe204112c112654684fdf074988d

Если вы это сделаете, вам нужно будет не забыть включить его снова, чтобы начать получать обновления.
Веб-браузер.
GrapheneOS включает в себя подпроект Vanadium, форк Chromium с улучшенными характеристиками конфиденциальности и безопасности. Vanadium ― это браузер и одновременно поставщик WebView, используемого другими приложениями для отображения веб-контента. WebView ― это браузерный движок, используемый почти всеми другими приложениями, встраивающими веб-контент или использующими веб-технологии для других целей. Он также используется многими второстепенными веб-браузерами, не являющимися форками Chromium. Эти приложения, использующие WebView, получают преимущества от улучшений Vanadium.
Ранее Vanadium был ориентирован в основном на усиление безопасности, но мы планируем добавить различные функции конфиденциальности и удобства использования. В ближайшем будущем мы планируем добавить поддержку фильтрации контента (блокировка рекламы и т.д.), резервное копирование/восстановление и многие другие функции.
Не рекомендуется пытаться достичь конфиденциальности и безопасности браузера путем нагромождения расширений и модификаций. Большинство расширений приватности для браузеров часто снижают конфиденциальность. Каждое изменение, которое вы вносите, приводит к тому, что вы выделяетесь из толпы и, как правило, предоставляет больше способов отследить вас.
Камера.
GrapheneOS обладает теми же возможностями и качеством камеры, что и стандартная операционная система. Она будет соответствовать стандартной операционной системе при сравнении одного и того же приложения на каждой операционной системе. GrapheneOS использует собственное приложение GrapheneOS Camera, а не стандартное приложение из AOSP. GrapheneOS Camera включает режимы для съемки изображений, видео и сканирования QR/штрих-кодов.
https://gekkk.co/i/357c423a3403e8e08b08614e183a8b0c

Режимы отображаются в виде кнопок в нижней части экрана. Переключаться между режимами можно с помощью кнопок или проведя пальцем влево/вправо в любом месте экрана. Кнопка со стрелкой в верхней части экрана открывает панель настроек, а закрыть ее можно, нажав в любом месте за пределами панели настроек. Вы также можете провести пальцем вниз, чтобы открыть настройки, и провести пальцем вверх, чтобы закрыть их. Клавиши громкости также можно использовать в качестве эквивалента кнопки захвата. Во время записи видео кнопка галереи становится кнопкой захвата изображений.
Для захвата изображений используется облегченный HDR+ на всех поддерживаемых Pixel и HDRnet для предварительного просмотра на Pixel 5-го поколения. Использование фонарика или вспышки камеры приведет к отключению HDR+, поэтому автоматическая вспышка не включена по умолчанию.
При масштабировании автоматически задействуются широкоугольная и телефото камеры смартфона. Пятое и шестое поколения Pixel (4a (5G), 5, 5a, 6, 6 Pro) оснащены широкоугольной камерой, позволяющей уменьшить масштаб до менее чем 1x, чтобы захватить гораздо более широкое поле зрения. Снимки, сделанные с помощью широкоугольного объектива, хуже по качеству по сравнению с обычной камерой.
По умолчанию для всей сцены используется непрерывный автофокус, автоматическая экспозиция и автоматический баланс белого. При нажатии на фокус происходит переключение на автофокус, автоэкспозицию и автобаланс белого в зависимости от места съемки. Настройка тайм-аута фокусировки определяет время до переключения в режим по умолчанию. Ползунок компенсации экспозиции слева позволяет вручную настраивать экспозицию и автоматически регулировать выдержку, диафрагму и ISO, не нарушая при этом поддержку легкого HDR+. Дополнительные настройки будут предоставлены в будущем.
Режим сканирования QR-кодов позволяет сканировать только в пределах квадрата, отмеченного на экране. QR-код должен быть выровнен по краям квадрата, но может иметь любую ориентацию на 90 градусов. Нестандартные перевернутые QR-коды полностью поддерживаются. Это очень быстрый и качественный QR-сканер, способный легко сканировать большие QR-коды. Каждые 2 секунды он будет обновлять автофокус, автоэкспозицию и автобаланс белого на сканируемом квадрате. Он имеет полную поддержку увеличения и уменьшения масштаба. Фонарь можно переключать с помощью кнопки в центре внизу. Автоматический переключатель в левом нижнем углу позволяет включить сканирование всех поддерживаемых типов штрихкодов. Кроме того, вы можете выбрать типы штрихкодов в верхнем меню. По умолчанию сканируются только QR-коды, поскольку это обеспечивает быстрое и надежное сканирование. Большинство других типов штрихкодов могут привести к ложным срабатываниям. Каждый включенный тип замедляет сканирование и делает его более склонным к ложным срабатываниям, особенно при сканировании сложных кодов, таких как плотный QR-код.
По умолчанию метаданные EXIF для снятых изображений удаляются и включают только ориентацию. Удаление метаданных для видео планируется разработчиками, но пока не поддерживается. Метаданные об ориентации не удаляются, поскольку они полностью видны из того, как отображается изображение, поэтому они не считаются скрытыми метаданными и необходимы для правильного отображения. Вы можете отключить удаление метаданных EXIF в меню «More Settings», открывающемся из диалога настроек.
https://gekkk.co/i/ae59a7afce843f439e90177489964c26

При отключении удаления метаданных останутся временная метка, модель телефона, конфигурация экспозиции и другие метаданные. Теги местоположения отключены по умолчанию и не будут удаляться, если вы их включите.
https://gekkk.co/i/480c0c929c64c657d793a4d907d29c42

Электронная стабилизация изображения (EIS) включена по умолчанию на устройствах, предоставляющих ее через Camera2 API, и может быть отключена в диалоговом окне настроек видео.
Защита от эксплойтов.
Улучшения конфиденциальности и безопасности в GrapheneOS снижают уровни доступа приложениям, что может привести к их сбоям. Некоторые из этих функций всегда включены, в то время как другие, такие как переключатели сети и датчиков, контролируются пользователями, которые можно включить или выключить. Некеоторые приложения могут не работать с таким доступом, хотя как правило это не вызывает проблем, поскольку все сделано для бóльшей совместимости.
https://gekkk.co/i/13f35d8be5e580cd7992816a8e382246

Вы можете включить режим совместимости с защитой от эксплойтов для каждого приложения через Настройки ⇒ Приложения ⇒ Приложение ⇒ Exploit protection compatibility mode
, который отключит некоторые функции защиты от эксплойтов для конкретного приложения.
https://gekkk.co/i/1907e24b8752a44a0499d75ac6f55a4a

Приватность Wi-Fi.
GrapheneOS не позволяет опознавать себя как GrapheneOS, за исключением соединений для обновления, которые могут быть отключены или принудительно установлены через VPN-сервис.
При сканировании Wi-Fi всегда выполняется рандомизация MAC-адресов. Телефоны Pixel имеют встроенную поддержку рандомизации MAC-адресов при сканировании. На многих других устройствах при сканировании Wi-Fi помимо MAC-адреса могут быть обнаружены и другие идентификаторы.
Сканирование Wi-Fi и Bluetooth для улучшения определения местоположения отключено по умолчанию, в отличие от стандартной операционной системы. Их можно включить в меню Настройки ⇒ Местоположение ⇒ Сервисы геолокации ⇒ Поиск сетей Wi-Fi и Поиск устройств Bluetooth
.
https://gekkk.co/i/cae22858679dcfe3f15237094efa2eb1

Эти функции позволяют производить сканирование даже при отключенных Wi-Fi или Bluetooth, поэтому их нужно держать отключенными. Сама GrapheneOS в настоящее время не включает дополнительную службу определения местоположения, основанную на сканировании Wi-Fi и Bluetooth. Эти опции влияют на то, смогут ли приложения, такие как Google Play, использовать эту функциональность, если вы предоставите им разрешение «Местоположение». GrapheneOS планирует со временем включить в операционной системе службу, основанную на локальных базах данных, а не на сетевой службе, передающей данные о местоположении пользователя на сервер при любом использовании функции определения местоположения.
Связь с точкой доступа (AP).
По умолчанию выполняется рандомизация MAC-адресов. Это можно контролировать для каждой сети в разделе Настройки ⇒ Сеть и интернет ⇒ Интернет ⇒ Сеть ⇒ Конфиденциальность
.
https://gekkk.co/i/afdb66d58c1db918ec2d03433160a5b6

В стандартной операционной системе по умолчанию используется постоянный MAC-адрес, уникальный для каждой сети. В GrapheneOS по умолчанию при каждом подключении к сети генерируется новый случайный MAC-адрес.
⭘ Доступно 3 варианта:
● Использовать случайный MAC для каждого соединения (по умолчанию) (Use per-connection randomized MAC)
● Использовать случайный MAC для каждой сети (Use per-network randomized MAC)
● Использовать MAC устройства (Use device MAC)
В редких случаях роутеры не могут принимать новых клиентов, когда их таблица DHCP заполнена. Вы можете обойти эту проблему, вручную очистив таблицу DHCP в web интерфейсе роутера или перезагрузив его, и переключиться в режим «Случайный MAC для каждой сети», чтобы избежать повторного возникновения проблемы. В целом это не является проблемой для современных маршрутизаторов.
DHCP-клиент использует профиль анонимности, а не отправляет имя хоста, чтобы не нарушать приватность, обеспечиваемую рандомизацией MAC-адресов. Когда используется рандомизация MAC-адресов для каждого соединения состояние DHCP-клиента сбрасывается перед повторным подключением к сети, чтобы избежать обнаружения того, что это, скорее всего, то же самое устройство, что и раньше.