添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

1.2、llsydn证书制作

Android平台打包发布apk应用,需要使用数字证书(.keystore文件)进行签名,用于表明开发者身份。

可以使用JRE环境中的keytool命令生成。以下是windows平台生成证书的方法:

  • 安装JRE(JAVA)环境(推荐使用JRE8环境,如已有可跳过)
  • 这里就不做过多说明,可参考: JAVA环境变量配置

  • 生成签名证书
  • 使用keytool -genkey命令生成证书:

    keytool -genkey -alias llsydn -keyalg RSA -keysize 2048 -validity 36500 -keystore llsydn.keystore
    

    -alias llsydn:是证书别名,可修改为自己想设置的字符,建议使用英文字母和数字

    llsydn.keystore:是证书文件名称,可修改为自己想设置的文件名称,也可以指定完整文件路径

    -validity 36500:是证书的有效期,表示100年有效期,单位天,建议时间设置长一点,避免证书过期

    回车后会提示:

    Enter keystore password:  //输入证书文件密码,输入完成回车  
    Re-enter new password:   //再次输入证书文件密码,输入完成回车  
    What is your first and last name?  
      [Unknown]:  //输入名字和姓氏,输入完成回车  
    What is the name of your organizational unit?  
      [Unknown]:  //输入组织单位名称,输入完成回车  
    What is the name of your organization?  
      [Unknown]:  //输入组织名称,输入完成回车  
    What is the name of your City or Locality?  
      [Unknown]:  //输入城市或区域名称,输入完成回车  
    What is the name of your State or Province?  
      [Unknown]:  //输入省/市/自治区名称,输入完成回车  
    What is the two-letter country code for this unit?  
      [Unknown]:  //输入国家/地区代号(两个字母),中国为CN,输入完成回车  
    Is CN=XX, OU=XX, O=XX, L=XX, ST=XX, C=XX correct?  
      [no]:  //确认上面输入的内容是否正确,输入y,回车  
    Enter key password for <testalias>  
            (RETURN if same as keystore password):  //确认证书密码与证书文件密码一样(HBuilder|HBuilderX要求这两个密码一致),直接回车就可以
    

    以上命令运行完成后就会生成证书,路径为“D:\llsydn.keystore”。

    注意:上述信息填写要规范,乱填有可能会影响应用上架应用市场。

  • 查看证书信息
  • 可以使用以下命令查看:

    keytool -list -v -keystore llsydn.keystore  
    Enter keystore password: //输入密码,回车
    

    会输出以下格式信息:

    Keystore type: PKCS12    
    Keystore provider: SUN    
    Your keystore contains 1 entry    
    Alias name: llsydn    
    Creation date: 2023-6-1   
    Entry type: PrivateKeyEntry    
    Certificate chain length: 1    
    Certificate[1]:    
    Owner: CN=xxxx, OU=xxxx, O=xxxx, L=xx, ST=xx, C=xx    
    Issuer: CN=xxxx, OU=xxxx, O=xxxx, L=xx, ST=xx, C=xx    
    Serial number: 7dd12840    
    Certificate fingerprints:    
             MD5:  xx:xx:xx:xxx   
             SHA1: xx:xx:xx:xxx   
             SHA256: xx:xx:xx:xxx   
    Version: 3
    

    其中证书指纹信息(Certificate fingerprints):

    证书的MD5指纹信息(安全码MD5) 证书的SHA1指纹信息(安全码SHA1)
  • SHA256 证书的SHA256指纹信息(安全码SHA245)
  • 1.3、apk加固加签

    这里使用360加固保

    工具下载地址:windows下载

    下载完成后,可以直接解压使用。360jiagubao_windows_64.zip

    自己注册账号,即可使用。

    177****9547/123456

    135****4606/123456

    注意:未实名认证,每天加固的次数有限,这里建议谨慎使用,以免次数用完,导致当天无法加固。

    添加应用,即可帮我们进行apk的加固。

    由于加固的过程中,会将原来apk的签名删了,所以这里加固完成后,需要重新加签。

    方式一:jarsigner

    jarsigner 是 JDK 提供的针对 jar 包签名的工具,如果你本地已经安装了 Java 环境,会自带 jarsigner 。

    jarsigner 只支持v1 签名。(有些应用市场上架需要v1、v2的话,需要使用方式二)

    jarsigner -verbose -keystore llsydn.keystore -signedjar llsydn-jiagu-pre.apk llsydn-jiagu-next.apk llsydn
    

    -keystore jupiter.jks:原来apk的证书文件

    -signedjar 加固后.apk 加固前.apk:需要加固的apk和输出的apk目录

    jupiter:证书别名

    方式二:apksigner

    apksigner 默认同时支持 v1 和 v2 签名。

    apksigner 不是内部或外部命令,也不是可运行的程序

    如果没有apksigner,这里提供一个下载地址:apksigner加签工具

    使用v1、v2、v3进行签名

    apksigner.bat sign --v1-signing-enabled true --v2-signing-enabled true --v3-signing-enabled true --ks llsydn.keystore --ks-key-alias llsydn llsydn-jiagu-next.apk
    

    apksigner.bat: apksigner加签工具

    --ks jupiter.jks:证书文件

    --ks-key-alias jupiter:证书别名

    llsydn-jiagu-next.apk:需要签名apk,最后输出的也是这个(覆盖)

    会发现多了一个后辍名为 .idsig 的,这个可以不用处理,直接删掉也没问题。

    除了这个外,你会发现并没有新生成一个 Apk 文件,这是因为 apksigner 是直接对未签名的 Apk 包进行签名。

    我们用 apksigner verify -verbose -print-certs 命令查看 llsydn-jiagu-next.apk 是否有签名

    apksigner verify -verbose -print-certs llsydn-jiagu-next.apk
    

    可以看到已经使用了v1、v2、v3签名成功。

    查看apk的签名信息?

    keytool -printcert -jarfile llsydn-jiagu-next.apk
    

    对比加固后apk签名是否一致即可。

    1.4、apk其他说明

  • ApkToolkit安卓反编译工具测试。
  • ApkToolkit安卓反编译工具android反编译apk常用工具判断apk是否加固或混淆

  • 计算apk的md5
  • 文件md5在线计算

  • 小米技术支持
  • 应用签名文档

    乐固、360加固在android 11 上报错,无法安装

    将目标SDK修改的低于30 即可

    我这边是修改成29,来处理了这个问题;

    cpu类型

    小米应用市场,需要提交32位,64位的apk包,这里打包做个兼容即可,同时支持32位,和64位,就不需要打两个apk包了。

  • armeabi-v7a
    第7代及以上的ARM处理器(ARM32位),市面上大多数手机使用此CPU类型。
  • arm64-v8a
    第8代、64位ARM处理器(ARM64位),最近两年新发的设备使用此CPU类型,可以兼容使用armeabi-v7a的so库。
  • 好了,以上就是我个人的实操了。可能有些不对,大家伙,轻点喷!!!

    个人理解,可能也不够全面,班门弄斧了。

    好了,今天就先到这里了!!!^_^

    如果觉得有收获的,帮忙点赞、评论、收藏一下,再走呗!!!

    image.png

    分类:
    前端
  •