diff --git a/BoardConfig-common.mk b/BoardConfig-common.mk
index 1a5653e..6a316c5 100644
--- a/BoardConfig-common.mk
+++ b/BoardConfig-common.mk
@@ -41,9 +41,15 @@ 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)))
-ifneq (,$(filter eng,$(TARGET_BUILD_VARIANT)))
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)
@@ -79,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
@@ -217,6 +223,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
diff --git a/conf/f2fs/fstab.rw.zumapro.f2fs b/conf/f2fs/fstab.rw.zumapro.f2fs
index 21b3c78..73026da 100644
--- a/conf/f2fs/fstab.rw.zumapro.f2fs
+++ b/conf/f2fs/fstab.rw.zumapro.f2fs
@@ -4,5 +4,5 @@
/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,first_stage_mount,metadata_csum
+/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/init.efs.16k.rc b/conf/init.efs.16k.rc
index 121c6fd..e52ff78 100644
--- a/conf/init.efs.16k.rc
+++ b/conf/init.efs.16k.rc
@@ -1,5 +1,5 @@
# This RC file is used for:
-# - 16kb Developer option
+# - 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
@@ -20,12 +20,3 @@ on post-fs-data && property:ro.boot.hardware.cpu.pagesize=16384
on late-fs && property:ro.boot.hardware.cpu.pagesize=4096
mount_all /vendor/etc/fstab.efs --early
-
-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
diff --git a/conf/init.efs.4k.rc b/conf/init.efs.4k.rc
index b930d01..5393e67 100644
--- a/conf/init.efs.4k.rc
+++ b/conf/init.efs.4k.rc
@@ -1,11 +1,2 @@
on late-fs
mount_all /vendor/etc/fstab.efs --early
-
-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
diff --git a/conf/init.persist.rc b/conf/init.persist.rc
index 800a611..624eb79 100644
--- a/conf/init.persist.rc
+++ b/conf/init.persist.rc
@@ -3,6 +3,14 @@ on early-init && property:ro.boot.hardware.cpu.pagesize=4096
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
@@ -36,6 +44,7 @@ on property:ro.fstype.data=* && property:ro.vendor.persist.status=mounted
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
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 c369eb7..7378d9b 100644
--- a/conf/init.zumapro.board.rc
+++ b/conf/init.zumapro.board.rc
@@ -21,72 +21,6 @@ on init
# Boot time fs tuning
write /sys/block/sda/queue/scheduler mq-deadline
- chown system system /proc/vendor_sched/groups/bg/set_task_group
- chown system system /proc/vendor_sched/groups/cam/set_task_group
- chown system system /proc/vendor_sched/groups/fg/set_task_group
- chown system system /proc/vendor_sched/groups/nnapi/set_task_group
- chown system system /proc/vendor_sched/groups/sys/set_task_group
- chown system system /proc/vendor_sched/groups/sys_bg/set_task_group
- chown system system /proc/vendor_sched/groups/ta/set_task_group
- chown system system /proc/vendor_sched/groups/rt/set_task_group
- chown system system /proc/vendor_sched/groups/sf/set_task_group
- chown system system /proc/vendor_sched/groups/dex2oat/set_task_group
- chown system system /proc/vendor_sched/groups/cam_power/set_task_group
- chown system system /proc/vendor_sched/groups/ota/set_task_group
- chown system system /proc/vendor_sched/groups/fg_wi/set_task_group
- chown system system /proc/vendor_sched/groups/bg/set_proc_group
- chown system system /proc/vendor_sched/groups/cam/set_proc_group
- chown system system /proc/vendor_sched/groups/fg/set_proc_group
- chown system system /proc/vendor_sched/groups/nnapi/set_proc_group
- chown system system /proc/vendor_sched/groups/sys/set_proc_group
- chown system system /proc/vendor_sched/groups/sys_bg/set_proc_group
- chown system system /proc/vendor_sched/groups/ta/set_proc_group
- chown system system /proc/vendor_sched/groups/rt/set_proc_group
- chown system system /proc/vendor_sched/groups/sf/set_proc_group
- chown system system /proc/vendor_sched/groups/dex2oat/set_proc_group
- chown system system /proc/vendor_sched/groups/cam_power/set_proc_group
- chown system system /proc/vendor_sched/groups/ota/set_proc_group
- chown system system /proc/vendor_sched/groups/fg_wi/set_proc_group
- chown system system /proc/vendor_sched/prefer_idle_set
- chown system system /proc/vendor_sched/prefer_idle_clear
- chown system system /proc/vendor_sched/pmu_poll_enable
- chown system system /proc/vendor_sched/pmu_poll_time
- chown system system /proc/vendor_sched/uclamp_fork_reset_clear
- chown system system /proc/vendor_sched/uclamp_fork_reset_set
-
- chmod 0220 /proc/vendor_sched/groups/bg/set_task_group
- chmod 0220 /proc/vendor_sched/groups/cam/set_task_group
- chmod 0220 /proc/vendor_sched/groups/fg/set_task_group
- chmod 0220 /proc/vendor_sched/groups/nnapi/set_task_group
- chmod 0220 /proc/vendor_sched/groups/sys/set_task_group
- chmod 0220 /proc/vendor_sched/groups/sys_bg/set_task_group
- chmod 0220 /proc/vendor_sched/groups/ta/set_task_group
- chmod 0220 /proc/vendor_sched/groups/rt/set_task_group
- chmod 0220 /proc/vendor_sched/groups/sf/set_task_group
- chmod 0220 /proc/vendor_sched/groups/dex2oat/set_task_group
- chmod 0220 /proc/vendor_sched/groups/cam_power/set_task_group
- chmod 0220 /proc/vendor_sched/groups/ota/set_task_group
- chmod 0220 /proc/vendor_sched/groups/fg_wi/set_task_group
- chmod 0220 /proc/vendor_sched/groups/bg/set_proc_group
- chmod 0220 /proc/vendor_sched/groups/cam/set_proc_group
- chmod 0220 /proc/vendor_sched/groups/fg/set_proc_group
- chmod 0220 /proc/vendor_sched/groups/nnapi/set_proc_group
- chmod 0220 /proc/vendor_sched/groups/sys/set_proc_group
- chmod 0220 /proc/vendor_sched/groups/sys_bg/set_proc_group
- chmod 0220 /proc/vendor_sched/groups/ta/set_proc_group
- chmod 0220 /proc/vendor_sched/groups/rt/set_proc_group
- chmod 0220 /proc/vendor_sched/groups/sf/set_proc_group
- chmod 0220 /proc/vendor_sched/groups/dex2oat/set_proc_group
- chmod 0220 /proc/vendor_sched/groups/cam_power/set_proc_group
- chmod 0220 /proc/vendor_sched/groups/ota/set_proc_group
- chmod 0220 /proc/vendor_sched/groups/fg_wi/set_proc_group
- chmod 0220 /proc/vendor_sched/prefer_idle_set
- chmod 0220 /proc/vendor_sched/prefer_idle_clear
- chmod 0660 /proc/vendor_sched/pmu_poll_enable
- chmod 0220 /proc/vendor_sched/pmu_poll_time
- chmod 0220 /proc/vendor_sched/uclamp_fork_reset_clear
- chmod 0220 /proc/vendor_sched/uclamp_fork_reset_set
-
start vendor.keymaster-4-0
# ZRAM setup
@@ -389,8 +323,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
@@ -639,6 +573,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
@@ -744,6 +679,7 @@ on property:vendor.all.modules.ready=1
chown system system /sys/bus/i2c/devices/9-0043/default/braking_time_ms
chown system system /sys/bus/i2c/devices/9-0043/default/f0_offset
chown system system /sys/bus/i2c/devices/9-0043/default/owt_free_space
+ chown system system /sys/bus/i2c/devices/9-0043/default/owt_lib_compat
chown system system /sys/bus/i2c/devices/9-0043/default/f0_comp_enable
chown system system /sys/bus/i2c/devices/9-0043/default/redc_comp_enable
chown system system /sys/bus/i2c/devices/9-0043/default/delay_before_stop_playback_us
diff --git a/conf/init.zumapro.soc.rc b/conf/init.zumapro.soc.rc
index bb8929a..f77d0f3 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,71 +131,6 @@ 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
-
- 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
-
- # 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/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_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/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_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/rt/qos_adpf_enable 1
- write /proc/vendor_sched/groups/sf/qos_adpf_enable 1
on zygote-start
# For PixelLogger configuration file.
diff --git a/default-permissions.xml b/default-permissions.xml
index 8c79c49..687cff4 100644
--- a/default-permissions.xml
+++ b/default-permissions.xml
@@ -173,5 +173,9 @@
+
+
+
diff --git a/device.mk b/device.mk
index 67d5de0..c6e3263 100644
--- a/device.mk
+++ b/device.mk
@@ -31,7 +31,7 @@ include device/google/gs-common/pixel_metrics/pixel_metrics.mk
include device/google/gs-common/soc/freq.mk
include device/google/gs-common/gps/dump/log.mk
include device/google/gs-common/bcmbt/dump/dumplog.mk
-include device/google/gs-common/display/dump.mk
+include device/google/gs-common/display/dump_exynos_display.mk
include device/google/gs-common/display_logbuffer/dump.mk
include device/google/gs-common/gxp/gxp.mk
include device/google/gs-common/camera/dump.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 \
@@ -176,30 +177,34 @@ PRODUCT_PROPERTY_OVERRIDES += \
# MAJOR_CLASS: 0x42 -> 66 (Phone)
# MINOR_CLASS: 0x0C -> 12 (Smart Phone)
PRODUCT_PRODUCT_PROPERTIES += \
- bluetooth.device.class_of_device=90,66,12
+ bluetooth.device.class_of_device?=90,66,12
# Set supported Bluetooth profiles to enabled
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.client.enabled=true \
- bluetooth.profile.bas.client.enabled=true \
- bluetooth.profile.csip.set_coordinator.enabled=true \
- bluetooth.profile.gatt.enabled=true \
- bluetooth.profile.hap.client.enabled=true \
- bluetooth.profile.hfp.ag.enabled=true \
- bluetooth.profile.hid.device.enabled=true \
- bluetooth.profile.hid.host.enabled=true \
- bluetooth.profile.map.server.enabled=true \
- bluetooth.profile.mcp.server.enabled=true \
- bluetooth.profile.opp.enabled=true \
- bluetooth.profile.pan.nap.enabled=true \
- bluetooth.profile.pan.panu.enabled=true \
- bluetooth.profile.pbap.server.enabled=true \
- bluetooth.profile.sap.server.enabled=true \
- bluetooth.profile.ccp.server.enabled=true \
- bluetooth.profile.vcp.controller.enabled=true
+ bluetooth.profile.asha.central.enabled?=true \
+ bluetooth.profile.a2dp.source.enabled?=true \
+ bluetooth.profile.avrcp.target.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 \
+ bluetooth.profile.hap.client.enabled?=true \
+ bluetooth.profile.hfp.ag.enabled?=true \
+ bluetooth.profile.hid.device.enabled?=true \
+ bluetooth.profile.hid.host.enabled?=true \
+ bluetooth.profile.map.server.enabled?=true \
+ bluetooth.profile.mcp.server.enabled?=true \
+ bluetooth.profile.opp.enabled?=true \
+ bluetooth.profile.pan.nap.enabled?=true \
+ bluetooth.profile.pan.panu.enabled?=true \
+ bluetooth.profile.pbap.server.enabled?=true \
+ bluetooth.profile.sap.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
@@ -613,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 \
@@ -803,6 +823,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
@@ -1229,6 +1255,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
@@ -1289,12 +1319,17 @@ endif
# 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
diff --git a/device_framework_matrix_product_202404.xml b/device_framework_matrix_product_202404.xml
index ce5db47..205b016 100644
--- a/device_framework_matrix_product_202404.xml
+++ b/device_framework_matrix_product_202404.xml
@@ -21,7 +21,7 @@
android.hardware.vibrator
- 2
+ 2-3
IVibrator
dual
@@ -114,7 +114,7 @@
com.google.hardware.pixel.display
- 13
+ 13-14
IDisplay
default
diff --git a/device_framework_matrix_product_8.xml b/device_framework_matrix_product_8.xml
index 1103919..3415eb0 100644
--- a/device_framework_matrix_product_8.xml
+++ b/device_framework_matrix_product_8.xml
@@ -21,7 +21,7 @@
android.hardware.vibrator
- 2
+ 2-3
IVibrator
dual
@@ -114,7 +114,7 @@
com.google.hardware.pixel.display
- 13
+ 13-14
IDisplay
default
diff --git a/dumpstate/dump_power.cpp b/dumpstate/dump_power.cpp
index 1b84f5e..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,7 +317,9 @@ void dumpPdEngine() {
{"TCPC logbuffer", "/dev/logbuffer_usbpd"},
{"pogo_transport logbuffer", "/dev/logbuffer_pogo_transport"},
{"PPS-google_cpm logbuffer", "/dev/logbuffer_cpm"},
- {"PPS-dc logbuffer", "/dev/logbuffer_dc_mains"}
+ {"PPS-pca9468 logbuffer", "/dev/logbuffer_pca9468"},
+ {"PPS-ln8411 logbuffer", "/dev/logbuffer_ln8411"},
+ {"PPS-dc_mains logbuffer", "/dev/logbuffer_dc_mains"}
};
for (const auto &row : pdEngine) {
@@ -354,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"},
@@ -399,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;
@@ -433,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";
@@ -462,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()) {
@@ -483,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())
@@ -520,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);
}
@@ -532,11 +554,6 @@ void dumpChgUserDebug() {
for (auto & directory : max77779FgInfo) {
printValuesOfDirectory(directory, debugfs, maxBaseFgStrMatch);
}
- if (isValidDir(maxSecFgDir)) {
- for (auto & directory : max1720xFgInfo) {
- printValuesOfDirectory(directory, debugfs, maxSecFgStrMatch);
- }
- }
}
}
@@ -1106,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 d70c021..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
@@ -105,6 +106,8 @@ on early-boot
chown system system /dev/logbuffer_usbpd
chown system system /dev/logbuffer_pogo_transport
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
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/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml
index 6e2772c..269d1bc 100644
--- a/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/overlay/frameworks/base/core/res/res/values/config.xml
@@ -492,10 +492,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.sessionmanager.SessionManagerReceiver_Receiver
+
+
+ false
+
+
+ /vendor/etc/telephony/satellite_access_config.json
+
+
+ true
+
+
+ false
+
+
+ pixel.ntn
+
+
+ true
+
+
+
+ - 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/task_profiles.json b/task_profiles.json
index 8cec122..103ff20 100644
--- a/task_profiles.json
+++ b/task_profiles.json
@@ -488,6 +488,19 @@
}
}
]
+ },
+ {
+ "Name": "HighestCfsPrioScheduling",
+ "Actions": [
+ {
+ "Name": "SetSchedulerPolicy",
+ "Params":
+ {
+ "Policy": "SCHED_OTHER",
+ "Nice": "-20"
+ }
+ }
+ ]
}
],
@@ -500,10 +513,6 @@
"Name": "OtaProfiles",
"Profiles": [ "OtaPerformance", "ServiceCapacityLow", "LowIoPriority", "TimerSlackHigh" ]
},
- {
- "Name": "InputPolicy",
- "Profiles": [ "MaxPerformance", "ResetUclampGrp", "PreferIdleSet" ]
- },
{
"Name": "SCHED_QOS_SENSITIVE_EXTREME_SET",
"Profiles": [ "AdpfSet", "PreferIdleSet", "PreferFitSet", "BoostPrioSet", "PreemptWakeupSet" ]
@@ -519,6 +528,18 @@
{
"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": [ "HighestCfsPrioScheduling", "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 ea8b830..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(),
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;