Apktool的基本用法

作者: imesong | 来源:发表于2016-02-17 00:21 被阅读1145次

    第一篇介绍了Apktool 的安装,这篇介绍下Apktool 的基本用法。掌握之后,可以做到

    1.反编译apk为smali 语言

    2.二次重新打包apk

    Apktool官方文档地址,如有能力,尽量直接查阅官方文档,本篇文章主要参考官方文档。

    Decoding 反编译为Smali 语言

    apktool d demo.apk -o demo
    
    

    这样一行代码就搞定,简单解释下参数的意义。

    d 表示decode ,反编译,与之对应的是building,编译。demo.apk 是要反编译的目标apk, -o 表示输出地址 ,如果没有 -o 参数,默认在当前文件夹。

    反编译之后的文件夹目录结构如下

    反编译文件目录结构.png

    AndroidManifest.xml 是 Android 项目中的清单文件,可以直接打开查看

    res 是资源文件,layout 和 value 都在这里

    smali 文件夹 是相关的Java 代码转换为 Smali 语言后的文件。

    现在,如果是简单的产看 App 的 UI结构或者使用某些资源,直接拿走即可。

    下面介绍下怎么将反编译之后的文件,在重新打包为 Apk,前提是没有修改任何文件。

    Building 重新编译Smali 文件为 Apk

    apktool b  demo -o demo_unsigned.apk
    

    很简单的一个命令,说下各个参数的意义

    b,表示 building,编译,与之对应的是 decoding。
    demo 文件夹表示要编译的目标文件夹
    -o 表示输出文件名和路径。

    编译好之后的apk 是没有签名的。

    在部分平台下,编译时提示缺少部分资源文件,需要安装 framework.apk 文件,执行下面的命令即可

    1.判断是否安装有 framework-res.apk

    apktool if framework-res.apk
    

    2.安装 framework-res.apk

    apktool if framework-res.apk
    

    framework.apk 在手机上 /system/framework 目录下,复制出来即可。

    相关文章

      网友评论

        本文标题:Apktool的基本用法

        本文链接:https://www.haomeiwen.com/subject/ofmpkttx.html