android 替换 系统签名,AOSP系统签名的生成以及替换

一、简述

首先,我们先了解一下签名的类型有哪些?

Android标准签名key文件位于源码/build/target/product/security目录下,四组默认签名供Android.mk在编译APK使用。主要有4个key:

testkey:普通签名APK,默认情况下使用。

platform:该APK完成一些系统的核心功能。经过对系统中存在的文件夹的访问测试,这种方式编译出来的APK所在进程的UID为system。

shared:该APK需要和home/contacts进程共享数据。

media:该APK是media/download系统中的一环。

应用程序的Android.mk中有一个LOCAL_CERTIFICATE字段,由它指定哪个key签名,未指定的默认用testkey.

build/target/product/security目录下查看:

mo@ubuntu:~/AOSP/android6.0/build/target/product/security$ ls

Android.mk platform.x509.pem testkey.pk8 verity.x509.pem

media.pk8 README testkey.x509.pem

media.x509.pem shared.pk8 verity_key

platform.pk8 shared.x509.pem verity.pk8

.pk8代表私钥,.x509.pem公钥,它们都是成对出现;

testkey是作为android编译的时候默认的签名key,如果系统中的apk的Android.mk中没有设置LOCAL_CERTIFICATE的值,就默认使用testkey。

而如果设置成:

LOCAL_CERTIFICATE := platform

就代表使用platform来签名,这样的话这个apk就拥有了和system相同的签名,因为系统级别的签名也是使用的platform来签名,此时使用android:sharedUserId="android.uid.system"才有用!

二、自定义签名

1.key生成签名

在/build/target/product/security目录下有个README,里面说明了怎么制作这些key以及使用

For detailed information on key types and image signing, please see:

https://source.android.com/devices/tech/ota/sign_builds.html

The test keys in this directory are used in development only and should

NEVER be used to sign packages in publicly released images (as that would

open a major security hole).

key generation

--------------

The following commands were used to generate the test key pairs:

development/tools/make_key testkey '/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com'

development/tools

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值