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

1.反编译apk为smali 语言

2.二次重新打包apk

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 目录下,复制出来即可。

linux apktool的用法,Apktool的基本用法相关推荐

  1. linux程序加载器,Linux 动态连接加载器 ld-linux用法

    Linux 动态连接加载器 ld-linux用法 文章作者:网友投稿 发布时间:2009-12-10 16:21:11 来源:网络 ld-linux有两种用法,间接调用和直接调用. 间接调用时,连接器 ...

  2. linux为什么用tar压缩,linux下tar压缩和解压命令用法详解

    linux下tar压缩和解压命令用法详解 2017-03-25 14:06 分享人:老牛 将/usr/local/test目录下所有文件仅打包,不压缩到 /usr/local/auto_bak/目下 ...

  3. php umount强制,linux中mount/umount命令的基本用法及开机自动挂载方法

    本文介绍了linux中mount/umount命令的基本用法及开机自动挂载,具体方法如下: mount命令格式如下: 格式:mount [-参数] [设备名称] [挂载点] 其中常用的参数有: -a ...

  4. linux 关联数组,Linux shell数组与关联数组的用法实例

    Linux shell数组与关联数组的用法实例 1. 关联数组 使用 declare -A(declare 的用法请使用 help 进行查看,help declare) 进行声明关联数组变量: $ d ...

  5. linux之getcwd函数解析,Linux 中C语言getcwd()函数的用法

    Linux 中C语言getcwd()函数的用法 先来看该函数的声明: #include char *getcwd(char *buf,size_t size); 介绍: 参数说明:getcwd()会将 ...

  6. linux中如何用ftp命令下载文件,linux中ftp下载文件命令的用法

    linxu下的ftp命令是用来下载文件或者上传文件的,下面由学习啦小编为大家整理了linux的ftp下载文件命令的用法的相关知识,希望对大家有帮助! 一.linux中的ftp下载文件命令的用法 从远程 ...

  7. Linux下最简单的动态域名用法

    Linux下最简单的动态域名用法 估计做IT的哥们象我这样ADSL包月的应该很多,我一般家里有一部电脑是24小时开机的,它上面跑着我的各种应用,也相当于我的一个网络硬盘.为了方便自己能从远程访问,我们 ...

  8. linux管道命令详解,Linux系统中的管道命令的用法详解

    Linux系统中管道命令是linux系统的一个强大之处.下面由学习啦小编为大家整理了Linux系统中的管道命令的用法详解的相关知识,希望对大家有帮助! Linux系统中的管道命令的用法详解 管道命令操 ...

  9. 从底层原理出发详解红黑树在Linux内核中的3种经典用法,让你知其所以然

    从底层原理出发详解红黑树在Linux内核中的3种经典用法,让你知其所以然丨进程管理|内存管理|sk_buff|B树|B+树 视频讲解如下,点击观看: 从底层原理出发详解红黑树在Linux内核中的3种经 ...

  10. linux c中write、read的用法

    linux c中write.read的用法 ·write函数 1.功能 将数据写入已打开的文件内 2.相关函数 open,read,fcntl,close,lseek,sync,fsync,fwrit ...

最新文章

  1. spark VS Hadoop 两大大数据分析系统深度解读
  2. 今年2月的微盟“删库”主角被判 6 年有期徒刑
  3. 小学生python入门-如何看待小学生开始学Python?
  4. MY Fist 51CTO BLOG
  5. JavaScript基础笔记
  6. 内核编译配置选项含义
  7. Holedox Moving
  8. 转】未指定 INSTANCESHAREDWOWDIR 命令行值。如果指定INSTANCESHAREDDIR 值,则必须指定该值 ....
  9. cnn 回归 坐标 特征图_论文笔记 | CNN 是怎么学到图片绝对位置信息的
  10. 接口和抽象类的区别是什么
  11. for循环的一个复制算法(Java)
  12. 医用计算机应用基础与实训教程,计算机应用基础与实训教程第1章..ppt
  13. 谷歌浏览器发送POST请求(测试Post接口)
  14. 如何强制App横屏或者竖屏显示应用
  15. ROS导航【01】: move_base包(导航和路径规划)
  16. 国威电话交换机如何设置加拨17909IP功能
  17. 笔记本联想拯救者英伟达win11调节不了亮度
  18. Gallery3d 学习笔记(13)
  19. ADI官网 hdl代码及sdk工程编译过程
  20. 罗马音平假名中文可复制_日语零基础入门五十音,日语零基础五十音图表

热门文章

  1. 投票 java_java实现投票程序设计
  2. bada开发——简单介绍
  3. 74HC595移位寄存器的使用
  4. 2012“第四届云计算中国峰会”倒计时
  5. vscode 程序员鼓励师_把软萌程序猿鼓励师装进VScode里?最强交互彩虹屁,GitHub2.5k星标,爱上写代码...
  6. 我的团长我的团分集剧情介绍
  7. Javakeytool生成RSA密钥
  8. 论文参考文献添加---word尾注添加
  9. 【Android安全】Android root原理及方案 | Magisk原理
  10. 副词记忆(II):ly后缀的常用词