Содержание статьи
Ты выходишь из подъезда, щуришься от не пойми откуда взявшегося солнца, а на телефон уже приходит сообщение. Это Google, она точно знает, куда ты направляешься, и вежливо подсказывает расписание транспорта. Постой, тут еще одно сообщение: «Расписание рейсов в Питер». Действительно, вчера ты искал дешевый билет, Google знает и это. Она знает даже то, что сегодня ты собираешься в кино, именно это ты обсуждал в Hangouts. Интеллект и познания Google о юзерах уже давно никого не удивляют, но стоит ли ее сомнительная забота личной жизни?
Начало
За нами следят, я не узнаю обычных ребят — школа, дом, институт. Когда эту песню группы «МультFильмы» еще крутили по «Нашему Радио», мир был совсем другим. Смартфонов не существовало как класса, интернет был доступен далеко не всем, а большинству приходилось сидеть на диалапном модеме, который мало того что безумно тормозил, так еще и занимал телефонную линию. До запуска Facebook оставалось два года, до анонса Apple iPhone — пять лет, а идея стартапа Android еще только созревала в голове Энди Рубина.
Мысль о том, что уже через десять лет вся наша цифровая информация, включая местоположение, предпочтения, личные фото и документы, будет в реальном времени доступна большим корпорациям, хотя и витала в головах сотрудников Хакера, но была похожа скорее на оруэлловскую антиутопию, чем на грядущее будущее. Тем не менее сегодня мы имеем то, что имеем: Google вместе с Apple и Facebook отслеживают все наши перемещения, знают наше имя, фамилию, адреса проживания и работы, все наши пароли, номера кредитных карт, «видят» наши фотографии, могут угадывать наши предпочтения в конкретный день недели, знают, что мы едим, пьем, с кем мы спим, в конце концов.
Корпорации на 100% проникли в нашу жизнь и хотят проникнуть еще на 110%. Это правда, и это не может не угнетать. К счастью, у нас еще есть свобода выбора и нам совсем необязательно доверять свои жизни кучке компаний. Google за бесценок продает нам смартфоны, чтобы подсадить на свои сервисы, а мы обернем оружие Google против нее же.
Готовимся
В этой статье я покажу, как при помощи совсем нехитрых манипуляций превратить смартфон на Android из «гуглозонда» в устройство, которое будет полностью невидимо для Google и других компаний. У нас будет доступ к анонимному магазину приложений, синхронизация файлов с собственным Dropbox, содержимое которого не доступно никому, кроме нас, синхронизация контактов и календаря с собственным же сервисом и, конечно же, анонимный веб-браузер, а также система защиты персональных данных от приложений, которым мы не можем доверять.
Подойдет практически любой Android-смартфон, выпущенный за последние два-три года, но ты серьезно облегчишь себе жизнь, приобретя один из смартфонов линейки Nexus. Их плюс в разлоченном загрузчике и использовании чистого Android без закладок производителя. Хорошим выбором также будет аппарат серии Google Play edition, но, как я уже сказал, подойдет практически любой. Наша первая задача — освободить этот смартфон от всего Google-софта, включая маркет, механизмы логина в Google-аккаунт, сервисы синхронизации и другие компоненты, а также закладок и средств синхронизации, предусмотренных производителем смартфона.
И здесь у нас есть два пути: мы можем либо очистить уже имеющуюся прошивку, либо установить вместо нее CyanogenMod. Второй способ гораздо более предпочтителен, он проще и позволяет буквально за несколько минут получить полностью чистую систему. Поэтому идти первым путем я рекомендую только в том случае, если есть явные препятствия для установки CM, например порт CyanogenMod для данной модели отсутствует или разлочка загрузчика невозможна (в современных аппаратах большая редкость). В любом случае мы рассмотрим оба пути, а ты сможешь выбрать наиболее подходящий лично тебе.
INFO
Проверить наличие порта CyanogenMod для своего аппарата можно на 4PDA. Просто найди тему, посвященную твоей модели, и перейди в раздел «Прошивки». Будь осторожен: возможно, порт кривой или недоработанный.
Путь первый. Используем сток
Итак, ты решил остаться на стоке. План действий следующий:
- Получаем root.
- Удаляем все Google-приложения.
- Очищаем прошивку от сервисов производителя.
Root
Самый нетривиальный момент. Универсального и действующего в отношении всех смартфонов метода получить права root не существует, поэтому придется пробовать разные инструменты и надеяться на успешный результат.
Наиболее простой вариант — это воспользоваться одним из «уанкликеров», приложений для Android, позволяющих получить права root в один клик/тап. Самые популярные приложения из этого семейства — Framaroot и Kingo Root. Первый зарекомендовал себя как стабильный инструмент, но работает только для версий 2.0–4.2. Второй часто дает сбои, но, по заявлению разработчиков, способен рутануть практически любую версию ОС (1.5–5.0).
Хакер #202. Скажи нет большому брату!
Для начала стоит попробовать их. Не сработало — ищем свой смартфон на 4PDA и смотрим, как получить root на данном аппарате. «Неломаемых» смартфонов практически не существует, поэтому ты наверняка найдешь нужный инструмент.
Отвязка от Google
Когда есть root, убрать приложения Google со смартфона проще простого. Для этого необходимо всего лишь удалить несколько файлов из каталогов /system/app
и /system/priv-app
, несколько файлов из /system/framework
и набор низкоуровневых библиотек из /system/lib
. Я бы мог здесь привести перечень, но от версии к версии он отличается, поэтому расскажу об очень простом и универсальном способе узнать правильный список файлов.
Открываем страницу Open GApps, выбираем пакет GApps для нашей версии Android (4.4, 5.0, 5.1 или 6.0), выбираем платформу (ARM, ARM64, x86) и нажимаем красную кнопку для загрузки. Открываем полученный ZIP в любом файловом менеджере. То, что находится в system
, — это и есть файлы, которые нам нужно удалить со смартфона. Сделать это можно с помощью любого файлового менеджера с поддержкой root. Например, Root Explorer.
По окончании операции обязательно выполни сброс до заводских настроек (Настройки -> Восстановление и сброс -> Сброс настроек), иначе ты устанешь от появляющихся на экране ошибок.
Отвязка от сервисов вендора
С этим намного сложнее. Производителей смартфонов множество, и реализация механизмов синхронизации с сервисами может сильно отличаться даже в разных версиях прошивки одного вендора. Мне пришлось бы растянуть статью на полжурнала, чтобы описать их все, если бы я был столь жесток по отношению к читателю. Поэтому лучшее, что ты можешь сделать, — это просто не регистрировать учетную запись у вендора (если это возможно).
Также стоит поискать рецепты отключения сервисов на профильных форумах. Зачастую пользователи делятся такой информацией, и если способ есть — ты наверняка его найдешь.
Путь второй. Ставим CyanogenMod
Этот вариант хорош тем, что, кроме чистой прошивки, мы в большинстве случаев получим еще и обновленную версию Android с багфиксами и закрытыми уязвимостями. Платить за это придется необходимостью разблокировать загрузчик. К счастью, большинство производителей позволяет сделать это с помощью онлайн-сервиса, а точнее цифрового ключа, который с его помощью можно получить. Более того, загрузчики смартфонов линейки Nexus и почти всех китайских смартфонов (включая Xiaomi, ZTE и OnePlus) разлочены по умолчанию, точнее залочены без использования цифрового ключа, а разлочить устройства Samsung можно с помощью их собственного приложения CROM Service.
В любом случае для установки CyanogenMod на любое устройство понадобятся инструменты ADB и fastboot из Android SDK. Самый простой способ установить их в Windows — это воспользоваться кастомным инсталлятором. Он установит необходимые драйверы, а также нужные нам fastboot и ADB. В Linux та же задача решается установкой пакета android-sdk-platform-tools или android-sdk-tools, в зависимости от дистрибутива. Драйверов не нужно.
Далее мы должны найти кастомную консоль восстановления для нашего смартфона. Лучше всего на эту роль подойдет TWRP. Заходим на официальный сайт и ищем свой девайс. В секции Download Links находим ссылку на скачивание и получаем файл. Если не удалось найти TWRP на официальном сайте, идем по форумам в поисках неофициальной версии. Она есть почти всегда, если не TWRP, так ClockworkMod.
Теперь можно разблокировать загрузчик и прошить TWRP. Владельцы Sаmsung перед этим должны установить приложение CROM Service из местного маркета и разблокировать загрузчик через него. Далее включаем «Отладку по ADB»: «Настройки -> О телефоне» -> пять тапов по «Номеру сборки». Далее «Настройки -> Для разработчиков -> Режим отладки». Подключаем смартфон с помощью USB-кабеля к компу и выполняем команду (пользователи Linux подставляют перед этой и всеми последующими командами sudo
)
adb devices
Если все настроено верно, в этот момент смартфон должен показать на экране запрос на отладку, соглашаемся. Далее перезагружаем смартфон в режим fastboot:
adb reboot bootloader
Возможно, после этого на экране смартфона появится меню, с помощью которого необходимо в ручном режиме выбрать fastboot (навигация — клавиши громкости, Enter — кнопка включения). Далее владельцы HTC идут на сайт HTCDev, а владельцы Sony — на developers.sonymobile.com. И в том и в другом случае необходимо выбрать свое устройство и просто вводить указанные в инструкции команды fastboot, обычно их две: одна для получения цифрового ключа устройства, вторая для разблокировки загрузчика.
Владельцы Нексусов и китайских аппаратов никуда не ходят, а просто делают так:
fastboot oem unlock
Далее во всех случаях можно прошить TWRP и перезагрузиться:
fastboot flash recovery файл_twrp.img
fastboot continue
Теперь нам нужно найти сборку CyanogenMod для своего устройства. Все официальные сборки доступны на странице download.cyanogenmod.org. Просто вбиваем имя устройства в строку поиска по странице и скачиваем последнюю. Не удается найти официальный порт — не беда, идем на форумы и ищем неофициальный. Обрати внимание, что тебе нужен именно ZIP-файл, прошивки в других форматах не подойдут.
Последний шаг — перекидываем прошивку на карту памяти девайса и перезагружаем его в режим recovery:
adb reboot recovery
Когда на экране появится интерфейс TWRP, нажимаем Install, выбираем файл с прошивкой и сдвигаем ползунок с надписью Swipe to Confirm Flash. После перезагрузки ты должен получить чистый CyanogenMod.
Ставим альтернативный маркет
Теперь у нас есть чистая или почти чистая прошивка, которая вообще не содержит компонентов Google. Но как устанавливать софт без Play Market? Для этого есть несколько альтернатив:
- F-Droid — магазин открытого софта. Насчитывает чуть больше тысячи приложений, но зато все с открытым кодом, а значит, по определению не содержат бэкдоры и зловредный код. К тому же в F-Droid можно найти софт, по тем или иным причинам удаленный из Google Play, тот же блокировщик рекламы AdAway.
- 1Mobile — один из самых известных и полных магазинов приложений, содержит почти все бесплатные приложения из Google Play и не требует заведения учетной записи. С недавнего времени позволяет скачать крякнутый платный софт (естественно, бесплатно).
- Amazon Undeground — единый магазин приложений, книг, музыки и фильмов от Amazon. Софта значительно меньше, чем в Google Play, зато каждый день одно из платных приложений можно скачать бесплатно. Ну и имей в виду, что, установив этот магазин, ты фактически пересадишь себя с иглы Google на иглу Amazon.
Этих трех магазинов должно быть вполне достаточно, чтобы комфортно существовать без магазина Google (между собой они не конфликтуют), однако есть одна проблема: многие приложения завязаны на сервисы Google, а так как мы их вырезали, приложения либо будут работать со сбоями, либо вообще не запустятся. Для решения этой проблемы воспользуемся наработками проекта microG.
Ставим microG
MicroG — проект, в рамках которого идет разработка набора API, эмулирующих мобильные сервисы Google (GmsCore). В планах разработчика реализовать облегченную замену сервисам Google с открытым исходным кодом. Однако нас он интересует потому, что в нем есть Maps API (доступ к картам Google), Location Provider API (сервис геолокации на основе сотовых вышек и Wi-Fi-сетей) и фейковый Google Play маркет, то есть все те компоненты, из-за отсутствия которых зависящий от сервисов Google софт может сбоить.
Установить microG очень легко, для этого достаточно скачать и инсталлировать пакеты GmsCore.apk и FakeStore.apk. Кроме этого, тебе понадобится один или несколько плагинов UnifiedNlp, которые необходимы для правильного определения местоположения устройства в помещениях. Все их можно найти в F-Droid по ключевому слову UnifiedNlp. Рекомендую установить следующие:
- GSMLocationNlpBackend — геолокация на основе сотовых вышек по базе OpenCellID;
- MozillaNlpBackend — геолокация по сотовым вышкам и Wi-Fi-сетям с использованием Mozilla Location Service;
- OpenBmapNlpBackend — аналог сервиса Mozilla от openBmap.
Нужные плагины следует активировать через настройки microG.
Если же ты хочешь получить возможность логиниться в аккаунт Google и включать зависящую от него службу Google Cloud Messaging (это push-уведомления, которые использует, например, Pushbullet), то потребуется выполнить еще пять шагов:
- Установить Xposed (об этом ниже) и модуль FakeGApps.
- Установить GsfProxy.
- Включить опции логина и push-уведомлений (Enable device checkin и Enable Google Cloud Messanging) в microG.
- Перезагрузиться.
- Добавить свой аккаунт Google стандартными средствами: «Настройки -> Аккаунты -> Добавить аккаунт».
Поднимаем личный Dropbox
Отвязать смартфон от Google — только половина дела. Также нам надо найти удобный и безопасный способ хранения файлов. Времена локальных хранилищ типа SD-карты уже давно прошли, а доверять свои данные облачным сервисам вроде Dropbox — не слишком дальновидное решение. Поэтому я предлагаю поднять свой личный Dropbox, благо сделать это очень и очень просто.
Единственное, что тебе понадобится, — это машина под управлением Linux, которая будет онлайн хотя бы днем. Подойдет и старенький домашний комп и самый дешевый виртуальный сервер на Amazon или в любом другом облаке. Также можно воспользоваться одним из ownCloud-хостингов, многие из которых предлагают бесплатные опции. Но остановимся все-таки на личном сервере.
Допустим, у нас есть машина под управлением Ubuntu. Чтобы поднять на ней личный Dropbox, достаточно установить Docker, а уже в нем поднять ownCloud:
sudo apt-get update
sudo apt-get install docker.io
sudo docker run --restart=always --name owncloud -p 80:80 -p 443:443 -d l3iggs/owncloud
Теперь заходим по адресу https://адрес_машины/owncloud, вбиваем имя и пароль администратора (ты их должен придумать сам) и нажимаем кнопку Finish Setup. Наш личный Dropbox готов к использованию. Если это виртуальный хост на Amazon, то к нему уже можно получить доступ по IP, если же домашняя машина, то придется настроить проброс портов (port forwarding) на домашнем роутере.
Чтобы не вбивать IP руками и избавиться от проблемы смены IP домашнего роутера, создадим бесплатный динамический домен. Для этого достаточно пройти простую процедуру регистрации на freedns.no-ip.com и добавить новый домен, он будет иметь имя вроде blablabla.ddns.net. Далее, если ты поднял ownCloud на домашнем сервере, а на роутере установлен DD-WRT, заходи на роутер через браузер (192.168.1.1), затем Setup -> DDNS, в выпадающем списке выбирай No-IP.com, вбивай свой логин и пароль на no-ip.com и имя домена, далее кнопка Save. В роутерах на других прошивках способ настройки будет другим.
В случае если роутер не позволяет использовать динамический DNS или сервер находится на Amazon, можно жестко вбить IP-адрес сервера при создании домена. Естественно, его придется менять при каждой смене IP-адреса.
Для синхронизации файлов со смартфоном у ownCloud есть официальное приложение с открытым кодом. Его можно найти как в F-Droid, так и в Play Маркете, причем если в первом случае ты получишь его бесплатно, то во втором придется выложить 30 рублей. Просто установи клиент через F-Droid, вбей адрес сервера в формате https://адрес/owncloud, свои логин и пароль — и готово. Функциональность у приложения точно такая же, как у Dropbox, то есть возможность просмотра, получения и аплоада файлов с автоматическим аплоадом фоток и видеороликов (включается в настройках).
У ownCloud есть и десктопные клиенты для Windows, Linux или OS X. Все их можно скачать на официальном сайте.
INFO
Если ты не хочешь заморачиваться с установкой ownCloud, можешь использовать облако MEGA в качестве компромисса. Их клиент применяет шифрование на стороне клиента, а значит, сотрудникам компании будет значительно сложнее увидеть твои данные.
Синхронизируем контакты и календарь
Кроме маркета и кучи бесполезного Google-софта, мы также потеряли и удобнейшую функцию синхронизации контактов и календарей. К счастью, вернуть контакты и календарь мы теперь можем очень быстро и легко. OwnCloud, установленный нами на предыдущем шаге, обладает такой функциональностью, но придется подключить пару плагинов.
Заходим в ownCloud через браузер, находим в левом верхнем углу меню Files, кликаем, далее кликаем по знаку плюса. Выбираем в меню Not Enabled и ищем плагины Calendar и Contacts. Под каждым из них нажимаем Enable.
На смартфон устанавливаем приложение DAVdroid из F-Droid (кстати, в Play Маркете оно стоит аж 160 рублей). Далее открываем «Настройки -> Аккаунты -> Добавить аккаунт», выбираем DAVdroid, затем «Вход через URL с именем пользователя» и вбиваем адрес http://адрес_сервера/remote.php/carddav/
, имя и пароль ownCloud. Это для синхронизации контактов. Настройка синхронизации календаря выполняется так же, но адрес будет немного другим: http://адрес_сервера/remote.php/caldav/
.
Ограничиваем приложения в полномочиях
К этому моменту у нас уже должен быть полностью отвязанный от Google и других компаний смартфон с собственным облачным диском и синхронизацией контактов и календаря. Но сторонние приложения все равно смогут отсылать наши данные и местоположение третьим лицам. Поэтому нам нужен некий механизм отзыва полномочий у приложений.
В CyanogenMod такой механизм встроен и доступен в меню «Настройки -> Конфиденциальность -> Защищенный режим». Причем работает он в двух режимах. Во-первых, любому приложению можно запретить доступ к твоим персональным данным (контакты, сообщения, журнал вызовов). Вместо нее они будут получать случайные данные, не имеющие к тебе никакого отношения. Активировать такую функцию можно, просто тапнув по имени приложения в списке (при этом значок с замком изменит цвет).
Во-вторых, у любого приложения можно отозвать любые полномочия, включая возможность доступа в интернет, к камере, местоположению. Для этого надо просто найти приложение в списке и долго удерживать на нем палец. Появится интерфейс отзыва полномочий. Однако следует иметь в виду, что данный механизм отличается от аналогичной функции в Android 6.0 и может привести к падению приложения.
Тем, кто остался на стоке, придется изловчиться, потому что реализация системы отзыва полномочий хоть и доступна в виде отдельного приложения, но требует установки фреймворка Xposed, причем разных его версий для разных версий Android. Так, владельцы устройств на базе Android 4.0–4.4 должны установить инсталлятор с официального сайта. Далее запускаем инсталлятор, открываем «Фреймворк», нажимаем «Установить/обновить» и перезагружаемся.
В Android 5.0–5.1 все несколько сложнее. Во-первых, сам инсталлятор необходимо скачивать с XDA. Во-вторых, оттуда же нужно получить ZIP-файл: xposed-v75-sdk21-arm.zip для смартфонов на базе Android 5.0 и ARM, xposed-v75-sdk22-arm.zip для Android 5.1 и так далее. Этот ZIP-файл необходимо прошить с помощью TWRP так же, как CyanogenMod из соответствующего раздела выше. Ну а далее установить сам Xposed.
После установки запускаем инсталлятор Xposed, открываем раздел «Загрузка» и ищем модуль Xprivacy, устанавливаем и перезагружаемся. Запускаем Xprivacy и отзываем полномочия у нужных приложений. Принцип такой же, как в CyanogenMod.
Tor, неотслеживаемый браузер и блокировка рекламы
В качестве дополнительных мер защиты прайвеси ты можешь установить из F-Droid приложение Orbot. Это версия Tor для Android, с правами root она умеет заворачивать в Tor вообще весь трафик, идущий наружу. Также хорошим решением будет установка блокировщика рекламы AdAway и браузера Ghostery, блокирующего отслеживающие пользователя JS-вставки на сайтах и использующего поисковик DuckDuckGo по умолчанию.
Выводы
Сохранить прайвеси в современном мире очень сложно. Каждое пятое приложение из маркета норовит отправить твои данные на непонятные серверы, каждый третий веб-сайт устанавливает кукисы и запрашивает твое местоположение. Однако, четко следуя инструкциям данной статьи, можно сделать себя почти невидимым, и цена за это — всего лишь потеря Google Now и официального магазина приложений.
WWW
Чем заменить зависящий от сервисов Google софт?
- Gmail — стандартное почтовое приложение или K9 Mail.
- Maps — Яндекс.Карты.
- Hangouts — XMPP-клиент Conversation.
- Pushbullet — Dukto, работает напрямую без внешнего сервера.