zoukankan      html  css  js  c++  java
  • android: 对普通的apk应用进行签名

    准备工作

    jdk (我这里的是jdk1.8)

    一个未签名的apk应用。

    判断是否签名

    要判断一个apk文件是否已经进行过签名,使用解压应用(如WinRAR等)打开该文件,查看是否有一个META-INF的文件夹,如果有则代表已经签名;没有则表示没有签名。

     将一个已经签名的应用转化为一个未签名的应用方法非常简单,只需要将应用中的META-INF文件夹删除就可以了。

    可在解压应用界面(上图)直接删除;也可以先将应用程序的后缀名由apk更改为rar等,再解压,删除,然后压缩,将后缀名改成apk。

    需要注意的一点是,在压缩时要保持原来的文件结构不变,需要选中所有文件(夹)来压缩,如下国:

     使用keytool 创建密钥

    打开jdk的bin文件夹

     在当前路径下打开命令行,输入命令:

    keytool -genkeypair -v -keystore realsil.keystore -alias realsil-keystore -keyalg RSA -validity 2000

    其中:

    • genkeypair 生成密钥对
    • alias 密钥库名称,即最后保存的文件名称(reaisil.keystore
    • alias 密钥别名(realsil-keystore
    • keyalg 密钥加密算法(RSA
    • validity 密钥有效时间,单位为天(2000天)
    然后输入密码,记住这个密码,我们接下来会再次用到。

    密码输入完毕后,按照提示进一步完善个人的其它信息:

    提示是否正确时,输入小写字母: y, 点击回车

    确认完毕后,会再次让你输入先前提供的密码。输入完毕后,点回车,这样当前目录下就会生成一个新的keystore文件。

    这样一个keystore就创建好了,完成后可以使用keytool -list 命令查看当前keystore 的详细信息:

    keytool -list -v -keystore realsil.keystore

    使用jarsigner进行签名

    jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore realsil.keystore Test_Demo.apk realsil-keystore -signedjar demo_signed.apk

    参数说明:

    在java 1.8环境下,verbose和digestalg两参数必须加上,否则生成的文件无法安装
    keystore 所使用的密钥
    Test_Demo.apk 要进行签名的文件
    realsil-keystore 密钥别名
    signedjar 将签好名的应用保存为demo_signed.apk。此参数可省略,省略后直接改变原文件为已签名文件,不会生成新的文件。

    执行:

    看到jar 已签名,代表签名成功,接下来便可以使用生成的demo_signed.apk进行安装了。

    PS: 

    本人测试环境为:win10 64位,jdk1.8, 如在不同环境下可能会不适用。

    参考链接

    对apk应用进行签名

  • 相关阅读:
    解决:微信小程序富文本识别不了空白p标签的方法
    微信小程序
    fastadmin
    微信小程序
    fastadmin使用笔记
    fastadmin使用笔记
    您有新的订单,请注意查收 提示音
    js获取视频第一帧生成图片
    解决JQ WeUI 的 Picker无法动态传值的问题
    微擎 人人商城小程序获取不到用户信息
  • 原文地址:https://www.cnblogs.com/yongdaimi/p/12850005.html
Copyright © 2011-2022 走看看