美文网首页Android安全
Android之平台签名

Android之平台签名

作者: 锄禾豆 | 来源:发表于2021-09-22 21:16 被阅读0次

    源码

    7.1
    
    build\target\product\security
    README
    
    development\tools
    make_key
    

    简介

    系统编译过程涉及对app签名,或者重新签名,亦或者对系统升级包签名。签名文件的私钥和证书制作采用openSSL方案。我们常用的签名文件如platform,这是本文章的重点介绍对象,由此可以拓展其他类型。
    

    问题

    1.怎么制作platform.pk8和platform.x509.pem?

    1.查看README
    build\target\product\security
    README
    
    2.执行脚本,生成platform
    development/tools/make_key platform '/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com'
    
    3.详细介绍'/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com'代表意思
    
    C ---> Country Name (2 letter code)
    ST ---> State or Province Name (full name)
    L ---> Locality Name (eg, city)
    O ---> Organization Name (eg, company)
    OU ---> Organizational Unit Name (eg, section)
    CN ---> Common Name (eg, your name or your server’s hostname)
    emailAddress ---> Contact email address
    
    例如可以自定义
    '/C=ZH/ST=GUANGDONG/L=SHENZHEN/O=GalanzOS/OU=GalanzOS IOT/CN=GalanzOS IOT/emailAddress=galanz@galanz.com'
    

    2.怎么通过platform生成Android Studio可用的jks签名文件?

    1.原理主要运行openssl和keytool工具生成对应的密钥,实现方案可用采用开源的项目(https://github.com/getfatday/keytool-importkeypair)
    
    2.这里我们主要讲解开源项目的运用
    keytool-importkeypair -k ~/.android/galanzos.jks -p galanzos -pk8 platform.pk8 -cert platform.x509.pem -alias galanzos
    
    -k jks生成的路径
    -p 签名密码
    -pk8 签名私钥。例如platform.pk8
    -cert 签名证书。例如platform.x509.pem
    -alias jks的别名
    

    3.系统怎么更改platform涉及的签名文件?

    最原始和安全的有效方法,替代build\target\product\security中platform.pk8/platform.x509.pem/platform.pem
    
    注意platform.pem的生成规则,可用查看README的方案:
    openssl pkcs8 -inform DER -nocrypt -in testkey.pk8 -out testkey.pem
    

    4怎么查看jks以及apk的签名信息?

    查看jks证书信息
    keytool -list -v -keystore xxx.jks
    
    查看apk的签名信息
    keytool -printcert -jarfile  xxx.apk
    

    5.系统的releasekey怎么创建导入?

    1.创建自己的releasekey
    2.mk中引入,例如:
    PRODUCT_DEFAULT_DEV_CERTIFICATE := build/target/product/security/galanzos/releasekey
    

    参考学习

    https://source.android.com/devices/tech/ota/sign_builds.html
    https://github.com/getfatday/keytool-importkeypair
    

    相关文章

      网友评论

        本文标题:Android之平台签名

        本文链接:https://www.haomeiwen.com/subject/qibggltx.html