Merge "add llndk|vndksp.libraries.txt to vndk_package" into oc-mr1-dev
diff --git a/core/package_internal.mk b/core/package_internal.mk
index 87a15d2..5c4ad28 100644
--- a/core/package_internal.mk
+++ b/core/package_internal.mk
@@ -122,7 +122,18 @@
endif
endif
-ifndef enforce_rro_enabled
+ifdef enforce_rro_enabled
+ ifneq ($(PRODUCT_ENFORCE_RRO_EXCLUDED_OVERLAYS),)
+ static_only_resource_overlays := $(filter $(addsuffix %,$(PRODUCT_ENFORCE_RRO_EXCLUDED_OVERLAYS)),$(package_resource_overlays))
+ ifneq ($(static_only_resource_overlays),)
+ package_resource_overlays := $(filter-out $(static_only_resource_overlays),$(package_resource_overlays))
+ LOCAL_RESOURCE_DIR := $(static_only_resource_overlays) $(LOCAL_RESOURCE_DIR)
+ ifeq ($(package_resource_overlays),)
+ enforce_rro_enabled :=
+ endif
+ endif
+ endif
+else
LOCAL_RESOURCE_DIR := $(package_resource_overlays) $(LOCAL_RESOURCE_DIR)
endif
diff --git a/core/product.mk b/core/product.mk
index 8f7db19..c955ccc 100644
--- a/core/product.mk
+++ b/core/product.mk
@@ -94,6 +94,7 @@
PRODUCT_EXTRA_RECOVERY_KEYS \
PRODUCT_PACKAGE_OVERLAYS \
DEVICE_PACKAGE_OVERLAYS \
+ PRODUCT_ENFORCE_RRO_EXCLUDED_OVERLAYS \
PRODUCT_ENFORCE_RRO_TARGETS \
PRODUCT_SDK_ATREE_FILES \
PRODUCT_SDK_ADDON_NAME \
diff --git a/core/product_config.mk b/core/product_config.mk
index 6812b05..cd62fb2 100644
--- a/core/product_config.mk
+++ b/core/product_config.mk
@@ -434,6 +434,10 @@
PRODUCT_IOT := \
$(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_IOT))
+# Resource overlay list which must be excluded from enforcing RRO.
+PRODUCT_ENFORCE_RRO_EXCLUDED_OVERLAYS := \
+ $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_ENFORCE_RRO_EXCLUDED_OVERLAYS))
+
# Package list to apply enforcing RRO.
PRODUCT_ENFORCE_RRO_TARGETS := \
$(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_ENFORCE_RRO_TARGETS))
diff --git a/core/version_defaults.mk b/core/version_defaults.mk
index 8a3eef8..7b45d28 100644
--- a/core/version_defaults.mk
+++ b/core/version_defaults.mk
@@ -181,7 +181,7 @@
# It must be of the form "YYYY-MM-DD" on production devices.
# It must match one of the Android Security Patch Level strings of the Public Security Bulletins.
# If there is no $PLATFORM_SECURITY_PATCH set, keep it empty.
- PLATFORM_SECURITY_PATCH := 2017-10-05
+ PLATFORM_SECURITY_PATCH := 2017-11-05
endif
ifndef PLATFORM_BASE_OS
diff --git a/target/board/generic_arm64_ab/BoardConfig.mk b/target/board/generic_arm64_ab/BoardConfig.mk
index e69debe..22b9f42 100644
--- a/target/board/generic_arm64_ab/BoardConfig.mk
+++ b/target/board/generic_arm64_ab/BoardConfig.mk
@@ -33,7 +33,7 @@
BOARD_BUILD_SYSTEM_ROOT_IMAGE := true
# TODO(jiyong) These might be SoC specific.
-BOARD_ROOT_EXTRA_FOLDERS += bt_firmware firmware firmware/radio persist
+BOARD_ROOT_EXTRA_FOLDERS += firmware firmware/radio persist
BOARD_ROOT_EXTRA_SYMLINKS := /vendor/lib/dsp:/dsp
# TODO(b/36764215): remove this setting when the generic system image
diff --git a/target/board/generic_arm64_ab/sepolicy/file.te b/target/board/generic_arm64_ab/sepolicy/file.te
index 4645533..7adfdfa 100644
--- a/target/board/generic_arm64_ab/sepolicy/file.te
+++ b/target/board/generic_arm64_ab/sepolicy/file.te
@@ -1,6 +1,5 @@
# TODO(b/36764215): remove this file when the generic system image
# no longer has these directories
-type bt_firmware_file, file_type;
type persist_file, file_type;
# Default type for anything under /firmware.
diff --git a/target/board/generic_arm64_ab/sepolicy/file_contexts b/target/board/generic_arm64_ab/sepolicy/file_contexts
index 92a4ff8..0a80559 100644
--- a/target/board/generic_arm64_ab/sepolicy/file_contexts
+++ b/target/board/generic_arm64_ab/sepolicy/file_contexts
@@ -2,7 +2,6 @@
# no longer has these directories. They are specific to QCOM.
# /
-/bt_firmware(/.*)? u:object_r:bt_firmware_file:s0
/tombstones u:object_r:rootfs:s0
/dsp u:object_r:rootfs:s0
diff --git a/target/product/aosp_arm64_a.mk b/target/product/aosp_arm64_a.mk
index 84d4b4f..3c7af33 100644
--- a/target/product/aosp_arm64_a.mk
+++ b/target/product/aosp_arm64_a.mk
@@ -21,8 +21,6 @@
include build/make/target/product/treble_common_64.mk
-$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base_telephony.mk)
-
PRODUCT_NAME := aosp_arm64_a
PRODUCT_DEVICE := generic_arm64_a
PRODUCT_BRAND := Android
diff --git a/target/product/aosp_arm64_ab.mk b/target/product/aosp_arm64_ab.mk
index 75ded35..c96cb91 100644
--- a/target/product/aosp_arm64_ab.mk
+++ b/target/product/aosp_arm64_ab.mk
@@ -27,8 +27,6 @@
update_engine \
update_verifier
-$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base_telephony.mk)
-
PRODUCT_NAME := aosp_arm64_ab
PRODUCT_DEVICE := generic_arm64_ab
PRODUCT_BRAND := Android
diff --git a/target/product/aosp_arm_a.mk b/target/product/aosp_arm_a.mk
index 845d091..3060fa9 100644
--- a/target/product/aosp_arm_a.mk
+++ b/target/product/aosp_arm_a.mk
@@ -21,8 +21,6 @@
include build/make/target/product/treble_common_32.mk
-$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base_telephony.mk)
-
PRODUCT_NAME := aosp_arm_a
PRODUCT_DEVICE := generic_arm_a
PRODUCT_BRAND := Android
diff --git a/target/product/aosp_arm_ab.mk b/target/product/aosp_arm_ab.mk
index 3a862eb..98b2f99 100644
--- a/target/product/aosp_arm_ab.mk
+++ b/target/product/aosp_arm_ab.mk
@@ -27,8 +27,6 @@
update_engine \
update_verifier
-$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base_telephony.mk)
-
PRODUCT_NAME := aosp_arm_ab
PRODUCT_DEVICE := generic_arm_ab
PRODUCT_BRAND := Android
diff --git a/target/product/aosp_x86_64_a.mk b/target/product/aosp_x86_64_a.mk
index 53f8252..a7fb740 100644
--- a/target/product/aosp_x86_64_a.mk
+++ b/target/product/aosp_x86_64_a.mk
@@ -21,8 +21,6 @@
include build/make/target/product/treble_common_64.mk
-$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base_telephony.mk)
-
PRODUCT_NAME := aosp_x86_64_a
PRODUCT_DEVICE := generic_x86_64_a
PRODUCT_BRAND := Android
diff --git a/target/product/aosp_x86_64_ab.mk b/target/product/aosp_x86_64_ab.mk
index 6080695..4590dc5 100644
--- a/target/product/aosp_x86_64_ab.mk
+++ b/target/product/aosp_x86_64_ab.mk
@@ -27,8 +27,6 @@
update_engine \
update_verifier
-$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base_telephony.mk)
-
PRODUCT_NAME := aosp_x86_64_ab
PRODUCT_DEVICE := generic_x86_64_ab
PRODUCT_BRAND := Android
diff --git a/target/product/aosp_x86_a.mk b/target/product/aosp_x86_a.mk
index 72d6e1a..9ed2995 100644
--- a/target/product/aosp_x86_a.mk
+++ b/target/product/aosp_x86_a.mk
@@ -21,8 +21,6 @@
include build/make/target/product/treble_common_32.mk
-$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base_telephony.mk)
-
PRODUCT_NAME := aosp_x86_a
PRODUCT_DEVICE := generic_x86_a
PRODUCT_BRAND := Android
diff --git a/target/product/aosp_x86_ab.mk b/target/product/aosp_x86_ab.mk
index f3aef95..404a4da 100644
--- a/target/product/aosp_x86_ab.mk
+++ b/target/product/aosp_x86_ab.mk
@@ -27,8 +27,6 @@
update_engine \
update_verifier
-$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base_telephony.mk)
-
PRODUCT_NAME := aosp_x86_ab
PRODUCT_DEVICE := generic_x86_ab
PRODUCT_BRAND := Android
diff --git a/target/product/treble_common.mk b/target/product/treble_common.mk
index 070486d..f885646 100644
--- a/target/product/treble_common.mk
+++ b/target/product/treble_common.mk
@@ -19,6 +19,10 @@
# on the generic system image, place them in build/make/target/board/
# treble_system.prop.
+# Generic system image inherits from AOSP with telephony
+$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base.mk)
+$(call inherit-product, $(SRC_TARGET_DIR)/product/telephony.mk)
+
# Split selinux policy
PRODUCT_FULL_TREBLE_OVERRIDE := true
@@ -54,13 +58,6 @@
PRODUCT_PACKAGES += \
netutils-wrapper-1.0
-# A workaround solution for some projects which require
-# TimeZoneRulesManagerService by overlaying resource property
-# "config_enableUpdateableTimeZoneRules"
-PRODUCT_PACKAGES += \
- TimeZoneUpdater \
- TimeZoneData \
-
# Android Verified Boot (AVB):
# Builds a special vbmeta.img that disables AVB verification.
# Otherwise, AVB will prevent the device from booting the generic system.img.
diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py
index 9d58954..34c334e 100644
--- a/tools/releasetools/common.py
+++ b/tools/releasetools/common.py
@@ -772,6 +772,14 @@
certmap = {}
compressed_extension = None
+ # META/apkcerts.txt contains the info for _all_ the packages known at build
+ # time. Filter out the ones that are not installed.
+ installed_files = set()
+ for name in tf_zip.namelist():
+ basename = os.path.basename(name)
+ if basename:
+ installed_files.add(basename)
+
for line in tf_zip.read("META/apkcerts.txt").split("\n"):
line = line.strip()
if not line:
@@ -796,6 +804,10 @@
else:
raise ValueError("failed to parse line from apkcerts.txt:\n" + line)
if this_compressed_extension:
+ # Only count the installed files.
+ filename = name + '.' + this_compressed_extension
+ if filename not in installed_files:
+ continue
# Make sure that all the values in the compression map have the same
# extension. We don't support multiple compression methods in the same
# system image.
diff --git a/tools/releasetools/validate_target_files.py b/tools/releasetools/validate_target_files.py
index 8ac3322..4b34820 100755
--- a/tools/releasetools/validate_target_files.py
+++ b/tools/releasetools/validate_target_files.py
@@ -44,8 +44,8 @@
return sparse_img.SparseImage(path, mappath, clobbered_blocks)
-def _CalculateFileSha1(file_name, unpacked_name, round_up=False):
- """Calculate the SHA-1 for a given file. Round up its size to 4K if needed."""
+def _ReadFile(file_name, unpacked_name, round_up=False):
+ """Constructs and returns a File object. Rounds up its size if needed."""
def RoundUpTo4K(value):
rounded_up = value + 4095
@@ -58,7 +58,7 @@
if round_up:
file_size_rounded_up = RoundUpTo4K(file_size)
file_data += '\0' * (file_size_rounded_up - file_size)
- return common.File(file_name, file_data).sha1
+ return common.File(file_name, file_data)
def ValidateFileAgainstSha1(input_tmp, file_name, file_path, expected_sha1):
@@ -67,7 +67,7 @@
logging.info('Validating the SHA-1 of {}'.format(file_name))
unpacked_name = os.path.join(input_tmp, file_path)
assert os.path.exists(unpacked_name)
- actual_sha1 = _CalculateFileSha1(file_name, unpacked_name, False)
+ actual_sha1 = _ReadFile(file_name, unpacked_name, False).sha1
assert actual_sha1 == expected_sha1, \
'SHA-1 mismatches for {}. actual {}, expected {}'.format(
file_name, actual_sha1, expected_sha1)
@@ -92,8 +92,20 @@
# The filename under unpacked directory, such as SYSTEM/bin/sh.
unpacked_name = os.path.join(
input_tmp, which.upper(), entry[(len(prefix) + 1):])
- file_sha1 = _CalculateFileSha1(entry, unpacked_name, True)
+ unpacked_file = _ReadFile(entry, unpacked_name, True)
+ file_size = unpacked_file.size
+ # block.map may contain less blocks, because mke2fs may skip allocating
+ # blocks if they contain all zeros. We can't reconstruct such a file from
+ # its block list. (Bug: 65213616)
+ if file_size > ranges.size() * 4096:
+ logging.warning(
+ 'Skipping %s that has less blocks: file size %d-byte,'
+ ' ranges %s (%d-byte)', entry, file_size, ranges,
+ ranges.size() * 4096)
+ continue
+
+ file_sha1 = unpacked_file.sha1
assert blocks_sha1 == file_sha1, \
'file: %s, range: %s, blocks_sha1: %s, file_sha1: %s' % (
entry, ranges, blocks_sha1, file_sha1)