Недавно на работе получил задачу от руководителя: сделай так чтобы телефон android не сливал данные гуглу. Можете представить мой восторг (и предвкушение) ибо спустя 2 недели тестов я вполне уже чувствовал себя человеком который прошивает телефоны на радиорынке (ничего личного, просто не мой профиль). Прочел отличную статью и понабравшись опыта решил немного дополнить. Статья кстати отличная, рекомендую к прочтению.
Давайте рассмотрим несколько альтернативных операционных систем якобы без сервисов гугла, и выясним действительно ли они не общаются с гуглом. Подготовился я к слову основательно, для тестов даже приобрел девайс "pixel 3", так как GrapheneOS работает только с устройствами от google.
- GrapheneOS
- LineageOS
Хотел протестировать еще:
- /e/ Но к сожалению моего девайса не было в списке
- PostmarketOS Та же проблема
- PinePhone Было желание приобрести тестовый девайс. Но после обзора на youtube, желание пропало, так как он очень тормозит, и сложно его представить в роли смартфона для повседневного пользования.
GrapheneOS
На первый взгляд система позиционирует себя как максимально безопасная и анонимная. Есть пару нюансов которые мне не понравились:
- Нет доступа к root
- Отстукивание на серверы Google:
- HTTPS: https://www.google.com/generate_204
- HTTP: http://connectivitycheck.gstatic.com/generate_204
- HTTP fallback: http://www.google.com/gen_204
- HTTP other fallback: http://play.googleapis.com/generate_204
Ничего необычного, этот сервис называется Captive portal используется для андроид с 4 версии. При наличии root можно выбрать другие независимые сервера или на крайняк поднять свой. Но такой возможности нет и приходится довольствоваться услугами google. Также разработчик утверждает что использование других серверов в качестве альтернативы нежелательно, по причине того что телефон будет более узнаваем в толпе, но говорит, что такая функция находится в разработке (правда имеет маленький приоритет)
LineageOS
LineageOS является более популярной операционной системой. Но к ней тоже очень много вопросов. Абсолютно чистая система умудряется стучать гуглу в особо крупных количествах. Вот данные которые я снял со своего маршрутизатора, и сделал небольшую табличку. Маршрутизатор снифил трафик с телефона 3 дня, повторюсь, что телефон я откатил до заводских настоек и нечего не устанавливал и никуда не логинился.
Существует несколько способов ограничить доступ телефона к google:
- Использование firewall. В моем случае я использовал afwall+, его можно скачать в магазине f-droid или же в aurora store, который можно скачать там же
- Второй способ, менее радикальный и более трудоемкий. Он заключается в подмене сервисов. Настройка на службах альтернатив google.
Каждый способ требует root права. Описывать как их получить не буду, так как есть огромное количество статей на эту тему, и в зависимости от модели телефона инструкция может меняться. Я использовал magisk
Использование firewall
Ну с этим, думаю, понятно. Блокируем все, и разблокируем по мере необходимости (для AFwall+ понадобятся root права). В android 10 добавили модуль Network Stack Permission Config module. Если заблочить данный модуль то система будет говорить что у данной сети нет доступа к интернету.
Тем не менее интернет будет работать в обычном режиме. Так как у меня гугловый девайс 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 рута.
Далее вводим следующие команды. Я выбрал заменить 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.
Изучал вопрос приватности и решил поделится с Хабром, так как Хабр часто делится со мной. Может кому-то это будет полезно. Спасибо если дочитали до конца.