0、缘起
换了台电脑竟然忘了怎么打包,还好有笔记,用软件打包也挺好,但是我感觉用 命令行 更有操作感,分享下。
1、下载并配置apktool(放在C://Windows无需配置环境变量,需要java环境)
https://apktool.org/docs/install/
需要安装java环境的-->
https://www.cnblogs.com/qc-id-01/p/10396089.html
2、反编译:apktool d xx.apk
apktool d xx.apk
反编译后会多出一个xx文件夹
3、回编译:apktool b xx
apktool b xx
回编译后的xx(文件夹)多出一个dist文件夹,文件夹下有不可安装的未签名的xx.apk
4、签名
第一步生成签名文件:
keytool -genkey -keystore F:\code\apktool\dev.keystore -alias test -keyalg RSA -validity 10000
命令解释:
Keytool 选项 描述
-genkey 产生一个键值对(公钥和私钥)
-v 允许动作输出
-alias 键的别名。只有前八位字符有效。
-keyalg 产生键的加密算法。支持DSA和RSA。
-keysize 产生键的长度。如果不支持,keytool用默认值1024 bits.通常我们用2048 bits 或更长的key。
-dname 专有名称,描述谁创建的密钥。该值被用作自签名证书的颁发者和主题字段。注意你可以不在命令行指定。如果没有指定keytool会提示你(CN,
OU, and so on)。
-keypass 键的密码。 主要为了安全起见,如果没提供,keytool会提示你输入。
-validity 键的有效期,单位:天
-keystore.keystore 用于存储私钥的文件。
第二步为你的apk签名:
jarsigner -verbose -keystore F:\code\apktool\dev.keystore -signedjar F:\code\apktool\mytest\MD\dist\signatureMD.apk F:\code\apktool\mytest\MD\dist\MD.apk test
命令分为 3部分 :
第一部分:C:\Users\Administrator\Desktop\apktool\bm.keystore 你的签名文件地址。
第二部分:C:\Users\Administrator\Desktop\apktool\haha.apk 目标apk输出地址
第三部分:C:\Users\Administrator\Desktop\apktool\haha.apk bm 源apk地址
例子:
jarsigner -verbose -keystore F:\code\apktool\dev.keystore -signedjar F:\code\apktool\mytest\game2_shennzhilu\signaturegame2_shennzhilu.apk F:\code\apktool\mytest\game2_shennzhilu\dist\game2_shennzhilu.apk test
PS:回编译时有两点需要注意,即回编译的文件夹名不能为中文和该文件夹下盘符内存是否足够,否则会报错。
评论 (0)