java - APK注入(inject),重新编译android manifest

标签 java android apk code-injection apktool

我想要实现的目标

将打包在apk中的AndroidManifest.xml从二进制形式反编译成普通的xml文件,编辑并重新编译成apk可接受的二进制文件。基本上我需要一个 AXML 文件的驱动程序

短背景

我正在开发一个 APK 注入(inject)项目。 我的目标是

  1. 反汇编 dalvik 二进制文件
  2. 读取 AndroidManifest xml 并对其进行修改,例如更改主要 Activity 并添加权限
  3. 重建并签署 apk 文件

我使用 apktool 来组装和反汇编 apk。但是,apk 工具仅适用于 --no-res 选项,如果 apk 与资源一起反汇编,则无法重新构建。 Here's a github issue describing this bug .

问题

由于我将 apktool d --no-res app-debug.apk 分解为没有 res 标志,因此生成的 android list 以二进制形式出现。我可以使用 apktool 反汇编 list ,但我无法将其组装回来。

我想做什么

我需要:

  • 找到一种方法来反汇编 list ,然后将其组装回二进制形式
  • 找到一种将 apktool 与资源一起使用的方法

到目前为止我所尝试的

免责声明

虽然 stackoverflow 是一个知识共享社区,而不是评判它的用途 - 我看到很多人在类似的问题中挑剔其他人,指控他们从事非法 Activity 。

我的所作所为绝对合法,不会被用来剥削任何人。

最佳答案

安装在以下情况下会出现解析错误,看看有没有遇到过 -

  • 签名后包的名称被更改:使用确切的名称作为 签名的包是(改为在 Manifest 中调整名称)
  • 包。 在更高的 API 级别上编译:更正 API 级别 list 文件。
  • 从 SD 卡执行包:运行(安装)apk - 手机内存中的文件或使用 adb 命令安装它。

您可以按照给定的 here 手动签名您的 apk .

关于java - APK注入(inject),重新编译android manifest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49931372/

相关文章:

android - java.lang.IllegalArgumentException : Error: Failed to parse APK file: 异常

java - Android获取ArrayList中的所有联系人电话号码

java - Android 应用程序在传递字符串时崩溃

java - Java 中最小的(更少的内部代码)、符合规范的 JSON 解析器

android - 由 : android. view.InflateException: Binary XML file line #11: Error inflating class fragment 引起

java - map 应用程序在模拟器上强制退出

java - 请解释一下该方法中的gettersetter_method

android - 适用于 Android 的 PostFinance 支付网关集成

service - 连接到服务协议(protocol) : Exception: Attempted to connect to Dart observatory 5 times, 时出错,所有尝试均失败。放弃。网址是

Android:如何以编程方式获取安装程序文件名?