Android.mk 中 LOCAL_CERTIFICATE 个值之间的差异

Difference between LOCAL_CERTIFICATE values in Android.mk

变量LOCAL_CERTIFICATE的不同值有什么区别?

我知道平台和共享的两个价值观。 Android 构建系统中的其他可能值是什么?它如何影响我们应用程序的行为。

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES := $(call all-java-files-under, src)

LOCAL_PACKAGE_NAME := abc
LOCAL_CERTIFICATE := shared

LOCAL_JNI_STATIC_LIBRARIES := abcjni

LOCAL_PROGUARD_ENABLED := disabled

include $(BUILD_PACKAGE)

include $(call all-makefiles-under,$(LOCAL_PATH))

除了值platformshared,还有另外两个值mediareleasekey。以下列表说明了它们的差异,这些差异是从 Android 构建系统从 here.

复制而来的
  • 平台:作为核心平台一部分的包的密钥。
  • 共享:在 home/contacts 进程中共享的事物的密钥。
  • 媒体:属于media/download系统的软件包的密钥。
  • releasekey:如果没有另外指定,默认的签名密钥

这些是Android安全系统使用的签名,以确保系统安全的核心组件和框架在制造商的控制之下。

我上面给出的关于Android构建系统的link不是官方的,但是很好material作为参考。

更新:
您还可以将 LOCAL_CERTIFICATE 设置为 PRESIGNED,这会告诉签名脚本此 APK 已签名且不应再次签名。