motofan logo
> 

Работа с АРК-пакетами - распаковка, изменения, запаковка, подписывание, [faq для Мотофана]

SergGG
сообщение 2.12.2010, 14:42 Закрепленное сообщение!


Мингофан
*******

Группа: Почётные мотофаны
Сообщений: 1 540
Регистрация: 30.5.2006
Из: Дніпро
Пользователь №: 85 418

Рейтинг: 1612



Кратко о мануале - мы попытаемся на примере программы Advanced Task Killer Free for Android 1.7.9
http://download.cnet.com/Advanced-Task-Kil...4-75011529.html
с простейшими действиями по изменению содержимого пакета - руссификиции, замену картинок и файлов.

Изображение

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

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

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

Для этого скачиваем архив
Прикрепленный файл apktool1.3.2.rar   ( 2.41 мегабайт ) Кол-во скачиваний: 5271
извлекаем из него 3 файла и кладем их в папку с установленной WINDOWS
В моем случае это C:\WINDOWS

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

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

Apktool d D:\taskkiller.apk D:\taskkiller

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

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


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

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

/res/drawable

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

/res/layout

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

/res/values

В этой папке хранятся общие константы для всего приложения. Здесь же размещены 2 файла strings.xml и arrays.xml которые нам предстоит перевести. В принципе можно напрямую править файлы, но удобнее воспользоваться специальной программой (см. п3 мануала).

AndroidManifest.xml

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

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

3. Перевод.
Качаем архив
Прикрепленный файл ailocalizer_bin_1.5.zip   ( 177.29 килобайт ) Кол-во скачиваний: 1536
и распаковываем его в любой папке. Запускаем файл aiLocalization.exe В итоге должно появиться такое окно: Прикрепленное изображение
Нажимаем кнопку Browse... выбираем каталог D:\taskkiller Дальше жмем на + и выбираем язык локализации, в нашем случае RU. Далее справа выбираем поочередно файлы xml и переводим текст, меняя значения в столбце Local value

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

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

Apktool b D:\taskkiller

В результате в D:\taskkiller, появились еще 2 папки: build и dist. В папке dist находится собранный *.apk файл, который нам предстоит подписывать.


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

Качаем и устанавливаем ява-машинуhttp://cds.sun.com/is-bin/INTERSHOP.enfini...indows-i586.exe

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

С помощью команды cd заходим в каталог, куда установлена виртуальная машина (C:\Program Files\Java\jdk1.6.0_21), а там в папку "bin" и набрать команду:

keytool -genkey -alias sergggg -keyalg RSA

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

Подписываем пакет командой jarsigner D:\taskkiller\dist\taskkiller.apk sergggg

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

А вот и переведенная с помощью денного мануала программа
Прикрепленный файл taskkiller.apk   ( 82.57 килобайт ) Кол-во скачиваний: 1494


Сообщение отредактировал SergGG - 7.10.2011, 10:24
Прикрепленный файл taskkiller.apk   ( 82.57 килобайт ) Кол-во скачиваний: 1494
Прикрепленный файл apktool1.3.2.rar   ( 2.41 мегабайт ) Кол-во скачиваний: 5271
Прикрепленный файл ailocalizer_bin_1.5.zip   ( 177.29 килобайт ) Кол-во скачиваний: 1536
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
5 страниц V  1 2 3 > »   
Ответ в темуСоздание новой темы
Ответов(1 - 9)
Sanyok_
сообщение 2.12.2010, 18:57


MotoTeam
********

Группа: Почётные мотофаны
Сообщений: 2 080
Регистрация: 7.8.2005
Из: Кременчуг Украина
Пользователь №: 48 061
Модель телефона: Xiaomi 12Т Pro
Прошивка: пока 13 ведро :)
Победитель конкурса 2008

Рейтинг: 1171



Цитата(SergGG @ Сегодня, 16:42)

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

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

Apktool d D:\taskkiller.apk D:\taskkiller

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

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

*

зачем столько лишних телодвижений с распаковкой APK, это просто переименованный zip архив, распаковывай аpk любым архиватором делов то. Зачем столько костылей в виде нортона или тотал командера.
Прикрепленное изображение
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
BALU
сообщение 2.12.2010, 19:04


MotoSkull
*******

Группа: Пользователи
Сообщений: 1 841
Регистрация: 24.2.2005
Из: г.Пенза
Пользователь №: 37 593
Модель телефона: 90-60-90
Прошивка:
Финалист Конкурса 2010


Настроение:
В Этой Жизни Меня Подводят Доброта и Порядочность



Рейтинг: 1133




а вот и не простой зип, а подписанный
приложение после перепаковки простым архиватором не устанавливается!

Сообщение отредактировал Osta - 2.12.2010, 20:32
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Sanyok_
сообщение 2.12.2010, 20:39


MotoTeam
********

Группа: Почётные мотофаны
Сообщений: 2 080
Регистрация: 7.8.2005
Из: Кременчуг Украина
Пользователь №: 48 061
Модель телефона: Xiaomi 12Т Pro
Прошивка: пока 13 ведро :)
Победитель конкурса 2008

Рейтинг: 1171



BALU, тем не менее для распаковки всё равно можно применить любой архиватор, а не консольный всё равно потом при запаковке apk нужно будет подписывать.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
rus1988
сообщение 3.12.2010, 1:34


Новичок
*

Группа: Пользователи
Сообщений: 22
Регистрация: 12.11.2010
Пользователь №: 221 283
Модель телефона: Backflip

Рейтинг: 0



настройки телефона так перевести можно? я пытался, распоковал settings из папки systems/app нашел файл который можно русифицировать, перевел там немного, но назад он не собрался. ошибки писал. говорят потому что apk tools неработает с файлами для андроид 2.1(
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Vadim F.
сообщение 3.12.2010, 6:41


Интересующийся
**

Группа: Пользователи
Сообщений: 81
Регистрация: 9.10.2008
Из: Yakutsk
Пользователь №: 183 258
Модель телефона: Photon 4G
Прошивка: 45.2.7

Рейтинг: 11



С распаковкой и изменениями всё понятно,
с запаковкой вроде тоже разобрался, а что насчёт подписывания?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
SergGG
сообщение 3.12.2010, 7:19


Мингофан
*******

Группа: Почётные мотофаны
Сообщений: 1 540
Регистрация: 30.5.2006
Из: Дніпро
Пользователь №: 85 418

Рейтинг: 1612



Цитата(Vadim F. @ 3.12.2010, 8:41) *
С распаковкой и изменениями всё понятно,
с запаковкой вроде тоже разобрался, а что насчёт подписывания?
Только что дописал. Это с помощью ява-машины делается.

Сообщение отредактировал SergGG - 3.12.2010, 10:52
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
SergGG
сообщение 3.12.2010, 10:52


Мингофан
*******

Группа: Почётные мотофаны
Сообщений: 1 540
Регистрация: 30.5.2006
Из: Дніпро
Пользователь №: 85 418

Рейтинг: 1612



Цитата(Sanyok_ @ 2.12.2010, 22:39) *
BALU, тем не менее для распаковки всё равно можно применить любой архиватор, а не консольный всё равно потом при запаковке apk нужно будет подписывать.
Распаковать - да, но не подписать. Все равно сейчас командную строку придется использовать. В идеале надо бы сделать прогу под виндой, которая бы автоматизировала весь процесс сборки-разборки и подписывания.

Сообщение отредактировал SergGG - 6.12.2010, 19:59
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Vadim F.
сообщение 6.12.2010, 2:22


Интересующийся
**

Группа: Пользователи
Сообщений: 81
Регистрация: 9.10.2008
Из: Yakutsk
Пользователь №: 183 258
Модель телефона: Photon 4G
Прошивка: 45.2.7

Рейтинг: 11



Цитата
Подписываем пакет командой C:\Program
D:\taskkiller\dist\taskkiller.apk sergggg


Так всё-таки, как подписывать пакет?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
SergGG
сообщение 6.12.2010, 7:31


Мингофан
*******

Группа: Почётные мотофаны
Сообщений: 1 540
Регистрация: 30.5.2006
Из: Дніпро
Пользователь №: 85 418

Рейтинг: 1612



Цитата(Vadim F. @ 6.12.2010, 4:17) *
Цитата
Подписываем пакет командой C:\Program
D:\taskkiller\dist\taskkiller.apk sergggg


Так всё-таки, как подписывать пакет?
сорри, копировал команды из окна командной строки и видимо недокопировал.На скрине все виджно, сейчас и в тексте исправлю.

Сообщение отредактировал SergGG - 6.12.2010, 19:59
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Работа с АРК-пакетами - распаковка, изменения, запаковка, подписывание, [faq для Мотофана] · Motorola на Android OS · Forum
 

5 страниц V  1 2 3 > » 
Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 25.4.2024, 7:48

Форум живёт: