gpt4 book ai didi

android - Android 在最终的 Android 操作系统镜像中将平台、共享、媒体和发布 key 存储在哪里

转载 作者:行者123 更新时间:2023-12-02 02:45:43 28 4
gpt4 key购买 nike

有谁知道用于签名的公钥(平台、共享、媒体和发布 key )存储在最终生成的 Android 操作系统镜像中的何处?

“对发布版本进行签名”( https://source.android.com/devices/tech/ota/sign_builds ) 页面提供有关如何对 Android 操作系统镜像进行签名的信息。

标准 Android 构建使用四个 key ,所有这些 key 都位于 build/target/product/security 中:

testkey:未指定 key 的包的通用默认 key 。用于开发构建

releasekey:未指定 key 的包的通用默认 key 。用于发布版本

平台:属于核心平台的软件包的测试 key 。

共享:测试家庭/联系人进程中共享的内容的 key 。

媒体:作为媒体/下载系统一部分的包的测试 key 。

与上述私钥关联的公钥(releasekey.x509.pem、platform.x509.pem、shared.x509.pem、media.x509.pem)需要包含在 Android 镜像中。这些是作为构建过程的一部分提供的,通常存储在用于构建 Android 操作系统镜像的主机上的 build/target/product/security 中但是,没有提供用于签名的公钥在生成的操作系统镜像中的位置。

例如,当使用 dm-verity 时,libmincrypt 兼容格式的 RSA-2048 key 存储在/boot 分区的/verity_key 中。

最佳答案

它们不是直接存储的,而是作为签名 apk 的一部分存储的,而签名 apk 已经是系统镜像的一部分。 PackageManager 解析它们并将它们存储在/data/system/packages.xml

在该 xml 中,您会看到如下标签:公钥标识符

其中包含所有apk的公钥。如果您的设备上已经有一些 apk,您可以将其解压缩。

//从apk中获取公钥

openssl pkcs7 -inform DER -print_certs -out cert.pem -in CERT.RSA
openssl x509 -in cert.pem -pubkey -noout

这将与packages.xml中存储的公钥之一相同

除此之外,设备中的 /etc/security/mac_permissions.xml 还存在一些签名,可以告诉具有以下特定签名的应用程序到特定的 SE 上下文。您可以在以下位置阅读其详细信息 http://androidxref.com/7.1.1_r6/xref/system/sepolicy/README

OTA 证书存储在 /etc/security/otacerts.zip 中,供恢复系统使用。

关于android - Android 在最终的 Android 操作系统镜像中将平台、共享、媒体和发布 key 存储在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56222616/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com