aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CleanSpec.mk3
-rw-r--r--core/app_certificate_validate.mk12
-rw-r--r--core/binary.mk278
-rw-r--r--core/definitions.mk3
-rw-r--r--core/main.mk7
-rw-r--r--core/package_internal.mk1
-rw-r--r--core/prebuilt_internal.mk2
-rw-r--r--core/product.mk2
-rw-r--r--core/product_config.mk5
-rw-r--r--core/soong_app_prebuilt.mk2
-rw-r--r--core/soong_config.mk3
-rw-r--r--target/product/base_system.mk6
-rw-r--r--target/product/handheld_system.mk2
13 files changed, 182 insertions, 144 deletions
diff --git a/CleanSpec.mk b/CleanSpec.mk
index b06a87b12..b32868eab 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -529,6 +529,9 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/bin/perfprofd)
529$(call add-clean-step, find system/app system/priv-app system/framework system_other -depth -type d -print0 | xargs -0 rmdir) 529$(call add-clean-step, find system/app system/priv-app system/framework system_other -depth -type d -print0 | xargs -0 rmdir)
530$(call add-clean-step, rm -f .d) 530$(call add-clean-step, rm -f .d)
531 531
532# Remove obsolete apps
533$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
534
532# ************************************************ 535# ************************************************
533# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST 536# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
534# ************************************************ 537# ************************************************
diff --git a/core/app_certificate_validate.mk b/core/app_certificate_validate.mk
new file mode 100644
index 000000000..15ddd9450
--- /dev/null
+++ b/core/app_certificate_validate.mk
@@ -0,0 +1,12 @@
1
2ifeq (true,$(filter true, \
3 $(LOCAL_PRODUCT_MODULE) $(LOCAL_PRODUCT_SERVICES_MODULE) \
4 $(LOCAL_VENDOR_MODULE) $(LOCAL_PROPRIETARY_MODULE)))
5 ifneq (,$(filter $(dir $(DEFAULT_SYSTEM_DEV_CERTIFICATE))%,$(LOCAL_CERTIFICATE)))
6 CERTIFICATE_VIOLATION_MODULES += $(LOCAL_MODULE)
7 ifeq (true,$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_ENFORCE_ARTIFACT_SYSTEM_CERTIFICATE_REQUIREMENT))
8 $(if $(filter $(LOCAL_MODULE),$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_ARTIFACT_SYSTEM_CERTIFICATE_REQUIREMENT_WHITELIST)),,\
9 $(call pretty-error,The module in product partition cannot be signed with certificate in system.))
10 endif
11 endif
12endif \ No newline at end of file
diff --git a/core/binary.mk b/core/binary.mk
index e7b0c52d6..be10c2d37 100644
--- a/core/binary.mk
+++ b/core/binary.mk
@@ -72,6 +72,9 @@ endif
72else 72else
73 my_native_coverage := false 73 my_native_coverage := false
74endif 74endif
75ifneq ($(NATIVE_COVERAGE),true)
76 my_native_coverage := false
77endif
75 78
76ifeq ($(strip $(ENABLE_XOM)),true) 79ifeq ($(strip $(ENABLE_XOM)),true)
77 ifndef LOCAL_IS_HOST_MODULE 80 ifndef LOCAL_IS_HOST_MODULE
@@ -470,144 +473,6 @@ endif
470my_asflags += -D__ASSEMBLY__ 473my_asflags += -D__ASSEMBLY__
471 474
472########################################################### 475###########################################################
473## Define PRIVATE_ variables from global vars
474###########################################################
475ifndef LOCAL_IS_HOST_MODULE
476ifdef LOCAL_USE_VNDK
477my_target_global_c_includes := \
478 $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_INCLUDES)
479my_target_global_c_system_includes := \
480 $(TARGET_OUT_HEADERS) \
481 $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_SYSTEM_INCLUDES)
482else ifdef LOCAL_SDK_VERSION
483my_target_global_c_includes :=
484my_target_global_c_system_includes := $(my_ndk_stl_include_path) $(my_ndk_sysroot_include)
485else ifdef BOARD_VNDK_VERSION
486my_target_global_c_includes := $(SRC_HEADERS) \
487 $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_INCLUDES) \
488 $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_INCLUDES)
489my_target_global_c_system_includes := $(SRC_SYSTEM_HEADERS) \
490 $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_SYSTEM_INCLUDES) \
491 $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_SYSTEM_INCLUDES)
492else
493my_target_global_c_includes := $(SRC_HEADERS) \
494 $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_INCLUDES) \
495 $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_INCLUDES)
496my_target_global_c_system_includes := $(SRC_SYSTEM_HEADERS) $(TARGET_OUT_HEADERS) \
497 $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_SYSTEM_INCLUDES) \
498 $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_SYSTEM_INCLUDES)
499endif
500
501my_target_global_cflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_CFLAGS)
502my_target_global_conlyflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_CONLYFLAGS) $(my_c_std_conlyflags)
503my_target_global_cppflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_CPPFLAGS) $(my_cpp_std_cppflags)
504ifeq ($(my_use_clang_lld),true)
505 my_target_global_ldflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_LLDFLAGS)
506 include $(BUILD_SYSTEM)/pack_dyn_relocs_setup.mk
507 ifeq ($(my_pack_module_relocations),false)
508 my_target_global_ldflags += -Wl,--pack-dyn-relocs=none
509 endif
510else
511 my_target_global_ldflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_LDFLAGS)
512endif # my_use_clang_lld
513
514$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_GLOBAL_C_INCLUDES := $(my_target_global_c_includes)
515$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_GLOBAL_C_SYSTEM_INCLUDES := $(my_target_global_c_system_includes)
516$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_GLOBAL_CFLAGS := $(my_target_global_cflags)
517$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_GLOBAL_CONLYFLAGS := $(my_target_global_conlyflags)
518$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_GLOBAL_CPPFLAGS := $(my_target_global_cppflags)
519$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_GLOBAL_LDFLAGS := $(my_target_global_ldflags)
520
521else # LOCAL_IS_HOST_MODULE
522
523my_host_global_c_includes := $(SRC_HEADERS) \
524 $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_INCLUDES)
525my_host_global_c_system_includes := $(SRC_SYSTEM_HEADERS) \
526 $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_SYSTEM_INCLUDES)
527
528my_host_global_cflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_CFLAGS)
529my_host_global_conlyflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_CONLYFLAGS) $(my_c_std_conlyflags)
530my_host_global_cppflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_CPPFLAGS) $(my_cpp_std_cppflags)
531ifeq ($(my_use_clang_lld),true)
532 my_host_global_ldflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_LLDFLAGS)
533else
534 my_host_global_ldflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_LDFLAGS)
535endif # my_use_clang_lld
536
537$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_GLOBAL_C_INCLUDES := $(my_host_global_c_includes)
538$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_GLOBAL_C_SYSTEM_INCLUDES := $(my_host_global_c_system_includes)
539$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_HOST_GLOBAL_CFLAGS := $(my_host_global_cflags)
540$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_HOST_GLOBAL_CONLYFLAGS := $(my_host_global_conlyflags)
541$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_HOST_GLOBAL_CPPFLAGS := $(my_host_global_cppflags)
542$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_HOST_GLOBAL_LDFLAGS := $(my_host_global_ldflags)
543endif # LOCAL_IS_HOST_MODULE
544
545# To enable coverage for a given module, set LOCAL_NATIVE_COVERAGE=true and
546# build with NATIVE_COVERAGE=true in your enviornment. Note that the build
547# system is not sensitive to changes to NATIVE_COVERAGE, so you should do a
548# clean build of your module after toggling it.
549ifeq ($(NATIVE_COVERAGE),true)
550 ifeq ($(my_native_coverage),true)
551 # Note that clang coverage doesn't play nicely with acov out of the box.
552 # Clang apparently generates .gcno files that aren't compatible with
553 # gcov-4.8. This can be solved by installing gcc-4.6 and invoking lcov
554 # with `--gcov-tool /usr/bin/gcov-4.6`.
555 #
556 # http://stackoverflow.com/questions/17758126/clang-code-coverage-invalid-output
557 my_cflags += --coverage -O0
558 my_ldflags += --coverage
559 endif
560
561 my_coverage_lib := $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)LIBPROFILE_RT)
562
563 $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_COVERAGE_LIB := $(my_coverage_lib)
564 $(LOCAL_INTERMEDIATE_TARGETS): $(my_coverage_lib)
565else
566 my_native_coverage := false
567endif
568
569###########################################################
570## Define PRIVATE_ variables used by multiple module types
571###########################################################
572$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_NO_DEFAULT_COMPILER_FLAGS := \
573 $(strip $(LOCAL_NO_DEFAULT_COMPILER_FLAGS))
574
575ifeq ($(strip $(WITH_STATIC_ANALYZER)),)
576 LOCAL_NO_STATIC_ANALYZER := true
577endif
578
579ifneq ($(strip $(LOCAL_IS_HOST_MODULE)),)
580 my_syntax_arch := host
581else
582 my_syntax_arch := $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)
583endif
584
585ifeq ($(strip $(my_cc)),)
586 my_cc := $(my_cc_wrapper) $(CLANG)
587endif
588
589SYNTAX_TOOLS_PREFIX := \
590 $(LLVM_PREBUILTS_BASE)/$(BUILD_OS)-x86/$(LLVM_PREBUILTS_VERSION)/libexec
591
592ifneq ($(LOCAL_NO_STATIC_ANALYZER),true)
593 my_cc := CCC_CC=$(CLANG) CLANG=$(CLANG) \
594 $(SYNTAX_TOOLS_PREFIX)/ccc-analyzer
595endif
596
597$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_CC := $(my_cc)
598
599ifeq ($(strip $(my_cxx)),)
600 my_cxx := $(my_cxx_wrapper) $(CLANG_CXX)
601endif
602
603ifneq ($(LOCAL_NO_STATIC_ANALYZER),true)
604 my_cxx := CCC_CXX=$(CLANG_CXX) CLANG_CXX=$(CLANG_CXX) \
605 $(SYNTAX_TOOLS_PREFIX)/c++-analyzer
606endif
607
608$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_LINKER := $(my_linker)
609$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_CXX := $(my_cxx)
610
611# TODO: support a mix of standard extensions so that this isn't necessary 476# TODO: support a mix of standard extensions so that this isn't necessary
612LOCAL_CPP_EXTENSION := $(strip $(LOCAL_CPP_EXTENSION)) 477LOCAL_CPP_EXTENSION := $(strip $(LOCAL_CPP_EXTENSION))
613ifeq ($(LOCAL_CPP_EXTENSION),) 478ifeq ($(LOCAL_CPP_EXTENSION),)
@@ -1443,6 +1308,8 @@ normal_objects += $(addprefix $(TOPDIR)$(LOCAL_PATH)/,$(LOCAL_PREBUILT_OBJ_FILES
1443 1308
1444all_objects := $(normal_objects) $(gen_o_objects) 1309all_objects := $(normal_objects) $(gen_o_objects)
1445 1310
1311LOCAL_INTERMEDIATE_TARGETS += $(all_objects)
1312
1446# Cleanup file tracking 1313# Cleanup file tracking
1447$(foreach f,$(my_tracked_gen_files),$(eval my_src_file_gen_$(s):=)) 1314$(foreach f,$(my_tracked_gen_files),$(eval my_src_file_gen_$(s):=))
1448my_tracked_gen_files := 1315my_tracked_gen_files :=
@@ -1736,6 +1603,141 @@ endif
1736# (start-group/end-group), so append after the check above. 1603# (start-group/end-group), so append after the check above.
1737my_ldlibs += $(my_cxx_ldlibs) 1604my_ldlibs += $(my_cxx_ldlibs)
1738 1605
1606###########################################################
1607## Define PRIVATE_ variables from global vars
1608###########################################################
1609ifndef LOCAL_IS_HOST_MODULE
1610ifdef LOCAL_USE_VNDK
1611my_target_global_c_includes := \
1612 $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_INCLUDES)
1613my_target_global_c_system_includes := \
1614 $(TARGET_OUT_HEADERS) \
1615 $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_SYSTEM_INCLUDES)
1616else ifdef LOCAL_SDK_VERSION
1617my_target_global_c_includes :=
1618my_target_global_c_system_includes := $(my_ndk_stl_include_path) $(my_ndk_sysroot_include)
1619else ifdef BOARD_VNDK_VERSION
1620my_target_global_c_includes := $(SRC_HEADERS) \
1621 $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_INCLUDES) \
1622 $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_INCLUDES)
1623my_target_global_c_system_includes := $(SRC_SYSTEM_HEADERS) \
1624 $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_SYSTEM_INCLUDES) \
1625 $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_SYSTEM_INCLUDES)
1626else
1627my_target_global_c_includes := $(SRC_HEADERS) \
1628 $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_INCLUDES) \
1629 $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_INCLUDES)
1630my_target_global_c_system_includes := $(SRC_SYSTEM_HEADERS) $(TARGET_OUT_HEADERS) \
1631 $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_SYSTEM_INCLUDES) \
1632 $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_SYSTEM_INCLUDES)
1633endif
1634
1635my_target_global_cflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_CFLAGS)
1636my_target_global_conlyflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_CONLYFLAGS) $(my_c_std_conlyflags)
1637my_target_global_cppflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_CPPFLAGS) $(my_cpp_std_cppflags)
1638ifeq ($(my_use_clang_lld),true)
1639 my_target_global_ldflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_LLDFLAGS)
1640 include $(BUILD_SYSTEM)/pack_dyn_relocs_setup.mk
1641 ifeq ($(my_pack_module_relocations),false)
1642 my_target_global_ldflags += -Wl,--pack-dyn-relocs=none
1643 endif
1644else
1645 my_target_global_ldflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_LDFLAGS)
1646endif # my_use_clang_lld
1647
1648$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_GLOBAL_C_INCLUDES := $(my_target_global_c_includes)
1649$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_GLOBAL_C_SYSTEM_INCLUDES := $(my_target_global_c_system_includes)
1650$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_GLOBAL_CFLAGS := $(my_target_global_cflags)
1651$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_GLOBAL_CONLYFLAGS := $(my_target_global_conlyflags)
1652$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_GLOBAL_CPPFLAGS := $(my_target_global_cppflags)
1653$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_GLOBAL_LDFLAGS := $(my_target_global_ldflags)
1654
1655else # LOCAL_IS_HOST_MODULE
1656
1657my_host_global_c_includes := $(SRC_HEADERS) \
1658 $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_INCLUDES)
1659my_host_global_c_system_includes := $(SRC_SYSTEM_HEADERS) \
1660 $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_SYSTEM_INCLUDES)
1661
1662my_host_global_cflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_CFLAGS)
1663my_host_global_conlyflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_CONLYFLAGS) $(my_c_std_conlyflags)
1664my_host_global_cppflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_CPPFLAGS) $(my_cpp_std_cppflags)
1665ifeq ($(my_use_clang_lld),true)
1666 my_host_global_ldflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_LLDFLAGS)
1667else
1668 my_host_global_ldflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_LDFLAGS)
1669endif # my_use_clang_lld
1670
1671$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_GLOBAL_C_INCLUDES := $(my_host_global_c_includes)
1672$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_GLOBAL_C_SYSTEM_INCLUDES := $(my_host_global_c_system_includes)
1673$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_HOST_GLOBAL_CFLAGS := $(my_host_global_cflags)
1674$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_HOST_GLOBAL_CONLYFLAGS := $(my_host_global_conlyflags)
1675$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_HOST_GLOBAL_CPPFLAGS := $(my_host_global_cppflags)
1676$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_HOST_GLOBAL_LDFLAGS := $(my_host_global_ldflags)
1677endif # LOCAL_IS_HOST_MODULE
1678
1679# To enable coverage for a given module, set LOCAL_NATIVE_COVERAGE=true and
1680# build with NATIVE_COVERAGE=true in your enviornment.
1681ifeq ($(NATIVE_COVERAGE),true)
1682 ifeq ($(my_native_coverage),true)
1683 # Note that clang coverage doesn't play nicely with acov out of the box.
1684 # Clang apparently generates .gcno files that aren't compatible with
1685 # gcov-4.8. This can be solved by installing gcc-4.6 and invoking lcov
1686 # with `--gcov-tool /usr/bin/gcov-4.6`.
1687 #
1688 # http://stackoverflow.com/questions/17758126/clang-code-coverage-invalid-output
1689 my_cflags += --coverage -O0
1690 my_ldflags += --coverage
1691 endif
1692
1693 my_coverage_lib := $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)LIBPROFILE_RT)
1694
1695 $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_COVERAGE_LIB := $(my_coverage_lib)
1696 $(LOCAL_INTERMEDIATE_TARGETS): $(my_coverage_lib)
1697endif
1698
1699###########################################################
1700## Define PRIVATE_ variables used by multiple module types
1701###########################################################
1702$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_NO_DEFAULT_COMPILER_FLAGS := \
1703 $(strip $(LOCAL_NO_DEFAULT_COMPILER_FLAGS))
1704
1705ifeq ($(strip $(WITH_STATIC_ANALYZER)),)
1706 LOCAL_NO_STATIC_ANALYZER := true
1707endif
1708
1709ifneq ($(strip $(LOCAL_IS_HOST_MODULE)),)
1710 my_syntax_arch := host
1711else
1712 my_syntax_arch := $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)
1713endif
1714
1715ifeq ($(strip $(my_cc)),)
1716 my_cc := $(my_cc_wrapper) $(CLANG)
1717endif
1718
1719SYNTAX_TOOLS_PREFIX := \
1720 $(LLVM_PREBUILTS_BASE)/$(BUILD_OS)-x86/$(LLVM_PREBUILTS_VERSION)/libexec
1721
1722ifneq ($(LOCAL_NO_STATIC_ANALYZER),true)
1723 my_cc := CCC_CC=$(CLANG) CLANG=$(CLANG) \
1724 $(SYNTAX_TOOLS_PREFIX)/ccc-analyzer
1725endif
1726
1727$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_CC := $(my_cc)
1728
1729ifeq ($(strip $(my_cxx)),)
1730 my_cxx := $(my_cxx_wrapper) $(CLANG_CXX)
1731endif
1732
1733ifneq ($(LOCAL_NO_STATIC_ANALYZER),true)
1734 my_cxx := CCC_CXX=$(CLANG_CXX) CLANG_CXX=$(CLANG_CXX) \
1735 $(SYNTAX_TOOLS_PREFIX)/c++-analyzer
1736endif
1737
1738$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_LINKER := $(my_linker)
1739$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_CXX := $(my_cxx)
1740
1739$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_YACCFLAGS := $(LOCAL_YACCFLAGS) 1741$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_YACCFLAGS := $(LOCAL_YACCFLAGS)
1740$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_ASFLAGS := $(my_asflags) 1742$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_ASFLAGS := $(my_asflags)
1741$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_CONLYFLAGS := $(my_conlyflags) 1743$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_CONLYFLAGS := $(my_conlyflags)
diff --git a/core/definitions.mk b/core/definitions.mk
index a9807f110..d5c7b9113 100644
--- a/core/definitions.mk
+++ b/core/definitions.mk
@@ -77,6 +77,9 @@ ALL_FINDBUGS_FILES:=
77# GPL module license files 77# GPL module license files
78ALL_GPL_MODULE_LICENSE_FILES:= 78ALL_GPL_MODULE_LICENSE_FILES:=
79 79
80# Packages with certificate violation
81CERTIFICATE_VIOLATION_MODULES :=
82
80# Target and host installed module's dependencies on shared libraries. 83# Target and host installed module's dependencies on shared libraries.
81# They are list of "<module_name>:<installed_file>:lib1,lib2...". 84# They are list of "<module_name>:<installed_file>:lib1,lib2...".
82TARGET_DEPENDENCIES_ON_SHARED_LIBRARIES := 85TARGET_DEPENDENCIES_ON_SHARED_LIBRARIES :=
diff --git a/core/main.mk b/core/main.mk
index 4f81c2163..282821cdb 100644
--- a/core/main.mk
+++ b/core/main.mk
@@ -1096,6 +1096,13 @@ ifdef FULL_BUILD
1096 $(TARGET_OUT_SYSTEM_OTHER)/%.vdex \ 1096 $(TARGET_OUT_SYSTEM_OTHER)/%.vdex \
1097 $(TARGET_OUT_SYSTEM_OTHER)/%.art 1097 $(TARGET_OUT_SYSTEM_OTHER)/%.art
1098 endif 1098 endif
1099
1100CERTIFICATE_VIOLATION_MODULES_FILENAME := $(PRODUCT_OUT)/certificate_violation_modules.txt
1101$(CERTIFICATE_VIOLATION_MODULES_FILENAME):
1102 rm -f $@
1103 $(foreach m,$(sort $(CERTIFICATE_VIOLATION_MODULES)), echo $(m) >> $@;)
1104$(call dist-for-goals,droidcore,$(CERTIFICATE_VIOLATION_MODULES_FILENAME))
1105
1099 all_offending_files := 1106 all_offending_files :=
1100 $(foreach makefile,$(ARTIFACT_PATH_REQUIREMENT_PRODUCTS),\ 1107 $(foreach makefile,$(ARTIFACT_PATH_REQUIREMENT_PRODUCTS),\
1101 $(eval requirements := $(PRODUCTS.$(makefile).ARTIFACT_PATH_REQUIREMENTS)) \ 1108 $(eval requirements := $(PRODUCTS.$(makefile).ARTIFACT_PATH_REQUIREMENTS)) \
diff --git a/core/package_internal.mk b/core/package_internal.mk
index 75cc547be..c657f2edb 100644
--- a/core/package_internal.mk
+++ b/core/package_internal.mk
@@ -535,6 +535,7 @@ endif
535ifeq ($(dir $(strip $(LOCAL_CERTIFICATE))),./) 535ifeq ($(dir $(strip $(LOCAL_CERTIFICATE))),./)
536 LOCAL_CERTIFICATE := $(dir $(DEFAULT_SYSTEM_DEV_CERTIFICATE))$(LOCAL_CERTIFICATE) 536 LOCAL_CERTIFICATE := $(dir $(DEFAULT_SYSTEM_DEV_CERTIFICATE))$(LOCAL_CERTIFICATE)
537endif 537endif
538include $(BUILD_SYSTEM)/app_certificate_validate.mk
538private_key := $(LOCAL_CERTIFICATE).pk8 539private_key := $(LOCAL_CERTIFICATE).pk8
539certificate := $(LOCAL_CERTIFICATE).x509.pem 540certificate := $(LOCAL_CERTIFICATE).x509.pem
540additional_certificates := $(foreach c,$(LOCAL_ADDITIONAL_CERTIFICATES), $(c).x509.pem $(c).pk8) 541additional_certificates := $(foreach c,$(LOCAL_ADDITIONAL_CERTIFICATES), $(c).x509.pem $(c).pk8)
diff --git a/core/prebuilt_internal.mk b/core/prebuilt_internal.mk
index 66913c1ac..960d8d1c5 100644
--- a/core/prebuilt_internal.mk
+++ b/core/prebuilt_internal.mk
@@ -306,6 +306,8 @@ else
306 $(built_module) : PRIVATE_CERTIFICATE := $(LOCAL_CERTIFICATE).x509.pem 306 $(built_module) : PRIVATE_CERTIFICATE := $(LOCAL_CERTIFICATE).x509.pem
307endif 307endif
308 308
309include $(BUILD_SYSTEM)/app_certificate_validate.mk
310
309# Disable dex-preopt of prebuilts to save space, if requested. 311# Disable dex-preopt of prebuilts to save space, if requested.
310ifndef LOCAL_DEX_PREOPT 312ifndef LOCAL_DEX_PREOPT
311ifeq ($(DONT_DEXPREOPT_PREBUILTS),true) 313ifeq ($(DONT_DEXPREOPT_PREBUILTS),true)
diff --git a/core/product.mk b/core/product.mk
index 1420b46e1..2d7ace2fa 100644
--- a/core/product.mk
+++ b/core/product.mk
@@ -204,6 +204,8 @@ _product_var_list := \
204 PRODUCT_COMPATIBLE_PROPERTY_OVERRIDE \ 204 PRODUCT_COMPATIBLE_PROPERTY_OVERRIDE \
205 PRODUCT_ACTIONABLE_COMPATIBLE_PROPERTY_DISABLE \ 205 PRODUCT_ACTIONABLE_COMPATIBLE_PROPERTY_DISABLE \
206 PRODUCT_ENFORCE_ARTIFACT_PATH_REQUIREMENTS \ 206 PRODUCT_ENFORCE_ARTIFACT_PATH_REQUIREMENTS \
207 PRODUCT_ENFORCE_ARTIFACT_SYSTEM_CERTIFICATE_REQUIREMENT \
208 PRODUCT_ARTIFACT_SYSTEM_CERTIFICATE_REQUIREMENT_WHITELIST \
207 PRODUCT_ARTIFACT_PATH_REQUIREMENT_HINT \ 209 PRODUCT_ARTIFACT_PATH_REQUIREMENT_HINT \
208 PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST \ 210 PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST \
209 PRODUCT_USE_DYNAMIC_PARTITION_SIZE \ 211 PRODUCT_USE_DYNAMIC_PARTITION_SIZE \
diff --git a/core/product_config.mk b/core/product_config.mk
index 47b4c7aa0..c58405cb2 100644
--- a/core/product_config.mk
+++ b/core/product_config.mk
@@ -367,6 +367,11 @@ PRODUCT_PRODUCT_PROPERTIES := \
367 $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_PRODUCT_PROPERTIES)) 367 $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_PRODUCT_PROPERTIES))
368.KATI_READONLY := PRODUCT_PRODUCT_PROPERTIES 368.KATI_READONLY := PRODUCT_PRODUCT_PROPERTIES
369 369
370ENFORCE_SYSTEM_CERTIFICATE := \
371 $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_ENFORCE_ARTIFACT_SYSTEM_CERTIFICATE_REQUIREMENT)
372
373ENFORCE_SYSTEM_CERTIFICATE_WHITELIST := \
374 $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_ARTIFACT_SYSTEM_CERTIFICATE_REQUIREMENT_WHITELIST))
370 375
371# A list of property assignments, like "key = value", with zero or more 376# A list of property assignments, like "key = value", with zero or more
372# whitespace characters on either side of the '='. 377# whitespace characters on either side of the '='.
diff --git a/core/soong_app_prebuilt.mk b/core/soong_app_prebuilt.mk
index 73d934bf9..f7236335b 100644
--- a/core/soong_app_prebuilt.mk
+++ b/core/soong_app_prebuilt.mk
@@ -108,7 +108,7 @@ ifdef LOCAL_CERTIFICATE
108 PACKAGES.$(LOCAL_MODULE).CERTIFICATE := $(LOCAL_CERTIFICATE) 108 PACKAGES.$(LOCAL_MODULE).CERTIFICATE := $(LOCAL_CERTIFICATE)
109 PACKAGES.$(LOCAL_MODULE).PRIVATE_KEY := $(patsubst %.x509.pem,%.pk8,$(LOCAL_CERTIFICATE)) 109 PACKAGES.$(LOCAL_MODULE).PRIVATE_KEY := $(patsubst %.x509.pem,%.pk8,$(LOCAL_CERTIFICATE))
110endif 110endif
111 111include $(BUILD_SYSTEM)/app_certificate_validate.mk
112PACKAGES.$(LOCAL_MODULE).OVERRIDES := $(strip $(LOCAL_OVERRIDES_PACKAGES)) 112PACKAGES.$(LOCAL_MODULE).OVERRIDES := $(strip $(LOCAL_OVERRIDES_PACKAGES))
113 113
114ifdef LOCAL_SOONG_BUNDLE 114ifdef LOCAL_SOONG_BUNDLE
diff --git a/core/soong_config.mk b/core/soong_config.mk
index 31c77d4b8..58e1a03ae 100644
--- a/core/soong_config.mk
+++ b/core/soong_config.mk
@@ -146,6 +146,9 @@ $(call add_json_str, DexpreoptGlobalConfig, $(DEX_PREOPT_CONFIG))
146 146
147$(call add_json_list, ManifestPackageNameOverrides, $(PRODUCT_MANIFEST_PACKAGE_NAME_OVERRIDES)) 147$(call add_json_list, ManifestPackageNameOverrides, $(PRODUCT_MANIFEST_PACKAGE_NAME_OVERRIDES))
148 148
149$(call add_json_bool, EnforceSystemCertificate, $(ENFORCE_SYSTEM_CERTIFICATE))
150$(call add_json_list, EnforceSystemCertificateWhitelist, $(ENFORCE_SYSTEM_CERTIFICATE_WHITELIST))
151
149$(call add_json_map, VendorVars) 152$(call add_json_map, VendorVars)
150$(foreach namespace,$(SOONG_CONFIG_NAMESPACES),\ 153$(foreach namespace,$(SOONG_CONFIG_NAMESPACES),\
151 $(call add_json_map, $(namespace))\ 154 $(call add_json_map, $(namespace))\
diff --git a/target/product/base_system.mk b/target/product/base_system.mk
index 63db56425..7c3ac3b3d 100644
--- a/target/product/base_system.mk
+++ b/target/product/base_system.mk
@@ -118,14 +118,14 @@ PRODUCT_PACKAGES += \
118 libaudioutils \ 118 libaudioutils \
119 libbinder \ 119 libbinder \
120 libbinder_ndk \ 120 libbinder_ndk \
121 libc \ 121 libc.bootstrap \
122 libcamera2ndk \ 122 libcamera2ndk \
123 libcamera_client \ 123 libcamera_client \
124 libcameraservice \ 124 libcameraservice \
125 libc_malloc_debug \ 125 libc_malloc_debug \
126 libc_malloc_hooks \ 126 libc_malloc_hooks \
127 libcutils \ 127 libcutils \
128 libdl \ 128 libdl.bootstrap \
129 libdrmframework \ 129 libdrmframework \
130 libdrmframework_jni \ 130 libdrmframework_jni \
131 libEGL \ 131 libEGL \
@@ -145,7 +145,7 @@ PRODUCT_PACKAGES += \
145 libjnigraphics \ 145 libjnigraphics \
146 libjpeg \ 146 libjpeg \
147 liblog \ 147 liblog \
148 libm \ 148 libm.bootstrap \
149 libmdnssd \ 149 libmdnssd \
150 libmedia \ 150 libmedia \
151 libmedia_jni \ 151 libmedia_jni \
diff --git a/target/product/handheld_system.mk b/target/product/handheld_system.mk
index acafe802d..0a763fb2a 100644
--- a/target/product/handheld_system.mk
+++ b/target/product/handheld_system.mk
@@ -46,7 +46,6 @@ PRODUCT_PACKAGES += \
46 DocumentsUI \ 46 DocumentsUI \
47 DownloadProviderUi \ 47 DownloadProviderUi \
48 EasterEgg \ 48 EasterEgg \
49 ExactCalculator \
50 ExternalStorageProvider \ 49 ExternalStorageProvider \
51 FusedLocation \ 50 FusedLocation \
52 InputDevices \ 51 InputDevices \
@@ -86,4 +85,3 @@ PRODUCT_PROPERTY_OVERRIDES += \
86 ro.carrier=unknown \ 85 ro.carrier=unknown \
87 ro.config.notification_sound=OnTheHunt.ogg \ 86 ro.config.notification_sound=OnTheHunt.ogg \
88 ro.config.alarm_alert=Alarm_Classic.ogg 87 ro.config.alarm_alert=Alarm_Classic.ogg
89