Android é um sistema operacional que usa muitas linguagens de programação. As linguagens mais comuns são Java (ou Android Java se preferir), C, XML, Bash, entre outras. Os aplicativos Android podem ser descompilados pelo APKTool e algumas ferramentas semelhantes, e sua saída é Smali. Eu sei que muitos de vocês discordarão de mim, mas Smali é uma linguagem bastante complicada, muito mais que Java.
Existem duas ferramentas que podem converter Smali de volta para Java: Dex2Jar e JAD. Eles são muito difíceis de usar e precisam de alguma experiência para usá-los corretamente. Felizmente, desenvolvedor reconhecido pelo XDA prancha de criação1337 criei um script bash simples, que faz todo o trabalho para nós. Este script pode obter todas as dependências necessárias, bem como obter o código Java direto do APK. Funciona apenas no Linux, mas tenho certeza de que pode ser usado em sistemas não semelhantes ao UNIX, como o Windows com Cygwin. O desenvolvedor recomenda que você coloque o arquivo em ~/bin e o torne executável. Mais instruções estão disponíveis no tópico.
Às vezes, os scripts podem tornar a vida muito mais fácil. Se você estiver interessado no projeto, vá até o tópico original para obter mais informações e aprender como converter código assembler em Java.
Nota: Ferramentas como esta devem ser usadas para fins educacionais. “Emprestar” código de aplicativos (pagos ou gratuitos) é antiético e não deve ocorrer. Eles são de código fechado por um motivo. Tenha isso em mente.