Android 如何在修改/检测其字节码后重建apk?

Android 如何在修改/检测其字节码后重建apk?,android,build,apk,Android,Build,Apk,作为研究的一部分,我需要插入任何给定.apk文件的dalvik字节码,并使用插入指令的字节码获得工作的、修改的.apk 我在Windows7下用Java1.6编程 输入 原始的.apk文件包含原始的、未更改的classes.dexdalvik字节码 插入指令的.apk的classes.dex字节码(是的,我们假设已经插入了字节码) 所需输出 包含插入指令的classes.dex字节码而不是原始字节码的.apk文件 问题陈述 从Java源代码获得所需输出的最直接的方法是什么 更新日期:20

作为研究的一部分,我需要插入任何给定.apk文件的dalvik字节码,并使用插入指令的字节码获得工作的、修改的.apk

我在Windows7下用Java1.6编程

输入

  • 原始的.apk文件包含原始的、未更改的
    classes.dex
    dalvik字节码
  • 插入指令的.apk的
    classes.dex
    字节码(是的,我们假设已经插入了字节码)
所需输出

  • 包含插入指令的
    classes.dex
    字节码而不是原始字节码的.apk文件
问题陈述

从Java源代码获得所需输出的最直接的方法是什么

更新日期:2016年4月12日 关于原始答案的第2步:

可以找到当前版本的
ApkBuilder
的来源,并可以找到解释为什么应该使用它的注释

在本地安卓SDK安装中,这些类似乎位于
Android SDK/tools/lib/sdklib.jar


原答覆11月30日至12日 步骤1:删除原始的classes.dex 要使用自定义的
classes.dex
文件重建.apk,首先需要从中删除原始的
classes.dex
文件。这可以使用install dir中的
aapt.exe
工具轻松完成,例如位于此处的
c:\Program Files(x86)\Android\Android sdk\platform tools\aapt.exe

命令:

aapt.exe remove <path-to-the-apk> classes.dex 
更新日期:2016年4月12日 关于原始答案的第2步:

可以找到当前版本的
ApkBuilder
的来源,并可以找到解释为什么应该使用它的注释

在本地安卓SDK安装中,这些类似乎位于
Android SDK/tools/lib/sdklib.jar


原答覆11月30日至12日 步骤1:删除原始的classes.dex 要使用自定义的
classes.dex
文件重建.apk,首先需要从中删除原始的
classes.dex
文件。这可以使用install dir中的
aapt.exe
工具轻松完成,例如位于此处的
c:\Program Files(x86)\Android\Android sdk\platform tools\aapt.exe

命令:

aapt.exe remove <path-to-the-apk> classes.dex 

你写这个问题就是为了写你的答案?@MMohsinNaeem你写这个问题就是为了写你的答案?@MMohsinNaeem
Sources
链接断开了。另外,如果您创建了包含所有依赖项的GitHub项目,这也会很酷。@mixel我更新了我的答案。对不起,我没有时间用它来做一个GitHub项目<代码>源链接已断开。另外,如果您创建了包含所有依赖项的GitHub项目,这也会很酷。@mixel我更新了我的答案。对不起,我没有时间用它来做一个GitHub项目!