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

反编译,重打包,签名系

写作目的:

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

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

jdk配置

  1. 弄安卓的话自然离不开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的版本号,即代表配成功.

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

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

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

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

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

  2. 首先将你想要反编译的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
    

succes !