From d395c6ff3f31126f1bf2c0a08c96a8f185d594b1 Mon Sep 17 00:00:00 2001 From: Yi-Yo Chiang Date: Sat, 11 Sep 2021 19:31:28 +0800 Subject: [PATCH] Add PRODUCT_INSTALL_DEBUG_POLICY_TO_SYSTEM_EXT If this option is set, then an additional copy of the debug policy can be installed to the GSI, and the init-second-stage of GSI could load debug policy from GSI /system_ext when debug-ramdisk is used. Bug: 188067818 Test: Flash RQ2A.201207.001 bramble-user with debug ramdisk & flash gsi_arm64-user from master, device can boot and `adb root` works Change-Id: I9c3dad8bb6c5fa88b16762193446dc7e54f326c8 Merged-In: I9c3dad8bb6c5fa88b16762193446dc7e54f326c8 (cherry picked from commit 0a468fe904768240fe011f1c47fa89b3165c265c) --- core/android_soong_config_vars.mk | 1 + core/product.mk | 5 +++++ core/product_config.mk | 6 ++++++ 3 files changed, 12 insertions(+) diff --git a/core/android_soong_config_vars.mk b/core/android_soong_config_vars.mk index 5e63a25d9c..1b4aeb558e 100644 --- a/core/android_soong_config_vars.mk +++ b/core/android_soong_config_vars.mk @@ -28,6 +28,7 @@ $(call add_soong_config_namespace,ANDROID) $(call add_soong_config_var,ANDROID,TARGET_ENABLE_MEDIADRM_64) $(call add_soong_config_var,ANDROID,BOARD_USES_ODMIMAGE) +$(call add_soong_config_var,ANDROID,PRODUCT_INSTALL_DEBUG_POLICY_TO_SYSTEM_EXT) ifeq (,$(findstring com.google.android.conscrypt,$(PRODUCT_PACKAGES))) # Prebuilt module SDKs require prebuilt modules to work, and currently diff --git a/core/product.mk b/core/product.mk index 015fe44ba9..21fc06e65f 100644 --- a/core/product.mk +++ b/core/product.mk @@ -427,6 +427,11 @@ _product_list_vars += PRODUCT_INTER_PARTITION_JAVA_LIBRARY_ALLOWLIST _product_single_value_vars += PRODUCT_INSTALL_EXTRA_FLATTENED_APEXES +# Install a copy of the debug policy to the system_ext partition, and allow +# init-second-stage to load debug policy from system_ext. +# This option is only meant to be set by GSI products. +_product_single_value_vars += PRODUCT_INSTALL_DEBUG_POLICY_TO_SYSTEM_EXT + .KATI_READONLY := _product_single_value_vars _product_list_vars _product_var_list :=$= $(_product_single_value_vars) $(_product_list_vars) diff --git a/core/product_config.mk b/core/product_config.mk index 5c85fb85f1..679453e522 100644 --- a/core/product_config.mk +++ b/core/product_config.mk @@ -350,6 +350,12 @@ ifneq ($(filter-out 0 1,$(words $(PRODUCT_ADB_KEYS))),) $(error Only one file may be in PRODUCT_ADB_KEYS: $(PRODUCT_ADB_KEYS)) endif +ifdef PRODUCT_INSTALL_DEBUG_POLICY_TO_SYSTEM_EXT + ifeq (,$(filter gsi_arm gsi_arm64 gsi_x86 gsi_x86_64,$(PRODUCT_NAME))) + $(error Only GSI products are allowed to set PRODUCT_INSTALL_DEBUG_POLICY_TO_SYSTEM_EXT) + endif +endif + ifndef PRODUCT_USE_DYNAMIC_PARTITIONS PRODUCT_USE_DYNAMIC_PARTITIONS := $(PRODUCT_RETROFIT_DYNAMIC_PARTITIONS) endif