反编译APK,修改一个activity并重新编译成APK

Posted

技术标签:

【中文标题】反编译APK,修改一个activity并重新编译成APK【英文标题】:Decompile APK, modify an activity and recompile to APK 【发布时间】:2017-12-05 08:39:18 【问题描述】:

我正在尝试做一些简单的事情。我有一个 APK 文件,我想在某个活动中更改某个变量值,然后将其重新编译回 APK,以便我可以在我的 android 设备上使用它。

自从我开始使用它已经好几天了,我找不到任何解决方案。

我尝试了这些方法:

    使用 APKtool 反编译。 用 Android studio 打开它。 更改所需的值。 无法将其重新编译为 APK。

    使用 APKtool 反编译 / 使用 7-Zip 打开 APK。 使用 dex2jar 将classes.dex 转换为 jar。 使用 luyten 或 jadx 打开 jar 文件(jd-gui 出现“内部错误”)。 无法编辑文件。

在另一种方法上,我不记得我是如何做到的,我能够访问活动文件,但无法再次将其重新编译为 APK

如果您对如何编辑classes 和活动有任何想法,请告诉我。我已经阅读了很多 SO 问题并在 Google 上搜索了很多次,但我找不到任何解决方案。谢谢!

【问题讨论】:

【参考方案1】:

使用 Android apk 工具,您只能反编译现有的 APK。你不能重新编译它。会报错

如果您打算将 dex 文件转换为 JAR 文件和将 JAR 文件转换为 dex 文件,这在大多数情况下也是行不通的。

但有一种解决方案可用..“DexPatcher”。我试过这个,但由于缺乏知识而陷入困境......你可以试试“Dexpatcher tool”,它会很好。如果你有任何想法,请告诉我..

祝你有美好的一天

【讨论】:

点击此链接您将获得指南https://forum.xda-developers.com/android/software/tool-dexpatcher-modify-android-dex-apk-t3060854【参考方案2】:

我建议你使用APK Studio。您可以使用它反编译/重新编译 apk。但是,您不能在 Java 中编辑源代码。它使用称为smali 的语言进行反编译。如果您只需要更改一个值,我想这个工具可以解决您的问题。

【讨论】:

该工具带有文本编辑器。您只需查找变量并编辑其值。 看起来反编译的代码是二进制什么的,我真的找不到像我在 Android Studio 上看到的可读的类代码。我找到了变量名,但没有找到它的值。 抱歉没用。【参考方案3】:

使用 apk 编辑器。

Apk-editor 是 android 中的应用程序 那就是反编译再编译apk

apkeditor

【讨论】:

以上是关于反编译APK,修改一个activity并重新编译成APK的主要内容,如果未能解决你的问题,请参考以下文章

APK反编译再打包并重签名

反编译文件怎么找主activicity

mac下反编译apk

安卓反编译出来的代码如何修改重新生成APK

反编译修改Android apk的版本号

如何修改反编译的apk的包名? [关闭]