Как испортить приложение на андроид
Несмотря на то, что рынок наводнен множеством устройств с безумно хорошей производительностью и временем автономной работы, не все в экосистеме Android используют новейший смартфон или даже новейшую операционную систему Android. Поскольку большая часть пользователей Android использует устаревшие устройства низкого или среднего уровня, совершенно очевидно, что они не получают лучшее время автономной работы или производительность от своих устройств. Если вас интересует, как можно улучшить время автономной работы и производительность вашего смартфона на Android, вы можете воспользоваться диспетчером задач. Итак, мы подготовили этот список пяти лучших приложений-убийц для Android, которые вы можете попробовать улучшить время автономной работы вашего смартфона и производительность.
Лучшие убийцы приложений для Android в 2020 году
1. Greenify
Greenify, которую часто называют лучшим приложением для экономии заряда аккумулятора для Android, является одним из лучших убийц задач для Android, который даже не претендует на уничтожение приложений. Приложение работает для определения других приложений, которые расходуют значительную часть вашего аккумулятора, а затем ограничивают время, которое они могут работать в фоновом режиме, но переводят их в режим гибернации, что приводит к увеличению срока службы аккумулятора и немного более плавной работе. Для пользователей последней версии Android (Android 6.0 Marshmallow и выше) Greenify даже поставляется с Aggressive Doze Mode, который усиливает функции Doze Mode, встроенные в Android, чтобы сделать их более эффективными.
2. KillApps
Кроме того, приложение снижает потребление памяти и делает ваш смартфон быстрым и эффективным. Что мне больше всего нравится в KillApps, так это то, что его довольно просто настроить и использовать. Кроме того, для тех людей, которые не хотят каждый раз вручную убивать приложения, они могут включить разрешение доступа к приложению. Это позволит KillApps автоматизировать процесс закрытия без необходимости запуска приложения вручную. В дополнение ко всему этому, KillApps также включает в себя ускоритель скорости, очиститель оперативной памяти, средство удаления запаздывания и усилитель игры. Так что если вас интересует полнофункциональный убийца приложений для Android, тогда KillApps поможет вам.
4. App Killer и менеджер
5. Naptime
Разработанный известным разработчиком ядра Franco Франциско Франко, Naptime хорошо использует встроенную функцию Android в режиме ожидания и заставляет ее работать сразу после выключения экрана телефона. Опция агрессивной дозы перестает работать, как только вы включаете дисплей, что означает, что ни один из процессов не блокируется, когда вы используете устройство.
Для работы приложения требуется root-доступ, что дает вам еще одну причину для рутинга вашего Android. Но если вы все еще против рутирования, вы можете использовать простой обходной путь. Вы можете сделать это, предоставив разрешения Naptime DUMP через ADB, выполнив несколько команд, которые удобно появятся, как только вы впервые используете приложение. Совершенно очевидно, что приложение не предназначено для абсолютных новичков и должно использоваться только кем-то, кто имеет хотя бы базовое понимание того, как работает АБР.
Бонус: расширенный диспетчер задач
Еще одним отличным вариантом для устаревших устройств Android является Advanced Task Manager, который поддерживает устройства до Android 7.0 Nougat. Приложение Advanced Task Manager перечисляет все приложения, работающие на вашем устройстве, и дает вам возможность выбрать, какие приложения убивать, чтобы увеличить время автономной работы и ускорить работу вашего устройства. В приложении даже есть список игнорирования, который позволит вам занести в белый список важные приложения, чтобы вы не убили их случайно.
Приложение также поставляется с антивирусным сканером, чтобы избавить ваше устройство от любых вредоносных файлов, и аккуратной функцией пакетной деинсталляции, которая позволит вам с относительной легкостью удалять ненужные приложения с вашего смартфона Android. Кроме того, приложение даже позволяет пользователям автоматизировать процесс уничтожения приложений, чтобы приложение могло автоматически убивать выбранные приложения при выключенном экране устройства, при запуске или продолжать убивать приложения в фоновом режиме.
Использование параметров разработчика для ограничения фоновых приложений
Если вы не хотите зависеть от сторонних приложений, чтобы убивать приложения для вас, вы даже можете использовать встроенную функцию на Android, чтобы получить тот же эффект. Данная функция позволит вам ограничить количество фоновых процессов, которые могут выполняться на вашем устройстве. Для доступа к этой функции вам необходимо выполнить следующие простые шаги:
- Включите параметры разработчика на своем устройстве, несколько раз нажав номер сборки в разделе «О телефоне» в меню настроек.
- В опциях разработчика прокрутите вниз до раздела «Приложения» и нажмите на «Фоновый лимит процесса».
- Нажмите на количество фоновых процессов, которые вы хотите разрешить, и все готово.
Вы даже можете запретить запуск приложений в фоновом режиме, включив опции «Не хранить действия» в одном и том же меню, которое уничтожит все действия, как только вы переключитесь на другую задачу. Однако это может не сильно повлиять на общую производительность телефонов, так как при каждом доступе к ним придется загружать приложения с нуля, что займет немало времени.
Используйте лучшие убийцы Android-приложений
Что ж, это округляет наш список лучших убийц приложений для Android. Еще раз, я хотел бы подчеркнуть тот факт, что вышеупомянутые приложения не предназначены для недавнего флагмана и могут не иметь существенного значения, если используются на новом телефоне. Наилучшие результаты могут быть достигнуты на старых устройствах с низким и средним диапазоном, которые со временем замедляются и не обеспечивают требуемый срок службы батареи. Что вы думаете о диспетчере задач для Android? Как вы думаете, они полезны или они не оказывают существенного влияния на срок службы батареи и производительность? Дайте нам знать в комментариях ниже.
Владельцам смартфонов на базе операционной системы Android скучать никогда не приходится, поскольку в любой момент всегда можно что-то изменить. Так, например, если надоел стандартный внешний вид графической оболочки, то всегда можно поставить кастомный лаунчер, специальную тему или установить стороннее приложение, благодаря чему интерфейс всего мобильного устройства изменится до неузнаваемости. Тем не менее, во всех Android-смартфонах есть десятки скрытых настроек, о которых большинство пользователей вообще ничего не знает. Одна из них позволяет всего одно нажатие «сломать телефон», но затем его можно будет вернуть в прежнее состояние.
Специальная скрытая настройка есть абсолютно во всех Android-смартфонах, причем даже в тех, которые работают на базе сторонних прошивок – MIUI 9, Flyme OS 6 или любой другой. Компания Google добавила ее в исходный код операционной системы, в результате чего она стала ее неотъемлемой частью. Сделать так, чтобы интерфейс всего телефона «сломался», может быть полезно ради любопытства или для розыгрыша своего друга или знакомого. Поскольку на телефон не установлено никакое стороннее ПО, то он даже не сможет понять, что случилось с его смартфоном и почему интерфейс операционной системы начал выглядеть ужасно криво и неправильно.
Для того чтобы увидеть скрытую настройку необходимо запустить «Настройки», а затем открыть раздел «О телефоне». Здесь требуется несколько раз подряд нажать на вариант «Версия прошивки», после чего в нижней части экрана должна появиться надпись вида «Поздравляем, вы стали разработчиком». Это значит, что теперь раздел со скрытыми настройками стал доступен для редактирования и можно приступать к «поломке телефона».
Чтобы осуществить эта задумку следует запустить «Настройки», а затем открыть раздел «Для разработчиков», который может скрываться в подразделе «Расширенные настройки». На этой странице следует активировать «Режим разработки», после чего согласиться со всеми предупреждениями. В большом списке следует найти настройку «Отразить интерфейс», которую следует активировать. Если все было сделано правильно, а по-другому быть никак не может, то «телефон сломается».
Опция «Отразить интерфейс» делает именно то, что исходи от ее названия – она отражает интерфейс. В итоге, практически все интерфейсы на телефоне будут отображаться так, словно их выровняли по-другому края.
Такая опция не мешает пользоваться смартфонов, поскольку все возможности и функции по-прежнему будут доступны, однако она заставляет мозг «взорваться», так как даже загрузка страниц в веб-браузере теперь будет происходить справа налево. Иными словами, в глазах любого человека, телефон окажется «сломан». Чтобы вернуть все обратно достаточно просто выключить скрытую настройку.
Ни один разговор о взломе и модификации приложений не обходится без упоминания дизассемблера, дебаггера, формата исполняемых файлов и вездесущей IDA Pro. Однако в случае с Android все намного проще, и здесь для вскрытия и даже внедрения кода в приложение совсем не обязательно использовать все эти инструменты. Код можно легко декомпилировать обратно в Java и модифицировать, используя пару простых инструментов и текстовый редактор.
Этой статьей мы начинаем цикл, посвященный вскрытию и модификации приложений для Android. Первая часть — вводная, поэтому никакого хардкора: мы разберемся в устройстве пакетов APK, научимся разбирать APK на части, декомпилировать его код, вносить правки и собирать обратно, и в качестве примера взломаем одно популярное приложение из маркета. Вторая статья будет целиком посвящена внедрению бэкдора/вируса в чужое приложение. Это уже не просто правка нескольких строк, а глубокая модификация. Третья статья — методы обфускации и их обхода. Все больше разработчиков используют нетривиальную обфускацию, чтобы осложнить жизнь реверсерам. Мы распутаем их код и опять же внесем правки в приложение.
WARNING
Это ознакомительная статья, призванная всего лишь показать процесс взлома приложений. Она не призывает тебя заниматься варезом и лишать доходов людей, потративших многие недели на создание приложений. ASAP Launcher — великолепное приложение без навязчивой рекламы, почти вся полезная функциональность доступна бесплатно. Поэтому вместо того, чтобы использовать крякнутую версию, лучше купи полное приложение и поддержи разработчика. Оно обойдется тебе всего в 100 рублей.
Снаряжаемся
Для выполнения описанных в статье действий понадобится ряд инструментов, и главный инструмент — это Linux. Да, многие из названных далее программ могут работать и в Windows, но в любых операциях, связанных с Android и его приложениями, лучше не полагаться на детище Билли. В Linux практически все сделать проще, командная строка здесь в разы удобнее (она нам ох как понадобится), а некоторые инструменты просто недоступны для других ОС.
После установки Linux в виртуалку или второй системой сразу устанавливаем средства разработки на Java и виртуальную машину. В Ubuntu это можно сделать с помощью одной команды:
Также нам нужны четыре инструмента для распаковки и декомпиляции приложений:
-
— швейцарский армейский нож для распаковки и запаковки приложений; — декомпилятор байт-кода Dalvik в код на Java; — дизассемблер кода Dalvik (не пугайся, с настоящим ассемблером он имеет мало общего); — утилита для подписи пакетов.
Для удобства создадим в домашнем каталоге подкаталог Android и скачаем эти инструменты в него:
Добавим в конец файла
/.bashrc следующие строки:
Они нужны для того, чтобы вместо длинных и неудобных команд вроде java -jar
/Android/sign.jar можно было набрать просто sign.
Вскрываем подопытного
Теперь нам нужно найти приложение, которое, во-первых, нетрудно расковырять, а во-вторых, которое несет какую-то пользу и достаточно известно. То есть брать простейшую софтину только для того, чтобы было не очень сложно разобраться в ее коде, мы не будем, а вместо этого устремим свой взор на топ Play Store. Практически идеальный кандидат на эту роль — выпущенный два месяца назад ASAP Launcher, удобнейший домашний экран с массой полезных и неординарных функций.
Для удобства переименуем пакет в asap.apk:
Разархивируем с помощью unzip:
Да, APK — это обычный архив ZIP, но тем не менее он имеет четкую структуру:
- META-INF — каталог, содержащий файлы MANIFEST.MF, CERT.MF и CERT.RSA. Первые два — список всех файлов пакета и их контрольных сумм, последний содержит открытый ключ разработчика и созданную с помощью закрытого ключа цифровую подпись файла CERT.MF. Эти данные нужны, чтобы при установке пакета система смогла выяснить, что пакет не был модифицирован и действительно создан его автором. Это важно, так как, поскольку нет возможности подделать цифровую подпись пакета (для этого нужен закрытый ключ), модифицированный пакет придется подписывать другим ключом;
- res — ресурсы приложения. Здесь находятся иконка (mipmap), переводы строк (values), изображения (drawable), а также описания интерфейса приложения (layout). Все их можно модифицировать, чтобы изменить внешний вид приложения. Правда, файлы XML придется сначала «разжать» — для улучшения производительности они хранятся в бинарном формате;
- classes.dex — код приложения в форме байт-кода виртуальной машины Dalvik. Обычно приложения содержат только один такой файл, но, используя директиву multiDex, разработчик может заставить среду разработки разбить его на множество более мелких для улучшения производительности или преодоления ограничения на 65 536 методов в одном dex-файле;
- AndroidManifest.xml — манифест приложения, описывающий его структуру, включая активности, сервисы, обработчики интентов и так далее. Опять же в формате бинарного XML.
Также пакет может содержать другие каталоги, например assets (любые файлы, включенные разработчиком, в данном случае — шрифты и база данных) и lib (нативные библиотеки, созданные с использованием Android NDK).
Изучаем код
Само собой разумеется, просто разархивировать пакет недостаточно. Чтобы разобраться в работе приложения, необходимо декомпилировать файл classes.dex.
Для этого мы воспользуемся jadx-gui. Запускаем, выбираем asap.apk и видим слева список пакетов Java, включенных в APK. В данном случае это пакеты android.support — официальная библиотека Google, реализующая поддержку функций новых версий Android в старых (например, чтобы получить Material Design в Android 4.1), com.google.android.gms — Google Mobile Services, com.nispok.snakbar — реализация GUI-элемента snakbar, а также несколько других.
Основной код приложения содержится в пакете com.citc.asap, именно такое имя носит и само приложение в Google Store и на устройстве. Открываем его и видим больше десятка каталогов и множество исходников Java. Наша задача — сделать приложение «оплаченным», не платя за него. Но как найти нужный файл, реализующий проверку на оплату? Скорее всего, он будет содержать в имени слово billing. Пробегаемся по исходникам в поисках нужного нам файла и натыкаемся на исходник BaseBillingFragment в подкаталоге (пакете) fragments:
Это очень простой класс Java, в котором есть интересный метод:
Все, что он делает, — просто возвращает значение поля mHasPrime, однако интересен он не этим, а своим именем. Дело в том, что платная (точнее, оплаченная) версия ASAP называется Prime, и очевидно, что метод hasPrime как раз и нужен для проверки оплаты приложения. Чтобы подтвердить свою догадку, сохраним декомпилированные исходники (File -> Save all) в каталог и попробуем найти в них вызовы hasPrime():
Совпадений немного, основной «пользователь» hasPrime() — это SettingsFragment, то есть исходник, отвечающий за формирование окна настроек. Учитывая, что Prime-версия отличается от бесплатной именно тем, что в ней разблокированы дополнительные поля настроек, уже сейчас мы можем быть на 90% уверены, что hasPrime() — нужный нам метод. Скорее всего, именно с его помощью приложение выясняет, куплена ли Prime-версия. Осталось только убедиться в этом окончательно, подменив код метода на свой.
Вносим правки
Метод hasPrime() очень прост: он возвращает значение поля mHasPrime, которое имеет тип boolean. Нетрудно предположить, что в случае, если приложение оплачено, hasPrime() вернет true, иначе вернет false. Наша задача — сделать так, чтобы метод всегда возвращал true и остальная часть приложения думала, что приложение оплачено, и разблокировала дополнительные опции в окне настроек.
К сожалению, сделать это с помощью прямой правки исходного кода не получится: приложение нельзя скомпилировать обратно. Однако никто не запрещает дизассемблировать код, внести правки и собрать его вновь. И как раз здесь нам понадобится apktool. Дизассемблируем APK:
В текущем каталоге появится подкаталог asap. Открываем файл asap/smali/com/citc/asap/fragments/BaseBillingFragment.smali и находим hasPrime() . Декларация метода будет выглядеть так:
Это и есть дизассемблированный листинг, и, как ты видишь, он на порядок проще, чем дизассемблированный код нативных приложений. В целом здесь все тривиально:
- .method protected hasPrime()Z — объявляет protected-метод, который возвращает значение типа boolean (Z);
- .locals 1 — говорит виртуальной машине, что метод использует в своей работе один регистр (в данном случае он будет содержать возвращаемое значение);
- .prologue и .line 167 — директивы, необходимые для отладки, на ход исполнения не влияют;
- iget-boolean v0, p0 . — получает значение поля типа boolean и записывает в регистр v0, регистр p0 — это нулевой параметр, он всегда равен имени класса (this);
- return v0 — возвращает значение регистра v0;
- .end method — закрывает тело метода.
Теперь мы должны изменить данный метод так, чтобы он возвращал true независимо от значения поля mHasPrime . Мы могли бы сделать это вручную, но проще написать новый метод на Java:
И пропустить его через компилятор и дизассемблер:
На выходе получаем следующий ассемблерный код:
Ты уже должен сам догадаться, что он объявляет константу v0 со значением 1 и возвращает ее (в Dalvik тип boolean — это int, который может иметь значение 1 — true или 0 — false). Осталось только вставить этот код вместо оригинального и собрать пакет обратно:
Пакет появится в каталоге asap/dist . Переименуем его, чтобы не запутаться:
И подпишем с помощью тестового ключа:
В результате в текущем каталоге появится файл asap-fake-hasPrime.s.apk. Остается только закинуть его на карту памяти и установить, удалив перед этим оригинальное приложение.
Выводы
Взломать приложение для Android очень и очень просто. Да, я не спорю, нам попался удобный и простой пример для модификации, но опять же повторюсь — это весьма популярное приложение, о котором рассказывали на большинстве сайтов, посвященных Android.
Большинство других приложений вскрыть так же просто, однако есть достаточное количество экземпляров, пропущенных через обфускаторы и различные системы защиты. С ними все несколько сложнее, и таким приложениям будет посвящена третья статья цикла. Во второй статье мы рассмотрим, как тот же самый метод модификации использовать для внедрения собственного кода.
Евгений Зобнин
Редактор рубрики X-Mobile. По совместительству сисадмин. Большой фанат Linux, Plan 9, гаджетов и древних видеоигр.
В современных реалиях взлом приложений уже никого не удивляет. Кто-то взламывает игры, чтобы юзать контент бесплатно, а кто-то хочет получить все функцие любимого фоторедактора без совершения покупок. Но как взломать приложение легко и быстро? Поскольку андроид-платформа очень популярна и чуть более уязвима, чем iOS, очень актуальна тема «хак андроид-программ».
Есть два способа пользоваться всеми функциями софта без отплаты контента:
- скачать уже готовый хакнутый софт на сайте;
- взлом платных приложений андроид самостоятельно с помощью программы.
Но у обоих вариантов есть свои сложности. У первого – это высокая вероятность подхватить вирус на устройство, скачивая с неизвестных источников. Поскольку, зачастую в файле нет самого софта, а они используются только как взломщик и «телепорт» для вируса. А у второго – высока сложность выполнения. Если не найти вариант, который обеспечит безопасный взлом приложений на андроид (а таких очень мало), возможно, придётся переписывать программу на уровне кода. Это более сложный процесс. Стоит также обращать внимание на root права.
К примеру, одно из ярких вариантов для легкого взлома игр – DroidoLom. Этот софт занимается подбором комбинаций ключей при взломе через данные системы. Программа не сканирует ваши данные аккаунтов и более того, не пускает другой хакерский софт. Она также открывает скрытые возможности платных версий.
Отдельно хотим вам рассказать о самых популярных программах, которые используются для хаков на Android. Но некоторые из них с «претензией на приватность». Прежде всего, уточним, что любое вторжение в частную жизнь – это нарушение, и мы в 5mod не приветствуем такие способы.
Лучшие приложения для взлома на андроид и инструкции к использованию:
Еще раз напомним об опасности скачивания хакнутого софта с незнакомых сайтов. Загружайте его только если полностью уверены, что скачанное апк не принесёт вашему гаджету вреда. Скачивайте программы на нашем сайте и не беспокойтесь о безопасности вашего смартфона. Все они защищены от вирусов и вредоносного ПО.
Читайте также: