如何用Android 源码生成APK签名文件

如何用Android 源码生成签名文件

我们很多应用需要用到系统签名,可以通过生成系统签名文件,在生成apk时使用这个签名,然后可以安装到机器中,不需要放在源码里编译,重新刷系统。

android :sharedUserId="android.uid.system"

先附上Y50和Y20机器人通用的debugkey(图已经省略)

以platform为例

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

cd build/target/product/security/
----------------------------------
drwxrwxr-x 2 root root 4096 Apr 16 09:38 ./
drwxrwxr-x 3 root root 4096 Apr 16 09:38 ../
-rw-rw-r-- 1 root root  260 Apr 16 09:38 Android.mk
-rw-rw-r-- 1 root root 1675 Apr 16 09:38 media.pem
-rw-rw-r-- 1 root root 1217 Apr 16 09:38 media.pk8
-rw-rw-r-- 1 root root 1440 Apr 16 09:38 media.x509.pem
-rwxrwxr-x 1 root root  539 Apr 16 09:38 mkkey.sh*
-rw-rw-r-- 1 root root 1675 Apr 16 09:38 platform.pem
-rw-rw-r-- 1 root root 1216 Apr 16 09:38 platform.pk8
-rw-rw-r-- 1 root root 1440 Apr 16 09:38 platform.x509.pem
-rw-rw-r-- 1 root root 1758 Apr 16 09:38 README
-rw-rw-r-- 1 root root 1679 Apr 16 09:38 shared.pem
-rw-rw-r-- 1 root root 1218 Apr 16 09:38 shared.pk8
-rw-rw-r-- 1 root root 1440 Apr 16 09:38 shared.x509.pem
-rw-rw-r-- 1 root root 1675 Apr 16 09:38 testkey.pem
-rw-rw-r-- 1 root root 1216 Apr 16 09:38 testkey.pk8
-rw-rw-r-- 1 root root 1440 Apr 16 09:38 testkey.x509.pem
-rw-rw-r-- 1 root root  524 Apr 16 09:38 verity_key
-rw-rw-r-- 1 root root 1219 Apr 16 09:38 verity.pk8
-rw-rw-r-- 1 root root 1444 Apr 16 09:38 verity.x509.pem

其中的platform.pk8是制作系统签名需要的文件。

1、在这个目录下,执行

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

生成临时文件platform.pem

2、接着执行以下命令,将在目录下生成platform.p12文件,它本质上应该就是一个数字证书

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

3、然后再执行以下命令出现以下信息,表示成功生成platform.jks

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

这个名字可以改成debug.keystore. 它的后缀本身是没有关系,eclipse和AS都识别 platform.jks

4、然后在打包 apk 的时候选择platform.jks文件,就可以直接用adb命令安装apk到机器中了。

adb install xxxx

xxxx表示需要安装的apk路径

5、签名的 Key store password和Key password都是android

你可能感兴趣的:(Android)