Merge Android 14 QPR3 to AOSP main

Bug: 346855327
Merged-In: I7ceeb6d178b83f9029bcc4fd3e28fc33c8ce56e9
Change-Id: I3b7e1df15b00c4aa916b5bbc3497022a01f44371
This commit is contained in:
Xin Li 2024-06-13 10:48:23 -07:00
commit 635f54a299
22 changed files with 246 additions and 187 deletions

View file

@ -163,6 +163,7 @@ TARGET_COPY_OUT_SYSTEM_EXT := system_ext
# Video Codec
########################
# 1. Exynos C2
BOARD_USE_CODEC2_HIDL_1_2 := true
BOARD_USE_CSC_FILTER := false
BOARD_USE_DEC_SW_CSC := true
BOARD_USE_ENC_SW_CSC := true
@ -347,6 +348,14 @@ KERNEL_MODULES := $(wildcard $(KERNEL_MODULE_DIR)/*.ko)
BOARD_VENDOR_KERNEL_MODULES_BLOCKLIST_FILE := $(KERNEL_MODULE_DIR)/vendor_dlkm.modules.blocklist
# Since Pixel 6/6pro doesn't have a system_dlkm partition, the GKI modules are
# on the vendor_dlkm partition. In order to allow them to load properly, we
# need to retain the module signature which would normally get stripped during
# packaging. Disable stripping the vendor_dlkm modules to retain the GKI
# modules' signature. Note, the pixel kernel builds always strip the modules in
# favor of saving space via the kleaf property: strip_modules = True.
BOARD_DO_NOT_STRIP_VENDOR_MODULES := true
# Prebuilt kernel modules that are *not* listed in vendor_boot.modules.load
BOARD_PREBUILT_VENDOR_RAMDISK_KERNEL_MODULES = fips140/fips140.ko
BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD_EXTRA = $(foreach k,$(BOARD_PREBUILT_VENDOR_RAMDISK_KERNEL_MODULES),$(if $(wildcard $(KERNEL_MODULE_DIR)/$(k)), $(k)))

View file

@ -16,12 +16,8 @@ on init
write /proc/vendor_sched/teo_util_threshold "1024 1024 1024"
# Boot time fs tuning
write /sys/block/sda/queue/iostats 0
write /sys/block/sda/queue/scheduler bfq
write /sys/block/sda/queue/iosched/slice_idle 0
write /sys/block/sda/queue/nr_requests 256
write /dev/sys/fs/by-name/userdata/data_io_flag 56
write /dev/sys/fs/by-name/userdata/node_io_flag 56
chown system system /proc/vendor_sched/groups/bg/set_task_group
chown system system /proc/vendor_sched/groups/cam/set_task_group
@ -101,15 +97,6 @@ on init
chmod 0220 /proc/vendor_sched/pmu_poll_enable
chmod 0220 /proc/vendor_sched/pmu_poll_time
wait /dev/block/platform/${ro.boot.boot_devices}
symlink /dev/block/platform/${ro.boot.boot_devices} /dev/block/bootdevice
# to access UFS/eMMC sysfs directly
symlink /sys/devices/platform/${ro.boot.boot_devices} /dev/sys/block/bootdevice
# Disable UFS powersaving
write /dev/sys/block/bootdevice/clkgate_enable 0
start vendor.keymaster-3-0
# ZRAM setup
@ -161,11 +148,11 @@ on init
mkdir /dev/socket/pdx/system/vr/sensors 0775 system system
# Boot time 183626384
write /proc/vendor_sched/groups/ta/uclamp_min 161
write /proc/vendor_sched/groups/ta/uclamp_min 201
write /proc/vendor_sched/groups/ta/prefer_idle 1
write /proc/vendor_sched/groups/fg/uclamp_min 161
write /proc/vendor_sched/groups/fg/uclamp_min 201
write /proc/vendor_sched/groups/fg/prefer_idle 1
write /proc/vendor_sched/groups/sys/uclamp_min 161
write /proc/vendor_sched/groups/sys/uclamp_min 201
write /proc/vendor_sched/groups/sys/prefer_idle 1
# governor setting
@ -247,6 +234,7 @@ on init
chown system system /dev/logbuffer_pca9468
chown system system /dev/logbuffer_cpm
chown system system /dev/logbuffer_bd
chown system system /dev/logbuffer_cpif
# Dump maxfg
chown system system /sys/class/power_supply/maxfg/m5_model_state
@ -298,6 +286,7 @@ on init
# BatteryHealthData
chown system system /sys/class/power_supply/battery/first_usage_date
chown system system /sys/class/power_supply/battery/swelling_data
# Battery Defender
chown system system /sys/devices/platform/google,battery/power_supply/battery/bd_trickle_cnt
@ -323,6 +312,7 @@ on init
chown system system /sys/devices/platform/google,charger/bd_trigger_time
chown system system /sys/devices/platform/google,charger/bd_trigger_voltage
chown system system /sys/devices/platform/google,charger/bd_clear
chown system system /sys/devices/platform/google,charger/bd_state
chown system system /sys/devices/platform/google,charger/charge_start_level
chown system system /sys/devices/platform/google,charger/charge_stop_level
chown system system /sys/devices/platform/google,cpm/dc_ctl
@ -500,15 +490,6 @@ on early-boot
# Wait for insmod_sh to finish all common modules
wait_for_prop vendor.common.modules.ready 1
# Permission for Health Storage HAL
chown system system /dev/sys/block/bootdevice/manual_gc
# Permission for Pixelstats
chown system system /dev/sys/block/bootdevice/slowio_read_cnt
chown system system /dev/sys/block/bootdevice/slowio_write_cnt
chown system system /dev/sys/block/bootdevice/slowio_unmap_cnt
chown system system /dev/sys/block/bootdevice/slowio_sync_cnt
on boot
# Allow to access debugfs for system:system
@ -601,6 +582,7 @@ on fs
chown system system /sys/class/backlight/panel0-backlight/dimming_on
chown system system /sys/class/backlight/panel0-backlight/hbm_mode
chown system system /sys/class/backlight/panel0-backlight/local_hbm_mode
chown system system /sys/class/backlight/panel0-backlight/allow_wakeup_by_state_change
chown system system /sys/devices/platform/exynos-drm/primary-panel/gamma
chown system system /sys/devices/platform/exynos-drm/primary-panel/min_vrefresh
chown system system /sys/devices/platform/exynos-drm/primary-panel/idle_delay_ms
@ -696,20 +678,6 @@ on property:init.svc.vendor.charger=running
write /sys/devices/system/cpu/cpu7/online 0
on property:sys.boot_completed=1
# Runtime fs tuning
write /sys/block/sda/queue/nr_requests 64
write /sys/block/sda/queue/iostats 1
write /dev/sys/fs/by-name/userdata/data_io_flag 8
write /dev/sys/fs/by-name/userdata/node_io_flag 8
# Permission for Pixelstats
chown system system /dev/sys/fs/by-name/userdata/compr_written_block
chown system system /dev/sys/fs/by-name/userdata/compr_saved_block
chown system system /dev/sys/fs/by-name/userdata/compr_new_inode
chown system system /dev/sys/fs/by-name/userdata/gc_segment_mode
chown system system /dev/sys/fs/by-name/userdata/gc_reclaimed_segments
# Enable ZRAM on boot_complete
swapon_all /vendor/etc/fstab.${ro.board.platform}
write /proc/sys/vm/swappiness 60
@ -721,9 +689,6 @@ on property:sys.boot_completed=1
write /proc/sys/vm/dirty_expire_centisecs 3000
write /proc/sys/vm/dirty_background_ratio 10
# Enable UFS powersaving
write /dev/sys/block/bootdevice/clkgate_enable 1
# Reset DDR frequency
write /sys/devices/platform/17000010.devfreq_mif/devfreq/17000010.devfreq_mif/exynos_data/cancel_boot_freq 1
write /sys/devices/platform/17000020.devfreq_int/devfreq/17000020.devfreq_int/exynos_data/cancel_boot_freq 1
@ -884,7 +849,7 @@ on property:vendor.thermal.link_ready=1
# BCL
write /sys/devices/virtual/pmic/mitigation/clock_ratio/tpu_light_clk_ratio 0x80041c3
write /sys/devices/virtual/pmic/mitigation/clock_ratio/cpu2_light_clk_ratio 0xfff041c3
write /sys/devices/virtual/pmic/mitigation/clock_ratio/gpu_heavy_clk_ratio 0xfff04381
write /sys/devices/virtual/pmic/mitigation/clock_ratio/gpu_heavy_clk_ratio 0xfff04385
write /sys/devices/virtual/pmic/mitigation/clock_ratio/tpu_heavy_clk_ratio 0xfff041c1
write /sys/devices/virtual/pmic/mitigation/clock_ratio/cpu2_heavy_clk_ratio 0xfff041c0
write /dev/thermal/tz-by-name/smpl_gm/policy user_space
@ -974,16 +939,6 @@ on charger
mkdir /dev/thermal/cdev-by-name 0750 system system
start vendor.thermal.symlinks
# Runtime fs tuning
write /sys/block/sda/queue/nr_requests 64
write /sys/block/sda/queue/iostats 1
write /sys/block/sda/queue/iosched/slice_idle 0
write /dev/sys/fs/by-name/userdata/data_io_flag 8
write /dev/sys/fs/by-name/userdata/node_io_flag 8
# Enable UFS powersaving
write /dev/sys/block/bootdevice/clkgate_enable 1
# Cancel boot devfreq and uclamp
write /sys/devices/platform/17000010.devfreq_mif/devfreq/17000010.devfreq_mif/exynos_data/cancel_boot_freq 1
write /sys/devices/platform/17000020.devfreq_int/devfreq/17000020.devfreq_int/exynos_data/cancel_boot_freq 1
@ -1003,10 +958,7 @@ on property:vendor.disable.bcl.control=1
on property:vendor.disable.bcl.control=0
write /sys/devices/virtual/pmic/mitigation/instruction/enable_mitigation 1
# UFS
on property:ro.boot.mode=charger && property:init.svc.vendor.charger=running
# Enable UFS powersaving in Off Mode Charger
write /dev/sys/block/bootdevice/clkgate_enable 1
# Disable dock-defend in Off Mode Charger
write /sys/devices/platform/google,charger/dd_state -1

View file

@ -55,7 +55,6 @@
/dev/video55 0666 system graphics
/dev/g2d 0660 system graphics
/dev/fimg2d 0666 system graphics
/dev/i2c-2 0660 system system
/dev/HPD 0660 system system
# wfd
@ -221,7 +220,7 @@
/sys/devices/platform/11110000.usb/11110000.dwc3/xhci-hcd-exynos.4.auto/usb2/2-1/*/*/leds/* multi_intensity 0664 system system
# Dump Battery EEPROM history for pixelstats
/sys/devices/platform/10970000.hsi2c/i2c-7/7-0050 eeprom 0644 system system
/sys/devices/platform/10970000.hsi2c/i2c-8/8-0050 eeprom 0644 system system
/dev/battery_history 0644 system system
# ODPM
@ -231,20 +230,13 @@
/sys/class/typec/port0 power_role 664 root system
/sys/class/typec/port0 data_role 664 root system
/sys/class/typec/port0 port_type 664 root system
/sys/devices/platform/10d50000.hsi2c/i2c-8/i2c-max77759tcpc contaminant_detection 664 root system
/sys/devices/platform/10d50000.hsi2c/i2c-8/i2c-max77759tcpc usb_limit_accessory_current 664 root system
/sys/devices/platform/10d50000.hsi2c/i2c-8/i2c-max77759tcpc usb_limit_accessory_enable 664 root system
/sys/devices/platform/10d50000.hsi2c/i2c-8/i2c-max77759tcpc usb_limit_sink_current 664 root system
/sys/devices/platform/10d50000.hsi2c/i2c-8/i2c-max77759tcpc usb_limit_sink_enable 664 root system
/sys/devices/platform/10d50000.hsi2c/i2c-8/i2c-max77759tcpc usb_limit_source_enable 664 root system
/sys/devices/platform/10d50000.hsi2c/i2c-8/i2c-max77759tcpc update_sdp_enum_timeout 664 root system
/sys/devices/platform/10d50000.hsi2c/i2c-8/8-0025 contaminant_detection 664 root system
/sys/devices/platform/10d50000.hsi2c/i2c-8/8-0025 usb_limit_accessory_current 664 root system
/sys/devices/platform/10d50000.hsi2c/i2c-8/8-0025 usb_limit_accessory_enable 664 root system
/sys/devices/platform/10d50000.hsi2c/i2c-8/8-0025 usb_limit_sink_current 664 root system
/sys/devices/platform/10d50000.hsi2c/i2c-8/8-0025 usb_limit_sink_enable 664 root system
/sys/devices/platform/10d50000.hsi2c/i2c-8/8-0025 usb_limit_source_enable 664 root system
/sys/devices/platform/10d50000.hsi2c/i2c-8/8-0025 update_sdp_enum_timeout 664 root system
/sys/devices/platform/10d50000.hsi2c/i2c-12/12-0025 contaminant_detection 664 root system
/sys/devices/platform/10d50000.hsi2c/i2c-12/12-0025 usb_limit_accessory_current 664 root system
/sys/devices/platform/10d50000.hsi2c/i2c-12/12-0025 usb_limit_accessory_enable 664 root system
/sys/devices/platform/10d50000.hsi2c/i2c-12/12-0025 usb_limit_sink_current 664 root system
/sys/devices/platform/10d50000.hsi2c/i2c-12/12-0025 usb_limit_sink_enable 664 root system
/sys/devices/platform/10d50000.hsi2c/i2c-12/12-0025 usb_limit_source_enable 664 root system
/sys/devices/platform/10d50000.hsi2c/i2c-12/12-0025 update_sdp_enum_timeout 664 root system
/sys/devices/platform/11110000.usb dwc3_exynos_otg_b_sess 664 root system
/sys/devices/platform/11110000.usb dwc3_exynos_otg_id 664 root system
/sys/devices/platform/11110000.usb usb_data_enabled 664 root system

View file

@ -54,6 +54,8 @@
<exception package="com.google.android.apps.camera.services">
<!-- Camera -->
<permission name="android.permission.CAMERA" fixed="false"/>
<!-- Camera Connectivity -->
<permission name="android.permission.ACCESS_FINE_LOCATION" fixed="false"/>
<permission name="android.permission.POST_NOTIFICATIONS" fixed="false"/>
<permission name="android.permission.BLUETOOTH_CONNECT" fixed="false"/>
<permission name="android.permission.BLUETOOTH_SCAN" fixed="false"/>

View file

@ -36,6 +36,9 @@ include device/google/gs-common/sota_app/factoryota.mk
include device/google/gs-common/misc_writer/misc_writer.mk
include device/google/gs-common/gyotaku_app/gyotaku.mk
include device/google/gs-common/bootctrl/bootctrl_aidl.mk
ifneq ($(filter oriole raven bluejay, $(TARGET_PRODUCT)),)
include device/google/gs-common/bcmbt/dump/dumplog.mk
endif
TARGET_BOARD_PLATFORM := gs101
DEVICE_IS_64BIT_ONLY ?= $(if $(filter %_64,$(TARGET_PRODUCT)),true,false)
@ -66,7 +69,7 @@ PRODUCT_SOONG_NAMESPACES += \
hardware/google/pixel \
device/google/gs101 \
device/google/gs101/powerstats \
system/chre/host/hal_generic \
vendor/google_devices/common/chre/host/hal \
vendor/google/whitechapel/tools \
vendor/google/camera \
vendor/google/interfaces \
@ -236,6 +239,7 @@ PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.vulkan.version-1_3.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version.xml \
frameworks/native/data/etc/android.hardware.vulkan.level-1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level.xml \
frameworks/native/data/etc/android.hardware.vulkan.compute-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.compute.xml \
frameworks/native/data/etc/android.software.contextualsearch.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.contextualsearch.xml \
frameworks/native/data/etc/android.software.vulkan.deqp.level-2023-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.vulkan.deqp.level.xml \
frameworks/native/data/etc/android.software.opengles.deqp.level-2023-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.opengles.deqp.level.xml
@ -254,8 +258,7 @@ PRODUCT_VENDOR_PROPERTIES += \
PRODUCT_VENDOR_PROPERTIES += \
ro.opengles.version=196610 \
graphics.gpu.profiler.support=true \
debug.renderengine.backend=skiaglthreaded
graphics.gpu.profiler.support=true
# b/295257834 Add HDR shaders to SurfaceFlinger's pre-warming cache
PRODUCT_VENDOR_PROPERTIES += ro.surface_flinger.prime_shader_cache.ultrahdr=1
@ -338,24 +341,20 @@ PRODUCT_HOST_PACKAGES += \
PRODUCT_PACKAGES += \
messaging
# Contexthub HAL
PRODUCT_PACKAGES += \
android.hardware.contexthub-service.generic
# CHRE tools
# CHRE
## tools
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_PACKAGES += \
chre_power_test_client \
chre_test_client
chre_test_client \
chre_aidl_hal_client
endif
## HAL
include device/google/gs-common/chre/hal.mk
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.context_hub.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.context_hub.xml
# Enable the CHRE Daemon
CHRE_USF_DAEMON_ENABLED := true
PRODUCT_PACKAGES += \
chre \
preloaded_nanoapps.json
# Filesystem management tools
@ -512,7 +511,7 @@ PRODUCT_PACKAGES += \
# for now include gralloc here. should come from hardware/google_devices/exynos5
PRODUCT_PACKAGES += \
android.hardware.graphics.mapper@4.0-impl \
android.hardware.graphics.allocator-V2-service
android.hardware.graphics.allocator-V1-service
PRODUCT_PACKAGES += \
android.hardware.memtrack-service.pixel \
@ -677,10 +676,8 @@ PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.use_color_management=tr
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.protected_contents=true
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.display_update_imminent_timeout_ms=50
# force to blend in P3 mode
PRODUCT_PROPERTY_OVERRIDES += \
persist.sys.sf.native_mode=2 \
persist.sys.sf.color_mode=9
persist.sys.sf.native_mode=2
PRODUCT_COPY_FILES += \
device/google/gs101/display/display_colordata_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_colordata_cal0.pb
@ -728,30 +725,14 @@ endif
$(call soong_config_set,bigo,soc,gs101)
# 1. Codec 2.0
# exynos service
PRODUCT_SOONG_NAMESPACES += vendor/samsung_slsi/codec2
# for settings used by different C2 hal
include device/google/gs-common/mediacodec/common/mediacodec_common.mk
# for Exynos C2 Hal
include device/google/gs-common/mediacodec/samsung/mediacodec_samsung.mk
PRODUCT_COPY_FILES += \
device/google/gs101/media_codecs_performance_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance_c2.xml \
PRODUCT_PACKAGES += \
samsung.hardware.media.c2@1.0-service \
codec2.vendor.base.policy \
codec2.vendor.ext.policy \
libExynosC2ComponentStore \
libExynosC2H264Dec \
libExynosC2H264Enc \
libExynosC2HevcDec \
libExynosC2HevcEnc \
libExynosC2Mpeg4Dec \
libExynosC2Mpeg4Enc \
libExynosC2H263Dec \
libExynosC2H263Enc \
libExynosC2Vp8Dec \
libExynosC2Vp8Enc \
libExynosC2Vp9Dec \
libExynosC2Vp9Enc
PRODUCT_PROPERTY_OVERRIDES += \
debug.stagefright.c2-poolmask=458752 \
debug.c2.use_dmabufheaps=1 \
@ -1038,6 +1019,14 @@ PRODUCT_PROPERTY_OVERRIDES += persist.vendor.enable.thermal.genl=true
include device/google/gs-common/edgetpu/edgetpu.mk
# Config variables for TPU chip on device.
$(call soong_config_set,edgetpu_config,chip,abrolhos)
# Include the edgetpu targets defined the namespaces below into the final image.
PRODUCT_SOONG_NAMESPACES += \
vendor/google_devices/gs101/proprietary/gchips/tpu/metrics \
vendor/google_devices/gs101/proprietary/gchips/tpu/tflite_delegate \
vendor/google_devices/gs101/proprietary/gchips/tpu/darwinn_logging_service \
vendor/google_devices/gs101/proprietary/gchips/tpu/nnapi_stable_aidl \
vendor/google_devices/gs101/proprietary/gchips/tpu/aidl \
vendor/google_devices/gs101/proprietary/gchips/tpu/hal
# TPU firmware
PRODUCT_PACKAGES += edgetpu-abrolhos.fw
@ -1127,3 +1116,6 @@ PRODUCT_VENDOR_PROPERTIES += ro.crypto.metadata_init_delete_all_keys.enabled=tru
# Hardware Info Collection
include hardware/google/pixel/HardwareInfo/HardwareInfo.mk
# Touch service
include device/google/gs-common/touch/twoshay/aidl_gs101.mk

View file

@ -84,14 +84,6 @@
<instance>default</instance>
</interface>
</hal>
<hal format="aidl" optional="true">
<name>com.google.input</name>
<version>2</version>
<interface>
<name>ITouchContextService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="aidl" optional="true">
<name>hardware.qorvo.uwb</name>
<version>2</version>
@ -142,13 +134,6 @@
<instance>sced0</instance>
</interface>
</hal>
<hal format="aidl" optional="true">
<name>com.google.pixel.modem.logmasklibrary</name>
<interface>
<name>ILiboemserviceProxy</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.samsung_slsi.telephony.hardware.radioExternal</name>
<version>1.1</version>

View file

@ -35,11 +35,7 @@ cat "/sys/class/power_supply/main-charger/uevent"
echo "\n------ Power supply property pca9486-mains ------"
cat "/sys/class/power_supply/pca9468-mains/uevent"
echo "\n------ Power supply property tcpm ------"
if [ -e "/sys/class/power_supply/tcpm-source-psy-i2c-max77759tcpc/uevent" ]; then
cat "/sys/class/power_supply/tcpm-source-psy-i2c-max77759tcpc/uevent"
elif [ -e "/sys/class/power_supply/tcpm-source-psy-8-0025/uevent" ]; then
cat "/sys/class/power_supply/tcpm-source-psy-8-0025/uevent"
fi
cat /sys/class/power_supply/tcpm-source-psy-*/uevent
echo "\n------ Power supply property usb ------"
cat "/sys/class/power_supply/usb/uevent"
echo "\n------ Power supply property wireless ------"
@ -93,10 +89,7 @@ then
fi
echo "\n------ TCPC ------"
max77759tcpc_path="/sys/devices/platform/10d50000.hsi2c/i2c-8/i2c-max77759tcpc"
if [ -e "/sys/devices/platform/10d50000.hsi2c/i2c-8/8-0025" ]; then
max77759tcpc_path="/sys/devices/platform/10d50000.hsi2c/i2c-8/8-0025"
fi
max77759tcpc_path="/sys/devices/platform/10d50000.hsi2c/i2c-12/12-0025"
echo "registers:"
cat $max77759tcpc_path/registers
echo "frs:"
@ -123,6 +116,8 @@ cat "/dev/logbuffer_pca9468"
echo "\n------ Battery Health ------"
cat "/sys/class/power_supply/battery/health_index_stats"
echo "\n------ Battery Health SoC Residency ------"
cat "/sys/class/power_supply/battery/swelling_data"
echo "\n------ BMS ------"
cat "/dev/logbuffer_ssoc"
echo "\n------ TTF ------"
@ -159,14 +154,15 @@ do
echo "$f: `cat $f`"
done
echo "\n------ DC_registers dump ------"
cat "/sys/class/power_supply/pca9468-mains/device/registers_dump"
echo "\n------ max77759_chg registers dump ------"
cat "/sys/class/power_supply/main-charger/device/registers_dump"
echo "\n------ max77729_pmic registers dump ------"
cat /sys/devices/platform/10d50000.hsi2c/i2c-*/*-0066/registers_dump
if [ $build_type = "userdebug" ]
then
echo "\n------ DC_registers dump ------"
cat "/sys/class/power_supply/pca9468-mains/device/registers_dump"
echo "\n------ max77759_chg registers dump ------"
cat "/d/max77759_chg/registers"
echo "\n------ max77729_pmic registers dump ------"
cat "/d/max77729_pmic/registers"
echo "\n------ Charging table dump ------"
cat "/d/google_battery/chg_raw_profile"
@ -204,9 +200,9 @@ then
fi
echo "\n------ Battery EEPROM ------"
if [ -e "/sys/devices/platform/10970000.hsi2c/i2c-7/7-0050/eeprom" ]
if [ -e "/sys/devices/platform/10970000.hsi2c/i2c-8/8-0050/eeprom" ]
then
xxd /sys/devices/platform/10970000.hsi2c/i2c-7/7-0050/eeprom
xxd /sys/devices/platform/10970000.hsi2c/i2c-8/8-0050/eeprom
fi
echo "\n------ Charger Stats ------"

View file

@ -159,3 +159,17 @@ Op9P1ZW2kjqv5D2+q/qtaePAyHn3B05UZrQYUmx7LaHNO7op6dZgCdoR0sVsR+Fc
Zyr0AhgiuTWrjtUEOGx2qJVwAsHkpqtlN+DaGT08dT64LvIf0bfGvmtm++/WEDWJ
HInwg85pGm+sEkYbYFRBD0woPBsL3g==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQsw
CQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURp
Z2lDZXJ0IFRMUyBFQ0MgUDM4NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2
MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJ
bmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQgUm9vdCBHNTB2MBAG
ByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1TzvdlHJS
7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp
0zVozptjn4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICIS
B4CIfBFqMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49
BAMDA2gAMGUCMQCJao1H5+z8blUD2WdsJk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQ
LgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIxAJSdYsiJvRmEFOml+wG4
DXZDjC5Ty3zfDBeWUA==
-----END CERTIFICATE-----

View file

@ -34,13 +34,5 @@
<name>android.hardware.boot</name>
<fqname>IBootControl/default</fqname>
</hal>
<hal format="aidl">
<name>com.google.input</name>
<version>2</version>
<interface>
<name>ITouchContextService</name>
<instance>default</instance>
</interface>
</hal>
<kernel target-level="6"/>
</manifest>

View file

@ -26,13 +26,5 @@
<transport>hwbinder</transport>
<fqname>@1.3::IDevice/google-edgetpu</fqname>
</hal>
<hal format="aidl">
<name>com.google.input</name>
<version>2</version>
<interface>
<name>ITouchContextService</name>
<instance>default</instance>
</interface>
</hal>
<kernel target-level="6"/>
</manifest>

View file

@ -5,8 +5,16 @@
<version>1.0</version>
<interface>
<name>IComponentStore</name>
<instance>default</instance>
<instance>default1</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.media.c2</name>
<transport>hwbinder</transport>
<version>1.2</version>
<interface>
<name>IComponentStore</name>
<instance>default</instance>
</interface>
</hal>
</manifest>

View file

@ -2,7 +2,7 @@
<hal format="hidl">
<name>android.hardware.media.c2</name>
<transport>hwbinder</transport>
<version>1.0</version>
<version>1.2</version>
<interface>
<name>IComponentStore</name>
<instance>default</instance>

View file

@ -175,10 +175,10 @@
<Limit name="measured-frame-rate-1280x720" range="38-40" />
</MediaCodec>
<MediaCodec name="c2.android.av1-dav1d.decoder" type="video/av01" update="true">
<Limit name="measured-frame-rate-352x288" range="353-362" />
<Limit name="measured-frame-rate-640x360" range="178-210" />
<Limit name="measured-frame-rate-720x480" range="101-129" />
<Limit name="measured-frame-rate-1280x720" range="38-40" />
<Limit name="measured-frame-rate-352x288" range="735-974" />
<Limit name="measured-frame-rate-640x360" range="426-627" />
<Limit name="measured-frame-rate-720x480" range="406-434" />
<Limit name="measured-frame-rate-1280x720" range="148-159" />
</MediaCodec>
</Decoders>

View file

@ -297,6 +297,7 @@
<item>com.zhiliaoapp.musically:0.07</item>
<item>com.bilibili.app.in:0.07</item>
<item>com.twitter.android:0.07</item>
<item>com.google.android.youtube:0.07</item>
</string-array>
<!-- Pre-scale volume at volume step 1 for Absolute Volume -->

View file

@ -1,4 +1,5 @@
on property:sys.boot_completed=1
chown system system /sys/class/power_supply/maxfg/fg_learning_events
start vendor.pixelstats_vendor
on post-fs-data
chown system system /sys/kernel/metrics/irq/stats_reset

View file

@ -69,12 +69,23 @@ const struct SysfsCollector::SysfsPaths sysfs_paths = {
"/sys/kernel/metrics/thermal/tr_by_group/spmic/stats_reset"
}
},
.GMSRPath = "/sys/class/power_supply/maxfg/gmsr"
.GMSRPath = {
"/sys/class/power_supply/maxfg/gmsr",
"/sys/class/power_supply/maxfg_base/gmsr",
},
};
const struct UeventListener::UeventPaths ueventPaths = {
.AudioUevent = "/devices/virtual/amcs/amcs",
.TypeCPartnerUevent = "PRODUCT_TYPE="};
.TypeCPartnerUevent = "PRODUCT_TYPE=",
.FGLearningPath = {
"/sys/class/power_supply/maxfg/fg_learning_events"
},
.FwUpdatePath = "",
.FGModelLoadingPath = {
"/sys/class/power_supply/maxfg/m5_model_state"
}
};
int main() {
LOG(INFO) << "starting PixelStats";

View file

@ -18,6 +18,7 @@
#include <Gs101CommonDataProviders.h>
#include "AocStateResidencyDataProvider.h"
#include "DevfreqStateResidencyDataProvider.h"
#include <DisplayMrrStateResidencyDataProvider.h>
#include "DvfsStateResidencyDataProvider.h"
#include "UfsStateResidencyDataProvider.h"
#include <dataproviders/GenericStateResidencyDataProvider.h>
@ -34,6 +35,7 @@
using aidl::android::hardware::power::stats::AocStateResidencyDataProvider;
using aidl::android::hardware::power::stats::DevfreqStateResidencyDataProvider;
using aidl::android::hardware::power::stats::DisplayMrrStateResidencyDataProvider;
using aidl::android::hardware::power::stats::DvfsStateResidencyDataProvider;
using aidl::android::hardware::power::stats::UfsStateResidencyDataProvider;
using aidl::android::hardware::power::stats::EnergyConsumerType;
@ -669,6 +671,11 @@ void addPixelStateResidencyDataProvider(std::shared_ptr<PowerStats> p) {
p->addStateResidencyDataProvider(std::move(pixelSdp));
}
void addDisplayMrr(std::shared_ptr<PowerStats> p) {
p->addStateResidencyDataProvider(std::make_unique<DisplayMrrStateResidencyDataProvider>(
"Display", "/sys/class/drm/card0/device/primary-panel/"));
}
void addGs101CommonDataProviders(std::shared_ptr<PowerStats> p) {
setEnergyMeter(p);

View file

@ -22,4 +22,5 @@ using aidl::android::hardware::power::stats::PowerStats;
void addGs101CommonDataProviders(std::shared_ptr<PowerStats> p);
void addDisplayMrr(std::shared_ptr<PowerStats> p);
void addNFC(std::shared_ptr<PowerStats> p, const std::string& path);

View file

@ -159,4 +159,12 @@
regulatory approval (for example, FCC pre-approval is required according to "594280 D01
Software Configuration Control v02r01").-->
<bool translatable="false" name ="config_wifiUpdateCountryCodeFromScanResultGeneric">true</bool>
<!-- Boolean indicating performing a partial initial scan is enabled -->
<bool translatable="false" name="config_wifiEnablePartialInitialScan">true</bool>
<!-- Configure the max number of new channels to add into the initial partial scan list per network.
If equals to 0, it means there's no limit on the max number of channels to include per network.-->
<integer translatable="false" name="config_wifiInitialPartialScanMaxNewChannelsPerNetwork">3</integer>
</resources>

View file

@ -564,6 +564,11 @@ Usb::Usb()
ALOGE("pthread_condattr_destroy failed: %s", strerror(errno));
abort();
}
ALOGI("feature flag enable_usb_data_compliance_warning: %d",
usb_flags::enable_usb_data_compliance_warning());
ALOGI("feature flag enable_input_power_limited_warning: %d",
usb_flags::enable_input_power_limited_warning());
}
ScopedAStatus Usb::switchRole(const string& in_portName, const PortRole& in_role,

View file

@ -26,6 +26,7 @@
#include <pixelstats/StatsHelper.h>
#include <pixelusb/CommonUtils.h>
#include <sys/epoll.h>
#include <sys/timerfd.h>
#include <utils/Log.h>
#include <regex>
@ -48,6 +49,9 @@ namespace usb {
#define UEVENT_MSG_LEN 2048
#define USB_STATE_MAX_LEN 20
#define DATA_ROLE_MAX_LEN 10
#define WARNING_SURFACE_DELAY_SEC 5
#define ENUM_FAIL_DEFAULT_COUNT_THRESHOLD 3
#define DEVICE_FLAKY_CONNECTION_CONFIGURED_COUNT_THRESHOLD 5
constexpr char kUdcConfigfsPath[] = "/config/usb_gadget/g1/UDC";
constexpr char kNotAttachedState[] = "not attached\n";
@ -115,6 +119,15 @@ UsbDataSessionMonitor::UsbDataSessionMonitor(
if (addEpollFd(epollFd, ueventFd))
abort();
unique_fd timerFd(timerfd_create(CLOCK_BOOTTIME, TFD_NONBLOCK));
if (timerFd.get() == -1) {
ALOGE("create timerFd failed");
abort();
}
if (addEpollFd(epollFd, timerFd))
abort();
if (addEpollFile(epollFd.get(), dataRolePath, mDataRoleFd) != 0) {
ALOGE("monitor data role failed");
abort();
@ -139,6 +152,7 @@ UsbDataSessionMonitor::UsbDataSessionMonitor(
mEpollFd = std::move(epollFd);
mUeventFd = std::move(ueventFd);
mTimerFd = std::move(timerFd);
mUpdatePortStatusCb = updatePortStatusCb;
if (ReadFileToString(kUdcConfigfsPath, &udc) && !udc.empty())
@ -150,6 +164,9 @@ UsbDataSessionMonitor::UsbDataSessionMonitor(
ALOGE("pthread creation failed %d", errno);
abort();
}
ALOGI("feature flag enable_report_usb_data_compliance_warning: %d",
usb_flags::enable_report_usb_data_compliance_warning());
}
UsbDataSessionMonitor::~UsbDataSessionMonitor() {}
@ -223,13 +240,55 @@ void UsbDataSessionMonitor::notifyComplianceWarning() {
void UsbDataSessionMonitor::evaluateComplianceWarning() {
std::set<ComplianceWarning> newWarningSet;
int elapsedTimeSec;
// TODO: add heuristics and update newWarningSet
elapsedTimeSec =
std::chrono::duration_cast<std::chrono::seconds>(boot_clock::now() - mDataSessionStart)
.count();
if (elapsedTimeSec >= WARNING_SURFACE_DELAY_SEC) {
if (mDataRole == PortDataRole::DEVICE && mUdcBind) {
int configuredCount = std::count(mDeviceState.states.begin(),
mDeviceState.states.end(), kConfiguredState);
int defaultCount =
std::count(mDeviceState.states.begin(), mDeviceState.states.end(), kDefaultState);
if (configuredCount == 0 && defaultCount > ENUM_FAIL_DEFAULT_COUNT_THRESHOLD)
newWarningSet.insert(ComplianceWarning::ENUMERATION_FAIL);
if (configuredCount > DEVICE_FLAKY_CONNECTION_CONFIGURED_COUNT_THRESHOLD)
newWarningSet.insert(ComplianceWarning::FLAKY_CONNECTION);
} else if (mDataRole == PortDataRole::HOST) {
int host1StateCount = mHost1State.states.size();
int host1ConfiguredCount =
std::count(mHost1State.states.begin(), mHost1State.states.end(), kConfiguredState);
int host1DefaultCount =
std::count(mHost1State.states.begin(), mHost1State.states.end(), kDefaultState);
int host2StateCount = mHost2State.states.size();
int host2ConfiguredCount =
std::count(mHost2State.states.begin(), mHost2State.states.end(), kConfiguredState);
int host2DefaultCount =
std::count(mHost2State.states.begin(), mHost2State.states.end(), kDefaultState);
if (host1ConfiguredCount == 0 && host2ConfiguredCount == 0 &&
(host1DefaultCount > ENUM_FAIL_DEFAULT_COUNT_THRESHOLD ||
host2DefaultCount > ENUM_FAIL_DEFAULT_COUNT_THRESHOLD))
newWarningSet.insert(ComplianceWarning::ENUMERATION_FAIL);
if (host1StateCount == 1 && mHost1State.states.front() == kNotAttachedState &&
host2StateCount == 1 && mHost2State.states.front() == kNotAttachedState)
newWarningSet.insert(ComplianceWarning::MISSING_DATA_LINES);
}
}
if (newWarningSet != mWarningSet) {
std::string newWarningString;
for (auto e : newWarningSet) {
newWarningString += toString(e) + " ";
}
ALOGI("Usb data compliance warning changed to: %s", newWarningString.c_str());
mWarningSet = newWarningSet;
notifyComplianceWarning();
}
@ -259,6 +318,26 @@ void UsbDataSessionMonitor::handleDeviceStateEvent(struct usbDeviceState *device
evaluateComplianceWarning();
}
void UsbDataSessionMonitor::setupNewSession() {
mWarningSet.clear();
mDataSessionStart = boot_clock::now();
if (mDataRole == PortDataRole::DEVICE) {
clearDeviceStateEvents(&mDeviceState);
} else if (mDataRole == PortDataRole::HOST) {
clearDeviceStateEvents(&mHost1State);
clearDeviceStateEvents(&mHost2State);
}
if (mDataRole != PortDataRole::NONE) {
struct itimerspec delay = itimerspec();
delay.it_value.tv_sec = WARNING_SURFACE_DELAY_SEC;
int ret = timerfd_settime(mTimerFd.get(), 0, &delay, NULL);
if (ret < 0)
ALOGE("timerfd_settime failed err:%d", errno);
}
}
void UsbDataSessionMonitor::handleDataRoleEvent() {
int n;
PortDataRole newDataRole;
@ -283,17 +362,8 @@ void UsbDataSessionMonitor::handleDataRoleEvent() {
reportUsbDataSessionMetrics();
}
// Set up for the new data session
mWarningSet.clear();
mDataRole = newDataRole;
mDataSessionStart = boot_clock::now();
if (newDataRole == PortDataRole::DEVICE) {
clearDeviceStateEvents(&mDeviceState);
} else if (newDataRole == PortDataRole::HOST) {
clearDeviceStateEvents(&mHost1State);
clearDeviceStateEvents(&mHost2State);
}
setupNewSession();
}
}
@ -328,8 +398,7 @@ void UsbDataSessionMonitor::updateUdcBindStatus(const std::string &devname) {
} else if (!mUdcBind && newUdcBind) {
// Gadget soft pullup: reset and start accounting for a new data session.
clearDeviceStateEvents(&mDeviceState);
mDataSessionStart = boot_clock::now();
setupNewSession();
}
}
@ -383,6 +452,23 @@ void UsbDataSessionMonitor::handleUevent() {
}
}
void UsbDataSessionMonitor::handleTimerEvent() {
int byteRead;
uint64_t numExpiration;
byteRead = read(mTimerFd.get(), &numExpiration, sizeof(numExpiration));
if (byteRead != sizeof(numExpiration)) {
ALOGE("incorrect read size");
}
if (numExpiration != 1) {
ALOGE("incorrect expiration count");
}
evaluateComplianceWarning();
}
void *UsbDataSessionMonitor::monitorThread(void *param) {
UsbDataSessionMonitor *monitor = (UsbDataSessionMonitor *)param;
struct epoll_event events[64];
@ -400,6 +486,8 @@ void *UsbDataSessionMonitor::monitorThread(void *param) {
for (int n = 0; n < nevents; ++n) {
if (events[n].data.fd == monitor->mUeventFd.get()) {
monitor->handleUevent();
} else if (events[n].data.fd == monitor->mTimerFd.get()) {
monitor->handleTimerEvent();
} else if (events[n].data.fd == monitor->mDataRoleFd.get()) {
monitor->handleDataRoleEvent();
} else if (events[n].data.fd == monitor->mDeviceState.fd.get()) {

View file

@ -75,9 +75,11 @@ class UsbDataSessionMonitor {
static void *monitorThread(void *param);
void handleUevent();
void handleTimerEvent();
void handleDataRoleEvent();
void handleDeviceStateEvent(struct usbDeviceState *deviceState);
void clearDeviceStateEvents(struct usbDeviceState *deviceState);
void setupNewSession();
void reportUsbDataSessionMetrics();
void evaluateComplianceWarning();
void notifyComplianceWarning();
@ -86,6 +88,7 @@ class UsbDataSessionMonitor {
pthread_t mMonitor;
unique_fd mEpollFd;
unique_fd mUeventFd;
unique_fd mTimerFd;
unique_fd mDataRoleFd;
struct usbDeviceState mDeviceState;
struct usbDeviceState mHost1State;