image

Недавно на работе получил задачу от руководителя: сделай так чтобы телефон android не сливал данные гуглу.  Можете представить мой восторг (и предвкушение) ибо спустя 2 недели тестов я вполне уже чувствовал себя человеком который прошивает телефоны на радиорынке (ничего личного, просто не мой профиль). Прочел отличную статью и понабравшись опыта решил немного дополнить. Статья кстати отличная, рекомендую к прочтению.

Давайте рассмотрим несколько альтернативных операционных систем якобы без сервисов гугла, и выясним действительно ли они не общаются с гуглом. Подготовился я к слову основательно, для тестов даже приобрел девайс "pixel 3", так как GrapheneOS работает только с устройствами от google.



Хотел протестировать еще:


  • /e/ Но к сожалению моего девайса не было в списке
  • PostmarketOS Та же проблема
  • PinePhone Было желание приобрести тестовый девайс. Но после обзора на youtube, желание пропало, так как он очень тормозит, и сложно его представить в роли смартфона для повседневного пользования.

GrapheneOS


На первый взгляд система позиционирует себя как максимально безопасная и анонимная. Есть пару нюансов которые мне не понравились:


  1. Нет доступа к root
  2. Отстукивание на серверы Google:

Ничего необычного, этот сервис называется Captive portal используется для андроид с 4 версии. При наличии root можно выбрать другие независимые сервера или на крайняк поднять свой. Но такой возможности нет и приходится довольствоваться услугами google. Также разработчик утверждает что использование других серверов в качестве альтернативы нежелательно, по причине того что телефон будет более узнаваем в толпе, но говорит, что такая функция находится в разработке (правда имеет маленький приоритет)


LineageOS


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


Существует несколько способов ограничить доступ телефона к google:


  • Использование firewall. В моем случае я использовал afwall+, его можно скачать в магазине f-droid или же в aurora store, который можно скачать там же
  • Второй способ, менее радикальный и более трудоемкий. Он заключается в подмене сервисов. Настройка на службах альтернатив google.

Каждый способ требует root права. Описывать как их получить не буду, так как есть огромное количество статей на эту тему, и в зависимости от модели телефона инструкция может меняться. Я использовал magisk


Использование firewall


Ну с этим, думаю, понятно. Блокируем все, и разблокируем по мере необходимости (для AFwall+ понадобятся root права). В android 10 добавили модуль Network Stack Permission Config module. Если заблочить данный модуль то система будет говорить что у данной сети нет доступа к интернету. image image
Тем не менее интернет будет работать в обычном режиме. Так как у меня гугловый девайс Pixel 3, то были подозрения что устройство общается с google на hardware уровне. Но они развеялись после того как заблокировал все и снял дамп с роутера. Результаты показали что за двое суток устройство дальше внутренней сети не ушло.


Подмена сервисов


Необходимо настроить следующие сервисы:


  • DNS
  • Captive Portals
  • WebView
  • Hostfile

DNS


По дефолту LineageOS использует гугловые dns 8.8.8.8, было бы не плохо заменить их на cloudflare 1.1.1.1. Идеальным решением будет использовать vpn и завернуть туда весь трафик, в противном случае для каждой wifi сети надо будет вбивать руками кастомные dns. Альтернативой является установка приблуды через magisk "CloudflareDNS4Magisk", или какой-либо другой с магазина, но там на свой страх и риск. Как по мне лучше с гугловыми dns, чем в непонятным магазинным софтом.


Captive Portals


Captive portal — сетевой сервис, требующий от подключившегося к сети пользователя выполнить некоторые действия для получения доступа в Интернет. Обычно используется для взимания платы, аутентификации абонента либо показа рекламы. Настроим его что-бы он стучался не на google.


Дальнейшая инструкция подразумевает то, что вы уже получили root через magisk




Присоединяем телефон по USB, запускаем терминал (linux;macos) и заходим в shell, ./adb shell, и переходим в режим админа su. Может отбить: permission denied, в этом случае заходим в magisk и даем shell рута.
image

image


Далее вводим следующие команды. Я выбрал заменить google на магазин f-droid


settings put global captive_portal_mode 0
settings put global captive_portal_detection_enabled 0
settings put global wifi_watchdog_on 0
settings put global wifi_watchdog_background_check_enabled 0
settings put global captive_portal_server f-droid.org
settings put global captive_portal_https_server "https://f-droid.org"
settings put global captive_portal_http_server "http://f-droid.org"
settings put global captive_portal_fallback_url "http://f-droid.org"
settings put global captive_portal_other_fallback_urls "http://f-droid.org"

Вы также можете выбрать другой сервер. Ниже будет предоставлено несколько альтернатив, либо же вы можете поднять свой собственный


http://captiveportal.kuketz.de
http://elementary.io/generate_204
http://httpstat.us/204

WebView


Советую заменить браузер на "duck go browser" который можно найти на aurora store


Hosts


Желательно заблокировать следующие сайты в файле hosts. Так как мы блокируем google нужно выбрать другой поисковик, предлагаю этот.


google.com/gen_204
accounts.google.com:443
connectivitycheck.gstatic.com/generate_204
google.com:443
s3.amazonaws.com:433
collector-hpn.ghostery.net:443
cmp-cdn.ghostery.com:443
api.ghostery.net:443
cdn.ghostery.net:433
updates.signal.org:433
googleads.g.doubleclick.net:433
fonts.googleapis.com:433
api.cleanapk.org:433
clientservices.googleapis.com:443
ssl.google-analytics.com:443
bahn.de:443
deutschebahn.sc.omtrdc.net:443
assets.adobedtm.com:443
cdn.optimizely.com:443
settings.crashlytics:443
firebaseremoteconfig.googleapis.com:433
graph.facebook.com:433
http://xtrapath1.izatcloud.net/xtra3grcej.bin
http://xtrapath2.izatcloud.net/xtra3grcej.bin
http://xtrapath3.izatcloud.net/xtra3grcej.bin

Выводы:


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


P.S.


Если вы выберете второй способ, то все-равно не пренебрегайте использованием firewall, я неделю проверял данные с роутера, пробовал разные варианты (что будет если заблокировать эту службу, а что если эту). Оказалось что это самый надежный способ. Как и любая настройка firewall, блокируем все, разблокируем по надобности.


P.P.S.


Изучал вопрос приватности и решил поделится с Хабром, так как Хабр часто делится со мной. Может кому-то это будет полезно. Спасибо если дочитали до конца.