Merge "Enable multiple users and managed profiles on cuttlefish_tv"
diff --git a/shared/BoardConfig.mk b/shared/BoardConfig.mk
index ce42333..080fb72 100644
--- a/shared/BoardConfig.mk
+++ b/shared/BoardConfig.mk
@@ -38,6 +38,11 @@
BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := ext4
TARGET_COPY_OUT_PRODUCT := product
+# Build a separate system_ext.img partition
+BOARD_USES_SYSTEM_EXTIMAGE := true
+BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE := ext4
+TARGET_COPY_OUT_SYSTEM_EXT := system_ext
+
ifeq ($(TARGET_BUILD_SYSTEM_ROOT_IMAGE),true)
BOARD_BUILD_SYSTEM_ROOT_IMAGE := true
endif
@@ -156,7 +161,7 @@
ifeq ($(TARGET_USE_DYNAMIC_PARTITIONS),true)
BOARD_SUPER_PARTITION_SIZE := 6442450944
BOARD_SUPER_PARTITION_GROUPS := google_dynamic_partitions
- BOARD_GOOGLE_DYNAMIC_PARTITIONS_PARTITION_LIST := system vendor product
+ BOARD_GOOGLE_DYNAMIC_PARTITIONS_PARTITION_LIST := system vendor product system_ext
BOARD_GOOGLE_DYNAMIC_PARTITIONS_SIZE := 6442450944
BOARD_SUPER_PARTITION_METADATA_DEVICE := vda
BOARD_BUILD_SUPER_IMAGE_BY_DEFAULT := true
@@ -164,9 +169,10 @@
TARGET_RELEASETOOLS_EXTENSIONS := device/google/cuttlefish/shared
else
# No dynamic partitions support; we must specify maximum sizes
- BOARD_SYSTEMIMAGE_PARTITION_SIZE := 4294967296 # 4 GB
+ BOARD_SYSTEMIMAGE_PARTITION_SIZE := 2147483648 # 2GB
BOARD_VENDORIMAGE_PARTITION_SIZE := 536870912 # 512MB
- BOARD_PRODUCTIMAGE_PARTITION_SIZE := 1610612736 # 1.5GB
+ BOARD_PRODUCTIMAGE_PARTITION_SIZE := 2147483648 # 2GB
+ BOARD_SYSTEM_EXTIMAGE_PARTITION_SIZE := 1610612736 # 1.5GB
TARGET_NO_RECOVERY ?= true
endif
diff --git a/shared/config/composite-fstab.initrd-dynamic-partitions b/shared/config/composite-fstab.initrd-dynamic-partitions
index 69e49db..ed5b7e3 100644
--- a/shared/config/composite-fstab.initrd-dynamic-partitions
+++ b/shared/config/composite-fstab.initrd-dynamic-partitions
@@ -7,5 +7,6 @@
# Add all dynamic partitions except system, after this comment
vendor /vendor ext4 noatime,ro,errors=panic wait,logical,first_stage_mount
product /product ext4 noatime,ro,errors=panic wait,logical,first_stage_mount
+system_ext /system_ext ext4 noatime,ro,errors=panic wait,logical,first_stage_mount
/dev/block/zram0 none swap defaults zramsize=75%
/tmp /sdcard none defaults,bind recoveryonly
diff --git a/shared/config/composite-gsi.fstab b/shared/config/composite-gsi.fstab
index daa11e4..ceeeff2 100644
--- a/shared/config/composite-gsi.fstab
+++ b/shared/config/composite-gsi.fstab
@@ -1,2 +1,3 @@
/dev/block/by-name/vendor /vendor ext4 noatime,ro,errors=panic wait
/dev/block/by-name/product /product ext4 noatime,ro,errors=panic wait
+/dev/block/by-name/system_ext /system_ext ext4 noatime,ro,errors=panic wait
diff --git a/shared/config/fstab.initrd b/shared/config/fstab.initrd
index c07c7f1..51f1ade 100644
--- a/shared/config/fstab.initrd
+++ b/shared/config/fstab.initrd
@@ -5,5 +5,6 @@
/dev/block/vdd /metadata ext4 nodev,noatime,nosuid,errors=panic wait,formattable
/dev/block/vde /vendor ext4 noatime,ro,errors=panic wait
/dev/block/vdf /product ext4 noatime,ro,errors=panic wait
+/dev/block/vdg /system_ext ext4 noatime,ro,errors=panic wait
/dev/block/zram0 none swap defaults zramsize=75%
/tmp /sdcard none defaults,bind recoveryonly
diff --git a/shared/config/fstab.initrd-dynamic-partitions b/shared/config/fstab.initrd-dynamic-partitions
index f66c98c..c02b5ed 100644
--- a/shared/config/fstab.initrd-dynamic-partitions
+++ b/shared/config/fstab.initrd-dynamic-partitions
@@ -7,5 +7,6 @@
# Add all dynamic partitions except system, after this comment
vendor /vendor ext4 noatime,ro,errors=panic wait,logical,first_stage_mount
product /product ext4 noatime,ro,errors=panic wait,logical,first_stage_mount
+system_ext /system_ext ext4 noatime,ro,errors=panic wait,logical,first_stage_mount
/dev/block/zram0 none swap defaults zramsize=75%
/tmp /sdcard none defaults,bind recoveryonly
diff --git a/shared/config/gsi.fstab b/shared/config/gsi.fstab
index 76c902b..d727dd7 100644
--- a/shared/config/gsi.fstab
+++ b/shared/config/gsi.fstab
@@ -1,2 +1,3 @@
/dev/block/vde /vendor ext4 noatime,ro,errors=panic wait
/dev/block/vdf /product ext4 noatime,ro,errors=panic wait
+/dev/block/vdg /system_ext ext4 noatime,ro,errors=panic wait
diff --git a/shared/config/initrd-root.dts b/shared/config/initrd-root.dts
index d27d76a..8b4e749 100644
--- a/shared/config/initrd-root.dts
+++ b/shared/config/initrd-root.dts
@@ -45,6 +45,14 @@
mnt_flags = "noatime,ro,errors=panic";
fsmgr_flags = "wait";
};
+
+ system_ext {
+ compatible = "android,system_ext";
+ dev = "/dev/block/vdg";
+ type = "ext4";
+ mnt_flags = "noatime,ro,errors=panic";
+ fsmgr_flags = "wait";
+ };
};
};
};
diff --git a/shared/config/system-root.dts b/shared/config/system-root.dts
index db16f37..25e5bb9 100644
--- a/shared/config/system-root.dts
+++ b/shared/config/system-root.dts
@@ -37,6 +37,14 @@
mnt_flags = "noatime,ro,errors=panic";
fsmgr_flags = "wait";
};
+
+ system_ext {
+ compatible = "android,system_ext";
+ dev = "/dev/block/vdg";
+ type = "ext4";
+ mnt_flags = "noatime,ro,errors=panic";
+ fsmgr_flags = "wait";
+ };
};
};
};
diff --git a/shared/releasetools.py b/shared/releasetools.py
index e401139..198fcc2 100644
--- a/shared/releasetools.py
+++ b/shared/releasetools.py
@@ -25,6 +25,7 @@
# know that an image is present in source build but not in target build.
USERIMAGE_PARTITIONS = [
"product",
+ "system_ext",
]
diff --git a/shared/sepolicy/vendor/file_contexts b/shared/sepolicy/vendor/file_contexts
index 6c78a40..df45c01 100644
--- a/shared/sepolicy/vendor/file_contexts
+++ b/shared/sepolicy/vendor/file_contexts
@@ -7,12 +7,14 @@
/dev/block/vdd u:object_r:metadata_block_device:s0
/dev/block/vde u:object_r:system_block_device:s0
/dev/block/vdf u:object_r:system_block_device:s0
+/dev/block/vdg u:object_r:system_block_device:s0
/dev/block/vda1 u:object_r:system_block_device:s0
/dev/block/vda2 u:object_r:userdata_block_device:s0
/dev/block/vda3 u:object_r:cache_block_device:s0
/dev/block/vda4 u:object_r:metadata_block_device:s0
/dev/block/vda5 u:object_r:system_block_device:s0
/dev/block/vda6 u:object_r:system_block_device:s0
+/dev/block/vda7 u:object_r:system_block_device:s0
/dev/block/zram0 u:object_r:swap_block_device:s0
/dev/dri/card0 u:object_r:graphics_device:s0
/dev/dri/renderD128 u:object_r:graphics_device:s0