反编译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的主要内容,如果未能解决你的问题,请参考以下文章