zoukankan      html  css  js  c++  java
  • android apk反编译,重新打包,签名

    apktool安装

    Windows系统: 
    1. 首先确保系统安装有Java 

    2. 下载最新版本的apktool.jar https://ibotpeaches.github.io/Apktool/ 

        下载最新的jar,我看到最新的是2.3.1

    2. 为了直接能在运行需要配置apktool.bat
      

    @echo off
    if "%PATH_BASE%" == "" set PATH_BASE=%PATH%
    set PATH=%CD%;%PATH_BASE%;
    chcp 65001 2>nul >nul
    java -jar -Duser.language=en -Dfile.encoding=UTF8 "%~dp0apktool_2.3.1.jar" %*

    apktool.bat和apktool_x.x.x.jar都放在同一目录下面

    3. 为了使用方便把目录配置到环境变量中

    4. 输入apktool 出现以下则成功

    apk反编译

    apktool.bat d -o <output_dir> xxx.apk

    其中<output_dir>指定输出目录

    xxx.apk为apk的名字

    例如我执行

    apktool.bat d -o app app.apk

    得到反编译的目录

    重新编译apk

    apktool.bat b -o <output.apk> <input_dir>

    其中<input_dir>就是上面反编译输出的目录,<ouput.apk>是编译的输出结果,默认为dist/<name>.apk

     执行

    apktool.bat b -o output.apk app

     

    出错了,找不到aapt

    1.在Android SDK通过build-tools下面选择Android/sdk/build-tools/27.0.3/版本的aapt.exe的目录配置到系统环境变量

    2.执行apktool empty-framework-dir --force

    3.如果还有问题请查看https://github.com/iBotPeaches/Apktool/issues

     这个时候编译的apk是没有签名的不能安装到手机上的

    签名

    签名是对要发布的apk文件作标记,确保你的apk文件有唯一的身份归属认证,只有相同签名和相同包名的文件才可以覆盖安装并保留用户信息。

    对于反编译的apk,我们可以通过jarsigner来对它进行签名。

    签名需要keystore文件,如果没有可以新建keystore,如果有跳过

    生成keystore文件

     

    APK重签名

    /*解释:
    jarsigner是Java的签名工具 -verbose参数表示:显示出签名详细信息 -keystore表示使用当前目录中的release.jks签名证书文件。 -storepass 密钥口令 -signedjar ThinkDrive_signed.apk表示签名后生成的APK名称, ThinkDrive_temp.apk 表示未签名的APK, androiddebugkey表示debug.keystore的别名
    */ jarsigner -verbose -keystore release.jks -storepass android -keypass android -signedjar signapp.apk nosign.apk test
  • 相关阅读:
    聊聊es6中的解构
    JavaScript 中的面向对象编程
    TypeScript 中的类型保护
    7个你应该知道的 JavaScript 原生错误类型
    使用JavaScript策略模式校验表单
    nodejs如何解决高并发?
    nodejs核心模块有哪些?
    Dungeon Master
    Gold Balanced Lineup
    poj 2513Colored Sticks
  • 原文地址:https://www.cnblogs.com/mingfeng002/p/8559586.html
Copyright © 2011-2022 走看看