From f815df7e4e0d303d767dabcc96897e94a7596d56 Mon Sep 17 00:00:00 2001 From: Xindong Xu Date: Fri, 03 Aug 2018 10:10:16 +0000 Subject: einstein: support system as root [13/19] PD# 170278 support system as root Change-Id: I4613893a0ea6c222dd0979533ab418695a0cdcbf --- diff --git a/BoardConfig.mk b/BoardConfig.mk index 88a59a3..8777237 100644 --- a/BoardConfig.mk +++ b/BoardConfig.mk @@ -64,23 +64,60 @@ BOARD_HAVE_FLASHLIGHT := false BOARD_HAVE_HW_JPEGENC := true TARGET_USERIMAGES_USE_EXT4 := true -BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1946157056 BOARD_USERDATAIMAGE_PARTITION_SIZE := 576716800 BOARD_FLASH_BLOCK_SIZE := 4096 + BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4 -BOARD_VENDORIMAGE_PARTITION_SIZE := 268435456 BOARD_USES_VENDORIMAGE := true TARGET_COPY_OUT_VENDOR := vendor -BOARD_ROOT_EXTRA_FOLDERS := odm +ifneq ($(BOARD_BUILD_SYSTEM_ROOT_IMAGE), true) +BOARD_ROOT_EXTRA_FOLDERS += odm +endif + BOARD_ODMIMAGE_FILE_SYSTEM_TYPE := ext4 -BOARD_ODMIMAGE_PARTITION_SIZE := 268435456 BOARD_USES_ODMIMAGE := true +BOARD_USES_METADATA_PARTITION := true + +BOARD_USES_PRODUCTIMAGE := true +BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := ext4 +TARGET_COPY_OUT_PRODUCT := product + +BOARD_DTBIMAGE_PARTITION_SIZE := 262144 +BOARD_BOOTIMAGE_PARTITION_SIZE := 16777216 +BOARD_RECOVERYIMAGE_PARTITION_SIZE := 25165824 +ifeq ($(ANDROID_BUILD_TYPE), 64) +BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1551892480 +BOARD_VENDORIMAGE_PARTITION_SIZE := 268435456 +BOARD_ODMIMAGE_PARTITION_SIZE := 134217728 +BOARD_PRODUCTIMAGE_PARTITION_SIZE := 134217728 +else +BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1342177280 +BOARD_VENDORIMAGE_PARTITION_SIZE := 268435456 +BOARD_ODMIMAGE_PARTITION_SIZE := 134217728 +BOARD_PRODUCTIMAGE_PARTITION_SIZE := 134217728 +endif + +ifneq ($(USE_USB_AS_HOST),true) +BOARD_KERNEL_CMDLINE += --cmdline "otg_device=1" +endif + +ifeq ($(BOARD_BUILD_DISABLED_VBMETAIMAGE), true) +ifeq ($(BOARD_BUILD_SYSTEM_ROOT_IMAGE), true) +BOARD_KERNEL_CMDLINE += --cmdline "root=179:18" +endif +endif + TARGET_SUPPORT_USB_BURNING_V2 := true TARGET_AMLOGIC_RES_PACKAGE := device/amlogic/einstein/logo_img_files + +ifeq ($(BOARD_BUILD_SYSTEM_ROOT_IMAGE), true) +TARGET_RECOVERY_FSTAB := device/amlogic/einstein/recovery/recovery_system.fstab +else TARGET_RECOVERY_FSTAB := device/amlogic/einstein/recovery/recovery.fstab +endif #BOARD_HAL_STATIC_LIBRARIES := libhealthd.mboxdefault @@ -106,7 +143,7 @@ TARGET_RECOVERY_UI_LIB += \ libsystemcontrol_static ifneq ($(AB_OTA_UPDATER),true) TARGET_RECOVERY_UPDATER_LIBS := libinstall_amlogic -TARGET_RECOVERY_UPDATER_EXTRA_LIBS += libenv libsystemcontrol_static +TARGET_RECOVERY_UPDATER_EXTRA_LIBS += libenv libsystemcontrol_static libsecurity libfdt endif include device/amlogic/common/sepolicy.mk diff --git a/Kernel.mk b/Kernel.mk index 58f45d1..cbdf65f 100644 --- a/Kernel.mk +++ b/Kernel.mk @@ -7,10 +7,6 @@ INSTALLED_KERNEL_TARGET := $(PRODUCT_OUT)/kernel BOARD_MKBOOTIMG_ARGS := --second $(PRODUCT_OUT)/dt.img --kernel_offset $(BOARD_KERNEL_OFFSET) -ifneq ($(USE_USB_AS_HOST),true) -BOARD_MKBOOTIMG_ARGS += --cmdline "otg_device=1" -endif - ifneq ($(TARGET_KERNEL_BUILT_FROM_SOURCE), true) TARGET_PREBUILT_KERNEL := device/amlogic/einstein-kernel/Image.gz INSTALLED_BOARDDTB_TARGET := $(PRODUCT_OUT)/dt.img @@ -125,7 +121,7 @@ savekernelconfig: $(KERNEL_OUT) $(KERNEL_CONFIG) build-modules-quick: $(media-modules) -$(INSTALLED_KERNEL_TARGET): $(INTERMEDIATES_KERNEL) | $(ACP) +$(INSTALLED_KERNEL_TARGET): $(INTERMEDIATES_KERNEL) $(PRODUCT_OUT)/dt.img | $(ACP) @echo "Kernel installed" $(transform-prebuilt-to-target) diff --git a/device.mk b/device.mk index 3a70274..74cf313 100644 --- a/device.mk +++ b/device.mk @@ -14,8 +14,15 @@ # limitations under the License. # +ifeq ($(BOARD_BUILD_SYSTEM_ROOT_IMAGE), true) +PRODUCT_COPY_FILES += \ + device/amlogic/common/products/mbox/init.amlogic.system.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.amlogic.rc +else +PRODUCT_COPY_FILES += \ + device/amlogic/common/products/mbox/init.amlogic.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.amlogic.rc +endif + PRODUCT_COPY_FILES += \ - device/amlogic/common/products/tv/init.amlogic.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.amlogic.rc \ device/amlogic/einstein/init.amlogic.usb.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.amlogic.usb.rc \ device/amlogic/einstein/init.amlogic.board.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.amlogic.board.rc diff --git a/einstein.mk b/einstein.mk index 80ac11b..6ff801b 100644 --- a/einstein.mk +++ b/einstein.mk @@ -83,6 +83,15 @@ BOARD_WIDEVINE_TA_PATH := vendor/amlogic/ OTA_UP_PART_NUM_CHANGED := true #AB_OTA_UPDATER :=true +BUILD_WITH_AVB := true + +ifeq ($(BUILD_WITH_AVB),true) +#BOARD_AVB_ENABLE := true +BOARD_BUILD_DISABLED_VBMETAIMAGE := true +BOARD_AVB_ALGORITHM := SHA256_RSA2048 +BOARD_AVB_KEY_PATH := device/amlogic/common/security/testkey_rsa2048.pem +BOARD_AVB_ROLLBACK_INDEX := 0 +endif ifeq ($(AB_OTA_UPDATER),true) AB_OTA_PARTITIONS := \ @@ -93,10 +102,39 @@ AB_OTA_PARTITIONS := \ TARGET_BOOTLOADER_CONTROL_BLOCK := true TARGET_NO_RECOVERY := true +ifneq ($(BUILD_WITH_AVB),true) TARGET_PARTITION_DTSI := partition_mbox_ab.dtsi else +TARGET_PARTITION_DTSI := partition_mbox_ab_avb.dtsi +endif +else TARGET_NO_RECOVERY := false -TARGET_PARTITION_DTSI := partition_mbox_normal.dtsi + +BOARD_BUILD_SYSTEM_ROOT_IMAGE := true + +ifeq ($(ANDROID_BUILD_TYPE), 64) +TARGET_PARTITION_DTSI := partition_mbox_normal_P_64.dtsi +else +TARGET_PARTITION_DTSI := partition_mbox_normal_P_32.dtsi +endif + +ifneq ($(BUILD_WITH_AVB),true) +TARGET_FIRMWARE_DTSI := firmware_normal.dtsi +else +ifeq ($(BOARD_BUILD_SYSTEM_ROOT_IMAGE), true) +ifeq ($(BOARD_BUILD_DISABLED_VBMETAIMAGE), true) +TARGET_FIRMWARE_DTSI := firmware_system.dtsi +else +TARGET_FIRMWARE_DTSI := firmware_avb_system.dtsi +endif +else +ifeq ($(BOARD_BUILD_DISABLED_VBMETAIMAGE), true) +TARGET_FIRMWARE_DTSI := firmware_normal.dtsi +else +TARGET_FIRMWARE_DTSI := firmware_avb.dtsi +endif +endif +endif BOARD_CACHEIMAGE_PARTITION_SIZE := 69206016 BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4 @@ -165,43 +203,19 @@ PRODUCT_PACKAGES += \ fs_mgr \ slideshow endif -ifneq ($(BOARD_USES_RECOVERY_AS_BOOT), true) -ifeq ($(AB_OTA_UPDATER),true) -ifeq ($(BUILD_WITH_DM_VERITY), true) -PRODUCT_COPY_FILES += \ - device/amlogic/einstein/fstab.AB.verity.amlogic:root/fstab.amlogic -else -PRODUCT_COPY_FILES += \ - device/amlogic/einstein/fstab.AB.amlogic:root/fstab.amlogic -endif -else -ifeq ($(BUILD_WITH_DM_VERITY), true) + +ifeq ($(BOARD_BUILD_SYSTEM_ROOT_IMAGE), true) PRODUCT_COPY_FILES += \ - device/amlogic/einstein/fstab.verity.amlogic:root/fstab.amlogic + device/amlogic/einstein/fstab.system.amlogic:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.amlogic else +ifneq ($(BOARD_USES_RECOVERY_AS_BOOT), true) PRODUCT_COPY_FILES += \ device/amlogic/einstein/fstab.amlogic:root/fstab.amlogic -endif -endif -else -ifeq ($(AB_OTA_UPDATER),true) -ifeq ($(BUILD_WITH_DM_VERITY), true) -PRODUCT_COPY_FILES += \ - device/amlogic/einstein/fstab.AB.verity.amlogic:recovery/root/fstab.amlogic -else -PRODUCT_COPY_FILES += \ - device/amlogic/einstein/fstab.AB.amlogic:recovery/root/fstab.amlogic -endif -else -ifeq ($(BUILD_WITH_DM_VERITY), true) -PRODUCT_COPY_FILES += \ - device/amlogic/einstein/fstab.verity.amlogic:recovery/root/fstab.amlogic else PRODUCT_COPY_FILES += \ device/amlogic/einstein/fstab.amlogic:recovery/root/fstab.amlogic endif endif -endif ######################################################################### # @@ -368,6 +382,12 @@ PRODUCT_COPY_FILES += \ # A/B update # ######################################################################### +ifeq ($(BUILD_WITH_AVB),true) +PRODUCT_PACKAGES += \ + bootctrl.avb \ + libavb_user +endif + ifeq ($(AB_OTA_UPDATER),true) PRODUCT_PACKAGES += \ bootctrl.amlogic \ diff --git a/fstab.AB.amlogic b/fstab.AB.amlogic deleted file mode 100644 index c1a642a..0000000 --- a/fstab.AB.amlogic +++ b/dev/null @@ -1,14 +0,0 @@ -# Android fstab file. -# -# The filesystem that contains the filesystem checker binary (typically /system) cannot -# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK - -/dev/block/platform/d0074000.emmc/misc /misc emmc defaults defaults -/dev/block/data /data ext4 noatime,nosuid,nodev,nodelalloc,nomblk_io_submit,errors=panic wait,check,fileencryption=aes-256-xts,quota,formattable -/devices/*.sd/mmc_host/sd* auto auto defaults voldmanaged=sdcard1:auto,encryptable=userdata -/devices/*dwc3/xhci-hcd.0.auto/usb?/*/host*/target*/block/sd* auto auto defaults voldmanaged=usb:auto,encryptable=userdata -/devices/*dwc3/xhci-hcd.0.auto/usb?/*/host*/target*/block/sr* auto auto defaults voldmanaged=sr0:auto,encryptable=userdata -/dev/block/loop auto loop defaults voldmanaged=loop:auto -# Add for zram. zramsize can be in numeric (byte) , in percent -/dev/block/zram0 /swap_zram0 swap defaults wait,zramsize=524288000 -/dev/block/tee /tee ext4 noatime,nosuid,nodev,nodelalloc,nomblk_io_submit,errors=panic wait,check,formattable diff --git a/fstab.AB.verity.amlogic b/fstab.AB.verity.amlogic deleted file mode 100644 index c1a642a..0000000 --- a/fstab.AB.verity.amlogic +++ b/dev/null @@ -1,14 +0,0 @@ -# Android fstab file. -# -# The filesystem that contains the filesystem checker binary (typically /system) cannot -# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK - -/dev/block/platform/d0074000.emmc/misc /misc emmc defaults defaults -/dev/block/data /data ext4 noatime,nosuid,nodev,nodelalloc,nomblk_io_submit,errors=panic wait,check,fileencryption=aes-256-xts,quota,formattable -/devices/*.sd/mmc_host/sd* auto auto defaults voldmanaged=sdcard1:auto,encryptable=userdata -/devices/*dwc3/xhci-hcd.0.auto/usb?/*/host*/target*/block/sd* auto auto defaults voldmanaged=usb:auto,encryptable=userdata -/devices/*dwc3/xhci-hcd.0.auto/usb?/*/host*/target*/block/sr* auto auto defaults voldmanaged=sr0:auto,encryptable=userdata -/dev/block/loop auto loop defaults voldmanaged=loop:auto -# Add for zram. zramsize can be in numeric (byte) , in percent -/dev/block/zram0 /swap_zram0 swap defaults wait,zramsize=524288000 -/dev/block/tee /tee ext4 noatime,nosuid,nodev,nodelalloc,nomblk_io_submit,errors=panic wait,check,formattable diff --git a/fstab.amlogic b/fstab.amlogic index 8640511..6a80651 100644 --- a/fstab.amlogic +++ b/fstab.amlogic @@ -6,6 +6,7 @@ /dev/block/misc /misc emmc defaults defaults /dev/block/data /data ext4 noatime,nosuid,nodev,nodelalloc,nomblk_io_submit,errors=panic wait,check,fileencryption=aes-256-xts,quota,formattable /dev/block/cache /cache ext4 noatime,nosuid,nodev,nodelalloc,nomblk_io_submit,errors=panic wait,check,formattable +/dev/block/metadata /metadata ext4 noatime,nosuid,nodev,nodelalloc,nomblk_io_submit,errors=panic wait,check,formattable /devices/*.sd/mmc_host/sd* auto auto defaults voldmanaged=sdcard1:auto,encryptable=userdata /devices/*dwc3/xhci-hcd.0.auto/usb?/*/host*/target*/block/sd* auto auto defaults voldmanaged=usb:auto,encryptable=userdata /devices/*dwc3/xhci-hcd.0.auto/usb?/*/host*/target*/block/sr* auto auto defaults voldmanaged=sr0:auto,encryptable=userdata diff --git a/fstab.verity.amlogic b/fstab.system.amlogic index 8640511..f8f295c 100644 --- a/fstab.verity.amlogic +++ b/fstab.system.amlogic @@ -6,11 +6,12 @@ /dev/block/misc /misc emmc defaults defaults /dev/block/data /data ext4 noatime,nosuid,nodev,nodelalloc,nomblk_io_submit,errors=panic wait,check,fileencryption=aes-256-xts,quota,formattable /dev/block/cache /cache ext4 noatime,nosuid,nodev,nodelalloc,nomblk_io_submit,errors=panic wait,check,formattable +/dev/block/metadata /metadata ext4 noatime,nosuid,nodev,nodelalloc,nomblk_io_submit,errors=panic wait,check,formattable /devices/*.sd/mmc_host/sd* auto auto defaults voldmanaged=sdcard1:auto,encryptable=userdata /devices/*dwc3/xhci-hcd.0.auto/usb?/*/host*/target*/block/sd* auto auto defaults voldmanaged=usb:auto,encryptable=userdata /devices/*dwc3/xhci-hcd.0.auto/usb?/*/host*/target*/block/sr* auto auto defaults voldmanaged=sr0:auto,encryptable=userdata /dev/block/loop auto loop defaults voldmanaged=loop:auto -/dev/block/param /param ext4 noatime,nosuid,nodev,nomblk_io_submit,errors=remount-ro wait,check,formattable +/dev/block/param /mnt/vendor/param ext4 noatime,nosuid,nodev,nomblk_io_submit,errors=remount-ro wait,check,formattable # Add for zram. zramsize can be in numeric (byte) , in percent -/dev/block/zram0 /swap_zram0 swap defaults wait,zramsize=524288000 -/dev/block/tee /tee ext4 noatime,nosuid,nodev,nodelalloc,nomblk_io_submit,errors=panic wait,check,formattable +/dev/block/zram0 /mnt/vendor/swap_zram0 swap defaults wait,zramsize=524288000 +/dev/block/tee /mnt/vendor/tee ext4 noatime,nosuid,nodev,nodelalloc,nomblk_io_submit,errors=panic wait,check,formattable diff --git a/recovery/recovery.fstab b/recovery/recovery.fstab index 2b95b94..db1f5cf 100644 --- a/recovery/recovery.fstab +++ b/recovery/recovery.fstab @@ -1,13 +1,29 @@ #device mountpoint fstype options flags? (fstab version 2) /dev/block/bootloader /bootloader emmc defaults defaults /dev/block/logo /logo emmc defaults defaults +/dev/block/vbmeta /vbmeta emmc defaults defaults /dev/block/recovery /recovery emmc defaults defaults /dev/block/boot /boot emmc defaults defaults /dev/block/misc /misc emmc defaults defaults /dev/block/system /system ext4 defaults defaults /dev/block/vendor /vendor ext4 defaults defaults /dev/block/odm /odm ext4 defaults defaults +/dev/block/product /product ext4 defaults defaults +/dev/block/metadata /metadata ext4 defaults defaults +/dev/block/tee /tee ext4 defaults defaults /dev/block/cache /cache ext4 defaults defaults /dev/block/data /data ext4 defaults encryptable=footer -/dev/block/mmcblk#p# /sdcard vfat defaults defaults +/dev/block/mmcblk1p1 /sdcard vfat defaults defaults +/dev/block/mmcblk1p2 /sdcard vfat defaults defaults +/dev/block/mmcblk1p3 /sdcard vfat defaults defaults +/dev/block/mmcblk1p4 /sdcard vfat defaults defaults +/dev/block/mmcblk1p5 /sdcard vfat defaults defaults +/dev/block/mmcblk1p6 /sdcard vfat defaults defaults +/dev/block/mmcblk2p1 /sdcard vfat defaults defaults +/dev/block/mmcblk2p2 /sdcard vfat defaults defaults +/dev/block/mmcblk2p3 /sdcard vfat defaults defaults +/dev/block/mmcblk2p4 /sdcard vfat defaults defaults +/dev/block/mmcblk2p5 /sdcard vfat defaults defaults +/dev/block/mmcblk2p6 /sdcard vfat defaults defaults +/dev/block/mmcblk /sdcard vfat defaults defaults /dev/block/sd## /udisk auto defaults defaults diff --git a/recovery/recovery_system.fstab b/recovery/recovery_system.fstab new file mode 100644 index 0000000..a1cccc7 --- a/dev/null +++ b/recovery/recovery_system.fstab @@ -0,0 +1,29 @@ +#device mountpoint fstype options flags? (fstab version 2) +/dev/block/bootloader /bootloader emmc defaults defaults +/dev/block/logo /logo emmc defaults defaults +/dev/block/vbmeta /vbmeta emmc defaults defaults +/dev/block/recovery /recovery emmc defaults defaults +/dev/block/boot /boot emmc defaults defaults +/dev/block/misc /misc emmc defaults defaults +/dev/block/system / ext4 defaults defaults +/dev/block/vendor /vendor ext4 defaults defaults +/dev/block/odm /odm ext4 defaults defaults +/dev/block/product /product ext4 defaults defaults +/dev/block/metadata /metadata ext4 defaults defaults +/dev/block/tee /tee ext4 defaults defaults +/dev/block/cache /cache ext4 defaults defaults +/dev/block/data /data ext4 defaults encryptable=footer +/dev/block/mmcblk1p1 /sdcard vfat defaults defaults +/dev/block/mmcblk1p2 /sdcard vfat defaults defaults +/dev/block/mmcblk1p3 /sdcard vfat defaults defaults +/dev/block/mmcblk1p4 /sdcard vfat defaults defaults +/dev/block/mmcblk1p5 /sdcard vfat defaults defaults +/dev/block/mmcblk1p6 /sdcard vfat defaults defaults +/dev/block/mmcblk2p1 /sdcard vfat defaults defaults +/dev/block/mmcblk2p2 /sdcard vfat defaults defaults +/dev/block/mmcblk2p3 /sdcard vfat defaults defaults +/dev/block/mmcblk2p4 /sdcard vfat defaults defaults +/dev/block/mmcblk2p5 /sdcard vfat defaults defaults +/dev/block/mmcblk2p6 /sdcard vfat defaults defaults +/dev/block/mmcblk /sdcard vfat defaults defaults +/dev/block/sd## /udisk auto defaults defaults -- cgit