美文网首页
Android系统权限签名

Android系统权限签名

作者: 段子周 | 来源:发表于2020-12-08 08:57 被阅读0次

    让apk拥有系统权限签名有两种方法

    1. 用系统签名文件进行签名

    java -jar signapk.jar platform.x509.pem platform.pk8 input.apk output.apk

    具体在一个linux环境的AOSP中命令(路径中可以可以看到上述命令相关文件的路径,命令执行路径为你AOSP源码根路径

    java -jar out/host/linux-x86/framework/signapk.jar build/target/product/security/media.x509.pem build/target/product/security/media.pk8 input.apk output.apk

    然后在Android8.0之后(拾人牙慧,自己没有查到官方说明和原因),直接运行上述命令可能会报错,报错使用如下命令即可(多了参数指定库路径-Djava.library.path=out/host/linux-x86/lib64

    java -Djava.library.path=out/host/linux-x86/lib64 -jar out/host/linux-x86/framework/signapk.jar build/target/product/security/media.x509.pem build/target/product/security/media.pk8 input.apk output.apk

    2. 生成系统签名文件 .jks(java keystore)

    进入AOSP源码编译路径build/target/product/security

    • 运行如下命令,生成platform.pem

    openssl pkcs8 -inform DER -nocrypt -in platform.pk8 -out platform.pem

    • 运行如下命令,生成platform.p12mypassword是jks签名会用到的密码, myname是jks的alias名

    openssl pkcs12 -export -in platform.x509.pem -out platform.p12 -inkey platform.pem -password pass:mypassword -name myname

    • 运行如下命令,生成myplatform.jks

    keytool -importkeystore -deststorepass mypassword -destkeystore myplatform.jks -srckeystore platform.p12 -srcstoretype PKCS12 -srcstorepass mypassword

    • myplatform.jks就可以在android studio中配置使用了
    signingConfigs {
        main {
            storeFile file(".myplatform.jks")
            storePassword "mypassword"
            keyAlias "myname"
            keyPassword "mypassword"
        }
    }
    

    就酱, Good Day~

    相关文章

      网友评论

          本文标题:Android系统权限签名

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