Android studio 自动生成带系统权限的apk

    • 在Linux环境中以Android源码目录为根目录
    • 生成临时文件platformpem
    • 在目录下生成platformp12文件它本质上应该就是一个数字证书
    • 生成 eclipse和AS都识别 platformjks
    • 配置gradleapp
    • 参考链接

1 在Linux环境中,以Android源码目录为根目录

cd build/target/product/security/

2. 生成临时文件platform.pem

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

3. 在目录下生成platform.p12文件,它本质上应该就是一个数字证书。

脚本如下:
openssl pkcs12 -export -in platform.x509.pem -out platform.p12 -inkey platform.pem -password pass:[jks的别名的密码] -name [jks的别名]

解释一下参数的意思:
1. -export:这个选项指定了一个PKCS#12文件将会被创建。
2. -in filename:指定私钥和证书读取的文件,默认为标准输入。必须为PEM格式。
3. -out filename:指定输出的pkcs12文件,默认为标准输出。

  1. -inkey filename:指定私钥文件的位置。如果没有被指定,私钥必须在-in filename中指定。
  2. -name name:指定证书以及私钥的友好名字。当用软件导入这个文件时,这个名字将被显示出来。

例如我的

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

5. 生成 eclipse和AS都识别 platform.jks

脚本如下
keytool -importkeystore -deststorepass [jks的密码] -destkeystore ./[jks文件] -srckeystore ./platform.p12 -srcstoretype PKCS12 -srcstorepass [jks的别名的密码]

解释一下参数的意思:

  1. -destkeystore <目标密钥库>
  2. -deststorepass <目标存储库口令>
  3. -srckeystore <源密钥库>
  4. -srcstoretype <源存储类型>
  5. -srcstorepass <源存储库口令>

例如我的脚本:

keytool -importkeystore -deststorepass 123456 -destkeystore ./hoyouly.jks -srckeystore ./platform.p12 -srcstoretype PKCS12 -srcstorepass 123456

6 配置gradle(app)

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "com.hoyouly.demo"
        minSdkVersion 15
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    signingConfigs {
        release {
            storeFile file("../SignAPK/hoyouly.jks")  //相对于本文件的路径
            storePassword '123456'  //密码
            keyAlias 'hoyouly' //别名
            keyPassword '123456'    //别名密码
        }

        debug {
            storeFile file("../SignAPK/hoyouly.jks")
            storePassword '123456'
            keyAlias 'hoyouly'
            keyPassword '123456'
        }
    }
}

参考链接

  • http://blog.csdn.net/as3luyuan123/article/details/16105475
  • http://blog.csdn.net/u013338165/article/details/39973655
  • http://blog.csdn.net/huil0925/article/details/51554208
  • http://blog.csdn.net/cxq234843654/article/details/51557025

你可能感兴趣的:(Android,技术小结)