Как извлечь APK-файл любого приложения для Android
Одним из преимуществ открытости Android всегда считалась возможность загружать APK-файлы приложений в обход Google Play. Кто-то таким образом просто экономит, а кто-то получает доступ к ПО, которого попросту нет в официальном каталоге. Подобная практика распространена настолько широко, что найти APK-файл любого приложения в интернете не составляет никакого труда. Другое дело – извлечь его из уже установленной на смартфон программы. Впрочем, для Android нет ничего невозможного.
Извлечь APK-файл из уже установленного приложения можно несколькими путями. Традиционный предполагает поиск по файловой системе, но разработчик Павел Рекун придумал куда более легкий способ, создав специальный менеджер приложений, позволяющий в одно нажатие извлечь APK-файл из приложения в отдельную папку.
Где взять APK-файл приложения
- Установите приложение Skit;
- Раздайте ему необходимые привилегии;
- Найдите в разделе установленного ПО нужное приложение;



Извлеченный APK-файл можно передать другим пользователям, позволив им установить бесплатно даже платное ПО, которое вы приобрели в Google Play. Несмотря на то что это не совсем легально, такой способ может прийтись кстати при использовании двух смартфонов, один из которых работает на базе китайской прошивки, не включающей в себя Google Play.
Помимо возможности извлечь APK-файл, Skit открывает доступ к информации о разрешениях, которые получили приложения, о дате их последнего обновления, а также дополнительные подробности о разработчике. Такая информация может прийтись кстати, если вы не уверены в безопасности приложения и надежности его издателя.
Подписывайся на наш канал в Яндекс.Дзен, чтобы ежедневно читать эксклюзивные материалы, которых нет на сайте.
Приложение: Skit
Разработчик: Pavel Rekun Категория: Инструменты Цена: Бесплатно Скачать: Google Play Приложением уже заинтересовались: 0 человек

Теги
- Google Play
- Операционная система Android
- Приложения для Андроид
Наши соцсети
Новости, статьи и анонсы публикаций
Свободное общение и обсуждение материалов
Лонгриды для вас

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

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

Вы даже не представляете, что можно найти в Гугл Плей! Магазин приложений намного богаче App Store, поэтому поиск находит программы практически по любому введенному ключевому слову! Да, некоторые из них без оценок или не понравились пользователям вообще, но есть и крутые приложения для Андроид с высоким рейтингом. Более того, некоторые из них постоянно маячат в рекомендациях Гугл Плей, но не получают заслуженного внимания, а зря. Нашел для вас 5 полезных приложений на любой вкус, включая игры, проверенных пользователями, от которых действительно много пользы. Скачивайте на телефон — точно не пожалеете!
Как редактировать системные apk
.jpg)
В процессе использования разнообразных прошивок для Android телефонов и планшетов порой возникает желание тем или иным образом изменить встроенные в операционную систему приложения. В данной статье мы подробно опишем этот процесс. Само собой, что разобрать и собрать обратно системный APK-файл нужно так, чтобы он работал стабильно. Разберем по пунктам, что и как для этого нужно сделать.
1 Для начала Вы должны Дедоксировать Ваши файлы
2 После того как вы декомпилировали приложение выбираем то приложение которое вы собираетесь редактировать и разбираем, пускай оно будет называться framework-res.apk и у себя в уме пометьте его как Оригинальное приложение 1.
3 После того как вы отредактировали приложение вам необходимо его упаковать, то что собралось назовем его в уме Модифицированное приложение 2.
4 Теперь объясняю, зачем нужно было в уме запоминать приложения как оригинальное и модифицированное 2. Собранное программой ApkTool приложение работать не будет, но это не проблема. Выполняем следующие действия:
Сжимать в режиме «Обычный»
5 После того как вы заменили содержимое. Можете забрасывать это приложение в вашу прошивку либо систему.
Статьи по теме APK:
- Что такое APK?
- Необходимые инструменты для работы с APK
- Как устанавливать приложения для Android с расширением apk
- Как удалить приложения (программы, игры) на android?
- Как скачивать и покупать приложения с Google Play
- Что такое root в Android?
- Структура APK файла
- Разборка (декомпиляция) APK файла с помощью Apktool
- Локализация файла APK
- Упаковка APK приложения и подпись (компиляция и подпись)
- Выбор места установки приложения APK
- Редактирование и замена иконок в APK
- Узнаем какие права у приложения APK
- Как извлечь установочный файл с приложением (.apk) из системы
- Как удалить рекламу из приложений APK
- Как скачать приложение APK на компьютер с Google Play
- Какие встроенные (системные) приложения Android можно удалить
- Деодексирование системных приложений в Андроид
- Как редактировать системные apk
- Как получить исходный код приложения с расширением Apk
- Одексирование Android приложений
Модификация исходного кода android-приложения с использованием apk-файла
Так уж получилось, что приложение для чтения комиксов и манги, которое я использую на своем android-смартфоне, после обновления стало показывать рекламу в конце каждой главы комикса. Данное приложение пару лет назад было доступно на Google Play (платная версия которого и была мной куплена), но было удалено в силу «нарушения авторских прав», после чего ушло в подполье и стало распространятся через сайт разработчика. Увы, достойных альтернатив этому приложению на android и iOS я не нашел, но и смотреть рекламу особо не было желания, тем более я уже покупал версию без рекламы. Сам разработчик почему-то не сделал возможности отключить ее, а на просьбы добавить такую возможность не отозвался. Поэтому пришлось искать альтернативные методы ее отключения. Первое, что пришло в голову, это то, что android-приложения пишутся на java, а значит есть вероятность, что автор не обфусцировал свое приложение и его можно попытаться декомпилировать. Немного подумав, я приступил к работе.
Для начала был загружен сам apk-файл приложения. Затем недолгий поиск по интернету привел меня на сайт http://www.decompileandroid.com/. С его помощью можно было загрузить apk-файл с приложением и на выходе получить набор исходников. Увы, декомпиляция в java-классы происходит не совсем идеально и поэтому восстановить полностью сам проект приложения в IDE(Idea) у меня не получилось, но это позволило проанализировать саму структуру проекта и разобраться как он примерно работает. После проведения анализа, было найдено два перспективных метода в классе BaseReaderFragment.java – placeAdViewIfNeeded и removeAdViewIfNeeded.
Код метода placeAdViewIfNeeded:
if (adViewPlaced || adView == null) < return; >else
Самое простое, что пришло на ум после чтения кода, это убрать все лишнее, и оставить лишь вызов return;
Но, как уже было сказано, даже если бы я изменил в java-классе что-либо, я бы не смог в итоге скомпилировать приложение в IDE. Поэтому пришлось искать альтернативу. Оказалось, что smali-файлы, которые создаются в процессе декомпиляции, позволяют также после внесения нужных изменений, вновь собрать модифицированное приложение. Увы, сайт, что был приведен выше, позволял лишь получать исходники, но не собирать новые. Поэтому пришлось искать способы сделать это самостоятельно.
Была найдена утилита ApkTools, которая позволяла декомпилировать и компилировать apk-файлы. Кроме того, потребовалась утилита aapt.exe, которая была взята мной из стандартного SDK под андроид в папке android-sdk\build-tools\20.0.0.
Для удобства вызова утилиты из под windows был создан скрипт apktool.bat:
@echo off set PATH=%CD%;%PATH%; java -jar "%~dp0\apktool.jar" %1 %2 %3 %4 %5 %6 %7 %8 %9
Для декомпиляции приложения были выполнены команды:
apktool if .apk apktool d .apk
После чего, в полученных исходниках был найден файл BaseReaderFragment.smali и нужные нам методы были изменены следующим образом:
.method protected placeAdViewIfNeeded(Landroid/view/ViewGroup;)V .locals 3 .param p1, "layoutAds" # Landroid/view/ViewGroup; .prologue const/4 v2, -0x2 return-void .end method .method protected removeAdViewIfNeeded(Landroid/view/ViewGroup;)V .locals 1 .param p1, "layoutAds" # Landroid/view/ViewGroup; .prologue .line 149 const/16 v0, 0x8 return-void .end method
Далее пришла очередь сборки apk-файла из исходников.
Сделать это можно cледующей командой:
apktool b
Но это еще не все. Чтобы приложение можно было установить, его нужно было подписать цифровой подписью. Самый простой способ сделать это – это скачать архив в котором находится утилита для подписи приложений и цифровые сертификаты к ней.
Распаковываем архив, выполняем команду:
java -jar signapk.jar certificate.pem key.pk8 .apk .apk
Полученный apk-файл можно загружать на телефон, чтобы проверить наше модифицированное приложение. Однако в процессе тестирования изменений оказалось, что объявления больше не показываются, однако сама страница для их показа создается, что не очень приятно. Снова был проанализирован код приложения, найден класс BaseSeamlessReaderFragment, а в нем метод appendPages.
В нем было видно, что строчка:
addPage(new MangaPage(i - 1, null, chapteritem, true), false);
создает дополнительную страницу, помимо тех, что есть в главе манги, с параметром, отвечающим за показ объявлений. Было решено удалить эту строчку и посмотреть результат. Снова заглядываем в аналогичный smali-файл(BaseSeamlessReaderFragment$4) и удаляем строчку:
invoke-virtual , Lorg/mangawatcher/android/fragments/BaseSeamlessReaderFragment;->addPage(Lorg/mangawatcher/android/fragments/BaseSeamlessReaderFragment$MangaPage;Z)V
Снова проводим сборку apk-файла из исходников и подписываем наше приложение. После установки и тестирования приложения экран с рекламой окончательно исчез, что и было конечной целью.
Данный пример показывает, что в случае необходимости можно довольно просто и быстро модифицировать уже существующие android-приложения, чтобы добавить в них недостающий функционал или наоборот удалить некоторые нежелательные возможности в тех ситуациях, когда доступа к исходникам нет. Надеюсь он поможет людям, которые попали в похожую ситуацию и не хотят мирится с ней, найти решение проблемы.
- android
- декомпиляция
- разработка под android
- reverse engineering
- Информационная безопасность
- Разработка под Android
разобрать изменить и собрать
Месяцев 3 назад собрал приложение.никаких бд и ничего нет .чтото легкое .Проект сам утерян .теперь мне надо както сделать пару изменеий в проекте заменить текст и тд.Не знаю что делать ?можно ли как то декомпилоровать апк изменить данные и обратно компелировать ? Очень нужна ваша помощ
Отслеживать
задан 10 ноя 2016 в 6:28
5,648 5 5 золотых знаков 24 24 серебряных знака 54 54 бронзовых знака
приложение находится на Google Play?
10 ноя 2016 в 6:32
Нет я его не выставлял туда ю но должен сегодня
10 ноя 2016 в 6:33
у менять есть апк только
10 ноя 2016 в 6:33
или можно как то декомпилировать и взять оттуда мои данные и копи пастом создать новый проект
10 ноя 2016 в 6:33
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
для проведения таких действий вам потребуется:
Далее выполнить по следующим шагам:
- Качаем dex2jar и извлекаем в папку, например С:\Decompile .
- Качаем Java Decompiler (например JD-GUI) и извлекаем файлы для удобства в ту же папку, куда и dex2jar.
- Качаем apktool и apktool-install-windows-r04-brut1.tar.bz2 и извлекаем файлы уже в системную папку. По умолчанию C:\Windows . (Не забыть скачать второй архив)
- Берем нужный apk файл и кладем в папку с dex2jar и Java Decompiler.
- Открываем Командную строку (Обработчик команд Windows) в вышеупомянутой папке (В папке по пустому месте при зажатой кнопке Shift нажимаем правую кнопку мыши и выбираем Обработчик команд Windows).
- Вводим команду dex2jar и если все прошло хорошо, в той же папке появится файл .apk.dex2jar.jar
- Запускаем jd-gui и открываем полученный на предыдущем шаге файл. (На Windows 7 открывать с правами администратора и с совместимостью Windows XP SP3)
- Выбираем пункт меню File-Save All Source s и сохраняем.
- Извлекаем полученный zip архив.
- Помещаем полученную папку в папку src (надо предварительно создать).(Что бы получилась примерно такая структура С:\Decompile\\src\com\android )
- Опять же в командной строке вводим команду apktool d .apk , где .apk -имя пакета, -папка для декомпиляции.
Если все хорошо, тогда в указанной папке будут исходники в двух форматах (java и smali), ресурсы и файлы AndroidManifest.xml , apktool.yml
Таким образом будут получены исходники. Правда после декомпиляции в коде есть, можно сказать, ошибки,например вместо true и false стоят 1 и 0 соответственно.
