Шифрование данных android что это

Шифрование данных на наших устройствах: как это работает?

Константин Иванов

Тема безопасности в мире мобильных устройств и, в частности, в мире Android, никогда не потеряет своей актуальности. В этом небольшом материале поговорим о шифровании данных. Дискуссий по различным вопросам, связанным с шифрованием, ведется много. Но все ли представляют, что это такое? Давайте немного углубимся в самую базовую теорию.

Что такое шифрование?

В самом общем смысле шифрование – это изменение способа представления информации таким образом, что она оказывается скрытой, и единственный способ получить ее в изначальном виде – это некий четкий набор инструкций.

Способов зашифровать информацию множество, в особенности если она хранится в цифровом виде на компьютере или телефоне. Если вам когда-либо приходил файл zip или документ Microsoft Office, для просмотра которого требовался пароль, это означает, что он был зашифрован. Данные, которые вы хотели получить, были помещены в контейнер (который можно представить как папку на вашем смартфоне или компьютере), а контейнер был защищен паролем. Можно распространить этот метод и на целый диск или раздел. Для доступа к любой информации внутри зашифрованного раздела вам потребуется открыть его при помощи пароля.

Другой способ зашифровать данные – физически изменить то, как они будут представлены до тех пор, пока не подвергнутся дешифровке. Можно сравнить это с приложением, в котором вы печатаете какую-то фразу, а оно переводит буквы в числа от 1 до 33. Вы вбиваете предложение, а видите в итоге последовательность цифр.

Но приложению известно, что 1 означает «А», что ни одно число больше 33 не подходит, а также приложение имеет доступ к словарю операционной системы для проверки написания, поскольку последовательность 11 может означать как «АА», так и «АК», в зависимости от того слова, которое вы печатали. Когда кто-то другой использует приложение, чтобы прочитать то, что вы написали, написанное выглядит нормальным образом.

Теперь представьте другую ситуацию. Порядок чисел был изменен на обратный, 13 было добавлено между 11 и 15, пробел между словами был убран, а в каждый небольшой интервал между буквами была вставлена случайная нечитаемая последовательность символов. Этот файл нельзя будет прочитать без использования приложения, в отличие от первого примера, с которым при наличии желания и терпения можно справиться. Так работает алгоритм шифрования. Он помогает программе превратить информацию любого вида в мешанину, которую легко расшифровать при помощи алгоритма и очень сложно и затратно по времени – без него.

Компьютерные алгоритмы могут делать гораздо более сложные вещи в сравнении с простым примером, приведенным выше. И они выполняют эти операции гораздо быстрее, чем человек, который считал на пальцах, чтобы этот пример придумать. Шифрование папки или диска – это образец зашифрованного контейнера, и зашифрованные данные наподобие нашего примера также можно поместить в такой зашифрованный контейнер.

Взять информацию, зашифровать ее, а потом удостовериться, что приложения и сервисы, которым потребуется доступ к этой информации, могут ее расшифровать и использовать, – это очень сложно. К счастью, эту работу выполняют устройство и операционная система на нем, а все, что требуется от нас, – это знать правильный пароль и пользоваться правильным сервисом.

Шифрование и Android

Android поддерживает шифрование на уровне файла и контейнера (полнодисковое шифрование). Как платформа для приложений он также может поддерживать сторонние методы шифрования, такие как безопасные папки или зашифрованная переписка в мессенджерах и почте. Это означает, что чипсет устройства содержит компонент, который установлен, чтобы помочь на лету зашифровывать и расшифровывать данные. Действительный ключ к расшифровке файлов хранится на устройстве, и каждое действие пользователя – пароль, отпечаток пальца, доверенное устройство и др. – которое используется для получения доступа к зашифрованным данным, обращается к Secure Element (отдельному микропроцессору наподобие тех, что используются в пластиковых картах). Начиная с Android 6.0 Marshmallow, все функции шифрования могут выполняться с использованием этого Secure Element и закрытого ключа, токенов (одноразовых или многоразовых электронных ключей), которые применяются для шифрования и расшифровки данных. Это означает, что без предоставления процессору действующего токена данные останутся зашифрованными.

В ваших настройках Android вы также можете сделать так, что система будет оставаться зашифрованной каждый раз при загрузке телефона, до тех пор, пока не будет введен пароль. Когда данные в вашем телефоне зашифрованы, это уже обеспечивает безопасность, но приостановка процесса загрузки до момента, пока не введен пароль, предотвращает доступ к файлам и служит дополнительным уровнем защиты. В любом случае ваш пароль (или PIN-код, или графический ключ, или отпечаток пальца) обращается к данным посредством Secure Element , и у вас нет никакой возможности получить закрытый ключ шифрования – единственный необходимый для того, чтобы узнать, что было сделано с данными и как вернуть их в прежний вид.

Ваша переписка и действия в браузере также могут подвергаться шифрованию. Вероятно, вы обращали внимание на то, что в вашем браузере многие сайты имеют адрес, начинающийся с HTTPS вместо HTTP. HTTP означает Hypertext Transfer Protocol (протокол передачи текста), и это протокол (спасибо, кэп!), который используется, чтобы отправлять и получать данные в сети Интернет. В свою очередь, HTTPS означает «HTTP over SSL» (Secure Sockets Layer, уровень защищенных сокетов), он добавляет в протокол стандарт шифрования. Все данные, которые вы вводите в браузере, изменяются при помощи открытого ключа, который вы скачиваете с сайта, попадая на него, и только закрытый ключ – который имеется на веб-сервере – может их расшифровать.

Данные, которые попадают обратно к вам, видоизменяются так, что расшифровать их можно только при помощи вашей уникальной версии открытого ключа. Вам не нужно делать ничего, кроме как посещать безопасные сайты, чей адрес начинается с HTTPS. Ваш смартфон проверяет, действительно ли сервер представляет собой то, чем он выглядит, при помощи сертификата, и самостоятельно зашифровывает и расшифровывает данные через приложение браузера.

Для того, чтобы вести зашифрованную переписку, обычно требуется скачать приложение из Google Play. Такие приложения, как Signal или WhatsApp, предлагают шифрование, которое называют сквозным, это означает, что приложение назначает ключи отдельным контактам или группам и сообщение может прочитать только то лицо, которому оно адресовано. BlackBerry Messenger многие считают безопасным, но поскольку в нем имеется лишь один общий ключ, который есть на всех устройствах BlackBerry, эта безопасность представляется несколько спорной. BBM Protected доступен для групп, которым требуется более высокий уровень шифрования или сквозное шифрование. iMessage от Apple также имеет сквозное шифрование, но только в случае, если все участники переписки – счастливые обладатели iPhone.

Эти приложения вы используете, как использовали бы любой другой мессенджер: вы добавляете контакт и обмениваетесь с ним сообщениями. Разница лишь в том, что эти сообщения могут быть зашифрованы, так что только две стороны – участники переписки – могут их прочитать.

Шифрование – это хорошо или плохо?

Некоторые товарищи в некоторых правительствах утверждают, что технологии шифрования, доступные конечному пользователю, то есть нам с вами, это опасно, поскольку из-за этого невозможно отслеживать все коммуникации лиц, которыми могут интересоваться всевозможные органы. Этот аргумент может звучать убедительно, когда нам говорят о том, как террористы месяцами общались в Facebook или WhatsApp. Однако сама по себе технология шифрования не опасна, а вот без нее не могло бы считаться безопасным ни одно наше действие в сети, а мы не могли бы быть уверены, что наше общение носит личный характер. Любая чувствительная информация на наших смартфонах могла бы быть легко получена тем, у кого были бы нужные инструменты и достаточная мотивация.

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

Источник

Как зашифровать Android устройство

Впервые Google позволила зашифровать Android устройства в Android Gingerbread (2.3.х), но данная функция претерпела некоторые значительные изменения с тех пор. На некоторых смартфонах под управлением lollipop (5.X) и выше можно пользоваться функцией шифрования, что называется, из коробки, в то время как на некоторых старых или бюджетных устройствах Вам придется включать ее самостоятельно.

Зачем может потребоваться зашифровать Android устройство

Шифрование хранит данные Вашего телефона в не читаемой форме. Для выполнения низкоуровневых функций шифрования, Android использует dm-crypt, который представляет собой стандартную систему шифрования диска в ядре Linux. Эта же технология используется в различных дистрибутивах Linux. Когда вы вводите PIN-код, пароль или графический ключ на экране блокировки, телефон расшифровывает данные, что делает их понятными. Кто не знает PIN код или пароль, тот не сможет получить доступ к Вашим данным. На Android 5.1 и выше шифрование не требует наличие PIN-кода или пароля, но настоятельно рекомендуется, так как при их отсутствии снижается эффективность шифрования.

Шифрование защищает конфиденциальные данные на Вашем телефоне. Например, корпорации с конфиденциальными бизнес-данными на телефонах компании хотят использовать шифрование (с защищенной блокировкой экрана) для защиты данных от промышленного шпионажа. Злоумышленник не сможет получить доступ к данным без ключа шифрования, хотя бывают и продвинутые методы взлома, которые делают это возможным.

Обычный пользователь думает, что у него нет никакой важной информации. Если Ваш телефон украдут, то вор будет иметь доступ к Вашей почте, сможет узнать Ваш домашний адрес и иметь доступ к другой личной информации. Согласен, большинство воров не смогут получить доступ к личной информации, если на смартфоне будет установлен обычный код разблокировки, даже без шифрования. И большинство воров интересует продажа Вашего устройства, а не личные данные. Но никогда не помешает защитить свои данные.

Что нужно знать перед тем как зашифровать Android устройство

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

  • Более медленная работа : Один раз зашифровав данные, их нужно будет расшифровывать каждый раз, когда потребуется доступ к данным. Поэтому Вы можете увидеть небольшое падение производительности, хотя это вообще не заметно для большинства пользователей (особенно если у вас мощный телефон).
  • Отключение шифрования : Если Вы включите шифрование, то единственный способ его выключить — это сброс к заводским настройкам .
  • Если уна устройстве получены root права, то их нужно удалить : Если Вы попытаетесь зашифровать Android устройство, на котором есть права суперпользователя, то Вы столкнетесь с некоторыми проблемами. Вам нужно сначала удалить root права , зашифровать устройство и снова получить права суперпользователя.

Это не означает, что мы отговариваем Вас от шифрования, мы пытаемся объяснить все нюансы этого процесса.

Как включить шифрование в Android

Прежде чем начать, есть несколько вещей, которые стоит знать:

  • Шифрование устройства может занять час или больше.
  • Устройство должно быть заряжено не меньше, чем на 80%, иначе Android просто не будет выполнять процесс шифрования.
  • Ваше устройство должно быть включено в течение всего процесса.
  • Если на устройстве получены root права, обязательно удалите их перед продолжением!

Убедитесь, что у Вас достаточно времени и зарядки батареи. Если Вы вмешаетесь в процесс шифрования или завершите процесс самостоятельно, то Вы можете потерять все данные . Как только процесс начнется, лучше просто оставить устройство в покое и позволять ему сделать свое дело.

Читайте также:  Самый надежный vpn для андроид

Будем считать, что все правила прочитаны и можно начать.

Откройте меню, перейдите в настройки и нажмите на пункт «Безопасность». Имейте ввиду, что на различных устройствах этот пункт может иметь различные названия. Некоторые устройства позволяют также зашифровать SD карту, но по-умолчанию зашифруется только внутренняя память.

Если устройство еще не зашифровано Вы можете нажать на пункт «Зашифровать устройство» для начала процесса шифрования.

Источник

Защита личных данных на Android-телефоне

Мобильных компьютеров уже давно больше, чем стационарных. И наших личных данных на них так же значительно больше, чем на стационарных. При этом текущий дизайн OS мобильных устройств создаёт впечатление, что одна из их основных задач — как можно сильнее упростить доступ третьим лицам (в основном — корпорациям и государству, но и мелким разработчикам мобильных приложений тоже обламывается от этого пирога) к вашим личным данным.

Частичная открытость Android немного улучшает ситуацию, но полноценного решения проблемы утечки приватных данных пока не существует. Основная проблема в том, что пока на устройстве используются блобы нет никаких гарантий, что в них нет закладок (вроде обнаруженных в прошивках Samsung Galaxy). Аналогичная проблема с проприетарными приложениями без открытых исходников (вроде всего пакета GApps, начиная с самого Google Play Маркет). По сути всё как раз наоборот — крайне высока вероятность, что закладки там есть. Нередко их даже не пытаются скрывать, выдавая за удобные «фичи» для синхронизации и/или бэкапа ваших данных, обеспечивания вас полезной рекламой, и «защиту» от вредоносного софта или на случай утери устройства. Один из самых надёжных способов защиты своих данных описан в статье Mission Impossible: Hardening Android for Security and Privacy, но там речь не о телефоне, а о планшете, причём с поддержкой только WiFi (мобильных чипов без блобов по-моему вообще пока ещё нет, для мобильного инета вместе с этим планшетом предлагается использовать отдельный 3G-модем, блобы в котором никому не навредят т.к. на этом модеме личных данных просто нет), и, на всякий случай, физически отрезанным микрофоном. Но, несмотря на невозможность полноценно защитить личные данные на телефоне, я считаю что стоит сделать максимум возможного: прикрыть столько каналов утечек, сколько получится — ведь мало кто может позволить себе не использовать мобильный телефон или не держать на нём личные данные (хотя бы контакты и историю звонков).

Сразу уточню, что об анонимности речь вообще идти не будет. Это отдельная большая и сложная тема, которая, в частности, потребует использования Tor, полного отказа от GSM и перевода всей телефонии на шифрованный VoIP, etc. На эту тему стоит почитать предыдущую ссылку и воспользоваться приложениями от The Guardian Project. Но делать всё это может иметь смысл только при условии, что ваши данные не утекут прямо с телефона, т.е. после решения описанных в этой статье задач. Описанные ниже приёмы защиты от идентификации/отслеживания не дают анонимности, они просто прикрывают некоторые дополнительные каналы утечки личных данных (к которым относится и то, где и когда вы бываете).

Ещё одна проблема — сложность и не лучшее юзабилити описанных решений делает их малодоступными для среднего пользователя. Предполагается, что читатель умеет менять прошивки телефона, пользоваться adb и хоть немного ориентируется в командной строке Linux. В принципе, большую часть описанного можно (и нужно!) автоматизировать и сделать доступным по нажатию пары кнопок обычному пользователю, но пока что этого никто не сделал.

Ингредиенты

Безопасность формируется разными элементами, и пренебрежение любым из них может свести на нет все усилия:

  • OS и ключевые приложения (работающие с вашими личными данными) должны быть open source, иначе ни о каком доверии к ним речи быть не может в принципе.
  • У вас должен быть root-доступ (как говорится, если вы не root на своём компьютере — значит на нём root кто-то другой… да и некоторые из описанных ниже приложений требуют root-доступ).
  • OS и приложения необходимо регулярно обновлять, чтобы уменьшить шанс что их взломают.
  • Вместо «синхронизации» личных данных нужно использовать обычные бэкапы, причём обязательно надёжно зашифрованные.
  • Доступ всех приложений к личным данным должен быть ограничен реально необходимым минимумом, доступ к камере/микрофону так же должен контролироваться.
  • Доступ всех приложений в интернет должен быть ограничен реально необходимым минимумом.
  • Передача данных «по воздуху» должна осуществляться безопасным образом:
    • всё, что передаётся «по воздуху» должно быть зашифровано (вам потребуется доступ к VPN);
    • подключение к Wi-Fi требует дополнительных предосторожностей, чтобы гарантировать что мы подключаемся к нужной точке доступа;
    • работа с Wi-Fi требует дополнительной защиты от утечки данных, позволяющих вас отслеживать.
  • Защита данных на телефоне на случай потери/кражи.

Требование к открытости исходников OS сразу исключают iOS и Windows Phone, да и из вариантов на базе Android подойдут далеко не все. Я буду использовать CyanogenMod, но это не единственный вариант (если ваш телефон поддерживается Replicant то он может быть предпочтительнее, плюс есть ещё Firefox OS, Ubuntu Touch, Tizen).

Что касается использования самых последних версий OS — к сожалению, мне пришлось поставить CyanogenMod 11 на базе Android 4.4.4 (KitKat). Причин две: во-первых CyanogenMod на Android 5.x для моего телефона просто ещё нет, и во-вторых ещё нет стабильной версии Xposed framework для Android 5.x.

Для надёжного шифрования бэкапов понадобится платная версия Titanium Backup.

Для полноценного контроля доступа приложений к личным данным понадобится платная версия XPrivacy. В принципе, можно обойтись и бесплатной, но это будет значительно сложнее (информация о параметрах функций и чёрные/белые списки позволяют более тонко управлять доступом, да и пакетные операции экономят много времени). Я лично не проверял, но вроде бы «платную» версию можно получить и бесплатно (форма в конце страницы на сайте платной версии).

GApps

Что касается GApps. В идеале, конечно, лучше бы его вообще не устанавливать — если вам хватает приложений из F-Droid. Можно попробовать обойтись NOGAPPS a.k.a. µg Project, но на практике полноценной замены Google Play Маркет просто нет (а доступ к нему через NOGAPPS может в любой момент привести к бану и потере купленных приложений т.к. нарушает правила гугла). В этом случае стоит установить минималистский вариант GApps, и при необходимости остальные приложения GApps установить через Play Маркет (если вы переживаете, что в этом случае они будут занимать дополнительное место, то во-первых это всё-равно случится при первом же их обновлении, а во-вторых есть утилиты — включая Titanium Backup — которые умеют переносить приложения в /system , решая эту проблему).

Вообще надо отметить, что разработчики выкладывавшие урезанные сборки GApps как-то все повально начали отказываться от дальнейшей поддержки этих сборок, у всех резко образовались семейные дела, причём они зачем-то через некоторое время после отказа от поддержки ещё и удалили с файловых хостингов выложенные ими ранее сборки и ветки на форумах в которых эти сборки обсуждались. Тем не менее, пару вариантов найти ещё возможно: минималистская сборка от jajb (я бы из неё ещё убрал GoogleContactsSyncAdapter.apk , GoogleBackupTransport.apk и GoogleFeedback.apk , но не уверен что без них ничего не сломается) и невероятно гибкий и настраиваемый, но уже не поддерживаемый PA Gapps от TKruzze.

Как вариант ещё можно просто удалить «лишние» приложения из уже установленного GApps, для определения списка лишних файлов проще всего сравнить минимальный и максимальный варианты вышеупомянутого PA Gapps.

Замена прошивки и аккаунты

Если только вы уже не приняли все необходимые меры предосторожности с самого начала использования своего телефона, то ваши личные данные уже давно «протекли» и доступны множеству чужих людей. В этом случае я бы рекомендовал сначала просто установить описанные приложения и поэкспериментировать с ними, а когда почувствуете себя с ними достаточно уверенно — удалить с телефона абсолютно все данные (включая содержимое внутренней/внешней SD card) и установить всё с нуля — это не заберёт ваши данные обратно, но хотя бы разорвёт связь между этими данными и вашим телефоном.

Что касается аккаунтов, то в идеале после замены прошивки нужно специально для телефона создать отдельные аккаунты в гугле, фейсбуке, etc. Это обычно не мешает вам использовать свои обычные аккаунты в нужных приложениях, а для всех остальных это сильно ограничит объём доступных им данных (например, «моим» фейсбуком пользуются только несколько игр, которым я дал к нему доступ ради каких-то бонусов).

ВНИМАНИЕ: Если вы покупали приложения в Play Маркет, то если после замены прошивки вы будете использовать тот же самый гугл-аккаунт связь между уже протёкшими данными и вашим телефоном сохранится (по крайней мере для гугла), а если аккаунт будет новый — вы потеряете ранее купленные приложения.

Если для вас замена прошивки и/или создание отдельных аккаунтов для телефона это перебор, то ничего страшного — как я уже писал в начале, способа полноценной и надёжной защиты личных данных на телефоне пока не существует, речь идёт исключительно о том, чтобы прикрыть столько каналов утечки данных, сколько получится. И в вашем случае будет просто прикрыто чуть меньше каналов, чем возможно на данный момент.

Дальше я буду исходить из того, что вы решили заменить текущую прошивку — если это не так, просто пропустите некоторые из описанных операций.

Разделы

Для понимания описанных далее операций необходимо минимальное представление об основных разделах Android. Вкратце, основные разделы это:

  • /system
    • содержит основную систему/прошивку (напр. CyanogenMod) плюс опционально дополнительные пакеты (вроде GApps) прошитые через recovery после основной прошивки
    • по умолчанию доступен только на чтение, не изменяется в процессе работы — т.е. его содержимое всегда соответствует установленной прошивке
    • имея root-доступ его можно изменять
  • /data
    • содержит приложения установленные пользователем и данные всех приложений (в т.ч. системных приложений из /system )
    • именно этот раздел шифруется если активировать шифрование системы
    • если в телефоне есть «встроенная» SD card, то она может быть реализована не как отдельный раздел, а как каталог /data/media или /data/media/0 (в этом случае wipe или factory reset раздела /data из recovery это не полноценное форматирование раздела, а просто удаление всех файлов кроме /data/media )
  • SD card
    • содержит файлы пользователя (закачки, музыка, видео, etc.)
    • содержит часть данных приложений, которые либо не помещаются в /data , либо должны быть доступны всем приложениям (раздел /data отформатирован в ext4, полноценно поддерживает права файлов, поэтому обычно к файлам в /data имеют доступ только их собственные приложения, а SD card либо отформатирован в FAT либо на нём через fuse эмулируется почти полное отсутствие ограничений прав доступа)
    • их может быть несколько, как встроенных так и внешних, доступных через разные каталоги (дальше в примерах я буду использовать каталог /sdcard ), и находящихся физически на отдельных разделах или внутри /data

Backup

Перед тем, как приступать к смене прошивки, нужно сделать бэкап. (Вообще, я рекомендую в процессе настройки периодически делать полный бэкап.) Поскольку мы не будем использовать «синхронизацию» личных данных, то крайне желательно настроить регулярное автоматическое создание зашифрованных бэкапов и заливание их куда-нибудь. Из-за особенностей архитектуры Android понять что и как нужно бэкапить довольно непросто.

Некоторые из описанных операций можно сделать только если у вас есть root или нормальный recovery (обычно ClockworkMod или TWRP). Если их ещё нет — возможно, сейчас самое время ими обзавестись.

Судя по всему, в некоторых случаях при перепрошивке есть небольшая вероятность что будет повреждён другой раздел. Один из этих разделов используется для хранения, в частности, IMEI телефона. Потеряв, его будет довольно сложно восстановить, поэтому крайне рекомендуется перед первой прошивкой сохранить (куда-то вне телефона) раздел с IMEI. Для некоторых телефонов это специфичная процедура с использованием утилит производителя, для других достаточно сохранить утилитой dd нужные разделы в файлы (впрочем, скорее всего и в остальных случаях можно воспользоваться dd вместо утилит производителя).

Читайте также:  Заставки для андроид волки

Если не уверены — проще всего сохранить все разделы кроме /system , /data и /cache . Обычно они все достаточно небольшого размера. Посмотреть список и размеры доступных разделов можно в /proc/partitions или через parted , пример (подключаемся через adb как root, не важно загружена обычная система или recovery):

Например, для Nexus 4 достаточно сохранить /dev/block/mmcblk0p <8,9>:

Типы бэкапов

  • Android Backup: файлы .ab (по сути немного модифицированный tar-архив), зашифрованные если это задано в настройках телефона, обычно делаются через adb backup .
    • Единственное достоинство — эти бэкапы можно делать без root.
  • Nandroid Backup: файлы .img и .tar* , обычные полные образы разделов или tar-архивы (по сути тоже полные образы, только компактнее), не зашифрованные, обычно делаются через recovery.
    • Теоретически TWRP умеет делать шифрованный Nandroid Backup, но во-первых только для /data , и во-вторых у меня эта фича не заработала.
  • Titanium Backup: свой формат, поддержка шифрования в платной версии, сохраняет приложения, их данные и общесистемные настройки.

ВНИМАНИЕ: Поскольку Nandroid Backup не зашифрованы и сохраняются на доступную всем приложениям SD card, то я рекомендую после создания сразу (не перегружаясь из recovery в основную систему) переносить их с телефона на компьютер через adb pull , а на телефоне удалять. Если их понадобится восстановить, то сначала загрузить recovery, а потом залить их обратно через adb push и удалить после восстановления бэкапа.

Что и как бэкапить

Как вы видели выше, разделов в системе очень много. Но большинство из них либо никогда не меняются, либо меняются только при прошивке новой системы или recovery, так что бэкапить их смысла нет.

Возможное исключение — раздел /system . Обычно он меняется только при обновлении прошивки, но имея root вы можете его изменять (делать приложения «системными» через Titanium Backup чтобы сэкономить место на /data , устанавливать новые системные приложения вроде BusyBox, модифицировать загрузочные скрипты, etc.) — в этом случае его тоже может иметь смысл бэкапить.

Таким образом, бэкапить обычно нужно только раздел /data и внутренние/внешние SD card.

Поскольку бэкап нужно куда-то сохранять, и обычно это SD card, то содержимое самой(их) SD card в бэкапы как правило не входит. Titanium Backup умеет частично включать в бэкапы данные приложений находящиеся на SD card, но только файлы из /sdcard/Android/data/*/ (если приложение хранит свои файлы в других каталогах то в бэкап они не попадут).

Итак, ваши данные, которые может потребоваться бэкапить, это:

  • описанные выше возможные изменения /system
    • включаются в Nandroid Backup /system
    • если это несколько известных файлов, то их можно скопировать вручную через adb pull
  • установленные вами дополнительные приложения
    • .apk -файлы, находятся в /data
    • бэкапить не обязательно, их обычно можно повторно скачать
    • может иметь смысл бэкапить чтобы можно было их установить не выкачивая заново, либо если нужно иметь возможность установить старую версию приложения из Play Маркет
    • включаются в Android Backup через adb backup -apk -all -nosystem
    • включаются в Nandroid Backup /data
    • включаются в бэкапы Titanium Backup (опционально)
  • данные практически всех приложений
    • находятся в /data , иногда частично на SD card
    • это самое важное, что стоит бэкапить
    • включаются в Android Backup через adb backup -all (кроме тех данных, которые на SD card)
    • включаются в Nandroid Backup /data (кроме тех данных, которые на SD card)
    • включаются в бэкапы Titanium Backup (опционально, данные на SD card при некоторых условиях тоже включаются)
  • данные некоторых особых приложений
    • XPrivacy держит свои данные в /system , поэтому для бэкапа приходится «экспортировать» их на SD card (это можно автоматизировать)
    • Контакты желательно периодически экспортировать на SD card, т.к. это единственный способ сохранить их в портабельном формате .vcf , который можно загрузить куда угодно (включая приложение Контакты другой прошивки)
  • ваши файлы и данные приложений сохранённые вне стандартных мест
    • находятся на SD card
    • можно просто скопировать их вручную любым способом (например через adb pull /sdcard sdcard )

ВНИМАНИЕ: После экспорта контактов любое приложение может получить к ним доступ, поэтому желательно сразу их перенести с SD card на компьютер. Чтобы никакое приложение не успело украсть контакты сразу после экспорта настоящий параноик может попробовать следующий подход:

  1. экспортировать текущие настройки XPrivacy
  2. через XPrivacy заблокировать всем приложениям доступ к SD card
  3. перезагрузить телефон
  4. экспортировать Контакты (разрешив только им доступ к SD card)
  5. перенести .vcf -файл с контактами с SD card на компьютер
  6. импортировать предыдущие настройки XPrivacy
  7. перезагрузить телефон

Резюмируя

Upgrade

Регулярное обновление OS и приложений тоже имеет свои особенности.

  • Обновления для OS:
    • проверяются автоматически
    • устанавливать нужно вручную
    • при необходимости не сложно откатиться на предыдущую версию
    • перед установкой новой версии необходимо предпринять дополнительные действия, описанные ниже
  • Обновления для приложений установленных из F-Droid:
    • проверяются автоматически
    • устанавливать нужно вручную
    • при необходимости не сложно откатиться на предыдущую версию
  • Обновления для приложений установленных из Play Маркет:
    • Play Маркет предпочитает не только проверять обновления автоматически, но и (если не отключить) автоматически обновлять приложения. Для среднего пользователя это скорее плюс, но если вы всерьёз планируете применить описанное в этой статье — вам скорее всего захочется автоматические обновления отключить и контролировать что и когда обновлять вручную.
    • Себя самого Play Маркет обновляет автоматически в любом случае.
    • Поскольку через Play Маркет гугл может в любом момент по своему желанию незаметно установить или удалить у вас любое приложение, что является серьёзнейшей проблемой в плане безопасности, рекомендуется блокировать для Play Маркет доступ к интернету в то время, когда вы им не пользуетесь.
    • проверяются вручную (из-за заблокированного доступа к интернету)
    • устанавливать можно автоматически или вручную
    • при необходимости откатиться можно только используя бэкапы старой версии сделанные Titanium Backup (если настроено автоматическое обновление, то для этого приложения его нужно будет отключить), поскольку Play Маркет не даёт выбрать какую версию приложения устанавливать
  • Обновления для приложений, установленных из других источников:
    • проверяются вручную (уникальным для каждого приложения способом)
    • устанавливать надо вручную
    • Обновления для Xposed framework и его модулей (включая XPrivacy) можно проверять и устанавливать через сам Xposed.
      • при обновлении необходимо предпринять дополнительные действия, описанные ниже

OTA-обновления OS

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

  • Если раздел /system был модифицирован (а в нашем случае это будет именно так), то необходимо побеспокоиться о том, чтобы эти изменения сохранились перед прошивкой новой версии OS в /system и автоматически восстановились после этого, до первой загрузки новой версии OS.
    • Для этого необходимо заранее создать соответствующие скрипты в /system/addon.d (они будут автоматически запущены до и после прошивки).
    • Если этого не сделать, то после обновления OS, в частности, перестанет работать XPrivacy, и все приложения получат доступ к вашим контактам и прочим личным данным.
  • В данный момент существуют уязвимости Android, которые дают возможность обычным приложениям не санкционировано повысить свои привилегии в процессе обновления OS.
    • Чтобы от этого защититься необходимо установить и перед каждым обновлением OS проверять установленные приложения через Secure Update Scanner.
  • Поскольку XPrivacy накладывает ограничения на приложения по их UID, а UID системных приложений может измениться при обновлении OS, то рекомендуется включать «режим полёта», экспортировать и сбрасывать настройки XPrivacy, обновлять прошивку, после чего импортировать настройки XPrivacy (при импорте приложения определяются по имени, а не UID) и выключать «режим полёта».
    • Этот вариант не идеален, т.к. «режим полёта» помешает приложениям немедленно отправить по сети ваши личные данные, но не помешает их получить (между сбросом и импортом настроек XPrivacy), сохранить в файлы и отправить по сети позднее.
    • С другой стороны, если этого не сделать, то есть небольшая вероятность что система не сможет корректно загрузиться из-за того, что XPrivacy будет накладывать не те ограничения на системные приложения.

Обновление Xposed framework и его модулей (включая XPrivacy)

Защита данных на телефоне на случай потери/кражи

Чтобы посторонний человек, получивший физический доступ к телефону, не добрался до ваших личных данных, необходимо:

  • включить шифрование /data
    • желательно использовать для этого сложный пароль (по умолчанию этот же пароль будет использоваться на экране блокировки, что как правило слишком неудобно, но это легко решить и для экрана блокировки использовать другой пароль/пин)
  • использовать пароль или достаточно сложный пин-код на экране блокировки
    • чтобы его не приходилось постоянно вводить дома можно использовать Tasker для его автоматического отключения когда вы дома и включения когда вы выходите из дома
  • отключать ADB (и права root для ADB) когда он не используется
    • это не так актуально начиная с Android 4.3

К сожалению, пока что ни ClockworkMod ни TWRP не поддерживают защиту паролем. А без этого человек временно получивший доступ к вашему телефону может перегрузиться в recovery, установить дополнительный пакет с трояном в /system , после чего вернуть телефон вам. Как только вы загрузите OS и введёте пароль шифрования к /data этот троян сможет запуститься с правами root и получить полный доступ ко всем вашим личным данным. Если бы recovery поддерживали защиту паролем, то для того, чтобы это проделать, пришлось бы прошить recovery заново, что привело бы к сбросу пароля, и дало бы возможность отследить факт вмешательства как только вам вернут телефон.

Анти-вор

Что касается приложений типа «анти-вор» и удалённого управления телефоном. Эти приложения ещё могут иметь смысл на обычном, не защищённом телефоне — если вор попался глупый, и вместо того чтобы сразу выкинуть сим-карту и переформатировать все разделы он сидит с этого телефона в инете и рассматривает чужие фоточки… то, да, польза от этих приложений может быть.

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

Что касается возможности определить местоположение телефона — для этого на нём должен быть интернет, а т.к. вор не имеет доступа к OS телефона, то он не сможет настроить подключение к своему домашнему Wi-Fi и вряд ли он поставит в «бесполезный телефон» свою сим-карту. А вероятность того, что он не выкинет сразу же вашу сим-карту или пронесёт включенный телефон мимо уже известной телефону точки доступа Wi-Fi… на мой взгляд не настолько велика, чтобы в расчёте на это непрерывно сливать данные о своём местоположении компании разработавшей это приложение.

А на случай если телефон просто потерялся, и кто-то его нашёл и хочет вернуть владельцу — достаточно вывести на экране блокировки свою контактную информацию (например, email) или просто на него позвонить.

А вот что действительно стоит сделать сразу же, как стало понятно что телефон украли — заблокировать сим-карту (чтобы ей не воспользовались для обхода 2-х факторной авторизации или подтверждения банковских платежей через SMS) и, просто на всякий случай, отключить телефон от гугл-аккаунта.

Настройка XPrivacy

По большому счёту — это самое сложное из всего описанного в этой статье. XPrivacy позволяет контролировать громадное количество операций и данных, при этом у всех приложений разные потребности и для многих приложений приходится подстраивать ограничения индивидуально. При этом пользователю, который не является разработчиком под Android, большая часть этих операций непонятна: насколько они критичны, к каким данным они дают доступ, действительно ли эти операции нужны для работы данного приложения.

Я могу дать только рекомендации общего плана:

  • По моим наблюдениям, использовать сервис краудсорсинга для автоматического получения настроек XPrivacy для приложений — не лучшая идея. Настройка XPrivacy сложна, поэтому большинство пользователей с ней не очень хорошо справляются, но с удовольствием отправляют свои настройки в этот сервис. Выкачивая усреднённые чужие настройки вы заблокируете примерно 10-20% того, что можно (и нужно) заблокировать.
  • Всё, что умеет блокировать/подделывать XPrivacy — имеет непосредственное отношение к вашим личным данным. Поэтому блокировать стоит, по возможности, практически всё.
  • Стоит сразу включить режим «эксперта» и разрешить блокирование системных приложений.
  • Подготовьте максимально ограничивающий шаблон «по умолчанию» — включите блокирование и запрос ограничений практически для всех категорий и операций (включая небезопасные), за исключением:
    • Датчики — можно разрешить небезопасные операции (нужно практически всем приложениям).
    • Идентификация устройства — блокировать всё, но стоит отключить запрос ограничений для тех пунктов, которые вы в любом случае не собираетесь разрешать.
    • Интернет — стоит разрешить все небезопасные операции кроме inet_* (нужно практически всем приложениям, и кроме того доступ в интернет будет контролироваться файрволом).
    • Система (установленные приложения) — можно полностью разрешить (нужно практически всем приложениям).
    • Учётные записи (Google, Facebook, …) — можно полностью разрешить (если вы заведёте для телефона «его личные» отдельные аккаунты специально для использования приложениями, то нет смысла ограничивать приложения в доступе к этих аккаунтам).
    • Хранилище (медиа, карта памяти) — стоит полностью разрешить все open* (нужно практически всем приложениям), а доступ к sdcard блокировать только если вы собираетесь контролировать к каким файлам обращаются приложения и составлять для них белые списки разрешённых файлов/каталогов.
  • Примените шаблон «по умолчанию» ко всем уже установленным приложениям (включая системные, особенно GApps!), а потом пройдитесь по ним и отключите часть ограничений исходя из задач приложения.
    • Для Камеры/Диктофона/etc. имеет смысл оставить запрос ограничений для *.permission в Медиа, чтобы каждый раз когда эти приложения будут пытаться получить доступ к камере или микрофону вы получали об этом уведомление.
    • Приложение «Графический интерфейс системы, Экран блокировки» используется для управления всеми возможностями телефона, включая обычно заблокированные операции вроде NFC или Record.Audio (нужен для управления громкостью), плюс его интерфейс нередко закрывает доступ к диалогу запроса ограничений XPrivacy, так что большую часть ограничений придётся отключить.
    • Приложение «Внешний накопитель» используется для диалога выбора файла многими системными приложениями.
  • Если какое-то приложение не работает — посмотрите отчёт «Использование» в XPrivacy чтобы увидеть что он кому недавно блокировал.
  • Не забывайте, что изменения ограничений вступают в силу через 15 сек.
    • После изменения прав на Интернет или Хранилище нужно убить и перезапустить приложение.
  • Перед ограничением системных приложений лучше сделать бэкап из recovery.
    • Если OS не грузится можно попробовать отменить ограничения.
Читайте также:  Камера с системой android

В CyanogenMod есть свой аналог XPrivacy (Настройки → Конфиденциальность → Защищённый режим), но он позволяет контролировать слишком незначительную часть того, что можно заблокировать через XPrivacy. Одновременное использование Защищённого режима и XPrivacy не рекомендуется.

Установка и настройка защищённой системы

Первым делом сделайте максимально полный бэкап текущей системы:

  • Экспортируйте список контактов в .vcf . Если есть другие приложения, которыми вы активно пользуетесь, и у которых есть встроенная возможность экспорта/бэкапа данных — не пренебрегайте ей тоже.
  • Если телефон не рутованный и нет нормального recovery — сделайте бэкап через adb, потом получите root и установите Titanium Backup с нормальным recovery.
  • Сделайте бэкапы всех приложений через Titanium Backup (большинство из них можно будет восстановить на новой прошивке) и бэкапы всех разделов через recovery (чтобы можно было вернуть текущую систему если что-то пойдёт не так).
  • Дополнительно может иметь смысл сделать скриншоты того, что скорее всего просто «восстановить из бэкапа» на новой прошивке не получится. Например, расширенные настройки Контактов которые в .vcf не экспортируются (группы) и содержимое рабочих столов.
  • Опционально можете скопировать SD card на компьютер, на всякий случай.

Установите CyanogenMod. Если хотите, можете сразу прошить и GApps, но я рекомендую сделать это немного позднее.

При первой загрузке:

  • пропустите подключение Wi-Fi
  • откажитесь от создания аккаунта CyanogenMod (и Google, если вы уже прошили GApps)
  • отключите определение местоположения
  • включите «режим полёта»

Тут нас ждёт неприятный сюрприз: телефон уже успел вылезти в мобильный интернет и что-то слить, плюс проверить обновления CyanogenMod! К сожалению, мне не удалось найти способ это предотвратить: включить «режим полёта» в процессе первой загрузки не получается т.к. ещё нет файла где эта настройка хранится, а если подключиться через adb и включить «режим полёта» вручную на этапе выбора языка — это происходит всё-равно слишком поздно и телефон успевает что-то отправить через мобильный интернет.

  • проверьте, и при необходимости повторно отключите Wi-Fi, мобильный интернет и определение местоположения
  • активируйте ADB:
    • Настройки → О телефоне → 7 тапов по Номер сборки
    • Настройки → Для разработчиков → [✓] Отладка по сети & USB
    • Настройки → Для разработчиков → Режим суперпользователя → Для приложений и ADB
  • если у вас раздел /data не был зашифрован или вы его переформатировали в процессе прошивки CyanogenMod — зашифруйте его (если это делать так, а не через интерфейс, то можно задать пароль шифрования отличающийся от пароля/пин-кода экрана блокировки):
    1. adb root
    2. adb shell vdc cryptfs enablecrypto inplace
    3. подождите пока система зашифрует /data и снова загрузится
  • Настройки → Безопасность → [✓] Неизвестные источники
  • Скачайте на компьютер и установите через adb install (чтобы пока не установлены XPrivacy и AFWall+ не включать на телефоне интернет) Xposed framework.
    1. Фреймворк → Установить/Обновить
    2. перезагрузите телефон
    3. скачайте скрипт 90-xposed.sh, который будет сохранять Xposed framework при OTA-обновлениях CyanogenMod, и установите его:
      1. adb root
      2. adb shell mount -o remount,rw /system
      3. adb push 90-xposed.sh /system/addon.d/
      4. adb shell chmod 0755 /system/addon.d/90-xposed.sh
      5. adb shell mount -o remount,ro /system
  • Скачайте на компьютер и установите через adb install XPrivacy.
    1. установите его лицензию залив /sdcard/XPrivacy_license.txt
      • если это делается при активном XPrivacy — перезагрузите телефон
    2. активируйте модуль XPrivacy в Xposed framework
    3. запустите один раз XPrivacy
    4. перезагрузите телефон
    5. Меню → Параметры → [✓] Режим эксперта
    6. Меню → Параметры → Режим эксперта → [✓] Запрет системных компонентов
    7. Меню → Параметры → Режим эксперта → [✓] Режим AOSP
    8. перезагрузите телефон
    9. настройте XPrivacy максимально ограничив доступ всем приложениям включая системные (рекомендации по настройке описаны выше)
  • В зависимости от используемой вами прошивки может потребоваться установить BusyBox (в CyanogenMod 11 он уже есть).
  • Скачайте на компьютер и установите через adb install AFWall+.
    1. Меню → Настройки → [✓] Активные правила
    2. Меню → Настройки → [✓] Управление VPN
    3. Меню → Настройки → [✓] Поддержка IPv6 (пользоваться им не обязательно, но файрволить нужно, иначе приложения которым закрыт доступ файрволом через IPv4 без проблем выйдут в интернет через IPv6)
    4. Меню → Настройки → [✓] Администратор устройства
    5. Меню → Настройки → Экспериментальные: [✓] Исправить утечку данных при запуске. Это установит скрипт /system/etc/init.d/afwallstart блокирующий доступ в интернет пока OS загружается и AFWall+ ещё не запустился.
    6. Меню → Включить брандмауэр
      • режим Белый список (разрешить выбранные), а поскольку выбранных пока нет — всем приложениями доступ пока что закрыт
  • Нам нужно позаботится, чтобы /system/etc/init.d/afwallstart не был удалён при OTA-обновлении OS. Для этого создадим свой скрипт /system/addon.d/99-local.sh , в который будем добавлять имена файлов на разделе /system , которые нужно сохранить при OTA-обновлении:
    1. adb root
    2. adb shell mount -o remount,rw /system
    3. adb shell cp /system/addon.d/50-cm.sh /system/addon.d/99-local.sh
    4. отредактируйте /system/addon.d/99-local.sh , заменив в функции list_files() файл etc/hosts на etc/init.d/afwallstart
    5. adb shell mount -o remount,ro /system

Если вы ещё не прошили GApps — сделайте это сейчас. После загрузки настройте ограничения XPrivacy для приложений GApps.

  • Настройки Google → Безопасность → [ ] Удалённая блокировка и сброс
  • Настройки Google → Безопасность → [ ] Борьба с вредоносными приложениями
  • Настройки → Беспроводные сети: Передача данных → Меню → [ ] Автосинхронизация данных
  • Настройки → Беспроводные сети: Ещё… → [ ] Режим полёта
    • отключаем временно, только для того чтобы переключить следующий пункт
  • Настройки → Беспроводные сети: Ещё… → [ ] NFC
  • Настройки → Беспроводные сети: Ещё… → [✓] Режим полёта
  • Настройки → Экран блокировки → Безопасность экрана → Блокировка экрана
    • установить надёжный пароль или пин-код
  • Настройки → Местоположение (выкл.)
  • Настройки → Безопасность → Администраторы устройства → [ ] Удалённое управление Android
  • Настройки → Безопасность → Администраторы устройства → [✓] XPrivacy
  • Настройки → Безопасность → Администраторы устройства → [✓] AFWall+
  • Настройки → Конфиденциальность → Отправка статистики → [ ] Включить отправку отчётов
  • Настройки → Язык и ввод → Проверка правописания (настройки) → Проверка правописания Android (настройки) → [ ] Поиск контактов
  • Настройки → Язык и ввод → Клавиатура Android (настройки) → Расширенные настройки → [ ] Подсказывать имена
  • Если вы ставили не минимальный вариант GApps, то где-то рядом должна быть аналогичная настройка для Google Voice — её тоже выключить.
  • Настройки → Восстановление и сброс → [✓] Резервирование данных
    • включаем временно, только для того чтобы переключить следующий пункт
  • Настройки → Восстановление и сброс → [ ] Автовосстановление
  • Настройки → Восстановление и сброс → [ ] Резервирование данных
  • Настройки → Для разработчиков → Сетевое имя устройства → localhost
  • Телефон → Меню → Настройки → [ ] Прямой поиск
  • Телефон → Меню → Настройки → [ ] Поиск контактов
  • Телефон → Меню → Настройки → [ ] Обратный поиск

Подключаем интернет:

  • Перед открытием доступа к интернет стоит заблокировать некоторые приложения, в частности:
    • Настройки → Приложения → Все → Синхронизация Контактов Google → Отключить
    • Настройки → Приложения → Все → Google Резервное копирование → Отключить
  • Скачайте на компьютер и установите через adb install :
    • Wi-Fi Privacy Police
    • Pry-Fi
    • AdAway
    • F-Droid
    • OpenVPN for Android или любой другой VPN и настройте его
  • Разрешите в AFWall+ доступ к Wi-Fi только для одного приложения:
    • OpenVPN for Android
  • Разрешите в AFWall+ доступ к VPN для:
    • (NTP) — опционально
    • AdAway
    • F-Droid
    • Google Play Маркет
    • Xposed Installer
    • Загрузки, Хранилище мультимедиа, Диспетчер загрузки
    • Обновление CyanogenMod
  • Для первой активации аккаунта Google нужно дать доступ к VPN для:
    • Аккаунты Google, Сервисы Google Play, Google Резервное копирование, Google Services Framework, Синхронизация Контактов Google
  • Включите Wi-Fi или мобильный интернет.
  • Активируйте VPN.
  • Создайте или подключите существующий аккаунт Google (чтобы инициировать добавление аккаунта можно например запустить Play Маркет).
  • Настройки → Аккаунты → Google → ваш аккаунт → выключить всю синхронизацию
  • Настройки Google: отключить всё, кроме:
    • Подключенные приложения
    • Play Игры

Теперь можно отключить доступ к VPN для «Аккаунты Google, Сервисы Google Play, Google Резервное копирование, Google Services Framework, Синхронизация Контактов Google». Этот набор приложений — один из основных каналов утечки личных данных. Доступ в интернет ему нужен для:

  • обновления просроченного токена доступа к гугл-аккаунту
  • поддержки GCM (Google Cloud Messaging — пуш-уведомлений Android)
  • активного сливания всех ваших личных данных, до которых он дотянется

Для обновление токена нужно открывать ему доступ крайне редко и ненадолго. Что касается GCM, то, с одной стороны, пуш-уведомления нужны для работы многих приложений, так что вы можете захотеть оставить ему доступ к VPN. С другой стороны, если вы дадите какому-то приложению хоть раз ненадолго доступ в интернет, то оно может зарегистрироваться в GCM и после этого будет получать пуш-уведомления (через этот набор приложений гугла) даже если вы ему доступ в интернет заблокируете. Хорошо это или плохо — решайте сами. Лично мне не нравится идея, что отключенное от интернета приложение продолжает получать из интернета данные, но хотя бы оно не сможет ничего отправлять.

Для защиты от фоновой установки программ на ваш телефон по желанию гугла, доступ в интернет для «Google Play Маркет» нужно разрешать только непосредственно тогда, когда вы им пользуетесь.

Для того, чтобы видеть полную информацию по запрашиваемым правам доступа для устанавливаемых из Play Маркет приложений нужно установить модуль для Xposed framework PlayPermissionsExposed и перезагрузить телефон.

Установить из Play Маркет:

  • SRT AppScanner
    • запустить его, если он найдёт уязвимость — установить модуль Xposed Master Key multi-fix
  • Secure Update Scanner
  • Titanium Backup ★ root
  • Titanium Backup PRO Key ★ root

Сейчас самое время перегрузиться в recovery и сделать полный бэкап новой системы!

Восстановить из бэкапов Titanium Backup все нужные приложения. Запустить из меню Titanium Backup «Маркет доктор» для восстановления связей этих приложений с Play Маркет.

Теперь можно отключить ADB и запретить для него права root.

Поздравляю! У вас в руках Android-телефон, защищённый от утечек личных данных настолько, насколько это вообще возможно без отказа от доступа к Play Маркет и GSM-связи.

Источник

Оцените статью