diff --git a/Android.bp b/Android.bp
index 7156389..b79b895 100644
--- a/Android.bp
+++ b/Android.bp
@@ -41,3 +41,13 @@ sh_binary {
vendor: true,
sub_dir: "hw",
}
+
+// Filesystem: Copy the content of the efs/efs_backup/modem_userdata/persist
+// partitions to /data partition so that they can be accessed by 16kb kernels.
+// By default, these partitions are F2FS formatted with 4kb block size,
+// which can't be mounted by 16kb kernels.
+sh_binary {
+ name: "copy_efs_files_to_data",
+ src: "copy_efs_files_to_data.sh",
+ vendor: true,
+}
diff --git a/BoardConfig-common.mk b/BoardConfig-common.mk
index 4258778..a39229e 100644
--- a/BoardConfig-common.mk
+++ b/BoardConfig-common.mk
@@ -40,9 +40,23 @@ BOARD_KERNEL_CMDLINE += rcupdate.rcu_expedited=1 rcu_nocbs=all rcutree.enable_rc
BOARD_KERNEL_CMDLINE += swiotlb=noforce
BOARD_KERNEL_CMDLINE += disable_dma32=on
BOARD_KERNEL_CMDLINE += sysctl.kernel.sched_pelt_multiplier=4
+
+# Normal (non-_fullmte) builds should disable kasan
ifeq (,$(filter %_fullmte,$(TARGET_PRODUCT)))
BOARD_KERNEL_CMDLINE += kasan=off
endif
+
+# Enable a limited subset of MTE for "normal" (non-_fullmte) eng builds.
+# Don't touch any settings for _fullmte builds. They are set somewhere else.
+ifeq (,$(filter %_fullmte,$(TARGET_PRODUCT)))
+ifeq ($(TARGET_BUILD_VARIANT),eng)
+BOARD_KERNEL_CMDLINE += bootloader.pixel.MTE_FORCE_ON
+ifeq ($(filter memtag_heap,$(SANITIZE_TARGET)),)
+SANITIZE_TARGET := $(strip $(SANITIZE_TARGET) memtag_heap)
+endif
+endif
+endif
+
BOARD_BOOTCONFIG += androidboot.boot_devices=13200000.ufs
# Enable KUnit for eng builds
@@ -71,7 +85,7 @@ TARGET_RECOVERY_FSTAB_GENRULE := gen_fstab.zumapro-sw-encrypt
TARGET_RECOVERY_PIXEL_FORMAT := ABGR_8888
TARGET_RECOVERY_UI_MARGIN_HEIGHT := 165
TARGET_RECOVERY_UI_LIB := \
- librecovery_ui_pixel \
+ //hardware/google/pixel/recovery:librecovery_ui_pixel \
libfstab
AB_OTA_UPDATER := true
@@ -208,6 +222,17 @@ BOARD_USE_BLOB_ALLOCATOR := false
BOARD_SUPPORT_MFC_ENC_BT2020 := true
BOARD_SUPPORT_FLEXIBLE_P010 := true
BOARD_SUPPORT_MFC_VERSION := 1660
+$(call soong_config_set,video_codec,target_soc_name,$(TARGET_SOC_NAME))
+$(call soong_config_set_bool,video_codec,board_use_codec2_hidl_1_2,$(BOARD_USE_CODEC2_HIDL_1_2))
+$(call soong_config_set_bool,video_codec,board_use_csc_filter,$(BOARD_USE_CSC_FILTER))
+$(call soong_config_set_bool,video_codec,board_use_dec_sw_csc,$(BOARD_USE_DEC_SW_CSC))
+$(call soong_config_set_bool,video_codec,board_use_enc_sw_csc,$(BOARD_USE_ENC_SW_CSC))
+$(call soong_config_set_bool,video_codec,board_support_mfc_enc_rgb,$(BOARD_SUPPORT_MFC_ENC_RGB))
+$(call soong_config_set_bool,video_codec,board_use_blob_allocator,$(BOARD_USE_BLOB_ALLOCATOR))
+$(call soong_config_set_bool,video_codec,board_support_mfc_enc_bt2020,$(BOARD_SUPPORT_MFC_ENC_BT2020))
+$(call soong_config_set_bool,video_codec,board_support_flexible_p010,$(BOARD_SUPPORT_FLEXIBLE_P010))
+$(call soong_config_set_bool,video_codec,board_use_codec2_aidl,$(if $(BOARD_USE_CODEC2_AIDL),true,false))
+$(call soong_config_set,video_codec,board_support_mfc_version,$(BOARD_SUPPORT_MFC_VERSION))
########################
BOARD_SUPER_PARTITION_SIZE := 8531214336
@@ -230,6 +255,9 @@ BOARD_USES_SYSTEM_DLKMIMAGE := true
BOARD_SYSTEM_DLKMIMAGE_FILE_SYSTEM_TYPE := ext4
TARGET_COPY_OUT_SYSTEM_DLKM := system_dlkm
+# Testing related defines
+BOARD_PERFSETUP_SCRIPT := platform_testing/scripts/perf-setup/p24-setup.sh
+
#
# AUDIO & VOICE
#
diff --git a/compatibility_matrix_202404.xml b/compatibility_matrix_202404.xml
new file mode 100644
index 0000000..6e4ca99
--- /dev/null
+++ b/compatibility_matrix_202404.xml
@@ -0,0 +1,76 @@
+
+
+
+ android.frameworks.displayservice
+ 1.0
+
+ IDisplayService
+ default
+
+
+
+ android.frameworks.schedulerservice
+ 1.0
+
+ ISchedulingPolicyService
+ default
+
+
+
+ android.frameworks.sensorservice
+ 1.0
+
+ ISensorManager
+ default
+
+
+
+ android.hardware.graphics.composer
+ 2.1
+
+ IComposer
+ vr
+
+
+
+ android.hidl.manager
+ 1.0
+
+ IServiceManager
+ default
+
+
+
+ android.hidl.memory
+ 1.0
+
+ IMapper
+ ashmem
+
+
+
+ android.hidl.token
+ 1.0
+
+ ITokenManager
+ default
+
+
+
+ android.system.wifi.keystore
+ 1.0
+
+ IKeystore
+ default
+
+
+
+ 0.0.0
+
+
diff --git a/conf/ext4/fstab.rw.zumapro.ext4 b/conf/ext4/fstab.rw.zumapro.ext4
index b548c13..de8f7b8 100644
--- a/conf/ext4/fstab.rw.zumapro.ext4
+++ b/conf/ext4/fstab.rw.zumapro.ext4
@@ -1,5 +1,8 @@
# Android fstab file for /data and /metadata partitions.
#
#
-/dev/block/platform/13200000.ufs/by-name/metadata /metadata ext4 noatime,nosuid,nodev,sync wait,check,formattable,first_stage_mount
-/dev/block/platform/13200000.ufs/by-name/userdata /data ext4 noatime,nosuid,nodev latemount,wait,check,quota,formattable,sysfs_path=/dev/sys/block/bootdevice,reservedsize=128M,readahead_size_kb=128
+/dev/block/platform/13200000.ufs/by-name/userdata /data ext4 noatime,nosuid,nodev,@inlinecrypt@ latemount,wait,check,quota,formattable,reservedsize=128M,readahead_size_kb=128,@fileencryption@,@metadata_encryption@,keydirectory=/metadata/vold/metadata_encryption
+/dev/block/platform/13200000.ufs/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,reserve_root=32768,resgid=1065,fsync_mode=nobarrier,compress_extension=apk,compress_extension=so,compress_extension=vdex,compress_extension=odex,@inlinecrypt@,atgc,checkpoint_merge,compress_cache latemount,wait,check,quota,sysfs_path=/dev/sys/block/bootdevice,checkpoint=fs,reservedsize=128M,fscompress,readahead_size_kb=128,@fileencryption@,@metadata_encryption@,keydirectory=/metadata/vold/metadata_encryption,device=zoned:/dev/block/by-name/zoned_device
+/dev/block/platform/13200000.ufs/by-name/metadata /metadata ext4 noatime,nosuid,nodev,data=journal,commit=1 wait,check,formattable,first_stage_mount,metadata_csum
+/dev/block/platform/13200000.ufs/by-name/metadata /metadata f2fs noatime,nosuid,nodev,sync wait,check,first_stage_mount
+
diff --git a/conf/f2fs/fstab.rw.zumapro.f2fs b/conf/f2fs/fstab.rw.zumapro.f2fs
index 77ec4d5..73026da 100644
--- a/conf/f2fs/fstab.rw.zumapro.f2fs
+++ b/conf/f2fs/fstab.rw.zumapro.f2fs
@@ -1,5 +1,8 @@
# Android fstab file for /data and /metadata partitions.
#
#
-/dev/block/platform/13200000.ufs/by-name/metadata /metadata f2fs noatime,nosuid,nodev,sync wait,check,formattable,first_stage_mount
/dev/block/platform/13200000.ufs/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,reserve_root=32768,resgid=1065,fsync_mode=nobarrier,compress_extension=apk,compress_extension=so,compress_extension=vdex,compress_extension=odex,@inlinecrypt@,atgc,checkpoint_merge,compress_cache latemount,wait,check,quota,formattable,sysfs_path=/dev/sys/block/bootdevice,checkpoint=fs,reservedsize=128M,fscompress,readahead_size_kb=128,@fileencryption@,@metadata_encryption@,keydirectory=/metadata/vold/metadata_encryption,device=zoned:/dev/block/by-name/zoned_device
+/dev/block/platform/13200000.ufs/by-name/userdata /data ext4 noatime,nosuid,nodev,@inlinecrypt@ latemount,wait,check,quota,formattable,reservedsize=128M,readahead_size_kb=128,@fileencryption@,@metadata_encryption@,keydirectory=/metadata/vold/metadata_encryption
+/dev/block/platform/13200000.ufs/by-name/metadata /metadata f2fs noatime,nosuid,nodev,sync wait,check,formattable,first_stage_mount
+/dev/block/platform/13200000.ufs/by-name/metadata /metadata ext4 noatime,nosuid,nodev,data=journal,commit=1 wait,check,formattable,first_stage_mount,metadata_csum
+
diff --git a/conf/fstab.efs.from_data b/conf/fstab.efs.from_data
new file mode 100644
index 0000000..57aac9c
--- /dev/null
+++ b/conf/fstab.efs.from_data
@@ -0,0 +1,10 @@
+# Android fstab file.
+#
+# Create the specific fstab file for efs/modem_userdata/persist partitions for flexibility
+/data/vendor/copied/efs /mnt/vendor/efs none bind latemount
+
+/data/vendor/copied/efs_backup /mnt/vendor/efs_backup none bind latemount
+
+/data/vendor/copied/modem_userdata /mnt/vendor/modem_userdata none bind latemount
+
+/data/vendor/copied/persist /mnt/vendor/persist none bind latemount
diff --git a/conf/init.debug.rc b/conf/init.debug.rc
index 019a514..9b536b4 100644
--- a/conf/init.debug.rc
+++ b/conf/init.debug.rc
@@ -15,6 +15,15 @@ on init
chown system system /sys/devices/platform/sjtag_gsa/interface/end
chown system system /sys/devices/platform/sjtag_gsa/interface/pubkey
+ # HSUM separated main user from the SYSTEM user, granting write permissions
+ # for write only SJTAG sysfs files
+ chmod 220 /sys/devices/platform/sjtag_ap/interface/auth
+ chmod 220 /sys/devices/platform/sjtag_ap/interface/begin
+ chmod 220 /sys/devices/platform/sjtag_ap/interface/end
+ chmod 220 /sys/devices/platform/sjtag_gsa/interface/auth
+ chmod 220 /sys/devices/platform/sjtag_gsa/interface/begin
+ chmod 220 /sys/devices/platform/sjtag_gsa/interface/end
+
on property:vendor.debug.ramdump.force_crash=true
write /sys/kernel/pixel_debug/trigger "null"
diff --git a/conf/init.efs.16k.rc b/conf/init.efs.16k.rc
new file mode 100644
index 0000000..e52ff78
--- /dev/null
+++ b/conf/init.efs.16k.rc
@@ -0,0 +1,22 @@
+# This RC file is used for:
+# - 16kb Developer option which can boot with 4kb/16kb page size.
+# - 16kb targets only
+
+service copy_efs_files_to_data /vendor/bin/copy_efs_files_to_data
+ user root
+ group root radio system audio media graphics camera
+ stdio_to_kmsg
+ oneshot
+ disabled
+
+on post-fs-data && property:ro.boot.hardware.cpu.pagesize=16384
+ mkdir /data/vendor/copied 0775 radio system
+ restorecon_recursive /data/vendor/copied
+ exec_start copy_efs_files_to_data
+ mount_all /vendor/etc/fstab.efs.from_data
+ restorecon_recursive /mnt/vendor/persist
+ restorecon_recursive /data/vendor/ss
+ setprop ro.vendor.persist.status mounted
+
+on late-fs && property:ro.boot.hardware.cpu.pagesize=4096
+ mount_all /vendor/etc/fstab.efs --early
diff --git a/conf/init.efs.4k.rc b/conf/init.efs.4k.rc
new file mode 100644
index 0000000..5393e67
--- /dev/null
+++ b/conf/init.efs.4k.rc
@@ -0,0 +1,2 @@
+on late-fs
+ mount_all /vendor/etc/fstab.efs --early
diff --git a/conf/init.efs.rc b/conf/init.efs.rc
deleted file mode 100644
index a3664d9..0000000
--- a/conf/init.efs.rc
+++ /dev/null
@@ -1,11 +0,0 @@
-on early-init
- mount_all /vendor/etc/fstab.persist --early
-
-on late-fs
- mount_all /vendor/etc/fstab.efs --early
- restorecon_recursive /mnt/vendor/efs
- chown radio system /mnt/vendor/efs
- restorecon_recursive /mnt/vendor/efs_backup
- chown radio system /mnt/vendor/efs_backup
- restorecon_recursive /mnt/vendor/modem_userdata
- chown radio system /mnt/vendor/modem_userdata
diff --git a/conf/init.eng.memtag.rc b/conf/init.eng.memtag.rc
new file mode 100644
index 0000000..e0e13f0
--- /dev/null
+++ b/conf/init.eng.memtag.rc
@@ -0,0 +1,14 @@
+# MTE in -eng build: all cores in Sync mode
+on init
+ # Per-core mode overrides.
+ # Little Cores: sync
+ write /sys/devices/system/cpu/cpu0/mte_tcf_preferred sync
+ write /sys/devices/system/cpu/cpu1/mte_tcf_preferred sync
+ write /sys/devices/system/cpu/cpu2/mte_tcf_preferred sync
+ write /sys/devices/system/cpu/cpu3/mte_tcf_preferred sync
+ # Mid Cores: sync
+ write /sys/devices/system/cpu/cpu4/mte_tcf_preferred sync
+ write /sys/devices/system/cpu/cpu5/mte_tcf_preferred sync
+ write /sys/devices/system/cpu/cpu6/mte_tcf_preferred sync
+ # Big Core: sync
+ write /sys/devices/system/cpu/cpu7/mte_tcf_preferred sync
diff --git a/conf/init.persist.rc b/conf/init.persist.rc
new file mode 100644
index 0000000..624eb79
--- /dev/null
+++ b/conf/init.persist.rc
@@ -0,0 +1,52 @@
+on early-init && property:ro.boot.hardware.cpu.pagesize=4096
+ mount_all /vendor/etc/fstab.persist --early
+ setprop ro.vendor.persist.status mounted
+
+on property:ro.vendor.persist.status=mounted
+ # for modem related functions
+ restorecon_recursive /mnt/vendor/efs
+ chown radio system /mnt/vendor/efs
+ restorecon_recursive /mnt/vendor/efs_backup
+ chown radio system /mnt/vendor/efs_backup
+ restorecon_recursive /mnt/vendor/modem_userdata
+ chown radio system /mnt/vendor/modem_userdata
+
+ # for battery defender
+ mkdir /mnt/vendor/persist/battery 0700 system system
+
+ # Camera factory calibration files
+ chmod 0771 /mnt/vendor/persist/camera
+ chmod 0771 /mnt/vendor/persist/camera/OTP_calibration
+ chmod 0771 /mnt/vendor/persist/camera/pdaf_calibration_data
+ mkdir /mnt/vendor/persist/camera/rear 0771 system camera
+ chmod 0771 /mnt/vendor/persist/camera/rear
+
+ restorecon_recursive /mnt/vendor/persist
+ restorecon_recursive /mnt/vendor/persist/aoc
+ restorecon_recursive /mnt/vendor/persist/audio
+ restorecon_recursive /mnt/vendor/persist/sensors
+ restorecon_recursive /mnt/vendor/persist/battery
+ restorecon_recursive /mnt/vendor/persist/camera
+ restorecon_recursive /mnt/vendor/persist/modem
+ # Set up display-related directories and permissions
+ # Add restorecon_recursive command to make sure the restorecon label is persist_display_file.
+ restorecon_recursive /mnt/vendor/persist/display
+ mkdir /mnt/vendor/persist/data/sfs 0700 system system
+ mkdir /mnt/vendor/persist/data/tz 0700 system system
+ mkdir /mnt/vendor/persist/touch 0770 system system
+
+on property:ro.fstype.data=* && property:ro.vendor.persist.status=mounted
+ # Proxy for Secure Storage
+ mkdir /data/vendor/rebootescrow 0770 hsm hsm
+ mkdir /data/vendor/ss 0770 root system
+ mkdir /mnt/vendor/persist/ss 0770 root system
+ restorecon_recursive /mnt/vendor/persist/ss
+ symlink /mnt/vendor/persist/ss /data/vendor/ss/persist
+ chown root system /data/vendor/ss/persist
+ chmod 0770 /data/vendor/ss/persist
+ symlink /dev/block/platform/13200000\.ufs/by-name/trusty_persist /data/vendor/ss/persist/0
+ chown system system /data/vendor/ss/0
+ chown system system /data/vendor/ss/persist/0
+ chown system system /data/vendor/ss/persist/nsp
+
+ restart storageproxyd
diff --git a/conf/init.zuma.soc.rc b/conf/init.zuma.soc.rc
index a2b27b1..b16d81f 100644
--- a/conf/init.zuma.soc.rc
+++ b/conf/init.zuma.soc.rc
@@ -34,14 +34,11 @@ on init
# governor setting
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor sched_pixel
write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/up_rate_limit_us 500
- write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_us 5000
write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_scale_pow 2
write /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor sched_pixel
write /sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/up_rate_limit_us 500
- write /sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/down_rate_limit_us 20000
write /sys/devices/system/cpu/cpu8/cpufreq/scaling_governor sched_pixel
write /sys/devices/system/cpu/cpu8/cpufreq/sched_pixel/up_rate_limit_us 500
- write /sys/devices/system/cpu/cpu8/cpufreq/sched_pixel/down_rate_limit_us 20000
# memlat cpuidle awareness setting
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu0_memlat@17000010/memlat_cpuidle_state_aware 2
@@ -107,6 +104,11 @@ on init
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu7_memlat@17000010/mem_latency/stall_floor 2400
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu8_memlat@17000010/mem_latency/stall_floor 500
+on late-init
+ write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_us 5000
+ write /sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/down_rate_limit_us 20000
+ write /sys/devices/system/cpu/cpu8/cpufreq/sched_pixel/down_rate_limit_us 20000
+
on zygote-start
# For PixelLogger configuration file.
chmod 0771 /data/vendor/wifi
diff --git a/conf/init.zumapro.board.rc b/conf/init.zumapro.board.rc
index ee56958..b40e29c 100644
--- a/conf/init.zumapro.board.rc
+++ b/conf/init.zumapro.board.rc
@@ -1,5 +1,6 @@
import /vendor/etc/init/hw/init.zumapro.usb.rc
import /vendor/etc/init/hw/init.efs.rc
+import /vendor/etc/init/hw/init.persist.rc
import android.hardware.drm@1.2-service.widevine.rc
import init.exynos.sensorhub.rc
import /vendor/etc/init/hw/init.${ro.boot.hardware.platform}.soc.rc
@@ -268,13 +269,6 @@ on post-fs-data
chown system system /dev/ispolin_ranging
chmod 0660 /dev/ispolin_ranging
- # Factory calibration files
- chmod 0771 /mnt/vendor/persist/camera
- chmod 0771 /mnt/vendor/persist/camera/OTP_calibration
- chmod 0771 /mnt/vendor/persist/camera/pdaf_calibration_data
- mkdir /mnt/vendor/persist/camera/rear 0771 system camera
- chmod 0771 /mnt/vendor/persist/camera/rear
-
# Audio dump and debug
mkdir /data/vendor/audio 0770 audio audio
@@ -369,27 +363,10 @@ on property:persist.vendor.radio.no_modem_board=1
on fs
mount_all --early
- # for battery defender
- mkdir /mnt/vendor/persist/battery 0700 system system
-
# Mount modem partition
mount_all /vendor/etc/fstab.modem --early
restorecon_recursive /mnt/vendor/modem_img
- restorecon_recursive /mnt/vendor/persist
- restorecon_recursive /mnt/vendor/persist/aoc
- restorecon_recursive /mnt/vendor/persist/audio
- restorecon_recursive /mnt/vendor/persist/sensors
- restorecon_recursive /mnt/vendor/persist/battery
- restorecon_recursive /mnt/vendor/persist/camera
- restorecon_recursive /mnt/vendor/persist/modem
- # Set up display-related directories and permissions
- # Add restorecon_recursive command to make sure the restorecon label is persist_display_file.
- restorecon_recursive /mnt/vendor/persist/display
- mkdir /mnt/vendor/persist/data/sfs 0700 system system
- mkdir /mnt/vendor/persist/data/tz 0700 system system
- mkdir /mnt/vendor/persist/touch 0770 system system
-
# Permissions for ION
chmod 0660 /sys/class/ion_cma/ion_video_ext/isolated
chown system system /sys/class/ion_cma/ion_video_ext/isolated
@@ -412,8 +389,8 @@ on fs
chown system system /sys/devices/platform/exynos-drm/primary-panel/te2_option
chown system system /sys/devices/platform/exynos-drm/primary-panel/power_state
chown system system /sys/devices/platform/exynos-drm/primary-panel/frame_rate
- chown system system /sys/devices/platform/exynos-drm/primary-panel/frame_interval
- chown system system /sys/devices/platform/exynos-drm/primary-panel/expected_present_time
+ chown system system /sys/devices/platform/exynos-drm/primary-panel/frame_interval_ns
+ chown system system /sys/devices/platform/exynos-drm/primary-panel/expected_present_time_ns
chown system system /sys/module/drm/parameters/vblankoffdelay
chown system system /sys/module/drm/parameters/debug
chown system system /sys/class/dqe0/atc/ambient_light
@@ -635,21 +612,6 @@ service bugreport /system/bin/dumpstate -d -p -z
oneshot
keycodes 114 115 116
-# Proxy for Secure Storage
-on post-fs-data
- mkdir /data/vendor/rebootescrow 0770 hsm hsm
- mkdir /data/vendor/ss 0770 root system
- mkdir /mnt/vendor/persist/ss 0770 root system
- restorecon_recursive /mnt/vendor/persist/ss
- symlink /mnt/vendor/persist/ss /data/vendor/ss/persist
- chown root system /data/vendor/ss/persist
- chmod 0770 /data/vendor/ss/persist
- chown system system /data/vendor/ss/0
- chown system system /data/vendor/ss/persist/0
- chown system system /data/vendor/ss/persist/nsp
-
- restart storageproxyd
-
service storageproxyd /vendor/bin/storageproxyd \
-d /dev/trusty-ipc-dev0 \
-r /dev/sg1 \
@@ -677,6 +639,7 @@ on post-fs-data
chown bluetooth system /proc/bluetooth/sleep/btwake
chown bluetooth system /proc/bluetooth/sleep/lpm
chown bluetooth system /proc/bluetooth/sleep/btwrite
+ chown bluetooth system /sys/devices/platform/155d0000.serial/uart_dbg
mkdir /data/vendor/bluetooth 0770 bluetooth system
# ODPM
diff --git a/conf/init.zumapro.soc.rc b/conf/init.zumapro.soc.rc
index 6bd32f8..f4cd377 100644
--- a/conf/init.zumapro.soc.rc
+++ b/conf/init.zumapro.soc.rc
@@ -9,7 +9,6 @@ on init
chown system system /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/limit_frequency
chown system system /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/pmu_limit_enable
-
chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu0_memlat@17000010/memlat_cpuidle_state_aware
chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu1_memlat@17000010/memlat_cpuidle_state_aware
chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu2_memlat@17000010/memlat_cpuidle_state_aware
@@ -60,17 +59,6 @@ on init
write /proc/vendor_sched/groups/sys_bg/disable_util_est 1
write /proc/vendor_sched/groups/ta/disable_util_est 0
- # governor setting
- write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor sched_pixel
- write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/up_rate_limit_us 500
- write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_us 500
- write /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor sched_pixel
- write /sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/up_rate_limit_us 500
- write /sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/down_rate_limit_us 500
- write /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor sched_pixel
- write /sys/devices/system/cpu/cpu7/cpufreq/sched_pixel/up_rate_limit_us 500
- write /sys/devices/system/cpu/cpu7/cpufreq/sched_pixel/down_rate_limit_us 500
-
# memlat cpuidle awareness setting
# FIXME(b/301212469) these nodes missing on zuma pro
# TODO(b/308973423) these values need to be tuned
@@ -143,6 +131,83 @@ on init
write /sys/devices/system/cpu/cpu6/mte_tcf_preferred asymm
write /sys/devices/system/cpu/cpu7/mte_tcf_preferred asymm
+ # Change permission of sched qos nodes
+ chown system system /proc/vendor_sched/sched_qos/adpf_set
+ chown system system /proc/vendor_sched/sched_qos/adpf_clear
+ chown system system /proc/vendor_sched/sched_qos/auto_uclamp_max_set
+ chown system system /proc/vendor_sched/sched_qos/auto_uclamp_max_clear
+ chown system system /proc/vendor_sched/sched_qos/boost_prio_set
+ chown system system /proc/vendor_sched/sched_qos/boost_prio_clear
+ chown system system /proc/vendor_sched/sched_qos/preempt_wakeup_set
+ chown system system /proc/vendor_sched/sched_qos/preempt_wakeup_clear
+ chown system system /proc/vendor_sched/sched_qos/prefer_fit_set
+ chown system system /proc/vendor_sched/sched_qos/prefer_fit_clear
+ chown system system /proc/vendor_sched/sched_qos/prefer_high_cap_set
+ chown system system /proc/vendor_sched/sched_qos/prefer_high_cap_clear
+ chown system system /proc/vendor_sched/sched_qos/prefer_idle_set
+ chown system system /proc/vendor_sched/sched_qos/prefer_idle_clear
+ chown system system /proc/vendor_sched/sched_qos/rampup_multiplier_set
+ chown system system /proc/vendor_sched/sched_qos/rampup_multiplier_clear
+
+ chmod 0220 /proc/vendor_sched/sched_qos/adpf_set
+ chmod 0220 /proc/vendor_sched/sched_qos/adpf_clear
+ chmod 0220 /proc/vendor_sched/sched_qos/auto_uclamp_max_set
+ chmod 0220 /proc/vendor_sched/sched_qos/auto_uclamp_max_clear
+ chmod 0220 /proc/vendor_sched/sched_qos/boost_prio_set
+ chmod 0220 /proc/vendor_sched/sched_qos/boost_prio_clear
+ chmod 0220 /proc/vendor_sched/sched_qos/preempt_wakeup_set
+ chmod 0220 /proc/vendor_sched/sched_qos/preempt_wakeup_clear
+ chmod 0220 /proc/vendor_sched/sched_qos/prefer_fit_set
+ chmod 0220 /proc/vendor_sched/sched_qos/prefer_fit_clear
+ chmod 0220 /proc/vendor_sched/sched_qos/prefer_high_cap_set
+ chmod 0220 /proc/vendor_sched/sched_qos/prefer_high_cap_clear
+ chmod 0220 /proc/vendor_sched/sched_qos/prefer_idle_set
+ chmod 0220 /proc/vendor_sched/sched_qos/prefer_idle_clear
+ chmod 0220 /proc/vendor_sched/sched_qos/rampup_multiplier_set
+ chmod 0220 /proc/vendor_sched/sched_qos/rampup_multiplier_clear
+
+ # Enable sched_qos for some groups
+ write /proc/vendor_sched/groups/ta/qos_adpf_enable 1
+ write /proc/vendor_sched/groups/ta/qos_auto_uclamp_max_enable 1
+ write /proc/vendor_sched/groups/ta/qos_boost_prio_enable 1
+ write /proc/vendor_sched/groups/ta/qos_preempt_wakeup_enable 1
+ write /proc/vendor_sched/groups/ta/qos_prefer_fit_enable 1
+ write /proc/vendor_sched/groups/ta/qos_prefer_high_cap_enable 1
+ write /proc/vendor_sched/groups/ta/qos_prefer_idle_enable 1
+ write /proc/vendor_sched/groups/ta/qos_rampup_multiplier_enable 1
+ write /proc/vendor_sched/groups/fg/qos_adpf_enable 1
+ write /proc/vendor_sched/groups/fg/qos_auto_uclamp_max_enable 1
+ write /proc/vendor_sched/groups/fg/qos_boost_prio_enable 1
+ write /proc/vendor_sched/groups/fg/qos_preempt_wakeup_enable 1
+ write /proc/vendor_sched/groups/fg/qos_prefer_fit_enable 1
+ write /proc/vendor_sched/groups/fg/qos_prefer_high_cap_enable 1
+ write /proc/vendor_sched/groups/fg/qos_prefer_idle_enable 1
+ write /proc/vendor_sched/groups/fg/qos_rampup_multiplier_enable 1
+ write /proc/vendor_sched/groups/fg_wi/qos_adpf_enable 1
+ write /proc/vendor_sched/groups/fg_wi/qos_auto_uclamp_max_enable 1
+ write /proc/vendor_sched/groups/fg_wi/qos_boost_prio_enable 1
+ write /proc/vendor_sched/groups/fg_wi/qos_preempt_wakeup_enable 1
+ write /proc/vendor_sched/groups/fg_wi/qos_prefer_fit_enable 1
+ write /proc/vendor_sched/groups/fg_wi/qos_prefer_high_cap_enable 1
+ write /proc/vendor_sched/groups/fg_wi/qos_prefer_idle_enable 1
+ write /proc/vendor_sched/groups/fg_wi/qos_rampup_multiplier_enable 1
+ write /proc/vendor_sched/groups/cam/qos_adpf_enable 1
+ write /proc/vendor_sched/groups/cam/qos_auto_uclamp_max_enable 1
+ write /proc/vendor_sched/groups/cam/qos_prefer_fit_enable 1
+ write /proc/vendor_sched/groups/cam/qos_prefer_high_cap_enable 1
+ write /proc/vendor_sched/groups/cam/qos_prefer_idle_enable 1
+ write /proc/vendor_sched/groups/cam/qos_rampup_multiplier_enable 1
+ write /proc/vendor_sched/groups/cam_power/qos_adpf_enable 1
+ write /proc/vendor_sched/groups/cam_power/qos_auto_uclamp_max_enable 1
+ write /proc/vendor_sched/groups/cam_power/qos_prefer_fit_enable 1
+ write /proc/vendor_sched/groups/cam_power/qos_prefer_high_cap_enable 1
+ write /proc/vendor_sched/groups/cam_power/qos_prefer_idle_enable 1
+ write /proc/vendor_sched/groups/cam_power/qos_rampup_multiplier_enable 1
+ write /proc/vendor_sched/groups/rt/qos_adpf_enable 1
+ write /proc/vendor_sched/groups/rt/qos_rampup_multiplier_enable 1
+ write /proc/vendor_sched/groups/sf/qos_adpf_enable 1
+ write /proc/vendor_sched/groups/sf/qos_rampup_multiplier_enable 1
+
on zygote-start
# For PixelLogger configuration file.
chmod 0771 /data/vendor/wifi
diff --git a/conf/ueventd.zumapro.rc b/conf/ueventd.zumapro.rc
index 809b596..609f2b7 100644
--- a/conf/ueventd.zumapro.rc
+++ b/conf/ueventd.zumapro.rc
@@ -153,6 +153,11 @@
/dev/acd-com.google.chre 0660 system system
/dev/acd-com.google.chre.non_wake_up 0660 system system
+# CHRE (EFW transport)
+/dev/acd-chre_ctl 0660 system system
+/dev/acd-chre_data_tx 0220 system system
+/dev/acd-chre_data_rx 0440 system system
+
# BT
/dev/acd-com.google.bt 0660 system system
/dev/acd-com.google.bt.non_wake_up 0660 system system
diff --git a/copy_efs_files_to_data.sh b/copy_efs_files_to_data.sh
new file mode 100644
index 0000000..b6b7a9d
--- /dev/null
+++ b/copy_efs_files_to_data.sh
@@ -0,0 +1,39 @@
+#!/vendor/bin/sh
+
+CHECKPOINT_DIR=/data/vendor/copied
+
+export BIN_DIR=/vendor/bin
+
+$BIN_DIR/mkdir -p $CHECKPOINT_DIR
+
+function copy_files_to_data()
+{
+ block_device=$1
+ partition_name=$(basename $1)
+ mount_point=$2
+ tmpdir=$CHECKPOINT_DIR/$partition_name.img
+ build_checkpoint=$CHECKPOINT_DIR/$partition_name
+ if [ ! -e $build_checkpoint ]; then
+ $BIN_DIR/rm -rf $tmpdir
+ $BIN_DIR/mkdir -p $tmpdir
+ $BIN_DIR/dump.f2fs -rfPo $tmpdir $block_device
+ if [ $? -ne 0 ]; then
+ echo "Failed to $BIN_DIR/dump.f2fs -rfPo $tmpdir $block_device"
+ return
+ fi
+ $BIN_DIR/mv $tmpdir $build_checkpoint
+ if [ $? -ne 0 ]; then
+ echo "mv $tmpdir $build_checkpoint"
+ return
+ fi
+ $BIN_DIR/fsync `dirname $build_checkpoint`
+ fi
+ echo "Successfully copied $mount_point to $build_checkpoint"
+}
+
+copy_files_to_data "/dev/block/by-name/efs" "/mnt/vendor/efs"
+copy_files_to_data "/dev/block/by-name/efs_backup" "/mnt/vendor/efs_backup"
+copy_files_to_data "/dev/block/by-name/modem_userdata" "/mnt/vendor/modem_userdata"
+copy_files_to_data "/dev/block/by-name/persist" "/mnt/vendor/persist"
+
+$BIN_DIR/fsync /data/vendor/copied
diff --git a/default-permissions.xml b/default-permissions.xml
index 2f6f13f..687cff4 100644
--- a/default-permissions.xml
+++ b/default-permissions.xml
@@ -69,7 +69,7 @@
-
+
@@ -173,5 +173,9 @@
+
+
+
diff --git a/device-common.mk b/device-common.mk
index 1e4691a..54e363d 100644
--- a/device-common.mk
+++ b/device-common.mk
@@ -51,12 +51,21 @@ PRODUCT_VENDOR_PROPERTIES += \
vendor.zram.size?=50p
# Indicate that the bootloader supports the MTE developer option switch
-# (MISC_MEMTAG_MODE_MEMTAG_ONCE), with the exception of _fullmte products that
-# force enable MTE.
+# (MISC_MEMTAG_MODE_MEMTAG_ONCE), with the exception of _fullmte products and
+# eng products that force enable MTE
ifeq (,$(filter %_fullmte,$(TARGET_PRODUCT)))
+ifeq (,$(filter eng,$(TARGET_BUILD_VARIANT)))
PRODUCT_PRODUCT_PROPERTIES += ro.arm64.memtag.bootctl_supported=1
PRODUCT_PRODUCT_PROPERTIES += persist.arm64.memtag.app.com.android.se=off
PRODUCT_PRODUCT_PROPERTIES += persist.arm64.memtag.app.com.google.android.bluetooth=off
PRODUCT_PRODUCT_PROPERTIES += persist.arm64.memtag.app.com.android.nfc=off
PRODUCT_PRODUCT_PROPERTIES += persist.arm64.memtag.system_server=off
endif
+endif
+
+ifeq (,$(filter %_fullmte,$(TARGET_PRODUCT)))
+ifneq (,$(filter eng,$(TARGET_BUILD_VARIANT)))
+PRODUCT_COPY_FILES += \
+ device/google/zumapro/conf/init.eng.memtag.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.eng.memtag.rc
+endif
+endif
diff --git a/device.mk b/device.mk
index 3dc3767..d8a6f0b 100644
--- a/device.mk
+++ b/device.mk
@@ -75,6 +75,7 @@ PRODUCT_SOONG_NAMESPACES += \
hardware/google/gchips/gralloc4 \
hardware/google/graphics/common \
hardware/google/graphics/zuma \
+ hardware/google/graphics/zumapro/libhwc2.1 \
hardware/google/interfaces \
hardware/google/pixel \
device/google/zumapro \
@@ -183,7 +184,7 @@ PRODUCT_PRODUCT_PROPERTIES += \
bluetooth.profile.asha.central.enabled=true \
bluetooth.profile.a2dp.source.enabled=true \
bluetooth.profile.avrcp.target.enabled=true \
- bluetooth.profile.bap.unicast.server.enabled=true \
+ bluetooth.profile.bap.unicast.client.enabled=true \
bluetooth.profile.bas.client.enabled=true \
bluetooth.profile.csip.set_coordinator.enabled=true \
bluetooth.profile.gatt.enabled=true \
@@ -198,8 +199,12 @@ PRODUCT_PRODUCT_PROPERTIES += \
bluetooth.profile.pan.panu.enabled=true \
bluetooth.profile.pbap.server.enabled=true \
bluetooth.profile.sap.server.enabled=true \
- bluetooth.profile.tbs.server.enabled=true \
- bluetooth.profile.vc.server.enabled=true
+ bluetooth.profile.ccp.server.enabled=true \
+ bluetooth.profile.vcp.controller.enabled=true
+
+# Override default HCI command timeout value for BT stack
+PRODUCT_PRODUCT_PROPERTIES += \
+ bluetooth.hci.timeout_milliseconds=5000
# Carrier configuration default location
PRODUCT_PROPERTY_OVERRIDES += \
@@ -290,10 +295,13 @@ BOARD_SEPOLICY_DIRS += hardware/google/pixel-sepolicy/logger_app
endif # ifneq ($(BOARD_WITHOUT_RADIO),true)
# Shared Modem Platform
-include device/google/gs-common/modem/shared_modem_platform/shared_modem_platform.mk
+include device/google/gs-common/modem/modem_svc_sit/shared_modem_platform.mk
# Use for GRIL
USES_LASSEN_MODEM := true
+ifneq ($(BOARD_WITHOUT_RADIO),true)
+$(call soong_config_set_bool,grilservice,use_google_qns,true)
+endif
ifeq ($(USES_GOOGLE_DIALER_CARRIER_SETTINGS),true)
USE_GOOGLE_DIALER := true
@@ -374,6 +382,14 @@ PRODUCT_VENDOR_PROPERTIES += \
ro.hardware.vulkan=mali
endif
+# SurfaceFlinger / RenderEngine
+ifeq ($(TARGET_USES_VULKAN),true)
+# b/293371537 Opt in to RE-Graphite's aconfig-based preview rollout
+PRODUCT_VENDOR_PROPERTIES += debug.renderengine.graphite_preview_optin=true
+else
+$(warning TARGET_USES_VULKAN == false, cannot opt in to RE-Graphite rollout in SurfaceFlinger)
+PRODUCT_VENDOR_PROPERTIES += debug.renderengine.graphite_preview_optin=false
+endif
# b/295257834 Add HDR shaders to SurfaceFlinger's pre-warming cache
PRODUCT_VENDOR_PROPERTIES += ro.surface_flinger.prime_shader_cache.ultrahdr=1
@@ -410,13 +426,33 @@ PRODUCT_VENDOR_PROPERTIES += \
PRODUCT_SHIPPING_API_LEVEL := $(SHIPPING_API_LEVEL)
# Device Manifest, Device Compatibility Matrix for Treble
+#
+# Install product specific framework compatibility matrix
+# (TODO: b/169535506) This includes the FCM for system_ext and product partition.
+# It must be split into the FCM of each partition.
+ifeq ($(PRODUCT_SHIPPING_API_LEVEL),35)
+DEVICE_MANIFEST_FILE := \
+ device/google/zumapro/manifest_202404.xml
+DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/zumapro/device_framework_matrix_product_202404.xml
+DEVICE_MATRIX_FILE := \
+ device/google/zumapro/compatibility_matrix_202404.xml
+else
DEVICE_MANIFEST_FILE := \
device/google/zumapro/manifest.xml
+DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/zumapro/device_framework_matrix_product_8.xml
+DEVICE_MATRIX_FILE := \
+ device/google/zumapro/compatibility_matrix.xml
+endif
BOARD_USE_CODEC2_AIDL := V1
ifneq (,$(filter aosp_%,$(TARGET_PRODUCT)))
+ifeq ($(PRODUCT_SHIPPING_API_LEVEL),35)
+DEVICE_MANIFEST_FILE += \
+ device/google/zumapro/manifest_media_aosp_202404.xml
+else
DEVICE_MANIFEST_FILE += \
device/google/zumapro/manifest_media_aosp.xml
+endif
PRODUCT_COPY_FILES += \
device/google/zumapro/media_codecs_aosp_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_c2.xml
@@ -429,9 +465,6 @@ PRODUCT_COPY_FILES += \
device/google/zumapro/media_codecs_aosp_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_aosp_c2.xml
endif
-DEVICE_MATRIX_FILE := \
- device/google/zumapro/compatibility_matrix.xml
-
DEVICE_PACKAGE_OVERLAYS += device/google/zumapro/overlay
# RKP VINTF
@@ -451,7 +484,19 @@ PRODUCT_COPY_FILES += \
device/google/zumapro/conf/init.zumapro.soc.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.zumapro.soc.rc \
device/google/zumapro/conf/init.zuma.soc.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.zuma.soc.rc \
device/google/zumapro/conf/init.zumapro.board.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.zumapro.board.rc \
- device/google/zumapro/conf/init.efs.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.efs.rc
+ device/google/zumapro/conf/init.persist.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.persist.rc
+
+ifeq (true,$(filter $(TARGET_BOOTS_16K) $(PRODUCT_16K_DEVELOPER_OPTION),true))
+PRODUCT_COPY_FILES += \
+ device/google/zumapro/conf/init.efs.16k.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.efs.rc \
+ device/google/zumapro/conf/fstab.efs.from_data:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.efs.from_data
+
+PRODUCT_PACKAGES += copy_efs_files_to_data
+PRODUCT_PACKAGES += fsck.f2fs.vendor
+else
+PRODUCT_COPY_FILES += \
+ device/google/zumapro/conf/init.efs.4k.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.efs.rc
+endif
ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_COPY_FILES += \
@@ -584,6 +629,10 @@ PRODUCT_PACKAGES += \
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml
+ifneq (,$(filter ripcurrentpro, $(TARGET_PRODUCT)))
+ include device/google/gs-common/touch/gti/gti.mk
+endif
+
# Sensors
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.sensor.accelerometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.accelerometer.xml \
@@ -772,6 +821,12 @@ PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.wifi.passpoint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.passpoint.xml \
frameworks/native/data/etc/android.hardware.wifi.rtt.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.rtt.xml
+# Bluetooth channel sounding
+ifneq (,$(RELEASE_RANGING_STACK))
+PRODUCT_COPY_FILES += \
+ frameworks/native/data/etc/android.hardware.bluetooth_le.channel_sounding.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth_le.channel_sounding.xml
+endif
+
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.usb.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.host.xml \
frameworks/native/data/etc/android.hardware.usb.accessory.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.accessory.xml
@@ -1178,7 +1233,7 @@ PRODUCT_SOONG_NAMESPACES += \
vendor/google_devices/zumapro/proprietary/gchips/tpu/nnapi_stable_aidl \
vendor/google_devices/zumapro/proprietary/gchips/tpu/aidl \
vendor/google_devices/zumapro/proprietary/gchips/tpu/hal \
- vendor/google_devices/zumapro/proprietary/gchips/tpu/tachyon/api \
+ vendor/google_devices/zumapro/proprietary/gchips/tpu/tachyon/tachyon_apis \
vendor/google_devices/zumapro/proprietary/gchips/tpu/tachyon/service
# TPU firmware
PRODUCT_PACKAGES += edgetpu-rio.fw
@@ -1198,6 +1253,10 @@ PRODUCT_PACKAGES += \
# pKVM
$(call inherit-product, packages/modules/Virtualization/apex/product_packages.mk)
PRODUCT_BUILD_PVMFW_IMAGE := true
+ifeq ($(RELEASE_AVF_ENABLE_LLPVM_CHANGES),true)
+ # Set the environment variable to enable the Secretkeeper HAL service.
+ SECRETKEEPER_ENABLED := true
+endif
# Enable to build standalone vendor_kernel_boot image.
PRODUCT_BUILD_VENDOR_KERNEL_BOOT_IMAGE := true
@@ -1231,11 +1290,6 @@ include hardware/google/pixel/wifi_ext/device.mk
# Battery Stats Viewer
PRODUCT_PACKAGES_ENG += BatteryStatsViewer
-# Install product specific framework compatibility matrix
-# (TODO: b/169535506) This includes the FCM for system_ext and product partition.
-# It must be split into the FCM of each partition.
-DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/zumapro/device_framework_matrix_product.xml
-
# Keymint configuration
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.software.device_id_attestation.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.device_id_attestation.xml \
@@ -1261,16 +1315,19 @@ include device/google/gs-common/pixel_ril/ril.mk
endif
endif
-SUPPORT_VENDOR_SATELLITE_SERVICE := true
-
# Telephony satellite geofence data file
PRODUCT_COPY_FILES += \
- device/google/zumapro/telephony/sats2.dat:$(TARGET_COPY_OUT_VENDOR)/etc/telephony/sats2.dat
+ device/google/zumapro/telephony/sats2.dat:$(TARGET_COPY_OUT_VENDOR)/etc/telephony/sats2.dat \
+ device/google/zumapro/telephony/satellite_access_config.json:$(TARGET_COPY_OUT_VENDOR)/etc/telephony/satellite_access_config.json
# Touch service
include device/google/gs-common/touch/twoshay/aidl_zuma.mk
include device/google/gs-common/touch/twoshay/twoshay.mk
+ifeq ($(RELEASE_PIXEL_GIA_ENABLED),true)
+include device/google/gs-common/input/gia/gia.mk
+endif
+
PRODUCT_CHECK_VENDOR_SEAPP_VIOLATIONS := true
PRODUCT_CHECK_DEV_TYPE_VIOLATIONS := true
@@ -1287,3 +1344,4 @@ PRODUCT_PRODUCT_PROPERTIES += \
dumpstate.strict_run=false
PRODUCT_NO_BIONIC_PAGE_SIZE_MACRO := true
+PRODUCT_CHECK_PREBUILT_MAX_PAGE_SIZE := true
diff --git a/device_framework_matrix_product_202404.xml b/device_framework_matrix_product_202404.xml
new file mode 100644
index 0000000..6d16f9e
--- /dev/null
+++ b/device_framework_matrix_product_202404.xml
@@ -0,0 +1,198 @@
+
+
+ android.hardware.boot
+ IBootControl/default
+
+
+ android.hardware.graphics.composer3
+ 2
+
+ IComposer
+ default
+
+
+
+ android.hardware.radio
+ 1.2
+
+ ISap
+ slot2
+
+
+
+ android.hardware.vibrator
+ 2-3
+
+ IVibrator
+ dual
+
+
+
+ android.hardware.wifi.hostapd
+ 1
+
+ IHostapd
+ default
+
+
+
+ android.vendor.samsung_slsi.telephony.hardware.radio
+ 1.1
+
+ IOemSamsungslsi
+ slot1
+ slot2
+
+
+
+ com.fingerprints33.extension
+ 1.0
+
+ IFingerprintAuthenticator
+ default
+
+
+ IFingerprintCalibration
+ default
+
+
+ IFingerprintEngineering
+ default
+
+
+ IFingerprintNavigation
+ default
+
+
+ IFingerprintRecalibration
+ default
+
+
+ IFingerprintSenseTouch
+ default
+
+
+ IFingerprintSensorTest
+ default
+
+
+
+ com.google.face.debug
+ 3-4
+
+ IDebugHost
+ default
+
+
+ IDebugManager
+ default
+
+
+
+ com.google.edgetpu
+ 2
+
+ IEdgeTpuVendorService
+ default
+
+
+
+ com.google.edgetpu.dba
+ 1
+
+ IDevice
+ default
+
+
+
+ com.google.edgetpu.tachyon
+ 1
+
+ IComputeService
+ default
+
+
+
+ com.google.hardware.pixel.display
+ 13
+
+ IDisplay
+ default
+
+
+
+ hardware.qorvo.uwb
+
+ IUwbVendor
+ default
+
+
+
+ vendor.goodix.hardware.biometrics.fingerprint
+ 2.1
+
+ IGoodixFingerprintDaemon
+ default
+
+
+
+ vendor.google.google_battery
+ 2-3
+
+ IGoogleBattery
+ default
+
+
+
+ vendor.google.wifi_ext
+ 2-4
+
+ IWifiExt
+ default
+
+
+
+ vendor.samsung_slsi.telephony.hardware.oemservice
+ 1.0
+
+ IOemService
+ dm0
+ dm1
+ sced0
+
+
+
+ com.google.pixel.modem.logmasklibrary
+ 1
+
+ ILiboemserviceProxy
+ default
+
+
+
+ vendor.samsung_slsi.telephony.hardware.radioExternal
+ 1.1
+
+ IOemSlsiRadioExternal
+ rilExternal
+
+
+
+ vendor.samsung_slsi.telephony.hardware.radioExternal
+ 1
+
+ IOemSlsiRadioExternal
+ default
+
+
+
+ vendor.samsung_slsi.telephony.hardware.oemservice
+ 1
+
+ IOemService
+ dm0
+ dm1
+ sced0
+
+
+
diff --git a/device_framework_matrix_product.xml b/device_framework_matrix_product_8.xml
similarity index 99%
rename from device_framework_matrix_product.xml
rename to device_framework_matrix_product_8.xml
index bbd11d3..1294b8c 100644
--- a/device_framework_matrix_product.xml
+++ b/device_framework_matrix_product_8.xml
@@ -21,7 +21,7 @@
android.hardware.vibrator
- 2
+ 2-3
IVibrator
dual
@@ -145,7 +145,7 @@
vendor.google.wifi_ext
- 2-3
+ 2-4
IWifiExt
default
diff --git a/dumpstate/dump_power.cpp b/dumpstate/dump_power.cpp
index 2e955cf..7316b27 100644
--- a/dumpstate/dump_power.cpp
+++ b/dumpstate/dump_power.cpp
@@ -177,7 +177,7 @@ void dumpPowerSupplyStats() {
void dumpMaxFg() {
const char *maxfgLoc = "/sys/class/power_supply/maxfg";
const char *max77779fgDir = "/sys/class/power_supply/max77779fg";
-
+ const char *maxfgDualLoc = "/sys/class/power_supply/maxfg_base";
const char *maxfg [][2] = {
{"Power supply property maxfg", "/sys/class/power_supply/maxfg/uevent"},
{"maxfg registers", "/sys/class/power_supply/maxfg/registers_dump"},
@@ -194,16 +194,17 @@ void dumpMaxFg() {
{"max77779fg_monitor logbuffer", "/dev/logbuffer_max77779fg_monitor"},
};
- const char *maxfgSecondary [][2] = {
+ const char *maxfgDual [][2] = {
{"Power supply property maxfg_base", "/sys/class/power_supply/maxfg_base/uevent"},
{"Power supply property maxfg_secondary", "/sys/class/power_supply/maxfg_secondary/uevent"},
{"maxfg_base registers", "/sys/class/power_supply/maxfg_base/registers_dump"},
{"maxfg_secondary registers", "/sys/class/power_supply/maxfg_secondary/registers_dump"},
{"model_state", "/sys/class/power_supply/maxfg_base/model_state"},
- {"maxfg_base", "/dev/logbuffer_maxfg_base"},
- {"maxfg_secondary", "/dev/logbuffer_maxfg_secondary"},
+ {"maxfg_base logbuffer", "/dev/logbuffer_maxfg_base"},
+ {"maxfg_secondary logbuffer", "/dev/logbuffer_maxfg_secondary"},
{"maxfg_base_monitor logbuffer", "/dev/logbuffer_maxfg_base_monitor"},
{"maxfg_secondary_monitor logbuffer", "/dev/logbuffer_maxfg_secondary_monitor"},
+ {"dual_batt logbuffer", "/dev/logbuffer_dual_batt"},
};
const char *maxfgHistoryName = "Maxim FG History";
@@ -220,14 +221,13 @@ void dumpMaxFg() {
for (const auto &row : max77779fgFiles) {
dumpFileContent(row[0], row[1]);
}
- } else {
- for (const auto &row : maxfgSecondary) {
+ } else if (isValidDir(maxfgDualLoc)){
+ for (const auto &row : maxfgDual) {
dumpFileContent(row[0], row[1]);
}
- }
-
- if (isValidFile(maxfgHistoryDir)) {
- dumpFileContent(maxfgHistoryName, maxfgHistoryDir);
+ if (isValidFile(maxfgHistoryDir)) {
+ dumpFileContent(maxfgHistoryName, maxfgHistoryDir);
+ }
}
}
@@ -317,19 +317,14 @@ void dumpPdEngine() {
{"TCPC logbuffer", "/dev/logbuffer_usbpd"},
{"pogo_transport logbuffer", "/dev/logbuffer_pogo_transport"},
{"PPS-google_cpm logbuffer", "/dev/logbuffer_cpm"},
+ {"PPS-pca9468 logbuffer", "/dev/logbuffer_pca9468"},
+ {"PPS-ln8411 logbuffer", "/dev/logbuffer_ln8411"},
+ {"PPS-dc_mains logbuffer", "/dev/logbuffer_dc_mains"}
};
- const char* ppsDcMsg = "PPS-dc logbuffer";
- const char* pca9468dir = "/dev/logbuffer_pca9468";
- const char* ln8411dir = "/dev/logbuffer_ln8411";
for (const auto &row : pdEngine) {
dumpFileContent(row[0], row[1]);
}
- if (isValidFile(pca9468dir)) {
- dumpFileContent(ppsDcMsg, pca9468dir);
- } else {
- dumpFileContent(ppsDcMsg, ln8411dir);
- }
}
void dumpBatteryHealth() {
@@ -361,7 +356,7 @@ void dumpBatteryHealth() {
}
void dumpBatteryDefend() {
- const char* defendConfig [][4] {
+ const char* defendConfig [][3] {
{"TRICKLE-DEFEND Config",
"/sys/devices/platform/google,battery/power_supply/battery/", "bd_"},
{"DWELL-DEFEND Config", "/sys/devices/platform/google,charger/", "charge_s"},
@@ -406,6 +401,57 @@ void dumpBatteryDefend() {
}
}
+void dumpBatteryCaretaker() {
+ const char* aacpConfig [][3] {
+ {"AACP Version",
+ "/sys/devices/platform/google,battery/power_supply/battery/", "aacp_"},
+ {"AACR Config",
+ "/sys/devices/platform/google,battery/power_supply/battery/", "aacr_"},
+ {"AAFV Config",
+ "/sys/devices/platform/google,battery/power_supply/battery/", "aafv_"},
+ {"AACT Config",
+ "/sys/devices/platform/google,battery/power_supply/battery/", "aact_"},
+ {"AACC",
+ "/sys/devices/platform/google,battery/power_supply/battery/", "aacc"},
+ };
+
+ std::vector files;
+ struct dirent *entry;
+ std::string content;
+ std::string fileLocation;
+
+ for (auto &config : aacpConfig) {
+ DIR *dir = opendir(config[1]);
+ if (dir == NULL)
+ continue;
+
+ printTitle(config[0]);
+ while ((entry = readdir(dir)) != NULL) {
+ if (std::string(entry->d_name).find(config[2]) != std::string::npos &&
+ strncmp(config[2], entry->d_name, strlen(config[2])) == 0) {
+ files.push_back(entry->d_name);
+ }
+ }
+ closedir(dir);
+
+ sort(files.begin(), files.end());
+
+ for (auto &file : files) {
+ fileLocation = std::string(config[1]) + std::string(file);
+ if (!android::base::ReadFileToString(fileLocation, &content) || content.empty()) {
+ content = "\n";
+ }
+
+ printf("%s: %s", file.c_str(), content.c_str());
+
+ if (content.back() != '\n')
+ printf("\n");
+ }
+
+ files.clear();
+ }
+}
+
void printValuesOfDirectory(const char *directory, std::string debugfs, const char *strMatch) {
std::vector files;
auto info = directory;
@@ -440,11 +486,8 @@ void printValuesOfDirectory(const char *directory, std::string debugfs, const ch
void dumpChg() {
const std::string pmic_bus = "/sys/devices/platform/108d0000.hsi2c/i2c-6/6-0066";
- const std::string pmic_bus_dev = "/sys/devices/platform/10cb0000.hsi2c/i2c-11/11-0066";
const char* chg_reg_dump_file = "/sys/class/power_supply/main-charger/device/registers_dump";
const std::string chg_name_file = "/sys/class/power_supply/main-charger/device/name";
- const std::string pmic_name_file_dev = pmic_bus_dev + "/name";
- const std::string pmic_reg_dump_dev_file = pmic_bus_dev + "/registers_dump";
const std::string pmic_name_file = pmic_bus + "/name";
const std::string pmic_reg_dump_file = pmic_bus + "/registers_dump";
const std::string reg_dump_str = " registers dump";
@@ -469,10 +512,6 @@ void dumpChg() {
if (isValidDir(pmic_bus.c_str())) {
ret = android::base::ReadFileToString(pmic_name_file, &pmic_name);
pmic_reg_dump = pmic_reg_dump_file;
- } else {
- /* DEV device */
- ret = android::base::ReadFileToString(pmic_name_file_dev, &pmic_name);
- pmic_reg_dump = pmic_reg_dump_dev_file;
}
if (ret && !pmic_name.empty()) {
@@ -490,36 +529,16 @@ void dumpChg() {
void dumpChgUserDebug() {
const std::string debugfs = "/d/";
- const char *maxFgDir = "/d/maxfg";
- const char *maxFgStrMatch = "maxfg";
const char *maxBaseFgDir = "/d/maxfg_base";
const char *maxBaseFgStrMatch = "maxfg_base";
- const char *maxSecFgDir = "/d/maxfg_secondary";
- const char *maxSecFgStrMatch = "maxfg_secondary";
const char *max77779FgDir = "/d/max77779fg";
const char *maxFg77779StrMatch = "max77779fg";
const char *chgTblName = "Charging table dump";
const char *chgTblDir = "/d/google_battery/chg_raw_profile";
- const char *maxFgInfo [] {
- "fg_model",
- "algo_ver",
- "model_ok",
- "registers",
- "nv_registers",
- };
-
const char *max77779FgInfo [] {
"fg_model",
- "algo_ver",
"model_ok",
- "registers",
- "debug_registers",
- };
-
- const char *max1720xFgInfo [] {
- "registers",
- "nv_registers",
};
if (isUserBuild())
@@ -527,11 +546,7 @@ void dumpChgUserDebug() {
dumpFileContent(chgTblName, chgTblDir);
- if (isValidDir(maxFgDir)) {
- for (auto & directory : maxFgInfo) {
- printValuesOfDirectory(directory, debugfs, maxFgStrMatch);
- }
- } else if (isValidDir(max77779FgDir)) {
+ if (isValidDir(max77779FgDir)) {
for (auto & directory : max77779FgInfo) {
printValuesOfDirectory(directory, debugfs, maxFg77779StrMatch);
}
@@ -539,11 +554,6 @@ void dumpChgUserDebug() {
for (auto & directory : max77779FgInfo) {
printValuesOfDirectory(directory, debugfs, maxBaseFgStrMatch);
}
- if (isValidDir(maxSecFgDir)) {
- for (auto & directory : max1720xFgInfo) {
- printValuesOfDirectory(directory, debugfs, maxSecFgStrMatch);
- }
- }
}
}
@@ -1113,6 +1123,7 @@ int main() {
dumpPdEngine();
dumpBatteryHealth();
dumpBatteryDefend();
+ dumpBatteryCaretaker();
dumpChg();
dumpChgUserDebug();
dumpScratchpad();
diff --git a/dumpstate/dump_power.rc b/dumpstate/dump_power.rc
index 3ccc2f3..5a01b3d 100644
--- a/dumpstate/dump_power.rc
+++ b/dumpstate/dump_power.rc
@@ -97,6 +97,7 @@ on early-boot
chown system system /dev/logbuffer_maxfg_secondary
chown system system /dev/logbuffer_maxfg_base_monitor
chown system system /dev/logbuffer_maxfg_secondary_monitor
+ chown system system /dev/logbuffer_dual_batt
chown system system /dev/logbuffer_maxq
chown system system /dev/logbuffer_rtx
chown system system /dev/logbuffer_ssoc
@@ -107,6 +108,7 @@ on early-boot
chown system system /dev/logbuffer_wireless
chown system system /dev/logbuffer_pca9468
chown system system /dev/logbuffer_ln8411
+ chown system system /dev/logbuffer_dc_mains
chown system system /dev/logbuffer_cpm
chown system system /dev/logbuffer_wc68
chown system system /dev/logbuffer_max77779_fwupdate
diff --git a/health/android.hardware.health-service.zumapro.xml b/health/android.hardware.health-service.zumapro.xml
index 2acaaba..8ddfbda 100644
--- a/health/android.hardware.health-service.zumapro.xml
+++ b/health/android.hardware.health-service.zumapro.xml
@@ -1,7 +1,7 @@
android.hardware.health
- 3
+ 4
IHealth/default
diff --git a/manifest_202404.xml b/manifest_202404.xml
new file mode 100644
index 0000000..f1ed5b9
--- /dev/null
+++ b/manifest_202404.xml
@@ -0,0 +1,6 @@
+
+
+ android.hardware.boot
+ IBootControl/default
+
+
diff --git a/manifest_media_aosp_202404.xml b/manifest_media_aosp_202404.xml
new file mode 100644
index 0000000..57f073f
--- /dev/null
+++ b/manifest_media_aosp_202404.xml
@@ -0,0 +1,8 @@
+
+
+
+ android.hardware.media.c2
+ 1
+ IComponentStore/default
+
+
diff --git a/media_codecs_aosp_c2.xml b/media_codecs_aosp_c2.xml
index ab61ca9..550b4c8 100644
--- a/media_codecs_aosp_c2.xml
+++ b/media_codecs_aosp_c2.xml
@@ -33,6 +33,7 @@
+
@@ -48,6 +49,7 @@
+
@@ -63,6 +65,7 @@
+
@@ -78,6 +81,7 @@
+
@@ -119,6 +123,7 @@
+
@@ -134,6 +139,7 @@
+
@@ -149,6 +155,7 @@
+
@@ -188,6 +195,7 @@
+
diff --git a/media_codecs_bo_c2.xml b/media_codecs_bo_c2.xml
index 06e0447..799a117 100644
--- a/media_codecs_bo_c2.xml
+++ b/media_codecs_bo_c2.xml
@@ -31,6 +31,7 @@
+
@@ -47,15 +48,16 @@
+
-
+
-
-
+
+
@@ -66,6 +68,7 @@
+
diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml
index 3391340..143b681 100644
--- a/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/overlay/frameworks/base/core/res/res/values/config.xml
@@ -275,6 +275,9 @@
true
+
+ 1024
+
false
@@ -481,10 +484,44 @@
com.google.android.apps.stargate
+
+ com.google.android.apps.stargate.registration.RegistrationReceiver_Receiver
+
- - US
+ - US
+ - PR
+ - CA
+ - AT
+ - BE
+ - BG
+ - HR
+ - CY
+ - CZ
+ - DK
+ - EE
+ - FI
+ - FR
+ - DE
+ - GR
+ - HU
+ - IE
+ - IT
+ - LV
+ - LT
+ - LU
+ - NL
+ - NO
+ - PL
+ - PT
+ - RO
+ - SK
+ - SI
+ - ES
+ - SE
+ - CH
+ - GB
com.google.android.apps.stargate.ACTION_ESOS_DEMO
-
- 20000
+
+ com.google.android.apps.stargate.sessionmanager.SessionManagerReceiver_Receiver
-
- 33%
+
+ false
+
+
+ /vendor/etc/telephony/satellite_access_config.json
+
+
+ true
+
+
+ false
+
+
+ pixel.ntn
+
+
+
+ - 1001
+
diff --git a/overlay/frameworks/base/packages/SettingsLib/res/values-mcc310-mnc004/strings.xml b/overlay/frameworks/base/packages/SettingsLib/res/values-mcc310-mnc004/strings.xml
deleted file mode 100644
index f8ed0c0..0000000
--- a/overlay/frameworks/base/packages/SettingsLib/res/values-mcc310-mnc004/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
- 5G UW
-
diff --git a/overlay/frameworks/base/packages/SettingsLib/res/values-mcc311-mnc480/strings.xml b/overlay/frameworks/base/packages/SettingsLib/res/values-mcc311-mnc480/strings.xml
deleted file mode 100644
index f8ed0c0..0000000
--- a/overlay/frameworks/base/packages/SettingsLib/res/values-mcc311-mnc480/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
- 5G UW
-
diff --git a/overlay/packages/services/Telephony/res/values/config.xml b/overlay/packages/services/Telephony/res/values/config.xml
index 2a0cf01..030b476 100644
--- a/overlay/packages/services/Telephony/res/values/config.xml
+++ b/overlay/packages/services/Telephony/res/values/config.xml
@@ -31,4 +31,7 @@
com.shannon.rcsservice
+
+
+ false
diff --git a/task_profiles.json b/task_profiles.json
index 236014b..6b9b1ee 100644
--- a/task_profiles.json
+++ b/task_profiles.json
@@ -265,6 +265,202 @@
}
]
},
+ {
+ "Name": "AdpfSet",
+ "Actions": [
+ {
+ "Name": "WriteFile",
+ "Params":
+ {
+ "FilePath": "/proc/vendor_sched/sched_qos/adpf_set",
+ "Value": "",
+ "LogFailures": "false"
+ }
+ }
+ ]
+ },
+ {
+ "Name": "AdpfClear",
+ "Actions": [
+ {
+ "Name": "WriteFile",
+ "Params":
+ {
+ "FilePath": "/proc/vendor_sched/sched_qos/adpf_clear",
+ "Value": "",
+ "LogFailures": "false"
+ }
+ }
+ ]
+ },
+ {
+ "Name": "BoostPrioSet",
+ "Actions": [
+ {
+ "Name": "WriteFile",
+ "Params":
+ {
+ "FilePath": "/proc/vendor_sched/sched_qos/boost_prio_set",
+ "Value": "",
+ "LogFailures": "false"
+ }
+ }
+ ]
+ },
+ {
+ "Name": "BoostPrioClear",
+ "Actions": [
+ {
+ "Name": "WriteFile",
+ "Params":
+ {
+ "FilePath": "/proc/vendor_sched/sched_qos/boost_prio_clear",
+ "Value": "",
+ "LogFailures": "false"
+ }
+ }
+ ]
+ },
+ {
+ "Name": "PreemptWakeupSet",
+ "Actions": [
+ {
+ "Name": "WriteFile",
+ "Params":
+ {
+ "FilePath": "/proc/vendor_sched/sched_qos/preempt_wakeup_set",
+ "Value": "",
+ "LogFailures": "false"
+ }
+ }
+ ]
+ },
+ {
+ "Name": "PreemptWakeupClear",
+ "Actions": [
+ {
+ "Name": "WriteFile",
+ "Params":
+ {
+ "FilePath": "/proc/vendor_sched/sched_qos/preempt_wakeup_clear",
+ "Value": "",
+ "LogFailures": "false"
+ }
+ }
+ ]
+ },
+ {
+ "Name": "PreferFitSet",
+ "Actions": [
+ {
+ "Name": "WriteFile",
+ "Params":
+ {
+ "FilePath": "/proc/vendor_sched/sched_qos/prefer_fit_set",
+ "Value": "",
+ "LogFailures": "false"
+ }
+ }
+ ]
+ },
+ {
+ "Name": "PreferFitClear",
+ "Actions": [
+ {
+ "Name": "WriteFile",
+ "Params":
+ {
+ "FilePath": "/proc/vendor_sched/sched_qos/prefer_fit_clear",
+ "Value": "",
+ "LogFailures": "false"
+ }
+ }
+ ]
+ },
+ {
+ "Name": "PreferIdleSet",
+ "Actions": [
+ {
+ "Name": "WriteFile",
+ "Params":
+ {
+ "FilePath": "/proc/vendor_sched/sched_qos/prefer_idle_set",
+ "Value": "",
+ "LogFailures": "false"
+ }
+ }
+ ]
+ },
+ {
+ "Name": "PreferIdleClear",
+ "Actions": [
+ {
+ "Name": "WriteFile",
+ "Params":
+ {
+ "FilePath": "/proc/vendor_sched/sched_qos/prefer_idle_clear",
+ "Value": "",
+ "LogFailures": "false"
+ }
+ }
+ ]
+ },
+ {
+ "Name": "AutoUclampMaxSet",
+ "Actions": [
+ {
+ "Name": "WriteFile",
+ "Params":
+ {
+ "FilePath": "/proc/vendor_sched/sched_qos/auto_uclamp_max_set",
+ "Value": "",
+ "LogFailures": "false"
+ }
+ }
+ ]
+ },
+ {
+ "Name": "AutoUclampMaxClear",
+ "Actions": [
+ {
+ "Name": "WriteFile",
+ "Params":
+ {
+ "FilePath": "/proc/vendor_sched/sched_qos/auto_uclamp_max_clear",
+ "Value": "",
+ "LogFailures": "false"
+ }
+ }
+ ]
+ },
+ {
+ "Name": "PreferHighCapSet",
+ "Actions": [
+ {
+ "Name": "WriteFile",
+ "Params":
+ {
+ "FilePath": "/proc/vendor_sched/sched_qos/prefer_high_cap_set",
+ "Value": "",
+ "LogFailures": "false"
+ }
+ }
+ ]
+ },
+ {
+ "Name": "PreferHighCapClear",
+ "Actions": [
+ {
+ "Name": "WriteFile",
+ "Params":
+ {
+ "FilePath": "/proc/vendor_sched/sched_qos/prefer_high_cap_clear",
+ "Value": "",
+ "LogFailures": "false"
+ }
+ }
+ ]
+ },
{
"Name": "ResetUclampGrp",
"Actions": [
@@ -304,9 +500,33 @@
"Name": "OtaProfiles",
"Profiles": [ "OtaPerformance", "ServiceCapacityLow", "LowIoPriority", "TimerSlackHigh" ]
},
+ {
+ "Name": "SCHED_QOS_SENSITIVE_EXTREME_SET",
+ "Profiles": [ "AdpfSet", "PreferIdleSet", "PreferFitSet", "BoostPrioSet", "PreemptWakeupSet" ]
+ },
+ {
+ "Name": "SCHED_QOS_SENSITIVE_EXTREME_CLEAR",
+ "Profiles": [ "AdpfClear", "PreferIdleClear", "PreferFitClear", "BoostPrioClear", "PreemptWakeupClear" ]
+ },
+ {
+ "Name": "SCHED_QOS_SENSITIVE_STANDARD_SET",
+ "Profiles": [ "AdpfSet", "PreferIdleSet", "PreferFitSet" ]
+ },
+ {
+ "Name": "SCHED_QOS_SENSITIVE_STANDARD_CLEAR",
+ "Profiles": [ "AdpfClear", "PreferIdleClear", "PreferFitClear" ]
+ },
+ {
+ "Name": "SCHED_QOS_POWER_EFFICIENCY_SET",
+ "Profiles": [ "AutoUclampMaxSet" ]
+ },
+ {
+ "Name": "SCHED_QOS_POWER_EFFICIENCY_CLEAR",
+ "Profiles": [ "AutoUclampMaxClear" ]
+ },
{
"Name": "InputPolicy",
- "Profiles": [ "ResetUclampGrp" ]
+ "Profiles": [ "MaxPerformance", "SCHED_QOS_SENSITIVE_EXTREME_SET" ]
}
]
}
diff --git a/telephony/satellite_access_config.json b/telephony/satellite_access_config.json
new file mode 100644
index 0000000..fd5257e
--- /dev/null
+++ b/telephony/satellite_access_config.json
@@ -0,0 +1,195 @@
+{
+ "access_control_configs": [
+ {
+ "config_id": 0,
+ "satellite_infos": [
+ {
+ "satellite_id": "967f8e86-fc27-4673-9343-a820280a14dd",
+ "satellite_position": {
+ "longitude": 10.25,
+ "altitude": 35793.1
+ },
+ "bands": [
+ 256
+ ],
+ "earfcn_ranges": [
+ {
+ "start_earfcn": 229360,
+ "end_earfcn": 229360
+ },
+ {
+ "start_earfcn": 229362,
+ "end_earfcn": 229362
+ },
+ {
+ "start_earfcn": 229364,
+ "end_earfcn": 229364
+ },
+ {
+ "start_earfcn": 229366,
+ "end_earfcn": 229366
+ }
+ ]
+ }
+ ],
+ "tag_ids": [
+ 101
+ ]
+ },
+ {
+ "config_id": 1,
+ "satellite_infos": [
+ {
+ "satellite_id": "c9d78ffa-ffa5-4d41-a81b-34693b33b496",
+ "satellite_position": {
+ "longitude": -101.3,
+ "altitude": 35786.0
+ },
+ "bands": [
+ 255
+ ],
+ "earfcn_ranges": [
+ {
+ "start_earfcn": 229011,
+ "end_earfcn": 229011
+ },
+ {
+ "start_earfcn": 229013,
+ "end_earfcn": 229013
+ },
+ {
+ "start_earfcn": 229015,
+ "end_earfcn": 229015
+ },
+ {
+ "start_earfcn": 229017,
+ "end_earfcn": 229017
+ }
+ ]
+ }
+ ],
+ "tag_ids": [
+ 11,
+ 1001
+ ]
+ },
+ {
+ "config_id": 2,
+ "satellite_infos": [
+ {
+ "satellite_id": "62de127d-ead1-481f-8524-b58e2664103a",
+ "satellite_position": {
+ "longitude": -98.0,
+ "altitude": 35775.1
+ },
+ "bands": [
+ 255
+ ],
+ "earfcn_ranges": [
+ {
+ "start_earfcn": 228837,
+ "end_earfcn": 228837
+ }
+ ]
+ }
+ ],
+ "tag_ids": [
+ 11,
+ 1001
+ ]
+ },
+ {
+ "config_id": 3,
+ "satellite_infos": [
+ {
+ "satellite_id": "62de127d-ead1-481f-8524-b58e2664103a",
+ "satellite_position": {
+ "longitude": -98.0,
+ "altitude": 35775.1
+ },
+ "bands": [
+ 255
+ ],
+ "earfcn_ranges": [
+ {
+ "start_earfcn": 228909,
+ "end_earfcn": 228909
+ },
+ {
+ "start_earfcn": 228919,
+ "end_earfcn": 228919
+ }
+ ]
+ }
+ ],
+ "tag_ids": [
+ 11
+ ]
+ },
+ {
+ "config_id": 4,
+ "satellite_infos": [
+ {
+ "satellite_id": "c9d78ffa-ffa5-4d41-a81b-34693b33b496",
+ "satellite_position": {
+ "longitude": -101.3,
+ "altitude": 35786.0
+ },
+ "bands": [
+ 255
+ ],
+ "earfcn_ranges": [
+ {
+ "start_earfcn": 229011,
+ "end_earfcn": 229011
+ },
+ {
+ "start_earfcn": 229013,
+ "end_earfcn": 229013
+ },
+ {
+ "start_earfcn": 229015,
+ "end_earfcn": 229015
+ },
+ {
+ "start_earfcn": 229017,
+ "end_earfcn": 229017
+ }
+ ]
+ }
+ ],
+ "tag_ids": [
+ 12
+ ]
+ },
+ {
+ "config_id": 5,
+ "satellite_infos": [
+ {
+ "satellite_id": "62de127d-ead1-481f-8524-b58e2664103a",
+ "satellite_position": {
+ "longitude": -98.0,
+ "altitude": 35775.1
+ },
+ "bands": [
+ 255
+ ],
+ "earfcn_ranges": [
+ {
+ "start_earfcn": 228919,
+ "end_earfcn": 228919
+ },
+ {
+ "start_earfcn": 228909,
+ "end_earfcn": 228909
+ }
+ ]
+ }
+ ],
+ "tag_ids": [
+ 11,
+ 1001
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/telephony/sats2.dat b/telephony/sats2.dat
index ec9a7f4..b06872f 100644
Binary files a/telephony/sats2.dat and b/telephony/sats2.dat differ
diff --git a/usb/usb/Usb.cpp b/usb/usb/Usb.cpp
index 4202407..a879c67 100644
--- a/usb/usb/Usb.cpp
+++ b/usb/usb/Usb.cpp
@@ -117,6 +117,12 @@ constexpr char kHost1StatePath[] = "/sys/bus/usb/devices/usb1/1-0:1.0/usb1-port1
constexpr char kHost2UeventRegex[] =
"/devices/platform/11210000.usb/11210000.dwc3/xhci-hcd-exynos.[0-9].auto/usb2/2-0:1.0";
constexpr char kHost2StatePath[] = "/sys/bus/usb/devices/usb2/2-0:1.0/usb2-port1/state";
+constexpr char kHubHost1UeventRegex[] =
+ "/devices/platform/11210000.usb/11210000.dwc3/xhci-hcd-exynos.[0-9].auto/usb1/1-1/1-1:1.0";
+constexpr char kHubHost1StatePath[] = "/sys/bus/usb/devices/usb1/1-1/1-1:1.0/1-1-port1/state";
+constexpr char kHubHost2UeventRegex[] =
+ "/devices/platform/11210000.usb/11210000.dwc3/xhci-hcd-exynos.[0-9].auto/usb1/1-1/1-1:1.0";
+constexpr char kHubHost2StatePath[] = "/sys/bus/usb/devices/usb1/1-1/1-1:1.0/1-1-port2/state";
constexpr char kDataRolePath[] = "/sys/devices/platform/11210000.usb/new_data_role";
constexpr int kSamplingIntervalSec = 5;
void queryVersionHelper(android::hardware::usb::Usb *usb,
@@ -536,10 +542,9 @@ static int getInternalHubUniqueId() {
return internalHubUniqueId;
}
-static Status tuneInternalHub(const char *devname, void* client_data) {
+static Status tuneInternalHub(const char *devname, android::hardware::usb::Usb *usb) {
uint16_t vendorId, productId;
struct usb_device *device;
- ::aidl::android::hardware::usb::Usb *usb;
int value, index;
device = usb_device_open(devname);
@@ -548,7 +553,6 @@ static Status tuneInternalHub(const char *devname, void* client_data) {
return Status::ERROR;
}
- usb = (::aidl::android::hardware::usb::Usb *)client_data;
value = usb->mUsbHubVendorCmdValue;
index = usb->mUsbHubVendorCmdIndex;
@@ -571,20 +575,46 @@ static Status tuneInternalHub(const char *devname, void* client_data) {
}
static int usbDeviceRemoved(const char *devname, void* client_data) {
+ string pogoEnableHub;
+ ::aidl::android::hardware::usb::Usb *usb;
+
+ usb = (::aidl::android::hardware::usb::Usb *)client_data;
+
+ if (usb->mIntHubEnabled == true && ReadFileToString(kPogoEnableHub, &pogoEnableHub)
+ && Trim(pogoEnableHub) == "0") {
+ ALOGI("Internal hub disabled");
+ usb->mIntHubEnabled = false;
+ usb->mUsbDataSessionMonitor.reset(new UsbDataSessionMonitor(kUdcUeventRegex, kUdcStatePath,
+ kHost1UeventRegex, kHost1StatePath, kHost2UeventRegex,
+ kHost2StatePath, kDataRolePath,
+ std::bind(&updatePortStatus, usb)));
+ }
+
return 0;
}
static int usbDeviceAdded(const char *devname, void* client_data) {
string pogoEnableHub;
int uniqueId = 0;
+ ::aidl::android::hardware::usb::Usb *usb;
+
+ usb = (::aidl::android::hardware::usb::Usb *)client_data;
// Enable hub tuning when the pogo dock is connected.
if (ReadFileToString(kPogoEnableHub, &pogoEnableHub) && Trim(pogoEnableHub) == "1") {
// If enable_hub is set to 1, the internal hub is the first enumearted device on bus 1 and
// port 1.
uniqueId = usb_device_get_unique_id_from_name(devname);
- if (uniqueId == getInternalHubUniqueId())
- tuneInternalHub(devname, client_data);
+ if (uniqueId == getInternalHubUniqueId()) {
+ ALOGI("Internal hub enabled");
+ usb->mIntHubEnabled = true;
+ tuneInternalHub(devname, usb);
+ usb->mUsbDataSessionMonitor.reset(new UsbDataSessionMonitor(kUdcUeventRegex,
+ kUdcStatePath, kHubHost1UeventRegex,
+ kHubHost1StatePath, kHubHost2UeventRegex,
+ kHubHost2StatePath, kDataRolePath,
+ std::bind(&updatePortStatus, usb)));
+ }
}
return 0;
@@ -612,9 +642,9 @@ Usb::Usb()
mRoleSwitchLock(PTHREAD_MUTEX_INITIALIZER),
mPartnerLock(PTHREAD_MUTEX_INITIALIZER),
mPartnerUp(false),
- mUsbDataSessionMonitor(kUdcUeventRegex, kUdcStatePath, kHost1UeventRegex, kHost1StatePath,
- kHost2UeventRegex, kHost2StatePath, kDataRolePath,
- std::bind(&updatePortStatus, this)),
+ mUsbDataSessionMonitor(new UsbDataSessionMonitor(kUdcUeventRegex, kUdcStatePath,
+ kHost1UeventRegex, kHost1StatePath, kHost2UeventRegex,
+ kHost2StatePath, kDataRolePath, std::bind(&updatePortStatus, this))),
mOverheat(ZoneInfo(TemperatureType::USB_PORT, kThermalZoneForTrip,
ThrottlingSeverity::CRITICAL),
{ZoneInfo(TemperatureType::UNKNOWN, kThermalZoneForTempReadPrimary,
@@ -1200,7 +1230,7 @@ void queryUsbDataSession(android::hardware::usb::Usb *usb,
std::vector *currentPortStatus) {
std::vector warnings;
- usb->mUsbDataSessionMonitor.getComplianceWarnings(
+ usb->mUsbDataSessionMonitor->getComplianceWarnings(
(*currentPortStatus)[0].currentDataRole, &warnings);
(*currentPortStatus)[0].complianceWarnings.insert(
(*currentPortStatus)[0].complianceWarnings.end(),
@@ -1215,25 +1245,30 @@ void queryVersionHelper(android::hardware::usb::Usb *usb,
pthread_mutex_lock(&usb->mLock);
status = getPortStatusHelper(usb, currentPortStatus);
- queryMoistureDetectionStatus(usb, currentPortStatus);
- queryPowerTransferStatus(usb, currentPortStatus);
- queryNonCompliantChargerStatus(currentPortStatus);
- pthread_mutex_lock(&usb->mDisplayPortLock);
- if (!usb->mDisplayPortFirstSetupDone &&
- usb->getDisplayPortUsbPathHelper(&displayPortUsbPath) == Status::SUCCESS) {
+ if (status == Status::SUCCESS && currentPortStatus->size() > 0) {
+ queryMoistureDetectionStatus(usb, currentPortStatus);
+ queryPowerTransferStatus(usb, currentPortStatus);
+ queryNonCompliantChargerStatus(currentPortStatus);
+ queryUsbDataSession(usb, currentPortStatus);
+ pthread_mutex_lock(&usb->mDisplayPortLock);
+ if (!usb->mDisplayPortFirstSetupDone &&
+ usb->getDisplayPortUsbPathHelper(&displayPortUsbPath) == Status::SUCCESS) {
- ALOGI("usbdp: boot with display connected or usb hal restarted");
- usb->setupDisplayPortPoll();
- }
- pthread_mutex_unlock(&usb->mDisplayPortLock);
- queryDisplayPortStatus(usb, currentPortStatus);
- if (usb->mCallback != NULL) {
- ScopedAStatus ret = usb->mCallback->notifyPortStatusChange(*currentPortStatus,
- status);
- if (!ret.isOk())
- ALOGE("queryPortStatus error %s", ret.getDescription().c_str());
+ ALOGI("usbdp: boot with display connected or usb hal restarted");
+ usb->setupDisplayPortPoll();
+ }
+ pthread_mutex_unlock(&usb->mDisplayPortLock);
+ queryDisplayPortStatus(usb, currentPortStatus);
+ if (usb->mCallback != NULL) {
+ ScopedAStatus ret = usb->mCallback->notifyPortStatusChange(*currentPortStatus,
+ status);
+ if (!ret.isOk())
+ ALOGE("queryPortStatus error %s", ret.getDescription().c_str());
+ } else {
+ ALOGI("Notifying userspace skipped. Callback is NULL");
+ }
} else {
- ALOGI("Notifying userspace skipped. Callback is NULL");
+ ALOGI("%s skipped. currentPortStatus is empty", __func__);
}
pthread_mutex_unlock(&usb->mLock);
}
diff --git a/usb/usb/Usb.h b/usb/usb/Usb.h
index 8f0c3a0..eb37d38 100644
--- a/usb/usb/Usb.h
+++ b/usb/usb/Usb.h
@@ -126,7 +126,8 @@ struct Usb : public BnUsb {
bool mPartnerUp;
// Report usb data session event and data incompliance warnings
- UsbDataSessionMonitor mUsbDataSessionMonitor;
+ std::unique_ptr mUsbDataSessionMonitor;
+ bool mIntHubEnabled;
// Usb Overheat object for push suez event
UsbOverheatEvent mOverheat;
// Temperature when connected
diff --git a/usb/usb/UsbDataSessionMonitor.cpp b/usb/usb/UsbDataSessionMonitor.cpp
index bff52f0..197b368 100644
--- a/usb/usb/UsbDataSessionMonitor.cpp
+++ b/usb/usb/UsbDataSessionMonitor.cpp
@@ -102,6 +102,7 @@ UsbDataSessionMonitor::UsbDataSessionMonitor(
const std::string &dataRolePath, std::function updatePortStatusCb) {
struct epoll_event ev;
std::string udc;
+ int pipefds[2];
unique_fd epollFd(epoll_create(8));
if (epollFd.get() == -1) {
@@ -133,19 +134,28 @@ UsbDataSessionMonitor::UsbDataSessionMonitor(
abort();
}
+ pipe(pipefds);
+ mPipefd0.reset(pipefds[0]);
+ mPipefd1.reset(pipefds[1]);
+ if (addEpollFd(epollFd, mPipefd0))
+ abort();
+
/*
* The device state file could be absent depending on the current data role
* and driver architecture. It's ok for addEpollFile to fail here, the file
* will be monitored later when its presence is detected by uevent.
*/
+ mDeviceState.name = "udc";
mDeviceState.filePath = deviceStatePath;
mDeviceState.ueventRegex = deviceUeventRegex;
addEpollFile(epollFd.get(), mDeviceState.filePath, mDeviceState.fd);
+ mHost1State.name = "host1";
mHost1State.filePath = host1StatePath;
mHost1State.ueventRegex = host1UeventRegex;
addEpollFile(epollFd.get(), mHost1State.filePath, mHost1State.fd);
+ mHost2State.name = "host2";
mHost2State.filePath = host2StatePath;
mHost2State.ueventRegex = host2UeventRegex;
addEpollFile(epollFd.get(), mHost2State.filePath, mHost2State.fd);
@@ -169,7 +179,15 @@ UsbDataSessionMonitor::UsbDataSessionMonitor(
usb_flags::enable_report_usb_data_compliance_warning());
}
-UsbDataSessionMonitor::~UsbDataSessionMonitor() {}
+UsbDataSessionMonitor::~UsbDataSessionMonitor() {
+ /*
+ * Write a character to the pipe to signal the monitor thread to exit.
+ * The character is not important, it can be any value.
+ */
+ int c = 'q';
+ write(mPipefd1, &c, 1);
+ pthread_join(mMonitor, NULL);
+}
void UsbDataSessionMonitor::reportUsbDataSessionMetrics() {
std::vector events;
@@ -307,11 +325,11 @@ void UsbDataSessionMonitor::handleDeviceStateEvent(struct usbDeviceState *device
n = read(deviceState->fd.get(), &state, USB_STATE_MAX_LEN);
if (kValidStates.find(state) == kValidStates.end()) {
- ALOGE("Invalid state %s", state);
+ ALOGE("Invalid state %s: %s", deviceState->name.c_str(), state);
return;
}
- ALOGI("Update USB device state: %s", state);
+ ALOGI("Update device state %s: %s", deviceState->name.c_str(), state);
deviceState->states.push_back(state);
deviceState->timestamps.push_back(boot_clock::now());
@@ -484,7 +502,9 @@ void *UsbDataSessionMonitor::monitorThread(void *param) {
}
for (int n = 0; n < nevents; ++n) {
- if (events[n].data.fd == monitor->mUeventFd.get()) {
+ if (events[n].data.fd == monitor->mPipefd0.get()) {
+ return NULL;
+ } else if (events[n].data.fd == monitor->mUeventFd.get()) {
monitor->handleUevent();
} else if (events[n].data.fd == monitor->mTimerFd.get()) {
monitor->handleTimerEvent();
diff --git a/usb/usb/UsbDataSessionMonitor.h b/usb/usb/UsbDataSessionMonitor.h
index aced8a4..e1cfd10 100644
--- a/usb/usb/UsbDataSessionMonitor.h
+++ b/usb/usb/UsbDataSessionMonitor.h
@@ -64,6 +64,8 @@ class UsbDataSessionMonitor {
private:
struct usbDeviceState {
+ // The name of the usb device, e.g. udc, host1, host2.
+ std::string name;
unique_fd fd;
std::string filePath;
std::string ueventRegex;
@@ -86,6 +88,8 @@ class UsbDataSessionMonitor {
void updateUdcBindStatus(const std::string &devname);
pthread_t mMonitor;
+ unique_fd mPipefd0;
+ unique_fd mPipefd1;
unique_fd mEpollFd;
unique_fd mUeventFd;
unique_fd mTimerFd;
diff --git a/usb/usb/android.hardware.usb-service-i2c11.rc b/usb/usb/android.hardware.usb-service-i2c11.rc
index dd4b86b..84a810e 100644
--- a/usb/usb/android.hardware.usb-service-i2c11.rc
+++ b/usb/usb/android.hardware.usb-service-i2c11.rc
@@ -26,7 +26,6 @@ on post-fs
chown root system /sys/devices/platform/11110000.usb/dwc3_exynos_otg_b_sess
chown root system /sys/devices/platform/11110000.usb/dwc3_exynos_otg_id
chown root system /sys/devices/platform/11110000.usb/usb_data_enabled
- chown root system /sys/devices/platform/google,pogo/enable_usb
chmod 664 /sys/class/typec/port0/power_role
chmod 664 /sys/class/typec/port0/data_role
chmod 664 /sys/class/typec/port0/port_type
@@ -48,4 +47,3 @@ on post-fs
chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/pin_assignment
chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/link_status
chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/usbc_cable_disconnect
- chmod 664 /sys/devices/platform/google,pogo/enable_usb
diff --git a/usb/usb/android.hardware.usb-service-i2c6.rc b/usb/usb/android.hardware.usb-service-i2c6.rc
index fac08b3..d160a22 100644
--- a/usb/usb/android.hardware.usb-service-i2c6.rc
+++ b/usb/usb/android.hardware.usb-service-i2c6.rc
@@ -26,7 +26,6 @@ on post-fs
chown root system /sys/devices/platform/11110000.usb/dwc3_exynos_otg_b_sess
chown root system /sys/devices/platform/11110000.usb/dwc3_exynos_otg_id
chown root system /sys/devices/platform/11110000.usb/usb_data_enabled
- chown root system /sys/devices/platform/google,pogo/enable_usb
chmod 664 /sys/class/typec/port0/power_role
chmod 664 /sys/class/typec/port0/data_role
chmod 664 /sys/class/typec/port0/port_type
@@ -48,4 +47,3 @@ on post-fs
chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/pin_assignment
chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/link_status
chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/usbc_cable_disconnect
- chmod 664 /sys/devices/platform/google,pogo/enable_usb