反编译,重打包,签名系列

反编译,重打包,签名系列

写作目的:

最近在折腾安卓,以后的方向也初步定为安卓开发了,学习过程中遇到了不少问题,百度,google了不少,但有些解决方法由于版本过老,现在已经失效,于是想将自己折腾成功的一些东西总结起来,供给有需要的人参考,避免趟我趟过的坑,如有错误,还请斧正:)

由于自己也是小白,写的东西当然也比较小白向,所以我们从环境搭建说起。

1. jdk配置

弄安卓的话自然离不开java,所以jdk的配置是必须的。

· 首先前往jdk官网下载jdk的一个安装包

· 接下来最好全部选择默认安装配置,尤其是安装路径,否则可能会影响接下来的变量设置,我试过两次放在D盘,都会报错。、

· 然后我们设置一下系统变量

右击我的电脑,然后打开高级系统设置,打开环境变量,接下来的操作都在系统变量中进行。

· 在系统变量中(注意不是用户变量)先新建两个变量,变量名和变量值如下:

JAVA_HOME
C:\Program Files\Java\jdk-9.0.4(其含义就是你jdk安装的路径,如果是默认安装,且jdk版本一致,直接复制粘贴我的就好否则改下路径和版本也OK)

CLASSPATH
.;%JAVA_HOME%\lib;%JAVA_HOME%\jre\lib








· 然后还是在系统变量中操作,选中变量名为Path的,选择编辑,然后添加下面两个值

%JAVA_HOME%\lib\dt.jar
%JAVA_HOME%\lib\tools.jar

最后确定一下就好了。

配置好之后我们需要检验一下,方法为:

同时按win+r,如后输入cmd即可,在cmd中,输入java –version,如果返回了java的版本号,即代表配成功.

2. 环境搭建好之后,我们还需要一个反编译以及重打包的工具,即apktool,网上很多人留下的集成好批处理文件的工具包由于apktool的版本过老,直接使用是会报错的,我们需要自己稍微做个新版本的工具包

· 同样前往官网下载,但和我们平时下载好安装包之后无脑点下一步不同,我们除了下载apktool-2这个jar文件以外,还需要下载与之匹配的一个批处理文件,即第一个的apktool.bat

· 然而点开第一个链接后会得到一串代码,这不是网页GG了,这就是批处理文件的内容,用编辑器粘贴这些代码,保存后命名为apktool.bat这样一个批处理文件即可。

· 然后我们将第二个下载链接下载下来的jar文件和这个批处理文件放一块空文件夹中即可。

准备就绪,让我们开始反编译吧,let's go

3. 首先将你想要反编译的apk放在apktool的文件夹下

然后打开cmd,用cd <file>命令到apktool文件夹所在的目录

pktool.bat d demo.apk		//demo.apk需要改成你的apk的名字

等到cmd跑完,如果apktool文件夹里多了一个demo文件夹,且目录不为空,即反编译成功.

ok,当你按需求改完代码或者图片之类的之后,需要将demo重打包为一个apk文件,使用代码:

apktool b demo -o new_demo.apk

· 同样,当cmd跑完,目录中出现一个new_demo.apk,即代表succes

由于这个新apk已经被你改过了,原作者的签名也就没了,所以无法安装到手机上,我们需要自己给个签名

注意:接下来的操作需要以管理员身份运行cmd

· 首先找到jdk中bin目录所在位置,默认位置为C:\Program Files\Java\jdk-9.0.4\bin

我们将需要打签名的new_demo.apk放到该目录下,cmd中cd到该目录,

cd C:\Program Files\Java\jdk-9.0.4\bin

然后开始打签名吧,代码如下:

· keytool -genkey -alias demo.keystore -keyalg RSA -validity 40000 -keystore demo.keystore

· jarsigner -verbose -keystore demo.keystore demo.apk demo.keystore

succes !

编辑于 2018-03-05