Не будем оригинальничать и пойдём "своим" путём.
Это не моё ноу-хау, это творческая доработка того,
что ракопано в сети. Всю декомпиляцию/рекомпиляцию мы проведём на основе приложения
file_transfer_pro_1.0.1.apk
, которое для удобства переименуем в
ftp.apk
.
Для работы мы
выберем произвольное место и создадим рабочий каталог:
[Apk]
|_ftp.apk
|_apk_d.bat
|_apk_b.bat
|_apktool.bat
|_apktool.jar
Кроме будущей "жертвы", мы поместим туда следующие файлы:
apk_d.bat
- запуск этого файла приведёт к декомпиляции приложения. Процесс это немгновенный,
поэтому дождитесь предложения - нажать, для продолжения, любую клавишу:
@echo off
set apktool=disk:/Apk/apktool.bat
call %apktool% d ftp.apk
pause
После удачной декомпиляции в нашем каталоге появится под-каталог
ftp
:
[Apk]
|_[ftp]
| |_[assets]
| |_[original]
| |_[res]
| |_[smali]
| |_AndroidManifest.xml
| |_apktool.yml
|_ftp.apk
....
Из AndroidManifest-та мы удалим:
uses-permission android:name="android.permission.WAKE_LOCK"
- это разрешение на работу при выключеном экране смартфона (режим сна).
Затем пройдём по пути
res-->values-->strings.xml
и руссифицируем текст в последнем файле. Здесь надо быть
особенно внимательным: если текст на кирилице будет длиннее английского варианта, то место под текст
придётся увеличивать, пройдя по пути
res-->layout-->...
.
apk_b.bat
- запуск эого файла приведёт к компиляции
отредактированного приложения:
@echo off
set apktool=disk:/Apk/apktool.bat
call %apktool% b ftp
pause
После удачного срабатывания этого файла в каталоге
ftp
появяться два
новых:
[Apk]
|_[ftp]
| |_[assets]
|_[build]
|_[dist]
|_ftp.apk
....
Именно в каталоге
dist
будет находится вновь откомпелированое приложение.
apktool.bat
- этот файл организует декомпиляцию/рекомпиляцию приложения:
@echo off
setlocal
set BASENAME=apktool_
chcp 65001 2>nul >nul
:: находим jar-файл
setlocal EnableDelayedExpansion
pushd "%~dp0"
if exist apktool.jar
(
set BASENAME=apktool
goto skipversioned
)
set max=0
for /f "tokens=1* delims=-_.0" %%A in ('dir /b /a-d %BASENAME%*.jar') do if %%~B gtr !max! set max=%%~nB
:skipversioned
popd
setlocal DisableDelayedExpansion
:: если найдено приложение и jar-файл - занимаемся декомпиляцией/рекомпиляцией
if "%~1"=="" goto load
if not "%~2"=="" goto load
set ATTR=%~a1
if "%ATTR:~0,1%"=="d"
(
:: рекомпилируем
set fastCommand=b
)
if "%ATTR:~0,1%"=="-" if "%~x1"==".apk"
(
:: распаковываем apk-файл
set fastCommand=d
)
:load
java -jar -Duser.language=en -Dfile.encoding=UTF8 "%~dp0%BASENAME%%max%.jar" %fastCommand% %*
:: делаем паузу
for /f "tokens=2" %%# in ("%cmdcmdline%") do if /i "%%#" equ "/c" pause
и
apktool.jar
. Последний компонент можно скачать
здесь.
Полученое приложение необходимо подписать. Ссылку на архив с программой - смотри выше.
***
Несколько советов. Не пытайтесь сразу использовать в работе самые последние версии инструментов.
Я работаю с Windous XP SP3 и Jdk1.7.0_10. Но все ошибки исчезли, когда я переключился на
apktool_2.0.0-Beta7.jar
, а это не самая свежая версия apk-инструмента.
Вполне возможно, что приложение было не самым новым.
И ещё один момент - для начала, не беритесь
за приложение более 500 kbyte.
...назад