Merge "Revert "Revert "Merge "Resolve merge conflicts of a5f0068 to nyc-dev" into nyc-dev""" into nyc-dev
diff --git a/core/Makefile b/core/Makefile
index 1257e15..7950501 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -1487,6 +1487,10 @@
$(HOST_OUT_JAVA_LIBRARIES)/BootSignature.jar \
$(HOST_OUT_EXECUTABLES)/mkuserimg.sh \
$(HOST_OUT_EXECUTABLES)/make_ext4fs \
+ $(HOST_OUT_EXECUTABLES)/mksquashfsimage.sh \
+ $(HOST_OUT_EXECUTABLES)/mksquashfs \
+ $(HOST_OUT_EXECUTABLES)/mkf2fsuserimg.sh \
+ $(HOST_OUT_EXECUTABLES)/make_f2fs \
$(HOST_OUT_EXECUTABLES)/simg2img \
$(HOST_OUT_EXECUTABLES)/e2fsck \
$(HOST_OUT_EXECUTABLES)/build_verity_tree \
diff --git a/core/clear_vars.mk b/core/clear_vars.mk
index 9c2fa1d..7473a73 100644
--- a/core/clear_vars.mk
+++ b/core/clear_vars.mk
@@ -116,6 +116,7 @@
LOCAL_JILL_FLAGS:=
LOCAL_CERTIFICATE:=
LOCAL_SDK_VERSION:=
+LOCAL_MIN_SDK_VERSION:=
LOCAL_SDK_RES_VERSION:=
LOCAL_NDK_STL_VARIANT:=
LOCAL_EMMA_INSTRUMENT:=
diff --git a/core/executable.mk b/core/executable.mk
index 70ef0d9..e22ea0e 100644
--- a/core/executable.mk
+++ b/core/executable.mk
@@ -70,9 +70,6 @@
OVERRIDE_BUILT_MODULE_PATH :=
LOCAL_BUILT_MODULE :=
LOCAL_INSTALLED_MODULE :=
-LOCAL_MODULE_STEM :=
-LOCAL_BUILT_MODULE_STEM :=
-LOCAL_INSTALLED_MODULE_STEM :=
LOCAL_INTERMEDIATE_TARGETS :=
include $(BUILD_SYSTEM)/executable_internal.mk
endif
diff --git a/core/java.mk b/core/java.mk
index 2caf511..bc8ed64 100644
--- a/core/java.mk
+++ b/core/java.mk
@@ -55,6 +55,10 @@
endif
endif
+ifneq (,$(strip $(LOCAL_MIN_SDK_VERSION)))
+ my_jack_min_sdk_version := $(LOCAL_MIN_SDK_VERSION)
+endif
+
proto_sources := $(filter %.proto,$(LOCAL_SRC_FILES))
ifneq ($(proto_sources),)
ifeq ($(LOCAL_PROTOC_OPTIMIZE_TYPE),micro)
@@ -695,7 +699,7 @@
$(proto_java_sources_file_stamp) $(LOCAL_ADDITIONAL_DEPENDENCIES) $(LOCAL_JARJAR_RULES) \
$(LOCAL_MODULE_MAKEFILE_DEP) $(JACK)
-$(jack_check_timestamp): $(jack_all_deps)
+$(jack_check_timestamp): $(jack_all_deps) | setup-jack-server
@echo Checking build with Jack: $@
$(jack-check-java)
diff --git a/core/main.mk b/core/main.mk
index cc1171a..f9aad2b 100644
--- a/core/main.mk
+++ b/core/main.mk
@@ -242,6 +242,12 @@
endif # java version is not Sun Oracle JDK
endif # if requires_openjdk
+KNOWN_INCOMPATIBLE_JAVAC_VERSIONS := google
+incompat_javac := $(foreach v,$(KNOWN_INCOMPATIBLE_JAVAC_VERSIONS),$(findstring $(v),$(javac_version_str)))
+ifneq ($(incompat_javac),)
+javac_version :=
+endif
+
# Check for the correct version of javac
ifeq ($(strip $(javac_version)),)
$(info ************************************************************)
@@ -249,7 +255,12 @@
$(info of javac.)
$(info $(space))
$(info Your version is: $(javac_version_str).)
+ifneq ($(incompat_javac),)
+$(info This '$(incompat_javac)' version is not supported for Android platform builds.)
+$(info Use a publicly available JDK and make sure you have run envsetup.sh / lunch.)
+else
$(info The required version is: $(required_javac_version))
+endif
$(info $(space))
$(info Please follow the machine setup instructions at)
$(info $(space)$(space)$(space)$(space)https://source.android.com/source/download.html)
diff --git a/core/prebuilt.mk b/core/prebuilt.mk
index fd63560..428922b 100644
--- a/core/prebuilt.mk
+++ b/core/prebuilt.mk
@@ -42,9 +42,6 @@
OVERRIDE_BUILT_MODULE_PATH :=
LOCAL_BUILT_MODULE :=
LOCAL_INSTALLED_MODULE :=
-LOCAL_MODULE_STEM :=
-LOCAL_BUILT_MODULE_STEM :=
-LOCAL_INSTALLED_MODULE_STEM :=
LOCAL_INTERMEDIATE_TARGETS :=
include $(BUILD_SYSTEM)/prebuilt_internal.mk
endif # $(my_module_arch_supported)
@@ -64,9 +61,6 @@
OVERRIDE_BUILT_MODULE_PATH :=
LOCAL_BUILT_MODULE :=
LOCAL_INSTALLED_MODULE :=
-LOCAL_MODULE_STEM :=
-LOCAL_BUILT_MODULE_STEM :=
-LOCAL_INSTALLED_MODULE_STEM :=
LOCAL_INTERMEDIATE_TARGETS :=
include $(BUILD_SYSTEM)/prebuilt_internal.mk
endif
@@ -82,9 +76,6 @@
OVERRIDE_BUILT_MODULE_PATH :=
LOCAL_BUILT_MODULE :=
LOCAL_INSTALLED_MODULE :=
-LOCAL_MODULE_STEM :=
-LOCAL_BUILT_MODULE_STEM :=
-LOCAL_INSTALLED_MODULE_STEM :=
LOCAL_INTERMEDIATE_TARGETS :=
include $(BUILD_SYSTEM)/prebuilt_internal.mk
endif
diff --git a/core/shared_library.mk b/core/shared_library.mk
index 73aca78c..2f48341 100644
--- a/core/shared_library.mk
+++ b/core/shared_library.mk
@@ -38,9 +38,6 @@
OVERRIDE_BUILT_MODULE_PATH :=
LOCAL_BUILT_MODULE :=
LOCAL_INSTALLED_MODULE :=
-LOCAL_MODULE_STEM :=
-LOCAL_BUILT_MODULE_STEM :=
-LOCAL_INSTALLED_MODULE_STEM :=
LOCAL_INTERMEDIATE_TARGETS :=
include $(BUILD_SYSTEM)/shared_library_internal.mk
diff --git a/core/static_library.mk b/core/static_library.mk
index 854cbfc..a8ae399 100644
--- a/core/static_library.mk
+++ b/core/static_library.mk
@@ -23,9 +23,6 @@
OVERRIDE_BUILT_MODULE_PATH :=
LOCAL_BUILT_MODULE :=
LOCAL_INSTALLED_MODULE :=
-LOCAL_MODULE_STEM :=
-LOCAL_BUILT_MODULE_STEM :=
-LOCAL_INSTALLED_MODULE_STEM :=
LOCAL_INTERMEDIATE_TARGETS :=
include $(BUILD_SYSTEM)/static_library_internal.mk
diff --git a/target/board/generic/sepolicy/domain.te b/target/board/generic/sepolicy/domain.te
index 201fa86..5d5e4ac 100644
--- a/target/board/generic/sepolicy/domain.te
+++ b/target/board/generic/sepolicy/domain.te
@@ -1,4 +1,5 @@
# For /sys/qemu_trace files in the emulator.
+allow domain sysfs_writable:dir search;
allow domain sysfs_writable:file rw_file_perms;
allow domain qemu_device:chr_file rw_file_perms;
diff --git a/target/board/generic/sepolicy/system_server.te b/target/board/generic/sepolicy/system_server.te
index d0fb79d..f9e277b 100644
--- a/target/board/generic/sepolicy/system_server.te
+++ b/target/board/generic/sepolicy/system_server.te
@@ -1 +1,3 @@
unix_socket_connect(system_server, qemud, qemud)
+get_prop(system_server, opengles_prop)
+get_prop(system_server, radio_noril_prop)
diff --git a/target/product/base.mk b/target/product/base.mk
index 7ff0b0a..d0d65e2 100644
--- a/target/product/base.mk
+++ b/target/product/base.mk
@@ -39,9 +39,6 @@
hid \
ime \
input \
- input.evdev.default \
- inputflinger \
- inputflingerhost \
javax.obex \
libandroid \
libandroid_runtime \
@@ -60,7 +57,6 @@
libeffects \
libinput \
libinputflinger \
- libinputflingerhost \
libiprouteutil \
libjnigraphics \
libldnhncr \
@@ -132,12 +128,6 @@
vold \
wm
-# TODO: Remove after N. Set WifiHAL to only log debug by default.
-# This is not the proper way to really fix this, but it is the best thing to
-# do in the time period we have for N. In the future they will be moving
-# more to a dumpsys style approach.
-PRODUCT_PROPERTY_OVERRIDES += \
- persist.log.tag.WifiHAL=I
PRODUCT_COPY_FILES := $(call add-to-product-copy-files-if-exists,\
frameworks/base/preloaded-classes:system/etc/preloaded-classes)
diff --git a/tools/releasetools/blockimgdiff.py b/tools/releasetools/blockimgdiff.py
index 625dca2..d49112f 100644
--- a/tools/releasetools/blockimgdiff.py
+++ b/tools/releasetools/blockimgdiff.py
@@ -272,6 +272,8 @@
self.src_basenames = {}
self.src_numpatterns = {}
self._max_stashed_size = 0
+ self.touched_src_ranges = RangeSet()
+ self.touched_src_sha1 = None
assert version in (1, 2, 3, 4)
@@ -373,6 +375,7 @@
else:
stashes[sh] = 1
stashed_blocks += sr.size()
+ self.touched_src_ranges = self.touched_src_ranges.union(sr)
out.append("stash %s %s\n" % (sh, sr.to_string_raw()))
if stashed_blocks > max_stashed_blocks:
@@ -479,6 +482,9 @@
if temp_stash_usage > max_stashed_blocks:
max_stashed_blocks = temp_stash_usage
+ self.touched_src_ranges = self.touched_src_ranges.union(
+ xf.src_ranges)
+
out.append("%s %s %s %s\n" % (
xf.style,
self.HashBlocks(self.tgt, xf.tgt_ranges),
@@ -502,6 +508,9 @@
if temp_stash_usage > max_stashed_blocks:
max_stashed_blocks = temp_stash_usage
+ self.touched_src_ranges = self.touched_src_ranges.union(
+ xf.src_ranges)
+
out.append("%s %d %d %s %s %s %s\n" % (
xf.style,
xf.patch_start, xf.patch_len,
@@ -537,6 +546,10 @@
self.tgt.blocksize, max_allowed, cache_size,
stash_threshold)
+ if self.version >= 3:
+ self.touched_src_sha1 = self.HashBlocks(
+ self.src, self.touched_src_ranges)
+
# Zero out extended blocks as a workaround for bug 20881595.
if self.tgt.extended:
out.append("zero %s\n" % (self.tgt.extended.to_string_raw(),))
diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py
index 563ce31..9a866f5 100644
--- a/tools/releasetools/common.py
+++ b/tools/releasetools/common.py
@@ -1314,6 +1314,8 @@
self.path = os.path.join(tmpdir, partition)
b.Compute(self.path)
self._required_cache = b.max_stashed_size
+ self.touched_src_ranges = b.touched_src_ranges
+ self.touched_src_sha1 = b.touched_src_sha1
if src is None:
_, self.device = GetTypeAndDevice("/" + partition, OPTIONS.info_dict)
@@ -1335,7 +1337,8 @@
if progress:
script.ShowProgress(progress, 0)
self._WriteUpdate(script, output_zip)
- self._WritePostInstallVerifyScript(script)
+ if OPTIONS.verify:
+ self._WritePostInstallVerifyScript(script)
def WriteStrictVerifyScript(self, script):
"""Verify all the blocks in the care_map, including clobbered blocks.
@@ -1356,26 +1359,40 @@
self.device))
script.AppendExtra("")
- def WriteVerifyScript(self, script):
+ def WriteVerifyScript(self, script, touched_blocks_only=False):
partition = self.partition
+
+ # full OTA
if not self.src:
script.Print("Image %s will be patched unconditionally." % (partition,))
+
+ # incremental OTA
else:
- ranges = self.src.care_map.subtract(self.src.clobbered_blocks)
+ if touched_blocks_only and self.version >= 3:
+ ranges = self.touched_src_ranges
+ expected_sha1 = self.touched_src_sha1
+ else:
+ ranges = self.src.care_map.subtract(self.src.clobbered_blocks)
+ expected_sha1 = self.src.TotalSha1()
+
+ # No blocks to be checked, skipping.
+ if not ranges:
+ return
+
ranges_str = ranges.to_string_raw()
if self.version >= 4:
script.AppendExtra(('if (range_sha1("%s", "%s") == "%s" || '
'block_image_verify("%s", '
'package_extract_file("%s.transfer.list"), '
'"%s.new.dat", "%s.patch.dat")) then') % (
- self.device, ranges_str, self.src.TotalSha1(),
+ self.device, ranges_str, expected_sha1,
self.device, partition, partition, partition))
elif self.version == 3:
script.AppendExtra(('if (range_sha1("%s", "%s") == "%s" || '
'block_image_verify("%s", '
'package_extract_file("%s.transfer.list"), '
'"%s.new.dat", "%s.patch.dat")) then') % (
- self.device, ranges_str, self.src.TotalSha1(),
+ self.device, ranges_str, expected_sha1,
self.device, partition, partition, partition))
else:
script.AppendExtra('if range_sha1("%s", "%s") == "%s" then' % (
@@ -1459,7 +1476,8 @@
call = ('block_image_update("{device}", '
'package_extract_file("{partition}.transfer.list"), '
- '"{partition}.new.dat", "{partition}.patch.dat");\n'.format(
+ '"{partition}.new.dat", "{partition}.patch.dat") ||\n'
+ ' abort("Failed to update {partition} image.");'.format(
device=self.device, partition=self.partition))
script.AppendExtra(script.WordWrap(call))
diff --git a/tools/releasetools/ota_from_target_files.py b/tools/releasetools/ota_from_target_files.py
index 4d0d8a5..861c485 100755
--- a/tools/releasetools/ota_from_target_files.py
+++ b/tools/releasetools/ota_from_target_files.py
@@ -996,9 +996,9 @@
""" % bcb_dev)
# Verify the existing partitions.
- system_diff.WriteVerifyScript(script)
+ system_diff.WriteVerifyScript(script, touched_blocks_only=True)
if vendor_diff:
- vendor_diff.WriteVerifyScript(script)
+ vendor_diff.WriteVerifyScript(script, touched_blocks_only=True)
script.Comment("---- start making changes here ----")
diff --git a/tools/releasetools/rangelib.py b/tools/releasetools/rangelib.py
index 975a48a..aa572cc 100644
--- a/tools/releasetools/rangelib.py
+++ b/tools/releasetools/rangelib.py
@@ -91,7 +91,7 @@
if last <= s:
last = s+1
else:
- monotonic = True
+ monotonic = False
data.sort()
self.data = tuple(self._remove_pairs(data))
self.monotonic = monotonic
diff --git a/tools/releasetools/test_rangelib.py b/tools/releasetools/test_rangelib.py
index 7debe66..a61a64e 100644
--- a/tools/releasetools/test_rangelib.py
+++ b/tools/releasetools/test_rangelib.py
@@ -117,6 +117,7 @@
self.assertTrue(RangeSet("").monotonic)
self.assertTrue(RangeSet("0-4 5-9").monotonic)
self.assertFalse(RangeSet("5-9 0-4").monotonic)
+ self.assertFalse(RangeSet("258768-259211 196604").monotonic)
self.assertTrue(RangeSet(data=[0, 10]).monotonic)
self.assertTrue(RangeSet(data=[0, 10, 15, 20]).monotonic)