在逆向工程之后打包的apk通常就没了签名。
而没签名是安装不到手机上的,会提示无签名不让安装。
在排除应用本身对签名的校验情况下,我们可以自行签名解决这个问题。
生成签名密钥
签名过程使用一对公钥和私钥,私钥用于签名,公钥用于验证签名。
Android SDK提供了一个工具keytool来生成签名密钥。以下是使用keytool生成密钥的命令示例:
keytool -genkeypair -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
-genkeypair
表示创建一对新的密钥。
-v
表示生成密钥时,输出详细信息。
-keystore
后面跟着密钥库的文件名和路径,这里是my-release-key.keystore。
-alias
是这对密钥的别名,在后面的签名过程中会用到,这里是my-alias。
-keyalg
是加密算法,这里使用的是RSA。
-keysize
是密钥的长度,这里是2048位。
-validity
是密钥的有效期,这里是10000天。
在运行上述命令时,会提示你输入密钥库的密码,以及密钥的详细信息,如姓名、组织单位、城市等。
签名APK文件
生成密钥后,你可以使用jarsigner工具来给APK文件签名。以下是使用jarsigner签名APK的命令示例:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore my-app.apk my-key-alias
-verbose
表示输出签名过程的详细信息。
-sigalg
和 -digestalg 指定签名算法。
-keystore
指定密钥库的位置。
my_application.apk
是待签名的APK文件。
my-alias
是密钥库中密钥的别名
在运行这个命令时,可能会要求你输入密钥库的密码。成功签名后,APK文件就会被签名密钥加密签名,可以用于分发和安装。
标签:keystore,APK,安卓,alias,签名,my,密钥 From: https://www.cnblogs.com/dingshaohua/p/18259155