Android OTA releasekey 替换
在Amlogic T950平台上用公司的OTA 签名key替换Android默认的testkey,过程记录如下:
1.生成key
系统默认的key如下,首先需要产生以下4种我们项目自己的OTA签名key文件,每一种类型的key都是成对生成的,.509.pem后缀名的是公钥,.pk8后缀名的是私钥。
testkey -- a generic key for packages that do not otherwise specify a key.
platform -- a test key for packages that are part of the core platform.
shared -- a test key for things that are shared in the home/contacts process.
media -- a test key for packages that are part of the media/download system.
Android 源码包里面提供了生成key的工具,development/tools/make_key, 命令如下:
./make_key releasekey '/C=CN/ST=ShangHai/L=ShangHai/O=XXX/OU=XXX/CN=XXXV/emailAddress=XXX' rsa
./make_key platform '/C=CN/ST=ShangHai/L=ShangHai/O=XXX/OU=XXX/CN=XXXV/emailAddress=XXX' rsa
./make_key shared '/C=CN/ST=ShangHai/L=ShangHai/O=XXX/OU=XXX/CN=XXXV/emailAddress=XXX' rsa
./make_key media '/C=CN/ST=ShangHai/L=ShangHai/O=XXX/OU=XXX/CN=XXXV/emailAddress=XXX' rsa
将XXX替换为自己公司信息。
生成文件如下:
media.pk8 media.x509.pem platform.pk8 platform.x509.pem
releasekey.pk8 releasekey.x509.pem shared.pk8 shared.x509.pem
将生成的key 文件放到项目相关的目录下,针对Amlogic项目放到device/amlogic/p341/sign_keys。这样我们公司的key就生成了。
2.更改编译规则,使编译过程中使用我们新生成的key对OTA进行签名
首先在build/core/Makefile里搜索testkey, 查看testkey是怎么用到编译系统的,看到如下编译选项:
ifeq ($(DEFAULT_SYSTEM_DEV_CERTIFICATE),build/target/product/security/testkey)
BUILD_KEYS := test-keys
else
BUILD_KEYS := dev-keys
endif
继续查看DEFAULT_SYSTEM_DEV_CERTIFICATE,可以看到在build/core/config.mk文件里有如下:
# The default key if not set as LOCAL_CERTIFICATE
ifdef PRODUCT_DEFAULT_DEV_CERTIFICATE
DEFAULT_SYSTEM_DEV_CERTIFICATE := $(PRODUCT_DEFAULT_DEV_CERTIFICATE)
else
DEFAULT_SYSTEM_DEV_CERTIFICATE := build/target/product/security/testkey
endif
因此要想使用releasekey,只需要指定PRODUCT_DEFAULT_DEV_CERTIFICATE的值即可,因此在device/amlogic/p341/p341.mk中指定项目特定变量
PRODUCT_DEFAULT_DEV_CERTIFICATE := device/amlogic/p341/sign_keys/releasekey
同时在根据规则,在build/core/Makefile改动如下:
ifeq ($(DEFAULT_SYSTEM_DEV_CERTIFICATE),device/amlogic/p341/sign_keys/releasekey)
BUILD_KEYS := release-keys
endif
这样在编译的最后阶段会使用我们的key对OTA包签名。
3. 补充
对于apk的签名,系统会根据apk里指定的key进行签名。如果系统中的apk的android.mk中没有设置LOCAL_CERTIFICATE的值,就默认使用testkey。
ifeq ($(LOCAL_CERTIFICATE),)
LOCAL_CERTIFICATE := $(DEFAULT_SYSTEM_DEV_CERTIFICATE)
endif
private_key := $(LOCAL_CERTIFICATE).pk8
certificate := $(LOCAL_CERTIFICATE).x509.pem
而如果设置成:
LOCAL_CERTIFICATE := platform
就代表使用platform来签名,这样的话这个apk就拥有了和system相同的签名
Android OTA releasekey 替换相关推荐
- android ota 版本校验,OTA升级签名校验简析
1. 概要 如果进行过OTA升级的开发者,都或多或少有这样的疑问,如何确定该OTA升级包是可以信任的呢?这其中其实涉及到一个签名验证的流程. 2. 签名生成 在生成正规的固件时,一般会运行生成新key ...
- Android OTA升级原理 - 实现流程(整理一)
Android OTA实现流程分析 OTA升级概述 制作升级包 自动生成update.zip升级包 手动生成update升级包 增量包目录结构 升级包写入设备分区 Android的三种工作模式 Rec ...
- android ota升级涉及的分区,Android OTA升级原理 - 实现流程(整理一)
Android OTA实现流程分析 OTA升级概述 制作升级包 自动生成update.zip升级包 手动生成update升级包 增量包目录结构 升级包写入设备分区 Android的三种工作模式 Rec ...
- Android用省略号替换“...”
本文翻译自:Android Replace "-" with ellipsis character Since AVD tools 16 I'm getting this warn ...
- 【转】Android OTA 升级之一:编译升级包
Android OTA 升级之一:编译升级包 作者: 宋立新 Email : zjujoe@yahoo.com 前言 OTA 升级是 Android 系统提供的标准软件升级方式. 它功能强大,提供了完 ...
- Android OTA 升级之三:生成recovery.img
Android OTA 升级之三:生成recovery.img 作者: 宋立新 Email:zjujoe@yahoo.com 前言 得到了ota升级包后,我们就可以用它来升级系统了.Android 手 ...
- Android OTA升级(1):编译升级全包
Android原生系统中就已经支持OTA升级.所谓OTA升级就是通过空中接口获取升级包,然后更新系统固件.一般地,升级包无论如何获取,哪怕是直接TCard本地升级,也被称为OTA升级. ...
- android OTA更新
Android OTA更新 Android设备可以接受和安装系统和应用软件的空中下载更新.设备有一个特殊的带有软件的recovery分区,该分区可以解压下载的更新包并且将他们应用到系 ...
- Android OTA升级原理和流程分析(五)---update.zip包从上层进入Recovery服务
转载自:http://blog.chinaunix.net/uid-22028566-id-3533854.html 文章开头我们就提到update.zip包来源有两种: 一个是OTA在线下载(一般下 ...
最新文章
- 我与编程:十载寒冰,难凉热血
- C++中 auto自动变量,命名空间,using作用以及作用域
- radiobutton怎么变成竖排_衣服如此凌乱?怎么能忍受的了?衣柜收纳,试试这些神器吧...
- manjaro linux 关机,给本子安装manjaro 出现无法关机的解决办法
- 用 Python 将 QQ 好友头像生成祝福语
- mysql insert
- 瑞芯微RK2918、全志A10和AML8726-M3方案ICS系统运行效果对比
- 5. 高性能MySQL --- 创建高性能索引
- AD09之与AD6版本使用不同对比
- 【天线的主要技术指标及其含义-带宽 】
- 400元DIY实现手机 笔记本 GPS导航
- 免费的 XShell 替代品,我推荐这5款软件,一个比一个香!
- android项目飞机大战,飞机大战android版源代码
- windows10 系统中,双屏下,设置各自屏的任务栏显示各自显示器中的任务。
- 三门问题详解(附C语言实现)
- 解决移动端,wap站,m站适配方案整理
- 全产业链落实循环减碳实践 宝马在华持续推进绿色转型
- 无意中发现我这个北漂的几张照片
- 使用小马哥win10 激活工具激活后, 桌面上经常出现一个广告快捷方式的 解决方法...
- ProCast导出节点应力数据并格式化