ANDROID Porting系列四、建立公开密钥和签名生成

简介

生成密钥

签名生成发布

介绍

    Android 要求每个应用与开发者的数字签名密钥签署的执行权限和应用程序要求使用共享的用户ID或目标的过程。欲了解更多有关机器人安全的一般原则和签名要求,请参阅Android的安全和权限的Android开发指南一节。 Android平台的核心采用4个关键点来保持安全的核心平台组件:

•平台:一个软件包是核心平台的一部分关键。

•分享:一个是在家庭中共享/接触过程中的事情的关键。

•媒体:一个软件包的一部分是媒体/下载系统的关键。

releasekey:默认的关键,如果不另有规定

    这些密钥用于签名的申请与release Image分离,在Android编译系统i不使用签名的。Build系统提供签名的testkeys build/target/product/security/。由于testkeys是标准的Android开源分配部分,他们不应该被用于生产设备。相反,设备制造商应为shipping release builds生成pravite密钥,

生成密钥

    每个产品的设备制造商的密钥必须存放在vendor/<vendor_name>/security/<product_name> 其中<vendor_name><product_name>代表的制造商和产品名称。为了简化密钥创建,复制一个文件名为mkkey.sh下面的脚本来此目录。要自定义密钥,更改AUTH开始的行来反映贵公司的正确的信息:

#!/bin/sh
AUTH='/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/[email protected]'
if [ "$1" == "" ]; then
        echo "Create a test certificate key."
        echo "Usage: $0 NAME"
        echo "Will generate NAME.pk8 and NAME.x509.pem"
        echo "  $AUTH"
        exit
fi
 
openssl genrsa -3 -out $1.pem 2048
 
openssl req -new -x509 -key $1.pem -out $1.x509.pem -days 10000 /
    -subj "$AUTH"
 
echo "Please enter the password for this key:"
openssl pkcs8 -in $1.pem -topk8 -outform DER -out $1.pk8 -passout stdin

mkkey. mkkey.sh是一个帮助脚本来生成平台的密钥。注意:您输入的密码将在您的终端窗口可见。请注意您使用的密码,你会需要他们签署发布版本。

    要生成所需的4平台的密钥,运行mkkey.sh四次指定为每个key name和密码:

sh mkkey.sh platform # enter password
sh mkkey.sh media # enter password
sh mkkey.sh shared # enter password
sh mkkey.sh release # enter password

你现在应该有你的产品的新密钥。

签署建立发布

签署建立一个版本是一个两步的过程。

  1。签署的所有建立单独的部分。

  2。把零件组合成Image文件。

签名APP

    使用build/tools/releasetools/sign_target_files_apks签署target_files包。该target_files包默认情况下不建,当你调用make你需要确保指定的"dist"的目标。例如:example:

make -j4 PRODUCT-<product_name>-user dist

上面的命令下创建文件在out/dist 称为<product_name> - target_files.zip。这是您需要的文件传递给sign_target_files_apksscript

通常你会这样运行脚本:

./build/tools/releasetools/sign_target_files_apks -d vendor/<vendor_name>/security/<product_name> <product_name>-target_files.zip signed-target-files.zip

  如果你有prebuiltpre-signed,你不想re-signed apk,你必须明确地忽略它们加入-e Foo.apk= 到每个硬软件你想忽略命令行。

sign_target_files_apks也有很多其他选项,可用于signing release builds。运行它与 -h 的作为唯一的选项来查看完整的帮助。

创建image文件

  一旦你有signed-target-files.zip,创建的image,因此您可以下面的命令把它放到设备上:

build/tools/releasetools/img_from_target_files signed-target-files.zip signed-img.zip

signed-img.zip包含所有.img文件。你可以使用fastboot更新signed-img.zip, 以便使用fastboot在设备上获取.img文件。

你可能感兴趣的:(android,image,制造,脚本,平台,产品)