AndroidStudio 添加系统签名

在做 Android 系统定制时,开发自家的 APP,可能会需要使用到一些特殊的权限,系统相关的 API 等等。因此,APP 自身需要有系统签名才能使用这些权限和 API。那我们要怎么获取系统签名,并给 APP 签上系统签名呢?下面讲解三种签名方式。

第一种:系统编译签名

在相应 APP 工程目录的mk文件中,添加下面这句话即可:

...
LOCAL_CERTIFICATE := platform
...

第二种:signapk 签名

signapk 签名方式就是把一个 apk 用新的签名文件重新签名生成一个新的签名 apk。

java -jar signapk.jar platform.x509.pem platform.pk8 *.apk *new.apk

其中,signapk.jar,platform.x509.pem 和 platform.pk8保存在系统中的路径如下:

/build/make/target/product/security/platform.x509.pem
/build/make/target/product/security/platform.pk8
/out/host/linux-x86/framework/signapk.jar

第三种:AndroidStudio 签名

  • 下载 keytool-importkeypair

下载 keytool-importkeypair 这个脚本文件。

  • 生成签名文件

在 Linux 环境使用如下命令:

keytool-importkeypair -k platform.keystore -p android -pk8 platform.pk8 -cert platform.x509.pem -alias platform

执行上面命令后,就会生成一个 platform.keystore 的系统签名文件。有了这个系统签名文件后,我们就可以用 AndroidStudio 来签名啦!找到 APP 的 build.gradle,并添加如下代码,就可以在我们调试的时候自带系统签名啦,不用再做额外的动作省时省力。

  • 修改 build.gradle

build.gradle

signingConfigs {
    platform {
        //签名文件的路径
        storeFile file('***\\platform.keystore')
        storePassword 'android'
        keyAlias = 'platform'
        keyPassword 'android'
    }
}

buildTypes {
    ...
    debug {
        signingConfig signingConfigs.platform
    }
}

后面我们直接 run 就可以生成带系统签名的 apk 啦!

总结

前面讲了三种签名方法,前面两种都不方便我们平时调试的时候使用,如果要调试下 APP,要么编译下源码,要么生成APK,在用命令的方式重新签名,都不方便,且费时。通过 AndroidStudio 直接签名的方式,可以为我们开发系统级应用节省不少时间。所以,大家在做系统级应用开发的时候,能用第三种,最好还是使用第三种。

你可能感兴趣的:(android之路)