Enable system_ext

Bug: 134359158
Bug: 137083818
Bug: 137169253
Test: build and flash; check if /system_ext is not empty
Change-Id: Ia34b5c2872789c835db80e26e7bead7bbc707fe0
Merged-In: Ia34b5c2872789c835db80e26e7bead7bbc707fe0
diff --git a/BoardConfig-common.mk b/BoardConfig-common.mk
index b002a90..d57aab5 100644
--- a/BoardConfig-common.mk
+++ b/BoardConfig-common.mk
@@ -68,6 +68,7 @@
     vbmeta \
     dtbo \
     product \
+    system_ext \
     vbmeta_system
 
 # Partitions (listed in the file) to be wiped under recovery.
@@ -79,7 +80,7 @@
     libfstab
 
 # Enable chain partition for system.
-BOARD_AVB_VBMETA_SYSTEM := system
+BOARD_AVB_VBMETA_SYSTEM := system system_ext
 BOARD_AVB_VBMETA_SYSTEM_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem
 BOARD_AVB_VBMETA_SYSTEM_ALGORITHM := SHA256_RSA2048
 BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
@@ -88,6 +89,9 @@
 # product.img
 BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := ext4
 
+# system_ext.img
+BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE := ext4
+
 # userdata.img
 TARGET_USERIMAGES_USE_F2FS := true
 BOARD_USERDATAIMAGE_PARTITION_SIZE := 10737418240
@@ -229,7 +233,8 @@
 BOARD_GOOGLE_DYNAMIC_PARTITIONS_PARTITION_LIST := \
     system \
     vendor \
-    product
+    product \
+    system_ext
 
 #BOARD_GOOGLE_DYNAMIC_PARTITIONS_SIZE is set to BOARD_SUPER_PARTITION_SIZE / 2 - 4MB
 BOARD_GOOGLE_DYNAMIC_PARTITIONS_SIZE := 4873781248
diff --git a/fstab.hardware b/fstab.hardware
index 69f9310..aa60a8f 100644
--- a/fstab.hardware
+++ b/fstab.hardware
@@ -2,6 +2,7 @@
 
 #<src>                                                  <mnt_point>            <type>  <mnt_flags and options>                              <fs_mgr_flags>
 system                                                  /system                ext4    ro,barrier=1                                         wait,slotselect,avb=vbmeta_system,logical,first_stage_mount
+system_ext                                              /system_ext            ext4    ro,barrier=1                                         wait,slotselect,avb=vbmeta_system,logical,first_stage_mount
 vendor                                                  /vendor                ext4    ro,barrier=1                                         wait,slotselect,avb=vbmeta,logical,first_stage_mount
 product                                                 /product               ext4    ro,barrier=1                                         wait,slotselect,avb,logical,first_stage_mount
 /dev/block/by-name/metadata                             /metadata              ext4    noatime,nosuid,nodev,discard,sync                    wait,formattable,first_stage_mount
diff --git a/gpt-utils/gpt-utils.h b/gpt-utils/gpt-utils.h
index d7dad1f..d372368 100644
--- a/gpt-utils/gpt-utils.h
+++ b/gpt-utils/gpt-utils.h
@@ -84,7 +84,8 @@
             "dtbo", "hyp", "keymaster", "qupfw", "storsec", \
             "tz", "uefisecapp", "vbmeta", "vbmeta_system", "xbl_config"
 
-#define AB_PTN_LIST PTN_SWAP_LIST, "boot", "system", "vendor", "modem", "product"
+#define AB_PTN_LIST PTN_SWAP_LIST, "boot", "system", "vendor", "modem", \
+                                   "system_ext", "product"
 #define BOOT_DEV_DIR    "/dev/block/bootdevice/by-name"
 
 /******************************************************************************