APK重新签名的方法

1. 生成签名证书
使用JDK自带的keytool工具, 运行下面的命令
keytool -genkey -alias lanxinbase -keyalg RSA -validity20000 -keystore lanxinbase.com.jks

/*解释:keytool工具是Java JDK自带的证书工具
-genkey参数表示:要生成一个证书(版权、身份识别的安全证书)
-alias参数表示:证书有别名,-alias androidauto.keystore表示证书别名为:androidauto
-keyalg RSA表示加密类型,RSA表示需要加密,以防止别人盗取
-validity 20000表示有效时间20000天
-keystore lanxinbase.com.jks表示要生成的证书名称为lanxinbase.com.jks
*/
输入完回车后屏幕显示:
输入keystore密码:[密码不回显]
再次输入新密码:[密码不回显]
您的名字与姓氏是什么?
Unknown]:cheers
您的组织单位名称是什么?
Unknown]:cheers
您的组织名称是什么?
Unknown]:cheers
您所在的城市或区域名称是什么?)
Unknown]:shanghai
您所在的州或省份名称是什么?
Unknown]:shanghai
该单位的两字母国家代码是什么
Unknown]:CN
输入< ***.keystore>的主密码
(如果和keystore密码相同,按回车):

执行以上语句后在执行的目录下会生成证书文件 lanxinbase.com.jks

2. 删除之前APK文件的签名

  • 解压apk文件(我用7-ZIP 提取出来)
  • 删除解压出来文件夹中的 META-INF目录:META-INF存放签名后的CERT和MANIFEST文件,用于识别软件的签名及版权。
  • 删除文件夹后重新把解压出来的其它文件夹压缩为zip文件,然后直接把文件后缀改为apk

注意:一定要选中要压缩的文件,然后压缩成.zip 文件,zip文件必须是根目录,即 打开zip文件,就能看见压缩的文件内容,这非常重要。

3. 为APK重新生成签名

  • 将证书复制到与需要重新签名的apk文件相同的目录下
  • 进入该目录下执行以下语句

jarsigner -verbose -keystore lanxinbase.com.jks -signedjar app-release.apk app-dubug.apk lanxinbase

命令解释:
jarsigner是Java的签名工具,JDK自带
-verbose参数表示:显示出签名详细信息
-keystore表示使用当前目录中的android.keystore签名证书文件。
-signedjar app-release.apk app-dubug.apk 表示签名后生成的APK名称为app-release.apk ,未签名的APK Android软件名称为app-dubug.apk
-androidauto.keystore表示签名文件的别名,生成证书的时候有书写

执行以上操作之后在目录下生成了app-release.apk,经过自己签名的APK文件。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
APK签名是为了保证应用程序的完整性和安全性,防止应用程序被篡改或者恶意注入代码。一般来说,APK签名分为两种:Debug签名和Release签名。 Debug签名是用于开发和测试应用程序的签名,其签名证书由Android SDK自动生成,不需要手动签名。而Release签名则需要开发者自己生成签名证书,并使用该证书对APK进行签名。 下面是Release签名的步骤: 1. 生成签名证书:使用keytool工具生成签名证书。在命令行中输入以下命令: keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000 其中,-keystore参数指定生成的签名证书的文件名和存放位置;-alias参数指定证书别名;-keyalg参数指定加密算法,这里使用RSA算法;-keysize参数指定密钥长度;-validity参数指定证书的有效期。 2. 为应用程序配置签名证书:在应用程序的build.gradle文件中配置签名证书信息。在android节点下添加如下代码: ```gradle signingConfigs { release { storeFile file("my-release-key.keystore") storePassword "your_store_password" keyAlias "your_key_alias" keyPassword "your_key_password" } } ``` 其中,storeFile参数指定签名证书的文件名和存放位置;storePassword参数指定密钥库的密码;keyAlias参数指定别名;keyPassword参数指定别名密码。 3. 使用签名证书对APK进行签名:在应用程序的build.gradle文件中添加如下代码: ```gradle buildTypes { release { signingConfig signingConfigs.release } } ``` 这样,当你使用Android Studio生成Release版本的APK时,就会使用你生成的签名证书对APK进行签名

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值