я решил его несколько подпилить под свои нужды. После 'apktool d' получил набор папок, но вместо java файлов там лежали smali. Выглядит как ассемблер, в общем, практически нечитабельно в больших объёмах. 
                  
                  
                  Я сделал из classes.dex jar файл утилитой 'dex2jar' и смог открыть этот файл декомпайлером (JD-GUI). Сохранил всё и начал пытать подсунуть вместо папки со smali файлами эти java файлы. 
                  
                  
                  Но при сборке выдаёт ворнинг - 
                  
                  
                  '    apktool b appFolder
                  
                  
                      I: Using Apktool 2.2.0
                  
                  
                      W: Could not find sources
                  
                  
                      I: Checking whether resources has changed...
                  
                  
                      I: Building apk file...
                  
                  
                      I: Copying unknown files/dir...'
                  
                  
                  После подписи файла я решил сравнить новую версию со старой с помощью MD5 - 
                  
                  
                  0268903ab1e20bcf3082962783d65880 (4,133,068) против c553a98dc2e2269c9508084a5a38a0cd (4,133,178)
                  
                  
                  Подозрительные лишние 100 байт.. Ну да ладно. 
                  
                  
                  Загружаю на девайс и вижу, что apktool собрал из .smali файлов, которых даже физически не было в директории. 
                  
                  
                  (Я заранее поставил маркер в новом java файле). 
                  
                  
                  Ни в файле манифеста, ни в прочих конфигах я не увидел явного указания на использование smali. Да и повторю, что их там и рядом не лежалою
                  
                  
                  Как компилировать APK из новых файлов и почему и откуда (classes.dex?) apktool взял старые smali файлы? 😨
                  
                  
                
Разобрался. Получилось выковырять класс из dex файла, переписать java-код, затем с помощью backsmali порезал его на ассемблерные инструкции и подменил старые smali-файлы новыми. Потому что apktool работает только с несобранным dex или smali https://github.com/iBotPeaches/Apktool/issues/199 оставлю здесь, мало ли кому пригодится)
Обсуждают сегодня