summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-06-08 17:16:58 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-06-08 17:16:58 +0000
commitf914383c9fc8449f9403e93ed73d0cb04c70230d (patch)
tree0bbc3b103f6a817ebe14201d1926146f75d8bf94
parentbb1a7830212cacff4664610896f17cb0af490ffc (diff)
parent67214105f57dd0a0ead0a796199620898a2dbe2d (diff)
downloadgoldfish-android13-platform-release.tar.gz
Change-Id: Ib74cc6f86c359337ba43f425578c3ad89fe96fd4
-rw-r--r--64bitonly/manifest.xml2
-rw-r--r--64bitonly/product/arm64-vendor.mk25
-rw-r--r--64bitonly/product/vendor.mk4
-rw-r--r--64bitonly/product/x86_64-vendor.mk28
-rw-r--r--arm64-kernel.mk32
-rw-r--r--arm64-vendor.mk25
-rw-r--r--data/etc/dummy.vbmeta.imgbin4096 -> 0 bytes
-rw-r--r--emulator-info.txt2
-rw-r--r--fstab.goldfish7
-rw-r--r--fstab.ranchu8
-rw-r--r--fstab.ranchu.arm9
-rw-r--r--fstab.ranchu.arm.ex11
-rw-r--r--fstab.ranchu.early6
-rw-r--r--fstab.ranchu.early.arm6
-rw-r--r--fstab.ranchu.initrd5
-rw-r--r--fstab.ranchu.initrd.arm4
-rw-r--r--fstab.ranchu.initrd.arm.ex7
-rw-r--r--fstab.ranchu.initrd.ex7
-rw-r--r--fstab.ranchu.initrd.noavb5
-rw-r--r--fstab.ranchu.initrd.noavb.ex7
-rw-r--r--fstab.ranchu.mips6
-rw-r--r--fstab.ranchu.noavb8
-rw-r--r--fstab.ranchu.noavb.ex10
-rw-r--r--fstab.ranchu.x86 (renamed from fstab.ranchu.ex)3
-rw-r--r--init.ranchu.rc9
-rw-r--r--kernel_modules.blocklist1
-rw-r--r--manifest.xml2
-rw-r--r--pc/data/etc/pc.xml8
-rw-r--r--sensors/multihal_sensors.cpp1
-rw-r--r--sensors/multihal_sensors.h6
-rw-r--r--sensors/multihal_sensors_qemu.cpp39
-rw-r--r--sensors/sensor_list.cpp20
-rw-r--r--sensors/sensor_list.h1
-rw-r--r--sepolicy/common/dlkm_loader.te30
-rw-r--r--sepolicy/common/file_contexts1
-rw-r--r--sepolicy/common/property.te1
-rw-r--r--sepolicy/common/property_contexts1
-rw-r--r--vendor.mk2
-rw-r--r--x86-vendor.mk28
-rw-r--r--x86_64-kernel.mk31
-rw-r--r--x86_64-vendor.mk29
41 files changed, 190 insertions, 247 deletions
diff --git a/64bitonly/manifest.xml b/64bitonly/manifest.xml
index 964fd245..a2f67889 100644
--- a/64bitonly/manifest.xml
+++ b/64bitonly/manifest.xml
@@ -11,7 +11,7 @@
<hal format="hidl">
<name>android.hardware.bluetooth.audio</name>
<transport>hwbinder</transport>
- <version>2.0</version>
+ <version>2.1</version>
<interface>
<name>IBluetoothAudioProvidersFactory</name>
<instance>default</instance>
diff --git a/64bitonly/product/arm64-vendor.mk b/64bitonly/product/arm64-vendor.mk
index e47cfd75..ee39483c 100644
--- a/64bitonly/product/arm64-vendor.mk
+++ b/64bitonly/product/arm64-vendor.mk
@@ -13,32 +13,13 @@ TARGET_USES_MKE2FS := true
# Note: the following lines need to stay at the beginning so that it can
# take priority and override the rules it inherit from other mk files
# see copy file rules in core/Makefile
-ifeq ($(QEMU_USE_SYSTEM_EXT_PARTITIONS),true)
- PRODUCT_COPY_FILES += \
- device/generic/goldfish/fstab.ranchu.initrd.arm.ex:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/first_stage_ramdisk/fstab.ranchu \
- device/generic/goldfish/fstab.ranchu.initrd.arm.ex:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/fstab.ranchu \
- device/generic/goldfish/fstab.ranchu.arm.ex:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.ranchu \
- device/generic/goldfish/data/etc/encryptionkey.img:encryptionkey.img \
- device/generic/goldfish/task_profiles.json:$(TARGET_COPY_OUT_VENDOR)/etc/task_profiles.json
-else
- PRODUCT_COPY_FILES += \
- device/generic/goldfish/fstab.ranchu.initrd.arm:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/first_stage_ramdisk/fstab.ranchu \
- device/generic/goldfish/fstab.ranchu.initrd.arm:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/fstab.ranchu \
+PRODUCT_COPY_FILES += \
device/generic/goldfish/fstab.ranchu.arm:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.ranchu \
+ device/generic/goldfish/fstab.ranchu.arm:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/first_stage_ramdisk/fstab.ranchu \
device/generic/goldfish/data/etc/encryptionkey.img:encryptionkey.img \
- device/generic/goldfish/task_profiles.json:$(TARGET_COPY_OUT_VENDOR)/etc/task_profiles.json
-endif
-
-
-PRODUCT_COPY_FILES += \
+ device/generic/goldfish/task_profiles.json:$(TARGET_COPY_OUT_VENDOR)/etc/task_profiles.json \
$(EMULATOR_KERNEL_FILE):kernel-ranchu \
device/generic/goldfish/data/etc/advancedFeatures.ini.arm:advancedFeatures.ini \
device/generic/goldfish/camera/media_codecs_performance_c2_arm64.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance_c2.xml \
EMULATOR_VENDOR_NO_GNSS := true
-
-ifeq ($(QEMU_DISABLE_AVB),true)
- PRODUCT_COPY_FILES += \
- device/generic/goldfish/data/etc/dummy.vbmeta.img:$(PRODUCT_OUT)/vbmeta.img \
-
-endif
diff --git a/64bitonly/product/vendor.mk b/64bitonly/product/vendor.mk
index 9a613d45..909fb230 100644
--- a/64bitonly/product/vendor.mk
+++ b/64bitonly/product/vendor.mk
@@ -68,7 +68,8 @@ PRODUCT_PACKAGES += \
goldfish_overlay_connectivity_gsi \
EmulatorTetheringConfigOverlay \
MultiDisplayProvider \
- libGoldfishProfiler
+ libGoldfishProfiler \
+ dlkm_loader
ifneq ($(EMULATOR_VENDOR_NO_FINGERPRINT), true)
PRODUCT_PACKAGES += \
@@ -290,7 +291,6 @@ PRODUCT_COPY_FILES += \
device/generic/goldfish/init.ranchu-net.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.ranchu-net.sh \
device/generic/goldfish/init.ranchu.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.ranchu.rc \
device/generic/goldfish/init.system_ext.rc:$(TARGET_COPY_OUT_SYSTEM_EXT)/etc/init/init.system_ext.rc \
- device/generic/goldfish/fstab.ranchu:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.ranchu \
device/generic/goldfish/ueventd.ranchu.rc:$(TARGET_COPY_OUT_VENDOR)/etc/ueventd.rc \
device/generic/goldfish/input/virtio_input_rotary.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/virtio_input_rotary.idc \
device/generic/goldfish/input/qwerty2.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/qwerty2.idc \
diff --git a/64bitonly/product/x86_64-vendor.mk b/64bitonly/product/x86_64-vendor.mk
index 10797041..dc334a54 100644
--- a/64bitonly/product/x86_64-vendor.mk
+++ b/64bitonly/product/x86_64-vendor.mk
@@ -32,30 +32,6 @@ TARGET_USES_MKE2FS := true
PRODUCT_PROPERTY_OVERRIDES += \
debug.stagefright.ccodec=4
-ifeq ($(QEMU_DISABLE_AVB),true)
- ifeq ($(QEMU_USE_SYSTEM_EXT_PARTITIONS),true)
- PRODUCT_COPY_FILES += \
- device/generic/goldfish/data/etc/dummy.vbmeta.img:$(PRODUCT_OUT)/vbmeta.img \
- device/generic/goldfish/fstab.ranchu.initrd.noavb.ex:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/first_stage_ramdisk/fstab.ranchu \
- device/generic/goldfish/fstab.ranchu.initrd.noavb.ex:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/fstab.ranchu \
- device/generic/goldfish/fstab.ranchu.noavb.ex:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.ranchu
- else
- PRODUCT_COPY_FILES += \
- device/generic/goldfish/data/etc/dummy.vbmeta.img:$(PRODUCT_OUT)/vbmeta.img \
- device/generic/goldfish/fstab.ranchu.initrd.noavb:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/first_stage_ramdisk/fstab.ranchu \
- device/generic/goldfish/fstab.ranchu.initrd.noavb:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/fstab.ranchu \
- device/generic/goldfish/fstab.ranchu.noavb:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.ranchu
- endif
-endif
-
-ifeq ($(QEMU_USE_SYSTEM_EXT_PARTITIONS),true)
PRODUCT_COPY_FILES += \
- device/generic/goldfish/fstab.ranchu.initrd.ex:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/first_stage_ramdisk/fstab.ranchu \
- device/generic/goldfish/fstab.ranchu.initrd.ex:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/fstab.ranchu \
- device/generic/goldfish/fstab.ranchu.ex:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.ranchu
-else
-PRODUCT_COPY_FILES += \
- device/generic/goldfish/fstab.ranchu.initrd:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/first_stage_ramdisk/fstab.ranchu \
- device/generic/goldfish/fstab.ranchu.initrd:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/fstab.ranchu \
- device/generic/goldfish/fstab.ranchu:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.ranchu
-endif
+ device/generic/goldfish/fstab.ranchu.x86:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/first_stage_ramdisk/fstab.ranchu \
+ device/generic/goldfish/fstab.ranchu.x86:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.ranchu
diff --git a/arm64-kernel.mk b/arm64-kernel.mk
index b679e17a..6326121c 100644
--- a/arm64-kernel.mk
+++ b/arm64-kernel.mk
@@ -1,8 +1,32 @@
TARGET_KERNEL_USE ?= 5.15
-KERNEL_MODULES_PATH := kernel/prebuilts/common-modules/virtual-device/$(TARGET_KERNEL_USE)/arm64
+KERNEL_ARTIFACTS_PATH := kernel/prebuilts/$(TARGET_KERNEL_USE)/arm64
-BOARD_VENDOR_RAMDISK_KERNEL_MODULES += \
- $(filter-out $(KERNEL_MODULES_EXCLUDE), $(wildcard $(KERNEL_MODULES_PATH)/*.ko))
+VIRTUAL_DEVICE_KERNEL_MODULES_PATH := \
+ kernel/prebuilts/common-modules/virtual-device/$(TARGET_KERNEL_USE)/arm64
-EMULATOR_KERNEL_FILE := kernel/prebuilts/$(TARGET_KERNEL_USE)/arm64/kernel-$(TARGET_KERNEL_USE)-gz
+# The list of modules to reach the second stage. For performance reasons we
+# don't want to put all modules into the ramdisk.
+RAMDISK_KERNEL_MODULES := \
+ virtio_blk.ko \
+ virtio_console.ko \
+ virtio_dma_buf.ko \
+ virtio_mmio.ko \
+ virtio_pci.ko \
+ virtio_pci_modern_dev.ko \
+ virtio-rng.ko \
+ vmw_vsock_virtio_transport.ko \
+
+BOARD_SYSTEM_KERNEL_MODULES := $(wildcard $(KERNEL_ARTIFACTS_PATH)/*.ko)
+
+BOARD_VENDOR_RAMDISK_KERNEL_MODULES := \
+ $(patsubst %,$(VIRTUAL_DEVICE_KERNEL_MODULES_PATH)/%,$(RAMDISK_KERNEL_MODULES))
+
+BOARD_VENDOR_KERNEL_MODULES := \
+ $(filter-out $(BOARD_VENDOR_RAMDISK_KERNEL_MODULES),\
+ $(wildcard $(VIRTUAL_DEVICE_KERNEL_MODULES_PATH)/*.ko))
+
+BOARD_VENDOR_KERNEL_MODULES_BLOCKLIST_FILE := \
+ device/generic/goldfish/kernel_modules.blocklist
+
+EMULATOR_KERNEL_FILE := $(KERNEL_ARTIFACTS_PATH)/kernel-$(TARGET_KERNEL_USE)-gz
diff --git a/arm64-vendor.mk b/arm64-vendor.mk
index 32eddf3c..daa8280e 100644
--- a/arm64-vendor.mk
+++ b/arm64-vendor.mk
@@ -13,31 +13,12 @@ TARGET_USES_MKE2FS := true
# Note: the following lines need to stay at the beginning so that it can
# take priority and override the rules it inherit from other mk files
# see copy file rules in core/Makefile
-ifeq ($(QEMU_USE_SYSTEM_EXT_PARTITIONS),true)
- PRODUCT_COPY_FILES += \
- device/generic/goldfish/fstab.ranchu.initrd.arm.ex:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/first_stage_ramdisk/fstab.ranchu \
- device/generic/goldfish/fstab.ranchu.initrd.arm.ex:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/fstab.ranchu \
- device/generic/goldfish/fstab.ranchu.arm.ex:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.ranchu \
- device/generic/goldfish/data/etc/encryptionkey.img:encryptionkey.img \
- device/generic/goldfish/task_profiles.json:$(TARGET_COPY_OUT_VENDOR)/etc/task_profiles.json
-else
- PRODUCT_COPY_FILES += \
- device/generic/goldfish/fstab.ranchu.initrd.arm:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/first_stage_ramdisk/fstab.ranchu \
- device/generic/goldfish/fstab.ranchu.initrd.arm:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/fstab.ranchu \
+PRODUCT_COPY_FILES += \
+ device/generic/goldfish/fstab.ranchu.arm:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/first_stage_ramdisk/fstab.ranchu \
device/generic/goldfish/fstab.ranchu.arm:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.ranchu \
device/generic/goldfish/data/etc/encryptionkey.img:encryptionkey.img \
- device/generic/goldfish/task_profiles.json:$(TARGET_COPY_OUT_VENDOR)/etc/task_profiles.json
-endif
-
-
-PRODUCT_COPY_FILES += \
+ device/generic/goldfish/task_profiles.json:$(TARGET_COPY_OUT_VENDOR)/etc/task_profiles.json \
$(EMULATOR_KERNEL_FILE):kernel-ranchu \
device/generic/goldfish/data/etc/advancedFeatures.ini.arm:advancedFeatures.ini \
EMULATOR_VENDOR_NO_GNSS := true
-
-ifeq ($(QEMU_DISABLE_AVB),true)
- PRODUCT_COPY_FILES += \
- device/generic/goldfish/data/etc/dummy.vbmeta.img:$(PRODUCT_OUT)/vbmeta.img \
-
-endif
diff --git a/data/etc/dummy.vbmeta.img b/data/etc/dummy.vbmeta.img
deleted file mode 100644
index 79892eae..00000000
--- a/data/etc/dummy.vbmeta.img
+++ /dev/null
Binary files differ
diff --git a/emulator-info.txt b/emulator-info.txt
index 43c68fc3..bb25bb12 100644
--- a/emulator-info.txt
+++ b/emulator-info.txt
@@ -1,2 +1,2 @@
# Emulator (stable) version
-require version-emulator=8735603
+require version-emulator=9458377
diff --git a/fstab.goldfish b/fstab.goldfish
deleted file mode 100644
index 77f6b138..00000000
--- a/fstab.goldfish
+++ /dev/null
@@ -1,7 +0,0 @@
-# Android fstab file.
-#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
-# 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/mtdblock0 /system ext4 ro,barrier=1 wait
-/dev/block/mtdblock1 /data ext4 noatime,nosuid,nodev,barrier=1,nomblk_io_submit wait,check,latemount
-/devices/platform/goldfish_mmc.0* auto auto defaults voldmanaged=sdcard:auto,encryptable=userdata
diff --git a/fstab.ranchu b/fstab.ranchu
deleted file mode 100644
index 157c9ed1..00000000
--- a/fstab.ranchu
+++ /dev/null
@@ -1,8 +0,0 @@
-# Android fstab file.
-#<dev> <mnt_point> <type> <mnt_flags options> <fs_mgr_flags>
-system /system ext4 ro,barrier=1 wait,logical,avb=vbmeta,first_stage_mount
-vendor /vendor ext4 ro,barrier=1 wait,logical,first_stage_mount
-/dev/block/vdc /data ext4 noatime,nosuid,nodev,nomblk_io_submit,errors=panic wait,check,quota,fileencryption=aes-256-xts:aes-256-cts,reservedsize=128M,latemount
-/dev/block/pci/pci0000:00/0000:00:06.0/by-name/metadata /metadata ext4 noatime,nosuid,nodev wait,formattable,first_stage_mount
-/devices/*/block/vdf auto auto defaults voldmanaged=sdcard:auto,encryptable=userdata
-dev/block/zram0 none swap defaults zramsize=75%
diff --git a/fstab.ranchu.arm b/fstab.ranchu.arm
index 9ef7f023..a365e6da 100644
--- a/fstab.ranchu.arm
+++ b/fstab.ranchu.arm
@@ -4,5 +4,10 @@
# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
system /system ext4 ro,barrier=1 wait,logical,first_stage_mount
vendor /vendor ext4 ro,barrier=1 wait,logical,first_stage_mount
-/dev/block/vdc /data ext4 noatime,nosuid,nodev,nomblk_io_submit,errors=panic wait,check,quota,latemount
-/devices/*/block/vde auto auto defaults voldmanaged=sdcard:auto,encryptable=userdata
+product /product ext4 ro,barrier=1 wait,logical,first_stage_mount
+system_dlkm /system_dlkm erofs ro wait,logical,first_stage_mount
+system_ext /system_ext ext4 ro,barrier=1 wait,logical,first_stage_mount
+/dev/block/vdc /data ext4 noatime,nosuid,nodev,nomblk_io_submit,errors=panic wait,check,quota,fileencryption=aes-256-xts:aes-256-cts,reservedsize=128M,fsverity,keydirectory=/metadata/vold/metadata_encryption,latemount
+/dev/block/platform/a003c00.virtio_mmio/by-name/metadata /metadata ext4 noatime,nosuid,nodev wait,formattable,first_stage_mount
+/devices/*/block/vdf auto auto defaults voldmanaged=sdcard:auto,encryptable=userdata
+/dev/block/zram0 none swap defaults zramsize=75%
diff --git a/fstab.ranchu.arm.ex b/fstab.ranchu.arm.ex
deleted file mode 100644
index 837deef0..00000000
--- a/fstab.ranchu.arm.ex
+++ /dev/null
@@ -1,11 +0,0 @@
-# Android fstab file.
-#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
-# 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
-system /system ext4 ro,barrier=1 wait,logical,first_stage_mount
-vendor /vendor ext4 ro,barrier=1 wait,logical,first_stage_mount
-product /product ext4 ro,barrier=1 wait,logical,first_stage_mount
-system_ext /system_ext ext4 ro,barrier=1 wait,logical,first_stage_mount
-/dev/block/vdc /data ext4 noatime,nosuid,nodev,nomblk_io_submit,errors=panic wait,check,quota,fileencryption=aes-256-xts:aes-256-cts,reservedsize=128M,fsverity,keydirectory=/metadata/vold/metadata_encryption,latemount
-/dev/block/platform/a003c00.virtio_mmio/by-name/metadata /metadata ext4 noatime,nosuid,nodev wait,formattable,first_stage_mount
-/devices/*/block/vdf auto auto defaults voldmanaged=sdcard:auto,encryptable=userdata
diff --git a/fstab.ranchu.early b/fstab.ranchu.early
deleted file mode 100644
index 915d9231..00000000
--- a/fstab.ranchu.early
+++ /dev/null
@@ -1,6 +0,0 @@
-# Android fstab file.
-#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
-# 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/vda /system ext4 ro wait
-/dev/block/vde /vendor ext4 ro wait
diff --git a/fstab.ranchu.early.arm b/fstab.ranchu.early.arm
deleted file mode 100644
index 5854b59d..00000000
--- a/fstab.ranchu.early.arm
+++ /dev/null
@@ -1,6 +0,0 @@
-# Android fstab file.
-#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
-# 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/vda /system ext4 ro wait
-/dev/block/vdd /vendor ext4 ro wait
diff --git a/fstab.ranchu.initrd b/fstab.ranchu.initrd
deleted file mode 100644
index c3799601..00000000
--- a/fstab.ranchu.initrd
+++ /dev/null
@@ -1,5 +0,0 @@
-# Android fstab file for ramdisk
-#<dev> <mnt_point> <type> <mnt_flags options> <fs_mgr_flags>
-system /system ext4 ro,barrier=1 wait,logical,avb=vbmeta,first_stage_mount
-vendor /vendor ext4 ro,barrier=1 wait,logical,first_stage_mount
-/dev/block/pci/pci0000:00/0000:00:06.0/by-name/metadata /metadata ext4 noatime,nosuid,nodev wait,formattable,first_stage_mount
diff --git a/fstab.ranchu.initrd.arm b/fstab.ranchu.initrd.arm
deleted file mode 100644
index 56056634..00000000
--- a/fstab.ranchu.initrd.arm
+++ /dev/null
@@ -1,4 +0,0 @@
-# Android fstab file.
-#<dev> <mnt_point> <type> <mnt_flags options> <fs_mgr_flags>
-system /system ext4 ro,barrier=1 wait,logical,first_stage_mount
-vendor /vendor ext4 ro,barrier=1 wait,logical,first_stage_mount
diff --git a/fstab.ranchu.initrd.arm.ex b/fstab.ranchu.initrd.arm.ex
deleted file mode 100644
index b9e30f17..00000000
--- a/fstab.ranchu.initrd.arm.ex
+++ /dev/null
@@ -1,7 +0,0 @@
-# Android fstab file.
-#<dev> <mnt_point> <type> <mnt_flags options> <fs_mgr_flags>
-system /system ext4 ro,barrier=1 wait,logical,first_stage_mount
-vendor /vendor ext4 ro,barrier=1 wait,logical,first_stage_mount
-product /product ext4 ro,barrier=1 wait,logical,first_stage_mount
-system_ext /system_ext ext4 ro,barrier=1 wait,logical,first_stage_mount
-/dev/block/platform/a003c00.virtio_mmio/by-name/metadata /metadata ext4 noatime,nosuid,nodev wait,formattable,first_stage_mount
diff --git a/fstab.ranchu.initrd.ex b/fstab.ranchu.initrd.ex
deleted file mode 100644
index 971d83a0..00000000
--- a/fstab.ranchu.initrd.ex
+++ /dev/null
@@ -1,7 +0,0 @@
-# Android fstab file for ramdisk
-#<dev> <mnt_point> <type> <mnt_flags options> <fs_mgr_flags>
-system /system ext4 ro,barrier=1 wait,logical,avb=vbmeta,first_stage_mount
-vendor /vendor ext4 ro,barrier=1 wait,logical,first_stage_mount
-product /product ext4 ro,barrier=1 wait,logical,first_stage_mount
-system_ext /system_ext ext4 ro,barrier=1 wait,logical,first_stage_mount
-/dev/block/pci/pci0000:00/0000:00:06.0/by-name/metadata /metadata ext4 noatime,nosuid,nodev wait,formattable,first_stage_mount
diff --git a/fstab.ranchu.initrd.noavb b/fstab.ranchu.initrd.noavb
deleted file mode 100644
index 53da533c..00000000
--- a/fstab.ranchu.initrd.noavb
+++ /dev/null
@@ -1,5 +0,0 @@
-# Android fstab file for ramdisk
-#<dev> <mnt_point> <type> <mnt_flags options> <fs_mgr_flags>
-system /system ext4 ro,barrier=1 wait,logical,first_stage_mount
-vendor /vendor ext4 ro,barrier=1 wait,logical,first_stage_mount
-/dev/block/pci/pci0000:00/0000:00:06.0/by-name/metadata /metadata ext4 noatime,nosuid,nodev wait,formattable,first_stage_mount
diff --git a/fstab.ranchu.initrd.noavb.ex b/fstab.ranchu.initrd.noavb.ex
deleted file mode 100644
index c3be28a7..00000000
--- a/fstab.ranchu.initrd.noavb.ex
+++ /dev/null
@@ -1,7 +0,0 @@
-# Android fstab file for ramdisk
-#<dev> <mnt_point> <type> <mnt_flags options> <fs_mgr_flags>
-system /system ext4 ro,barrier=1 wait,logical,first_stage_mount
-vendor /vendor ext4 ro,barrier=1 wait,logical,first_stage_mount
-product /product ext4 ro,barrier=1 wait,logical,first_stage_mount
-system_ext /system_ext ext4 ro,barrier=1 wait,logical,first_stage_mount
-/dev/block/pci/pci0000:00/0000:00:06.0/by-name/metadata /metadata ext4 noatime,nosuid,nodev wait,formattable,first_stage_mount
diff --git a/fstab.ranchu.mips b/fstab.ranchu.mips
deleted file mode 100644
index 251966ba..00000000
--- a/fstab.ranchu.mips
+++ /dev/null
@@ -1,6 +0,0 @@
-# Android fstab file.
-#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
-# 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/vdc /data ext4 noatime,nosuid,nodev,nomblk_io_submit,errors=panic wait,check,latemount
-/devices/*/block/vde auto auto defaults voldmanaged=sdcard:auto,encryptable=userdata
diff --git a/fstab.ranchu.noavb b/fstab.ranchu.noavb
deleted file mode 100644
index cec831e3..00000000
--- a/fstab.ranchu.noavb
+++ /dev/null
@@ -1,8 +0,0 @@
-# Android fstab file.
-#<dev> <mnt_point> <type> <mnt_flags options> <fs_mgr_flags>
-system /system ext4 ro,barrier=1 wait,logical,first_stage_mount
-vendor /vendor ext4 ro,barrier=1 wait,logical,first_stage_mount
-/dev/block/vdc /data ext4 noatime,nosuid,nodev,nomblk_io_submit,errors=panic wait,check,quota,fileencryption=aes-256-xts:aes-256-cts,reservedsize=128M,latemount
-/dev/block/pci/pci0000:00/0000:00:06.0/by-name/metadata /metadata ext4 noatime,nosuid,nodev wait,formattable,first_stage_mount
-/devices/*/block/vdf auto auto defaults voldmanaged=sdcard:auto,encryptable=userdata
-dev/block/zram0 none swap defaults zramsize=75%
diff --git a/fstab.ranchu.noavb.ex b/fstab.ranchu.noavb.ex
deleted file mode 100644
index 9a0df81b..00000000
--- a/fstab.ranchu.noavb.ex
+++ /dev/null
@@ -1,10 +0,0 @@
-# Android fstab file.
-#<dev> <mnt_point> <type> <mnt_flags options> <fs_mgr_flags>
-system /system ext4 ro,barrier=1 wait,logical,first_stage_mount
-vendor /vendor ext4 ro,barrier=1 wait,logical,first_stage_mount
-product /product ext4 ro,barrier=1 wait,logical,first_stage_mount
-system_ext /system_ext ext4 ro,barrier=1 wait,logical,first_stage_mount
-/dev/block/vdc /data ext4 noatime,nosuid,nodev,nomblk_io_submit,errors=panic wait,check,quota,fileencryption=aes-256-xts:aes-256-cts,reservedsize=128M,latemount
-/dev/block/pci/pci0000:00/0000:00:06.0/by-name/metadata /metadata ext4 noatime,nosuid,nodev wait,formattable,first_stage_mount
-/devices/*/block/vdf auto auto defaults voldmanaged=sdcard:auto,encryptable=userdata
-dev/block/zram0 none swap defaults zramsize=75%
diff --git a/fstab.ranchu.ex b/fstab.ranchu.x86
index 5fe5b801..0de03e63 100644
--- a/fstab.ranchu.ex
+++ b/fstab.ranchu.x86
@@ -3,8 +3,9 @@
system /system ext4 ro,barrier=1 wait,logical,avb=vbmeta,first_stage_mount
vendor /vendor ext4 ro,barrier=1 wait,logical,first_stage_mount
product /product ext4 ro,barrier=1 wait,logical,first_stage_mount
+system_dlkm /system_dlkm erofs ro wait,logical,first_stage_mount
system_ext /system_ext ext4 ro,barrier=1 wait,logical,first_stage_mount
/dev/block/vdc /data ext4 noatime,nosuid,nodev,nomblk_io_submit,errors=panic wait,check,quota,fileencryption=aes-256-xts:aes-256-cts,reservedsize=128M,fsverity,keydirectory=/metadata/vold/metadata_encryption,latemount
/dev/block/pci/pci0000:00/0000:00:06.0/by-name/metadata /metadata ext4 noatime,nosuid,nodev wait,formattable,first_stage_mount
/devices/*/block/vdf auto auto defaults voldmanaged=sdcard:auto,encryptable=userdata
-dev/block/zram0 none swap defaults zramsize=75%
+/dev/block/zram0 none swap defaults zramsize=75%
diff --git a/init.ranchu.rc b/init.ranchu.rc
index 870947e8..2688f18a 100644
--- a/init.ranchu.rc
+++ b/init.ranchu.rc
@@ -24,6 +24,8 @@ on early-init
# GTS tests are migrated to ro.boot.qemu.
setprop ro.kernel.qemu 1
+ start vendor.dlkm_loader
+
on init
# set RLIMIT_MEMLOCK to 8MB for BPF network statistics
setrlimit memlock 8388608 8388608
@@ -103,6 +105,13 @@ on boot
# Create an unused USB gadget to allow sysfs testing
mkdir /config/usb_gadget/g1 0770 root root
+service vendor.dlkm_loader /vendor/bin/dlkm_loader
+ class main
+ user root
+ group root system
+ disabled
+ oneshot
+
service ranchu-setup /vendor/bin/init.ranchu-core.sh
class core
user root
diff --git a/kernel_modules.blocklist b/kernel_modules.blocklist
new file mode 100644
index 00000000..8dc5e712
--- /dev/null
+++ b/kernel_modules.blocklist
@@ -0,0 +1 @@
+blocklist vkms.ko
diff --git a/manifest.xml b/manifest.xml
index 1d2e7c8a..b4a4bdb5 100644
--- a/manifest.xml
+++ b/manifest.xml
@@ -11,7 +11,7 @@
<hal format="hidl">
<name>android.hardware.bluetooth.audio</name>
<transport>hwbinder</transport>
- <version>2.0</version>
+ <version>2.1</version>
<interface>
<name>IBluetoothAudioProvidersFactory</name>
<instance>default</instance>
diff --git a/pc/data/etc/pc.xml b/pc/data/etc/pc.xml
index 3eb3c786..4dc8493e 100644
--- a/pc/data/etc/pc.xml
+++ b/pc/data/etc/pc.xml
@@ -26,8 +26,14 @@
<!-- For PC-like device we mainly uses hardware keyboards. -->
<unavailable-feature name="android.software.input_methods" />
- <!-- For PC-like device we usually don't have telephony. -->
+ <!-- For PC-like device we usually don't have telephony. -->
+ <!-- These features are added in handheld_core_hardware.xml. -->
<unavailable-feature name="android.hardware.telephony" />
+ <unavailable-feature name="android.hardware.telephony.data" />
+ <unavailable-feature name="android.hardware.telephony.gsm" />
+ <unavailable-feature name="android.hardware.telephony.ims" />
+ <unavailable-feature name="android.hardware.telephony.radio.access" />
+ <unavailable-feature name="android.hardware.telephony.subscription" />
<!-- PC-like device should not support MOTION_TRACKING capability level. -->
<unavailable-feature name="android.hardware.camera.ar" />
diff --git a/sensors/multihal_sensors.cpp b/sensors/multihal_sensors.cpp
index e9c2edcf..f7eea987 100644
--- a/sensors/multihal_sensors.cpp
+++ b/sensors/multihal_sensors.cpp
@@ -71,7 +71,6 @@ MultihalSensors::MultihalSensors()
}
m_availableSensorsMask = hostSensorsMask
- & ~(1U << kSensorHandleGyroscopeFieldUncalibrated)
& ((1u << getSensorNumber()) - 1);
ALOGI("%s:%d: host sensors mask=%x, available sensors mask=%x",
diff --git a/sensors/multihal_sensors.h b/sensors/multihal_sensors.h
index 37b58f9e..60d6b927 100644
--- a/sensors/multihal_sensors.h
+++ b/sensors/multihal_sensors.h
@@ -20,6 +20,7 @@
#include <atomic>
#include <condition_variable>
#include <cstdint>
+#include <random>
#include <queue>
#include <thread>
#include <vector>
@@ -104,6 +105,8 @@ private:
void qemuSensorListenerThread();
void batchThread();
+ double randomError(float lo, float hi);
+
static constexpr char kCMD_QUIT = 'q';
bool qemuSensorThreadSendCommand(char cmd) const;
@@ -147,6 +150,9 @@ private:
std::atomic<bool> m_batchRunning = true;
mutable std::mutex m_mtx;
+
+ std::random_device rd;
+ std::mt19937 gen = std::mt19937(rd());
};
} // namespace goldfish
diff --git a/sensors/multihal_sensors_qemu.cpp b/sensors/multihal_sensors_qemu.cpp
index fbb3e34a..778ffc6e 100644
--- a/sensors/multihal_sensors_qemu.cpp
+++ b/sensors/multihal_sensors_qemu.cpp
@@ -18,6 +18,7 @@
#include <utils/SystemClock.h>
#include <math.h>
#include <qemud.h>
+#include <random>
#include "multihal_sensors.h"
#include "sensor_list.h"
@@ -82,6 +83,11 @@ bool MultihalSensors::setAllQemuSensors(const bool enabled) {
return true;
}
+double MultihalSensors::randomError(float lo, float hi) {
+ std::uniform_real_distribution<> distribution(lo, hi);
+ return distribution(gen);
+}
+
void MultihalSensors::parseQemuSensorEvent(const int pipe,
QemuSensorsProtocolState* state) {
char buf[256];
@@ -92,13 +98,11 @@ void MultihalSensors::parseQemuSensorEvent(const int pipe,
const int64_t nowNs = ::android::elapsedRealtimeNano();
buf[len] = 0;
const char* end = buf + len;
-
bool parsed = false;
Event event;
EventPayload* payload = &event.u;
ahs10::Vec3* vec3 = &payload->vec3;
ahs10::Uncal* uncal = &payload->uncal;
-
if (const char* values = testPrefix(buf, end, "acceleration", ':')) {
if (sscanf(values, "%f:%f:%f",
&vec3->x, &vec3->y, &vec3->z) == 3) {
@@ -109,6 +113,19 @@ void MultihalSensors::parseQemuSensorEvent(const int pipe,
postSensorEvent(event);
parsed = true;
}
+ } else if (const char* values = testPrefix(buf, end, "acceleration-uncalibrated", ':')) {
+ if (sscanf(values, "%f:%f:%f",
+ &uncal->x, &uncal->y, &uncal->z) == 3) {
+ // A little bias noise to pass CTS
+ uncal->x_bias = randomError(-0.003f, 0.003f);
+ uncal->y_bias = randomError(-0.003f, 0.003f);
+ uncal->z_bias = randomError(-0.003f, 0.003f);
+ event.timestamp = nowNs + state->timeBiasNs;
+ event.sensorHandle = kSensorHandleAccelerometerUncalibrated;
+ event.sensorType = SensorType::ACCELEROMETER_UNCALIBRATED;
+ postSensorEvent(event);
+ parsed = true;
+ }
} else if (const char* values = testPrefix(buf, end, "gyroscope", ':')) {
if (sscanf(values, "%f:%f:%f",
&vec3->x, &vec3->y, &vec3->z) == 3) {
@@ -122,9 +139,14 @@ void MultihalSensors::parseQemuSensorEvent(const int pipe,
} else if (const char* values = testPrefix(buf, end, "gyroscope-uncalibrated", ':')) {
if (sscanf(values, "%f:%f:%f",
&uncal->x, &uncal->y, &uncal->z) == 3) {
- uncal->x_bias = 0.0;
- uncal->y_bias = 0.0;
- uncal->z_bias = 0.0;
+ //Uncalibrated gyro values needs to be close to 0,0,0.
+ uncal->x += randomError(0.00005f, 0.001f);
+ uncal->y += randomError(0.00005f, 0.001f);
+ uncal->z += randomError(0.00005f, 0.001f);
+ // Bias noise
+ uncal->x_bias = randomError(-0.0003f, 0.0003f);
+ uncal->y_bias = randomError(-0.0003f, 0.0003f);
+ uncal->z_bias = randomError(-0.0003f, 0.0003f);
event.timestamp = nowNs + state->timeBiasNs;
event.sensorHandle = kSensorHandleGyroscopeFieldUncalibrated;
event.sensorType = SensorType::GYROSCOPE_UNCALIBRATED;
@@ -154,9 +176,10 @@ void MultihalSensors::parseQemuSensorEvent(const int pipe,
} else if (const char* values = testPrefix(buf, end, "magnetic-uncalibrated", ':')) {
if (sscanf(values, "%f:%f:%f",
&uncal->x, &uncal->y, &uncal->z) == 3) {
- uncal->x_bias = 0.0;
- uncal->y_bias = 0.0;
- uncal->z_bias = 0.0;
+ // A little bias noise to pass CTS
+ uncal->x_bias = randomError( -0.003f, 0.003f);
+ uncal->y_bias = randomError(-0.003f, 0.003f);
+ uncal->z_bias = randomError(-0.003f, 0.003f);
event.timestamp = nowNs + state->timeBiasNs;
event.sensorHandle = kSensorHandleMagneticFieldUncalibrated;
event.sensorType = SensorType::MAGNETIC_FIELD_UNCALIBRATED;
diff --git a/sensors/sensor_list.cpp b/sensors/sensor_list.cpp
index 9eb96288..44278e72 100644
--- a/sensors/sensor_list.cpp
+++ b/sensors/sensor_list.cpp
@@ -40,6 +40,7 @@ const char* const kQemuSensorName[] = {
"heart-rate",
"rgbc-light",
"wrist-tilt",
+ "acceleration-uncalibrated",
};
const SensorInfo kAllSensors[] = {
@@ -338,6 +339,25 @@ const SensorInfo kAllSensors[] = {
.flags = SensorFlagBits::DATA_INJECTION |
SensorFlagBits::SPECIAL_REPORTING_MODE |
SensorFlagBits::WAKE_UP
+ },
+ {
+ .sensorHandle = kSensorHandleAccelerometerUncalibrated,
+ .name = "Goldfish 3-axis Accelerometer Uncalibrated",
+ .vendor = kAospVendor,
+ .version = 1,
+ .type = SensorType::ACCELEROMETER_UNCALIBRATED,
+ .typeAsString = "android.sensor.accelerometer_uncalibrated",
+ .maxRange = 39.3,
+ .resolution = 1.0 / 4032.0,
+ .power = 3.0,
+ .minDelay = 10000,
+ .fifoReservedEventCount = 0,
+ .fifoMaxEventCount = 0,
+ .requiredPermission = "",
+ .maxDelay = 500000,
+ .flags = SensorFlagBits::DATA_INJECTION |
+ SensorFlagBits::ADDITIONAL_INFO |
+ SensorFlagBits::CONTINUOUS_MODE
}};
constexpr int kSensorNumber = sizeof(kAllSensors) / sizeof(kAllSensors[0]);
diff --git a/sensors/sensor_list.h b/sensors/sensor_list.h
index a6a36f60..86e4d98f 100644
--- a/sensors/sensor_list.h
+++ b/sensors/sensor_list.h
@@ -38,6 +38,7 @@ constexpr int kSensorHandleHingeAngle1 = 12;
constexpr int kSensorHandleHingeAngle2 = 13;
constexpr int kSensorHandleHeartRate = 14;
constexpr int kSensorHandleWristTilt = 16;
+constexpr int kSensorHandleAccelerometerUncalibrated = 17;
int getSensorNumber();
bool isSensorHandleValid(int h);
diff --git a/sepolicy/common/dlkm_loader.te b/sepolicy/common/dlkm_loader.te
new file mode 100644
index 00000000..6f633c7b
--- /dev/null
+++ b/sepolicy/common/dlkm_loader.te
@@ -0,0 +1,30 @@
+type dlkm_loader, domain;
+type dlkm_loader_exec, exec_type, vendor_file_type, file_type;
+
+init_daemon_domain(dlkm_loader)
+
+# Allow insmod on vendor, system and system_dlkm partitions
+allow dlkm_loader self:capability sys_module;
+allow dlkm_loader system_dlkm_file:dir r_dir_perms;
+allow dlkm_loader system_dlkm_file:file r_file_perms;
+allow dlkm_loader system_dlkm_file:system module_load;
+allow dlkm_loader system_file:system module_load;
+allow dlkm_loader vendor_file:system module_load;
+
+# needed for libmodprobe to read kernel commandline
+allow dlkm_loader proc_cmdline:file r_file_perms;
+
+# Needed because CONFIG_USB_DUMMY_HCD adds some additional logic to
+# finit_module() syscall, causing that syscall to create/update keyrings.
+# Once we remove CONFIG_USB_DUMMY_HCD config, self:key write permission can be
+# removed.
+allow dlkm_loader self:key write;
+
+# Allow writing to kernel log
+allow dlkm_loader kmsg_device:chr_file rw_file_perms;
+
+# dlkm_loader searches tracefs while looking for modules
+dontaudit dlkm_loader debugfs_bootreceiver_tracing:dir search;
+dontaudit dlkm_loader debugfs_mm_events_tracing:dir search;
+
+set_prop(dlkm_loader, vendor_dlkm_prop)
diff --git a/sepolicy/common/file_contexts b/sepolicy/common/file_contexts
index a999cc26..d58270b3 100644
--- a/sepolicy/common/file_contexts
+++ b/sepolicy/common/file_contexts
@@ -35,6 +35,7 @@
/vendor/bin/init\.ranchu-net\.sh u:object_r:goldfish_setup_exec:s0
/vendor/bin/qemu-adb-keys u:object_r:qemu_adb_keys_exec:s0
/vendor/bin/qemu-device-state u:object_r:qemu_device_state_exec:s0
+/vendor/bin/dlkm_loader u:object_r:dlkm_loader_exec:s0
/vendor/bin/qemu-props u:object_r:qemu_props_exec:s0
/vendor/bin/mac80211_create_radios u:object_r:mac80211_create_radios_exec:s0
/vendor/bin/hw/libgoldfish-rild u:object_r:rild_exec:s0
diff --git a/sepolicy/common/property.te b/sepolicy/common/property.te
index 9b081d7f..126fdb54 100644
--- a/sepolicy/common/property.te
+++ b/sepolicy/common/property.te
@@ -1,4 +1,5 @@
system_restricted_prop(vendor_qemu_adb_prop)
+vendor_restricted_prop(vendor_dlkm_prop)
vendor_restricted_prop(vendor_qemu_prop)
vendor_restricted_prop(vendor_net_wlan0_prop)
vendor_restricted_prop(vendor_net_eth0_prop)
diff --git a/sepolicy/common/property_contexts b/sepolicy/common/property_contexts
index 9aecb779..316437dc 100644
--- a/sepolicy/common/property_contexts
+++ b/sepolicy/common/property_contexts
@@ -1,3 +1,4 @@
+vendor.dlkm.modules.ready u:object_r:vendor_dlkm_prop:s0 exact bool
vendor.qemu.adb.copykey u:object_r:vendor_qemu_adb_prop:s0 exact bool
vendor.qemu.keyboard_layout u:object_r:vendor_qemu_prop:s0 exact string
vendor.qemu.logcat_filter u:object_r:vendor_qemu_prop:s0 exact string
diff --git a/vendor.mk b/vendor.mk
index dcc61f11..f558be35 100644
--- a/vendor.mk
+++ b/vendor.mk
@@ -67,6 +67,7 @@ PRODUCT_PACKAGES += \
libstagefright_goldfish_avcdec \
MultiDisplayProvider \
libGoldfishProfiler \
+ dlkm_loader
ifneq ($(EMULATOR_VENDOR_NO_FINGERPRINT), true)
PRODUCT_PACKAGES += \
@@ -288,7 +289,6 @@ PRODUCT_COPY_FILES += \
device/generic/goldfish/init.ranchu-net.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.ranchu-net.sh \
device/generic/goldfish/init.ranchu.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.ranchu.rc \
device/generic/goldfish/init.system_ext.rc:$(TARGET_COPY_OUT_SYSTEM_EXT)/etc/init/init.system_ext.rc \
- device/generic/goldfish/fstab.ranchu:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.ranchu \
device/generic/goldfish/ueventd.ranchu.rc:$(TARGET_COPY_OUT_VENDOR)/etc/ueventd.rc \
device/generic/goldfish/input/virtio_input_rotary.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/virtio_input_rotary.idc \
device/generic/goldfish/input/qwerty2.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/qwerty2.idc \
diff --git a/x86-vendor.mk b/x86-vendor.mk
index 3a0bd024..03b7d6d8 100644
--- a/x86-vendor.mk
+++ b/x86-vendor.mk
@@ -26,30 +26,6 @@ PRODUCT_SHIPPING_API_LEVEL := 33
PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS := false
TARGET_USES_MKE2FS := true
-ifeq ($(QEMU_DISABLE_AVB),true)
- ifeq ($(QEMU_USE_SYSTEM_EXT_PARTITIONS),true)
- PRODUCT_COPY_FILES += \
- device/generic/goldfish/data/etc/dummy.vbmeta.img:$(PRODUCT_OUT)/vbmeta.img \
- device/generic/goldfish/fstab.ranchu.initrd.noavb.ex:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/first_stage_ramdisk/fstab.ranchu \
- device/generic/goldfish/fstab.ranchu.initrd.noavb.ex:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/fstab.ranchu \
- device/generic/goldfish/fstab.ranchu.noavb.ex:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.ranchu
- else
- PRODUCT_COPY_FILES += \
- device/generic/goldfish/data/etc/dummy.vbmeta.img:$(PRODUCT_OUT)/vbmeta.img \
- device/generic/goldfish/fstab.ranchu.initrd.noavb:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/first_stage_ramdisk/fstab.ranchu \
- device/generic/goldfish/fstab.ranchu.initrd.noavb:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/fstab.ranchu \
- device/generic/goldfish/fstab.ranchu.noavb:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.ranchu
- endif
-endif
-
-ifeq ($(QEMU_USE_SYSTEM_EXT_PARTITIONS),true)
-PRODUCT_COPY_FILES += \
- device/generic/goldfish/fstab.ranchu.initrd.ex:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/first_stage_ramdisk/fstab.ranchu \
- device/generic/goldfish/fstab.ranchu.initrd.ex:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/fstab.ranchu \
- device/generic/goldfish/fstab.ranchu.ex:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.ranchu
-else
PRODUCT_COPY_FILES += \
- device/generic/goldfish/fstab.ranchu.initrd:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/first_stage_ramdisk/fstab.ranchu \
- device/generic/goldfish/fstab.ranchu.initrd:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/fstab.ranchu \
- device/generic/goldfish/fstab.ranchu:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.ranchu
-endif
+ device/generic/goldfish/fstab.ranchu.x86:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/first_stage_ramdisk/fstab.ranchu \
+ device/generic/goldfish/fstab.ranchu.x86:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.ranchu
diff --git a/x86_64-kernel.mk b/x86_64-kernel.mk
index e372fc35..ea146a3a 100644
--- a/x86_64-kernel.mk
+++ b/x86_64-kernel.mk
@@ -1,8 +1,31 @@
TARGET_KERNEL_USE ?= 5.15
-KERNEL_MODULES_PATH := kernel/prebuilts/common-modules/virtual-device/$(TARGET_KERNEL_USE)/x86-64
+KERNEL_ARTIFACTS_PATH := kernel/prebuilts/$(TARGET_KERNEL_USE)/x86_64
-BOARD_VENDOR_RAMDISK_KERNEL_MODULES += \
- $(filter-out $(KERNEL_MODULES_EXCLUDE), $(wildcard $(KERNEL_MODULES_PATH)/*.ko))
+VIRTUAL_DEVICE_KERNEL_MODULES_PATH := \
+ kernel/prebuilts/common-modules/virtual-device/$(TARGET_KERNEL_USE)/x86-64
-EMULATOR_KERNEL_FILE := kernel/prebuilts/$(TARGET_KERNEL_USE)/x86_64/kernel-$(TARGET_KERNEL_USE)
+# The list of modules to reach the second stage. For performance reasons we
+# don't want to put all modules into the ramdisk.
+RAMDISK_KERNEL_MODULES := \
+ virtio_blk.ko \
+ virtio_console.ko \
+ virtio_dma_buf.ko \
+ virtio_pci.ko \
+ virtio_pci_modern_dev.ko \
+ virtio-rng.ko \
+ vmw_vsock_virtio_transport.ko \
+
+BOARD_SYSTEM_KERNEL_MODULES := $(wildcard $(KERNEL_ARTIFACTS_PATH)/*.ko)
+
+BOARD_VENDOR_RAMDISK_KERNEL_MODULES := \
+ $(patsubst %,$(VIRTUAL_DEVICE_KERNEL_MODULES_PATH)/%,$(RAMDISK_KERNEL_MODULES))
+
+BOARD_VENDOR_KERNEL_MODULES := \
+ $(filter-out $(BOARD_VENDOR_RAMDISK_KERNEL_MODULES),\
+ $(wildcard $(VIRTUAL_DEVICE_KERNEL_MODULES_PATH)/*.ko))
+
+BOARD_VENDOR_KERNEL_MODULES_BLOCKLIST_FILE := \
+ device/generic/goldfish/kernel_modules.blocklist
+
+EMULATOR_KERNEL_FILE := $(KERNEL_ARTIFACTS_PATH)/kernel-$(TARGET_KERNEL_USE)
diff --git a/x86_64-vendor.mk b/x86_64-vendor.mk
index b2a169a8..b62b2c5e 100644
--- a/x86_64-vendor.mk
+++ b/x86_64-vendor.mk
@@ -39,31 +39,6 @@ PRODUCT_SHIPPING_API_LEVEL := 33
PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS := false
TARGET_USES_MKE2FS := true
-
-ifeq ($(QEMU_DISABLE_AVB),true)
- ifeq ($(QEMU_USE_SYSTEM_EXT_PARTITIONS),true)
- PRODUCT_COPY_FILES += \
- device/generic/goldfish/data/etc/dummy.vbmeta.img:$(PRODUCT_OUT)/vbmeta.img \
- device/generic/goldfish/fstab.ranchu.initrd.noavb.ex:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/first_stage_ramdisk/fstab.ranchu \
- device/generic/goldfish/fstab.ranchu.initrd.noavb.ex:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/fstab.ranchu \
- device/generic/goldfish/fstab.ranchu.noavb.ex:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.ranchu
- else
- PRODUCT_COPY_FILES += \
- device/generic/goldfish/data/etc/dummy.vbmeta.img:$(PRODUCT_OUT)/vbmeta.img \
- device/generic/goldfish/fstab.ranchu.initrd.noavb:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/first_stage_ramdisk/fstab.ranchu \
- device/generic/goldfish/fstab.ranchu.initrd.noavb:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/fstab.ranchu \
- device/generic/goldfish/fstab.ranchu.noavb:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.ranchu
- endif
-endif
-
-ifeq ($(QEMU_USE_SYSTEM_EXT_PARTITIONS),true)
-PRODUCT_COPY_FILES += \
- device/generic/goldfish/fstab.ranchu.initrd.ex:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/first_stage_ramdisk/fstab.ranchu \
- device/generic/goldfish/fstab.ranchu.initrd.ex:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/fstab.ranchu \
- device/generic/goldfish/fstab.ranchu.ex:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.ranchu
-else
PRODUCT_COPY_FILES += \
- device/generic/goldfish/fstab.ranchu.initrd:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/first_stage_ramdisk/fstab.ranchu \
- device/generic/goldfish/fstab.ranchu.initrd:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/fstab.ranchu \
- device/generic/goldfish/fstab.ranchu:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.ranchu
-endif
+ device/generic/goldfish/fstab.ranchu.x86:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/first_stage_ramdisk/fstab.ranchu \
+ device/generic/goldfish/fstab.ranchu.x86:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.ranchu