Как распаковать прошивку телефона что бы вытянуть арк файл

Обновлено: 07.07.2024

Иногда некоторые приложения на 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

Настройка 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

Импорт 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

Поиск кода рекламы в 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

Создание ключа в 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. Однако, имея базовые знания, разобраться во всем этом — лишь вопрос времени.

APK Extractor
версия: 4.21.07

Последнее обновление программы в шапке: 23.10.2021

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

Краткое описание:
Извлечение файла APK из установленного приложения в одно касание без рут.

Откройте APK Extractor. Появится список установленных приложений.
Выберите нужное приложение и нажмите на него.
Файл APK должен сохраниться в папке "ExtractedApks". Убедитесь, что извлеченный файл APK находится там.

Прикрепленное изображение

Причина редактирования: Обновление: новая версия 4.21.07 (21007)Pro

R0100v,
Вы разработчик? Если нет, то укажите его и источник, откуда взято приложение.

R0100v,
Русского нет (хотя он там особо и не нужен), только Англ., и Италия. Прога работает нормально, даже системные извлекает.

Русского нет (хотя он там особо и не нужен), только Англ., и Италия.

Угу, нет и не было.
Кому нужно, держите русифицированный вариант:

APK Extractor v3.0 RUS

Прикрепленное изображение

APK Extractor v3.0 RUS.apk ( 489.29 КБ )

kototkot, Х-плор умеет то же самое, по пункту Диспертчер программы. Да, но Total Commander и X плорером я бы ребенку не доверил пользоваться. А тут показал раз и забыл. Приложение системное извлек. А ему для работы еще нужны свои сервисы. Их то как извлекать? Да, но Total Commander и X плорером я бы ребенку не доверил пользоваться.

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

3aval,
Каким образом? Приложение лишь извлекает apk файл, без рута оно никоим образом не сможет что либо изменить в системе.
Пользователям навороченных файл-менеджеров на рутованных девайсах оно может и бессмысленно, но иногда хочется извлечь что-либо предустановленное не рутуя систему - тогда сабж вполне себе пригодится.

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

Не вполне согласен. "Польза или бесполезность" приложения никак не зависит от прав суперпользователя, а лишь от наличия ФМ с фичей, аналогичной сабж. "Предустановленное" без рута одинаково извлекается, что через тот же ТС, что через сабж.
А про "бессмысленность". Не запрещается иметь одновременно несколько приложений с похожим функционалом и пользоваться в конкретных обстоятельствах тем, которое удобнее или просто больше "нравится". Если сделать долгий тап на любом приложении, то активируется режим множественного выделения - может кому ещё пригодится.

APK Extractor v3.03

Что нового:
- Added Polish, Portuguese-Brazilian and Turkish translations.
- Minor issues fixed.
- Saved apk format Modified to AppName_AppVersionName_AppVersionCode.apk.

Ну, ничегоси ©! Изобрести велосипед и постоянно допиливать его! Вау. В почти любом файл-менеджере есть доступ к root. Скопировать файл из /system/app или /data/app религиозные соображения не позволяют? Копируй тогда и соответствующую папку из /data/data - будет бекап.

APK Extractor
(meher)
Это первое приложение, которое должно быть!
Если бы я раньше знал было бы лучше.
Например, недавно обнаружил, что самый лучший PDF Viewer v1.1 перестал обновляться,
более того приложение переименовали и сделали уже совсем не то что было.
Теперь сделал на всякий случай бэкап. Недавно Opera update заглючил, долго пытался найти apk для отката.
Прога супер!

Спасибо за русскую и без рекламы, но почему-то версия программы отображается не 3.03, а 29. :o

Не знал что без Root такое возможно. Даже системные приложения извлекает.


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

Что представляет собой прошивка

Способы извлечения и замены файлов в прошивках Android-устройств

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

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

Стоит ли распаковывать прошивку

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

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

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

Распаковка прошивки Android в ZIP-формате

Для распаковки Android-прошивки нужно найти архив на ПК, кликнуть на нем правой кнопкой мыши, выбрать распаковку и указать директорию для переноса всех файлов. Решая, чем распаковать ZIP-прошивку Android или любой другой архив в данном формате, можете воспользоваться такими архиваторами, как WinRAR, 7-Zip, PeaZip или IZArc.

Распаковка IMG-прошивок

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

Если вы не знаете, как открыть IMG-прошивку Android на Huawei, понадобится выполнить ряд специфических действий и скачать дополнительный софт. Для работы с прошивками такого типа понадобятся утилиты EXT4 Unpacker и EXT2 Explore. После их скачивания можно приступить к процессу извлечения файлов, который проходит по такой схеме:

  1. Распакуйте IMG-архив прошивки в любую директорию на компьютере.
  2. Запустите программу EXT4 Unpacker и с ее помощью найдите файл system.img.
  3. Сохраните файл system.img с расширением .ext4 с помощью кнопки «Сохранить как».
  4. После распаковки запустите софт EXT2 Explore от имени администратора. Во вкладке «File» выберите пункт «Open Image», укажите место расположения ранее созданного system.ext4.
  5. В правой части окна программы EXT2 Explore нажмите на иконку жесткого диска правым кликом мышки, в выпадающем меню выберите опцию «Save». Будет предложена директория для извлечения, укажите любую удобную папку и дождитесь окончания процесса.

Так осуществляется распаковка IMG-прошивки Android с целью извлечения из нее полезных данных и инсталляторов.

Преобразование KDZ-архива в DZ-архив для последующего создания BIN-папки и привычных архивов

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

Если вы думаете, как самому поменять файлы в прошивке Android формата .kdz, заблаговременно скачайте программы Windows LG Firmware Extract и EXT2 Explore. Процесс распаковки выполняется за схемой:

  1. Запустите Windows LG Firmware Extract, укажите рабочую папку «Working Folder». Ею может оказаться любая директория на ПК, куда вы хотите произвести распаковку.
  2. Нажмите на кнопку «Open», в поле «KDZ / TOT File» выберите файл своей прошивки. Вы увидите все файлы, которые хранятся в KDZ-архиве.
  3. Нажмите на кнопку «Extract KDZ» и дождитесь, пока программа отформатирует архив в DZ-формат. Об успешном окончании процесса будет свидетельствовать надпись «Progress Done».
  4. Перейдите к пункту «DZ File», выберите в нем только что созданную прошивку в DZ-формате. Откроется таблица имеющихся в архиве файлов. Нужно выбрать все файлы с расширением .bin и нажать на кнопку «Extract DZ». После завершения процесса появится надпись «Progress extract DZFile Done».
  5. Для преобразования файлов .bin в формат .img необходимо нажать на кнопку «Merge System bin». В директории, которую вы изначально указали в качестве рабочей папки, будет создан каталог «Merge output», в котором найдете system.img.

Для открытия этого файла вами заранее была скачана программа EXT2 Explore. С ее помощью вы сможете убрать из прошивки все необходимое и достать полезные инсталляторы для кастомной прошивки.

Распаковка QSB и INB-прошивок

Распаковка QSB и INB-прошивок

Прошивки с расширением .qsb и .inb являются прерогативой устройств компании Lenovo. Их распаковка не занимает большого количества времени и проводится посредством всего одной утилиты LenovoWinTools.

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

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

Как прошить устройства на базе Android

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

izvlechapk

Очень часто после скачивания приложения из Google Play или другого неизвестного источника появляется необходимость сохранить на своем устройстве установочный файл с приложением (.apk). Например, для того чтобы передать интересное приложение по Bluetooth. Однако не всегда есть время искать установочный файл на различных файлообменниках и многочисленных ресурсах, посвященных Android-тематике. Поэтому, для того, чтобы извлечь установочный файл с приложением (.apk) из устройства, существует несколько нехитрых способов. В данном примере я расскажу вам о трех наиболее популярных.

Способ №1

чтобы извлечь установочный файл с приложением (.apk) из устройства, необходимо:
1) Для начала скачать файловый менеджер - Astro File Manager и запустить скачанное приложение. В том случае, если Astro File Manager у вас уже установлен, необходимо найти его на вашем android устройстве и просто запустить (полный путь) Меню - Astro File Manager.

2) После запуска Astro File Manager мы попадаем в окно, в котором видим присутствующие на устройстве накопители памяти и список серии облачных сервисов (в них всегда можно зарегистрироваться, либо авторизоваться, расширив тем самым внутреннее пространство устройства на несколько лишних Gb).

3) Затем делаем свайп влево, открыв основное меню приложения.

4) После этого необходимо щелкнуть на пункте Менеджер приложений, попав в новое окно, показывающее все установленные на вашем смартфоне или планшете приложения.

5) Для того, чтобы извлечь установочный файл с приложением (.apk) из устройства, необходимо тапнуть на приложение которое нужно извлечь, например Google Chrome, тапаем на иконку Google Chrome и перед нами появятся два предложения: сделать резервную копию или деинсталлировать.

6) Тапаем на левый пункт Рез. копия и ждем окончания процесса. После того, как копирование будет завершено, установочные файлы приложений можно будет найти в памяти телефона.

7) Полный путь до установочных файлов приложений выглядит таким образом: /sdcard/bakups.

Способ №2

Устанавливаем приложение Root unistaller . Открываем приложение, Root Unistaller отсканирует сколько у вас приложений и сделает бекап всех приложений по пути:
С телефона mnt\sdcard\ RootUnistaller\autobackups.
C компьютера (чтобы телефон распознавался как флешка) sdcard\ RootUnistaller\autobackups.

Способ №3

Получаем Root . Устанавливаем приложение Root Browser . Открываем приложение и переходим по по пути \data\app\ и выбираем приложение. Если Вас интересуют системные приложения то переходим по этому пути \system\app\ и выбираем приложение. Выбранные приложения сохраняем на SDCARD (карта памяти) и делаем с ним все что хотим.

Изображение

Все изменения я буду проводить на компьютере под Windows XP, процесс изменения на Линукс и Мак ОС мало чем отличается, если найдется желающий описать его - буду только рад.

1. Распаковываем apk

Для запаковки-распаковки используем программу APKTool 1.3.2 (Программа постоянно доделывается, поэтому рекомендую заглянуть на сайт разработчиков

Далее нам потребуется команндная строка. Самое простое - это нажать Пуск - Выполнить - и в появившейся строке ввести команду cmd
Можно сразу работать с командами или предварительно запустить оболочку - FAR, Norton commander и т.п. Второй вариант удобнее, т.к. некоторые команды можно будет не набирать с клавиатуры, а просто перемещаться по панелям оболочки.Командына обязательновводитьс кливиатуры.Можно скопировать их прямо из мануала, щелкнуть по окну командной строки правой кнопкой мыши и выбрать "изменить- вставить".

Я поместил программу с именем taskkiller.apk, которую хочу распаковать в корень диска d
Команда для распаковки такая:

Если декомпиляция произошла успешно, то вы увидите окно вида

и в моем случае на диске D появилась папка taskkiller в которой находятся файлы программы.

2. Изменяем файлы программы.

Структура папок и файлов внутри декомпилированного пакета следующая:

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

В эту папку помещаются файлы, в которых в формате XML описывается внешний вид окон программы, размещение элементов и т.п.

В этом файле перечисляются общие свойства проекта (версия, package и прочее), а также все формы (Activities), входящие в проект.

в папке /assets размещены файлы about.txt и help.txt которые нам также предстоит перевести.

В приложении есть кнопка "Auto Translate. " но она почему-то вызывает ошибку.
После окончания перевода файла жмем на дискетку для сохранения. Если забыли нажать, то все данные перевода при закрытии потеряются.
После сохранения заходим в каталог с переводом с помощью нажатия иконки "open folder" и удаляем все лишние файлы. Должны остаться только те файлы, которые Вы сохраняли для перевода. Если этого не сделать, то пакет скорее всего неверно соберется.

4. Собираем пакет

5. Подписываем пакет с помощью ява-машины

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

keytool -genkey -alias sergggg -keyalg RSA

после -alias вы указываете имя сертификата. В моем случае выбран sergggg
Можно также указать (не обязательно) -validity (количество дней действия сертификата (по умолчанию 180) -keystore (имя хранилища сертификатов)
После этого поочередно будут заданы простые анкетные вопросы, при ответе на которые будет создан ключ

После этого в пакете должна появиться папка META-INF. Пакет подписан и его можно устанавливать.

Читайте также: