Android — операционная система, использующая множество языков программирования. Наиболее распространенными языками являются Java (или Android Java, если вы предпочитаете), C, XML, Bash, а также некоторые другие. Приложения Android можно декомпилировать с помощью APKTool и нескольких подобных инструментов, а их результат — Smali. Я знаю, что многие из вас со мной не согласятся, но Smali — довольно сложный язык, гораздо более сложный, чем Java.
Есть два инструмента, которые могут конвертировать Smali обратно в Java: Dex2Jar и JAD. Однако ими довольно сложно пользоваться, и для их правильного использования требуется некоторый опыт. К счастью, признанный разработчик XDA. выводок1337 создал простой bash-скрипт, который делает всю работу за нас. Этот скрипт может получить все необходимые зависимости, а также получить код Java прямо из APK. Он работает только в Linux, но я совершенно уверен, что его можно использовать в не UNIX-подобных системах, таких как Windows с Cygwin. Разработчик рекомендует поместить файл в ~/bin и сделать его исполняемым. Дальнейшие инструкции доступны в теме.
Иногда сценарии могут значительно облегчить жизнь. Если вас заинтересовал проект, зайдите на сайт оригинальная тема чтобы получить дополнительную информацию и научиться конвертировать ассемблерный код в Java.
Примечание. Подобные инструменты следует использовать в образовательных целях. «Заимствование» кода из приложений (платных или бесплатных) неэтично и не должно иметь место. Они имеют закрытый исходный код по какой-то причине. Запомни.