答案已经过时或不完整。这可能适用于不受保护的apk(无Proguard),但如今没有人部署不受保护的apk。我能够通过apktool修改(我)受良好保护的apk(Proguard,用于检查“黑客工具”的安全检查,用于检查应用程序是否以调试模式重新包装的安全检查,...)的方式为已经在这里被其他人提及。但是没有人解释,您必须再次签名该应用程序。
apktool d app.apk
apktool b [folder name] -o modified.apk
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ~/.android/debug.keystore modified.apk androiddebugkey
在我的测试中,原始发行版apk没有日志记录。使用apktool进行反编译后,我交换了一个完整的字节代码文件,而没有记录一个带有记录的完整字节代码文件,对其进行了重新编译和签名,然后便可以将其安装在我的设备上。之后,当我将应用程序连接到Android Studio时,便能够看到日志。
我认为,仅出于阅读目的,使用dex2jar
和进行反编译JD-GUI
仅有助于更好地理解类的作用。但是,由于一切都受到保护,所以我不确定您是否可以将这个半熟的Java代码重新编译为可以正常工作的apk。如果是这样,请告诉我。我认为,唯一的方法是如本示例中所述操作字节码本身。