Вскрываем, модифицируем и запаковываем Android-приложения

У вас есть неофициальное программное обеспечение (так называемое пользовательское ПЗУ) на вашем Android, и теперь вы не можете войти в приложение Google? Отображается ли информация о том, что данное устройство не сертифицировано компанией Google? Посмотрите, как это исправить.

Новая система разрешения приложений Android

Приложения для Android 6.0 теперь будут спрашивать разрешения, когда они в них нуждаются. Например, вместо того, чтобы дать разрешение на доступ к камере при установке приложения, Вам будет предложено разрешить доступ к камере при первом запуске этого приложения.

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

Управление разрешениями Android приложения

Для этого Вам потребуется Android 6.0 Marshmallow или более новая версия на Вашем устройстве.

Откройте «Настройки», нажмите на пункт «Приложения», который находится в разделе «Устройство».

Вы увидите список всех приложений, установленных на Вашем Android устройстве. Нажмите на приложение в списке, чтобы просмотреть дополнительную информацию. На экране информации о приложении Вы увидите пункт «Разрешения», в котором перечислены все разрешения, к которым приложение имеет доступ. Нажмите на «Разрешения».

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

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

При отключении какого-либо разрешения, появится предупреждение о том, что данное приложение было разработано для старых версий Android, и отключение может привести к сбою.

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

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

Вы также можете зайти в меню, которое располагается в правом верхнем углу на данном экране, и нажать «Все разрешения». Здесь можно увидеть все разрешения, которые выданы приложению. Android скрывает некоторые разрешения. Как видите, управление разрешениями Android приложений распространяется не на все категории.

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

Просмотр и управление разрешениями Android для всех приложений

Для просмотра и управления разрешениями для всех приложений сразу, откройте Настройки и перейдите в Приложения. В правом верхнем углу нажмите на иконку шестеренки и нажмите на пункт «Разрешения приложений».

Читайте также:  Скачать Google Карты на Андроид

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

Для просмотра приложений, использующих категорию разрешений, нажмите на нее. Например, чтобы увидеть какие приложения имеют доступ к данным календаря, нажмите на «Календарь». Чтобы запретить приложению доступ к календарю, отключите его на данном экране.

При отключении разрешения Вы увидите предупреждение о том, что приложение было разработано для старых версий Android.

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

Через аналог Google Play

Если по версии Google Play «Приложение несовместимо с вашим устройством», то на помощь вам придет Market Helper. Его не найти в официальном магазине от Google, но скачать его можно с сайта разработчика. Прежде чем пользоваться этой утилитой, следует получить root-доступ для вашего смартфона. Смысл приложения в том, что оно, редактируя системный файл, подменяет идентификатор вашего устройства, который сканируется магазином. Вот краткий гайд по работе с программой:

  1. После загрузки откройте Market Helper и выберите параметры устройства: тип, модель, страну и оператора – следует выбрать такие, с которыми загружаемое приложение будет совместимо на 100% (рекомендуем топовые модели популярных брендов);
  2. Нажимаем «Activate» и ждем применения параметров;
  3. Теперь авторизуемся в личном кабинете Google;
  4. Пробуем установить то, что раньше было несовместимо.
Через аналог Google Play

Для возврата к исходным настройкам нажмите «Restore», а затем – «Activate». В большинстве случаев такой способ помогает обойти сообщение «Приложение несовместимо с вашим устройством Android».

Запрашивает доступ к данным, которые ему не нужны

Создатель софта для цифровой безопасности Avast обнаружил, что приложения для Android злоупотребляют разрешениями на использование данных и функций смартфонов. Они стабильно запрашивают доступ к файлам и возможностям, которые им не нужны.

Установил "фонарик" — потерял данные. Как приложения на Android обманывают вас

Запрашивает доступ к данным, которые ему не нужны

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

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

Зарегистрируйте свое устройство, чтобы использовать приложение Google после установки неофициального программного обеспечения

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

Для этого вам необходимо зарегистрировать свое устройство на веб-сайте Google, введя идентификатор GFS идентификатора Android. Посмотрим, как получить этот идентификатор со своего смартфона и как зарегистрировать его в своей учетной записи Google.

Чтобы извлечь GID Android ID, мы будем использовать специальное приложение с именем Device ID. Поскольку мы не можем использовать Play Store, мы должны загрузить приложение вручную. Файл APK с приложением Device ID можно загрузить с веб-сайта APKMirror:

Загрузить идентификатор устройства в версии APK

Вы можете загрузить файл прямо на свой телефон или сделать это на своем компьютере, а затем скопировать файл APK во внутреннюю память или на SD-карту телефона с помощью USB-кабеля.

После того, как у вас есть файл APK с приложением Device ID на вашем смартфоне, запустите любое приложение для просмотра файлов (File Manager / Files) на Android. Найдите файл APK и запустите его и подтвердите установку.

Если вы не можете установить приложение, перейдите в «Настройки> Безопасность» и установите флажок «Неизвестные источники», чтобы иметь возможность устанавливать приложения за пределами Play Маркета, а затем попытаться снова запустить файл APK.

Читайте также:  Инструкция по обновлению браузера на Android, iOS и Windows Mobile

После запуска приложения вы найдете здесь раздел Google Services Framework и ваш идентификатор ниже. Сохраните его сами, потому что он вам понадобится в ближайшее время.

Имея идентификатор Android GSF, перейдите по следующему адресу и войдите в свою учетную запись Google:

Перейти к регистрации устройства в Google

На приведенной выше странице введите свой ID в поле идентификатора Android GSF и нажмите «Регистрация».

Ваше устройство будет зарегистрировано в вашей учетной записи Google, и вы сможете войти в Play Маркет и любые другие приложения Google на вашем смартфоне.

Просмотр и модификация

Допустим, ты нашел интересующий тебя пакет, скачал, распаковал… и при попытке просмотра какого-нибудь XML-файла с удивлением обнаружил, что файл не текстовый. Чем же его декомпилировать и как вообще работать с пакетами? Неужели необходимо ставить SDK? Нет, SDK ставить вовсе не обязательно. На самом деле для всех шагов по распаковке, модификации и упаковке пакетов APK нужны следующие инструменты:

  • архиватор ZIP для распаковки и запаковки;
  • smali — ассемблер/дизассемблер байт-кода виртуальной машины Dalvik ();
  • aapt — инструмент для запаковки ресурсов (по умолчанию ресурсы хранятся в бинарном виде для оптимизации производительности приложения). Входит в состав Android SDK, но может быть получен и отдельно;
  • signer — инструмент для цифровой подписи модифицированного пакета ().

Использовать все эти инструменты можно и по отдельности, но это неудобно, поэтому лучше воспользоваться более высокоуровневым софтом, построенным на их основе. Если ты работаешь в Linux или Mac OS X, то тут есть инструмент под названием apktool. Он позволяет распаковывать ресурсы в оригинальный вид (в том числе бинарные XML- и arsc-файлы), пересобирать пакет с измененными ресурсами, но не умеет подписывать пакеты, так что запускать утилиту signer придется вручную. Несмотря на то что утилита написана на Java, ее установка достаточно нестандартна. Сначала следует получить сам jar-файл:

$ cd /tmp $ wget $ tar -xjf

Далее нам понадобится скрипт-обвязка для запуска apktool (он, кстати, доступен и для Windows), включающий в себя еще и утилиту aapt, которая понадобится для запаковки пакета:

$ wget $ tar -xjf

Далее просто сваливаем содержимое обоих архивов в каталог ~/bin и добавляем его в $PATH:

$ mv ~/bin $ mv apktool-install-linux-r05-ibot/* ~/bin $ export PATH=~/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, например:

$ apktool d

После этого в каталоге mail появятся все извлеченные и дизассемблированные файлы пакета.

Читайте также:  Как включить ночной режим в Reddit (темная тема)

Clean Master и другие оптимизаторы системы

Вера в чудеса является самой главной движущей силой для распространения разных «очистителей» и «оптимизаторов». Мол, сотни лучших программистов Google не смогли довести свою систему до ума, а вот этот изобретатель-одиночка взял и сделал! Спешим вас расстроить: большинство подобных приложений либо вообще ничего не делают, либо наносят только вред. Очистить кэш, удалить остатки старых программ можно и встроенными системными инструментами. Очистка же памяти на самом деле только замедляет запуск программ и работу Android вместо обещанного создателями утилит ускорения системы.

Альтернатива. Используйте имеющиеся в Android инструменты для очистки кэша приложений. Забудьте об оптимизации памяти.

Препарирование. Отключаем рекламу

Теория — это, конечно, хорошо, но зачем она нужна, если мы не знаем, что делать с распакованным пакетом? Попробуем применить теорию с пользой для себя, а именно модифицируем какую-нибудь софтину так, чтобы она не показывала нам рекламу. Для примера пусть это будет Virtual Torch — виртуальный факел. Для нас эта софтина подойдет идеально, потому что она под завязку набита раздражающей рекламой и к тому же достаточно проста, чтобы не потеряться в дебрях кода.

Итак, с помощью одного из приведенных способов скачай приложение из маркета . Если ты решил использовать Virtuous Ten Studio, просто открой APK-файл в приложении и распакуй его, для чего создай проект (File -> New project), затем в контекстном меню проекта выбери Import File. Если же твой выбор пал на apktool, то достаточно выполнить одну команду:

Препарирование. Отключаем рекламу

$ apktool d

После этого в каталоге появится файловое дерево, похожее на описанное в предыдущем разделе, но с дополнительным каталогом smali вместо dex-файлов и файлом Первый содержит дизассемблированный код исполняемого dex-файла приложения, второй — служебную информацию, необходимую apktool для сборки пакета обратно.

Первое место, куда мы должны заглянуть, — это, конечно же, И здесь мы сразу встречаем следующую строку:

Препарирование. Отключаем рекламу

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

$ apktool b

Препарирование. Отключаем рекламу

В каталоге появится результирующий APK-файл. Однако установить его не получится, так как он не имеет цифровой подписи и контрольных сумм файлов (в нем просто нет каталога META-INF/). Мы должны подписать пакет с помощью утилиты apk-signer. Запустили. Интерфейс состоит из двух вкладок — на первой (Key Generator) создаем ключи, на второй (APK Signer) подписываем. Чтобы создать наш приватный ключ, заполняем следующие поля:

  • Target File — выходной файл хранилища ключей; в нем обычно хранится одна пара ключей;
  • Password и Confirm — пароль для хранилища;
  • Alias — имя ключа в хранилище;
  • Alias password и Confirm — пароль секретного ключа;
  • Validity — срок действия (в годах). Значение по умолчанию оптимально.

Остальные поля, в общем-то, необязательны — но необходимо заполнить хотя бы одно.

Препарирование. Отключаем рекламу

Создаем цифровую подпись вручную

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

DSEO – это популярная утилита для установки и редактирования цифровых подписей программного обеспечения любого типа. Следуйте инструкции:

  • После установки DSEO откройте программу от имени администратора;
  • В главном окне выберите режим Test Mode и перейдите в следующее окно, нажав на клавишу Next;
  • Кликните на опцию Sign a System Mode для подписи определенного системного файла и снова нажмите на Next;
  • Во всплывающем окне выберите файл, для которого будет проводиться создание подходящей цифровой подписи и нажмите ОК;
  • Дождитесь окончания работы процесса и закройте программу.
Создаем цифровую подпись вручную

Теперь вы сможете установить выбранный драйвер на свой компьютер.

– работа в программе DSEO