Apk之解包打包签名

*、在闲暇时分,突然对apk的源码进行反编译进行一些基础的改动,然后重新打包成apk使用,于是学到了以下的东东,其实这些目前算不上知识,因为并不能做到知其所以然,所以后续深入了解的话会再次更新该文

#apk反编译的环境搭建
ibotpeaches.github.io/Apktool/install/[you can]

#apk反编译、修改、重新打包
反编译:apktool d -o <output_dir_name> test.apk
output_dir_name 反编译后的文件夹名称
test.apk 目标apk全称
修改--汇编修改
打包:apktool b -o <new_apk_name> <input_dir_name>
详见字段名称


#查看已有apk的签名-暂时无用
找到apk项目中的MET-INF/*.rsa文件
keytool -printcert -file *.rsa即可

#通过jdk生成keystore文件
keytool -genkey -alias test -keyalg RSA -validity 40000 -keystore test.keystore
-alias 别名:重要且避免中文
-validity 有效期

#给制定的apk进行签名
jarsigner -verbose -keystore aya.keystore -signedjar my_new.apk -digestalg SHA1 -sigalg MD5withRSA my.apk aya
-keystore 签名的文件名
-signedjar 新签名后的apk名称
my.apk 已经反编译并进行修改编译后的apk文件
test 签名的别名,必须有且必须是别名非文件全称

#jarsigner签名及解决找不到证书链的问题
首先可能是因为keystore是中文名的原因
其次是注意指令中keystore参数应为别名,是别名
#CMD下解决中文乱码问题
chcp 936(gbk)/65001(utf-8)
选其一即可

猜你喜欢

转载自lbovinl.iteye.com/blog/2423549