系统默认的四种签名类型:
四组默认签名供Android.mk在编译APK使用:
1、testkey:普通APK,默认情况下使用。
2、platform:该APK完成一些系统的核心功能。经过对系统中存在的文件夹的访问测试,这种方式编译出来的APK所在进程的UID为system。
3、shared:该APK需要和home/contacts进程共享数据。
4、media:该APK是media/download系统中的一环。
应用程序的Android.mk中有一个LOCAL_CERTIFICATE字段,由它指定用哪个key签名,未指定的默认用testkey.
系统默认的四种签名类型文件的位置:
$ls build/target/product/security/
Android.mk platform.pk8 shared.pk8 testkey.x509.pem verity.x509.pem
media.pk8 platform.x509.pem shared.x509.pem verity_key
media.x509.pem README testkey.pk8 verity.pk8
pk8的是对应签名的私钥,x509的包含了公钥的证书,verify.xxx的是用于启动时判别system.img是否被修改过的(pk8/x509同前,verify_key是对system.img进行dm venity的公钥)。
关于verified boot,可参考:http://luomingmao.com/2016/08/29/Verified-Boot/
签名命令:platform为例
java -jar signapk.jar platform.x509.pem platform.pk8 old.apk new.apk
其中 signapk.jar : out/host\linux-x86\framework/ 下