Com google toolkit что это за программа на андроид
Иногда некоторые приложения на Android чем-то не устраивают пользователя. В качестве примера можно привести назойливую рекламу. А то бывает и так — всем хороша программа, да только перевод в ней или кривой, или вовсе отсутствует. Или, например, программа триальная, а получить полную версию возможности нет. Как же изменить ситуацию?
Введение
В этой статье мы поговорим о том, как разобрать пакет APK с приложением, рассмотрим его внутреннюю структуру, дизассемблируем и декомпилируем байт-код, а также попробуем внести в приложения несколько изменений, которые могут принести нам ту или иную выгоду.
Чтобы сделать все это самостоятельно, потребуются хотя бы начальные знания языка Java, на котором пишутся приложения для Android, и языка XML, который используется в Android повсеместно — от описания самого приложения и его прав доступа до хранения строк, которые будут выведены на экран. Также понадобится умение обращаться со специализированным консольным софтом.
Итак, что же представляет собой пакет APK, в котором распространяется абсолютно весь софт для Android?
Декомпиляция приложений
В статье мы работали только с дизассемблированным кодом приложения, однако если в большие приложения вносить более серьезные изменения, разобраться в коде smali будет гораздо сложнее. К счастью, мы можем декомпилировать код dex в Java-код, который будет хоть и не оригинальным и не компилируемым обратно, но гораздо более легким для чтения и понимания логики работы приложения. Чтобы сделать это, нам понадобятся два инструмента:
Использовать их следует так. Сначала запускаем dex2jar, указывая в качестве аргумента путь до apk-пакета:
В результате в текущем каталоге появится Java-пакет mail.jar, который уже можно открыть в jd-gui для просмотра Java-кода.
Устройство APK-пакетов и их получение
Пакет приложения Android, по сути, является обычным ZIP-файлом, для просмотра содержимого и распаковки которого никаких специальных инструментов не требуется. Достаточно иметь архиватор — 7zip для Windows или консольный unzip в Linux. Но это что касается обертки. А что внутри? Внутри же у нас в общем случае такая структура:
- META-INF/ — содержит цифровой сертификат приложения, удостоверяющий его создателя, и контрольные суммы файлов пакета;
- res/ — различные ресурсы, которые приложение использует в своей работе, например изображения, декларативное описание интерфейса, а также другие данные;
- AndroidManifest.xml — описание приложения. Сюда входит, например, список требуемых разрешений, требуемая версия Android и необходимое разрешение экрана;
- classes.dex — компилированный байт-код приложения для виртуальной машины Dalvik;
- resources.arsc — тоже ресурсы, но другого рода — в частности, строки (да-да, этот файл можно использовать для русификации!).
Перечисленные файлы и каталоги есть если не во всех, то, пожалуй, в абсолютном большинстве APK. Однако стоит упомянуть еще несколько не столь распространенных файлов/каталогов:
- assets — аналог ресурсов. Основное отличие — для доступа к ресурсу необходимо знать его идентификатор, список asset’ов же можно получать динамически, используя метод AssetManager.list() в коде приложения;
- lib — нативные Linux-библиотеки, написанные с помощью NDK (Native Development Kit).
Этот каталог используют производители игр, помещая туда движок игры, написанный на C/C++, а также создатели высокопроизводительных приложений (например, Google Chrome). С устройством разобрались. Но как же получить сам файл пакета интересующего приложения? Поскольку без рута с устройства забрать файлы APK не представляется возможным (они лежат в каталоге /data/app), а рутить не всегда целесообразно, имеется как минимум три способа получить файл приложения на компьютер:
- расширение APK Downloader для Chrome;
- приложение Real APK Leecher;
- различные файлообменники и варезники.
Какой из них использовать — дело вкуса; мы предпочитаем использовать отдельные приложения, поэтому опишем использование Real APK Leecher, тем более что написан он на Java и, соответственно, работать будет хоть в винде, хоть в никсах.
Настройка Real APK Leecher
Другие статьи в выпуске:
Просмотр и модификация
Допустим, ты нашел интересующий тебя пакет, скачал, распаковал… и при попытке просмотра какого-нибудь XML-файла с удивлением обнаружил, что файл не текстовый. Чем же его декомпилировать и как вообще работать с пакетами? Неужели необходимо ставить SDK? Нет, SDK ставить вовсе не обязательно. На самом деле для всех шагов по распаковке, модификации и упаковке пакетов APK нужны следующие инструменты:
Использовать все эти инструменты можно и по отдельности, но это неудобно, поэтому лучше воспользоваться более высокоуровневым софтом, построенным на их основе. Если ты работаешь в Linux или Mac OS X, то тут есть инструмент под названием apktool. Он позволяет распаковывать ресурсы в оригинальный вид (в том числе бинарные XML- и arsc-файлы), пересобирать пакет с измененными ресурсами, но не умеет подписывать пакеты, так что запускать утилиту signer придется вручную. Несмотря на то что утилита написана на Java, ее установка достаточно нестандартна. Сначала следует получить сам jar-файл:
Далее нам понадобится скрипт-обвязка для запуска apktool (он, кстати, доступен и для Windows), включающий в себя еще и утилиту aapt, которая понадобится для запаковки пакета:
Далее просто сваливаем содержимое обоих архивов в каталог ~/bin и добавляем его в $PATH:
Если же ты работаешь в Windows, то для нее есть превосходный инструмент под названиемVirtuous Ten Studio, который также аккумулирует в себе все эти инструменты (включая сам apktool), но вместо CLI-интерфейса предоставляет пользователю интуитивно понятный графический интерфейс, с помощью которого можно выполнять операции по распаковке, дизассемблированию и декомпиляции в несколько кликов. Инструмент этот Donation-ware, то есть иногда появляются окошки с предложением получить лицензию, но это, в конце концов, можно и потерпеть. Описывать его не имеет никакого смысла, потому что разобраться в интерфейсе можно за несколько минут. А вот apktool, вследствие его консольной природы, следует обсудить подробнее.
Импорт APK в Virtuous Ten Studio
Рассмотрим опции apktool. Если вкратце, то имеются три основные команды: d (decode), b (build) и if (install framework). Если с первыми двумя командами все понятно, то что делает третья, условный оператор? Она распаковывает указанный UI-фреймворк, который необходим в тех случаях, когда ты препарируешь какой-либо системный пакет.
Рассмотрим наиболее интересные опции первой команды:
- -s — не дизассемблировать файлы dex;
- -r — не распаковывать ресурсы;
- -b — не вставлять отладочную информацию в результаты дизассемблирования файла dex;
- --frame-path — использовать указанный UI-фреймворк вместо встроенного в apktool. Теперь рассмотрим пару опций для команды b:
- -f — форсированная сборка без проверки изменений;
- -a — указываем путь к aapt (средство для сборки APK-архива), если ты по какой-то причине хочешь использовать его из другого источника.
Пользоваться apktool очень просто, для этого достаточно указать одну из команд и путь до APK, например:
После этого в каталоге mail появятся все извлеченные и дизассемблированные файлы пакета.
Препарирование. Отключаем рекламу
Теория — это, конечно, хорошо, но зачем она нужна, если мы не знаем, что делать с распакованным пакетом? Попробуем применить теорию с пользой для себя, а именно модифицируем какую-нибудь софтину так, чтобы она не показывала нам рекламу. Для примера пусть это будет Virtual Torch — виртуальный факел. Для нас эта софтина подойдет идеально, потому что она под завязку набита раздражающей рекламой и к тому же достаточно проста, чтобы не потеряться в дебрях кода.
Поиск кода рекламы в jd-gui
Итак, с помощью одного из приведенных способов скачай приложение из маркета. Если ты решил использовать Virtuous Ten Studio, просто открой APK-файл в приложении и распакуй его, для чего создай проект (File -> New project), затем в контекстном меню проекта выбери Import File. Если же твой выбор пал на apktool, то достаточно выполнить одну команду:
После этого в каталоге com.kauf.particle.virtualtorch появится файловое дерево, похожее на описанное в предыдущем разделе, но с дополнительным каталогом smali вместо dex-файлов и файлом apktool.yml. Первый содержит дизассемблированный код исполняемого dex-файла приложения, второй — служебную информацию, необходимую apktool для сборки пакета обратно.
Первое место, куда мы должны заглянуть, — это, конечно же, AndroidManifest.xml. И здесь мы сразу встречаем следующую строку:
Нетрудно догадаться, что она отвечает за предоставление приложению полномочий на использование интернет-соединения. По сути, если мы хотим просто избавиться от рекламы, нам, скорее всего, достаточно будет запретить приложению интернет. Попытаемся это сделать. Удаляем указанную строку и пробуем собрать софтину с помощью apktool:
В каталоге com.kauf.particle.virtualtorch/build/ появится результирующий APK-файл. Однако установить его не получится, так как он не имеет цифровой подписи и контрольных сумм файлов (в нем просто нет каталога META-INF/). Мы должны подписать пакет с помощью утилиты apk-signer. Запустили. Интерфейс состоит из двух вкладок — на первой (Key Generator) создаем ключи, на второй (APK Signer) подписываем. Чтобы создать наш приватный ключ, заполняем следующие поля:
- Target File — выходной файл хранилища ключей; в нем обычно хранится одна пара ключей;
- Password и Confirm — пароль для хранилища;
- Alias — имя ключа в хранилище;
- Alias password и Confirm — пароль секретного ключа;
- Validity — срок действия (в годах). Значение по умолчанию оптимально.
Остальные поля, в общем-то, необязательны — но необходимо заполнить хотя бы одно.
Создание ключа в apk-signer
WARNING
Чтобы подписать приложение с помощью apk-signer, ты должен установить Android SDK и указать полный путь до него в настройках приложения.
Вся информация предоставлена исключительно в ознакомительных целях. Ни редакция, ни автор не несут ответственности за любой возможный вред, причиненный материалами данной статьи.
Теперь этим ключом можно подписать APK. На вкладке APK Signer выбираем только что сгенерированный файл, вводим пароль, алиас ключа и пароль к нему, затем находим файл APK и смело жмем кнопку «Sign». Если все пройдет нормально, пакет будет подписан.
Так как мы подписали пакет нашим собственным ключом, он будет конфликтовать с оригинальным приложением, а это значит, что при попытке обновить софтину через маркет мы получим ошибку.
Цифровая подпись необходима только стороннему софту, поэтому если ты занимаешься модификацией системных приложений, которые устанавливаются копированием в каталог /system/app/, то подписывать их не нужно.
Обычно авторы приложений создают специальные классы для вывода рекламы и вызывают методы этих классов во время запуска приложения или одной из его «активностей» (упрощенно говоря, экранов приложения). Попробуем найти эти классы. Идем в каталог smali, далее com (в org лежит только открытая графическая библиотека cocos2d), далее kauf (именно туда, потому что это имя разработчика и там лежит весь его код) — и вот он, каталог marketing. Внутри находим кучу файлов с расширением smali. Это классы, и наиболее примечателен из них класс Ad.smali, по названию которого нетрудно догадаться, что именно он выводит рекламу.
Мы могли бы изменить логику его работы, но гораздо проще будет тупо убрать вызовы любых его методов из самого приложения. Поэтому выходим из каталога marketing и идем в соседний каталог particle, а затем в virtualtorch. Особого внимания здесь заслуживает файл MainActivity.smali. Это стандартный для Android класс, который создается Android SDK и устанавливается в качестве точки входа в приложение (аналог функции main в Си). Открываем файл на редактирование.
Внутри находится код smali (местный ассемблер). Он довольно запутанный и трудный для чтения в силу своей низкоуровневой природы, поэтому мы не будем его изучать, а просто найдем все упоминания класса Ad в коде и закомментируем их. Вбиваем строку «Ad» в поиске и попадаем на строку 25:
Здесь происходит создание объекта. Комментируем. Продолжаем поиск и находим в строках 433, 435, 466, 468, 738, 740, 800 и 802 обращения к методам класса Ad. Комментируем. Вроде все. Сохраняем. Теперь пакет необходимо собрать обратно и проверить его работоспособность и наличие рекламы. Для чистоты эксперимента возвращаем удаленную из AndroidManifest.xml строку, собираем пакет, подписываем и устанавливаем.
Наш подопытный кролик. Видна реклама Он же, но уже без рекламы
Оп-па! Реклама пропала только во время работы приложения, но осталась в главном меню, которое мы видим, когда запускаем софтину. Так, подождите, но ведь точка входа — это класс MainActivity, а реклама пропала во время работы приложения, но осталась в главном меню, значит, точка входа другая? Чтобы выявить истинную точку входа, вновь открываем файл AndroidManifest.xml. И да, в нем есть следующие строки:
Они говорят нам (и, что важнее, андроиду) о том, что активность с именем Start должна быть запущена в ответ на генерацию интента (события) android.intent.action.MAIN из категории android.intent.category.LAUNCHER. Это событие генерируется при тапе на иконку приложения в ланчере, поэтому оно и определяет точку входа, а именно класс Start. Скорее всего, программист сначала написал приложение без главного меню, точкой входа в которое был стандартный класс MainActivity, а затем добавил новое окно (активность), содержащее меню и описанное в классе Start, и вручную сделал его точкой входа.
Открываем файл Start.smali и вновь ищем строку «Ad», находим в строках 153 и 155 упоминание класса FirstAd. Он тоже есть в исходниках и, судя по названию, как раз и отвечает за показ объявлений на главном экране. Смотрим дальше, идет создание экземпляра класса FirstAd и интента, по контексту имеющего отношение к этому экземпляру, а дальше метка cond_10, условный переход на которую осуществляется аккурат перед созданием экземпляра класса:
Скорее всего, программа каким-то случайном образом вычисляет, нужно ли показывать рекламу на главном экране, и, если нет, перескакивает сразу на cond_10. Ок, упростим ей задачу и заменим условный переход на безусловный:
Больше упоминаний FirstAd в коде нет, поэтому закрываем файл и вновь собираем наш виртуальный факел с помощью apktool. Копируем на смартфон, устанавливаем, запускаем. Вуаля, вся реклама исчезла, с чем нас всех и поздравляем.
- Перевод приложений Android;
- пример снятия триала с приложения.
Итоги
Эта статья лишь краткое введение в методы вскрытия и модификации Android-приложений. За кадром остались многие вопросы, такие как снятие защиты, разбор обфусцированного кода, перевод и замена ресурсов приложения, а также модификация приложений, написанных с использованием Android NDK. Однако, имея базовые знания, разобраться во всем этом — лишь вопрос времени.
Приветствую друзья. Разбираемся с неизвестными приложениями Android. Сегодня рассмотрим com.google.toolkit — узнаем что это за программа.
com.google.toolkit — что это за приложение?
Вшитое рекламное приложение. Часто обнаруживается в прошивках именно китайских дешевых смартфонах. Не является трояном/опасным вирусом. Весить может примерно 492 kb.
Еще одно подтверждение, что com.google.toolkit — неопасный вирус, а рекламный модуль. Стоковая прошивка DEXP Ixion M545, судя по информации с форума 4PDA, содержит левые приложения, в том числе и com.google.toolkit. А также: SysBTL (1,11 Mb), TBrowser (4,39 Mb), Whone (6,91 Mb). К сожалению это частое явление, которым страдают часто дешевые/китайские устройства. Если вирус вшит в прошивку — нужно лечить саму прошивку, вырезая оттуда весь рекламный хлам.
com.google.toolkit — как удалить вирус?
Даже после удаления может появиться автоматически. Касперский определяет вирус как рекламный, а Eset Mobile Sucurity — как опасная угроза.
Приложение com.google.toolkit может открывать левые сайты, не исключено что и встраивать рекламу в другие программы.
Можно попробовать сброс настроек до заводских через рекавери, а также Hard Reset.
В интернете советуют следующее:
- Откройте раздел Настройки > Используемые данные. Обратите внимание на приложения, которые используют много данных, особенно, если вы этим приложением не пользовались.
- Далее перепрошейте телефон оригинальной прошивкой скачанной с офф сайта. После — установите root-доступ (можно попробовать KingRoot).
- Скачайте SD Maid из Google Play Market > запустите > предоставьте ему root-доступ. В настройках контроля приложений (AppControl) разрешите показывать системные программы. Запустите Управление приложениями > заморозьте любые странные/ненужные приложения.
К сожалению для удаления левых/подозрительных программ нужен рут-доступ. Однако com.google.toolkit может восстанавливаться, поэтому есть смысл его не удалить, а попробовать заморозить. Лучший инструмент для этого — Titanium Backup.
На одном сайте сказано: рекламные модули могут появляться из-за браузера UC Browser. В их названии могут встречаться слова: Bedrock, GS Store, com.google.toolkit. Учитывая что браузер популярный, даже если рекламные компоненты появляются именно из-за него, то это только рекламные/безобидные приложения. Способны грузить тел/кушать оперативу. Однако вряд ли могут являться опасными вирусами, например трояном.
Кроме com.google.toolkit у вас также могут быть другое, предположительно рекламное ПО: n26androidpt, services.tools, free games, TBrowser, system component. Данные программы можно удалить/заморозить при помощи Titanium Backup. Перед удалением рекомендую создать бэкап Android.
Один пользователь дал совет:
- Перепрошиваете тел, сразу ставим рут-права, далее сразу антивирус, например Dr.Web > обновляем базу вирусов > полная проверка.
- Возможно удалить вирусы не сможет, поэтому записываем их адреса. Ставим Total Commander и даем ему root-права.
- Проходим в Total Commander по всем адресам и принудительно удаляем все вирусные файлы, даже если будет предупреждение о нестабильности системы. Не забываем о бэкапе.
- После перезагрузки — радуемся результату. Кстати у этого пользователя был китайский тел — Micromax Q413 Canvas Xpress 4G.
Еще один рецепт удаления вирусни (форум 4PDA):
Иногда выходят новые прошивки без вирусни. Стоит посмотреть на официальном сайте, а также можно написать в службу поддержки по поводу рекламных модулей в заводской прошивке.
Заключение
- Вшитую вирусню в телефон — реально сложно удалить. Нужно пересобирать прошивку.
- Но просканировать тел антивирусами — обязательно. Советую антивирусы: Dr.web, Kaspersky, ESET. Можно каждым пройтись по телефону для максимального эффекта.
- Опытные юзеры могут попробовать удалить вирус com.google.toolkit при помощи Total Commander.
Один минус — почти для любого удаления необходимы root-права.
Приветствую. Некоторые приложения используют системные функции, поэтому иногда мы видим, что грузит телефон или кушает оперативку — системное приложение. Но на самом деле проблема не в системном, а в другом установленном вами приложении.
Android Core Apps — что это такое?
Ядро Google сервисов/часть операционки. Может использоваться другими программами. На офф прошивках встроено и обновляется по-умолчанию. Отключать скорее всего нельзя и даже опасно.
В разделе батарея может оказаться что Android Core Apps грузит телефон, при этом раньше процесса могло и не быть. Проблема может появиться после очередного обновления.
Неважно у вас Xiaomi, Honor, Samsung или даже Alcatel — проблема именно на стороне операционки.
Пример чрезмерного использования батареи:
Самое интересное — версия Android 4.4.2, значит проблема существует давно..
Жрет батарею — что делать?
Проанализировав интернет нашел такие советы:
- Попробуйте выполнить Hard Reset либо перепрошить смартфон, особенно при наличии прошивки посвежее. Одному пользователю реально помог сброс к заводским настройкам.
- Один чел написал: у него был значок контактов и название Android Core Apps, он зашел в контакты, там висели уведомления о связке контактов, пользователь связал и проблема решилась.
- Попробуйте изменить фоновые процессы в настройках разработчика со стандартного предела максимум на два процесса. Инфа найдена на зарубежном форуме.
- Возможно это следствие активности какого-то приложения, например связанного с SIP-телефонией.
- Один юзер пишет — оказалось дело было в приложении для хранения контактов, он его отключил, после телефон стал холодный, расход батареи в норме. Но после этого могут перестать быть видимыми контакты телефона.
- Попробуйте в настройках открыть учетные записи и отключите автоматическую синхронизацию. Некоторым помогло.
- Попробуйте переустановить WhatsApp/Viber/WeChat, у некоторых это решило проблему. Хотя также узнал что мессенджеры вызывают проблему, так как пытаются синхронизировать контакты, поэтому если отключить эту синхронизацию в настройках > учетные записи, то это может помочь. В теории причина может быть в любом мессенджере, например в Skype.
- Некоторым помогла обычная перезагрузка.
- Еще один пользователь на форуме написал — пришлось отключить приложение Контакты.
- Узнать кто именно кушает батарею можно при помощи BetterBatteryStats.
Многие в интернете советуют для теста попробовать остановить/отключить именно программу Контакты (Contacts Storage):
На форуме 4PDA юзер написал, что когда все необходимые данные будут синхронизированы, то Android Core Apps должен пропасть:
Возможно он кушает батарею, потому что процесс синхронизации некорректно работает/не может завершиться.
Приветствую. Android содержит функции, при помощи которых можно сэкономить время. Одна из них — синтез речи, позволяющая смартфону преобразовывать текстовое содержимое в аудио. Можно открыть статью на сайте, запустить воспроизведение текста, отрегулировать громкость/тон — положить телефон, заниматься своими делами.
Синтезатор речи Google — что это такое?
Технология озвучивания текста на экране, поддерживается много языков, включая русский.
Является системным компонентом, занимающем немало места (примерно 400 мб):
При отсутствии необходимости озвучивать текст — данный компонент возможно удалить/отключить:
Продвинутые пользователи могут использовать Titanium Backup (необходим root-доступ) для отключения/удаления.
Примеры использования
- Функция Чтения вслух в Google Play книгах работает на основе данного синтезатора.
- Произношение слов Google-переводчиком.
- В работе TalkBack, а также других специальных возможностях — может использоваться синтезатор для озвучивания ваших действий.
Определенные приложения из Google Play могут использовать синтезатор для озвучивания текстового содержимого, подсказок, ваших действий.
Одно условие — приложение должно поддерживать синтез речи. Например некоторые браузеры не поддерживают воспроизведение текста со страницы, но Яндекс Браузер — поддерживает.
Синтезатор речи Google — как активировать?
Откройте настройки, найдите Специальные возможности (располагается в Расширенных настройках). Можно использовать поиск по настройкам, написав слово синтез:
Выбираем Синтез речи.
По умолчанию выставлен синтезатор Google, далее можно отрегулировать тон/громкость воспроизведения:
После настройки — в специальных возможностях активирует опцию Озвучивание при нажатии:
При отсутствии данной опции — установите приложение Android Accessibility Suite.
После активации появится способность озвучивать текст: нажав на круглый значок в любом приложении — достаточно выделить область текста, после нажать иконку воспроизведения:
Некоторые модели телефонов данную технологию не поддерживают. Иногда значок находится возле навигационных кнопок (внизу).
Компания Google быстро прошла путь от небольшой поисковой системы до гигантской инфраструктуры, компоненты которой работают на наших ПК, смартфонах, планшетах и даже телевизорах. Google неустанно собирает о нас информацию, поисковые запросы тщательно логируются, перемещения отслеживаются, а пароли, письма и контактная информация сохраняются на годы вперед. Все это неотъемлемая часть современности, но мы вполне можем ее изменить.
Ни для кого не секрет, что любое устройство под управлением Android (по крайней мере то, что сертифицировано Google) содержит в себе не только компоненты, собранные из AOSP, но и внушительное количество проприетарных программ Google. Это те самые Google Play, Gmail, Hangouts, Maps и еще куча приложений, включая диалер и камеру (начиная с KitKat).
Для всех этих компонентов нет не только исходного кода, но и вообще каких-либо пояснений по поводу принципов их работы. Многие из них изначально созданы с целью собирать определенные виды информации и отправлять их на серверы Google. Так, например, ведут себя GoogleBackupTransport, отвечающий за синхронизацию списка установленных приложений, паролей и других данных, GoogleContactsSyncAdapter, который синхронизирует список контактов, или ChromeBookmarksSyncAdapter, работа которого — синхронизировать закладки браузера. Плюс сбор информации обо всех запросах в поисковике.
В самом факте синхронизации, конечно, ничего плохого нет, и это великолепный механизм, который позволяет настроить новый телефон за считаные минуты, а Google Now даже умудряется дать нам полезную информацию на основе наших данных (иногда). Проблема только в том, что все это рушит нашу конфиденциальность, ибо, как показал Сноуден, под колпаком у АНБ (и, вероятнее всего, у кучи других служб) находится не только какая-нибудь империя зла под названием Microsoft, но и Google, а также множество других компаний из тусовки «мы не зло, а пушистые меценаты».
Говоря другими словами: Гугл сольет нас всех без всяких проблем, и не факт, что его сотрудники, сидя в своих офисах с массажистками и собачками, не ржут над именами из твоей контактной книги (там все зашифровано, да), попивая 15-летний пуэр из провинции Юньнань. А может быть, к черту этот Гугл? Возьмем их Android, а сами они пусть идут лесом?
Последняя версия кастомной прошивки на основе KitKat для моего смартфона весит 200 Мб, однако, чтобы получить настоящий экспириенс от смартфона, я должен прошить поверх нее еще и архив gapps, размер которого составляет 170 Мб. Только после этого я получу систему, аналогичную предустановленной на Nexus-устройства, со всеми плюшками в виде интегрированного с Google Now рабочего стола, блокировку экрана на основе снимка лица, камеру с поддержкой сферической съемки и килограмм гугловского софта, начиная от Google Play и заканчивая Google Books.
Так Google Apps попадают на смартфон. Из пользователей 99% либо юзают предустановленные приложения, либо устанавливают их самостоятельно на абсолютно чистую и полностью анонимную прошивку. А дальше с момента ввода имени пользователя и пароля начинается синхронизация и слив информации.
Чтобы разобраться, как это происходит, распакуем тот самый архив с gapps и взглянем внутрь. Нас интересуют каталоги /system/app и /system/priv-app , при установке их содержимое копируется в одноименные каталоги внутри смартфона. Второй каталог — это новшество KitKat, в нем размещаются приложения, использующие системные API, помеченные как "private" и не доступные обычным приложениям.
В каталоге /system/app мы найдем большое количество разных гугловских приложений, легко узнаваемых по названию пакета: Books.apk, Chrome.apk, Gmail2.apk и так далее. Каждое из них по-своему будет делиться информацией, но это абсолютно нормально (да, Google будет знать, что ты читаешь Пауло Коэльо через их приложение!). Наибольшую опасность здесь представляет GoogleContactsSyncAdapter.apk, который отвечает только за то, чтобы отправлять на удаленный сервер список контактов. Записываем название в блокнот и идем дальше.
Большинство файлов из каталога /system/priv-app — это сервисы и фреймворки, необходимые для запуска всей этой махины синхронизации и слежки:
- GoogleBackupTransport.apk — занимается синхронизацией данных установленных приложений, паролей Wi-Fi и некоторых настроек;
- GoogleLoginService.apk — связывает устройство с Google-аккаунтом;
- GooglePartnerSetup.apk — позволяет сторонним приложениям получить доступ к сервисам Google;
- GoogleServicesFramwork.apk — фреймворк с различной подсобной функциональностью;
- Phonesky.apk — Play Store (как ни странно);
- PrebuiltGmsCore.apk — Google Services, как видно из названия, это ядро всего комплекта gapps;
- Velvet.apk — поиск от Google, включающий в себя строку поиска на рабочем столе и Google Now.
В сущности, это и есть та часть Google Apps, которая ответственна за слив нашей частной информации. Попробуем от всего этого избавиться.
Самый простой способ отвязать смартфон от Google — это воспользоваться стандартными настройками системы. Метод хорош тем, что не требует ни прав root, ни установки кастомных прошивок, ни кастомного рекавери. Все можно сделать в любой стоковой прошивке без потери доступа к аккаунту и приложениям типа Gmail (если это необходимо). Однако за эффективность никто ручаться не будет, так как вполне возможно, что некоторые компоненты gapps продолжат отправку данных.
За множество настроек синхронизации отвечает также приложение «Настройки Google», которое является частью Google Services. С его помощью, в частности, можно отключить доступ Google к местоположению («Доступ к геоданным -> Доступ к моим геоданным / Отправка геоданных / История местоположений»), отключить отправку личных данных поисковику («Поиск -> Личные данные»), отключить Google Now («Поиск -> Google Now») и отключить удаленное управление («Удаленное управление -> Удаленный поиск устройства / Удаленная блокировка и сброс настроек»).
В тех же «Настройках Google», кстати, можно отключить любое приложение, использующее аккаунт Google для авторизации. Речь при этом идет не только о софте, установленном на девайс, но и вообще обо всех когда-либо использованных приложениях, включая веб-сайты. Я, например, обнаружил в этом списке множество сайтов, на которые не заходил уже как минимум пару лет.
Большинство приложений Google можно безболезненно отключить через настройки: «Приложения -> ВСЕ -> нужное приложение -> Отключить».
Настройки аккаунта Google
Другие статьи в выпуске:
Настройки Google
В том случае, если на стоковой прошивке есть права root, от Google Apps можно избавиться, просто удалив их со смартфона. Как я уже говорил, все они хранятся в каталогах /system/app и /system/priv-app . Например, в случае с KitKat список Google-приложений в первом каталоге будет таким:
- Books.apk — Google Книги;
- CalendarGoogle.apk — Google Календарь;
- Chrome.apk — Google Chrome;
- CloudPrint.apk — система облачной печати;
- Drive.apk — Google Drive;
- GenieWidget.apk — виджет новостей и погоды;
- Gmail2.apk — Gmail;
- GoogleContactsSyncAdapter.apk — синхронизация контактов;
- GoogleEars.apk — Google Ears (аналог Shazam);
- GoogleEarth.apk — Google Земля;
- GoogleHome.apk — домашний экран с интегрированным Google Now;
- GoogleTTS.apk — система синтеза речи;
- Hangouts.apk — Google Hangouts;
- Keep.apk — Google Keep;
- LatinImeGoogle.apk — клавиатура с поддержкой жестов;
- Magazines.apk — Google Журналы;
- Maps.apk — Google Карты;
- Music2.apk — Google Музыка;
- PlayGames.apk — Google PlayGames;
- PlusOne.apk — Google+;
- QuickOffice.apk — QuickOffice;
- Street.apk — Google Street;
- SunBeam.apk — живые обои SunBeam;
- Videos.apk — Google Фильмы;
- YouTube.apk — YouTube.
В каталоге /system/priv-app , кроме перечисленных ранее, также хранятся такие файлы:
- CalendarProvider.apk — хранит данные календаря;
- GoogleFeedback.apk — отправляет отчет об использовании Google Play;
- GoogleOneTimeInitilalizer.apk — мастер установки дополнительных Google-приложений;
- SetupWizard.apk — мастер настройки при первом запуске;
- Wallet.apk — Google Кошелек;
- talkback.apk — оповещение голосом о событиях на устройстве.
Комплект Gapps для KitKat, кроме всего прочего, включает в себя также проприетарную камеру с поддержкой сферической съемки и проприетарный же рабочий стол с интегрированным Google Now.
Но это еще не все. Google Apps зависят от нескольких фреймворков, которые находятся в каталоге /system/framework . Это файлы com.google.android.maps.jar, com.google.android.media.effects.jar и com.google.widevine.software.drm.jar. Еще есть множество библиотек в каталоге /system/lib , которые используются исключительно Google-приложениями. Удалять их совсем не обязательно, но можно. Просто чтобы очистить мусор. Их список ты найдешь на сайте ][.
В прошлых (да и в будущих) версиях системы содержимое Google Apps отличается, поэтому перед удалением рекомендую скачать gapps нужной версии с сайта goo.im/gapps, распаковать с помощью WinRar и просмотреть содержимое. Также следует учитывать зависимость некоторых приложений из маркета от приложений Google, подробнее об этом я расскажу позже.
Это только часть библиотек, входящих в комплект gapps
Предыдущий способ можно существенно упростить, если просто установить на смартфон кастомную прошивку без Google Apps. В этом случае смартфон/планшет будет кристально чист без всякой привязки к Google. Недостаток этого способа — отсутствие Google Play, но можно либо заменить его сторонним магазином приложений (об этом ниже), либо использовать следующий способ, который включает в себя установку урезанной версии Google Apps.
Этот способ частичной отвязки от Google — своего рода компромисс. Он не решает проблему слежки — по крайней мере без настроек из первого способа, — но позволяет не захламлять систему кучей бесполезного софта, который будет висеть в фоне и жрать память. Суть проста — ставим кастомную прошивку и заливаем поверх нее минималистичную версию gapps, которая включает в себя только Google Play.
Таких минимальных сборок gapps в Сети множество, но я бы рекомендовал использовать проверенные временем BaNkS Gapps, а именно файл «месяц-числоGAppsCore4.4.2signed.zip». Они работают на любом смартфоне, совместимы с ART и включают в себя только основные файлы gapps, список которых приведен в разделе «Что такое Gapps», файлы фреймворка, а также несколько библиотек. По сути, это Google Play, инструменты синхронизации и ничего больше.
Меняем поисковик на DuckDuckGo
Даже после полного отключения синхронизации на домашнем экране останется «встроенная» строка поиска Google. В стоковых прошивках некоторых производителей (Samsung, например) это всего лишь виджет, который можно легко удалить с экрана. В чистом Android и девайсах от многих других производителей она «вшита» в домашний экран, но ее можно убрать, отключив весь поиск от Google (вместе с Google Now) с помощью меню «Настройки -> Приложения -> Все -> Google поиск -> Отключить» или установив сторонний лаунчер. Далее достаточно скачать из маркета или другого магазина приложений DuckDuckGo и добавить одноименный виджет на домашний экран.
Второй и третий способ предполагают полное избавление от Google Apps, включая Google Play и возможность логина с помощью Google-аккаунта, поэтому мы должны найти способ простой и удобной установки приложений, который не заставлял бы нас выкачивать их самостоятельно, а затем скидывать на карту памяти и устанавливать вручную. Один из таких способов — установить сторонний маркет.
На данный момент существует три более или менее жизнеспособные альтернативы Google Play. Это Amazon Appstore, Yandex.Store и 1Mobile Market. У каждого из них есть свои преимущества и недостатки, которые в основном сводятся к количеству приложений и способам оплаты:
- Amazon Appstore — самый известный магазин приложений после Google Play. Содержит более 75 тысяч приложений (в сравнении с 800 тысячами в Google Play), качество каждого из которых проверяется вручную, так же как в iTunes для iOS. Расплачиваться можно с помощью кредитной карты или амазоновскими монетами (Amazon Coins), которые дают в качестве подарка за покупку планшета Kindle Fire либо в подарок от другого юзера. Одна из самых интересных черт магазина — ежедневная бесплатная раздача одного из платных приложений.
- Yandex.Store — магазин от компании «Яндекс». Содержит более 85 тысяч приложений, каждое из которых проверяется антивирусом Касперского. Особо ничем не выделяется, но зато имеет киллер-фичу в виде возможности оплачивать покупки с помощью сервиса Яндекс.Деньги или счета мобильного телефона.
- 1Mobile Market — крупнейший сторонний репозиторий Android-приложений, включающий в себя более 500 тысяч софтин. Отличается от других наличием исключительно бесплатных приложений (не путать с пиратскими), из-за чего позволяет не проходить стадию регистрации аккаунта и сохранить анонимность.
Приложения во всех трех маркетах имеют оригинальные цифровые подписи разработчиков приложений, что позволяет использовать их одновременно. Приложение, установленное из одного маркета, может быть без проблем обновлено из другого, а при удалении пропадет из списка установленных сразу во всех. Покупать, правда, придется раздельно.
Amazon Appstore Yandex.Market 1Mobile Market
Open Source Маркет
Кроме описанных в статье, а также множества других менее известных магазинов приложений, в Сети можно найти отличающийся от остальных репозиторий F-Droid. Он полностью анонимен и содержит только свободный софт, распространяемый под лицензиями, одобренными фондом FSF. Приложений в F-Droid всего тысяча, зато все они гарантированно не содержат бэкдоров и других систем разглашения личных данных. Именно F-Droid используется в качестве дефолтового маркета в свободной Android-прошивке Replicant.
Несмотря на то что компоненты gapps не являются частью официального API Android, некоторые приложения все-таки ожидают увидеть их в системе, из-за чего может возникнуть ряд проблем — от полной неработоспособности приложения до потери части его функций. Некоторые приложения откажутся устанавливаться из-за отсутствия Google Maps API, другие падают сразу после запуска, не обнаружив его, третьи включают в себя прямые ссылки на Google Play, что может привести к падениям и некорректной работе.
Чтобы решить эти проблемы, пользователь MaR-V-iN с XDA начал проект NOGAPPS, в рамках которого ведется разработка набора открытых компонентов, заменяющих оригинальную функциональность Google Apps. В данный момент доступно три компонента-замены:
- Network Location — сервис геолокации на основе Wi-Fi и базовых станций GSM. Основан на базе данных IP-адресов от Apple и открытой базе базовых станций;
- Maps API — замена интерфейса к Google Maps на основе OpenStreetMap;
- BlankStore — открытая альтернатива клиенту Play Store. Позволяет устанавливать бесплатные приложения из магазина Google, но не рекомендуется к использованию из-за возможных санкций со стороны поисковика (это запрещено их правилами).
Установка компонентов производится отдельно и разными способами. Network Location достаточно вручную скопировать в каталог /system/app/ в Android 2.3–4.3 или в каталог /system/priv-app/ в KitKat (в этом случае следует использовать файл NetworkLocation-gms.apk). Maps API устанавливается с помощью прошивки файла nogapps-maps.zip через консоль восстановления. Для установки маркета придется не только копировать файл, но и генерировать Android ID на большой машине, но, так как делать это не рекомендуется, я не буду об этом рассказывать и ограничусь ссылкой на инструкцию.
После всех манипуляций софт должен корректно заработать.
Для компании Google Android без ее собственных приложений бесполезен, поэтому нет ничего удивительного в том, что компания выносит в них самые вкусные части системы и оставляет код закрытым. Однако в этой статье я показал, что жизнь без gapps есть и она может быть даже проще и удобнее, чем с Google.
[authors]
Евгений Зобнин
Редактор рубрики X-Mobile. По совместительству сисадмин. Большой фанат Linux, Plan 9, гаджетов и древних видеоигр.
Читайте также: