Редактируем системные apk и jar на примере framework-res.apk и SystemUI.apk и подписываем apk/jar

Рейтинг:   / 22
ПлохоОтлично 

В данной статье буду описывать метод разбирания (декомпиляция) и собрания (компиляция) apk, jar файлов на примере framework-res.apk и SystemUI.apk. Как разобрать (декомпилировать, декомпиляция), собрать (компилировать, компиляция) системные файлы android SystemUI.apk, framework-res.apk и android.policy.jar с помощью Apktool и как подписать системные файлы android SystemUI.apk, framework-res.apk и android.policy.jar? Сперва нам нужно установить JDK.

Буду добавлять разные способы по мере возможности :)

Скачать и распаковать ApkTool в корень диска C: (Android 1.6 - 2.3.7, Android 4 ICS, Android 4.2 JellyBean).

ApkTools200b7

ApkTools200b7m2 (После сборки появляется папка sys с готовым к загрузке в телефон системным apk или jar (в apk из папки dist копируется содержимое папки original, а именно - манифест и подпись) Не рекомендуется использовать при наличии ошибок при разборке)

ApkTools200b9

ApkTools200b9m (После сборки появляется папка sys с готовым к загрузке в телефон системным apk или jar (в apk из папки dist копируется содержимое папки original, а именно - манифест и подпись) Не рекомендуется использовать при наличии ошибок при разборке)

Нужно установить фреймворк для своей прошивки, чтобы можно было разбирать все системные apk. Перетаскиваем файл framework-res.apk на файл apktool-if.cmd. Для владельцев HTC и прошивки с SENSE то-же самое нужно проделать с файлом com.htc.resources.apk, для SAMSUNG - twframework-res.apk, Motorola - blur-res.apk и moto-res.apk, LG - lge-res.apk, Sony Ericsson - SemcGenericUxpRes.apk. Проще говоря - если в папке system/framework/ кроме framework-res.apk есть ещё файлы apk - то их тоже нужно установить.

01 

02
Теперь можно разбирать любые системные apk. Перетаскиваем файл framework-res.apk на файл apktool-d.cmd.

03 

04
Получаем папку framework-res. В этой папке наш разобраный framework-res.apk.

05
Изменяем что нужно и перетаскиваем папку framework-res на файл apktool-b.cmd.

06 

07
Открываем с помощью WinRAR-а исходный файл framework-res.apk и открываем папку framework-res/build/apk
Перемещаясь по папкам, переносим изменённые файлы на окно WinRARа, выбираем в диалоге степень сжатия Обычный (classes.dex, AndroidManifest.xml) или Без сжатия (resources.arsc) в зависимости от того, как файл находится в архиве.
Если редактировали xml в папках values, добавляли или удаляли изображения - resources.arsc менять обязательно, т.к. в нём находятся все папки values и файл public.xml, в котором присваиваются ID всем ресурсам. Другими словами, в собранном apk все папки начинающиеся на values находятся в файле resources.arsc, а папка smali - в файле classes.dex

08

Если нужно подписать переделанный apk/jar, то к примеру берем переделанный framework-res.apk и перекидываем на Sign.cmd

09 

10

в той же папке создастся файл framework-res.signed.apk. Это и есть наш подписанный apk

11

P.S. Если при редактировании framework-res.apk выскакивает примерная такая ошибка:
\framework\framework-res\res\values\plurals.xml:79: error: Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute?
\framework\framework-res\res\values\plurals.xml:79: error: Found tag </item> where </plurals> is expected
то делаем так:
79 строка это <item quantity="other">%d of %d</item>
меняем на <item quantity="other">%1$d of %2$d</item> во всех папках. После этого всё собирается.
Скрипт для автоматической замены %d of %d на %1$d of %2$d во всех plurals.xml (repl.js положить рядом с папкой framework-res)

Видео инструкция редактирования системных файлов android (systemui.apk, framework-res.apk, android-policy.jar)

Качаем ApkManager и распаковываем в корень диска С:

Копируем нужное приложение в папку place-apk-here-for-modding и запускаем Script.bat, выбираем пункт 9 (Декомпилировать приложение)

20

Идём в папку projects и находим папку с нужным приложением и редактируем что нужно. После редактирования в том же Apk Manager'e выбираем пункт 11 (Компилировать приложение). Если редактировали системное, то вводим y, если не системное то n

21 

жмем на n

22

Теперь осталось подписать приложение. Выбираем 12 пункт (Подписать приложение). В папке place-apk-here-for-modding появится файл signed*.apk. Это и есть наш отредактированный и подписанный файл.

Видео инструкция редактирования системных файлов android (systemui.apk, framework-res.apk, android-policy.jar) 

Как подписать apk-файл и zip-файл?

При копировании материала с сайта, активная ссылка на оригинальный материал обязательна.

Комментарии  

 
-1 #11 Валерий 16.07.2014 06:56
Огромное спасибо.
Цитировать
 
 
-2 #12 Евгений 13.09.2014 02:07
DecAPK - http://www.softportal.com/software-36837-decapk.html Графическая простая программа
Цитировать
 
 
0 #13 Илья 13.10.2016 14:15
У кого boot-loop или белый экран при замене framework-res.a pk - НЕ ПОДПИСЫВАЙТЕ ПРИЛОЖЕНИЕ, НЕ ПЕРЕНОСИТЕ ЕГО НА sign.cmd!
вместо этого, откройте оригинальный файл framework-res.a pk и замените в новом папку META_INF и AndroidManifest .xml из старого. метод сжатия-обычный. после этого скидывайте его на телефон
Цитировать
 

Добавить комментарий


Защитный код
Обновить