反编译,重打包,签名系
写作目的:
最近在折腾安卓,以后的方向也初步定为安卓开发了,学习过程中遇到了不少问题,百度,google了不少,
但有些解决方法由于版本过老,现在已经失效,于是想将自己折腾成功的一些东西总结起来,供给有需要的人参考,
避免趟我趟过的坑,如有错误,还请斧正:)
由于自己也是小白,写的东西当然也比较小白向,所以我们从环境搭建说起。
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的版本号,即代表配成功.
环境搭建好之后,我们还需要一个反编译以及重打包的工具,即apktool,网上很多人留下的集成好批处理文件的工具包由于apktool的版本过老,直接使用是会报错的,我们需要自己稍微做个新版本的工具包
首先将你想要反编译的apk放在apktool的文件夹下
然后打开cmd,用cd
命令到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