Merge "Add core-lambda-stubs to default classpath for target libs compiling using javac"
diff --git a/core/binary.mk b/core/binary.mk
index 40b8acd..b25bf08 100644
--- a/core/binary.mk
+++ b/core/binary.mk
@@ -1338,6 +1338,10 @@
 my_cppflags := $(call $(LOCAL_2ND_ARCH_VAR_PREFIX)convert-to-$(my_host)clang-flags,$(my_cppflags))
 my_asflags := $(call $(LOCAL_2ND_ARCH_VAR_PREFIX)convert-to-$(my_host)clang-flags,$(my_asflags))
 my_ldflags := $(call $(LOCAL_2ND_ARCH_VAR_PREFIX)convert-to-$(my_host)clang-flags,$(my_ldflags))
+else
+# gcc does not handle hidden functions in a manner compatible with LLVM libcxx
+# see b/27908145
+my_cflags += -Wno-attributes
 endif
 
 ifeq ($(my_fdo_build), true)
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/file.te b/target/board/generic/sepolicy/file.te
index 6fad80a..9227f80 100644
--- a/target/board/generic/sepolicy/file.te
+++ b/target/board/generic/sepolicy/file.te
@@ -1 +1,2 @@
 type qemud_socket, file_type;
+type sysfs_writable, fs_type, sysfs_type, mlstrustedobject;
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/tools/fs_config/README b/tools/fs_config/README
index c20614b..7eca4a3 100644
--- a/tools/fs_config/README
+++ b/tools/fs_config/README
@@ -90,7 +90,10 @@
 It is an error to specify multiple sections with the same [AID_<name>]. Per the ini
 specifications enforced by Pythons ConfigParser. It is also an error to specify
 multiple sections with the same value option. It is also an error to specify a value
-that is outside of the OEM range AID_OEM_RESERVED_START(2900) and AID_OEM_RESERVED_END(2999)
+that is outside of the inclusive OEM ranges:
+ * AID_OEM_RESERVED_START(2900) - AID_OEM_RESERVED_END(2999)
+ * AID_OEM_RESERVED_2_START(5000) - AID_OEM_RESERVED_2_END(5999)
+
 as defined by system/core/include/private/android_filesystem_config.h.
 
 Ordering within the TARGET_FS_CONFIG_GEN files is not relevant. The paths for files are sorted
diff --git a/tools/fs_config/fs_config_generator.py b/tools/fs_config/fs_config_generator.py
index e66e295..482c2bc 100755
--- a/tools/fs_config/fs_config_generator.py
+++ b/tools/fs_config/fs_config_generator.py
@@ -33,8 +33,10 @@
 FILE_COMMENT = '// Defined in file: \"%s\"'
 
 # from system/core/include/private/android_filesystem_config.h
-AID_OEM_RESERVED_START = 2900
-AID_OEM_RESERVED_END = 2999
+AID_OEM_RESERVED_RANGES = [
+    (2900, 2999),
+    (5000, 5999),
+]
 
 
 AID_MATCH = re.compile('AID_[a-zA-Z]+')
@@ -52,9 +54,9 @@
         raise Exception(errmsg % ('Invalid "value", not a number, got: \"%s\"' % value))
 
     # Values must be within OEM range
-    if (v < AID_OEM_RESERVED_START) or (v > AID_OEM_RESERVED_END):
-        s = '"value" not in valid range %d - %d, got: %s'
-        s = s % (AID_OEM_RESERVED_START, AID_OEM_RESERVED_END, value)
+    if not any(lower <= v <= upper for (lower, upper) in AID_OEM_RESERVED_RANGES):
+        s = '"value" not in valid range %s, got: %s'
+        s = s % (str(AID_OEM_RESERVED_RANGES), value)
         raise Exception(errmsg % s)
 
     # use the normalized int value in the dict and detect