Я думаю, что это статья будет вам интересна, даже если вы не можете установить себе LOS, так как в данной статье также рассмотрены стандартные настройки Android, настройки и методика использования полезных приложений, магазин приложений F-Droid, разрешения Android, которые нельзя ограничить и другие, возможно полезные для вас ньюансы.
Оглавление
Общая информация
Причины перехода на свободную прошивку
Выбор устройства
-Основные факторы, которые необходимо учитывать при выборе устройства
-Подбор устройства
Установка прошивки LOS
-Обновление firmware
-Разблокировка загрузчика(unlock bootloader)
-Пример установки LOS
-Что может пойти не так
-Предподготовка к первому запуску
-Про шифрование устройства
LineageOS
-Стандартные настройки LOS
-Root/рут/права суперпользователя/superuser
-Bootloader(Загрузчик)
F-Droid
Слот VPN
AFWall+ (Android Firewall +) и встроенный Firewall
-Встроенный Firewall
-AFWall+
AdAway
Orbot, Tor Browser и проблема proc/net
-Orbot
-Проблема proc/net
-Tor Browser
Fennec и Bromite
-Fennec
-Bromite
Приложения Google(Google Apps/Gapps)
Yalp store/Aurora Store
Треккеры в приложениях
Контроль разрешений(Permission control), PrivacyGuard, AppOpsX
-Типы разрешений
-Инструменты для ограничения разрешений
--Стандартный для Android механизм разрешений
--Privacy Guard(Защита конфиденциальности)
--AppOpsX(com.zzzmode.appopsx)
-Список разрешений
-Что нельзя ограничить
-Level API/sdk
-По поводу необходимости отслеживать разрешения
SD-card/usb-storage
Рабочий профиль(Work profile) и Shelter(net.typeblog.shelter)
XprivacyLua
ADB(Android Debug Bridge)
Полный отказ от Google в LOS
-DNS
-Captive Portal
-A-GPS
-AOSP Webview
-Project Fi
Backup(бэкап) или резервная копия
Отдельное шифрование личных файлов
Прошивка радиомодуля и низкоуровневые закладки
Другие прошивки
-Replicant
-GrapheneOS
-Не Android устройства и прошивки
-А что же iPhone?
Перспективы
Общие рекомендации
Почему лучше пользоваться последней версией LOS и актуальными устройствами
Мой опыт
Потенциальный вопрос — мой ответ
Методики перехода и частичные(временные) решения
Вопросы айтишникам
Список ссылок
Советую предварительно прочитать вот эти статьи(или после прочтения моей статьи):
habr.com/ru/post/440110 — про LineageOS, MicroG
habr.com/ru/post/440280 — список интересных программ в F-Droid(и не только в F-Droid)
habr.com/ru/company/solarsecurity/blog/427431 — про архитектуру Android более менее понятным языком, советую прочитать все 4 части из цикла. Там описано всё немного техническими терминами, но всё-таки советую вникнуть, если вы хотите примерно понимать устройство и архитектуру Android.
Я постараюсь дополнить эти статьи такими вещами как выбор устройства, прошивка, настройка параметров безопасности и приватности, настройка некоторых программ, а также предоставлю методики по метигации рисков, который возникают даже в свободных прошивках без проприетарных компонентов.
В инструкции я буду ссылаться на англоязычные и русскоязычные названия пунктов настроек операционной системы и программ, так как на данный момент наиболее полную помощь по вопросам можно получить на англоязычных форумах, и так будет привычней искать решение по возникшим у вас вопросам.
Рассматриваться будет версия LineageOS 16(частично некоторые моменты из версии 15.1 также будут рассмотрены) и на основе Android 9 Pie соответственно. Некоторые описываемые методики(точнее почти все, кроме Privacy Guard) применимы не только LineageOS, но и других прошивок на Android 9 Pie.
Я старалась писать статью «линейно», чтобы можно было воспринимать информацию без необходимости «прыгать» от пункта к пункту. Но так как многие вещи взаимосвязаны, полностью избежать отсылок не получилось. Если в какой-то момент вам что-то покажется непонятным, попробуйте дочитать статью до конца. Если остался какой-то явный пробел даже после прочтения всей статьи — укажите, пожалуйста, где я не доглядела.
LineageOS[1],[3] — прошивка на основе AOSP(Android Open Source Project), которая делается энтузиастами. LineageOS — это продолжение проекта CyanogenMod. Данная прошивка есть не на все устройства, так как создание такой прошивки под каждое устройство дело рук энтузиастов.
- Приватность. LineageOS основана на «чистой» версии Android — AOSP без приложений от Google и других приложений от коммерческих компаний. Отсутствие проприетарных компонентов повышает приватность(вкупе с другими методиками).
Система Android(AOSP) основана на Linux и распространяется под свободной лицензией [4] и с открытыми исходными кодами(open-source). LineageOS базируется на AOSP (с некоторыми добавлениями от CAF — Code Aurora Forum для тех устройств, в основе которых лежит «железо» от Qualcomm). То есть LineageOS — это прошивка, просто в которой не добавлены проприетарные сервисы от Goolge(а не вырезаны, как некоторые думают). Факт того, что это open-source, позволяет вам просмотреть весь исходный код AOSP и LineageOS на наличие «подлянок»(закладок). Вы можете сами скомпилировать(собрать из исходников) прошивку под своё устройство на основе исходного кода, если вы не доверяете тому, кто компилирует прошивку. Кстати, многие так и делают, но в основном, чтобы что-то добавить/убрать из прошивки. - Безопасность. В некоторых случаях LineageOS выпускает обновления прошивок для тех устройств, которые перестали поддерживаться производителем. Если у вас уже есть устройство, на которое давно не было обновлений безопасности, то вы можете проверить нет ли на ваше устройство прошивки LineageOS, с последними обновлениями безопасности.
Также, если собираетесь покупать новый смартфон, вы можете подобрать такое устройство, которое поддерживается LineageOS, и которое, с высокой долей вероятности, будет долго поддерживаться сообществом LineageOS. - Дополнительные функции. В прошивке присутствуют дополнительные компоненты, например такие как Trust, Call Recorder(Запись звонков, диктофон) и другие небольшие улучшения. Trust(+Privacy Guard) позволяет централизованно просматривать и управлять настройками безопасности и приватности. Call Recorder — запись звонков. Protected Apps — можно поставить доступ к отдельным приложениям только по отдельному коду или по отпечатку пальца. Кастомизация интерфейса, Dark mode(Тёмная тема) и другие полезные функции.
- Заранее обезопасить себя от изоляции, либо от самоизоляции.
Изоляция. Существуют прецеденты по ограничению использования сервисов западными компаниями. Примеры — запрет на использование западных сервисов на территории Крыма. Запрет на использование западных сервисов в продукции Huawei. Никто не гарантирует, что завтра такое же ограничение могут наложить на более широкий круг пользователей или компаний.
Самоизоляция. В свете последних тенденций на запрещение и блокировку разными странами сервисов из «враждебных» стран, никто не даст гарантии, что завтра доступ к западным сервисам и программам сохранится на определённых территориях.
Это ещё один повод перейти на свободное программное обеспечение, чтобы быть менее зависимым от прихоти политиков той или иной страны.
Предлагаю вам методику подбора нового устройства для установки LineageOS на основе моего опыта. Данные советы носят исключительно рекомендательных характер и я не претендую на абсолютную объективность.
Основные факторы, которые необходимо учитывать при выборе устройства
- Наличие прошивки на устройство.
Существуют как «официальные»[3] версии LineageOS, так и «неофициальные». Официальность заключается в том, что
— команда компилирует и «подписывает» своим ключом прошивку и выкладывает её на своём сайте [5]
— для «официально» поддерживаемых устройств есть относительно неплохая поддержка на форумах[7]. Также можно поискать поддержку от непосредственно разработчиков на отдельное устройство на форумах xda[9], 4pda[11] и telegram каналах. Такая поддержка не означает, что вам обязательно ответят на ваш вопрос. Но при правильно поставленном вопросе с подробным описанием проблемы шансы на ответ стремятся к 100%-ам. К сожалению, подавляющая часть разработчиков англоязычные. На данных форумах вам могут помочь не только непосредственно разработчики, но и другие опытные пользователи.
— «официально» поддерживаемые устройства имеют функцию автообновления «по воздуху»(OTA обновления), то есть как в обычном Android от Google можно будет ставить обновления безопасности просто через отдельный пункт в меню на самом телефоне.
Неофициальные — собранные энтузиастами. Нет обновлений по воздуху и иногда содержат вирусы. Проверить содержит такая прошивка вирусы или нет, практически невозможно. Если вы только сами не собрали прошивку под устройство, которое официально не поддерживается официально(что могут только неплохие IT-шники).
Крайне рекомендую выбирать устройство, которое присутствует на официальном сайте[5]. Это один из факторов стабильности прошивки и длительности поддержки устройства, а также того, что в прошивке нет лишнего. В некоторых случаях, если устройство популярное, и для него кто-то делает неофициальную версию, то через время разработчик неофициальной версии присоединяется к команде разработчиков LineageOS(точнее мэйнтейнеров устройства), прошивка оформляется должным образом и становится «официальной». Это означает, что если при выборе устройства ваш взгляд пал на определённую модель, у которой есть только неофициальная версия LineageOS, то вы можете поискать информацию по данному устройству на англоязычном форуме xda-developers на предмет потенциального выхода «официальной» версии в будущем. Такие случаи не так уж и редки.
Вам в помощь дополнительная информация по устройствам: ссылки [13],[15],[17].
Также есть разные сайты, где представлены устройства с неофициальными версиями LineageOS, но я не знаю на основе каких данных составлялись эти списки и не могу вам их порекомендовать, как и не могу порекомендовать использовать неофициальные прошивки вообще. - Версия LineageOS для устройства. На данный момент для устройств выпускаются версии прошивки LineageOS 15.1 и 16. Обе версии поддерживают обновления безопасности, но LineageOS 15.1 основана на Android 8.1 Oreo, а LineageOS 16 — на версии Android 9 Pie. Лучше подбирать устройство на версии LineageOS 16, так как чем выше версия Android, тем больше устранено угроз приватности и больше интересных функций. Об этом я напишу позже.
- Версия внутренностей устройства. Некоторые производители под одним именем выпускают несколько разных версий с разной «начинкой». Например, существует большое количество версий Samsung Galaxy S5 LTE. Есть несколько версий: А) klte, которая включает в себя ревизии (G900AZ/F/M/R4/R7/T/V/W8,S902L), Б) kltechn которая включает в себя ревизии (G9006V/8V) и так далее. Для быстрого определения используются кодовые имена. Для вышеобозначенного Galaxy S5 LTE есть несколько версий klte, kltekor, kltedv, kltechn, kltekdi. Возможно существуют другие версии Galaxy S5 LTE для которых нет прошивки LineageOS. Поэтому при покупке устройства проверяйте версию у конкретного продавца.
- Возможность разблокировать загрузчик(bootloader). Перед покупкой необходимо уточнять есть ли возможность разблокировать загрузчик. Даже если на устройство есть прошивка LineageOS, то это не означает, что у вас будет возможность её установить! Для того, чтобы установить LineageOS вам необходимо иметь разблокированный загрузчик. Для некоторых телефонов это делается легко, путём всего одного действия. Но есть производители которые для некоторых(или для большинства) своих устройств сделали целую процедуру разблокировки загрузчика. Для этого необходимо зарегистрироваться на сайте производителя, ввести информацию о телефоне(или установить на компьютер специальную программу), послать запрос на разблокировку загрузчика и ждать от 0 секунд до 1-го месяца. Huawei ранее позволяла разблокировать загрузчик, но потом такую возможность вообще закрыла. Появились обходные пути, сайты на которых можно было купить код для разблокировки. Данные обходные пути постоянно меняются, для разных устройств обходные пути различаются. Для таких случаев взвесьте все «за и против», выясните есть ли возможность разблокировать загрузчик, сколько придётся ждать(если проходите официальную процедуру разблокировки), сколько стоит код для разблокировки на стороннем сайте для обхода и так далее.
- Популярность устройства. Чем более популярное устройство, тем выше шансы на то, что поддержка данного устройства будет продолжаться дольше. Ещё более важным является популярность использования именно LineageOS для данного устройства. Статистику использования можно посмотреть на официальном сайте[19]. Также есть неофициальный, но более репрезентативный сайт[21]. Обратите внимание что А) некоторые названия обозначены кодовыми словами(codename). Б) представлены также те устройства, которые официально не поддерживаются, но используются.
- Начинка. При прочих равных рекомендую выбирать устройство с чипом Qualcomm. Устройства на данных чипах в среднем поддерживаются дольше и шире, чем устройства на других чипах.
- Другие прошивки и первоначальная прошивка. Если для устройства есть альтернативные прошивки(помимо LOS), то это значит, что во внутренностях прошивок для данного устройства много кто «копается», что повышает шансы на возможность найти решение вашей проблемы, если она возникнет. Также важно обратить внимание на то, какая прошивка изначально установлена на новом устройстве. Лучше всего, если смартфон входит в программу Android One. Это значит, что Google для такого аппарата будет принуждать производителей выпускать обновления безопасности, обновление до новых версий Android 2 года. Данные обновления помогут разработчикам LineageOS дольше поддерживать устройство. Обратите внимание, что сам факт вхождения в программу Android One не гарантирует того, что загрузчик можно будет разблокировать и для данного устройства есть прошивки кроме первоначальной. Например, смартфоны от Nokia, входящие в программу Android One, не имеют возможности установки альтернативных прошивок.
- Новизна устройства. Помните, что разрабатывают LineageOS энтузиасты и в какой-то момент у этих энтузиастов может сменится их собственное устройство(сломалось, потеряли, купил новый). В таком случае они могут быть не заинтересованы в дальнейшей поддержке данного устройства. Например, Xiaomi Redmi Note 5(Pro) официально поддерживался не больше года(хотя для него также есть неофициальные прошивки LineageOS). Но такое устройство как LG G2(d802) поддерживается с 2013 года и имеет даже самую последнюю версию LineageOS — 16. Для максимально долгой поддержки желательно покупать относительно новое устройство, которое до сих пор продаётся на международном уровне.
- Остальные параметры, которые касаются потребительских характеристик устройства. Например размер оперативной памяти, скорость процессора, поддерживаемые частоты LTE и так далее. Рекомендую покупать телефон с минимум 32 ГБ внутренней памяти, чтобы меньше пришлось пользоваться «облаками», тем самым снижая риски утечки ваших данных. Учтите, что некоторые специфичные вещи на смартфоне могут не поддерживаться, например, такие как инфракрасный порт, разблокировка лица на основе формы черепа(помимо фото), специальные эффекты камеры с несколькими объективами. Но в последних версиях Android некоторые такие функции(например, полноценная поддержка нескольких объективов задней камеры) заложены в самой системе и скорее всего и с этим проблем не возникнет.
Подбор устройства
Далее я предлагаю вам одну из возможных методик подбора смартфона для покупки и установки LineageOS. Предположим, что вам необходим смартфон в средней ценовой категории до 15 000 рублей без особых изысков.
- Открываем сайт со статистикой использования LineageOS [21] и начинаем просматривать смартфоны от более популярных к менее популярным. Смартфоны, у которых есть отдельная ссылка в названии, официально поддерживаются на данный момент.
- Самый используемый на данный момент из официально поддерживаемых — OnePlus One. Смотрим год выпуска — 2014. Но в России они не продаются, и насколько я понимаю за рубежом тоже не продаются. Идём дальше.
- Далее по списку из популярных и продающихся в России — Xiaomi Redmi Note 4. Выпуск 2017 года. Но для этой модели есть только версия LineageOS 15.1(хотя патчи безопасности выпускаются также своевременно). Предположим, что это нам подходит(но плюсы более новой версии LineageOS я опишу ниже). Идём на форум 4pda(и другие форумы), ищем данную конкретную модель и видим, что есть две версии устройства — на чипе МТК и на чипе Qualcomm Snapdragon. Ещё раз проверяем продаётся ли в России версия на чипе Snapdragon(только для этой версии есть LineageOS). Звоним продавцу и спрашиваем точно ли версия на Snapdragon и для какого рынка устройство(необходимо покупать глобальную версию, так как в такой версии больше поддерживаемых частот 4G). Берём на заметку эту версию.
- Ищем далее. Xiaomi Poco F1 — слишком дорогой. Xiaomi Redmi 4(X) — ситуация аналогичная Xiaomi Redmi Note 4. ZUK Z2 Plus — не продаётся в России. OnePlus 3 / 3T — слишком дорогой. И так по очереди доходим до Xiaomi Mi A1. Продаётся на чистом Android, входит в программу Android One, не надо ждать разблокировки загрузчика, нет критичных сообщений на форумах.
В итоге, если бы я выбирала устройства до 15 000 рублей, я бы выбрала что-то между Xiaomi Redmi 4(X), Xiaomi Redmi Note 4 и Xiaomi Mi A1.
ВНИМАНИЕ: это только один из возможных методик подбора устройства, я не несу ответственности за то, что в какой-то момент на купленный вами телефон команда LOS перестанет выпускать обновления или что вы не сможете разблокировать загрузчик. Читайте всё внимательно и принимайте взвешенное решение.
Советую вам сначала прочитать все инструкции по установке на конкретное устройство LOS на сайте LOS, дополнительно прочитать темы на 4pda, xda-developers, reddit.com/r/LineageOS и из этой статьи(некоторые предостережения).
Обновление firmware
После покупки устройства необходимо обновить стоковую(изначальную) прошивку смартфона до последней версии. Дело в том, что Google постепенно разделяет Android на разные слои, чтобы можно было обновлять верхний слой отдельно, что повысит легкость разработки новых прошивок для старых устройств(для любой из версии Android). Этой возможностей воспользовалась и команда LOS, обновляя только верхний слой. Но для корректной работы, лучше установить обновления изначальной прошивки, чтобы обновить не только верхний слой, но и нижние слои(firmware). Для этого вам придётся подключится к Wi-Fi и в настройках найти пункт «обновление прошивки». Возможно придётся это делать несколько раз подряд.
Производители зачастую скрывают пункт меню «обновление прошивки», если вы разблокировали загрузчик. Поэтому рекомендуется обновлять изначальную прошивку до разблокировки загрузчика.
Внимание: компания Huawei(в том числе бренд Honor), на данный момент закрыли возможность разблокировки загрузчика. Но для разных устройств этой компании существуют разные обходные способы разблокировки загрузчика, которые работают только на старых прошивках. Если вы решили всё-таки приобрести устройство от Huawei для прошивки альтернативными прошивками(например, LOS), то заранее прочитайте форумы 4pda, xda-developer и другие по конкретному устройству, на тему разблокировки загрузчика. Для этих устройств возможно лучше будет сначала разблокировать загрузчик, а потом уже обновлять firmware.
Разблокировка загрузчика(unlock bootloader)
Для некоторых устройств необходимо разблокировать загрузчик через специальную программу.
На примере устройств Xiaomi(пример инструкции[23]):
- Создаём аккаунт Xiaomi на телефоне, указываем свой номер телефона, электронную почту.
- Получаем СМС с кодом для регистрации.
- Верифицируем аккаунт
- Заходим на en.miui.com/unlock и заходим под своей учётной записью. Тут могут быть возникнуть проблемы с тем, что иногда сайты отображаются на китайском. Ищем пункты меню для перехода на англоязычную версию.
- Скачиваем программу с сайта en.miui.com/unlock/download_en.html. Учтите, что данная программа работает только на компьютере с Windows и ей требуется доступ в интернет.
- В программе Mi Unlock в настройках находим пункт Install Drivers, жмём его и ждём установку драйверов.
- На смартфоне в системных настройках несколько раз подряд нажимаем на строчку с версией MIUI и для вас открывается скрытое меню developer settings(настройки разработчика/для разработчика)
- Далее в Настройки -> Расширенные настройки->Для разработчиков находим пункт «Отладка по USB», а также могут быть дополнительные настройки типа «Enable OEM unlock», которые тоже нужно включить.
- Подключаем смартфон к компьютеру. Перезагружаем смартфон в режим fastboot (зажимаем одновременно кнопку громкости вниз + кнопку включения смартфона до тех пор пока не появится надпись fastboot).
- В программе Mi Unlock необходимо зайти под своей учётной записью. Далее в программе должен определится смартфон. Жмёте кнопку «Unlock», несколько раз подтверждаете и ждёте результата. Если смартфон относительно новый, то вам покажут предупреждение, что до разблокировки смартфона осталось N-ое количество времени. Это может быть от 72 часов до 1440. Относительно старые модели должны разблокироваться или сразу, или за 72 часа.
Таких инструкций в интернете большое количество. Я же привела этот порядок действий, чтобы предупредить о некоторых ньюансах.
- Как вы можете видеть, чтобы разблокировать загрузчик, в некоторых случаях необходима обязательная верификация по номеру телефона и электронной почте. В свете вопросов приватности лично для меня это крайне негативный факт. Я уверена, что при авторизации в телефоне максимально будет считана информация(окружающие wi-fi точки, местоположение по GPS, текущие настройки и так далее) и передана на китайские сервера. Также при установке и запуске Mi Unlock информация с компьютера также уйдёт на китайские сервера. Параноикам(в хорошем смысле этого слова) придётся устанавливать чистую версию Windows(или в виртуалке с пробрасыванием портов), смартфоном не пользоваться до того как поставите прошивку LineageOS, менять MAC адрес Wi-Fi(других Wi-Fi точек рядом не было), делать временную СИМ карту и временный электронный адрес почты.
- В процессе у вас могут возникнуть некоторые проблемы:
-Не определяется смартфон программой Mi Unlock. Попробуйте вставить в другой USB разъём компьютера кабель от вашего смартфона. Также через настройки попробуйте обновить версию Mi Unlock(китайцы считают что на сайте можно выкладывать не последнюю версию). Mi Unlock запускайте от имени администратора(зажимаем SHIFT, правой кнопкой мыши на ярлыке программы -> Запустить от имени администратора).
-Смартфон не входит в режим fastboot. Попробуйте подольше подержать зажатыми кнопки громкости и включения, до 25 секунд.
-Mi Unlock не подключается к серверу в Китае — попробуйте на время поставить китайский proxy на компьютере.
-На одном аккаунте Xiaomi можно разблокировать только одно устройство в 30 дней.
Внимание: при разблокировке загрузчика у вас удалятся все данные на устройстве, поэтому если вы пользовались устройством и у вас остались какие-то данные, то вам надо обеспокоится их сохранением отдельно(делаем бэкап).
Далее ищем инструкцию по установке на конкретное устройство.
На примере Xiaomi Redmi 4(X) [25]. Или, если у вас устройство с неофициальной версией LOS — то на xda-developer и 4pda. В любом случае, даже если у вас официальная версия LOS — то лучше проверить на всех форумах на наличие ньюансов. Отдельно хочу заметить, что если уже установлена какая-то другая альтернативная прошивка, то возможно вам придётся совершить другие действия, особенно если вы хотите сохранить некоторые настройки и данные приложений. Того же касается и крупных(мажорных) обновлений от LOS(например, с версии 15.1 до версии 16).
СОВЕТ: если не можете найти информацию по своему устройству на форумах(особенно зарубежных) — попробуйте поискать по коду устройства. Например, для Galaxy A7 (2017) кодовое имя — a7y17lte. Зачастую интересующая вас информация на форумах есть, но надо получше поискать.
Пример установки LOS
Давайте пройдёмся по пунктам [25] с некоторыми комментариями от меня.
БАЗОВЫЕ ТРЕБОВАНИЯ
1. Удостоверится, что у вас установлены adb и fastboot.
Некоторые ссылки на то как установить adb и fastboot[27], [29]. Желательно не устанавливайте вспомогательных программ(если не доверяете автору этих доп. программ), и устанавливайте программы из официальных источников. Для Windows [31].
2. Включить «Система»- «Для разработчиков»- «Отладка Android(Включить интерфейс Android Debug Bridge(ADB))» («System»- «Developer options»- «Android debugging(Enable the Android Debug Bridge(ADB) interface)»)
РАЗБЛОКИРОВКА ЗАГРУЗЧИКА
Этот пункт я уже описала выше, не буду его повторять.
УСТАНОВКА МОДИФИЦИРОВАННОГО РЕКАВЕРИ(RECOVERY)
1. Скачиваем TWRP для определённого устройства. Иногда производитель выпускает устройства с немного отличающимися версиями частей устройства, будь то сенсорный экран или что-то ещё, и тогда TWRP с официального сайта может не сработать(или работать криво). Это решается поиском альтернативного(или более нового) TWRP для этого устройства на форумах 4pda или xda-developer.
2. Подключаем устройство к вашему компьютеру через USB.
3.1) В компьютере в командной строке, или в терминале в Linux/macOS набираем:
adb devices
На экране смартфона должно всплыть окно с запросом на подключение определённого компьютера к смартфону для отладки. Если возникает ошибка в командной строке(или терминале Linux), то в Windows попробуйте запустить командную строку от имени администратора, или sudo adb devices в терминале Linux/macOS.
Далее удостоверяемся, что показывается 1 устройство.
3.2) Набираем:
adb reboot bootloader
Смартфон должен перезапустится в режим fastboot. Также перезагрузить в fastboot режим через одновременное зажатие кнопку включения+кнопку уменьшения громкости.
На экране смартфона должна появится какая-то заставка.
4. Набираем:
fastboot devices
Получаем список устройств. Удостоверяемся, что показывается 1 устройство.
5. Прошиваем рекавери(заранее скачанный TWRP) на устройство. А ещё лучше временно загружаем(ниже описано в чём отличие).
fastboot flash recovery twrp-x.x.x-x-santoni.img
Где «twrp-x.x.x-x-santoni.img» — тот файл TWRP, который вы скачали.
Внимание: для удобства можно указывать полный путь к файлу типа «C:\Users\Вася пупкин\Desktop\twrp-x.x.x-x-santoni.img» с ковычками в пути файла.
Иногда на некоторые устройства(особенно для устройств с функцией A/B) просто так не устанавливается TWRP и надо делать некоторые ухищрения. В любом случае я вам не советую прошивать TWRP в устройство, так как с установкой TWRP ещё устанавливается приложение в смартфон с треккерами отслеживателями. Выход есть — можно просто запускать TWRP разово через команду типа:
fastboot boot "C:\Users\Вася пупкин\Desktop\twrp-x.x.x-x-santoni.img"
6. Если вы прошили TWRP, а не запустили разово, то вам придётся заново зайти в recovery через одновременное зажатие кнопку включения+кнопку уменьшения громкости.
УСТАНОВКА LOS ЧЕРЕЗ РЕКАВЕРИ
1. Скачайте прошивку LOS c официальной страницы или соберите из исходников сами. Опционально: скачайте Google Apps (для архитектуры arm64). [33]
Это установка приложений Google. Не вижу большого смысла в этом действии, так как одна из целей установки LOS — это избавится от нескончаемой слежки Google. Ранее LOS, когда ещё называлась CyanogenMod пользовалась популярностью, потому что эта прошивка давала возможность поддерживать старые устройства и привносила некоторые функции. Сейчас же по официальным опросам[35 — пункт Features] большая часть пользователей выбравших LOS, сделали это ради функции Privacy Guard(«Защита конфиденциальности»). И количество пользователей, которые вообще не устанавливают Google Apps(Gapps) медленно, но верно растёт.
Особняком стоит проект MicroG[37] и его реализация для LOS[39]. Это достаточно удачная попытка переписать приложения Google, оставив основной функционал, но при этом максимально ограничить передачу данных на сервера Google. Я не буду сильно останавливаться даже на этом проекте, потому что я решила для себя на 100% отказаться от услуг Google(и не только Google). О плюсах(и минусах) такого решения я напишу отдельно в одном из пунктов.
2. Если вы не в режиме рекавери — перезагрузитесь в рекавери через одновременное зажатие кнопку включения+кнопку уменьшения громкости. Если вы не устанавливали TWRP — то надо будет ещё раз временно запустить заново TWRP через:
fastboot boot "C:\Users\Вася пупкин\Desktop\twrp-x.x.x-x-santoni.img"
3. В основном меню выбираем Wipe
4. Выбираем Format Data, вводим «yes». Это удалит шифрование и все ваши личные данные на устройстве.
5. В том же меню Wipe заходим в Advanced Wipe.
6. Проставляем галочки ТОЛЬКО напротив Cache и System, и протягивая «свайпом» ползунок завершаем сиё действие.
7. Далее необходимо через механизм ADB Sideload загрузить прошивку LOS в устройство.
Для этого в смартфоне выбираем «Advanced», далее «ADB Sideload»
После этого на компьютере запускаем:
adb sideload fastboot boot "C:\Users\Вася пупкин\Desktop\filename.zip"
где «C:\Users\Вася пупкин\Desktop\filename.zip» — путь к прошивке LOS в формате «zip»
На экране смартфона будет отображён лог прошивания.
На некоторых устройствах в некоторых версиях прошивки в логе в конце высвечивается что-то типа «firmware not installed». Зачастую это ложная надпись и прошивка всё-таки будет установлена. Но на всякий случай проверьте на форумах(4pda,reddit, xda-developer) есть ли такие же проблемы с вашем устройством у других.
8. Опционально. ВНИМАНИЕ: Если вы всё-таки хотите установить Google Apps, то это надо сделать тут же не перезагружая смартфон! Надо будет вернуться назад в меню, потом снова в смартфоне выбираем «Advanced», далее «ADB Sideload» и запускаем на компьютере
adb sideload fastboot boot "C:\Users\Вася пупкин\Desktop\gapp.zip"
где «C:\Users\Вася пупкин\Desktop\gapp.zip» — путь к Google приложениям на вашем компьютере. Если вы после прошивки LOS случайно перезагрузите смартфон, то вам придётся делать Factory reset, иначе приложения Google практически не будут работать.
9. Опционально: рутируйте устройство установив специально подготовленный LOS AddonSU(пакет для версии arm64)[41] или другой аддон для рутирования, который вам нравится.
adb sideload fastboot boot "C:\Users\Вася пупкин\Desktop\addonsu-16.0-arm64-signed.zip"
Примечание: получение рута(root) для достижения цели реального управления устройством просто необходимо. Без рута, к сожалению, нельзя установить основные программы файрволы(firewall) и мощные ограничители доступа к данным и датчикам на устройстве другим программам(permission manager). Поэтому крайне рекомендую рутировать ваше устройство. Стандартным аддоном является вышеупомянутый LOS AddonSU, но многие пользователи пользуются таким аддоном как Magisk. Я лично пользуюсь стандартной поставкой LOS AddonSU. Причины, минусы и плюсы я опишу в отдельном пункте.
Что может пойти не так
- В некоторых случаях после пункта 4) в «УСТАНОВКА МОДИФИЦИРОВАННОГО РЕКАВЕРИ(RECOVERY)» необходимо выполнить пункт 4.5) Набираем:
fastboot oem unlock
На данном этапе происходит окончательная разблокировка загрузчика, даже если вы провели полную процедуру разблокировки. - Когда скачиваете дополнения(Gapps или рут), обращайте внимание какую именно версию вы скачиваете. Необходимо скачивать версию, соответствующую вашему устройству. Существуют 3 основные версии — arm, arm64 и x86.
- Особенно внимательно отнеситесь, когда будете делать Wipe, Advanced Wipe или Format Data. Чётко действуйте согласно инструкции. Не делайте лишних очисток, если этого не требуется(иначе можно попасть на soft brick). Но и не забывайте очищать то, что описано.
- Если вы что-то неправильно делали, то можете попасть в разные ситуации, например, bootloop(бесконечная перезагрузка или перезагрузка только в режим рекавери), soft brick(лёгкое окирпичивание), hard brick(жёсткое окирпичивание). Bootloop и soft brick не являются чем-то страшным, это можно исправить.
Самым тяжелым случаем является hard brick. Это когда телефон не реагирует абсолютно ни на что. Ни на какие комбинации клавиш. Экран вообще ничего не показывает и даже при подключении зарядного устройства не загорается индикатор зарядки. Но есть хорошая новость — на современных устройствах полностью окирпичиться(получить hard brick) крайне тяжело. Даже если вы где-то ошибётесь, то при должном умении и следуя инструкция на форумах сможете восстановить работоспособность устройства. Случаи «bootloop» бывают достаточно часто. Чаще всего это решается полной переустановкой прошивки. Желательно сначала прошить заново стоковую прошивку, а потом снова LOS. Soft brick случается гораздо реже. Но если же ваше устройство реагирует хоть на что-то, то в 99%ах случае у вас есть возможность восстановить работоспособность. На моей памяти при внимательном чтении инструкций и форумов ни у меня ни у моих знакомых ситуации с hard brick не было. Был только soft brick из-за попытки прошить устройство неправильным zip-архивом, причем с версии Android 7 на версию LOS 16. Всё удалось восстановить, но лучше не доводить до такого. - Иногда при получения рута через стандартный LOS AddonSU рут не предоставляется, хотя в логе будет написано, что установка рута завершилась успешно. При первой загрузке LOS это надо проверять сразу в настройках(ниже описано где). Иногда с первого раза предоставляется только рут на ADB, но не для приложений. В таких случаях надо заново зайти в TWRP, НЕ УДАЛЯЯ НИЧЕГО и НЕ ДЕЛАТЬ НИКАКОГО Wipe, просто повторно через adb sideload загрузить
adb sideload fastboot boot "C:\Users\Вася пупкин\Desktop\addonsu-16.0-arm64-signed.zip"
- Иногда, на некоторых устройствах TWRP может не срабатывать. Причем ошибки могут возникать на разных этапах. Начиная с того, что может просто не загружаться меню TWRP или не работать экран, заканчивая тем, что на самых последних этапах может не загружать прошивка LOS. Если что-то не получается, то ищите TWRP под конкретное устройство или даже под конкретную прошивку. Например, для некоторых устройств есть несколько разных TWRP, которые нужны для разных целей:
1) Прошится со стоковой прошивки Android 8 на LOS 15(тоже на Android 8)
2) Прошится со стоковой прошивки Android 9 на LOS 16(тоже на Android 9)
3) Обновить LOS 15.1 (Android 8.1) на LOS 16(Android 9)
4) И ещё несколько версий TWRP под разные версии экранов. - Как было уже выше сказано, иногда при обновлении с мажорной на мажорную версию LOS (например с 15.1 на 16) необходимо сначала поставить стоковую прошивку последней версии. Такое же иногда бывает и при обновлении минорных версий(например, очередной патч безопасности в LOS 16). Установку полной изначальной(стоковой) прошивки с потерей данных(или возней с бэкапом) можно избежать. Энтузиасты «выдирают» из всей изначальной(стоковой) прошивки так называемый firmware(Bootloader + Modem + DSP), запаковывают снова(размером до 50-70 МБ) и выкладывают в интернет. Вам просто необходимо будет также через adb sideload загрузить этот файл. Только старайтесь искать такой файл на более надёжных источниках. Если немного разбираетесь в программировании — то сможете сами «выдрать» эти компоненты из полной официальной прошивки.
Примечание: Это не означает, что если производитель забросит устройство, то вы не сможете прошить ваше устройство кастомной прошивкой(LOS) или команда LOS сразу перестанет выпускать обновления безопасности. LOS(CyanogenMOD) тем и была популярна, что зачастую они выпускают прошивки с новыми патчами безопасности и даже с новыми версиями Android для заброшенных производителем устройств. - Если для вашего устройства ещё не сделали специфичный TWRP, который может загрузить прошивку LOS, то этот этап вы сможете проделать через стандартный recovery(не TWRP, а который вшит в устройство изначально), либо через какой-нибудь другой recovery. То есть если на устройство есть прошивка LOS и на это устройство можно разблокировать загрузчик, то значит возможность установить прошивку у вас будет. Ищите на форумах. Энтузиасты с xda-developer и 4pda обычно очень быстро выпускают версии TWRP для нестандартных случаев. Максимум сколько мне пришлось ждать такого TWRP — 2 дня.
Для некоторых устройств команда LOS выпускает свой recovery вместо TWRP.
Поздравляю, на данном этапе вы установили прошивку LOS на ваше устройство.
Предподготовка к первому запуску
Но это ещё не всё. Не включая смартфон:
На компьютере с официального сайта F-Droid[43] скачивайте само приложение F-droid. Это магазин приложений. Называется магазин, но там все приложения бесплатные и находятся в статусе open-source.
С этого же сайта скачивайте:
- AFWall+ (dev.ukanth.ufirewall) [45]
- AdAway (org.adaway) [47]
- AppOpsX (com.zzzmode.appopsx) [49]
- С сайта организации guardianproject в папке [51] скачиваем последний рабочий Orbot. На данный момент(сентябрь август 2019-го) на моём устройстве из последних работает только версия 16.0.5-RC-2 [53]
Можно всё это сделать заранее.
Если вы хотите перенести СМС — на старом телефоне устанавливайте QKSMS[55] и делайте бэкап СМС.
Если вы хотите перенести список звонков — на старом телефоне устанавливайте Slight backup[57] и делайте бэкап списка звонков. Сделайте лучше бэкап только звонков и контактов, иначе потом могут возникнуть проблемы с переносом. Не выбирайте пункты типа «Настройки» или «Закладки».
Если контакты так не получиться перенести — обычно их можно перенести просто через vcf файл, или передать через bluetooth. Ну или если вы настроите себе хранилище Nextcloud — то вообще будет всё просто и легко.
Далее включаем смартфон и вам предложат настроить его.
- Предварительно не вставляйте в телефон СИМ карту. Не закачиваете никаких личных данных. Пока что не переносите свои контакты, СМС-ки, список звонков. Никаких личных данных.
- При настройке не включайте Wi-Fi, пропустите этот шаг. Также там же уберите возможность сканировать Wi-Fi сети для геолокации.
- Уберите синхронизацию времени по сети. Выставьте правильное время(если вы этого ещё не сделали при первой загрузке LOS)
- Уберите возможность делится информацией об установке с проектом LineageOS(хотя это на ваше усмотрение).
- Уберите возможность использовать местоположение приложениями(не переживайте, потом можно будет каждому приложению дать отдельно права на местоположение).
- Включите Privacy Guard по умолчанию.
- Вас попросят настроить блокировку по отпечатку пальца(если на вашем устройстве есть сканер отпечатка). Я не могу ничего по этому поводу сказать, так как не получилось воспользоваться данной функцией по причине отсутствия в моём устройстве сканера отпечатков.
- Попросят настроить блокировку по паролю или паттерну(графическому ключу). В данном случае, если вы укажите данный пункт в LOS 16 должен автоматически зашифроваться ваш телефон(точнее раздел с вашими данными). Обязательно поставьте пароль и зашифруйте устройство.
- Устройство загрузится. Проверьте в настройках зашифровано ли устройство. Заблокируйте доступ в интернет(стандартными средствами, как — читайте ниже) приложению SIM Toolkit и SIM App Dialog и клавиатуре. Также попробуйте отключить эти приложения(кроме клавиатуры). Чтобы найти эти приложения зайдите Apps & Notifications →See all # apps → в правом верхнем углу «Show system».
Подключите телефон к компьютеру, выберете передачу данных вместо обычной зарядки. Скиньте вышеобозначенные программы(AFWall+, AdAway, Orbot, AppOpsX) на ваше устройство и установите их на устройство из приложения Files/Файлы. - AFWall+. Открываете приложение, даёте доступ ко всему (Lan/localhost, Wi-Fi и мобильный интернет) ТОЛЬКО для Orbot и доступ к VPN только для AdAway и F-Droid. Остальные приложения не должны иметь никакого доступа. В AFWall+ включаем логирование и отображение уведомлений в настройках.
- Родными средствами Android, средствами PrivacyGuard и с помощью приложения AppOpsX убираете по максимуму доступы всех приложений практически ко всему, что не нужно этим приложениям.
- Открываете Orbot, включаете дополнительно его как VPN, даёте доступ к VPN для AdAway и F-Droid. Настраиваете подключение VPN от Orbot постоянным, и блокируйте запросы в обход VPN.
- Открываете AdAway. Включаете мониторинг DNS запросов.
- В LOS в настройках времени и даты убираете синхронизацию по сети.
- Сразу идёте в AdAway и смотрите куда пытается подключится ваше устройство. Блокируете запросы типа:
connectivitycheck.gstatic.com — Captive portal
time.android.com — синхронизация времени
izatcloud.net — сервера Qualcom для синхронизации времени и координат для A-GPS. На разных устройствам могут быть разные сервера для A-GPS.
play.googleapis.com, www.google.com — я не выяснила ещё какое именно приложение и для чего ломится в google. Я просто сразу заблокировала.
Если у вас нет никаких запросов — попробуйте подключиться к Wi-Fi у которого отключен интернет. - Только теперь на данном этапе подключаетесь к рабочему Wi-Fi(или вставить сим карту)
- Скачиваете дополнительно стандартные списки блокировки(и любые другие, которые вам по душе) и включаете блокировку в AdAway. Перезагружаете устройство, чтобы заработал AdAway
- Настройте стандартными средствами LOS(и Android) все пункты(ниже в главе LineageOS).
- Теперь устанавливайте маркет(магазин приложений) F-Droid и оттуда скачивайте необходимы вам приложения. Так как при скачивании приложения оно может автоматически запуститься и у него могут быть лишние права(не всегда Privacy Guard для новых приложений выставляет разрешения в режим «Спрашивать»), то после установки каждого приложения останавливаете его через список приложений, очищаете данные приложения, выставляете настройки доступов и разрешений и только теперь можно этими приложениями пользоваться. И так с каждым вновь установленным приложением.
- Опционально — установите и настройте рабочий профиль через Shelter(если вы собираетесь пользоваться проприетарными приложениям, которым нужен доступ к хранилищу — крайне рекомендую установить и настроить для такого случая Shelter).
- Проверьте все настройки. Проверьте как работают те или иные инструменты. Попробуйте заблокировать какой-нибудь сайт(например example.com) в AdAway и зайдите на этот сайт для проверки работоспособности AdAway. Он должен быть заблокирован.
Проверяйте как настроен AFWall+ и как он блокирует DNS запросы в обход Orbot, например через [59]. В браузерах проверяйте на работу Tor через специальные сайты, например, www.deviceinfo.me или [60]
Если скачиваете приложения не из F-Droid(чего я крайне не советую) — проверяйте на наличие треккеров на сайте [61] или в приложениях Exodus Privacy[63], ClassyShark3xodus[65]. Там точно будут треккеры, просто это для вас очередное напоминание. После установки приложения, очистите лог AdAway, запустите приложение и в AdAway следите за тем на какие адреса отсылается информация. - Только теперь вы можете перенести свои данные на устройство(например контакты, СМС, список звонков и другие данные).
Про шифрование устройства
Необходимо шифровать ваш телефон. Установка пароля или графического ключа при первом включении автоматически не означает, что устройство будет зашифровано. Особенно на старых версиях Android или на дешёвых устройствах. Также устройство может не зашифроваться при первом включении устройства, если у вас до этого стояла какая-то другая неродная(не стоковая) прошивка. Наличие шифрования можете проверить в настройках(ищите Encryption(Шифрование)). Шифруется не всё устройство, а только приложения, их данные и ваши данные. Данные системы Android не шифруются, так как по умолчанию к ним и так не должно быть доступа(если заблокирован загрузчик). На самом деле это шифрование не очень надёжное в том плане, что часто находятся изъяны в таком шифровании и обходные пути. Но чем новее телефон и чем новее версия Android, тем меньше шансов на взлом. Точнее, тем тяжелее будет и больше времени понадобится высококвалифицированным специалистам, чтобы обойти шифрование. На современных телефонах(не самой низкой ценовой категории) на последних версиях Android шифрование точно позволит обезопасится от среднестатистического взломщика.
Чтобы не попасть в ситуацию, что вы обнаружите отсутствие шифрования после того как настроили устройство — лучше сразу при первом включении проверить наличие шифрования. Потому что в редких случаях для включения шифрования необходимо будет делать манипуляции, при которых придётся стирать все данные(например устанавливать стоковую/изначальную прошивку) и вы потеряете время на повторную настройку устройства.
По поводу шифрования SD карты в LOS — это возможно только если вы сделаете её в формате Adoptable Storage. При первом использовании внешней SD карты вас спросят хотите ли использовать ли её внутренее хранилище, или как переносное. Надо будет выбрать «внутренее». При этом износ SD карты повысится и нежелательно будет там хранить важные данные по причине повышенного риска отказа карты в работе.
Я не пользуюсь SD картами, так что не могу вам посоветовать как именно проверять то, что она надёжно зашифрована.
Шифрование крайне обязательно, если у вас есть недоброжелатели, нацеленные конкретно на вас. Украв у вас телефон без шифрования они смогут вытянуть ВСЕ данные из вашего устройства — переписки, пароли, фотографии и так далее.
Но даже если таких недоброжелателей у вас нет, то вы можете просто потерять ваше устройство, и тот кто его найдёт сможет вам сильно навредить. Или если устройство поломается(например разобьётся экран), то в ремонтной мастерской приёмщик также сможет легко вытянуть все ваши данные. А эти ребята не всегда чистоплотные на руку.
Так что ещё раз: ШИФРОВАНИЕ НЕОБХОДИМО ВКЛЮЧАТЬ!!!
Стандартные настройки LOS
Давайте пройдёмся по настройкам LOS, которые касаются по большей части именно безопасности и приватности. Многие из них относятся и к чистой версии Google AOSP. Рассматривать буду версию LOS 16.
В Settings(Настройки) есть поиск по настройкам.
Network&Internet(Сеть и Интернет)
-Wi-Fi
--Wi-Fi preferences(Настройки Wi-Fi)
---Turn on Wi-Fi automaticaly(Включать Wi-Fi автоматически) — нет.
---Open network notification(Уведомление об открытых сетях) — нет.
Также в настройках Wi-Fi вы сможете добавить скрытую сеть(надеюсь вы дома скрыли свою сеть Wi-Fi).
-Mobile network(Мобильная сеть)
--Wi-Fi calling(Звонки по Wi-Fi) — отключить.
--Carrier video calling(Видеозвонки) — отключить.
--Access Points Names(Точки доступа(APN))
Тут в настройках точки доступа(по сути настройки параметров для интернета через сотовую сеть) может стоять прокси. Если он стоит — то AdAway может и не сработать при использовании мобильного интернета. Уточните, можете ли вы отключить этот прокси у вашего ОПСОСа, и не поменяется ли у вас тарификация.Если можно — то отключайте этот прокси.
Connected devices(Подключенные устройства)
-NFC — Отключайте NFC и старайтесь им не пользоваться. На эту тему я не могу сказать ничего, так как на моём устройстве нет NFC, а также потому что на эту тему мало информации в части приватности и безопасности.
-Bluetooth пользуйтесь только по необходимости, отключая его когда не пользуйтесь. Спаривайте(первое подключение) устройства только в месте где нет посторонних.
Apps & notifications(Приложения и уведомления)
-Notifications(Уведомления)
--On lock screen(На заблокированном экране)
У меня стоит Hide sensetive content(Скрыть конфеденциальные данные). Данная настройка позволяет убирать текст уведомления на заблокированном экране, и оставляет только наименование приложения от которого пришло уведомление. Никто случайно не увидит текст сообщения, предназначенного только вам.
-Default apps(Приложения по умолчанию)
Внимательно просмотрите, что у установлено на разные типы приложений. Выберете доверенные приложения.
Самое главное в пункте «Browser app(Браузер)» выберайте или «None(Нет)» или «Tor browser». Это необходимо, чтобы если вам прислали какую-нибудь ссылку, то вы сами выбирали бы в каком браузере открыть(в случае «None(Нет)») или чтобы она открывалась в «Tor browser». Объясню почему — вы можете нажать на ссылку в каком-нибудь мессенджере, которая будет выглядеть адекватно, типа «example.com», но на самом деле там будет ссылка типа «vk.com/away.php?to=example.com» и если вы откроете эту ссылку в своём стандартном браузере, то Вконтакте сможет понять что кто-то на этом IP открывает определённую страницу. Если вы в этом браузере были залогинены вконтакте, то вообще сразу поймёт по каким сайтам вы ходите(не просто общее наименование сайта, а конкретная страница). Но даже если в ссылке нет таких «подлостей», то всё равно вам может быть не по душе, чтобы ваш провайдер интернета знал какие вы сайты открываете и при случайном открытии ссылки в определённом браузере эта информация сразу уйдёт провайдеру.
-Advanced(Дополнительно)
--App permissions(Разрешение приложений). Данный пункт я отдельно опишу в связке с PrivacyGuard и AppOpsX.
--Special app access(Специальный доступ)
---Battery optimization(Экономия заряда батареи)
В Android от версии к версии изменяется управление автоматическим закрытием приложений. Всякие функции Doze, машинное обучение статистикой использования приложениями и так далее. Правила меняются, что-то добавляется, что-то убирается. Мне просто надоело угадывать очередные шаги Google. На данный момент я не использую эти функции, точнее: не сильно на них полагаюсь. В данном же пункте я просто добавляю почтовые сервисы и другие приложения, которым необходимо работать в фоне.
---Device admin apps(Приложения администратора устройства)
В данном пункте не должно быть никаких приложений, кроме тех, в которых вы 100% уверены. Это очень опасное разрешение. По факту это разрешение даёт возможность изменять любую настройку в устройстве. Например, у меня в данном пункте разрешён только Shelter. Да вообще, запрос на это разрешение уже очень подозрителен, даже если вы не выдали это разрешение.
---Display over other apps(Поверх других приложений)
У меня нет приложений, которым бы понадобилась такая функция. Это функция в некоторых случаях используется вирусными приложениями, например для перехвата вводимых паролей.
---Do Not Disturb access — DND (Доступ к функции «Не беспокоить»)
Это необходимо для тонкой настройки режимов тишины. Я не пользуюсь этой функцией. Но этой функция иногда нужна вирусам, чтобы выключить оповещения и звук от банковских СМС, когда они похищают деньги со счёта.
---Modify system settings(Изменение системных настроек)
Это разрешение на изменение яркости экрана, громкости. Эта функция необходима в основном медиплеерам.
---Notification access(Доступ к уведомлением)
Доступ необходим только к лаунчеру. Нельзя давать другим приложениям читать уведомления, в которых могут быть тексты кодов из СМС и так далее.
---Picture-in-picture(Картинка в картинке)
Аналогично Display over other apps(Поверх других приложений). Эта функция нужна только проигрывателям видео, и браузерам через которые вы также хотите выводить видео отдельно. Классная функция, кстати. Сейчас даже не все телевизоры её поддерживают.
---Premium SMS access(доступ к платным SMS) — НИКОМУ
---Unrestricted data(Неограниченный мобильный Интернет)
Для каждого отдельного приложения можно убрать возможность скачивать/закачивать что-либо в сеть/из сети.(я напишу про это отдельно) Но при включении настройки экономии трафика(«Настройки» — «Сеть и Интернет» — «Передача данных» — «Экономия трафика») все приложения в фоне(кроме некоторых системных) не могут «стучаться» в интернет. Эта настройка действует как исключение именно для режима экономии трафика.
---Install unknown apps(Установка неизвестных приложений)
Возможность определённой программе предлагать установку других программы. Ранее эта настройка была только на все сторонние приложения разом, теперь же в последних версиях Android появилось разделение доступа к каждому отдельному приложению. В любом случае ни одно приложение(кроме Google Play, который устанавливать я вам не рекомендую) не может устанавливать приложения в фоне. Обязательно всплывёт окно с запросом на установку. В данном пункте у меня стоит возможность только для Shelter и для F-Droid.(подробнее будет ниже). Посылать запрос на установку у системного файл менеджера есть по умолчанию.
---Usage access(Доступ к данным)
Доступ к общим данным истории использования устройста. Нельзя давать никому. Ну или специальным программам, которые для вас составляют анализ использования устройства. Внимательно давайте доступ к этой функции.
---VR helper service(Вспомогательные VR-сервисы)
Ничего не знаю об этом. Не пользуюсь VR, соответственно никому доступ не даю.
---Directory access(Доступ к каталогам)
Очень интересное новое ограничение для доступа к таким папкам как «Pictures», «Movies». Это новое ограничение, появившееся только в версии Android 9 Pie. Дело в том что, сейчас, чтобы получить приложению возможность сохранять картинки в «Pictures», приложение запрашивает полный доступ ко всем файлам!!! В Google решили сделать отдельное ограничение на вышеобозначенные папки. НО практически ни один разработчик приложений не торопится ограничивать себя и просит полный доступ ко всем папкам. На данный момент пользователей Android 2,5 миллиарда[67]. Из них 10% пользуются последней версией Android Pie[69]. То есть для 250 миллионов потенциальных пользователей(количество которых будет только расти) можно было бы переделать своё приложение и показать хоть какую-то приверженность приватности. Но нет, они плевали на нас.
Понятно почему приложениям нужен доступ к этим папкам. Те же мессенджеры сохраняю там картинки, на тот случай, чтобы при удалении приложения(случайном или специальном) картинки остались. Людям не хочется терять памятные фотографии. Но почему практически ни одно приложение не даёт возможность сохранять свои данные во внутреннюю память самого приложения? Возьмём пресловутый Telegram. Такой настройки нет. Он сам выбирает что и куда сохранять(даже файлы из секретных чатов видно другим приложениям, об этом я напишу). Я начала думать как лучше обеспечить возможность использования таких приложений(которым нужен доступ к памяти), но при этом не давай им этот самый доступ. Нашла статью [71] в которой подробно расписана файловая структура и политика ограничения доступа к файловой структуре. Оказалось, что можно делится файлами с приложением, не давая доступ к самими данным. Например, вы хотите послать какой-нибудь файл другу через мессенджер, но не хотите давать доступ к файлам этому мессенджеру. По идее в мессенджере можно было бы реализовать выбор файла через стандартный файл менеджер(и это старая функция). К сожалению разработчики приложений этого не делают. А при ограничении Telegram доступа к хранилищу, не работает даже кнопка Share(Поделится) из самого Telegram. Вот вам и приватный мессенджер!
В Android 10 Q всё ещё раз поменяется в этой части. Мне непонятно как именно будет работать данное ограничение. Если дать доступ к хранилищу, но не дать доступ в этой настройке, то будет дан доступ к остальным папкам? Или наоборот.
В любом случае, я считаю что данный подход всё равно недостаточен в части сохранения конфиденциальности. Я ограничиваю доступ ВСЕМ приложениям к хранилищу, которые имеют доступ в интернет. Это одна из линий защиты моих данных.
Насколько я понимаю эта функция — подготовка к функции scoped storage, которая появится в Android 10 Q, но станет обязательной только в Android 11. Ну а пока я ограничиваю доступ к хранилищу всем приложениям с интернетом(или запускаю в рабочем профиле).
---Wi-Fi control(Управление сетями Wi-Fi)
Новая настройка от Google. Дело в том, что в Android 9(и в LOS 16), чтобы приложение могло сканировать/переключать/подключаться к Wi-Fi, необходимо чтобы были соблюдены ВСЕ условия
1) Чтобы приложение имело доступ к Wi-Fi control(Управление сетями Wi-Fi).(CHANGE_WIFI_STATE)
2) Чтобы приложение имело доступ к геолокации(ACCESS_FINE_LOCATION или ACCESS_COARSE_LOCATION)
3) Включена геолокация(не для отдельного приложения, в вообще) И только тогда приложение сможет сканировать сети и подключаться к ним.
Ранее в Android 8.1 (LOS 15.1) достаточно было либо 1-го пункта, либо 2-ого+3ий. Теперь все пункты обязательны. С одной стороны Google как бы намекает пользователям, что если приложение имеет доступ к сканированию Wi-Fi, то автоматом имеет и возможность вычислить местоположение.
С другой стороны слишком всё накручено. Я не хочу включать геолокацию(доступом к которой могут воспользоваться другие приложения), но иметь возможность сканировать Wi-Fi, сторонним приложением.
Эту настройку надо отключить у всех приложений, кроме тех, которым это разрешение необходимо для работы.
Battery(Батарея)
-Battery manager(Battery manager)
--Manage apps automaticaly(Автоматическое управление приложениям)
У меня включена данная функция. Но я не надеюсь на эту функцию в части приватности. Android сам решает, что ограничивать, а что нет. Поэтому я использую эту функцию только для того, чтобы снизить потребление энергии, но не как не для безопасности или приватности.
--Battery saver and perfomance(Энергосбережение и производительность)
---Extreme power saver(Агрессивное энергосбережение).
По идее эта функция, если её включить, должна напрочь убивать/замораживать все приложения работающие в фоне. Я не надеюсь на неё, так как я не уверена в том, что приложения не смогут обойти эти ограничения. Ранее на другом устройстве с Android 7 Nougat у меня была включена аналогичная функция, но особо хитрые приложения от гигантов(не только от Google) умудрялись что-то показывать в уведомлениях. Видимо запускали какие-то комбинации фоновых сервисов, которые поддерживали работоспособность.
У меня эта функция не включена, так как нужные приложения будут сразу закрываться, а особо хитрые могут проскочить.
Если кто-то пользовался данной функцией(в Android 8.1,9 или LOS 15.1, 16) и знает точно результат данной функции, просьба сообщить в комментариях.
--Automatic power saver(Автоматическое энергосбережение)
Эта функция включает агрессивное энергосбережение при достижении определённого уровня заряда. Из-за использования Orbot, VPN и из-за отсутствия Google Play(который может держать одно соединение с интернетом для всех приложений) приложения типа почтовиков/мессенджеров вынуждены каждый сам по отдельности «ходить» в интернет через определённые промежутки времени. Иногда при усердном использовании устройства не замечаешь как батарея сажается. Для этого и нужна эта настройка. Но в пункте «Apps & notifications(Приложения и уведомления)->Battery optimization(Экономия заряда батареи)» я выставила основные приложения(Orbot и почтовик) в исключения. Если честно — я не знаю, почему эти настройки разведены в разные пункты. Если кто-то знает, как именно они связаны — прошу описать в комментариях.
--Performance profile(Профиль производительности)
Помимо выгрузки приложений из фона, также возможно ограничение скорости процессора для увеличения работы от батареи. Я выставила профиль «Balanced(Сбалансированный)», так как я 1) не играю в игры, мне хватает скорости работы и так.
2) стараюсь, чтобы устройство не перегревалось, так как в таком случае батарея гораздо быстрее приходит в негодность. С учётом того, что сейчас просто никто не выпускает устройства со съёмной батареей среднего ценового сегмента(да ещё на которое есть LOS 16), то приходится следить за здоровьем батареи. Кстати, из-за этих же причин я не довожу заряд батареи ниже 20% и не заряжаю выше 85%ов.
Security & Location(Защита и местоположение)
-Screen lock(Блокировка экрана)
Тут можно выбрать способ защиты устройства —None(Нет), Swipe(Провести по экрану), Pattern(Графический ключ), PIN(PIN-код), Password(Пароль). Если вы при установке LOS 16 выбрали что-то из Pattern, PIN или Password, то должно было запуститься шифрование устройства. Здесь вы можете поменять тип блокировки. Настоятельно рекомендую оставить что-либо из Pattern(Графический ключ), PIN(PIN-код), Password(Пароль).
-Lock Screen Preferences(Заблокированный экран)
--On lock screen(На заблокированном экране) — про этот пункт уже было в «Apps & notifications(Приложения и уведомления)». Некоторые настройки могут быть доступны из разных пунктов, не удивляйтесь.
--Add users from lock screen(Доб. пользов. на заблок. экране)
Возможность добавлять новых пользователей прямо с экрана блокировки. Не включайте эту функцию.
--Work notifications(Рабочие уведомления)
Тоже самое что и в пункте «On lock screen(На заблокированном экране)». Только для приложений в так называемом Work profile(Рабочий профиль). Я отдельно опишу про «Рабочий профиль», как его активировать, чем он может быть полезен и другие интересности.
-Fingerprint(Отпечатки пальцев)
Ничего не могу сказать по поводу отпечатков пальцев, так как на моём устройстве нет такой функции. Не знаю как это работает в части шифрования, связки с другими средствами защиты(Пароля, PIN, графический ключ). Если у кого-то есть информация — просьба поделиться.
В интернете пишут, что даже если вы добавите разблокировку по отпечатку пальцев, то при перезагрузке устройства всё равно вас попросят ввести Пароль(или граф. ключ или PIN). По моему мнению это правильно. Я бы хотела, чтобы эти настройки были бы ещё жёстче(но настраиваемыми), например, спрашивать пароль после 1 часа неиспользования устройства, а после перезгрузки, чтобы спрашивал и отпечаток и пароль.
Вообще-то, я не очень доверяю этому функционалу. По идее сканер отпечатков не передаётся дальше своего отдельного чипа. Но это всё закрытый функционал, никто проверить не может. Также предполагается, что на дешёвых телефонах могут стоять сканеры отпечатков, которые сверяют «пальчики» программно, а это значит, что слепок уходит на устройство, а дальше хоть трава не расти.
В любом случае, если вы устанавливаете разблокировку по отпечатку пальца — включите функцию Lockdown(описание ищите ниже).
-Trust(Trust)
--SELinux
Дополнительный механизм по обеспечению корректной работы разграничения прав доступа на устройстве. Статус должен быть Enforcing(Принудительный) и значёк слева зелёным. Если это не так — то ищите решения на форумах. Убедитесь, что вы скачали нормальную прошивку(крайне желательно официальный LOS). Иногда нужно просто обновить firmware.
--Root access(Режим суперпользователя)
В данном пункте меню нельзя ничего менять, здесь только отображается кому дан root. Менять эти настройки можно в System(Система)→Developer options(Для разработчиков)→Root access(Режим суперпользователя). О root я напишу позже. Заранее забегая скажу, что лучше, чтобы в данном пункте было Apps only(Только приложения).
--Android security patch(пакеты безопасности Anrdroid)
Данное меню показывает устранены ли у вас последние известные уязвимости. Показывает два пункта:
-Platform(Платформа)
-Vendor(Производитель)
Если у вас в данном пункте отображается, что не всё в порядке, то ищите решение на форумах. Обычно хватает просто поставить обновления «по воздуху»(OTA обновления) если у вас официальная версия LOS. Иногда надо отдельно скачать firmware(обновление от производителя) и установить его. Ежемесячные обновления безопасности, которые подготавливают в Google, включаются в прошивку LOS очень оперативно. Гораздо быстрее чем на большинстве других прошивок, даже стоковых(изначальных).
--Encryption(Шифрование). Обязательно должно быть включено.
--Privacy Guard(Защита конфиденциальности). Эту настройку я опишу отдельно достаточно подробно, где также буду рассматривать и другие механизмы ограничения прав доступа.
--LineageOS statistics(Отправка статистики)
Возможность отправлять статистику на сервера LOS. Вы вольны сами решать отправлять им эти данные или нет.(при первом включении прошивки вас также должны были спросить об этом) Там же можно посмотреть какие данные отсылаются. Мне не нравится наличие в этом списке уникального отпечатка устройства и мобильного оператора. С другой стороны более точная статистика использования устройств поможет понять предпочтения пользователей, и может помочь другим при выборе устройства. Решать вам.
--SMS message limit(Ограничение SMS-сообщений).
Ограничение на отправку СМС сообщений в минуту. Видимо всякие вирусы настолько часто используют эту функцию, что ввели отдельное ограничение. Или пользователи случайно отправляли огромные СМС(каждые 70 знаков в СМС считается за отдельное СМС).
-Location(Местоположение)
Стандартная настройка включения местоположения.
--«Battery saving mode(Режим энергосбережения)» — отключение определения местоположения по GPS и использование местоположение по Wi-FI, bluetooth и сотовым сетям. Я не проверяла как именно работает это ограничение. У меня вообще нет модуля для определения местоположения по Wi-FI, bluetooth и сотовым сетям(так как не установлены Gapps или microg). Видимо ограничение работает так как и написано. Хотя в шторке можно выбрать 3 пункта — 1) по GPS, 2) Wi-FI, bluetooth и сотовым сетям 3) по всем источникам. Во всём Android настройки местоположения и доступов к сканированию Wi-Fi(что по сути также даёт доступ к местоположению) разбросаны по разным углам. Мне проще отключить геолокацию для всего, кроме Osmand вместо того, чтобы разбираться в этих настройках. В этих настройках может быть много подвохов. Например, в обычном Android(с Gapps) есть какие-то запрятанные функции, по которым тяжело полностью отключить Wi-Fi.
--«Scanning(Поиск)» — позволяет приложениям даже при выключенном Wi-Fi или Bluetooth сканировать сети Wi-Fi или Bluetooth. Опять какие-то бредовые настройки. Если честно, мне кажется либо в Google работают полные отморозки, либо это специально сделано, чтобы пользователь не мог разобраться. Я могу собрать и отдельно выписать все эти настройки связанные с геолокацией, сравнивать их, пытаться понять как именно они пересекаются — но это будут лишь мои догадки. В итоге я отключила эту функцию и для Wi-Fi и для Bluetooth.
--App-level permissions(Разрешения для приложений)
Удобный список родным способом(от Android) управления доступом приложений к местоположению в виде списка.
-Show passwords(Показывать пароли)
Настройка, чтобы при вводе паролей показывать каждый введённый символ на очень короткое время. Советую не включать этот пункт. Сейчас камеры видеонаблюдения стали снимать в высоком качестве и разрешении, а также кто-то может стоять за спиной. На какую буквы вы нажимаете при введении пароля тяжело понять из-за перекрытия пальцами, но если сама буква будет отображаться на экране(даже долю секунды), то это плохо. Если же у вас большие пальцы, и вы часто промахиваетесь, то можно включить эту настройку, но тогда при вводе пароля удостоверьтесь, что вас никто не снимает и никто не подглядывает.
-Device admin apps(Приложения администратора устройства) — та же настройка, что и в «Apps & notifications(Приложения и уведомления)»-«Special app access(Специальный доступ)»
-SIM card lock(Блокировка SIM-карты)
Обычная блокировка/разблокировка СИМ карты по ПИН-коду. Этому способу защиты более 20 лет, я думаю вы должны знать все про это.(Если не знаете — то прочтите эту статью[73]). Если у вас какие-нибудь сервисы привязаны к верификации по мобильному телефону(например банковские приложения) — то рекомендую воспользоваться данной функцией и поставить блокировку. Да, это неудобно, да, есть способы обойти ПИН, но на это потребуется существенное время, и если у вас украли СИМ карту(с телефоном или без) вы за это время успеете найти другой телефон и по звонку в сервисный центр ОПСОС-а заблокировать СИМ карту.
-Trust agents(Агенты доверия)
Это приложения для разблокировки устройства в обход пароля или сканера отпечатка пальцев. В стандартной прошивке обычно даётся доступ к приложению Google Smart Lock. Это позволяет быть телефону разблокированным в определённом месте или рядом с определённым роутером Wi-Fi. Рекомендую вам не пользоваться данной функцией и отключить все программы в данной настройке. Могут украсть устройство и у вас рядом с домом(или рядом с тем местом, который вы зарегистрировали как доверенное) его разблокировать.
-Screen pinning(Блокировка в приложении)
Эта функция не работает в LOS 16(хотя на некоторых устройствах эта функция может всё-таки заработать). Предназначена данная функция для того, чтобы можно было закрепить только 1 приложение, без возможности переключения на другое приложение. Полезно, если необходимо дать устройство детям, включив только одну программу.
Accounts(Аккаунты)
Список аккаунтов из разных программ. Опасный в части приватности функционал. Любая программа, которая имеет доступ к списку аккаунтов, моментально может связать ваши аккаунты из разных сервисов. Начиная с версии Android 6 Marshmallow, приложению не надо запрашивать список аккаунтов, чтобы иметь доступ к своему аккаунту. Насколько я это поняла из «if an app shares the signature of the authenticator» [75]
Непонятно правда, если компания разрабатывает два приложения с одним «signature of the authenticator», то при установке второго приложения от одной и той же компании второе приложение автоматом получит информацию о том, что установлено первое приложение от этой же компании и получит даже доступ к информации об этом аккаунте? Просьба прокомментировать разбирающихся в этой области.
Собственно говоря, доступ к списку аккаунтов(помимо аккаунта от самого приложения) никак нельзя ограничить стандартными средствами Android. В Google считают, что нам — отребьям(коими Google, видимо, нас представляет), нельзя о таком задумываться. Подробнее на тему ограничений прав доступа опишу далее(можно и нужно будет ограничить в Privacy Guard или AppOpsX). Заранее лишь скажу, что очень внимательно следите какие приложения создают аккаунты, а какие имеют доступ на просмотр списка аккаунтов.
System(Система)
-Languages & Input(Язык и ввод)
--Virtual keyboard(Виртуальная клавиатура)
---Android keyboard (AOSP) (Клавиатура Android(AOSP))
----Advanced(Дополнительные настройки) — включаем Show app icon(Показывать значок приложения). Это надо для того, чтобы потом удобно из списка приложений быстро ограничить доступ клавиатуры к интернету и контактам стандартными средствами Android.
Также в настройках клавиатуры вы можете убрать предложения часто используемых слов
---«Text correction(Исправление текста)» — «Personal suggestions(Пользовательские словари)»
Это на тот случай, если вы кому-нибудь дадите на время телефон в руки, или если бандиты силой заставят разблокировать устройство — то по частоте предлагаемых слов можно очень легко понять ваши предпочтения. ВНИМАНИЕ: не недооценивайте эту настройку. Я лично знаю случай в неблагоприятной семье, когда агрессивный глава семейства ничего не найдя в телефоне жены всё-таки понял, что она собирается заявить на него в полицию, по предлагаемым словам типа «заявить», «полиция» и так далее. Даже если вы удалите все переписки, все лишние свидетельства контактов с кем-либо, следы осядут в клавиатуре. В целом, периодически можно чистить кэш и данные клавиатуры.
-Buttons(Кнопки)
--Power button(Меню кнопки питания)
---Lockdown(Блокировка)
Если у вас стоит разблокировка по отпечатку пальца, то поставьте эту функцию обязательно. Она работает так — если вы зажмёте кнопку питания, то помимо «Выключить/перезагрузить/сделать скриншот» появится ещё «Lockdown(Блокировка)», которая заблокирует устройство так, что разблокировать следующий раз устройство можно будет только по паролю или графическому ключу. Это на тот случай если негодяи на улице заломают вас и попробуют приложить ваш палец с сканеру отпечатков. Да, конечно это для редких случаев, но функция может в определённый момент пригодится. Включите — есть не просит.
-Status bar(Строка состояния)
--Network traffic monitor(Индикатор сетевого трафика)
Включите в Display mode(Режим отображения) возможность просматривать скорость текущего интернета на скачивание и на выгрузку. Это вам поможет понять, если в какой-то момент какое-нибудь приложение в фоне начинает, что-то усиленно закачивать на устройство, или выгружать на сервера ваши данные. Также поможет предотвратить потребление мобильного трафика.
Также в Status bar(Строка состояния) есть другие интересные настройки. Например, процент заряда батареи, чтобы не остаться с разряженным устройством в неподходящий момент, и чтобы не пришлось пользоваться чужими устройствами халатных людей(у которых все устройства напичканы вирусами и «следилками»).
-Date & time
Убираем «Automatic date & time(Дата и время сети)», убираем «Automatic time zone(Часовой пояс сети)». По идее эти настройки должны отключить автоматическое выставление времени с серверов Google. Но не тут то было. Всё равно, даже при отключенных настройках система пытается периодически достучаться до серверов Google с ntp. Это видно из логов AFWall+ и Adaway.
ВНИМАНИЕ: Вам придётся вручную выставлять дату и время. Когда вы загружаете TWRP — то дата и время может сбиваться. Когда вынимаете батарейку, дата и время также может сбиваться. Дело в том что Orbot и Tor browser не могут запуститься, если у вас неправильно стоит дата и время. Вы можете потратить усилия, чтобы выяснить в чем проблема, но чаще всего дело в неправильном времени в системе.
-Developer options(Для разработчиков)
Пользуйтесь этими настройками аккуратно, особенно внимательно обращайте внимание на те, что касаются вмешательства в работу «железа» устройства. То есть не меняйте того, что не знаете. Например, всякие «ускорения», «экспериментальный» и так далее.
--Advanced restart(Варианты перезапуска)
Позволяет вам перезагрузится в режим recovery без зажатия кнопки громкости вниз. Полезно, если физически эта кнопка сломана.
--Running services(Работающие приложения)
Родной для Android-а инструмент по просмотру списка запущенный приложений и списка приложений в кэше. Тут же можно остановить работу приложения. Если какое-то приложение почему-то запущено, хотя не должно быть — то с этим надо разбираться. Или ограничивать автозапуск, или ограничивать запуск одних приложений другими.
--WebView Implementation(Сервис WebView)
Для того, чтобы в каждое приложение не встраивать браузер или обработчик JavaScript, есть реализация от Google. Так удобнее разработчикам приложений, а также должно экономить место на смартфоне. Например, разработчик может сделать версию для мобильных браузеров и эту же версию подсовывать в своём приложении. Или для того, чтобы в каком-нибудь мессенджере быстро просматривать ссылку, не переходя в какой-нибудь браузер. В LOS установлена реализация WebView AOSP на основе Chromium. Я ниже описала что «сливает» WebView и как этого можно избежать(устанавливать WebView от Bromite). Пришлось оставить включенным, так как некоторые приложения(например, K-9 Mail) используют WebView. Но у меня дойдут руки и я перейду на Bromite WebView.
--Root access(Режим суперпользователя)
Кому должны быть предоставлены права суперпользователи:
Disabled(Выключен)
Apps only(Только приложения)
ADB only(Только ADB)
Apps and ADB(Приложения и ADB)
Желательно, чтобы всегда в обычном состоянии был пункт Apps only(Только приложения). Про root я опишу позже.
--Manage root access(Права суперпользователя)
Список приложений, имеющих root(рут) права в интерфейсе Privacy Guard с возможностью отзывы прав. Рут должен быть предоставлен только тем приложениям в которых вы уверены.
--Android debugging(отладка Android)
Включение интерфейса ADB для подключения с компьютера или из некоторых программ самого устройства(например для некоторых случаев в AppOpsX). Желательно включать только при необходимости и выключать, когда не надо.
--Debugging notify(Уведомление об отладке)
Лучше включить, чтобы видеть, что какое-нибудь приложение пытается подключится по интерфейсу ADB когда подключены к компьютеру
--Revoke USB debugging authorization(Отозвать доступ для USB-отладки).
Желательно после манипуляций по ADB отзывать доступ ко всем устройствам, чтобы злоумышленники не могли украсть у вас смартфон+компьютер и подключиться к смартфону по ADB при заблокированном экране.
Далее самые последние настройки связанные с управление работы приложений в фоне. Тут же можно найти и ограничения, и поменять статус приложениям. Я же предпочитаю наверняка ограничивать работу в фоне приложения. А особо неприятные приложения, вообще закрывать.
--Kill app back button(Закрытие приложения кнопкой «Назад»)
Настройка позволяющая закрывать(точнее насильно завершать) приложение по долгому нажатию кнопки «Назад». Я пользуюсь этой функциональностью, когда необходимо временно запустить приложение, которому я не доверяю, и потом закрыть это приложение после использовании.
Помимо представленных настроек есть ещё и другие интересные настройки в разных разделах, такие как переопределение кнопок, принудительная работа приложения в режиме полного экрана(без системной строки сверху и без кнопок снизу) и другие прикольные штуки.
Root/рут/права суперпользователя/superuser
Насколько можно понять из названия — это доступ ко всем программным внутренностям устройства. Изначально на большинстве устройств на Android(кроме совсем редких устройств) рут не предоставляется. Во-первых, при неумелом обращении можно сломать прошивку(soft brick), во-вторых, можно даже разогнать процессор и этим физически повредить устройство.
В-третьих, если вы неуверенный пользователь и не следите за тем, какие программы устанавливаете, какие права и кому даёте — то риск установить вирус, который очень глубоко пустит свои щупальцы в системе, будет достаточно большим.
Но не стоит пугаться, если вы аккуратный пользователь. К сожалению, Google не предоставляет удобных возможностей по точной настройке устройства, особенно в части приватности. Постепенно, скажем так «достаточно неспешно» Google добавляет возможности для ограничения доступов для программ, но этого мало. Иногда, даже убирает полезные настройки(затруднила деактивацию Captive Portal, убрала поддержку Miracast ради продвижения своего устройства Chromecast работающего только через Google и так далее). Поэтому придётся рутовать устройство, чтобы установить полезные программы, способствующие повышению приватности. Например, такие как Afwall+, Adaway, AppOpsX.
Хочу сразу заметить, что в основном рут бывает 3-ёх видов:
Temporary root — временный рут. Пропадает при перезагрузке.
Full root — полные постоянные права, которые позволяют изменять все разделы и папки, в том числе папку system.
Shell root — неполные постоянные права, которые позволяют читать все файлы, но не могут менять файлы в папке system. То есть нет прав r/w(read and write), а только read. Такое случается, если производитель специально выставил ограничение на запись в этот раздел, а также на устройствах с системой A/B слотов[77]. В разных случаях вопрос решается по-разному.
Вообще-то только для одного приложение, которое я задействую, необходима именно запись в этот раздел: Adaway. Эта программа меняет файл hosts.
Некоторые устройства на A/B с версией Android 9(LOS 16) теперь дают возможность изменять файлы в system(по крайней мере файл system/etc/hosts возможно изменять) с родным рутом(с addonSU от команды LOS), хотя такой возможности в LOS 15.1 не было. На большинство же других случаев обычно находится специальная версия Magisk, которая меняет структуру так, чтобы появился доступ к system на запись.
Существует множество модулей для рута. Для прошивки LOS обычно используется 2 модуля:
1) addonSU — родной для LOS модуль. Я пользуюсь именно этим модулем, так как он разработан для всех устройств командой LOS, а остальные модули хоть и open-source, но зачастую делаются энтузиастами под каждое отдельное устройство(и у меня нет уверенности в чистоплотности этих энтузиастов). Также Magisk слишком мощный модуль. Учтите, что с рутом через addonSU не будет работать оплата телефоном, Netflix будет работать только с низким разрешением, не будут работать большинство приложений зарубежных банков. Большинство приложений крупных российских банков работают с любым рутом, но оплата устройством по NFC работать не будет. Правда есть обходное решение для прохождения SafetyNet и работы оплаты устройством: iSU [79], [81], но я им не пользуюсь и не могу ничего сказать по поводу работоспособности iSU.
2) Magisk. Очень мощный модуль, может вклиниваться настолько глубоко, что может каким-то образом подменять папку system, делая её изменяемой даже для тех случаев, когда это не предусмотрено производителем. Имеет разные совместимые модули. Может скрывать от программ то, что он установлен, и после сокрытия даже можно настроить оплату устройством через NFC. Но большинство модулей на данный момент не имеют смысла, так как многие функции есть в Android 9 (Энергосбережение, DoH), либо можно настроить с помощью обычного root. Этот модуль слишком мощный и этим он опасен. Если вы очень уверенный пользователь и 100% понимаете что и куда вы устанавливаете, то можно использовать и этот модуль, особенно если выбора нет(например, если у вас закрытый system на запись и вы хотите использовать AdAway). В любом случае, лучше устанавливать Magisk в режиме core-only, чтобы подменять только system и не вклиниваться в процессы.
Если вам нужен полный рут только для того, чтобы менять hosts, и на вашем устройстве не поддерживается full root с AddonSU, то в некоторых редких случаях(устройства с A/B на LOS 15.1) можно всё-таки через TWRP поменять файл hosts и без установки Magisk. Надо читать про каждое отдельное устройство.
Вот пояснение почему некоторые в команде LOS не советуют использовать Magisk и объясняют почему это может быть опасно:[83].
Отдельно надо упомянуть:
a) Нельзя устанавливать одновременно 2 addon-а с рут. Либо «родной» addonSU, либо Magisk, либо какой-то ещё.
б) Не пользоваться SuperSU(ранее был популярен), так как на данный момент его разрабатывает китайская коммерческая компания(меня крайне настораживает и слово китайская и слово коммерческая).
в) Чтобы установить другой рут, надо сначала удалить предыдущий. Делается также как и устанавливается — по средством adb sideload через специальный zip архив.
В итоге я остановилась на addonSU, так как бесконтактной оплатой не пользуюсь, подписки на Netflix или Ivi не имею, на моём устройстве есть доступ к system на изменение и я могу использовать Adaway без Magisk.
В LOS в настройках лучше будет, чтобы у вас стоял root только для приложений(Apps only) без root для ADB. Дело в том, что если вы подключите своё устройство к какому-нибудь компьютеру, то у вас на устройстве всплывёт окно на авторизацию для доступа определённого компьютера к ADB. И если вы дадите доступ этому компьютеру и если ещё хуже поставите галочку «Доверять всегда», то через компьютер можно будет выудить много информации или даже установить какие-то программы. Но если же будет ещё и рут для ADB, то в таком случае вообще можно внедрить вирусы глубоко и сделать их скрытыми. Да, вам самим в некоторых случаях может понадобиться рут для ADB, но вы можете для таких случаев его временно включать, а потом отключать при ненадобности.
Недавно мне принесли устройство для того, чтобы я поставила более безопасную прошивку. На это устройство не было официальной версии LOS, так что я поискала на xda-developers и нашла там неофициальную, но свежую версию LOS. Количество пользователей вроде большое, никто ни на что не жалуется. На это устройство обычный AddonSU работал без полного рут. Там же была ссылка на переделанный модуль Magisk. Я всё это установила и начала наблюдать. В итоге я заметила, что процесс -11 Linux kernel пытается связаться с каким-то IP, но запросы успешно были заблокированы AFWall+. Я не стала паниковать, так как через -11 Linux kernel проходят многие запросы, например DNS или NTP(синхронизация времени). Меня смутило, что порт был «0». Я начала искать кому принадлежит этот IP, и оказалось, что этот IP не принадлежит никакой компании, а назначен обычному провайдеру интернета и соответственно какому-то частному пользователю. Никакой информации в интернете об этом IP адресе и сервисов на этом адресе — нет. Вывод: кто-то оставил закладку!!! причём непонятно, в неофициальной прошивке LOS или в неофициальной версии Magisk. Пришлось менять прошивку. Так что будьте аккуратней при установке из непроверяемых источников.
Крайне не советую использовать закрытые(проприетарные) программы, требующие рут. Я устанавливаю программы использующие рут ТОЛЬКО из F-Droid и только популярные. Даже если это какое-то официальное приложение(например банковское приложение), которое требует себе рут, если обнаруживает что у вас устройство рутировано, то всё равно лучше для таких целей заведите отдельное устройство или пользуйтесь веб версией.
Если же вы всё-таки решились на Magisk(или из-за обстоятельств), то будьте очень аккуратны с модулями Magisk. Опять-таки лучше устанавливать официальный Magisk и только популярные open source модули.
Bootloader(Загрузчик)
Разблокировка загрузчика(unlock bootloader) позволяет устанавливать кастомные прошивки(Custom ROM), такие как LOS. При разблокировке загрузчика на некоторых устройствах вы теряете гарантию, так как в некоторые телефоны встроены специальные чипы(например Samsung Knox), которые при разблокировке загрузчика навсегда запоминают, что загрузчик был разблокирован. Даже если вы потом установите стоковую прошивку и заблокируете загрузчик, то всё равно в некоторых случаях нельзя будет скрыть, что загрузчик был когда-то разблокирован.
К сожалению, при установке LOS в большинстве случаев нельзя(технически можно, но устройство работать не будет) обратно заблокировать загрузчик(lock bootloader), кроме нескольких устройств от Google модельного ряда Pixel.
Чем же плох разблокированный загрузчик? Тем, что если злоумышленники украдут ваше устройство, то у них будет возможность установить какие-то дополнения в ваше устройство. Но не смогут получить доступ к текущим данным, если у вас включено шифрование. И если потом с установленными вирусами вам вернут/подкинут устройство, и вы его включите и разблокируете, то ваши данные дешифрируются и установленный вирус может сразу начать пересылать данные злоумышленникам. Выход из этой ситуации есть — если ваше устройство находилось в руках нацеленных на вас злоумышленников(например на границе некоторых стран) более 20 минут, то вам придётся сносить прошивку и заново ставить начисто, не включая телефон(ну или достать СИМ карту, отключить Wi-Fi, скачать свои последние данные и только потом переустанавливать прошивку). Вообще, неизвестно насколько подкованы эти самые злоумышленники, возможно у них есть знания как внедрять вирусы даже при заблокированном загрузчике. В любом случае, если есть подозрения, что устройство попадало в руки злоумышленников даже при заблокированном загрузчике — я бы советовала устанавливать прошивку заново. Особенно на границе(например, китайской), так как они устанавливают следящие приложения и даже не стесняются этого.
Но не всё так плохо. Как вы уже поняли из описания, на вас должны быть нацелены и после того как вам отдадут устройство вы должны будете разблокировать его и войти в интернет и только тогда данные могут «уйти на сторону».
Внимание: не пытайтесь заблокировать загрузчик на прошивке LOS, если вы на 100 процентов не уверены в том, что на вашем устройстве это поддерживается.(поддерживается только некоторым моделями Nexus и Pixel)
F-droid — это программа каталог(маркет) приложений для Android со своим сервером(репозиторием). То есть проект F-droid состоит из двух частей
1) Приложение
2) Сервер(репозиторий), из которого это приложение может скачивать другие приложения.
И приложение и сервер — с открытыми исходниками, то есть open source. Это значит, что вы можете посмотреть весь программный код, при должных навыках из этих исходников сделать своё такое же приложение или свой сервер. Или даже что-то то добавить/убрать из функциональности приложения/сервера.
Первый выпуск проекта состоялся 29 сентября 2010, то есть это достаточно немолодой зарекомендовавший себя проект, всего на два года младше самого Android.
Через их репозиторий(сервер) распространяется только бесплатные open source приложения без треккеров отслеживателей, без рекламы(кроме редких исключений и вас об этом предупредят). Код этих приложений вы можете сами посмотреть и убедится, что там нет встроенной гадости.
Числа пользователей f-droid никто не знает, так как f-droid намеренно не собирает статистику, даже отказались от безобидного подсчёта общего количества скачиваний приложений. Но в последнее время в связи с общемировым трендом на приватность данный каталог приложений ускоренно набирает обороты, если можно судить по количеству приложений в самом репозитории, по количеству сообщений на специализированных форумах.
В официальном репозитории f-droid содержится только свободное программное обеспечение, которое командой F-Droid проверяется специальными инструментами и вручную на наличие закрытых «кусков» кода, на наличие треккеров-отслеживателей и «спорных» функций. Если находятся в приложении элементы отслеживания, которые точно не нужны программе, то тогда такая программа просто не пропускается. Если же какие-то спорные функции обоснованы, но всё равно опасны в части приватности — то это отдельно описывается и выносится в так называемые «Antifeatures»(сомнительный функционал/антифункции)[85]. Давайте посмотрим на каждое предупреждение:
Ads (This app contains advertising/Это приложение содержит рекламу) — наличие рекламы. Это означает, что в данном приложении есть реклама. Для показа таргетированный рекламы приложению необходимо собирать Ваши данные через встроенные треккеры отслеживатели, поэтому приложения и с рекламой и с треккерами отслеживателями НЕ ПРОПУСКАЮТСЯ в f-droid. В f-droid могут пропускаться приложения с нетаргетированной рекламой. То есть только с той рекламой, которая показывается не на основе ваших предпочтений и данных, а просто одинаковая для всех.
Tracking (This app tracks and reports your activity/Это приложение отслеживает и сообщает о вашей деятельности) — наличие треккеров-отслеживателей. Если приложение «в тихую» отправляет какие-нибудь данные на свои сервера, то такое приложение будет с ярлыком «Tracking», если же по умолчанию отслеживание отключено, либо приложение вас в явном виде спрашивает можно ли отправлять данные на свои сервера, то тогда такого ярлыка не будет. Но если даже приложение спрашивает ваше разрешение, но при этом собирает совершенно избыточные данные, или содержит «закрытые» треккеры типа Google analytics, то такие приложения в принципе НЕ ПРОПУСКАЮТСЯ в f-droid. Для нас это значит, что наличие ярлыка «Tracking» не является чем-то очень опасным, так как треккинг либо отключен по умолчанию, либо мы можем его отключить(но не забывайте это делать).
Вообще, под трекингом здесь понимается общий сбор статистики и отчёты о падении приложения. Как уже говорилось, если в приложении есть явно излишний сбор данных, то такое приложение вовсе не пустят в репозиторий f-droid.
NonFreeNet (This app promotes non-free network services/Это приложение популяризует несвободные сетевые сервисы) — это означает, что приложение зависит от «закрытых» серверов. Например, есть приложение Telegram в f-droid, оно с открытыми исходными кодами. Но оно работает только через их сервер, и их сервер нельзя заменить, так как исходные коды сервера команда telegram не выкладывала. То есть используя Telegram вы обязаны пользоваться только их серверами. Данный ярлык предупреждает, что вы под риском. Для примера: есть в f-droid другой мессенджер Conversations. Он хоть и предлагает создать аккаунт на их сервере, но тут же вы при запуске можете не создавать аккаунт, а ввести данные уже существующего аккаунта на другом сервере. И другим сервером может выступать ваш собственный XMPP сервер. Поэтому у Conversations ярлыка «NonFreeNet» нет, чем не может похвастаться Telegram(и Matrix Riot тоже, кстати). Вообще, наличие ярлыка «NonFreeNet» не означает автоматом, что сервер будет с кем-то делится вашими данными, но в век безудержной торговли информацией у владельца сервера есть большие соблазны продать информацию о вас. Также отсутствие ярлыка «NonFreeNet» не означает, что проектом f-droid была досконально проверена реализация сервера. Например, в части реализации своего сервера XMPP для Conversation делалась проверка на то, что существуют возможность сделать свой сервер из исходников(то есть существует open source реализация сервера), но не проверялось на безопасность(например, в части возможности взлома сервера негодяями). Выбор безопасного стороннего сервера(или создание своего) лежит на ваших плечах.
Внимательно относитесь к приложениям с этим ярлыком(NonFreeNet). Если есть возможность — то избегайте приложений с таким ярлыком. Понятно, что вы никогда не найдёте приложения для Facebook без этого ярлыка. В таких случаях лучше вообще отказаться от использования Facebook, если вы на это готовы.
NonFreeAdd (This app promotes non-free addons/Это приложение поощряет дополнения с закрытым исходным кодом) — предупреждение, что в приложении можно скачать несвободные дополнения(аддоны, расширения и так далее). Например, такие приложения как OSMand, Fennec f-droid. Для нас это значит, что надо крайне внимательно смотреть, какие расширения мы ставим в приложении. Это не значит, что все дополнения/расширения в Fennec нарушают вашу приватность(некоторые наоборот защищают), но надо быть внимательным.
NonFreeDep (This app depends on other non-free apps/Это приложение зависит от других несвободных приложений) — этот ярлык означает, что приложение полагается на какие-то другие компоненты/приложения, которые не являются свободными. Например, есть приложение «Open In WhatsApp», которое позволяет вам писать кому-нибудь в WhatsApp, не давая доступ к адресной книге самому WhatsApp-у. Понятное дело, что это приложение предназначено работать в связке с проприетарным(закрытым) приложением WhatsApp. Таким ярлыком вас просто очередной раз об этом предупреждают. Хотя само приложение «Open In WhatsApp» позволяет вам хоть как-то ограничить аппетиты «WhatsApp», если вы не можете от него отказаться.
UpstreamNonFree (The upstream source code is not entirely Free/Оригинальный исходный код не является полностью свободным) — это означает, что приложение в f-droid было сделано путём переработки обычного приложения и удаления из него проприетарных(закрытых) компонентов. Это предупреждение нужно по причине того, чтобы вы понимали, что разработчик оригинального приложения не вполне привержен идеологии open source и может добавить ещё каких-то проприетарных компонентов/зависимостей в оригинальное приложение. В итоге «вычищать» приложения для заливки в f-droid станет всё сложнее и сложнее со временем, и энтузиасты откажутся это делать. Но это косвенный показатель, не гарантирующий, что именно так и произойдет. Внимание: это не означает, что приложение в f-droid имеет закрытые компоненты, а означает, что приложение в f-droid было создано из приложения с закрытыми компонентами, которые были удалены/заменены.
NonFreeAssets (This app contains non-free assets/Это приложение содержит несвободные компоненты) — наличие в приложении каких-то ресурсов, под закрытой лицензией. В большинстве случаев под этими ресурсами понимается такие вещи как картинки, звуки, музыка и так далее. Просто если вы скачаете приложение и «расковыряете» его и достанете, например, ярлык приложения, вы не сможете использовать его в своих проектах по закону. Вот и всё. Ничего страшного.
KnownVuln — ярлык означающий, что в приложении точно существуют уязвимости безопасности. Обычно такие приложения удаляются из f-droid, после того как была выявлена уязвимость, так что вы вряд ли встретите такие приложения. Но отсутствие такого ярлыка не означает, что уязвимостей точно нет, это означает, что нет известных уязвимостей.
DisabledAlgorithm — ярлык означающий, что в приложении точно существует слабый алгоритм шифрования. Это практически то же самое что и с «KnownVuln».
NoSourceSince (The source code is no longer available, no updates possible/Исходный код недоступен, обновления невозможны)— исходные коды перестали быть доступны. Приложение более не будет обновляться, пока исходные коды вновь не станут доступными.
Мне кажется, что это очень взвешенная политика. То что содержит явные гадости — не будут пропущены в f-droid. То, что частично полагается на закрытые компоненты, будет иметь предупреждающие ярлыки.
Так как и приложение f-droid и сервер f-droid являются open-source, то можно использовать другие и приложение и сервер. Например, есть другие клиенты(приложения) для репозитория f-droid — M-Droid [87], G-Droid [89]. Также в самом f-droid вы можете подключить свой репозиторий, или чужие репозитории. Изначально включен по умолчанию 1 репозиторий: F-Droid. Давайте пройдёмся по наиболее известным репозиторям.
- F-Droid. Официальный репозиторий со стабильными приложениями. Включен по умолчанию. Как уже говорилось, сюда попадают приложения, пройденные через анализ на наличие гадостей. Все приложения собираются из исходных текстов самим проектом F-droid и любой программист может проверить, что проект F-Droid собирает из тех же исходников с помощью инструмента «Детерминированная компиляция»(Reproducible builds) [91]. Если кто-то хоть раз поймает проект F-Droid в подмене исходных кодов, это будет сильнейший удар по репутации проекта. Таким образом обеспечивается доверие к проекту.
- F-Droid Archive. Тоже официальный репозиторий f-droid с архивными приложениями. Заранее вшит в приложение f-droid, но выключен. Также там помимо архивных приложений встречаются непроверенные на стабильность новые версии приложений. К сожалению, если включить этот репозиторий, то потом при поиске каких-либо приложений выдаются версии без пометок из какого именно репозитория какая версия приложения. Я так пару раз спотыкалась, включала этот архивный репозиторий, мне выдавался список приложений, я скачивала последнюю версию, а она оказывалась нерабочей на моём устройстве и я не могла понять в чем дело. Оказалось, что это было непротестированная версия приложения из архивного репозитория.
- Guardian project Official Releases. Заранее вшит в приложение f-droid, но выключен. Это репозиторий от проекта Guardian, которые делают Orbot и делают Tor browser для Android. Заранее предустановлен этот репозиторий, потому что Guardian project считается надёжной и доверенной организацией, борящейся за приватность. Но репозиторий выключен по умолчанию.
- Guardian project Archive — Заранее вшит в приложение f-droid, но выключен. Это репозиторий от проекта Guardian с их архивными приложениями. Также как и F-droid Archive содержит не только архивные, но и неоттестированные приложения. Лучше не включать этот репозиторий, если не имеете цель установить конкретную версию приложения(архивную или бета версию), которая находится в этом репозитории.
- Bromite репозиторий [93] — браузер Bromite с открытыми исходными кодами [95]. Это переработанный браузер Chrome с попыткой вырезать все треккеры от Google в самом приложении и с блокировщиком рекламы и треккеров отслеживателей на посещаемых страницах. Впрочем, блокировщик рекламы полагается на заранее заданный список и он ненастраеваемый. Также из этого репозитория возможна замена стандартного WebView AOSP Chromium на WebView Bromite с помощью определённых манипуляций.[97]
- MicroG — репозиторий [99], описание [101]. Содержит приложения из проекта MicroG для эмуляции Google компонентов для push-уведомлений, навигации по Wi-Fi, сотовым вышкам и так далее. Об этом проекте я напишу отдельно.
- IzzyOnDroid — репозиторий[103], описание[105] — репозиторий open source приложений(с некоторыми несвободными компонентами). Сюда попадают приложения, у которых открытый исходный код(преимущественно на Github), и для которых разработчики приложений собрали файл(в виде .apk) из исходников сами. ВНИМАНИЕ: В этот репозиторий пропускаются приложения с треккерами, приложения полагающиеся на проприетарные компоненты(такие как Google Play). Также, как указано выше, сами файлы приложений apk не собираются автоматически(в отличие от официального репозитория f-droid), что позволяет разработчикам подкладывать приложения, собранные не из тех же исходников и с «закладками». Владелец репозитория отдельно проверяет приложения на вирусы, смотрит на отдельные функции и может даже проверять на то, что приложение собрано из тех же исходников, что представлены. Но владелец репозитория не гарантирует 100-процентную тщательность проверки. Соответственно, я не рекомендовала бы пользоваться данным репозиторием. На крайний случай, если всё же там есть какое-то особое приложение, то можно попробовать установить его, запретив по полной собирать данные, попользоваться и сразу удалить после использования. Крайне внимательно нужно относится к приложениям с доступом в интернет.
Или можно просто использовать этот репозиторий для поиска интересных приложений и дальнейшего перехода на страницу с исходниками для самостоятельной сборки.
Есть и другие репозитории, которые вы можете найти в интернете, например [107], [109], [111], но пользоваться этими репозиториями надо аккуратно.
Официальный репозиторий F-Droid де факто становится основным источником open-source приложений на платформу Android для большинства заинтересованных пользователей, в том числе из-за поддержки детерминированной компиляции (Reproducible builds). Пользователи очень сильно просят разработчиков open-source приложений подготовить свои исходные коды так, чтобы они могли быть использованы f-droid(да, некоторые приложения тяжело перевести в определённый формат, годный для f-droid). Это можно наблюдать в issues некоторых приложений на Github-e, Gitlab-е и других Git серверах с исходными кодами.
Большой плюс F-Droid, что их инфраструктура вся open-source и в любой момент любая организация сможет подхватить это дело.
Дополнительная настройка
В Settings(Настройки):
-Manage installes apps(Управление установленными приложениями)
-Repositories(Репозитории) — включение/выключение известных репозиториев, добавление новых.
-Automaticaly fetch updates(Получать обновления автоматически) — позволяет скачивать обновление автоматически. Когда устанавливать обновление — решать вам
-Include incompatible versions(Включить несовместимые версии) — версии для старых устройств и для других архитектур(у вас может процессор x86, на который не все приложения работают).
-Include anti-feature apps(Включить приложения с сомнительным функционалом) — не знаю на что влияет эта настройка, у меня и так показываются приложения с antifeatures. Возможно такой настройкой включается отображение приложения со слишком сомнительным функционалом. Но точно я не знаю. Кто знает, что именно делает эта настройка — просьба написать в комментариях.
-Use Tor(Использовать Tor) — позволяет работать через Tor как через прокси(proxy) на адрес localhost(127.0.0.1) c портом 9050, а также перенаправляет на onion сервера. Для работы необходимо чтобы, был запущен Orbot. Это полезная функция, которая позволяет работать через Tor сеть, не включая режим режима псевдо-VPN(и позволяет пользоваться настоящим VPN) в Orbot, но об этом я напишу отдельно.
-Enable HTTP Proxy(Включить HTTP-прокси) — Работа через HTTP прокси, с указанием Proxy Host(Хост прокси) и Proxy Port(Порт прокси).
-Prompt to send crash reports(Запрос на отправку отчётов о сбоях) — можно ли просить вас отправлять отчёты о сбоях приложении. При включенной опции перед отправкой данных о сбое приложения вас должны спросить о том, можно ли отправить такую информацию. Выбирайте на ваше усмотрение.
-Prevent Screenshots (Запретить скриншоты) — запрещает другим приложением(и даже для встроенной в LOS стандартной функции скриншотов) делать скриншоты, когда вы в приложении F-Droid. Вообще, у приложений есть масса других способов узнать список установленных приложений, так что это может быть только дополнительным способом в купе с другими средствами. Но большого смысла в этом я в этом пока не вижу, так как Android в последних версиях запрещает делать скриншоты обычным приложениям не запущенным в данный момент.
-Hide with search button(Скрыть с помощью кнопки поиска) и Panic button settings(Настройки тревожной кнопки) — настройки, которые позволяют скрывать приложение F-Droid или удалять репозитории по нажатию определённой кнопки, а также удалять определённые приложения. Мне не совсем ясен смысл этих пунктов. Если кто-то получит доступ к разблокированному смартфону, то у этого негодяя и так будет возможность выудить очень много информации, что делает бесполезным данный пункт. Может быть только за исключением случаев, если у вас свой репозиторий и нет шифрования на устройстве.
-Keep cached apps(Хранить кэшированные приложения) — возможность хранить скачанные версии приложений в памяти на определённый срок. Я оставила у себя 1 месяц. Это на тот случай, если вы обновите какое-нибудь приложение и новая версия будет работать нестабильно. Особенно это будет полезно, если это какое-нибудь приложение для интернета(например VPN) и новая версия перестанет работать. Вы сможете установить предыдущую версию. К сожалению в последних версиях Android стоит запрет на downgrade(понижение версии) приложений. Это значит, что вам придётся удалить приложение, и поставить более старую версию с потерей настроек. Так что придётся либо экспортировать настройки из приложения(если такая функция есть), удалять приложение, ставить предыдущую версию и импортировать настройки. Либо изощряться с помощью других способов(копирование папки с настройками через специальный файл менеджер с рутом или через специальное приложение oandbackup
(dk.jens.backup) с рутом).
Сохраняются файлы скачанных приложений .apk в папку data/data/org.fdroid.fdroid/files или в mnt/sdcard/Android/data/org.fdroid.fdroid/cache/apks
Далее включаем Expert mode(Экспертный режим).
-Unstable updates(Нестабильные обновления) — показывать и предлагать к установке нестабильные обновления приложений. У меня не включен этот пункт, так как даже при выключенной настройке, иногда попадаются версии немного нестабильные. Хотя были некоторые приложения, которые уже в Google Play были обновлены, но в F-Droid числились как нестабильные. Так что, если есть какое-то приложение, которое должно было обновиться, и там должны появиться нужные вам функции, то можете попробовать включить этот пункт.
-Allow repos to install/uninstall apps(Разрешить репозиториям устанавливать и удалять приложения) — позволяет владельцам репозиториям посылать запрос на удаление/установку программ. Полезно, если вы сделали свой репозиторий для своих друзей и через время оказалось, что какое-то приложение слишком опасное, и вы можете послать запрос на удаление этого приложения всем. Или наоборот, появилось новое интересное приложение, вы посылаете всем своим друзьям(у которых настроен ваш репозиторий) запрос на установку нового приложения. Полезно также, если вы сделали репозиторий для ваших пожилых родителей.
Но пока что нет разграничения на то, какой репозиторий имеет права посылать такие запросы, а какой нет. Либо можно включить эту функцию для всех репозиториев, либо вовсе не включать.
Также в приложении F-Droid есть возможность передавать приложения(только apk, без настроек и внутренних данных) на другие устройства через Wi-Fi, bluetooth или USB флешку через USB-OTG переходник. Полезно, если рядом нет интернета. Делается это не в настройках, а в главном меню через пункт «Nearby(Рядом)»
Дополнительная информация:
Минусы F-Droid:
-Иногда скорость скачивания приложений и обновления списка приложений бывает низкой. Это нормально, так как F-Droid живёт на пожертвования и не имеет возможности делать высокоскоростные сервера и CDN-ы. В настройках основных репозиториев есть список «зеркал» — вспомогательных серверов.
-Иногда приложение глючит, но ничего критичного. Например, приложение пытается несколько раз подряд установить обновление приложения. Но ещё ни разу сам F-Droid мне ничего не поломал.
-Нет рейтинга приложений, немного устаревший интерфейс, неудобный поиск.
-Не видно из какого репозитория представлено то или иное приложение. Если вы включите несколько репозиториев, то непонятно, что является архивной/бета версией, а что стабильной и и из какого репозитория приложение.
-Иногда, когда выходит обновление для какого-нибудь приложения, это обновление видно при поиске этого приложения в F-Droid, но почему-то F-Droid не предлагает обновиться(вроде исправили, последнее время не встречала таких случаев).
Плюсы:
-В последних версиях Android разрешение на установку из сторонних источников(не только из Google Play) выдаётся для каждого отдельного приложения. Можно дать разрешение на установку только для F-Droid, что уменьшает вероятность установки из других источников. Но это плюс новых версий Android, а не F-Droid.
-F-Droid показывает все разрешения, которые требует приложение, в том числе и большинство «нормальных». Google считает, что некоторые разрешения(например, доступ в интернет) настолько незначительные, что можно о них и не говорить. Google Play не показывает эти разрешения, считая что вам не надо знать, что приложение хочет иметь доступ в интернет!!!
-В F-Droid на странице приложения даются ссылки на исходники(source code) и сайт приложения. Проще искать обсуждения ошибок(issues), рекомендации и так далее.
Насчёт полноты и качества приложений в F-Droid.
Количество и качество приложений постепенно, но неумолимо растёт. Прочитайте статью(если ещё не прочитали)[113]. Но помимо этой статьи я хотела бы обратить внимание на такие приложения как:
- Anysoftkeyboard(почему то нельзя скачать с сайта, но есть в приложении F-Droid)+русский язык к этой клавиатуре[115]. Если у вас не LOS, то это точно приложением для вас. Главное — клавиатура не просит доступа в интернет(в отличие от клавиатуры Google или SwiftKey).
- Файловые менеджеры Amaze[117], File Manager [119]. Только аккуратно, эти файл менеджеры могут работать с рутом. Вы можете случайно что-то удалить в системе. Просто будьте аккуратней, если вы выдали им права на рут.
- Просмотр PDF MuPDF viewer [121], или его мини версия MuPDF mini, [123]
- Создание QR кодов, и других штрихкодов — Barcodegen [125]. Из протестированных мной мне понравился больше всего.
- Считывание QR кодов Barcode Scanner [127]. Только я ему на всякий случай запретила доступ в интернет.
- Считывание QR кодов — SecScanQR [129]
- Net Monitor [131] — программа, в который вы можете видеть какие приложения с какими IP соединяются. Это программа интересна тем, что может видеть, что некоторые соединения идут по незашифрованному HTTP(а не HTTPS) и в общем для мониторинга. Но для меня оно еще интересно тем, что его функционал нельзя ограничить! Это подтверждение проблемы открытости proc/net.!
- Медиапроигрыватель VLC [133] — всем известный проигрыватель видео, теперь и на F-Droid. Последняя версия проиграла все файлы, которые я ему подкидывала. Может быть какие-то особые кодеки этот проигрыватель и не распознает.
- Эмулятор J2ME — J2ME Loader [135] — пожилые могут тряхнуть стариной и запустить приложения/игры, в которые они играли на своих старых Nokia и Siemens. А молодняк может погрузится в этот мир с археологическими целями, чтобы изучить как мы — динозавры, жили.
- Оффлайн календарь — Simple Calendar — [137]. Android устроен так, что для календаря обязательно требуется какой-нибудь аккаунт для того, чтобы можно было пользоваться календарём. Если вы не хотите(или пока что у вас нет никакого сервиса поддерживающего календари), то можете установить это приложение и у вас будет календарь на устройстве.
Вообще, в F-Droid есть целый набор приложений от simplemobiletools. И календарь и заметки и контакты и фонарик и так далее. Эти приложения отличаются тем, что просят разрешений по минимуму. Каждое приложение выполняет только свою функцию.
Есть ещё куча других интересных приложений — эмуляторы игровых приставок, клиенты VPN(OpenVPN, Wireguard и так далее), куча мелких игр(есть Тетрис), заметки, календари, справочники, программа для выкачивания Wikipedia для просмотра оффлайн(Kiwix), периодическая таблица Менделеева, сканирование базовых станций сотовых сетей для дальнейшей помощи геопроектам или на проверку попыток прослушивания вас(Tower collector[139]), приложения для умных часов, сборники мемов, менеджеры паролей, торрент клиенты, i2p клиенты, SIP клиенты, шифрование обычных СМС при передаче — Silence(но работает только если у обоих собеседников установлено приложение), различные оболочки(лаунчеры/launcher), списки задач и многое другое. Качество таких приложений растёт. В большинстве случаев функциональность приложений не хуже чем у аналогов в Google Play(а иногда даже лучше). В Google Play почти не появляется принципиально новых приложений, появляются в основном аналоги существующих. Поэтому не надо обращать внимание что в репозитории F-Droid всего 2000 приложений — их с лихвой хватает.
Если вы можете читать на английском — то также есть отдельный форум [141] с вопросами/ответами, подборками и новостями по приложениям в F-Droid.
В Android есть возможность использовать VPN. Для этого используется специально выделенный слот VPN, который может быть задействован различными программами. Много хороших программ для реализации своих функций используют слот VPN и создают псевдо-VPN, например, NetGuard(файрволл + условный блокировщик рекламы и треккеров), Blokada, DNS66(блокировщики рекламы и треккеров). Реализуя свою функцию, к сожалению, данные программы «забивают» слот VPN, но при этом реально не создают защищённого подключения к какому-либо серверу с VPN. Используя эти неплохие программы вы лишаетесь возможности использовать реальный VPN. Эти программы неплохи, если у вас нет рута(права суперпользователя) и вы не хотите использовать VPN, но хотите дополнительно ограничить некоторые программы + «порезать» рекламу и треккеры.
Программы в рабочем профиле и устройства подключенные к вашему смартфону через раздачу интернета(tethering) — НЕ ПРОХОДЯТ через VPN, а проходят напрямую.(хотя с помощью определённых настроек Orbot и iptables(через скрипты в AFWall+) можно добиться чтобы всё проходило через VPN).
Лично я использую программы, требующие рут, но при этом оставляющие возможность задействовать слот VPN для создания реального VPN.
Google считает, что есть так называемые «нормальные» разрешения. Это те разрешения, которые нельзя ограничить стандартными способами, и о которых вас не предупредят ни в описании Google Play, ни при установке приложения. Одним из таких разрешений является доступ в Интернет!!!.. Вы можете даже не знать, что приложение имеет доступ в интернет. Лично я пытаюсь жёстко ограничивать доступ в интернет всем приложениям, которым это не надо. Я стараюсь в принципе не давать доступ в интернет приложениям, которые имеют доступ к моим файлам. Например, приложениям для фотографирования, просмотрщикам PDF и так далее. И наоборот, те приложения, которые имеют доступ в интернет(браузеры) не должны иметь доступ к Хранилищу(Storage), контактам и так далее. Для ограничения интернета приложениям я использую два инструмента:
Встроенный Firewall
Встроенный в Android — это изначально встроенный во всех последних версиях Android Firewall. Но Android ограничивает возможность пользоваться этими настройками! В LOS эта возможность присутствует(не убрана). В «Settings/Настройки»- «Apps & notifications/Приложения и уведомления» выбираете приложение, там настройка «Data usage/Передача данных» и тут в LOS 5 настроек:
- Wi-Fi data/данные Wi-Fi — выключить приложению интернет по Wi-Fi
- Cellular data/Мобильные данные — выключить приложению интернет по сотовой сети
- Background data/Фоновый режим — выключить приложению доступ в интернет, когда приложение в свёрнутом состоянии(в фоновом режиме).
- VPN data — ограничивает возможность использовать сеть через VPN.
- Unrestricted data usage/Неограниченная передача данных — об этом я писала ранее. Ограничивает возможность доступа в интернет в режиме «экономии трафика»
Я стараюсь ограничивать интернет по полному, начиная со встроенного файрволла. В первую очередь при первом запуске устройства я ограничиваю доступ клавиатуре, встроенному браузеру. Но не сильно доверяю этим настройкам, так как они не могут ограничивать процессы/приложения из разряда «Core/Ядро», а также я читала, что некоторые приложения умеют обходить ограничения на запрет «Background data/Фоновый режим». Я не знаю какие «дырки» неспециально или умышленно Google оставили в своей системе.
Для тех у кого не LOS эти настройки могут отличаться или их может не быть совсем. Иногда требуется установить дополнительное приложение, которое даст доступ в скрытые настройки. Есть приложения, которые организуют интерфейс для этих настроек(внутренних). Но я такими приложениями не пользуюсь — просто знайте, что если у вас не LOS, то вы всё равно можете попытаться ограничить доступ в интернет системными способами без рута и без приложений использующих слот VPN(с использованием слота VPN — NetGuard).
AFWall+
AFWall+ — Файрволл/Брандмауэр на основе инструмента iptables[143]. Это приложение требует рут(root), но не обязательно с полным доступом на изменение system, так что заработает на любом устройстве с правами суперпользователя. Плюс данного приложения, что оно не задействует слот VPN.
Это очень полезное приложение, которое позволяет запрещать доступ к определённым видам доступа к сети для каждого приложения по-отдельности.
- «Wi-Fi control/Управление Wi-Fi» — доступ к интернету и сети через Wi-Fi.
- «LAN control/Управление сетью» — доступ к LAN и localhost. Данное ограничение входит в «Wi-Fi control/Управление Wi-Fi», если не включить его отдельно в настройках.
- «Mobile date/Мобильные данные» — доступ к интернету через мобильную связь(2G,3G,EDGE,LTE,4G).
- «Roaming control/управление роумингом» — доступ к интернету через мобильную связь в роуминге. Данное ограничение входит в «Mobile date/Мобильные данные», если не включить его отдельно в настройках.
- «VPN control/Управление VPN» — доступ к интернету через VPN, если VPN подключен. Возможность управлять данным ограничением включается, только если это указать в настройках. Иначе программа будет ориентироваться на то, через что подключен сам VPN.
- «Tor control/Управление Tor» — доступ к сети Tor, а точнее насильное переключение на сеть Tor.(внимание — это функционал не азапрет или разрешения пользоваться сетью Tor, а именно попытка переключить на сеть Tor)
На главном экране есть разделение на
«All/Все» — список всех приложений.
«Core/Ядро» — отдельно список приложений, относящихся к ядру Linux.
«System/Система» — отдельно список системных приложений.
«Пользователь/User» — отдельно список установленных вами приложений.
Давайте пройдёмся по настройкам
Preferences/Настройки
-UI Preferences/Интерфейс пользователя
--Enable notifictations/Включить уведомления — показывать предупреждение о том, что установлено новое приложение и ему необходимо дать/забрать права на интернет. Полезно, если у вас будет стратегия «Block selected(Блокировать выбранное)»(об этом позже), чтобы новое приложение не успело что-то отправить в интернет, до тех пор пока вы не отключили ему доступ.
--Rules progress/Ход применения правил — я включаю данную настройку, чтобы видеть что правила применяются. В редких случаях(в последних версиях всё реже) применение правил может «застрять». В таком случае я выхожу из приложения и заново запускаю «Применить правила».
--Show filters/Показать фильтры — делать для удобства в интерфейсе фильтры для просмотра типа «все/ядро/система/пользователь».
--Show UID for apps/Показывать UID для приложений — отображать код установленного приложения UID. Я использую эту функцию для наглядности. Советую включить.
--Confirm AFWall+ disable/Подтверждать отключение AFWall+ — я включаю данную функцию, чтобы случайно не отключить файрволл и ни на долю секунды не дать возможность какому-нибудь из приложений «проскочить» в интернет.
-Rules/Conectivity(Правила/соединение)
Тут я включаю дополнительно
«LAN control/Управление сетью», «VPN control/Управление VPN», «Tor control/Управление Tor». Roaming control я не включаю, так как насколько я знаю российские ОПСОС-ы действуют хитро, они иногда каким-то образом настраивают взаимодействие сетей так, что телефон не понимает, что вы роуминге. Поэтому я не бы не полагалась сильно на эту функцию.
Далее представлены настройки для продвинутых пользователей, но нам необходимо будет ими воспользоваться!
-Log/Журнал
--Turn on loh service/Включить службу журнала — я включаю данную службу, чтобы потом можно было посмотреть какое из приложений куда «ломится». Очень полезная функция. С помощью данной функции я поняла, что даже в LOS даже при выключенной синхронизации времени и выключенной отсылки статистики всё равно система пытается добраться до каких-то NTP серверов, но не только до них(например на 1.1.1.1, на какие то другие ip, которые даже не «гугляться». К сожалению в бесплатном функционале приложения(а есть и платная версия AFWall+) лог не очень удобен и не очень информативен.
--Enable show toast/Включить уведомления — показывать уведомления при попытке какого-то приложения получить доступ, в том случае, когда доступ блокируется AFWall-ом. Но это не уведомление в верхней шторке, а уведомления небольшими всплывающими надписями(toasts). Полезно при настройке доступов. Иногда какой-нибудь нестандартный функционал(типа Tethering/раздача интернета через Wi-Fi) не работает и вы не можете понять почему именно. В таком случае может всплыть сообщение какой именно процесс заблокирован и вы сможете понять, что надо включить, чтобы функционал заработал. Но не всегда данная надпись отображается, хотя дело может быть именно в том что в AFWall+ что-то ограничено. И наоборот, может быть что отображается запрет на один процесс, а надо дать доступ другому(такое редко случается). Но это всё касается не обычных приложений, а каких-то более системных функций.
-Security/Безопасность
Данное меню предназначено для установления пароля и графического ключа на доступ на открытие приложения. Я этим функционалом не пользуюсь, потому что не даю никому устройство в руки и моё устройство зашифровано. Но если же вы даёте кому-то в руки устройство, то можете поставить защиту на это приложение. Я считаю, что для таких целей более эффективно поставить отдельную защиту от самого LOS на все приложения, имеющие рут(и на другие приложения с чувствительными данными), чем только на одно приложение.(не пользуюсь этой встроенной в LOS функцией и к сожалению не могу подсказать как именно).
-Experimental/Экспериментальные
--Fix startup data leak/Исправить утечку данных при запуске — ВАЖНО! Дело в том, что AFWall имеет недостаток: эта программа запускается не самой первой при загрузке устройства, и ограничения, заданные в программе, пропадают при перезагрузке устройства. В те несколько секунд, когда устройство уже загружено, но ещё не запустился AFWall+ устройство успевает подключиться к интернету, и некоторые программы успевают получить доступ в интернет на 1-2 секунды. Для устранения этого недостатка есть эта предлагаемая функция. Надо сначала выбрать в «Startup directory path for script/Путь к папке загрузки для скриптов» экспериментально подходящий вариант, и тогда включить «Fix startup data leak/Исправить утечку данных при запуске». Но скорее всего именно для этой функции потребуется полные права суперпользователя с system r/w(read/write).
Также эту проблему частично можно решить с помощью таких действий:
1) Ограничить доступы тем приложениям, которые никогда не должны иметь доступ в интернет через системный файрволл(выше описано как). Но это не решает проблемы доступа приложений/процессов со статусом «Core/Ядро».
2.1) Выключать Wi-Fi и сотовую сеть до перезагрузки/выключения телефона
2.2) Особо умелые могут сами написать скрипт «невключения» Wi-FI и сотовой связи при включении устройства.
3) Заблокировать запросы к сайтам, на которые пытается «достучаться» ваш телефон через файл hosts(например через программу AdAway). Минус такого способа в том, что через файл hosts блокируются только попытки доступа к сайтам через имя сайта, не не через IP. Например, в первые секунды пролезают запросы к IP типа 1.1.1.1. (DNS Cloudflare).
4) Отключить «Запуск при включении устройства/run at startup» для некоторых приложений в Privacy Guard(в Privacy Guard называется «Start at power up») или AppOpsX.
--Enable inbound connections/Разрешить входящие подключения — если вы хотите иметь доступ из локальной сети к устройству(Samba, sshd, AirDroid и так далее), то необходимо будет включить данный пункт.
Enable multi-user support/Включить многопользовательскую поддержку — данный пункт необходим, если у вас есть несколько пользователей. То есть, если вы сделали несколько пользователей(multiple-users) на вашем устройстве(не путать с рабочим профилем). К сожалению AFWall+ работает с несколькими пользователями только в режиме «Block selected(Блокировать выбранное)»(об этом ниже). А также мне не удалось нормально настроить 2-го пользователя с возможностью пускать трафик у 2-го пользователя через VPN, поэтому я эту функцию(дополнительных пользователей) не смогла протестировать нормально.
Dual apps Support/Поддержка двойных приложений — поддержка разграничения прав для двойных приложений по типу «Рабочий профиль», двойные приложения в прошивке MIUI, Island и другие аналогичные инструменты. У меня включен данный пункт, так как я пользуюсь «Рабочим профилем» для создания отдельного пространства для некоторых приложений. Сразу хочу отметить одну деталь — AFWall+ не видит приложение в рабочем профиле, до тех пор пока такое же приложение не будет установлено в основной профиль(надеюсь разработчик это поправит). Что мне приходится делать: я устанавливаю приложения и в основной профиль и в рабочий, в основном(личном) профиле я всеми средствами блокирую доступы в интернет(через системный файрволл), права на автозапуск и работу в фоне и все остальные права, но даю необходимые права приложению в рабочем профиле на те виды доступа в сеть, которые я хочу дать. Тогда всё работает. Кстати, вы можете таким образом установить 2 одинаковых приложения на одной устройство с разными аккаунтами. Но если вы таким образом хотите обойти правила какого-то сервиса, то не обольщайтесь, эти сервисы смогут понять что оба приложения принадлежат вам через proc/net и через IMEI устройства.
Также есть момент насчёт приложений из рабочего профиля — к сожалению в фильтрах System/Система и User/Пользователь приложения начинают смешиваться и попадать в разные категории. Что-то из рабочего профиля попадает в фильтр «System/Система». Но это влияет только на отображение в AFWall+ и никак не влияет на функциональность. Вы сможете отличить приложения из рабочего профиля по букве «M» после названия приложения или по длинному UID, например [101001] Phone Services(M).
-Profiles/Профили — всё просто, в данном пункте можно настроить несколько профилей(до 4-ёх). Если у вас несколько сценариев использования устройства в части доступа в интернет или внутренней сети — то вы можете настроить несколько профилей и переключать их по 1-ому нажатию. Даже есть виджеты на рабочий стол от AFWall+.
Логика ограничений в данной программе разделяется на 2 способа:
1) Allow selected(Разрешить выбранное) — разрешить только то, что выбрано. Это более «жесткий метод», но я пользуюсь им. Жёсткий он тем, что при установке какого-то приложения надо отдельно давать ему доступ. Но этим мне этот метод и нравится. Сразу хочу оговорится, что на LOS 15.1 лично у меня почему-то этот метод не всегда срабатывал и приходилось давать доступ к некоторым приложениям относящимся к «Core/Ядро» и «System/Система».
2) Block selected(Блокировать выбранное) — как понятно из названия блокирует только выбранное. Старайтесь избегать этого метода, так как лучше действовать по принципу «Запрещено всё, что не разрешено».
Давайте рассмотрим возможный вариант настройки данного приложения. Сразу хочу оговорится, что для разных сценариев использования устройства и для разных версий Android необходимо по разному настраивать данное приложение.
Разберём самый простой вариант, когда у вас нет ни VPN, ни Orbot, встроенных Google приложений, никаких других особых прокси серверов.
В простейшем случае заработает всё очень просто. Выставляете на режим «Allow selected(Разрешить выбранное)» и просто даёте доступ ТОЛЬКО приложениям которые вам необходимы только к Wi-Fi или мобильному интернету.
Иногда это не срабатывает и надо дать ещё доступ к «[-10] (Any app) Same as selecting all apps/(любое приложение) — то же, что и выбор всех приложений ». Хотя и называется «то же, что и выбор всех приложений», но это автоматом не должно дать доступ сразу всем приложениям.
То есть, если вы в режиме «Block selected(Блокировать выбранное)», то галочка на данном пункте должна блокировать доступ всем приложениям, а в «Allow selected(Разрешить выбранное)» у меня(на LOS 16) никак не влияет ни на что. Но, к превеликому сожалению, это может варьироваться от версии к версии Android и других настроек. Проверяйте заранее. И проверяйте при обновлении на новую версию LOS(или Android).
В некоторых случаях необходимо включить «[0] (root) Apps running as root/приложения с root доступом», хотя этот пункт не означает доступ именно для тех приложений, которые вы устанавливаете с правами root.
В некоторых случаях необходимо включить «[-11] (kernel) — Linux kernel/(ядро) — ядро Linux». Но данный пункт надо включать внимательно. У меня при заблокированном данном пункте всё работает, причем в логах видно, что данный процесс постоянно пытается куда-то «достучаться».
Есть некоторые приложения, которые сгруппированы под одним UID, и можно отключить/включить интернет только группой. В основном это группа [1000] Под этой группой понимаются большинство системных приложений Android. У меня эта группа отключена.
Есть ещё некоторые пункты, которые необходимо включать, если вам они необходимы.
- [12] «(tethering) DHCP+DNS services/(раздача) — службы DHCP+DNS» и «[0] (root) Apps running as root/приложения с root доступом» для «Wi-Fi» — для того, чтобы работала раздача интернета устройства через Wi-Fi.
- [10010] «Download manager». Некоторые программы не имеют своего «Менеджера закачек» и отдают на откуп этому приложению. Придётся дать ему доступ в интернет. Только учтите, что если вы заходите на сайт через VPN или Tor, и процессу [10010] Download manager дан доступ к обычному интернету(напрямую через Wi-Fi или мобильную сеть), то Download manager начнёт скачивать через обычную сеть и выдаст ваш IP!!! Это одна из угроз приватности, если вас это интересует — будьте внимательны.
- [1021] «(gps) — GPS/GPS» (система глобального позиционирования) — я не уверена, но скорее всего этот пункт нужен для системы A-GPS. Если у вас очень долго определяются спутники, можете попробовать включить этот пункт.
- [10070] Captive portal login — этот пункт необходимо включить, если вам необходимо попасть на специальную страницу авторизации сети Wi-Fi. Например, где-нибудь в кафе или в мотеле при подключении к Wi-Fi обычно всплывает окно или страница, где вам предложат каким-то образом зарегистрироваться/оплатить/идентифицировать себя. Делается это в том числе с помощью этого инструмента Captive portal. Проблема в том, что чтобы всплыло это окно, устройство «стучиться» на сервера Google(обычно на их сервера). Поэтому, если вам необходимо подключиться к так называемому хот-споту, то придётся включить этот пункт(можно временно).
- некоторым приложениям из-за реализации некоторых API в Android необходимо будет дать доступ к LAN(например, для AppOpsX в режиме совместимости и для некоторого функционала Termux).
- Не пытайтесь насильно переключать приложения в статусе «Core/Ядро» на Tor через AFWall+.
Изощрения начнутся, если вы захотите настроить устройство в связке AFWall+ плюс Orbot плюс дополнительно VPN плюс рабочий профиль.
Я хочу вам предложить свой вариант настройки AFWall+ в связке с Orbot и Рабочим профилем без Google приложений на LOS 16(хотя срабатывало и на LOS 13 и 15.1)
- Выбираю стратегию «Allow selected(Разрешить выбранное)»
- Orbot включен, включен псевдо-VPN в Orbot. В AFWall+ даны доступы для приложения Orbot к LAN, Wi-Fi, мобильной сети, VPN.
- Даны доступы только к VPN обычным приложениям типа браузеры, мессенджеры, F-Droid, [10008] Updater и так далее.
- Только тем приложениям, которые отказываются работать через VPN или Tor(например банковские приложения) дан доступ к Wi-Fi и/или мобильной сети.
- Приложениям в рабочем профиле(с буквой (M) на конце) дан доступ к Wi-Fi и/или мобильной сети, так как В ЛЮБОМ случае все приложения из рабочего профиля не могут задействовать текущий VPN.(без особых ухищрений и скриптов).
- При надобности включаю для [12] «(tethering) DHCP+DNS services/(раздача) — службы DHCP+DNS» для «Wi-Fi» и [10010] «Download manager» или другие какие-то специфические доступы.
И всё, всё работает. 99% трафика в 99%-ах случаев идёт через VPN/Orbot, а без VPN/Orbot идёт только то, что я явно указала. Это мой способ, в части приватности рекомендую вам сделать также, но не могу настаивать. Если в моём способе есть какие-то слабые места — просьба сообщить в комментариях.
Про настройку переключателя — «Tor control/Управление Tor». Эта настройка не ограничивает доступ к Tor, а принуждает приложения использовать сеть Tor, даже если в Orbot не включен псевдо-VPN и даже если в самом приложении нет настройки «Использовать Tor» или возможности задать прокси. Для того, чтобы это сработало надо указать к какой сети может иметь доступ приложение(Wi-Fi или мобильной) и поставить «галочку» в «Tor control/Управление Tor». Тогда приложение насильно будет использовать Tor.
Минус такого способа в том, что происходит «утечка DNS/DNS leak». Сами приложения используют сеть Tor, но по серверу DNS(который помогает понять программе/устройству на каком IP находится сервер сайта, к которому вы обращаетесь), могут примерно понять где вы находитесь и даже соединить все запросы в один профайл и понять кто вы.[145]. Поэтому я не использую этот вариант.
На самом деле в AFWall+ можно самому писать правила в «Set customs Scripts/Пользовательские скрипты» и если вы знаете как писать эти скрипты, то вы сможете насильно заставить проходить трафику через Tor без включения псевдо-VPN и без утечки DNS. Функционал пользовательских скриптов очень широкий. Можно даже использовать Orbot без включения его псевдо VPN, настроить отдельный «настоящий VPN» и часть приложений пускать через Tor, часть через настоящий VPN, часть напрямую. Как уже выше говорилось, AFWall+ является обёрткой над инструментом iptables.
В ходе настройки под себя обязательно тестируйте на утечки DNS, на то реально ли пускает приложение через Tor, VPN и так далее.
Полезные ссылки:
а) Раздача интернета с устройства сразу через Tor [146]. По умолчанию интернет раздаётся с устройства напрямую с мобильной сети незадействуя Tor/Orbot.
По поводу взаимодействия встроенного файрволла и AFWall+ — механизмы не пересекаются и накладывают ограничения на приложения по отдельности по разным механизмам. Ограничение интернета в любом из механизмов ограничивает приложение.
По поводу VPN — если в настройках VPN указать некоторые приложения как разрешённые к VPN и включить VPN, то эти приложения смогут работать только через этот VPN(по крайне мере у меня так на моей версии LOS и Orbot).
Блокировщик рекламы и треккеров по средством изменения файла hosts на устройстве. По факту — это просто обёртка для удобного редактирования файла hosts. Требует рут, причём полный, с доступом на запись в system, то есть с правами r/w(read and write).
Плюсы —
- не использует VPN слот
- не нагружает процессор и соответственно не сильно «ест» батарею и оперативную память
- довольно простой и удобный в использовании(кроме того факта, что в некоторых случаях надо разово помучиться с полноценным рутом или созданием symlink на файл hosts)
Минусы —
- Требует полный рут. Но есть обходной путь, который иногда срабатывает, когда нет полного рута [149], [151], [153].
- После изменения правил требует перезагрузки устройства, чтобы они начали учитываться.
- «Не тянет» очень большое количество правил(но это не тянет само устройство). Не советую подключать очень много правил. Хватит тех списков, что есть по дефолту + 1-2 списка для русскоязычных сайтов.
- Нельзя выставить правила по отдельности для каждого приложения и не видно с какого именно приложения поступил тот или иной запрос.
- Не может работать по принципу wildcard фильтрации. Можно заблокировать только конкретный домен. Например, вы в браузере запускаете сайт «example.com», на котором есть картинка по адресу «example.com/cartinka_reklama01.jpg». Так вот вы сможете заблокировать только ВСЕ запросы к «example.com» и не сможете заблокировать отдельно «example.com/cartinka_reklama01.jpg». Для этого в самом браузере надо использовать блокировщики рекламы(опишу далее), которые могут использовать wildcard правила.
Также через AdAway необходимо блокировать отдельно домены 2-го, 3-его, 4-го(и так далее) уровня. Например, если вы заблокируете все запросы к «google.com», то запросы типа «account.google.com» или «www.google.com» или «www.account.google.com» надо блокировать по отдельности. То есть вы не можете выставить одно правило типа «*.google.com» - Не может блокировать рекламу и треккеры, которые приложение получает не через «домены», а напрямую через IP. То есть AdAway может заблокировать обращение к google.com, но не может заблокировать связь напрямую, если приложение посылает запрос например на IP 8.8.8.8
- Потенциальная проблема — Google хочет усилить внедрение в Android DoH(DNS over HTTPS), а также пытается продвинуть протокол QUIC(уже присутствует в приложении Youtube). Данные протоколы мешают фильтрации посредством файла hosts. Непонятно, насколько глубоко Google внедрит эти протоколы в следующую версию Android и насколько тяжело будет их либо отключить, либо гибко управлять ими самостоятельно.
Вообще, вы сами можете изменять файл hosts, но просто приложение AdAway делает этот процесс более удобным.
Давайте рассмотрим настройки приложения в Preferences
-Hide welcome card(Скрыть приветствие) — Да.
-Check for updates(Проверять обновления) — если вы будете использовать подгружаемые из интернета правила, то лучше включить.
-Allow whitelisting(Разрешить белые списки) — имеется ввиду белые списки, которые устанавливаете не Вы, а которые приходят из файлов подгружаемых из интернета файлов со списками. У меня данная функция выключена, так как непонятно почему необходимо некоторые сайты включать в «белый список». На ум приходит только одна мысль — в каком-то из списков какой-то сайт/домен находится в чёрном списке, но это «ломает» некоторые «нормальные» сайты и в другом списке есть «белый список», который всё-таки позволяет работать сайту. Но я такого не встречала. А если и встречу когда-нибудь, и мне этот сайт сильно нужен будет, то я сама вручную добавлю в белый список(да, придётся перезагружать устройство).
Примеры таких возможных случаев [155] (примеры все буржуйские).
-«Target hosts file(Путь к файлу hosts)» и «Custom target/Пользовательские настройки» — настройка для редких случаев по выбору пути к файлу hosts. Например, если у вас не полный рут, но его можно временно получить, то вы можете для файла hosts создать symlink(что-то типа перенаправления для файла — синоним пути) и здесь выбрать где находится новый путь к файлу hosts.
-Enable webserver(Включить веб сервер) — нужна функция только для того, чтобы некоторые редкие приложения «не дурили» и не закрывались, когда блокируется реклама и треккеры в их приложениях. Вместо простого блокирования запросов таким приложениям дополнительно будет отдаваться пустой «ответ». Я не пользуюсь данной функцией.
-Enable crash reports/Отправлять отчёты об ошибках — я стараюсь никому не доверять последнее время, никому ничего не отправляю. Пока разработчики не выработают какой-нибудь очень прозрачный механизм отправки отчётов об ошибках, я не буду никому ничего отсылать.
По меню:
Host sources(Источники списков хостов)
Тут представлены изначально 3 подписки(списка)
Эти списки изначально содержать только списки для треккеров и для мобильной рекламы(по большей части той, которая всплывает в приложениях).
Меня данные списки устраивают, так как в браузере я использую собственные мощные блокировщики рекламы и треккеров(браузер Fennec или Tor browser + uBlockOrigin + uMatrix). В редких случаях я пользуюсь браузером Bromite(со слабеньким блокировщиком) и данных списков мне всё равно хватает(так как я не пользуюсь распространнёнными сайтами). А сам функционал AdAway я использую для ловли запросов самого LOS и редких приложений(к слову в LOS я ничего серьёзного не поймала).
Вот ещё списки, которые можно подключить дополнительно [157],[159], [161]. Вот отдельный список для Google и Qualcomm(в том числе серверов A-GPS и статистики LOS) [163].
Много подписок не добавляйте, интернет будет работать медленнее(или медленно будет работать само устройство) если будет много правил в hosts. Но если же нет возможности использовать блокировщики в браузере, то лучше всё-таки постараться поискать неплохие подписки. Например, если вам не по душе Fennec+uBlock Origin, то можете использовать Bromite +дополнительные подписки в AdAway.
Также можно импортировать свои статические списки. Учтите, что подсовывать надо именно в формате hosts типа:
127.0.0.1 yandex.ru
другие форматы не понимаются программой.
-Your lists(Ваши списки)
Тут представлены правила, которые вы задали вручную. Эти правила имеют приоритет, над теми что в подписках.
а) Blacklist(Чёрный список) — можно добавлять тут же вручную или из лога.
б) Whitelist(Белый список) — можно добавлять тут же вручную или из лога.
г) Redirects(Перенаправления) — не пользуюсь. Для продвинутых пользователей. Не могу ничего сказать.
-Log DNS requests(Логирование запросов DNS) — отображение лога заблокированных/пропущенных запросов. К сожалению, этот лог надо включать каждый раз при включении устройства. Но я часто пользуюсь этим инструментом.
Во первых при первоначальной настройке самого LOS постоянно смотрела на какие сайты «стучится» сам LOS. Также при установке каких-либо программ я делаю то же самое. Если мне что-то не нравится, я тут же в логе заношу в чёрный список. Либо наоборот, если какое-то приложение не работает, я смотрю какие сайты были заблокированы и почему не работает приложение. Но так как у меня все приложения из F-Droid я не нашла «лишних» запросов.
Для проверки необходимо включить логирование, очистить лог(справа верху кнопка), запускать приложение и разбираться какие сайты были задействованы.
Хочу поделится с вами своими находками:
- connectivitycheck.gstatic.com — Captive portal. При отключении данного запроса у вас не будет показываться страница авторизации(Captive portal) при использовании Wi-Fi хот-спотов. Также помимо этого есть ещё один ньюанс — если заблокировать данный запрос у вас при подключении к интернету, значки с Wi-Fi и мобильного интернета будут показывать что интернета нет. Также при подключении к Wi-Fi система будет показывать предупреждение, что интернета нет с предложением переключиться на другую сеть. Это назойливое сообщение можно убрать, поставив галочку «Больше не спрашивать».
- time.android.com — синхронизация времени(NTP) — редко пытается синхронизировать время, хотя я убрала автоматическую синхронизацию времени.
- time.izatcloud.net, xtrapath1.izatcloud, xtrapath2.izatcloud, xtrapath3.izatcloud, gpsonextra.net, path1.xtracloud.net и так далее. Вроде как это для A-GPS, чтобы быстро установить позиции спутников в небе и быстрее определить местоположение по GPS(чтобы осуществлялся так называемый «горячий старт»). У меня работает GPS с этими заблокированными запросами, возможно при первом включении устройства была выкачена информация и теперь она только корректируется через спутники. Возможно вам надо будет один раз выкачать информацию, а может быть придётся оставить эти запросы незаблокированными(или менять сервера A-GPS).
- firefox.settings.services.mozilla.com, shavar.services.mozilla.com, addons.cdn.mozilla.net — запросы от Fennec(а также IceCat) на проверку обновления аддонов(расширений), на списки внутреннего простенького блокировщика(хотя я его отключила!!!, надо бы написать в issues на форуме F-Droid). Я на всякий случай заблокировала эти запросы. Возможно у меня не будут автоматически обновляться расширения F-Droid. Надо поймать момент и отследить.(извините — моя недоработка)
- Различные сервера от F-Droid и их зеркала(смотрите в настройках конкретных репозиториев), обновления hosts самого AdAway, обновление подписок аддонов(не самих аддонов, а правил блокирования) в браузерах(uBlock Origin, Bromite и так далее).
-Scan for adware(Сканирование Adware) — поиск установленных на устройстве приложений с «плохими» признаками. Гадости ищутся по заранее составленному списку, так что я не думаю что эта функция найдёт редкие вирусы, но если всё же что-то нашла, то советую обратить внимание и удалить это приложение.
Orbot
Orbot — программа от Guardian Project для запуска проводника в сеть Tor на Android устройстве. Также эта огранизация(Guardian Project) ранее сама разрабатывали версию браузера Tor для Android — Orfox. Сейчас же они вплотную работают вместе с командой разработчиком Tor сети и Tor браузера для компьютеров для создания версии под Android.
На данный момент есть отдельно Orbot и Tor браузер(со встроенным Orbot). Orfox более не поддерживается.
Orbot позволяет пустить через сеть Tor любое приложение. Программа постепенно улучшается, но последние версии находятся в бетта стадии и на некоторых устройствах плохо работают. Последняя стабильно работающая у меня версия — 16.0.5-RC-2.
Orbot на самом деле очень простой в настройке. Следует его только запустить, подождать немного времени(при первом запуске это может длиться до 2-ух минут) и дождаться статуса «Bootstrapped 100%: Done». Далее есть варианты:
1) В настройках конкретного приложения, если есть такой пункт «Работать через Tor» — указать этот пункт и приложение будет работать через Tor.
1.1) В настройках приложения может не быть пункта «Работать через Tor», но может быть пункт работать через прокси. Далее в настройках этого прокси устанавливаем host: 127.0.0.1, port 8118.
2) Включаем пункт VPN mode(VPN режим), выбираем приложения, которые мы бы хотели пустить через Tor(даже если в настройках этих приложений нет такой опции) на главном экране в пункте Tor-Enabled Apps/Приложения с поддержкой Tor. При первом включении VPN Orbot создаст в родном для Android списке VPN отдельную запись. Тут вы можете выбрать «Always-on VPN/Постоянная VPN»(чтобы VPN всегда был включен) и «Block connections without VPN/Блокировать соединения без VPN»(чтобы система не пропускала соединения, которые не разрешены Orbot. Ещё один способ ограничить доступ каким-либо приложениям). В итоге у вас будут работать эти приложения через Tor посредством псевдо-VPN(несмотря на то что это ПСЕВДО, я считаю этот способ не хуже чем реальный VPN в части приватности).
3) С помощью iptables(например через AFWall+) изощряться так, чтобы можно было пустить трафик через Tor не задействуя слот VPN для тех приложений, у которых нет настройки «Работать через Tor». Только будьте внимательны, необходимо будет в таком случае ещё проверить, что DNS запросы тоже идут через Tor.
Давайте пройдёмся по настройкам:
-«Use Bridges/Использовать мосты» настройка на главном экране. Если почему-то у вас не работает подключение, вы можете использовать дополнительный 4-ый сервер(помимо стандартных 3ёх в цепочке) через который вы можете попробовать подключиться к сети.
Слева на главном экране есть выбор страны Выходной ноды. Выбор какой-либо страны из списка заставит Orbot перебирать цепочки так, чтобы сайтам показывалось, что вы из этой страны. Крайне не рекомендую этого делать, так как через время наберётся достаточно статистики и вас могут по косвенным признакам узнать. Если же всё-таки надо(например сайт работает только в одной какой-то стране), то после того как вы зашли на сайт, лучше вернуться назад на «Global (Auto)». Также этот функционал нестабилен.
Справа в верхнем углу есть кнопка в виде круглой стрелки, при нажатии на которую должно происходить перестроение цепочек. Полезно если на какой-нибудь сайт не пускает с определенного выходного узла. Некоторые сайты знают многие выходные узлы Tor и не пускают на свои сайты с этих узлов. Но они не знают все выходные узлы и могут пустить вас на свой сайт после того как вы обновили цепочки. Этот функционал иногда не срабатывает, иногда цепочки не меняются. Необходимо отключить интернет, поменять цепочки и включить интернет снова.
В меню «Settings/Настройки»
-Start Orbot on Boot/Запускать Orbot при загрузке — для тех, кто собирается пользоваться Orbot на постоянной основе следует включить этот пункт.
-Open Proxy on All Interfaces — для специфических ситуация, например для того, чтобы раздавать интернет(tethering) сразу с Tor.
-Entrance Nodes/Входные узлы — задать ограничивающий список Входных нод(серверов) через который Orbot должен строить цепочки. Функционал нестабильный. Да и ограничивать количество нод не рекомендуется для избегания снижения приватности.
-Exit Nodes/Выходные узлы — задать ограничивающий список ВЫходных нод(серверов) через который Orbot должен строить цепочки. Функционал нестабильный. Да и ограничивать количество нод не рекомендуется для избегания снижения приватности.
-Exclude Nodes/Исключённые узлы — задать ограничивающий список ВЫходных нод(серверов) через который Orbot НЕ должен строить цепочки. Функционал нестабильный. Если вы знаете, что какие-то серверы принадлежат злоумышленникам, можете добавить их в этот список.
-Strict Nodes/Точные узлы — приказ Orbot использовать ТОЛЬКО вышеобозначенные узлы. Без этой настройки Orbot будет пытаться использовать вышеобозначенные ограничения, с этой же настройкой Orbot обязан будет использовать ограничения. Функционал нестабильный.
-Use Bridges/Использовать мосты — та же настройка, что и на главном экране, но тут вы можете вручную указать адрес моста(дополнительного звена в цепочке). Это может быть ваш собственный узел/мост.
-Relaying/Ретрансляция — разрешение быть входной или промежуточной нодой(НЕ выходной). Не стоит этого делать на мобильном устройстве во избежании потребления интернета и быстрого разряда аккумулятора.
-Isolate destination addresses/Изолировать адреса назначения — ВНИМАНИЕ, ВАЖНАЯ настройка. Включение данного пункта позволяет для разных приложений использовать разные цепочки и выходные узлы. Если этот пункт выключен, то при запросе к одному и тому же сайту, но из разных приложений будет использоваться один и тот же IP(то есть одна и та же выходная нода). Например, вы в браузере заходите на сайт yandex.ru и ищите там что-нибудь «пикантное», и если вы в другом браузере залогинились в Яндексе, то Яндекс вас моментально «раскусит», то есть свяжет вас по IP и времени посещения сайтов. Со включенной же настройкой IP будут разные(чего не добиться обычным VPN).
Минус в том, что такая настройка чуть больше «съедает» батарею.
НО, на данный момент эта настройка бесполезна, если у вас есть какое-то постоянно работающее в фоне приложение от Яндекса(Яндекс только как пример, касается любого проприетарного приложения или приложения с треккерами) из-за проблемы доступа к proc/net. Любое приложение может видеть на какие IP вы заходите через считывание файла proc/net. Об этой проблеме я напишу далее.
-No Network Auto-Sleep/Автозасыпание без сети — Orbot «засыпает» если нет доступа к интернету. Настройка в некоторых случаях позволяет снизить потребление электроэнергии. Но так как я заблокировала Captive Portal и запросы connectivitycheck.gstatic.com, то приложение не может понять, что интернет есть и постоянно «засыпает». Пришлось выключить эту настройку.
ВНИМАНИЕ: Orbot не сможет запуститься, если неправильно выставлена дата или время на устройстве.
Проблема proc/net
Проблема proc/net — существует огромная проблема приватности, из-за того что любое приложение может прочитать файл proc/net и увидеть к каким IP адресам какое приложение подсоединяется и видеть статистику обращений к IP адресам за недавнее время. Это НЕЛЬЗЯ НИКАК ЗАБЛОКИРОВАТЬ. Ни одно средство не помогает. Можете установить себе Net Monitor(org.secuso.privacyfriendlynetmonitor)[131] и удостоверится в этом. Заберите все разрешения для данного приложения всеми инструментами и всё равно оно увидит к каким IP адресам вы подсоединяетесь. Даже установка в «рабочий профиль» или создание отдельного юзера(пользователя) на устройстве не помогает. Ни VPN-ы, ни Orbot, ни Privacy Guard, ни xPrivacyLua не помогают. Максимум что вы сможете сделать — это скрыть названия приложений, но информация о посещаемых IP останется в распоряжении. Я проводила эксперимент: брала эти IP адреса и с помощью поисковика пыталась выяснить какому сайту соответствует тот или иной IP адрес. В 99% случаев у меня совпало с тем, что я посещала!!! На одном IP могут находится несколько сайтов, но я думаю, что мощные аналитические системы гигантов могут определять не 99%-ов, а 100% сайтов на которые вы заходите. Если я вручную смогла, то они и подавно смогут понять.
Google должна была устранить этот недочёт еще в Android 9 P, но эти «хрюшки» из Google отложили внедрение этого ограничения и оно будет только в версии Android 10 Q(соответственно в LOS 17).[165]
Вы думаете, что эта угроза приватности надумана? Вот статья на немецком[166], где человек показывает, что приложение Facebook считывает эту информацию. Я предполагаю, что это делают и другие приложения.
Вообще, непонятно будет ли возможность даже в версии Android 10 Q отключить эти доступы. Точнее так — для этой информации нужно будет запросить информацию через методы NetworkStatsManager и ConnectivityManager classes. Но непонятно к какому разрешению это относится и можно ли будет заблокировать это разрешение(хотя бы в AppOpsX). При внедрении какого-либо нового ограничения Google позволяет старым приложениям обходить его ещё в течение года после внедрения нового ограничения!!! Они это регулируют так называемым Level API(далее опишу этот вопрос). В той же статье [165] вроде как они обозначают что в версии Android 10 Q они не будут ждать год, а включат это ограничение сразу для всех приложений:
«The following changes affect all apps running on Android Q, even if they target Android 9 (API level 28) or lower.»
Маленькая победа поборников приватности, но я бы не стала сильно надеяться на порядочность Google. Посмотрим, времени до выхода Android 10 остались считанные дни.
Что же делать?
- Стараться не устанавливать приложения для тех сайтов, которые вы можете посмотреть через браузер и смотреть в браузере.
- Даже если необходимо какое-нибудь приложение — постараться поискать open-source альтернативу на F-Droid.
- Если вам всё-таки нужны какие-то не open-source приложения, то устанавливайте их в «рабочий профиль»(чтобы скрывать хотя бы названия приложений, которые получают доступ к определённым IP адресам). После использования закрывайте приложение полностью, путём полного выключения «рабочего профиля» или полной остановки отдельного приложения. Также необходимо убрать у таких приложений возможность автозапуска при включении устройства и работу в фоне.
- Посещать сайты через новый Tor браузер. Недавно вышла версия Tor браузера для Android со встроенным Tor(не смотрите в описание на F-Droid, описание устарело, Orbot уже не обязателен, так как встроен в этот браузер). Так как этот браузер содержит сам в себе проводник в Tor, то он скрывает то, на какие вы сайты заходите даже от proc/net! В proc/net содержится только IP адрес входного узла(первый сервер в цепочке).
Tor Browser
Ранее для Android выпускались проектом Guardian Project два отдельных приложения 1) Orbot и 2) Orfox. Orfox — это опять-таки усиленный Firefox, который мог работать только в связке с Orbot. Но Orfox был очень тупым и медленным. Недавно проект Tor взял под своё крыло данное направление и теперь они(Guardian Project и Tor project) выпускают браузер Tor под Android совместными усилиями. Новый Tor Browser под Android основан на последней версии Firefox, уже включает в себя встроенный Orbot(может работать без отдельного Orbot), и с каждой версией всё стабильней и быстрее.
В F-Droid есть два Tor Browser:
1) Tor Browser
2) Tor Browser (Alpha)
Оба приложения основаны на одной и той же стабильной версии Firefox, но отличаются версиями сети Tor и некоторыми дополнительными настройкам. Стабильнее работает обычная(не Alpha версия).
Отличается от Orfox тем, что при запуске приложения необходимо дождаться подключения к Tor, а также тем что можно задать мосты(сторонние и свои). Также как и в обычном Tor браузере для компьютера в этом браузере удалён треккинг(телеметрия) от Mozilla, установлено дополнение NoScript, при закрытия удаляются все данные(кроме закладок), поисковиком по умолчанию выставлен DuckDuckGo и другие настройки(например выключен WebRTC). Также есть отдельная настройка Security Settings(Настройки безопасности).
Не рекомендуется менять настройки и устанавливать дополнительные расширения(аддоны) во избежании деанонимизации. Чем больше у вас уникальных настроек, тем больше шансы что ваши посещения сайтов свяжут с вами. Вообще, это дискусионный вопрос как лучше поступить. С одной стороны тем лучше, чем больше у людей одинаковых настроек браузера. Но с другой стороны можно попытаться «зарезать» все лишние скрипты для отслеживания, заблокировать всё что можно и тогда отпечаток браузера(browser fingerprint) будет тяжело сделать(и нечего будет потом сравнивать). К сожалению последнее время развиваются техники снятия отпечатка браузера с отключенным JavaScript по другим косвенным признакам[167].
Учтите, что всё что идёт через Tor Browser не отслеживается ни proc/net, ни AdAway(не использует hosts).
В итоге я использую 4 браузера:
1) Tor Browser (Alpha) с установленными дополнительно uBlockOrigin, uMatrix(заблокированным всё что можно) для ежедневного использования.
2) Tor Browser без дополнительных расширений для щепетильных вопросов. Пользуюсь редко.
3) Fennec с установленными дополнительно uBlockOrigin, uMatrix(где запрещённо всё что можно) и работающим не через Orbot для посещения сайтов, которые не открываются через Tor. Пользуюсь очень редко, стараюсь не заходить на такие сайты(которые не открываются через Tor).
4) Bromite — для тех случаев, когда сайт не открывается в Firefox-подобных браузерах(Tor Browser и Fennec основаны на Firefox). Таких сайтов мало.
Если вы будете использовать несколько браузеров, советую поставить разные темы оформления, чтобы случайно не зайти на какой-либо сайт не в том браузере.
Общая информация по поводу Tor:
- В России самое большое количество людей пользующихся сетью Tor!!![169]. Вас автоматом не причислят к преступникам, если вы пользуетесь Tor сетью.
- При огромном желании, если нацелится, то за некоторое время можно вычислить человека даже сидящего через Tor сеть. Не делайте ничего гадкого, и не только потому что найдут, а просто из моральных соображений.
- Использование только Tor чревато единой точкой отказа. Необходимо пробовать и развивать разные средства(например, мосты Tor, I2P, Yggdrasil, Zeronet).
ВНИМАНИЕ: Tor Browser не сможет запуститься, если неправильно выставлена дата или время на устройстве.
Есть ещё два браузера, которые я бы хотела осветить.
Fennec
Fennec(он же Fennec F-Droid) — немного переработанная версия Firefox с частично отключенной телеметрией(треккерами).
Давайте пройдёмся по настройкам(Settings)
-Sign in(Войти) — возможности зарегистрироваться и войти в Firefox Sync для синхронизации закладок, паролей, открытых вкладок и истории. Вроде как всё зашифровано «по самое нихачу» даже от самой Mozilla[171]. Можно даже попробовать сделать свой сервер Firefox Sync[173].
Мне особо не нужны облачные сервисы, но сервис синхронизации закладок мне бы пригодился. Я сейчас в раздумьях между
1) Собственный сервер Firefox Sync
2) Собственный сервер с Nextcloud — почти полный набор облачных сервисов на вашем личном сервере.
3) Собственный сервер с Turtl — сервис заметок, в том числе и закладок.
4) Wallabag — аналог Pocket. Не только сохраняет закладки, но и выкачивает сайты. Можно сделать свой сервер.
Я не могу рекомендовать Firefox Sync по причине того, что я не смогла найти аудит этого решения с результатами аудита в относительно широкой дискуссии. А закладки, пароли и история посещений — это очень чувствительные данные. Mozilla(разработчик Firefox) пока ещё не была поймана на наглой лжи. Был и остаётся случай с треккером-аналитикой от Google, когда вы заходите для поиска новых дополнений на сайт addons.mozilla.org/en-US/firefox. Но они особо этого не скрывали. Также Firefox Sync не работает в браузере Tor.
К сожалению нет функции экспорта закладок в мобильных версиях Firefox-подобных браузеров.
Я склоняюсь к Nextcloud, просто потому что он проще настраивается и у него больше пользователей(и соответственно больше примеров настроек в интернете). А также очень широкий функционал.
-Search/Поиск — выбираем DuckDuckGo. Если у вас в списке нет DuckDuckGo, то добавим потом. Google, Яндекс, Mail.ru, Yahoo и Bing лучше удалить даже из списка.
Как добавить поисковую систему в Fennec, если её нет в списке предложенных
Заходите на интересующую вас поисковую систему, например DuckDuckgo.com. В меню выбираете «Page/Страница» — «Add a Search Engine/Добавить по… вую систему». Далее делаете эту поисковую страницу по-умолчанию. Кстати, некоторые рекомендуют в любом случае удалить все поисковые системы и потом их добавить вручную вышеописанным способом, так как вроде как в противном случае посылается дополнительная информация с версией браузера на поисковую страницу(и это я не про utm метку, в адресной строке никаких следов может не быть).
--Show search suggestions/Поисковые предложения — лучше удалить на тот случай, если вы скопируете какой-нибудь текст из СМС или переписки с личными данными, например «Позвонить Ангелине на номер 8 999 77 5-55-55» и потом вставите этот текст в поисковую строку. Поисковик сразу это запомнит. В принципе, если вы постоянно чистите cookies(например стоит настройка удалять все данные при выходе) и не пользуетесь поисковиками от гигантов ничего особо страшного не случится. Но всё же лучше не пользоваться этим функционалом.
-Privacy/Приватность
--Do not track/Не отслеживать — бесполезная настройка. Если она стоит, то сайту посылается ПРОСЬБА вас не отслеживать. Им самим не смешно? Было исследование, где было показано, что те кто менял эту настройку, наоборот были более уязвимы, так как просьба вас не отслеживать входила в технику сбора отпечатков браузера. Поэтому оставьте эту настройку такой, какой она была изначально(какой бы она не была), чтобы она была максимально одинаковой у бОльшего количества людей.
--Tracking protection/Защита от отслеживания — минимальная блокировка треккеров на основе списка Disconnect. Не блокирует даже Google и кучу других треккеров. Можно отключить(конечно предварительно установив и настроив uBlockOrigin).
--Cookies/куки — поставьте Enabled, excluding 3rd party/Включены, кроме сторонних сайтов
--Clear private data on exit/Удаление моих данных при выходе. У меня выбраны все пункты. Можно выбрать всё, кроме закладок. Плюс этой настройки в том, что если вы закроете приложение(смахнёте в списке приложений, или Android сам закроет приложение, или через долгое нажатие кнопки «назад»), то данные не удалятся. Но если вы именно выберете «Quit/Выход» в меню, то все данные удаляться. Если я захожу на какой-либо сайт и знаю что мне надо будет через какое-то время снова на него зайти, я просто сворачиваю приложение. Но если мне уже не нужен этот сайт, то я жму «Quit/Выход».
--«Mozilla Location Service/Службы местоположения Mozilla» — предоставлять данные о ближайших Wi-Fi и одновременно о GPS координатах для создания своего сервиса определения местоположения по Wi-Fi. Отключаем. Во-первых это не эффективно(если хочется помочь подорвать монополию Google в этом деле, то лучше использовать другие инструменты), во-вторых лучше это делать не браузером, в котором вы оставляете данные о себе на сайтах.
--«Fennec Health Report/Отчёт о здоровье» — телеметрия. Отключаем.
-Advanced/Дополнительно
--Restore tabs/Восстановление вкладок — лучше отключить.
Также вы можете скачать IceCat, который также является переработанным Firefox. Помимо того что описано в этой статье [113] я хотела бы заметить ещё одну деталь — этот браузер реже обновляется, чем Fennec и в нём потенциально могут оставаться какие-либо уязвимости, которые были устранены в Firefox(и в Fennec).
Также у меня установлены дополнения HTTPS Everywhere, uBlockOrigin(надо настроить единожды), uMatrix(надо будет настроить для каждого сайта по-отдельности). Также отключаю WebRTC(about:config → media.peerconnection.enabled → false). Можно ещё поставить NoScript(аналог uMatrix) и отключить весь функционал кроме блокирования XSS, так как функционал тот же что и в uMatrix, но также есть блокирование XSS.
По настройке дополнений я напишу отдельную статью.
Bromite
Это переделанный Google Chrome. Он побыстрее чем Fennec, но у него не очень сильный блокировщик рекламы и треккеров(и на том спасибо, в обычном Chrome для Android его вообще нет). Поэтому я его и использую в редких случаях, когда некоторые страницы серьёзно глючат в Fennec(привет разработчикам мобильной версии habrahabr).
В настройках:
-Search engine/поисковая система — DuckDuckGo.
-Privacy/Личные данные
--Close all open tabs on exit — включаю. Удаляет открытые вкладки при нажатии на «Exit/Выход»
--Search and URL suggestions/Поиск и предложения URL — выключаю.
--Use page prediction/Загружать страницы предварительно — выключаю.
--Access payment method/Доступ к способам оплаты — выключаю.
--Usage and crash reports/Отчеты об использовании и сбоях — ТЕЛЕМЕТРИЯ. Отключаю.
--Open links in incognito tabs always — всегда открывать вкладки в режиме инкогнито. По сути это тоже самое что и «Удалять данные(cookies, данные сайтов, история посещений) при выходе». Я включаю.
--Do Not Track/запрет отслеживания — не меняем. Как было изначально, пусть так и остаётся.
--Tap to Search/Нажмите для поиска — выключаем однозначно.
Также из головного окна можно отключать JavaScript, что я советую делать, если вы заходите на сайты через Bromite только для того, чтобы читать статьи. Но некоторые сайты с отключенным JavaScript могут не работать.
Изначально LOS не содержит проприетарных Google приложений(кроме некоторых устройств с предустановленными программами для мобильного оператора от Google — Google Fi). Если они вам нужны — то вы можете установить их самостоятельно. Обычно это необходимо сделать сразу после установки LOS НЕ ПЕРЕЗАГРУЖАЯ устройство.
На самом деле устанавливаются не отдельные приложения, а целый набор системных приложений(пакет), который глубоко устанавливается в виде системных приложений и сервисов.
Зачем могут понадобиться набор от Google
1) Обычные(почта, карты, браузер Chrome) приложения Google не будут работать без предустановки этого пакета, даже если вы скачаете эти приложения отдельно.
(Youtube можно будет использовать в других приложениях).
2) Некоторые другие приложения заработают только если вы установите этот набор приложений. Некоторые приложения будут урезаны в функциональности. Например, приложения, которые полагаются на Google карты(используют подложку Google) могут или вообще не запускаться, или может не работать часть функционала, завязанный на карты.
Есть хорошая новость: приложения для российских потребителей в большинстве случаев запустятся и будут работать без Gapps. Последнее время вообще в России постепенно уходят от привязки к Google(делают свою подложку на основе Яндекс карт, карт Bing, Openstreetmap и его производных). Это немного увеличивает размер приложений, но всё работает. Российские банковские приложения также работают без Google Apps(в том числе и с рутом).
3) Push уведомления. Для того, чтобы получать обновления данных из интернета(например в мессенджерах, почтовых клиентах) необходимо соединение с интернетом. Если много приложений будут постоянно иметь соединение с интернетом, то батарея устройства будет сажаться быстрее. Поэтому Google предложило свою функцию GMC [175]. Устройство поддерживает постоянное соединение с сервером Google, и при получении нового сообщения сервера мессенджеров/почтовиков посылают об этом сообщение на сервера Google, а Google посылает уже на ваше устройство. Плюс в том, что не надо устройству поддерживать много соединений с серверами всех приложений и не надо держать в фоне включенным все приложения.
Также плюс для разработчиков, что им надо меньше писать кода и придумывать свою реализацию посылки уведомлений.
Все приложения в F-Droid имеют свою реализацию обновления контента. Если у вас немного приложений, которые самостоятельно обновляют контент, то по сравнению с реализацией от Google получается не намного больший расход батареи. При установленном пакете Gapps отсылается много информации на сервера Google(слежка слежка слежка), что также «съедает» батарею, так что если у вас нет Gapps и всего 1-2 приложения, которые поддерживают интернет соединение в фоне, то расход батареи будет даже меньше, чем с Gapps.
4) Для быстрого определения геопозиции по Wi-Fi или сотовым вышкам. Без этого навигация будет определятся только по GPS. Некоторые считают, что даже по GPS геолокация определяться не будет — это ошибка!!! Просто для определения по GPS необходимо при первом запуске ждать на открытой местности не передвигаясь минут 10, когда обновятся данные по спутникам. Потом если редко включать навигацию — 2 минуты. Если часто — 10-15 секунд. Все просто забыли, что такое первое включение, холодный старт, тёплый старт, горячий старт старых навигаторов.
В LOS работают(и достаточно протестированы) 3 типа пакета
- opengapps — не смотря на приставку «open» — это несвободные обычные приложения от Google, которые просто отдельно упакованы энтузиастами. Устанавливать можно самую минимальную версию Pico[177], а остальные приложения доустановить потом. Название Pico не значит, что при установке этой версии пакета Google не будет следить за вами. При установке этого пакета приложений считайте, что вы заново отдаёте себя на растерзание Google-у. Большого смысла в этом действии не вижу(если вас интересует приватность).
- Mind The Gapps — ещё одна версия с базовым пакетом от Google. Всё аналогично opengapps.
- microg — единственная версия, которая по-настоящему open-source!!! Открытые исходные коды, отсутствие телеметрии(треккеров). Разработка этого пакета то прекращается, то снова возобновляется. Этот пакет не такой стабильный как opengapps, но он минимизирует треккинг от Google. То есть отдаётся Google только то, без чего не обойтись. Например, при использовании push уведомлений Google видит, что определённое приложение посылает вам уведомление. Если разработчик приложения зашифровал сообщение, то текст самого сообщения Google не увидит. При использовании геолокации по Wi-Fi или сотовым сетям Google естественно понимает, где вы находитесь. При использовании opengapps или Mind The Gapps — Google видит всё подряд. Всё это значит ВСЁ.
НО есть одна проблема: LOS не поддерживает microg. Вот объяснение [179]. Если кратко — microg осуществляет singature spoofing, то есть «обманывает» приложения полагающиеся на Google, что разработчикам LOS не очень нравится. Также это вызывает риск установки «левого» приложения. То есть сейчас нельзя заменить какое-нибудь приложение(особенно системное) вирусным приложением путём обновления. А с singature spoofing это будет возможно. Плюс у разработчиков LOS нет времени на периодическую проверку достоверности проекта microg, хотя они и не обвиняют их в чём-то.
То есть вы не можете установить microg при установке LOS, как с opengapps.
Выходы:
-microg делает форк(ответвление) от LOS и сама вставляет в LOS свой пакет [39] — называется проект «LineageOS for microG». То есть, если вы хотите microg на своём устройстве — можете скачать версию их версию LOS с их сайта и установить её вместо установки «официальной» LOS. Обновления по воздуху в этой версии также поддерживаются.
-После установки LOS можно установить microg и путём хитрых манипуляций(например с помощью пакета Nanodroid) заставить это всё работать.Также проект хочется упомянуть, что с недавнего времени проект microG поддерживается немецким правительством(Министерством образования) [181]. Дали денег на open source реализацию push сервера(аналога GCM).
Для российского потребителя разработчики делают приложения без жёсткой привязки к Gapps. Я в принципе стараюсь пользоваться только приложениями из F-Droid, поэтому меня это не сильно беспокоит. Пару приложений(банковское + одно по работе) работают отлично без Gapps и с рутом. Знакомые говорят, что госуслуги, сервисы такси и так далее — всё прекрасно работает без Gapps.
Единственное, что мне было бы полезно — это определение местоположения по Wi-Fi и сотовым вышкам. Вроде как можно отдельно установить UnifiedNlp(из состава microG) + скачать базу вышек и Wi-Fi(через один из бэкэндов). Я ещё не разобралась, но вроде это можно сделать без signature spoofing на официальном LOS.
Если вы не используете Gapps, то у вас нет Google Play Market. Но вам могут понадобиться некоторые приложения, которые есть только в Google Play. Скачивать их из других источников может быть опасно. Для таких случаев есть приложения, которые могут скачивать приложения из Google Play:
1) Yalp store(com.github.yeriomin.yalpstore)
2) Yalp Store (fork) (com.github.kiliakin.yalpstore) — так как оригинальный Yalp store не обновляется, то сделали форк(ответвление) приложения.
3) Aurora Store(com.aurora.store)
Все три приложения имеют сходный функционал. Учтите, что Google периодически закручивает гайки и эти приложения могут то не работать, то терять часть функционала, например поиск приложений работает плохо, лучше искать по точному наименованию.
Вы можете скачивать приложения в этих маркетах без захода в свою учётную запись. Но если же у вас есть какие-то купленные приложения, вы можете залогиниться с помощью своей учётной записи Google и скачать их. Но это не гарантия, что они(платные приложения) заработают. В некоторых случаях они заработают, в некоторых случаях они заработают только если у вас стоит как минимум MicroG, в некоторых случаях они заработают только если стоит полноценный Gapps(ну тогда смысл будет скачивать через Google Play Market).
Некоторые приложения(в основном большие игры) в Google Play распространяются в виде split apk — нескольких apk файлов для установки. И чтобы Yalp их правильно установил, необходимо либо установить Yalp как системное приложение, либо дать рут права.
Практически(в 99% случаев) во всех приложениях из Google Play есть треккеры. Какие наиболее популярные треккеры есть в приложении вы можете посмотреть на сайте [61]. Или скачав приложения Exodus Privacy[63], ClassyShark3xodus[65]. ОЧЕНЬ ИНТЕРЕСНАЯ ИНФОРМАЦИЯ!!! ОБЯЗАТЕЛЬНА К ПРОСМОТРУ. Открываем, например, данные по Яндекс браузеру [183]. И что мы видим?
-AppMetrica
-Facebook Ads
-Facebook Analytics
-Facebook Login
-Facebook Share
-Flurry
-Inmobi
-Yandex Ad
Круто, да? Facebook Ads, Facebook Analytics, Facebook Login, Facebook Share — без комментариев. Flurry — это Yahoo. Inmobi — основан в Mumbai, India. Ну что, готовы помимо яндекса делиться информацией о себе с неизвестными вам индусами, с Facebook и Yahoo?
Глянем на треккеры в MAPS.ME от компании Mail.ru [185]. Не лучше))
Но то, что в каком-то приложении нет распространённых треккеров, или в их названии написано что-то типа «Crash», «Bug» — то это не означает что в этих приложениях нет скрытых или малоизвестных треккеров.
Возьмём Facebook [187]. Якобы нет треккеров. Вы думаете что Facebook не отслеживает всё что вы делаете? Читайте [189]. Facebook-у не надо встраивать отдельные треккеры в своё приложение, так как они и так собирают все данные без отдельных модулей-треккеров.
В итоге Exodus — это очень интересный инструмент, при использовании которого можно наконец-таки осознать, что в современном мире ваши данные — не ваши. Но нельзя полагаться только на Exodus, приложения могут собирать данные и без встраивания отдельных треккеров. И данные могут продавать потом отдельно, по другим каналам.
Подходим к самому важному — контроль разрешений или контроль доступов. БольшУю часть касающуюся разрешений на доступ в интернет я уже описала. Также описала то, что входит в понятие «Special app access(Специальный доступ)».
Типы разрешений
Давайте обозначим типы разрешений:
- Normal — «нормальные». Это те разрешения, которые Google считает нормальными(но я так не считаю) и безопасными и выдаёт эти права БЕЗ ПРЕДУПРЕЖДЕНИЯ пользователя.
Например, любое приложение может получить доступ в интернет, изменение настроек Bluetooth, просмотр Wi-Fi сетей, просмотр интернет соединений, автозапуск при включении устройства и другие [191]. При установке приложения вас также не станут предупреждать о «нормальных» разрешениях.
Эти «нормальные» разрешения нельзя никак убрать через стандартные средства Android-а(хотя некоторые всё же можно в «Special app access(Специальный доступ)»). Можно частично убрать разрешения в PrivacyGuard и в достаточно полной мере только в AppOpsX(или через ADB). - Dangerous — опасные(хотя «нормальные» такие же опасные как и эти). Это те разрешения, который в Android можно регулировать пользователю силами самого Android. Но управлять этими разрешениями стандартными средствами Android можно только по группам. Например, есть разрешение SMS. Дав доступ к группе SMS приложение сможет и прочитать все смс, и отправить смс, и прочитать MMS и так далее.
Почему выдача разрешений по группам не очень хорошее решение: если у вас есть какое-нибудь приложение, которому вы хотите дать доступ только на отправку смс(без чтения всех смс), например для системы управления электронными дверьми/ставнями. Но вы через стандартные средства Android этого сделать не сможете!!! Всё или ничего. Как это можно сделать(раздельно задавать опасные ограничения) — я напишу отдельно(в PrivacyGuard). - Signature — «подписанные». Это те приложения, которые могут быть установлены только если они подписаны той же цифровой подписью, что и вся прошивка. Это системные приложения(например, стандартное приложение настроек Android-а), которые могут менять практически в устройстве всё. То есть при обычных обстоятельствах невозможно заменить эти приложений/сервисы на вирусные, так как вирусописатели не смогут подписать свои приложения тем же цифровым ключём что и прошивка, и приложения не смогут быть установлены. Всё меняется, если вы получаете рут(права суперпользователя) через Magisk или устанавливаете Xposed Framework. Эти инструменты позволяют обманывать систему через Signature Spoofing. Отчасти поэтому я и не использую ни Magisk ни Xposed Framework ни MicroG.
То есть, если вы случайно скачали и установили «левое приложение», которое было представлено как обновление какого-нибудь системного приложения, вы можете даже сразу этого не заметить. Но оно через время запустит вирусную активность во всей красе. - Special — специальные. Это разрешения для приложений с типом Signature, которые ещё ОБЯЗАНЫ отдельно запросить пользователя возможность какого-либо действия. Я о таких приложениях не слышала. Видимо, когда вы что-то переключаете в настройках Android-а и вас спрашивают «точно вы хотите это сделать», то это и есть такое разрешение.
Инструменты для ограничения разрешений
Давайте пройдёмся по инструментам для ограничения:
Я уже описывала частично инструмент для ограничения в Apps & notifications(Приложения и уведомления)->Special app access(Специальный доступ). Тут представлены разные ограничения, которые могут напрямую не относятся ни к какому типу ограничений, могут относится к нормальным(CHANGE_WIFI_STATE).
Стандартный для Android механизм разрешений
Стандартный для Android механизм разрешений:Apps & notifications(Приложения и уведомления)->Advanced(Дополнительно)->App permissions(Разрешение приложений)
Здесь представлены только разрешения с типом Danger(опасные). Здесь всё понятно, можно только включить или выключить группы разрешения. Но есть также ещё один тип:
Пункт «Additional permission», где какие-то приложения создают свои разрешения, доступ к которым можно давать другим приложениям[193].
Privacy Guard(Защита конфиденциальности)
Вшитый механизм разрешений от LOS: Security & Location(Защита и местоположение)->Trust(Trust)->Privacy Guard(Защита конфиденциальности)(далее — PG)
Достаточно мощный инструмент, который разрабатывается командой LOS. По опросу самая большая доля людей, которые выбрали прошивку LOS, сделали это именно ради этой функции/приложения.
При первом запуске LOS вас спросят включить ли по-умолчанию эту функцию — лучше сразу её включить.
В самом приложении проверьте это «Enabled by default(Включена по умолчанию)».
Также можно на первых порах включить «Show notifications(Показать уведомления)». Эта настройка будет выводить в уведомлениях, что какое-то приложение контролируется PrivacyGuard. На самом деле даже если задано в PrivacyGuard ничего не блокировать сам инструмент записывает количество обращений к тому или другому разрешению. Нотификации показывают, что какое-то приложение запущено, а количество обращений может понять насколько то или иное приложение «наглеет».
Тут же можно включить отображение системных приложений «Show built-in apps(Системные приложения)». На первых порах я тоже включила эту настройку, чтобы потом видеть количество обращений к тому или иному разрешению системными приложениями. Я не обнаружила явных попыток каких-либо системных приложений получить лишние доступы. Если и были какие-то обращения, то это потому что так устроен Android и я нашла этому объяснение на форумах. Например, при выборе Wi-Fi сети отображается, что системное приложение получает доступ к местоположению(как и любое другое приложение). В любом случае для самообразования вы можете включить отслеживание для системных приложений на первых порах.
В самом списке приложений необходимо нажать на каждое интересующее вас приложение для ограничения доступов. Как я уже сказала на первых порах я включила для всех приложений, в том числе и для системных.
Зажимая на несколько секунд палец на приложении вы попадаете в меню настройки ограничений для конкретного приложения. Некоторые разрешения вы можете либо включать/отключать, для некоторых вы можете выбирать из 3-ёх пунктов:
а) Allowed(Разрешать) — разрешить
б) Ingored(или Disallow)(Запрещать) — запретить
в) Always ask(Спрашивать) — спрашивать каждый раз, когда приложение просит доступ к определённой функции.
Функция Always ask(Спрашивать) полезна, если есть какое-то приложение, которому не хотелось бы давать постоянный доступ к чему-либо, но пользоваться бы хотелось. Например, давать мессенджерам с функцией звонков доступ к микрофону. Но надо понимать что, если вы дали какому-то приложению временный доступ к хранилищу(например), то оно может выкачать/проанализировать все файлы, созданные ранее. Временный доступ к хранилищу не создаёт временную отдельную папку(а хотелось бы), а даёт временный полный доступ к вашему общему хранилищу. Так что будьте аккуратней также и с функцией «Спрашивать».
В меню можно перейти в «Advanced(Дополнительно)», где можно видеть обращение к доступам в разрезе самих доступов, а не приложений.
С помощью Privacy Guard можно ограничивать доступы к «опасным» разрешениям не по группам, а по каждому отдельному разрешению Например, можно дать отдельный доступ только на чтение смс, отдельно на отправку смс.
Также в Privacy Guard есть возможность ограничивать многие «нормальные» доступы. Например, «Start at power up(Запуск при включении устройства)» — он же «RECEIVE_BOOT_COMPLETED» или «Run at startup» в стандартном описании Android. Как вы может видеть, что каждый инструмент имеет своё наименование для отдельных ограничений. Для того, чтобы вы могли сориентироваться, ниже я предоставлю отдельную таблицу с сопоставлением наименований ограничений из разных инструментов.
ВНИМАНИЕ:
В связи с запутанностью настроек стоит вопрос, как оперировать «опасными» разрешениями, как выставлять параметры и в стандартном функционале Android по группам и в Privacy Guard по отдельности. Основываясь на [195] и в частности на [197] можно заключить, что схема на момент составления комментария выглядела так:
а) Стандартное разрешение — Разрешено, PG — Разрешено: доступ предоставляется
б) Стандартное разрешение — Запрещено, PG — Разрешено: доступ предоставляется
в) Стандартное разрешение — Разрешено, PG — Запрещено: доступ закрыт только для того, что запрещено через PG, так как в стандартном разрешении даётся доступ на группу.
г) Стандартное разрешение — Запрещено, PG — Запрещено: доступ не предоставляется
д) Стандартное разрешение — Запрещено, PG — Спрашивать: доступ НЕ предоставляется
e) Стандартное разрешение — Разрешено, PG — Спрашивать: доступ запрашивается каждый раз
Но со времён этого комментария вышел LOS 16 и, видимо, что-то поменялось. У меня теперь пункт б) выглядит так: Стандартное разрешение — Запрещено, PG — Разрешено: доступ НЕ предоставляется.
То есть в LOS 16 настройки более ужесточены в сторону приватности. Если хоть что-то запрещено, то и доступа не будет.
Есть ещё моменты:
— в версиях LOS 14, 15.1 были сбои в работе Privacy Guard. Вроде в 15.1 исправили, в 14-ой версии не знаю(но она больше и не поддерживается).
— Если вы установили Gapps, то либо вы не сможете их ограничить, либо настройки сами будут переключаться в состояние «Разрешено» сразу как только вы выйдете из PG, либо устройство может войти в Bootloop и придётся переустанавливать LOS(или немного изощряться[199]). Меня это не удивляет. Ещё одно подтверждение тому, что Android с установленными Gapps становится собственностью Google, а не вашей.
— Если приложение старое и давно не обновлялось, то оно сможет получить некоторые доступы без запроса. Дело в том что Google шла навстречу разработчикам приложений и при каждой новой версии Android и, ужесточая некоторые доступы, позволяла разработчикам ещё в течении года обходить новые ограничения. Они регулировали это путём API level(о том как именно я напишу позже). Соответственно, если вы откуда-то качаете приложение, которое не обновлялось более года, то есть высокий шанс, что некоторые ограничения это приложение может обойти.
— Стандартный способ разграничения прав и PG основаны на разных механизмах [201] и оба эти механизма могут немного(или не немного) меняться от версии к версии Android-а и LOS соотвественно.
На основе всего выше обозначенного я бы советовала бы вам больше перестраховываться, например, вообще меньше устанавливать приложений не из F-Droid, запрещать доступ в интернет максимальному количеству приложений, закрывать доступы гарантированно и через стандартный механизм Android и через PG.
AppOpsX(com.zzzmode.appopsx)
Это приложение по сути выполняет ту же функцию, что и PG, только там есть дополнительные настройки, которых нет в PG. Например, вместо отдельной настройки change your audio settings(Изменение настроек аудио) представлено множество мелких настроек, такие как Управление громкостью сигналов, Управление громкостью уведомлений и так далее.
Из того что ещё хотелось бы упомянуть также: возможность более детально настраивать разрешения по доступу к разным источникам местоположения, такие как Mock location(из отдельного приложения, которое может делать фэйковое местоположение — привет покемоноводам), Приблизительно местоположение(NEIGHBORING_CELLS) — для определения по сотовым вышкам.
Если честно, я не тестировала возможность детального ограничения источников местоположения в AppOpsX, так как там:
- какая-то путаница в названиях типов доступов. Например «Приблизительно местоположение» в PG означает доступ к координатам по сотовым вышкам и по Wi-Fi, в AppOpsX же это название закреплено только за координатами по сотовым вышкам.
- У меня нет Gapps(и других UnifiedNlp location provider) и соответственно нет никаких программ, которые могли бы обрабатывать значение сотовых вышек и я не могу проверить корректность работы детальных ограничений.
Также в AppOpsX есть другие настройки, которых нет в PG и в стандартных настройках Android, и которые я посчитала полезными. Например:
Read clipboard(Чтение буфера обмена) и Modify clipboard(Изменение буфера обмена). Такие функции ограничения должны появиться в Android 10 Q, но она уже есть в AppOpsX в Android 9 Pie.
Если некоторые настройки, которые есть в AppOpsX, но которых нет в PG, запретить в AppOpsX, то они также появятся в PG. Это иногда неудобно для восприятия.
Также есть неудобство в том, что если что-то запретить приложению в AppOpsX, а потом вернуть доступ, то в некоторых случаях доступ вернётся только если перезагрузить смартфон. Не знаю с чем это связано.
Давайте пройдёмся по настройкам.
-Automatically turn off permissions(Автоматически отключать разрешения) — функция при которой AppOpsX отключает разрешения сразу при установке приложения. К сожалению на некоторых устройствах с Android 9 Pie AppOpsX не работает в стандартном режиме(просто с root) и данная функция в таком случае не работает.
-Close permission template automaticaly(Шаблон для автоматического отключения разрешений) — выбор какие именно разрешения будут отключены при включенной функции Automatically turn off permissions(Автоматически отключать разрешения)
-Use ADB mode(Использовать режим ADB) — если на вашем устройстве AppOpsX не работает в обычном режиме суперпользователя, вы можете попробовать через режим ADB. Для этого вам необходимо будет включить в настройках разработчика ADB over network(ADB по сети) и в настройках AppOpsX ещё включить Use scipt start server(Использование скрипта). Также в AFWall+ дать доступ для AppOpsX к localhost в LAN control/Управление сетью.
-Allow running in the background(Разрешить работать в фоновом режиме) — эту настройку также необходимо будет включить, если вы захотите использовать «Automatically turn off permissions(Автоматически отключать разрешения)»
-Root compatibility mode(Режим совместимости с рут правами) — если у вас не работает AppsOpsX, то есть это ещё одно обходное решение. У меня на LOS 16(Android 9) работает именно оно. К сожалению в таком режиме также не работает Automatically turn off permissions(Автоматически отключать разрешения).
-Show system apps(Отображать системные приложения) — если у вас прошивка отличная от официального LOS, то лучше также постараться поограничивать и системные приложения. Тут надо быть внимательным, так как чрезмерное ограничение может вообще поломать функциональности прошивки, особенно при ограничении таких приложений как System и так далее. Хотя вы можете отключить доступы и для системных приложений официального LOS(аудиоплееру, звонилке и так далее), если вы и этой прошивке не доверяете.
В самом меню можно включить режим просмотра разрешений не в разрезе приложений, а разрезе разрешений, что очень удобно.
Список разрешений
Частично основывалась на статьях [203], [205] ,[207], [209] и других.
Хотелось бы поделится с вами теми разрешениями, на которые я обращаю пристальное внимание:
ACCESS_WIFI_STATE — View Wi-Fi connections
CHANGE_WIFI_STATE — Connect and disconnect Wi-Fi
INTERNET — Full network access — как я уже писала выше ограничиваю стандартными средствами Android(которые не вырезаны в LOS) и через AFWall+
RECEIVE_BOOT_COMPLETED-Run at startup — ограничиваю ВСЕМ приложениям, кроме тех, которым это 100% необходимо(почтовик, мессенджер, Orbot, AFWall+,AdAway и системных)
READ_PHONE_STATE — Read phone status and identity — ограничение доступа к многим несбрасываемым данным. Но не стоит сильно надеяться на данное ограничение, многие данные можно получить косвенным способом.
WAKE_LOCK-Prevent device from sleeping — ограничиваю тем приложениям, которым также ограничиваю работу в фоне.
READ_CLIPBOARD-Read clipboard — я не знаю могут ли приложения получать доступ к буферу обмена даже если не «зажимать» тап на несколько секунд для вызова меню буфера обмена. На всякий случай недоверенным приложениям я отключаю чтение буфера обмена.
RECEIVE_MMS — советую отключить даже у дефолтного приложения. Особенно если у вас не последняя версия Android(или LOS). Ранее через MMS пролезало слишком много нехорошего.
И естественно ограничиваю все разрешения с типом Dangerous(опасные) тем приложениям, которым это не надо.
Вышеперечисленные рекомендации не означают, что вы должны полагаться только на мой опыт. Советую вам самим всё изучить.
Что нельзя ограничить
Теперь давайте перейдём к «весёлому» — разрешения, которые практически или вообще невозможно ограничить:
- Возможность получить список приложений. Можно ограничить только средствами XprivacyLua, но это не очень безопасно, если не аккуратно следить за тем, что делаешь с устройством. Только для опытных пользователей. Также частично можно ограничить доступ если сделать Рабочий профиль, об этом я напишу далее.
- Доступ к таким датчикам как, компас, акселерометр, датчик атмосферного давления и так далее.
- Куча мелких недоработок Android, которые не позволяют за вами следить напрямую, но позволяют много чего выяснить косвенно [211], [213]
ЛИЧНЫЙ ОПЫТ, С НЕГАТИВНЫМИ ВЫСКАЗЫВАНИЯМИКак-то в 2015-2016 году ко мне обратились с просьбой посмотреть смартфон Xiaomi на проблему быстрого разряда и для проверки на наличие вирусов. И я начала копаться в настройках. Оказалось, что в данной прошивке уже на тот момент была возможность не просто ограничивать доступ, а выставлять настройку «Спрашивать» для доступа. Ради интереса я проставила всем приложениям для ВСЕХ доступов тип «Спрашивать», так как только так можно было понять какие приложения пытаются просканировать что-либо(если «Запретить» или «Разрешить», то никаких уведомлений нельзя было увидеть). Я конечно была очень удивлена тем сколько приложений постоянно что-то считывают. Особенно китайских. Калькулятор, прогноз погоды, скачивание обоев и другие приложения просили доступ ко всему! Но что нам до китайских приложений(хотя некоторые системные приложения в MIUI никак ограничить нельзя), удивило меня даже не это. В ходе экспериментов и детальных настроек я убрала возможность автозапуска и работу в фоне большинства приложений. На этом устройстве были установлены два приложения IT компаний России из топ-20, и при запуске любого из этих приложений моментально другое приложение запрашивала доступ ко всему чему можно(местоположению, микрофону, и так далее)!!! Эти компании не были никак связаны особыми соглашениями о сотрудничестве, и насколько я смогла проверить разработчики этих приложений были разные. Вдумайтесь — эти компании договорились о том, чтобы их приложения запускали друг друга даже когда пользователь убирает возможность автозапуска и бескомпромиссно начинают считывать аудио с микрофона и геолокацию. Также каким-то образом обходили запрет работать в фоне. Я специально не афиширую названия для того, чтобы заявить — тем кто принимал решение так сделать уготован отдельный котёл.
Я уже не помню как мы вышли из ситуации, но пришлось попотеть. Убрала возможность работать в фоне и включала оптимизацию батарейки, либо была какая-то отдельная хитрая настройка возможности запуска фоновых сервисов — не помню.
Продолжим списком тех ограничений, которые появятся в Android 10 Q(а это значит что их на данный момент нет в Android 5,6,7,8,9).[215]
- Доступ к proc/net. Сейчас ограничить нельзя никак НИКАКИМИ средствами. Можно только использовать прошивку GrapheneOS, но она достаточно стабильна только на устройствах Pixel 3a, Pixel 3a XL, Pixel 3 и Pixel 3 XL.
- Scoped storage [217] — раздельное ограничение для доступа к папкам на «внешнем» хранилище. То есть, по идее можно будет ограничить доступ только к своей папке и на выбор к папкам с аудио, видео, фото. НО опять есть ньюансы:
а) Если разработчик не будет обновлять своё приложение и будет оставаться на level API = 28(соответствующим Android 9), то ограничить таким образом приложение будет нельзя.
б) С помощью какого-то там манёвра[219] у разработчика ещё будет 1-год до августа 2020 года возможность обойти это ограничение. - Вводится ограничение ACCESS_BACKGROUND_LOCATION [221] — доступ приложения к геолокации, когда приложение находится в фоне. Опять-таки жёстко ограничение будет введено только в 2020 году, и ещё целый год разработчики приложений смогут избегать данного ограничения.
- Какое-то дополнительное ограничение на запуск каких-то действий в фоне[223]. Мне лично непонятно как это отразится на прозрачности работы приложений, но надеюсь это будет на пользу. Эти ограничения вступают в силу для любого приложения работающего на Android 10 Q.
- Ограничение на доступ к несбрасываемым идентификаторам, таким как EMEI, Wi-Fi MAC, серийный номер устройства и так далее. Эти ограничения вступают в силу для любого приложения работающего на Android 10 Q, что есть хорошо.
- Все приложения использующие методы на считывание наименований ID сотовых вышек, или на сканирование Wi-Fi точек или сканирование Bluetooth устройств должны также иметь доступ к геолокации.
- Доступ к буферу обмена. Нельзя будет сканировать буфер обмена в фоне. Надеюсь реализуют возможность, чтобы приложение не могло сканировать буфер обмена, но можно было вставить/скопировать через клавиатуру, так как сейчас при ограничении приложению доступа к буферу обмена(через AppOpsX) нельзя вообще ничего сделать с буфером в приложении, даже через стандартную/родную клавиатуру.
- Другие небольшие улучшения в части приватности.
Я не нашла как ограничить запуск приложением других приложений. Это было частое явление в версиях Android 6 и 7, но последнее время я такого не встречала. Либо в Android ограничили эту возможность, либо из-за того, что я тщательно подбираю приложения, такого теперь у меня не случается.
Level API/sdk
Google от версии к версии Android что-то меняет в своей системе, что-то добавляет, что-то убирает, что-то ограничивает. И с каждой новой версией Android предоставляется новая версия Level API.[225]
И если в Android что-то ограничивается в новой версии, то в большинстве случаев эти ограничения не влияют на приложение сразу. Давайте разберём новый алгоритм разрешений для доступа к файлам на устройстве — Scoped storage. Это разграничение появится в Android 10 Q в котором будет уже новый Level API=29. И вот вы, предположим, купите себе устройство с Android 10 Q или поставите прошивку с Android 10 Q на ваше устройство. Но если разработчик какого-либо приложения при сборке своего приложения укажет Level API=28, то его приложение даже на вашем устройстве с Android 10 Q будет иметь доступ ко всему хранилищу без возможности разграничения на папки. Вы дали доступ к SD-карте, но не давали доступ к конкретным папкам(фото, видео, музыке). Вы пользуетесь этим приложением, оно не спрашивает доступ к отдельным папкам и вы думаете, что всё хорошо, но это приложение будет иметь доступ ко всем файлам! Ну а что тогда не позволяет разработчикам бесконечно откладывать Level API своего приложения?: в Google Play через год после выпуска определённой версии Android и Level API не будут пропускаться приложения, которые не соответствуют последней версии API. То есть Google даёт отсрочку на год на внедрение каких-либо ограничивающих функций.
Будьте внимательны, не полагайтесь только на версию Android, смотрите также на версию Level API приложения.
Для установленных приложений можно посмотреть Level API в приложении «apps_Packages Info
(com.oF2pks.applicationsinfo)»[227]. Это интересное приложение, которое кроме Level API(или как там оно называется SDK) показывает также и другую интересную информацию.
Как посмотреть Level API/SDK приложения в Google Play или на других сервисах я не нашла.
По поводу необходимости отслеживать разрешения
Давайте рассмотрим на примере такого «замечательного» мессенджера Telegram разрешение на чтение и запись в хранилище. Оставим в стороне то, что в telegram регистрация только по номеру телефона и то, что код их серверов закрыты, давайте поговорим о том как работают их чаты. Есть проблема, которую описывал пользователь alex0ff [229] ещё в 2014 году.
Опишу версию из F-Droid в которой не менялась структура папок[231].
Следите за руками(сим салабим) — для хранения своих данных приложения имеют несколько вариантов:
- На системном разделе в папке data/data. Ранее в данном разделе вообще никакие приложения не хранили данные, так как Android устройства оснащались малым количеством памяти, а остальное «добиралось» внешними SD картами. И даже те устройства, которые имели относительно большую внутреннюю память, на самом деле имели у себя просто вшитую SD карту. Соответственно до недавнего времени хранить там большие данные было нельзя(что кстати не останавливало системные приложения Samsung, память забивалась даже при отсутствии других приложений). Доступ к этому разделу только для своей папки может получить только само приложение или пользователь, у которого есть рут через какой-нибудь специальный файл менеджер. Но ситуация года как 3 изменилась. Настоящей памяти стало относительно много и теперь можно хранить данные в данном разделе. Ну или по крайней мере спрашивать пользователей(кстати, некоторые приложения так и делают).
- На разделе под названием sdcard(это только называется так исторически, по сути это та же внутренняя память устройства) в папке Android/data
Данные в этой папке в своей подпапке с приложением(в описываемом мною случае это sdcard/Android/data/org.telegram.messenger) могут быть
а) всегда просмотрены/изменены самим приложением(Telegram-ом) вне зависимости от того, дали ли вы ему доступ к хранилищу или нет.
б) прочтены ЛЮБЫМ другим приложением с доступом к хранилищу(имеется ввиду тот доступ, который вы выдаёте)!!! - В любом месте на sdcard(кроме Android/data). Например, тот же телеграм в разделе sdcard создаёт папку «Telegram». Эти данные могут быть прочтены и изменены любым приложением, у которого есть доступ к хранилищу(имеется ввиду тот доступ, который вы выдаёте).
Что имеем в итоге:
а) все файлы не из секретных чатов сохраняются в папке sdcard/Telegram. Любое приложение также с доступом к хранилищу может считывать эти данные. И многие приложения делают это. Было куча исследований на эту тему. Я уже приводила одну статью [211], [213]. Сейчас алгоритмы настолько мощные и процессоры на серверах настолько дешёвые что распознавание всего того, что есть на картинках — стандартная задача для третьекурсника ИТ специальности. Также я уже писала в этой статье что приложение Facebook пытается сканировать proc/net для сбора информации о посещённых вами IP(по которым можно вычислить и сайт). Вы думаете, что Facebook(и принадлежащий ему WhatsApp и Instagram) не будут также сканировать все ваши данные из других программ? Конечно будут.
б) все файлы из секретных чатов по идее не должны сохраняться в общем хранилище. В действительности же файлы(но вроде не все) сохраняются в папке sdcard/Android/data/org.telegram.messenger!!! Их видят все приложения с доступом к хранилищу. Почему они не сохраняются в data/data/org.telegram.messenger, чтобы их никто не мог видеть? Слишком много вопросов от меня и так мало ответов от Павла.
Давайте так, если вы ничего не поняли из того, что я написала, то опишу проще:
Например, у вас есть приложения Telegram и WhatsApp. Оба приложения просят доступ к хранилищу, иначе вы не сможете отправлять свои файлы друзьям(в телеграм хотя бы получать можно, в WhatsApp даже получить файлы нельзя). Вы даёте обоим приложениям доступ к хранилищу и WhatsApp видит все фотки из секретных чатов телеграма и 99%-ов, что отсылает на свои сервера. Надеюсь так понятней.
Вышесказанное не означает, что это касается только Telegram или WhatsApp. Это касается и других приложений(я бы сказала большинства).
Лично я не даю доступ к хранилищу никаким приложениям имеющим доступ в интернет. Да, это тяжело осуществить. Пришлось переходить на Conversations в части мессенджеров и отслеживаю периодически запросы через логирование в AdAway.
Ещё пример. Была уязвимость(но больше похоже на закладку) в WhatsApp-е[233]. Как можно частично избежать таких уязвимостей — не давать доступы самому WhatsApp. То есть злоумышленники могли делать всё, что мог делать WhatsApp, но если бы у WhatsApp-а не было бы доступов(или он был бы установлен в рабочий профиль), то злоумышленники смогли бы только прочитать переписку в самом WhatsApp-е, но не видеть остальные данные на устройстве.
То есть, даже если разработчики приложения не собирают данные о вас, то уязвимость в приложении может позволить злоумышленникам через это приложение считывать ваши данные, если вы не ограничили доступы этому приложению.
Кстати, эта уязвимость также касалась и WhatsApp на iPhone.
Исторически сложилось, что внутренняя память устройства называлось SD-картой, так как в первых устройствах в действительности не было нормального чипа с памятью и его заменяла SD карта(впаянная). Сейчас же чипы с нормальным количеством памяти устанавливаются в устройство и название поменялось на «usb-storage». А теперь под SD картой понимается реальная отдельная внешняя SD карта(которая, не всегда поддерживается устройством). Но в структуре папок на Android всё равно осталось наименования sdcard для внутреннего хранилища. Так как зачастую SD карты в России продаются поддельные, а также из-за того что скорость их всё равно пока невысока, и шифрование внешней SD карты до последнего времени работало криво(хотя как сейчас — я не знаю), то я ими не пользуюсь и не могу ничего сказать по поводу использования внешней SD карты. Я обычно рекомендую использовать устройство с бОльшим количеством внутренней памяти, вместо SD карты.
Ещё раз рекомендую прочитать цикл статей и на эту тему в частности [69].
В стандартном Android есть отдельная функция, называемая «Рабочий профиль». Он нужен для того, чтобы на одном телефоне было как бы два пространства — ваше личное и для приложений по работе. Для того, чтобы рабочий профиль был активирован, нужно установить специальное приложение от вашего работодателя. Но вы можете воспользоваться этим механизмом без «чужих» программ, активировав его с помощью приложения Shelter(net.typeblog.shelter) из F-Droid.
При первом запуске этого приложения необходимо будет дать доступ к «Install unknown apps(Установка неизвестных приложений)» и Device admin apps(Приложения администратора устройства). Достаточно серьёзные права, но они необходимы для работы приложения. При этом это приложение не просит доступа в интернет и не просит рут доступа, является open source(в отличие от аналога Island).
При первой установке необходимо некоторое время, чтобы создалось отдельное пространство, до 5 минут. На некоторых прошивках(сильно переработанных Android) приложение может не сработать и время на подготовку будет длится бесконечно. Телефон в таком случае не сломается.
В LOS 14, 15.1 и 16 всё работает.
Какие возможности даёт рабочий профиль?
-Отдельный список аккаунтов
-Отдельный список контактов
-Отдельная память
То есть вы можете установить в рабочий профиль приложение и оно не будет иметь практически никаких данных из личного(стандартного) профиля за некоторыми исключениями:
-доступ к proc/net — приложения из рабочего профиля может видеть список IP адресов к которым подключаются приложения из личного профиля.
-IMEI
-Датчики типа компаса и другие.
В любом случае, если вы установите два приложения от одного разработчика в личный профиль и в рабочий профиль, то разработчик легко сможет связать, что эти приложения установлены на одном и том же устройстве. Например, через всякие идентификаторы EMEI. Но даже если ограничить доступ к таким идентификаторам, то увязать можно через разрешение экрана, уровень заряда батареи и статистику типа используемой связи(Wi-Fi или сотовая свзяь) на конкретные промежутки времени и так далее.
После активизации рабочего профиля в настройках во многих пунктах появятся пункты для рабочего профиля. В Accounts(Аккаунты) появятся пункты связанные с рабочим профилем. Необходимо зайти в «Work profile settings(Настройки рабочего профиля)» и убрать «Contact search(Поиск контактов)»
В самом приложении Shelter также можно скопировать приложение из личного профиля в рабочий, но без ваших данных.
Особенности рабочего профиля и Shelter:
- Приложения рабочего профиля не могут задействовать VPN из личного профиля. Я пыталась установить VPN в рабочий профиль — приложение устанавливается, отдельный VPN в списке VPN создаётся, но всё равно приложения рабочего профиля не используют VPN. Видимо VPN можно использовать только в личном профиле.
- Рабочий профиль можно отключать(не удалять, а отключать) через одно нажатие и всё приложения из рабочего профиля должны закрыться. Крутая функция, которая также снижает потребление энергии редкоиспользуемыми приложениями в рабочем профиле.
- Ярлыки приложений из рабочего профиля имеют дополнительный значок в виде портфеля.
Как взаимодействуют другие предложенные инструменты:
1) AdAway — AdAway личного профиля также работает и для рабочего профиля, также блокирует запросы и также видит статистику обращений
2) AFWall+ — AFWall+ личного профиля также работает и для рабочего профиля, также блокирует запросы и также видит статистику обращений. Как я писала выше есть ограничение — AFWall не видит приложение в рабочем профиле, если такое же приложение не установлено в личном профиле. Необязательно приложение в личном профиле включать или использовать, главное чтобы было такое же приложение.
Также в настройках AFWall+ необходимо включить «Dual apps Support/Поддержка двойных приложений»
3) PrivacyGuard — к сожалению, этот инструмент плохо работает с рабочим профилем в части отображения приложения в самом PG. PG по какому-то своему принципу решает показывать ли приложения из рабочего профиля на главной странице. Но в Advanced(Дополнительно) можно увидеть приложения из рабочего профиля и соответственно ограничивать их.
4) AppOpsX — в меню должна появится настройка «Users(Пользователи)», в котором вы можете выбрать «Work profile». Иногда эта настройка появляется не сразу и надо подождать
несколько секунд, или перезапустить AppOpsX.
5) Orbot без VPN — если у вас есть приложение, которое может работать через Orbot как через прокси — то оно может получить доступ к сети Tor Orbot-а из личного профиля и соответственно к сети интернет через Tor.
Также приложения в рабочем профиле автозапускаются при включении рабочего профиля, так что если вам этого не надо — можете также убрать разрешение «RECEIVE_BOOT_COMPLETED Run at startup»
Исходя из особенностей рабочего профиля я использую его только для пары проприетарных приложений и браузера для захода на сайты, которые не открываются через VPN/Tor.
При использовании проприетарных приложений, я стараюсь закрывать все остальные приложения использующие интернет, чтобы не дать этим приложениям считать IP адреса через proc/net.
XprivacyLua — модуль для Xposed.
Интересный модуль, может ограничивать доступ приложений к некоторым данным и даже в некоторых случаях давать «фейковые» данные приложению. Многие ограничения уже есть в последних версиях Android, но также этот модуль может ограничивать доступ к сенсорам и подменять некоторые идентификаторы(но не все[235]).
XprivacyLua требует signature spoofing, что, как я писала выше, повышает риски закрепления в системе вирусов, если вирусы каким-то образом проникли в систему.
XprivacyLua НЕ МОЖЕТ ограничить доступ к proc/net.
По моему личному мнению XprivacyLua есть смысл использовать только на устаревших версиях Android, но всё равно очень аккуратно.
С помощью инструмента ADB можно делать интересные вещи[237], [239]
Помимо того, что adb нужен при разблокировке загрузчика и установки LOS, с помощью этой программы можно осуществлять и другие действия.
Например, если у вас какая-то «нехорошая» прошивка с левыми системными приложения и вы не можете поставить нормальную прошивку, то с помощью adb в некоторых случаях можно удалить системные приложения[241] (только не устанавливайте левых приложений из этой инструкции, пробуйте просто через терминал на компьютере). Конечно, удалять системные приложения надо аккуратно, читая на форумах зачем нужно то или иное приложение. Но если Facebook установлен как системное приложение — лучше его удалить:). В некоторых случаях Google Play сам обновляет и снова размораживает «замороженные/отключенные» приложения, так что просто удалить обновления на некоторые системные приложение не помогает и лучше всё-таки удалить через ADB, если получится. На сайте 4pda много инструкций на эту тему для разных прошивок.
Также если у вас на вашей прошивке нет PG и не запускается AppOpsX, то некоторые разрешения у приложений вы можете забрать через adb. Вот статья на добавление разрешений. [243]. Аналогично команда revoke — отбирает разрешения.
Будьте аккуратны со скачиванием всяких программ помощников для ADB, они позволяют более удобно с помощью компьютерной мышки реализовывать команды через ADB, но также они могут содержать вирусы и установить их как вам на компьютер, так и на ваш смартфон.
Не смотря на то, что в стандартной поставке LOS нет приложений от Google(Gapps), но всё же в прошивке остаются некоторые компоненты, завязанные на сервисы Google. Один хороший пользователь составил список того, что используется в LOS некоторые компоненты/сервисы Google и как это отключить/изменить[245]. Учтите, что изменение настроек может отличаться в LOS 14, 15.1 и 16.(что и сказано в статье).
DNS
DNS — Google старается подсадить всех на их DNS. Многие помнят как в некоторых случаях интернет работал быстрее, если выставить в настройках роутера или компьютера DNS 8.8.8.8
В таком случае Google видит список тех сайтам, по которым ходит пользователь с определённого IP. Собирая данные по крупицам и используя в том числе эту информацию, составляют досье на конкретных людей.
По идее в Android при подключении по Wi-Fi используется DNS выставленный в настройках роутера. Но при подключении к интернету по сотовой сети может использоваться DNS Google-а. Так как я использую Orbot и блокирую все лишние запросы от приложений(в AFWall+) — то я ни разу не видела, чтобы использовался DNS Google. Но в любом случае проверяйте через специализированные сайты, например через dnsleaktest.com[59].
Но в LOS 16 для сотовой сети нельзя поставить любой DNS от ОПСОСа, можно использовать только те DNS, которые поддерживают DoT — DNS over TLS. Таких очень мало.[247]. DoT и DoH позволяют скрывать от провайдера наименование сайтов на которые вы заходите(но не IP). Это очередное «нововведение» направление в первую очередь на поглощение интернета Google-ом.
В LOS и в чистом Android в некоторых случаях проставляют DoT не от Google, а от Cloudflare(1.1.1.1). Лично моё мнение — Cloudflare очередной монополист, его усердно пиарят, его скрипты сейчас на всех сайтах. Лично я также не особо доверяю Cloudflare.(но это тема для отдельной статьи).
Если в настройках Settings > Network & internet > Advanced > Private DNS выставить «Off», то по идее будет DNS от сотового оператора.
Какому DNS доверять — дело ваше. Я по максимуму использую Orbot и мой DNS постоянно меняется и сайты не видят на каком IP я нахожусь, а видят только IP выходной ноды Tor.
Captive Portal
Captive Portal — я уже писала как ограничить. Но можно использовать не гугловский Captive Portal, в том числе свой. В статье выше предлагают «https://captiveportal.kuketz.de».
A-GPS
A-GPS — в разных устройствах сервера для A-GPS могут отличаться. Если используются гугловые сервера — то посылаются данные на их сервера с вашим IMEI!!! Я предполагаю, что таким образом Google также может узнать ваше местоположение. Просто отключение A-GPS может не помочь. Лучше или запрещать GPS выход в интернет(например через AFWall+) или менять сервер в настройках. В статье выше описано как это сделать. Но даже это в некоторых устройствах никак не отключить, так как сам чип устройства даже без Android имеет свою операционную систему и может работать автономно(об этом также немного опишу ниже), в том числе в части запросов на A-GPS.
AOSP Webview
AOSP Webview — в LOS есть реализация браузера AOSP Webview. По сути это движок Chromium. Сам по себе это не браузер. Но этот движок могут использовать другие браузеры и программы. Например, некоторые браузеры весят всего 4-5 МБ потому что на самом деле они основаны на Webview. Также некоторые программы используют Webview для просмотра данных в своей программе. Из того что я знаю — почтовая программа K-9 Mail.
Я НЕ ЗНАЮ насколько использование AOSP Webview отсылает данные в Google при использовании программами. Насколько я могла наблюдать в AdAway — никакие данные при использовании AOSP Webview программами типа K-9 Mail не передаются в Google.
Вы может заменить AOSP Webview на Bromite Webview[97], но это требует рута.
Я не нашла пояснений как использование AOSP Webview снижает приватность, кроме 1-го момента: при использовании приложением WebView посылается также информация о наименовании приложения, который использует WebView. Вот пояснение от браузера DuckDuckGo [249] и от самого Google[251].
Project Fi
Project Fi — у Google есть свой сотовый виртуальный оператор и на некоторые устройства на LOS устанавливаются программы для поддержки их виртуального сотового оператора. Наименование этих приложений вы можете увидеть в той же инструкции, что я приводила выше[245]. Удалите эти приложения. Учтите, что эти приложения могут быть установлены не только на тех устройствах, которые перечислены в этой инструкции, так что проверьте у себя в любом случа, даже если у вас другое устройство на LOS.
Если вам понадобилось делать какие-то вещи с внутренностями системы, то следует заранее делать бэкап. Вот примерные инструкции как это можно делать с помощью TWRP — [253],[255].
Какие это могут быть действия:
-Переход с мажорной версии на мажорную версию(например с LOS 15.1 на LOS 16)
-Установка firmware
-Включение шифрования, если вы забыли это сделать при первом включении
-Разного рода глюки, при которых рекомендуется заново поставить прошивку
-Если у вас нет программы для резервирования ваших данных в облаке(например Nextcloud), вы можете делать бэкап просто для того, чтобы сохранить данные от случайного удаления.
-При переходе границы в некоторых странах требуют отдать погранслужбе ваше устройство в разблокированном состоянии для того, чтобы считать с устройства все данные или даже поставить программу для дальнейшего отслеживания всех ваших действий(как на китайской границе). Можно заранее сделать бэкап, удалить все свои личные данные, пройти границу, а потом бэкап снова «накатить» на устройство.
Учтите, что можно делать бэкап разных разделов и надо быть внимательным при восстановлении бэкапа. Например, при переходе с LOS 15.1 на LOS 16, при переходе с неофициальной версии LOS на официальную и при других случаях подходят разные инструкции и разные возможности для восстановления бэкапа. В некоторых случаях вы можете восстановить всё, в некоторых случаях только медиа файлы.
Будьте внимательны с бэкапами, так как бэкап сохраняется на память устройства и если вы случайно отформатируете все данные на устройстве — то сотрётся и бэкап.
Также хотелось бы отметить, что TWRP в некоторых случаях не даёт выбрать папку с бэкапом, так как бэкап должен лежать только в специальной папке. Если вы скинете бэкап на компьютер(например через ADB), потом придётся поискать в какую именно папку подкладывать файлы с бэкапом.
Если вы считаете, что на вас нацелились(например, конкуренты) и у вас на устройстве есть очень важные данные, то можете сделать отдельное хранилище на устройстве с помощью программы EDS Lite(com.sovworks.edslite) или аналогичных. Плюс в том, что эти данные будут зашифрованы отдельно от шифрования Android. Но в любом случае, если злоумышленники незаметно от вас установили на ваше устройство их вирус, то при разблокировании этого хранилища данные утекут.
По поводу того, есть ли какие-то хитрые глубокие закладки в смартфонах? Есть!
- Вот, например, разработчики прошивки Replicant нашли бэкдор(backdoor/закладка) в прошивке устройств Samsung в закрытом драйвере.[257],[259].
Приемлемого ухода от этой проблемы для среднестатистического пользователя нет. Можно использовать прошивку Replicant, но она ставится только на малое количество устройств и версия Android там устаревает. Но не всё так плохо. Такое всё реже встречается(кроме китайских устройств и прошивок), так как если кто-то найдёт такое в устройстве — то репутационные потери могут оттолкнуть пользователей. Так что это не частый случай у нормальных производителей. - Помимо таких закладок могут быть и другие закладки на уровне «железа». На современных смартфонах процессор, радиомодуль(GSM, 3G, LTE) изготавливаются вместе на одном чипе. И у этих чипов есть своя прошивка со своей мини операционной системой с доступом к всем внутренностям(памяти, микрофону и так далее). И ходят слухи, что в самом чипе могут быть закладки.[261] Воспользоваться такими закладками смогут только спецслужбы, и только в том случае если на такое пойдёт производитель чипов и выдаст ключи к бэкдорам. Обезопасится от этого никак не выйдет, кроме того, что не совершать ничего особо гадкого, так как никто не будет рисковать использовать эти уязвимости только для того, чтобы прослушать как вы ругаете Трампа на кухне. Для этого спец. службам достаточно какого-нибудь установленного приложения от Mail.ru или Яндекс с доступом к микрофону.
- уязвимости в «железе» и в драйверах к железу. Один из последних примеров уязвимости Wi-Fi[263]. Такими уязвимостями может воспользоваться любой хакер, но при нахождении таких уязвимостей каким-либо хакером информация о ней не сразу расходится к мелким хакерам-школьникам. Выход простой — периодически ставить Firmware от производителя(если вы на LOS) и хотя бы раз в месяц ставить обновления самого LOS (В первых числах месяца).
Также можно ещё применять разного рода хитрости, например вообще физически уничтожить в устройстве Wi-Fi и GSM модуль(например обрезать антенны) и иметь с собой USB модем. Или выпаять микрофон и использовать только гарнитуру. Ну это либо для параноиков, либо для тех кого ищут(найдут всё равно, можно только отсрочить).
Replicant
Прошивка на основе Android 6, а точнее на LOS 13[265],[267]. Хороша тем, что в ней также пытаются переписать проприетарные драйвера устройств и сделать прошивку полностью открытой. Минус в том что мало поддерживаемых устройств, ещё меньше устройства на Android 6(для большей части устройств Replicant на основе Android 4.2)
GrapheneOS
Усиленная(в части безопасности) прошивка на основе Android. Есть много неплохих отличий от других прошивок(например, запрет на просмотр proc/net). Но стабильно работает только на Pixel 3a, Pixel 3a XL, Pixel 3 and Pixel 3 XL[269]. Также не даёт полный рут(AdAway не получиться использовать). Не работает с Gapps, хотя для меня это не проблема. Многие функции из GrapheneOS появятся в Android 10 Q. Если бы у меня были лишние средства на покупку какого-нибудь Pixel 3a, может быть я и попробовала эту прошивку.
Не Android устройства и прошивки
Librem 5 — смартфон на Linux[271], [273]. Ещё не поступил в продажу. Есть у этих смартфонов интересная функция — там будет отдельный чип для процессора, отдельный чип Wi-Fi и отдельный чип сотовой связи и пользователь сможет отключать их специальными физическими выключателями(перемычками). По скорости смартфон слабоват, и цена запредельная на предзаказе(700$). Но сам факт, что такого рода устройства начинают появляться очень радует.
Ubuntu touch — это не одной устройство, а прошивка (на основе прошивки для заброшенного Ubuntu Phone[275]). Разрабатывается(точнее дорабатывается) энтузиастами. Поддерживаемых устройств мало[277]. Мне кажется, что очень неплохой вариант для планшета, но к сожалению сейчас самих планшетов то почти и не выпускают.
А что же iPhone?
Помимо того, что Apple знает о вас ВСЁ, и отдаёт информацию Google, если вы используете Siri, есть и другие моменты:
- Apple делает эксклюзивные функции для своих «партнёров», о которых вы просто не знаете. Например Apple позволила Uberу “записывать” ваш экран и ваши действия на телефоне, даже когда вы уже закрыли программу Uber, скрывая это от пользователей (то есть от нас).[279]
[281]. Тут важен даже не факт того, что Uber имел какой привилегированный доступ, а факт того неизвестно каким другим «партнёрам» Apple даёт привилегированные доступы сейчас и в чём они заключаются.
Тут можно дальше даже не продолжать, этой информации должно хватить чтобы понять всё об Apple, «всё, приехали».
Но если вам этого мало, то «ок», читайте дальше. - 2 годы была «дырища» в их браузере[283] с возможностью получить ВСЕ данные с устройства. Без комментариев.
- Ваши запросы к Siri прослушивались людьми из «левых» компаний[285]. Причем в заголовках новостей(не только на хабре) пишут что-то типа «Apple больше не будет прослушивать запросы пользователей к Siri», что в корне обман. Потому что: а) Сотрудники головного офиса Apple всё равно смогут прослушивать ваши записи без вашего разрешения б) если вы дадите разрешение, то «левые» конторы всё равно будут слушать ваши разговоры. Мне интересно — когда iPhone будет запрашивать это разрешение, там будет написано расплывчато что-то типа «Помогите нам улучшить наши сервисы для вашего удобства и благополучия дорогой товарищ», далее ещё 100 эпитетов в вашу сторону и потом где-то внизу «путём супер безопасного анализа некоторых данных нашими партнёрами». Или всё-таки они напишут так как есть «Мы обо*рались, наши подрядчики вас слушают бесконтрольно, можно ли они дальше будут вас слушать, а мы, может быть усилим за ними контроль. И да, даже если вы не дадите разрешение, внутри самого Apple всё равно ваши записи будут доступны»? Я склоняюсь к первому варианту.
- Давайте посмотрим на некоторые ограничения, что будут в iOS 13(а это значит что этих ограничений не было ранее):
а) Ограничение на сбор информации приложениям с функцией интернет звонков работающих в фоновом режиме[287]. Из статьи непонятно какие данные собираются сейчас.
б) Ограничение на получение SSID и BSSID подключенного Wi-Fi, так как по этим данным можно определить местоположение человека[289]. - Была возможность сделать Jailbreak(что-то типа рута), её закрыли, а потом оказалось что снова открыли ЭТУ ЖЕ уязвимость[291]. Либо там в принципе творится полный бардак, либо это намерено. Я сомневаюсь, что такую вещь можно было пропустить. Что-то неладное творится в этом королевстве.
- Оказалось, что с этим jailbreak-ом можно продолжать пользоваться их кредитной картой(новая услуга).[293]. То есть в iOS нет проверок на то, что смартфон мог быть взломан. Это немного противоречит намёкам Apple, что они самая ориентированная на безопасность и приватность компания из крупнейших игроков.
- Нельзя поставить на iPhone браузер с нормальным блокировщиком треккеров и рекламы. В своём браузере у них есть базовая блокировка, но она слабовата.
И это только выдержки из последних новостей. Лично моё мнение — продукция Apple подходит только тем, у кого есть финансовые средства и кто вообще не хочет(или не может) разбираться в технике.
Положительные
Программные — на данный момент вопросы в части приватности поднимаются всё чаще. Google и Apple вынуждены шевелится и под давлением общественности(на самом деле просто от страха потерять долю на рынке) и в новых выпусках своих операционных систем пытаются делать упор на приватность. Как я уже выше говорила — в Android 10 Q появятся очень неплохие ограничения для приложений. Развиваются свободные программы, свободные сервисы облаков и так далее.
Дорабатываются прошивки на основе Linux(PureOS, Ubuntu Touch).
Сами смартфоны дешевеют(кроме тех стран где периодически обваливается курс валют). Сейчас за 150$ можно купить устройство, которое 5 лет назад стоило бы 400$.
Отрицательные
-Нет по-настоящему свободных «железок» на потребительском рынке. В Librem 5 хоть и используется Linux, но сам процессор относится к технологии ARM, который лицензируется у компании Arm Holdings. В любой момент Arm Holdings может прекратить сотрудничество и не выдавать лицензии, даже если от них это не зависит[295]. Помимо этого, никто не знает насколько глубоко могут быть зашиты закладки в этом оборудовании. И даже если будет устройство на какой-нибудь открытой архитектуре(например RISC-V), то не факт что на заводе не всунут какой-нибудь дополнительный микрочип с закладкой.
И пока что в этом направлении нет больших подвижек. Может быть мы дождёмся момента, когда можно будет прийти на завод(если таковые будут в России) и лично посмотреть на все шаги производства чипов.
-Google не благотворительная организация, и в любом случае пытается сохранить контроль над пользовательскими данными, усложняя жизнь таким как мы. С каждой новой версией Android они удаляют приложения из поставки чистого Android-AOSP[297]. Также удалили в последних версиях Android Miracast(для продвижения Chromecast), насильно внедряют всякие протоколы типа QUIC, DoT, DoH, которые не позволяют блокировать треккеры и запросы через блокировку DNS запросов. Неизвестно, что они сделают в Android 11. А дальнейшие перспективы ещё более туманны, так как Google разрабатывает очередную операционную систему Fuchsia[299] и неизвестно насколько в ней будет вшит Google(например, Chromium оказался не таким уж и свободным). Да и вообще монополия Android на смартфонах удручает. Пример монополии от Google: все пересели на браузер Chrome, а итоге Google хочет ограничить блокировщики треккеров и рекламы[301].
-Также наметилась плохая тенденция в ограничении разблокировки загрузчика. Huawei не позволяет разблокировать загрузчик и стремительно захватывает рынок в РФ. Xiaomi также накладывает ограничение на разблокировку, в некоторых случаях необходимо ждать 3 месяца после покупки устройства. Если Xiaomi также укрепиться на мировом рынке, то сможет также напрочь запретить разблокировку. Nokia вообще не позволяет разблокировать загрузчик. Samsung также движется в этом направлении.
Существует риск того, что в скором времени на территории РФ в принципе нельзя будет купить устройство с возможностью прошивки LOS.
-Как я уже говорила в моей прошлой статье[303] — вам никакая прошивка, никакое устройство не поможет, если не «включать мозги». Думайте, что вы скачиваете, какие доступы даёте, какие данные публикуете.
-Не давайте своё устройство никому в руки.
-Не подключайте своё устройство к чужим компьютерам, даже не пользуйтесь чужими кабелями[305].
-Старайтесь пользоваться программами только из F-Droid. Давать рут права можно ТОЛЬКО приложениям из F-Droid.
-В полной мере ограничивайте доступы приложений. Постарайтесь разграничивать права так, чтобы те приложения, которым необходим доступ в интернет, не имели других доступов(например к хранилищу, местоположению и так далее).
-Если для какого-то сервиса нет свободного приложения, старайтесь пользоваться веб версией сервиса(например Uber).
-Постарайтесь избежать установки Gapps на своё устройство.
-Постарайтесь избежать установки Magisk на своё устройство. А если установили — то внимательно следите за тем, какие модули устанавливаете.
-Шифруйте устройство.
-Старайтесь не поддерживать рублём те компании, которые не дают установить на свои устройства другие прошивки. Даже если сейчас у вас нет сил на то, чтобы установить и изучить LOS. Лично я никогда не куплю Huawei и буду всех отговаривать, пока Huawei не предоставят возможность разблокировать загрузчик без каких-то полулегальных путей с кодами и за приемлемое время(максимум 3 дня). Аналогично и другие компании, вне зависимости от их происхождения. Просто необходим бойкот всем моделям смартфонов, для которых нельзя разблокировать загрузчик или для которым производитель не выпускает обновления безопасности хотя бы 2 года. Это очень важно!!! Не ленитесь, если есть возможность — не жадничайте 1000 рублей и купите устройство чуть подороже, но с возможностью установить LOS — вы на этом на самом деле выиграете, так как, когда через год производитель забросит своё устройство, то вы сможете поставить LOS с последними обновлениями безопасности Android и сможете пользоваться устройством и дальше. Да и вообще неизвестно, что они отсылают на свои сервера, если вы используете закрытую прошивку. Даже если выясниться, что они следят за вами — ну «проинвестируют» в парочку проектов в России — и никто им ничего не сделает. Да и даже если их оштрафуют — эти деньги кто-нибудь вам отдаст?
Если вы подбираете новое устройство — то постарайтесь искать более актуальное(недавно выпущенное на рынок) распространённое устройство с поддержкой последней версией LOS. Желательно из серии Android One. Это всё повышает шансы на то, что данное устройство будет и далее поддерживаться командой LOS и повышает шансы на то, что LOS выпустит очередную версию для вашего устройства на основе новой версии Android. На данный момент это очень актуально так как в Android 10 Q будут очень неплохие улучшения в части приватности и покупая устройство сейчас, лучше повысить шансы на то, чтобы устройство получило обновление до LOS 17(на основе Android 10 Q). Те устройства, которые сейчас поддерживают LOS 15.1, а не LOS 16, вряд ли когда-нибудь получать LOS 17(на Android 10 Q).
Так как я не играю в покупные игры, не пользуюсь кинотеатрами типа Ivi, то мне не нужны Gapps. У меня не стоит 10 разных мессенджеров — соответственно у меня заряд держит сутки при плотном использовании смартфона(на выходных). В будни на работе к вечеру у меня остаётся 70% заряда, так как на работе я работаю, а не смотрю «сайтики». Orbot не сильно съедает батарею, гораздо сильнее батарея разряжается из-за экрана.
Все нужные мне приложения есть в F-Droid, кроме:
1) Банковского приложения. Можно пользоваться веб версией, можно поставить приложение и ограничить доступы. Всё работает с рутом. Насколько я узнавала — все банковские приложения в России работают без Gapps и с рутом. Если кто-то имеет другую информацию — сообщите в комментариях, пожалуйста. Желательно с конкретными наименованиями приложений/организаций.
2) Гео приложения. Есть разные приложения в F-Droid на основе OSM(Openstreetmaps), которые неплохие, но не дотягивают до коммерческих. Иногда маршруты автобусов не показываются, иногда приложения плохо ищут ближайшие магазины. Но в этом виноваты мы сами — надо самим рисовать карту OSM и улучшать её качество. Если вы считаете, что это бесполезная затея — то вы ошибаетесь. Несколько примеров: Google в какой-то момент значительно подняла цены на использование их карт коммерческими компаниями(сайтам, приложениям и так далее). Компании начали переходить на Mapbox(платные карты на основе OSM), и Google частично пересмотрела своё предложение, сделав так, чтобы для определённой доли пользователей использование карт было немного дешевле, чем в Mapbox. А если бы не было OSM и Mapbox — не было бы такой конкуренции, и цены у Google были бы выше. А это отразилось бы на стоимость для конечных потребителей, то есть для вас, дорогие мои. Пример важности карт №2 — Яндекс смогла поглотить Убер просто задрав им цены на свои карты[307]. А карты Google по России некачественные. Что имеем на текущий момент — почти монополиста в сфере вызова такси через приложение(компанию «Везёт» они тоже поглотили). Что нас ждёт в будущем — повышение цен на такси, и это повышение ничего не даст таксистам, для них всё останется как прежде. Просто вырастет процент забираемый Яндексом. А этого можно было бы избежать, если бы мы лучше отрисовали карту OSM. На самом деле ещё не поздно подключиться к этому процессу, в любом случае карта OSM с каждым днём становится всё лучше, всё больше организаций на неё переходят. Всё в наших руках. OSM — это именно тот случай, когда будучи не программистом можно помогать для продвижения свободных сервисов. Об этом надо писать отдельную статью. Может быть напишу.
В любом случае я не использую гео сервисы, основанные не на OSM. Да, иногда неудобно, приходится тратить время на поиски, но я выбрала этот путь.
Браузеры работают, почта работает, медиапроигрыватели работают, запись звонков работает, камера работает, мессенджеры работают, наушники работают. Что ещё для жизни надо?
Я предполагаю, что у вас могут возникнуть некоторые вопросы. В — Вопрос. О — Ответ.
В: Столько ньюансов, не проще ли ...(тут может быть что угодно).
О: Нет, не проще, если вы хотите пользоваться именно смартфоном. Во-первых, то что написано в статье на 70% касается не только LOS, а любого Android и даже iPhone(смотри уязвимость в WhatsApp). Во вторых, с большинством технических проблем при установке LOS вы не столкнётесь, если будете покупать устройство изначально на чистой оболочке Android и если будете чётко следовать инструкции. Другого выхода нет. Да, так устроен мир. Никто не позаботится о вашей приватности кроме вас самих.
В: А я слышал(а), что есть прошивка лучше, сосед посоветовал ...(тут может быть что угодно)
О: Большинство других прошивок неверифицируемы. Даже неофициальные версии LOS могут содержать пакости(я писала об этом, сама попадала).
В: Да на что мне эта твоя приватность сдалась, главное чтобы не украли зарплату.
О: Во-первых, методы в статье помогают в том числе и в части безопасности. Во-вторых: а как вы думаете злоумышленники крадут ваши деньги? Они сначала покупают данные о вас, а потом уже с этими данными вас «окучивают» — называют по телефону ваши полные данные, номера счетов, карт, ИНН, и вы теряете бдительность. Плюс, всё более распространён шантаж, лишение премии на основе политических взглядов и так далее. «Приватность в современном мире — это и есть безопасность.» Запомните это высказывание, через некоторое время это станет догмой.
В: Где найти время, деньги, силы на «вот это всё»? При этом ещё нет гарантии, что все угрозы будут устранены.
О: Я вас понимаю. Просто постарайтесь распланировать так, чтобы у вас получилось. Это может быть не сейчас, это может быть при следующей покупке смартфона. Частично, что-то вы можете сделать и сейчас(проверить инструменты ограничения доступов на текущей прошивке, удалить приложения не из F-Droid). А время и силы, я надеюсь, я вам немного сэкономила этой статьей. По поводу того что на 100% нельзя защититься — ну так во всём в этой жизни. Но защититься на 95%, лучше чем на 15%.
В: Я устал(а) бояться всех этих угроз. Надоело нервничать. Пусть будет как есть. Пусть смотрят, слушают, и так далее.
О: А вы не бойтесь. Звучит глупо, но так и есть. Просто шаг за шагом возвращайте себе право на неприкосновенность личной жизни и гордитесь этим. На вопрос «А почему тебя нет в одноклассниках?», или «почему тебя нет в WhatsApp-e» не надо прятать глаза и говорить, что не успели зарегистрироваться или говорить другие оправдания. Просто с гордостью говорите, что это ваше личное решение и вы так захотели. Всё. На этом точка.
Вы же каждую ночь не просыпаетесь в страшном поту от того, что вам приснилось, что у вас выпадают зубы. Но всё равно же вы их чистите. Так и с этим делом также — постепенно, шаг за шагом улучшайте свое «информационное здоровье».
В: Tor принадлежит ЦРУ, Моссад, МИ6 и так далее. При этом его могут легко прикрыть.
О: Про спецслужбы — может и так, меня это особо не интересует. Они не могут использовать легально данные собранные обо мне. Также они не будут следить за всеми подряд, так как не выгодно собирать данные на всех подряд без возможности их продажи. А целенаправленно за мной следить не будут, так как я ни в чём не замешана. Прикрыть могут, поэтому если вы технически грамотные — пробуйте другие сети/технологии типа i2p, zeronet, yggdrasil и пишите инструкции/статьи. Помогайте разработчикам тестировать решения, переводите на русский.
В: Tor медленный? Зачем его использовать?
О: Сайты открываются с той же скоростью. Вы не заметите разницы в том, что сайт откроется за 2 секунды или за 2,2 секунды. Те сайты, которые не открываются через Tor лучше не посещать. Они не открываются через Tor только потому что они хотят отследить вас. Нормальные сайты могут запрещать просмотр через Tor только временно на пару часов, когда на них идёт DDOS атака. Ну или личные кабинеты банков для защиты от кражи. А что насчёт видео — во-первых сейчас хватает скорости и для видео в нормальном качестве(кроме часов пик нагрузки на Tor сеть). Во-вторых, надо бы уже понять, что постоянное отвлечение на «видосики» только угнетает вашу нервную систему. Если есть какое-то стоящее видео — вы подождёте лишние пары секунд на буферизацию. Нет терпения ждать 2 дополнительных секунд — значит это информация в видеофайле вам не нужна.
В: Это неэффективно тратить столько времени на изучение всего этого.
О: В каком-то роде с вами согласна, с одним большииим исключением. Это может в каком-то смысле быть неэффективным, только если вы изучаете всё вышеперечисленное только для себя. Вот я изучила и применяю некоторые методики — и написала статью. Вам может быть будет легче. Эффективность потраченного мною времени для общества выросла. Да и для меня тоже, так как если кто-то откладывал переход на LOS, потому что не было времени разбираться — то теперь такому пользователю будет легче. А это снизит эффективность мошенников и их станет меньше. И моим внукам будет жить легче. Так и вы, если всё это изучите — то можете постепенно помогать друзьям, родственникам. Пришли к какому-нибудь родственнику в гости — поудаляли лишние приложения. Следующий раз поменяли следящие калькуляторы и фонарики на нормальные из F-Droid. Ещё через месяц поменяли браузер на Fennec с uBlockOrigin и клавиатуру. Потом подсказали какой смартфон купить и помогли прошить на LOS. И так за год-другой выдернули из лап вездесущей слежки 4-5 человек. Каждый освобожденный пользователь — это не только плюс для вашего окружения, это ещё и минус для этих неэтичных «грязных» компаний. Вы зря думаете, что это не имеет смысла и неэффективно. Блокировщики рекламы и треккеров в отчёте перед инвесторами Google значатся как одна из самых серьёзных угроз. Они это не выносят на общее обозрение, но на самом деле это самая реальная угроза для них(я не смогла найти эти статьи, где я это читала, к сожалению). Это реально подрывает их бизнес. С налоговиками и патентными троллями они как-нибудь договорятся(это всё разные карманы одних и тех «инвестиционных» групп), а с их жертвами(то есть с нами) договориться уже не получится.
В: Я хочу использовать приложения от Google и вроде у меня и так «чистый» Android. Смысл мне переходить на LOS.
О: Даже «чистые» прошивки на самом деле таковыми не являются. Начиная с того, что стоят неудаляемый Facebook(который, как я говорила, считывает все IP адреса на которые вы заходите) и «левых» клавиатур типа SwiftKey(который требует доступ в интернет), ещё может быть кучу закладок от производителя и его «партнёров». Вплоть до неудаляемых вирусов. Поищите в интернете информацию. Например, на сайте xakep.ru часто описывают такие случаи.
В: После настройки насколько тяжело поддерживать в работоспособном состоянии прошивку?
О: Практически никаких действий после тщательной настройки не потребуется. Кроме того что необходимо будет настраивать доступы каждому новому приложению, но это касается любой прошивки. Также после обновлений случаются проблемы с некоторыми функциями. У меня и моих знакомых никогда такого не было, но на форумах пишут, что такое иногда случается. Надо просто переустановить прошивку(предварительно сохранив данные). Этого тоже можно избежать, просто перед обновлением читать форумы и если возникают ошибки — подождать пару дней.
Не всегда получается перейти сразу. Не у всех есть средства. Давайте пройдёмся по некоторым методикам, которые частично могут помочь(частично я уже описывала в предыдущей статье[309]).
- Если у вас нет средств на новое устройство — постарайтесь настроить существующее.
В разных прошивках от разных производителей есть разные настройки безопасности. В некоторых случаях они даже похожи на Privacy Guard. Постарайтесь выяснить какие есть возможности именно у вашей прошивки. Ограничьте всё что можно.
Удалите лишние приложения. Желательно полностью перейти на приложения из F-Droid(например, клавиатура — AnySoftKeyboard, СМС — QKSMS, камера — Open Camera, калькулятор, браузер — Fennec+Tor browser, почтовый клиент K-9 Mail, медиапроигрыватель VLC и так далее). Некоторые приложения нельзя удалить, но их можно деактивировать.
Если на ваше устройство производитель перестал выпускать обновление, но когда-то была официальная версия LOS — то лучше найти эту версию и установить её. Архивные версии тяжело найти в интернете, попробуйте поискать на 4pda и xda-developers(но только официальную). Или на reddit.com, например [311].
Попробуйте поставить Shelter(но это приложение не работает на некоторых прошивках)
Если у вас есть рут на устройстве — поставьте AdAway, AppOpsX, AFWall+.
Если вы на своё устройство не можете поставить root — то воспользуйтесь очень хорошей программой NetGuard. Она может ограничивать интернет как AFWall+, а также в версии из F-Droid можно будет воспользоваться блокировкой доменов по типу AdAway(но только это будет не через файл hosts)[313]. К сожалению, NetGuard использует слот VPN, и вы не сможете одновременно использовать и NetGuard и VPN. Хотя Orbot+ приложения с настройками прокси или Tor browser вы всё равно сможете использовать. - Когда у вас появятся средства на новое устройство, и если вы решились полностью избавиться от приложений Google(то есть не устанавливать Gapps в LOS) — то советую вам переходить на LOS постепенно, так как вы не сможете за 1 день быстро освоится во всех ньюансах новых приложений. Вам придётся или искать подходящие вам приложения, разбираться в них. В некоторых случаях привыкать к некоторым неудобствам.
Если же вы решили пойти по более лёгкому пути(чего я не советую) и поставить Gapps — то вы скорее всего сможете освоиться за 1-2 дня.
Дорогие айтишники, не подскажите ли вы:
1) Некоторые приложения ранее могли запускать другие приложения(например, тот же Orbot вроде как могут запускать другие приложения). Как можно ограничить запуск других приложений? Или в версии Android 9 это можно как-то стандартными средствами ограничить? Поможет ли SuperFreezZ(superfreeze.tool.android)?
2) Есть информация, что SIM карта может иметь свои внутренние приложения(смотри Defcon 21). Приложения на SIM какие имеют доступы?
3) Есть ли какие-то конструктивные замечания по поводу статьи? Или какие-нибудь полезные интересные статьи дополняющие эту статью?
Комментариев нет:
Отправить комментарий