Merge "Remove build tasks for vts10"
diff --git a/core/Makefile b/core/Makefile
index 467db19..7104334 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -1289,7 +1289,13 @@
# Get a colon-separated list of search paths.
INTERNAL_USERIMAGES_BINARY_PATHS := $(subst $(space),:,$(sort $(dir $(INTERNAL_USERIMAGES_DEPS))))
+# Collects file_contexts files from modules to be installed
+$(call merge-fc-files, \
+ $(sort $(foreach m,$(product_MODULES),$(ALL_MODULES.$(m).FILE_CONTEXTS))),\
+ $(call intermediates-dir-for,ETC,file_contexts.bin)/file_contexts.modules.tmp)
+
SELINUX_FC := $(call intermediates-dir-for,ETC,file_contexts.bin)/file_contexts.bin
+
INTERNAL_USERIMAGES_DEPS += $(SELINUX_FC)
ifeq (true,$(PRODUCT_USE_DYNAMIC_PARTITIONS))
diff --git a/core/base_rules.mk b/core/base_rules.mk
index 58be7a2..adf61f1 100644
--- a/core/base_rules.mk
+++ b/core/base_rules.mk
@@ -987,6 +987,9 @@
ALL_MODULES.$(my_register_name).TEST_CONFIG := $(test_config)
ALL_MODULES.$(my_register_name).EXTRA_TEST_CONFIGS := $(LOCAL_EXTRA_FULL_TEST_CONFIGS)
ALL_MODULES.$(my_register_name).TEST_MAINLINE_MODULES := $(LOCAL_TEST_MAINLINE_MODULES)
+ifndef LOCAL_IS_HOST_MODULE
+ALL_MODULES.$(my_register_name).FILE_CONTEXTS := $(LOCAL_FILE_CONTEXTS)
+endif
test_config :=
INSTALLABLE_FILES.$(LOCAL_INSTALLED_MODULE).MODULE := $(my_register_name)
diff --git a/core/clear_vars.mk b/core/clear_vars.mk
index d515db3..7d79baf 100644
--- a/core/clear_vars.mk
+++ b/core/clear_vars.mk
@@ -102,6 +102,7 @@
LOCAL_EXTRACT_APK:=
LOCAL_EXTRACT_DPI_APK:=
LOCAL_FDO_SUPPORT:=
+LOCAL_FILE_CONTEXTS:=
LOCAL_FINDBUGS_FLAGS:=
LOCAL_FORCE_STATIC_EXECUTABLE:=
LOCAL_FULL_CLASSES_JACOCO_JAR:=
diff --git a/core/tasks/find-shareduid-violation.mk b/core/tasks/find-shareduid-violation.mk
index 86052f2..972b1ec 100644
--- a/core/tasks/find-shareduid-violation.mk
+++ b/core/tasks/find-shareduid-violation.mk
@@ -28,5 +28,13 @@
$(shareduid_violation_modules_filename): $(find_shareduid_script)
$(shareduid_violation_modules_filename): $(AAPT2)
- $(find_shareduid_script) $(PRODUCT_OUT) $(AAPT2) > $@
+ $(find_shareduid_script) \
+ --product_out $(PRODUCT_OUT) \
+ --aapt $(AAPT2) \
+ --copy_out_system $(TARGET_COPY_OUT_SYSTEM) \
+ --copy_out_vendor $(TARGET_COPY_OUT_VENDOR) \
+ --copy_out_product $(TARGET_COPY_OUT_PRODUCT) \
+ --copy_out_system_ext $(TARGET_COPY_OUT_SYSTEM_EXT) \
+ > $@
+
$(call dist-for-goals,droidcore,$(shareduid_violation_modules_filename))
diff --git a/core/tasks/find-shareduid-violation.py b/core/tasks/find-shareduid-violation.py
index 1f8e4df..8dba5a1 100755
--- a/core/tasks/find-shareduid-violation.py
+++ b/core/tasks/find-shareduid-violation.py
@@ -14,19 +14,31 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
+import argparse
+import json
import os
import subprocess
-from glob import glob
-from collections import defaultdict
import sys
-import json
-if len(sys.argv) < 3:
- product_out = os.environ["PRODUCT_OUT"]
- aapt = "aapt2"
-else:
- product_out = sys.argv[1]
- aapt = sys.argv[2]
+from collections import defaultdict
+from glob import glob
+
+def parse_args():
+ """Parse commandline arguments."""
+ parser = argparse.ArgumentParser(description='Find sharedUserId violators')
+ parser.add_argument('--product_out', help='PRODUCT_OUT directory',
+ default=os.environ.get("PRODUCT_OUT"))
+ parser.add_argument('--aapt', help='Path to aapt or aapt2',
+ default="aapt2")
+ parser.add_argument('--copy_out_system', help='TARGET_COPY_OUT_SYSTEM',
+ default="system")
+ parser.add_argument('--copy_out_vendor', help='TARGET_COPY_OUT_VENDOR',
+ default="vendor")
+ parser.add_argument('--copy_out_product', help='TARGET_COPY_OUT_PRODUCT',
+ default="product")
+ parser.add_argument('--copy_out_system_ext', help='TARGET_COPY_OUT_SYSTEM_EXT',
+ default="system_ext")
+ return parser.parse_args()
def execute(cmd):
p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
@@ -45,7 +57,6 @@
else:
print(error_msg, file=sys.stderr)
sys.exit()
- return None
for l in manifest.split('\n'):
if "sharedUserId" in l:
@@ -53,18 +64,28 @@
return None
-partitions = ["system", "vendor", "product"]
+args = parse_args()
+
+product_out = args.product_out
+aapt = args.aapt
+
+partitions = (
+ ("system", args.copy_out_system),
+ ("vendor", args.copy_out_vendor),
+ ("product", args.copy_out_product),
+ ("system_ext", args.copy_out_system_ext),
+)
shareduid_app_dict = defaultdict(list)
-for p in partitions:
- for f in glob(os.path.join(product_out, p, "*", "*", "*.apk")):
+for part, location in partitions:
+ for f in glob(os.path.join(product_out, location, "*", "*", "*.apk")):
apk_file = os.path.basename(f)
shared_uid = extract_shared_uid(f)
if shared_uid is None:
continue
- shareduid_app_dict[shared_uid].append((p, apk_file))
+ shareduid_app_dict[shared_uid].append((part, apk_file))
output = defaultdict(lambda: defaultdict(list))