首先下载并安装JAVA。

这里有一个坑,由于JAVA被甲骨文(Oracle)收购了,千万不要去java.com下载安装包,千万不要,千万不要,因为java.com上的是不完整的升级包,缺少许多组件。
建议前往甲骨文Oracle官网下载最新对应你操作系统的完整安装包。

建议按默认路径安装。

设置好环境变量:此电脑=>>属性=>>高级系统设置=>>环境变量=>>系统变量=>>Path=>>新建一条C:\Program Files\Java\jdk-21\bin的环境变量(注意:此目录是默认安装路径,jdk-21路径随版本不同而不同,以实际目录为准)。

下载apktool.bat和apktool.jar。

apktool.bat:右键另存为apktool.bat

apktool.jar:下载最新版,修改文件名为apktool.jar

两个文件复制到C:\Windows文件夹内。

启动CMD输入apktool测试是否正常,如果显示“The system cannot find the path specifide”,有可能是环境变量设置错误。或者是系统无法识别%JAVA_HOME%这个变量,编辑C:\Windows\apktool.bat文件,找到

if defined JAVA_HOME (
set "java_exe=%JAVA_HOME%\bin\java.exe"
)

%JAVA_HOME%\bin\java.exe修改成绝对地址,例如:C:\Program Files\Java\jdk-21\bin\java.exe

启动CMD进入apk存放目录

解包:apktool d test.apk

重新打包:apktool b test -o newtest.apk

此时重新打包好的apk无法在设备正常安装,需要利用java的teytool.exe生成密钥证书,再用java的jarsigner.exe对apk进行签名后才能在设备上正常安装。

生成证书文件:

keytool -genkeypair -alias key.keystore -keyalg RSA -validity 30000 -keystore key.keystore

运行后会要求设置密码和一些验证安全的问题,验证安全问题可以随便填,最后是否正确时输入y即可。
-genkeypair 产生证书文件
-alias 产生别名
-keyalg 指定密钥的算法,这里指定为RSA(非对称密钥算法)
-validity 为证书有效天数,这里我们写的是30000天
-keystore 密钥库名字及存储位置(默认当前目录)

签名:

jarsigner -verbose -keystore key.keystore -signedjar newtest-singned.apk newtest.apk key.keystore

-verbose 签名/验证时输出详细信息
-keystore 密钥库文件路径
-signedjar 已签名的文件名称,后面是未签名文件,最后别名