Giter VIP home page Giter VIP logo

apktools's Introduction

apktools

一款apk签名、压缩、修改资源的工具,可用于生成渠道包

原理

利用7z压缩、修改apk,再用apksigner重新签名

主要功能

用命令sign xxx.apk 对apk签名

用命令compress xxx.apk 压缩apk

在apktools目录下放一个apk文件,双击add_channel.bat修改apk的资源

以上功能可以分开、组合使用

相关配置

配置android sdk环境变量,能用where adb命令找到adb所在路径

修改sign.bat里的如下变量

set keyPath=%oPath%key 签名用的密钥的绝对路径(直接复制到apktools目录改名为key,这行就不用管了)
set alias=alias1 密钥别名
set storePass=000000 密钥库密码
set aliasPass=111111 别名密码
set buildTool=26.0.2 buildTool版本(最好和你工程的一样,并且只支持25及以上)

在channels文件夹下,每个渠道一个文件夹,里面放需要替换的资源文件,
路径必须和apk直接解压(不是反编译)后得到的资源路径一致,
比如splash.jpg在工程中是在res\mipmap-xxhdpi里,
而release包解压后splash.jpg在res\mipmap-xxhdpi-v4里,
那么渠道文件夹里的splash.jpg也该放在res\mipmap-xxhdpi-v4里

渠道名放在assets\channel 在代码里使用ChannelUtils.getChannel()获取

说明

  1. 签名同时采用v1和v2,兼容新旧android版本,并进行了zipalign
  2. compress.bat和add_channel.bat依赖于sign.bat,压缩和修改资源和会自动进行签名
  3. 修改资源后的apk在apktools\outputs里
  4. demo工程生成的app-release.apk已放在apktools目录下,是默认的splash和渠道,
    对其应用相关功能并安装后观察apk的大小、splash和渠道名称的变化
  5. 压缩率取决于apk里的文件,可高可低
  6. 理论上可以替换可见的任意资源,更多用法请自行探索
  7. 目前只有windows版,需要linux、mac版的可以将7z替换成linux、unix版的,
    并把bat改为由shell实现

apktools's People

Contributors

wtuadn avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.