PC端:安卓(Andoird).APK文件-解包、打包、签名。
羡魚儿
2022年04月07日 23:05

前置软件:

Java(下载-www.oracle.com/java/technologies/downloads/archive/)

Apktool(下载-ibotpeaches.github.io/Apktool/)

1.    配置java和apktool系统环境变量

不会的话先看我这篇教程:Windows11配置系统环境变量​

2.    安卓解包:

代码块
JavaScript
自动换行
复制代码
终端>apktool d 需解包.APK -o 输出文件夹名
复制成功

不设置“-o 输出文件夹”路径,则解包为APK同名文件夹。

解包后可以删除META-INF文件夹内除MANIFEST.MF之外的所有文件,清除原先签名。

3.    安卓打包:

代码块
JavaScript
自动换行
复制代码
终端>apktool b 需打包文件夹 已打包.APK
复制成功

不设置“已打包”APK路径,则保存在需打包文件夹的../dist目录。

4.    使用java为APK文件签名:

  生成Android平台签名证书(.keystore)

代码块
JavaScript
自动换行
复制代码
终端>keytool -genkey -alias 别名 -keyalg RSA -validity 证书有效天数 -keystore 名称.keystore
复制成功

生成时 “-alias 别名” 设置相当于生成密钥的用户名,每次使用密钥签名的时候需要和密码一起使用。

  给打包好的APK文件签名

代码块
JavaScript
自动换行
复制代码
终端>jarsigner -verbose -keystore 名称.keystore -signedjar 签名后.APK 签名前.APK 别名(alias)
复制成功
代码块
JavaScript
自动换行
复制代码
apktool 命令参数
-d				解包
-b				打包
-o				输出文件位置
-f				覆盖已经存在文件

keytool 命令参数
-genkey			产生证书文件
-alias			别名
-keyalg			密钥算法
-validity		证书有效天数
-keystore		密钥库名称

Jarsigner 命令参数
-verbose		输出日志
-keystore		密钥位置
-signedjar		设置输出输入文件名
alias			签名证书别名
复制成功