Framework res apk редактирование

Обновлено: 07.07.2024

TelephonyManger.getDeviceId () Возвращает уникальный идентификатор устройства, например IMEI для GSM и MEID или ESN для телефонов CDMA.

Но я рекомендую использовать:

Settings.Secure.ANDROID_ID, который возвращает идентификатор Android в качестве уникальной 64-разрядной шестнадцатеричной строки.

Иногда TelephonyManger.getDeviceId () возвращает null, поэтому для обеспечения уникального идентификатора вы будете используйте этот метод:

Процедура для декодирования .apk файлов, шаг за шагом:

Шаг 1:

  1. Создайте новую папку и скопируйте файл .apk, который вы хотите декодировать.
  2. Теперь переименуйте расширение этого .apk-файла в .zip (например, переименуйте с filename.apk в filename.zip) и сохраните его. Теперь вы можете получить доступ к файлам classes.dex и т. Д. На этом этапе вы можете видеть чертежи, но не файлы xml и java, поэтому продолжайте.

Шаг 2:

  1. Теперь извлеките этот .zip-файл в ту же папку (или NEW FOLDER).
  2. Загрузите dex2jar и извлеките его в ту же папку (или NEW FOLDER).
  3. Переместите файл classes.dex в папку dex2jar.
  4. Теперь откройте командную строку и смените каталог на эту папку (или NEW FOLDER). Затем напишите d2j-dex2jar classes.dex (для терминала mac или ubuntu write ./d2j-dex2jar.sh classes.dex ) и нажмите enter. Теперь у вас есть файл classes.dex.dex2jar в той же папке.
  5. Загрузите java decompiler , дважды щелкните по jd-gui, щелкните по открытому файлу и откройте classes.dex .dex2jar из этой папки: теперь вы получаете файлы классов.
  6. Сохраните все эти файлы классов (в jd-gui, щелкните File -> Save All Sources) по имени src. На этом этапе вы получаете источник java, но файлы .xml по-прежнему не читаются, поэтому продолжайте.

Шаг 3:

Теперь откройте еще одну новую папку

  1. Вставьте файл .apk, который вы хотите декодировать
  2. Загрузите последнюю версию apktool И окно установки apktool (обе могут быть загружены из одной и той же ссылки ) и поместите их в ту же папку
  3. Откройте командное окно
  4. Теперь запустите команду, например apktool if framework-res.apk и следующую
  5. apktool d myApp.apk (где myApp.apk обозначает имя файла, которое вы хотите декодировать)

теперь вы получаете папку с файлами в этой папке и можете легко прочитать XML-файлы apk.

Шаг 4:

Это не какой-либо шаг, просто скопируйте содержимое обеих папок (в данном случае и новую папку) в один файл

и наслаждайтесь источником код .

ответ дан 19 revs, 17 users 47% 23 August 2018 в 15:46

Есть несколько способов сделать это:

  1. Использовать функцию «Профиль или отладка APK» в Android Studio 3.0. Это позволяет вам открывать и исследовать APK в Android Studio. Классы декомпилируются в smali. Ресурсы не извлекаются, и такие вещи, как «Перейти к определению», «Найти все ссылки» и отладки, не работают без исходного кода (android studio 3.0 canary 9). Некоторые дополнительные функции smali могут работать с smalidea . [/g3] [/g4] [/g5]
  2. Используйте jadx . Jadx декомпилирует код в заданном APK для исходных файлов java. [/g6]
  3. Используйте apktool . Apktool - это инструмент командной строки, который извлекает ресурсы и декомпилирует код в smali для данного apk. Вы также можете перекомпилировать, используя apktool. Вот пример этого в действии:

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

Тем не менее, это беспроблемный способ «открыть» приложение для Android.

Apktool для обратной инженерии сторонних, закрытых, бинарных приложений для Android.

Он может декодировать ресурсы до почти первоначальной формы и восстанавливать их после внесения некоторых изменений.

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

Это альтернативное описание - на случай, если кто-то застрял с описанием выше. Выполните следующие шаги:

Примечание: не разрешается декомпилировать пакеты сторонних поставщиков; это руководство предназначено для восстановления личного исходного кода только из файла APK; наконец, полученный код, скорее всего, будет запутан

В Play Store есть новое приложение, с помощью которого можно декомпилировать apk (системные приложения) и просмотреть исходный код прямо на вашем смартфоне. Он сохраняет файлы на SD-карте, чтобы вы могли просматривать их на своем компьютере. Это не требует root или что-то еще.

Просто установите и получайте удовольствие. Я думаю, что это самый простой способ декомпилировать приложение.

Я лично рекомендую Show Java Android App получить исходный код. Вы можете загрузить его из магазина воспроизведения или из здесь

Я покажу вам другой способ декомпилировать файлы .apk.

Вы можете выполнить первые 2 шага от «prankul garg». Итак, у вас есть еще одна возможность:

Загрузите «JD-GUI», который легко найти. Откройте файл .jar в «jd-gui.exe». (Файл> Открыть файл> 'нашел ваш .jar-файл'). После этой процедуры вы можете сохранить все ресурсы в файле .zip.

1st - вам нужно переименовать файл .apk в .zip

2nd - вам нужно декодировать файл .dex (если хотите, декодировать файл .apk в dex2jar, это возможно)

3rd - вам нужно декодировать файл .jar с JD-GUI

Вы можете попробовать DexPatcher . Он даже интегрируется с Android Studio. Он использует внутренние функции Apktool и Dex2Jar . Вы также можете использовать эти инструменты самостоятельно. Apktool декомпилирует apk и извлекает файлы .dex, которые могут быть затем преобразованы в jar с использованием Dex2Jar. Jar можно декомпилировать с помощью JD-GUI . Вы можете увидеть Java-код с помощью этого инструмента. Хотя сходство декомпилированного кода с реальным кодом не может быть гарантировано. На рынке доступны некоторые усовершенствованные инструменты [f5] obfuscation , которые испортили код, чтобы затруднить декомпиляцию / понимание. например. Proguard

ответ дан Lakshmikant Deshpande 23 August 2018 в 15:46

Сначала я попробовал сайт, упомянутый в принятом ответе, но это не сработало я.

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

Я бы рекомендовал вам иметь репозиторий кода, даже если ваш единственный кодер. Я использовал Project Locker для своих собственных проектов. Это дает вам бесплатные svn и git repos.

apktool будет работать. Вам даже не нужно знать хранилище ключей, чтобы извлечь исходный код (что немного страшно). Основной недостаток заключается в том, что источник представлен в формате Smali вместо Java. Другие файлы, такие как значок и main.xml, проходят отлично, хотя, возможно, стоит потратить время, чтобы хотя бы восстановить их. В конечном итоге вам, скорее всего, придется перезаписать Java-код с нуля.

Здесь вы можете найти apktool здесь . Просто скачайте apktool и соответствующий помощник (для Windows, Linux или Mac OS). Я рекомендую использовать такой инструмент, как 7-zip, чтобы распаковать их.

Хотя вы можете декомпилировать ваш файл APK , вы, вероятно, попадете в одну большую проблему:

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

К сожалению, такие вещи убили много проектов. В будущем я настоятельно рекомендую изучить систему управления версиями, такую ​​как CVS, SVN и git и т. Д.

и как ее создать.

В этих двух статьях описывается, как объединить использование apktool и dex2jar , чтобы взять файл APK и создать проект Eclipse, который может его создавать и запускать.


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

Информации о данной проблеме немного, поэтому начал копать сам.

Набор инструментов


  • APKTOOLS для распаковки *.apk
  • Прочитать данный пост
  • Получить объект исследования. Если вы пользуетесь Lewa то надо из архива с прошивкой или прямо с телефона нужно вытянуть /system/app/PIM.apk и все apk из папки /system/framework/ обычно это framework-res.apk, lewa-res.apk и
    mediatek-res.apk. Если вы хотите просто потренироваться то могу дать свои

Приступим

Итак, первое что нам надо это разобрать наше приложение, для этого все apk надо скопировать в папку с apktools. Все apk которые лежали в /system/framework/ надо выделить, подцепить мышью и перенести на apktool-if.cmd тем самым открыв их с помощью этого bat'ника. PIM.apk таким же образом надо открыть с помощью apktool-d.cmd. В результате получаем папку с распакованным приложением.

Изучаем код

Там меня заинтересовала строчка
. Что это за индексер такой?? Смотрим



Тут ключевые стороки
<com.lewa.PIM.widget.AlphabetFastIndexer android:layout_gravity=«right» android:id="@id/fast_indexer" android:layout_width=«20.0dip» android:layout_height=«fill_parent» />
Что это за элемент который прижимается к правой части экрана (android:layout_gravity=«right»), не то ли что мы ищем?
com.lewa.PIM.widget.AlphabetFastIndexer это ссылка на код PIM\smali\com\lewa\PIM\widget\AlphabetFastIndexer.smali, но изучать его неудобно, и тут на сцену выходит связка dex2jar-0.0.9.7 jd-gui-0.3.3.windows которые мы скачали из поста на форуме и так же научились ими пользоваться. Превращаем classes.dex в classes_dex2jar.jar и открываем через jd-gui.exe

Тут и так все понятно, меняем буквы на русские, и так как русских букв больше придется добавить несколько строк типа

const/16 v1, 0x1b это порядковый номер буквы он тоже будет с каждой новой буквой расти. Так же в начале вы могли заметить стоку

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

В итоге у меня получился следующий код:

"\u042f" — это «юникоды» наших букв, так надежней)

После этого можно попробовать собрать риложение перетянув папку PIM на apktool-b.cmd, через некоторое время появится PIM\dist\PIM.apk

Теперь можно заменить им PIM.apk своего телефона, как это сделать выходит за рамки данной статьи. Могу лишь скзать что можно прошится моим патчем, предварительно заменив в нем PIM.apk на свой.

PROFIT?

Не совсем… Да, буквы русские но поиск то не работает!
Изучаем дальше декомпилированный AlphabetFastIndexer.smali
тут больше ничего интересного кроме

Хотя по идее он к нашей проблеме не относится я все же решил посмотреть что это такое. public static abstract говорит о том, что этот интерфейс реализован где то в другом файле. Ищем поиском и находим пару файлов где встречается OnTouchingLetterChangedListener:
PIM\smali\com\lewa\PIM\contacts\list\ContactEntryListFragment.smali
PIM\smali\com\lewa\PIM\mms\choiceContacts\MmsChoicePhoneNumbersContacts.smali

Они достаточно длинные поэтому приведу только то что нас интересует

Там нужно найти участок

0x41 и 0x5a это буквы 'A' и 'Z' их надо поменять на русские:

После чего найти

0x61 — 'a'
0x7a — 'z'
Меняем

В файле MmsChoicePhoneNumbersContacts.smali примерно такая же история


Собираем это дело обратно и запихиваем а телефон. Вот теперь работает!

Спасибо всем за внимание!

JAVA JDK – скачать отсюда собственно необходим для всех действий проводимых с приложениями и прошивками android .

Установка: после установки необходимо добавить ее в переменную Windows, для этого:

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

APK Tool – отсюда программа необходима для распаковки apk файлов и манипуляций с ними.

Установка: скачанный файл переименовать в apktool.jar

В блокноте создать файл apktool.bat с текстом:

set PATH=%CD%;%PATH_BASE%;

Переместить оба файла в папку C :\ apktool

Декомпиляция: Чтобы декомпилировать приложение, скопируйте файл APK приложения в папку где

находится apktool, далее необходимо выполнить вот что, в командной строке ввести команду:

apktool d название.apk

В папке с Apktool появится папка разобранного приложения.

Компиляция: Вводим в командной строке: apktool b имя_проекта

После чего в папке с разобранным приложением появятся две новые папки: build и dist

В папке dist будет находится готовое приложение.

После компиляции приложение нужно подписать!

Для того чтобы модифицировать системные приложения необходимо прежде всего необходимо скормить программе APKTOOL системный файл framework-res.apk который находиться в системном разделе Android:

Для того чтобы скормить Apktool данный файл необходимо скопировать данный файл с телефона в папку C:\ apktool , затем ввести команду:

apktool if С :\ apktool \framework -res.apk

Также для того чтобы можно было модифицировать системные файлы прошивка должна быть вначале Deodex-ирована.

SmartApkTool – скачать отсюда аналог APK Tool , только с интерфейсом (нет необходимости манипуляций в командной строке). Для работы требуются: Java JDK и Apktool .

A ndroid M ultitool – скачать отсюда еще один аналог APK Tool с интерфейсом (нет необходимости манипуляций в командной строке). Для работы требуются: Java JDK , Microsoft Powerpacks скачать отсюда, NET framework .

Sign Android – скачать отсюда необходим для подписи измененных приложений android .

Для подписи приложения: распаковать архив:

Скопировать готовое приложение в папку с распакованным Sign Android

Потянуть приложение на файл Sign_APK.bat после чего приложение будет подписано!

Готовое подписанное приложение будет носить название apk_signed.apk

Программы для Deodex – идирования прошивок android

Deodex приложений в прошивке необходим тем, кто хочет устанавливать различные моды — которые могут кардинально изменить внешний вид Android (изменить иконки, изменить строку уведомлений, добавить или убрать меню)

Прежде всего необходимо: скачать и установить Java JDK на компьютер

Установите менеджер файлов Root на телефон и с помощью него перейти в раздел /system и скопировать следующие папки во внутреннюю память или карту памяти:

JoelDroid Batch Deodexer – скачать отсюда необходима для проведения Deodex – идирования прошивок android . Для работы необходимо: NET Framework 4.5 (скачать отсюда).

Подходит для Android : 5. x . x

Использование: Распаковать архив в котором находиться папка с программой

Папки Android (app, priv-app, framework) скопировать в какую либо одну на компьютере (например MyRom)

Запустить программу и указать расположение, нажав на «Browse», папки где находится (app, priv-app, framework)

Нажать «Start Process»

Deodexer for Android Runtime – скачать отсюда необходима для проведения Deodex – идирования прошивок android .

Подходит для Android : 5. x . x — 6. x . x

Использование: Распаковать архив в котором находиться папка с программой

Нажать кнопку Execute

Подходит для Android : 2.3. x — 6. x . x

Использование: Распаковать архив в котором находиться папка с программой

Указать ZIP архив

Выбрать версию Android (Rom API)

Внизу справа нажать на «D — (Deodex)»

xUltimate – скачать отсюда необходима для проведения Deodex – идирования прошивок android .

Программы для перевода приложений:

Translator APK – скачать здесь делает все сама, в том числе декомпиляцию и компиляцию приложения.

Прочие вспомогательные программы:

Smali – скачать отсюда дизассемблер dalvik кода.

smali нужен для дизассемблирования

backsmali ассемблирования кода

Tickle My Android – скачать отсюда Многоцелевая кухня, для редактирования системных ресурсов:

Графические изменения системы или apk.

Изменять значки батареи, WiFi , сигнала, блокировки, кольца блокировки.

Изменять клеванты уведомления, смайлики, функциональные клавиши.

Декомпилировать и перекомпилировать несколько файлов в пакетном режиме,

Распаковка изображений из файлов APK ,

zipalign (сжатие) APK -файлов,

Подпись перекомпилированых файлов APK оригинальной подписью,

Deodex (деодексированиея) APK и JAR -файлов,

Odex (одексирование) APK и JAR -файлов,

Изменять загрузочные анимации и их размер, шрифты,

Создавать update . zip для отката изменений,

Создавать update . zip вашего проекта,

Делать скриншоты с вашего устройства,

Может генерировать LogCat файлы.

Easy Debugging – скачать отсюда Приложение для определения запущенного активити приложения

Инструкция: Запустить приложение.

Нажать кнопку Пуск.

Для того чтобы редактировать APK приложения. Прежде всего их нужно декомпилировать, а после скомпилировать! Как это сделать и чем можно узнать в этом уроке.

В прошлом уроке вы узнали из чего состоят основные внутренности приложения, а также что данные что APK приложения (в дальнейшем просто APK) можно открыть архиватором, но что либо изменить у вас не получиться! Нужна Декомпиляция APK приложения Android!

Содержание:

  1. Необходимые инструменты
  2. Настройка
  3. Декомпиляция приложения с помощью Apktool через командную строку
  4. Компиляция приложения с помощью Apktool через командную строку
  5. Что необходимо чтобы работать с системными APK
  6. Графические надстройки утилиты ApkTool

Декомпиляция и Компиляция APK приложения Android
Необходимые компоненты

    — среда разработки; — программа декомпилятор; — bat файл; — подпись приложения APK.

Настройка Java

После установки Java JDK , необходимо, добавить ее в переменную Windows. Если кто не понял официальное куроводство то,

декомпиляция apk

Скопируйте путь Java JDK:

Перейдите в меню Дополнительные настройки:

декомпиляция apk

(Мой) Компьютер ->Свойства системы->Дополнительные параметры системы->Дополнительно->Системные переменные->Правка

Java JDK настроена!

Настройка ApkTool

  1. Создать папку на диске C:\ и в нее переместить файлы apktool_x_x.jar и apktool.bat
  2. Файл apktool_x_x.jar переименовать в apktool.jar

Если появилось наподобие такой вывод информации, то все сделано правильно.

Декомпиляция APK

Чтобы декомпилировать приложение, скопируйте файл APK приложения в папку где находится apktool, далее необходимо выполнить вот что, в командной строке ввести команду:

apktool d название.apk

apktool d browser.apk

После того как вы отредактируете или русифицируете APK, его надо компилировать обратно.

Компиляция APK

Вводим в командной строке:

После чего перейдите в папку проекта ( в данном случае папка browser) и вы увидете две новые папки:

Если папки dist не обнаружили, значит apktool не смог собрать редактируемый проект, причиной тому может быть то, что имения которые вы вносили(«поломали») не позволяют собрать приложение apk.

После компиляции приложения apk его необходимо подписать.

Подпись APK

  1. Для этого Вам надо разархивировать архив Sign Android;
  2. Скопировать готовое приложение в папку с распакованным Sign Android;
  3. Потянуть приложение на файл Sign_APK.bat после чего приложение будет подписано!

Готовое подписанное приложение будет носить название apk_signed.apk

Работа с системными APK

Для того чтобы модифицировать системные приложения необходимо прежде всего необходимо скормить программе APKTOOL системный файл framework -res.apk который находиться в системном разделе Android:

/system/framework/framework -res.apk

Для того чтобы скормить Apktool данный файл необходимо, ввести команду:

apktool if framework -res.apk

Учитывайте что, команду нужно вводить относительно пути расположения, то есть если файл framework -res.apk находиться в папке C:\primer, то команда будет выглядеть следующим обзором:

apktool if С:\primer\framework -res.apk

Также для того чтобы можно было модифицировать системные файлы прошивка должна быть вначале Deodex-ирована.

Теперь как это можно все упросить! (не использовать командную строку)

Скачайте приложение SmartApkTool, данное программа имеет графический интерфейс и очень легкая в использование. Автор данной программы мой хороший друг Никита Коровкин (на данный момент работает в Surfingbird)! за что ему огромное Спасибо!

Как пользоваться SmartApkTool

Прежде всего вам надо установить и настроить Java JDK и Apktool как указано выше.

Откройте программу SmartApkTool

Если Вам необходимо Декомпилировать приложение в SmartApkTool, то выберите данный пункт и необходимое приложение

декомпиляция apk

Если компилировать, то

декомпиляция apk

и выбрать файл в проекте apktool.yml

NoName1.1

Для подписи приложения APK, нажать обзор, выбрать приложение и подписать

NoName

Все так легко и просто!

Альтернативный вариант

Для тех кому не понравился SmartApkTool, есть альтернатива Android MultiTool

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