Snap for 8183730 from 7fca68cdd9 to udc-release

Change-Id: Ied21f56b767a099e19a334f4141c4f0a591f9a7b
This commit is contained in:
Android Build Coastguard Worker 2022-02-15 04:02:20 +00:00
commit 10d6e795e4
63 changed files with 7628 additions and 9353 deletions

View file

@ -32,15 +32,6 @@ TARGET_CPU_ABI := arm64-v8a
TARGET_CPU_VARIANT := generic TARGET_CPU_VARIANT := generic
TARGET_CPU_VARIANT_RUNTIME := cortex-a53 TARGET_CPU_VARIANT_RUNTIME := cortex-a53
ifeq (,$(filter %_64,$(TARGET_PRODUCT)))
TARGET_2ND_ARCH := arm
TARGET_2ND_ARCH_VARIANT := armv8-a
TARGET_2ND_CPU_ABI := armeabi-v7a
TARGET_2ND_CPU_ABI2 := armeabi
TARGET_2ND_CPU_VARIANT := generic
TARGET_2ND_CPU_VARIANT_RUNTIME := cortex-a53
endif
BOARD_KERNEL_CMDLINE += dyndbg=\"func alloc_contig_dump_pages +p\" BOARD_KERNEL_CMDLINE += dyndbg=\"func alloc_contig_dump_pages +p\"
BOARD_KERNEL_CMDLINE += earlycon=exynos4210,0x10A00000 console=ttySAC0,115200 androidboot.console=ttySAC0 printk.devkmsg=on BOARD_KERNEL_CMDLINE += earlycon=exynos4210,0x10A00000 console=ttySAC0,115200 androidboot.console=ttySAC0 printk.devkmsg=on
BOARD_KERNEL_CMDLINE += cma_sysfs.experimental=Y BOARD_KERNEL_CMDLINE += cma_sysfs.experimental=Y
@ -58,12 +49,7 @@ TARGET_RECOVERY_WIPE := device/google/gs201/conf/recovery.wipe
# This is the fstab file that will be included in the recovery image. Note that # This is the fstab file that will be included in the recovery image. Note that
# recovery doesn't care about the encryption settings, so it doesn't matter # recovery doesn't care about the encryption settings, so it doesn't matter
# whether we use the normal or the fips fstab here. # whether we use the normal or the fips fstab here.
# TARGET_RECOVERY_FSTAB_GENRULE := gen_fstab.gs201
# Since this is a generated file, it's necessary to use intermediates-dir-for in
# order to refer to it correctly. And since intermediates-dir-for isn't defined
# yet when this file is included, it's necessary to use a deferred variable
# assignment ( = ) rather than an immediate variable assignment ( := ).
TARGET_RECOVERY_FSTAB = $(call intermediates-dir-for,ETC,fstab.gs201)/fstab.gs201
TARGET_RECOVERY_PIXEL_FORMAT := ABGR_8888 TARGET_RECOVERY_PIXEL_FORMAT := ABGR_8888
TARGET_RECOVERY_UI_MARGIN_HEIGHT := 165 TARGET_RECOVERY_UI_MARGIN_HEIGHT := 165
@ -89,6 +75,9 @@ endif
ifneq ($(PRODUCT_BUILD_VBMETA_IMAGE),false) ifneq ($(PRODUCT_BUILD_VBMETA_IMAGE),false)
AB_OTA_PARTITIONS += vbmeta AB_OTA_PARTITIONS += vbmeta
endif endif
ifneq ($(PRODUCT_BUILD_PVMFW_IMAGE),false)
AB_OTA_PARTITIONS += pvmfw
endif
# EMULATOR common modules # EMULATOR common modules
BOARD_EMULATOR_COMMON_MODULES := liblight BOARD_EMULATOR_COMMON_MODULES := liblight
@ -108,40 +97,28 @@ BOARD_USES_SWIFTSHADER := false
# Gralloc4 # Gralloc4
ifeq ($(BOARD_USES_EXYNOS_GRALLOC_VERSION),4) ifeq ($(BOARD_USES_EXYNOS_GRALLOC_VERSION),4)
SOONG_CONFIG_NAMESPACES += arm_gralloc
SOONG_CONFIG_arm_gralloc := \
gralloc_arm_no_external_afbc \
mali_gpu_support_afbc_basic \
mali_gpu_support_afbc_wideblk \
gralloc_init_afbc \
gralloc_ion_sync_on_lock \
dpu_support_1010102_afbc
ifeq ($(BOARD_USES_SWIFTSHADER),true) ifeq ($(BOARD_USES_SWIFTSHADER),true)
SOONG_CONFIG_arm_gralloc_gralloc_arm_no_external_afbc := true $(call soong_config_set,arm_gralloc,gralloc_arm_no_external_afbc,true)
SOONG_CONFIG_arm_gralloc_mali_gpu_support_afbc_basic := false $(call soong_config_set,arm_gralloc,mali_gpu_support_afbc_basic,false)
SOONG_CONFIG_arm_gralloc_mali_gpu_support_afbc_wideblk := false $(call soong_config_set,arm_gralloc,mali_gpu_support_afbc_wideblk,false)
SOONG_CONFIG_arm_gralloc_gralloc_init_afbc := false $(call soong_config_set,arm_gralloc,gralloc_init_afbc,false)
SOONG_CONFIG_arm_gralloc_dpu_support_1010102_afbc := false $(call soong_config_set,arm_gralloc,dpu_support_1010102_afbc,false)
else else
SOONG_CONFIG_arm_gralloc_gralloc_arm_no_external_afbc := false $(call soong_config_set,arm_gralloc,gralloc_arm_no_external_afbc,false)
SOONG_CONFIG_arm_gralloc_mali_gpu_support_afbc_basic := true $(call soong_config_set,arm_gralloc,mali_gpu_support_afbc_basic,true)
SOONG_CONFIG_arm_gralloc_mali_gpu_support_afbc_wideblk := true $(call soong_config_set,arm_gralloc,mali_gpu_support_afbc_wideblk,true)
SOONG_CONFIG_arm_gralloc_gralloc_init_afbc := true $(call soong_config_set,arm_gralloc,gralloc_init_afbc,true)
SOONG_CONFIG_arm_gralloc_dpu_support_1010102_afbc := true $(call soong_config_set,arm_gralloc,dpu_support_1010102_afbc,true)
endif # ifeq ($(BOARD_USES_SWIFTSHADER),true) endif # ifeq ($(BOARD_USES_SWIFTSHADER),true)
SOONG_CONFIG_arm_gralloc_gralloc_ion_sync_on_lock := $(BOARD_USES_GRALLOC_ION_SYNC) $(call soong_config_set,arm_gralloc,gralloc_ion_sync_on_lock,$(BOARD_USES_GRALLOC_ION_SYNC))
endif # ifeq ($(BOARD_USES_EXYNOS_GRALLOC_VERSION),4) endif # ifeq ($(BOARD_USES_EXYNOS_GRALLOC_VERSION),4)
# libVendorGraphicbuffer # libVendorGraphicbuffer
SOONG_CONFIG_NAMESPACES += vendorgraphicbuffer
SOONG_CONFIG_vendorgraphicbuffer := \
gralloc_version
ifeq ($(BOARD_USES_EXYNOS_GRALLOC_VERSION),4) ifeq ($(BOARD_USES_EXYNOS_GRALLOC_VERSION),4)
SOONG_CONFIG_vendorgraphicbuffer_gralloc_version := four $(call soong_config_set,vendorgraphicbuffer,gralloc_version,four)
else else
SOONG_CONFIG_vendorgraphicbuffer_gralloc_version := three $(call soong_config_set,vendorgraphicbuffer,gralloc_version,three)
endif endif
# Graphics # Graphics
@ -212,28 +189,16 @@ BOARD_SUPER_PARTITION_ERROR_LIMIT := 8006926336
# #
BOARD_USES_GENERIC_AUDIO := true BOARD_USES_GENERIC_AUDIO := true
SOONG_CONFIG_NAMESPACES += aoc_audio_func $(call soong_config_set,aoc_audio_func,ext_hidl,true)
SOONG_CONFIG_aoc_audio_func += \
ext_hidl
SOONG_CONFIG_aoc_audio_func_ext_hidl := true
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
SOONG_CONFIG_aoc_audio_func += \ $(call soong_config_set,aoc_audio_func,dump_usecase_data,true)
dump_usecase_data \ $(call soong_config_set,aoc_audio_func,hal_socket_control,true)
hal_socket_control \ $(call soong_config_set,aoc_audio_func,record_tunning_keys,true)
record_tunning_keys
SOONG_CONFIG_aoc_audio_func_dump_usecase_data := true
SOONG_CONFIG_aoc_audio_func_hal_socket_control := true
SOONG_CONFIG_aoc_audio_func_record_tunning_keys := true
endif endif
ifneq (,$(filter aosp_%,$(TARGET_PRODUCT))) ifneq (,$(filter aosp_%,$(TARGET_PRODUCT)))
SOONG_CONFIG_aoc_audio_func += aosp_build $(call soong_config_set,aoc_audio_func,aosp_build,true)
SOONG_CONFIG_aoc_audio_func_aosp_build := true
endif endif
# Primary AudioHAL Configuration # Primary AudioHAL Configuration
@ -379,11 +344,11 @@ BOARD_BUILD_SYSTEM_ROOT_IMAGE := false
# Vendor ramdisk image for kernel development # Vendor ramdisk image for kernel development
BOARD_BUILD_VENDOR_RAMDISK_IMAGE := true BOARD_BUILD_VENDOR_RAMDISK_IMAGE := true
BOARD_VENDOR_KERNEL_MODULES_BLOCKLIST_FILE := device/google/gs201/vendor_dlkm.blocklist
KERNEL_MODULE_DIR := $(TARGET_KERNEL_DIR) KERNEL_MODULE_DIR := $(TARGET_KERNEL_DIR)
KERNEL_MODULES := $(wildcard $(KERNEL_MODULE_DIR)/*.ko) KERNEL_MODULES := $(wildcard $(KERNEL_MODULE_DIR)/*.ko)
BOARD_VENDOR_KERNEL_MODULES_BLOCKLIST_FILE := $(KERNEL_MODULE_DIR)/vendor_dlkm.modules.blocklist
BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD := $(strip $(shell cat $(KERNEL_MODULE_DIR)/vendor_boot.modules.load)) BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD := $(strip $(shell cat $(KERNEL_MODULE_DIR)/vendor_boot.modules.load))
ifndef BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD ifndef BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD
$(error vendor_boot.modules.load not found or empty) $(error vendor_boot.modules.load not found or empty)
@ -406,3 +371,6 @@ BOARD_KERNEL_CMDLINE += at24.write_timeout=100
# Enable larger logbuf # Enable larger logbuf
BOARD_KERNEL_CMDLINE += log_buf_len=1024K BOARD_KERNEL_CMDLINE += log_buf_len=1024K
# Protected VM firmware
BOARD_PVMFWIMAGE_PARTITION_SIZE := 0x00100000

View file

@ -77,3 +77,9 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/etc/vintf/manifest/android.h
$(call add-clean-step, rm -f $(PRODUCT_OUT)/vendor/bin/hw/android.hardware.power.stats@1.0-service.gs201) $(call add-clean-step, rm -f $(PRODUCT_OUT)/vendor/bin/hw/android.hardware.power.stats@1.0-service.gs201)
$(call add-clean-step, rm -f $(PRODUCT_OUT)/vendor/etc/init/android.hardware.power.stats@1.0-service.gs201.rc) $(call add-clean-step, rm -f $(PRODUCT_OUT)/vendor/etc/init/android.hardware.power.stats@1.0-service.gs201.rc)
$(call add-clean-step, rm -f $(PRODUCT_OUT)/vendor/etc/vintf/manifest/android.hardware.power.stats@1.0-service.gs201.xml) $(call add-clean-step, rm -f $(PRODUCT_OUT)/vendor/etc/vintf/manifest/android.hardware.power.stats@1.0-service.gs201.xml)
# Health HAL to AIDL
$(call add-clean-step, find $(PRODUCT_OUT)/system -type f -name "*charger*" -print0 | xargs -0 rm -f)
$(call add-clean-step, find $(PRODUCT_OUT)/vendor -type f -name "*health@*" -print0 | xargs -0 rm -f)
$(call add-clean-step, find $(PRODUCT_OUT)/recovery/root -type f -name "*charger*" -print0 | xargs -0 rm -f)
$(call add-clean-step, find $(PRODUCT_OUT)/recovery/root -type f -name "*health@*" -print0 | xargs -0 rm -f)

View file

@ -17,11 +17,7 @@
# #
# All components inherited here go to system image # All components inherited here go to system image
# #
ifeq (,$(filter %_64,$(TARGET_PRODUCT)))
$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
else
$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit_only.mk) $(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit_only.mk)
endif
$(call inherit-product, $(SRC_TARGET_DIR)/product/generic_system.mk) $(call inherit-product, $(SRC_TARGET_DIR)/product/generic_system.mk)
# Enable CSI checking # Enable CSI checking

View file

@ -5,9 +5,9 @@
# #
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags> #<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
system /system erofs ro wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,readahead_size_kb=128 system /system erofs ro wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,readahead_size_kb=128
system_ext /system_ext erofs ro wait,slotselect,avb=vbmeta_system,logical,first_stage_mount system_ext /system_ext erofs ro wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,readahead_size_kb=128
product /product erofs ro wait,slotselect,avb=vbmeta_system,logical,first_stage_mount product /product erofs ro wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,readahead_size_kb=128
vendor /vendor erofs ro wait,slotselect,avb=vbmeta_vendor,logical,first_stage_mount vendor /vendor erofs ro wait,slotselect,avb=vbmeta_vendor,logical,first_stage_mount,readahead_size_kb=128
vendor_dlkm /vendor_dlkm erofs ro wait,slotselect,avb=vbmeta,logical,first_stage_mount vendor_dlkm /vendor_dlkm erofs ro wait,slotselect,avb=vbmeta,logical,first_stage_mount
/dev/block/platform/14700000.ufs/by-name/boot /boot emmc defaults slotselect,avb=boot,first_stage_mount /dev/block/platform/14700000.ufs/by-name/boot /boot emmc defaults slotselect,avb=boot,first_stage_mount
/dev/block/platform/14700000.ufs/by-name/efs /mnt/vendor/efs f2fs noatime,sync wait,check,formattable /dev/block/platform/14700000.ufs/by-name/efs /mnt/vendor/efs f2fs noatime,sync wait,check,formattable
@ -19,5 +19,4 @@ vendor_dlkm /vendor_dlkm
#/dev/block/platform/14700000.ufs/by-name/pvmfw /pvmfw emmc defaults wait,slotselect,avb=pvmfw,first_stage_mount #/dev/block/platform/14700000.ufs/by-name/pvmfw /pvmfw emmc defaults wait,slotselect,avb=pvmfw,first_stage_mount
/dev/block/platform/14700000.ufs/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,reserve_root=32768,resgid=1065,fsync_mode=nobarrier,inlinecrypt,compress_extension=apk,compress_extension=apex,compress_extension=so,compress_extension=vdex,compress_extension=odex,atgc,checkpoint_merge latemount,wait,check,quota,formattable,sysfs_path=/dev/sys/block/bootdevice,checkpoint=fs,reservedsize=128M,fileencryption=@fileencryption@,metadata_encryption=@metadata_encryption@,keydirectory=/metadata/vold/metadata_encryption,fscompress,readahead_size_kb=128 /dev/block/platform/14700000.ufs/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,reserve_root=32768,resgid=1065,fsync_mode=nobarrier,inlinecrypt,compress_extension=apk,compress_extension=apex,compress_extension=so,compress_extension=vdex,compress_extension=odex,atgc,checkpoint_merge latemount,wait,check,quota,formattable,sysfs_path=/dev/sys/block/bootdevice,checkpoint=fs,reservedsize=128M,fileencryption=@fileencryption@,metadata_encryption=@metadata_encryption@,keydirectory=/metadata/vold/metadata_encryption,fscompress,readahead_size_kb=128
/dev/block/platform/14700000.ufs/by-name/vbmeta /vbmeta emmc defaults slotselect,first_stage_mount /dev/block/platform/14700000.ufs/by-name/vbmeta /vbmeta emmc defaults slotselect,first_stage_mount
/dev/block/zram0 none swap defaults zramsize=2147483648,max_comp_streams=8,zram_backingdev_size=512M
/devices/platform/11210000.usb* auto vfat defaults voldmanaged=usb:auto /devices/platform/11210000.usb* auto vfat defaults voldmanaged=usb:auto

View file

@ -30,4 +30,4 @@ on property:power.battery_input.suspended=false
# Bluetooth # Bluetooth
on post-fs-data on post-fs-data
chown bluetooth system /dev/logbuffer_btlpm chown bluetooth system /dev/logbuffer_btlpm
chown bluetooth system /dev/logbuffer_tty16 chown bluetooth system /dev/logbuffer_tty18

View file

@ -2,30 +2,7 @@ import /vendor/etc/init/hw/init.gs201.usb.rc
import android.hardware.drm@1.2-service.widevine.rc import android.hardware.drm@1.2-service.widevine.rc
import init.exynos.sensorhub.rc import init.exynos.sensorhub.rc
service vendor.charger /system/bin/charger
class charger
seclabel u:r:charger:s0
user system
group system wakelock input
capabilities SYS_BOOT
file /dev/kmsg w
file /sys/fs/pstore/console-ramoops-0 r
file /sys/fs/pstore/console-ramoops r
file /proc/last_kmsg r
on early-init on early-init
# Convert /dev/block/by-name/persist to f2fs
exec -- /vendor/bin/convert_to_f2fs.sh /dev/block/by-name/persist false
# Format /efs to f2fs, if it's ext4
exec -- /vendor/bin/convert_to_f2fs.sh /dev/block/by-name/efs true
# Format /efs_backup to f2fs, if it's ext4
exec -- /vendor/bin/convert_to_f2fs.sh /dev/block/by-name/efs_backup true
# Format /modem_userdata to f2fs, if it's ext4
exec -- /vendor/bin/convert_to_f2fs.sh /dev/block/by-name/modem_userdata true
mount_all /vendor/etc/fstab.persist --early mount_all /vendor/etc/fstab.persist --early
on init on init
@ -40,6 +17,30 @@ on init
write /dev/sys/fs/by-name/userdata/data_io_flag 56 write /dev/sys/fs/by-name/userdata/data_io_flag 56
write /dev/sys/fs/by-name/userdata/node_io_flag 56 write /dev/sys/fs/by-name/userdata/node_io_flag 56
chown system system /sys/kernel/vendor_sched/set_task_group_bg
chown system system /sys/kernel/vendor_sched/set_task_group_cam
chown system system /sys/kernel/vendor_sched/set_task_group_fg
chown system system /sys/kernel/vendor_sched/set_task_group_nnapi
chown system system /sys/kernel/vendor_sched/set_task_group_sys
chown system system /sys/kernel/vendor_sched/set_task_group_sysbg
chown system system /sys/kernel/vendor_sched/set_task_group_ta
chown system system /sys/kernel/vendor_sched/set_task_group_rt
chown system system /sys/kernel/vendor_sched/set_task_group_sf
chown system system /sys/kernel/vendor_sched/set_task_group_dex2oat
chown system system /sys/kernel/vendor_sched/clear_group
chmod 0220 /sys/kernel/vendor_sched/set_task_group_bg
chmod 0220 /sys/kernel/vendor_sched/set_task_group_cam
chmod 0220 /sys/kernel/vendor_sched/set_task_group_fg
chmod 0220 /sys/kernel/vendor_sched/set_task_group_nnapi
chmod 0220 /sys/kernel/vendor_sched/set_task_group_sys
chmod 0220 /sys/kernel/vendor_sched/set_task_group_sysbg
chmod 0220 /sys/kernel/vendor_sched/set_task_group_ta
chmod 0220 /sys/kernel/vendor_sched/set_task_group_rt
chmod 0220 /sys/kernel/vendor_sched/set_task_group_sf
chmod 0220 /sys/kernel/vendor_sched/set_task_group_dex2oat
chmod 0220 /sys/kernel/vendor_sched/clear_group
wait /dev/block/platform/${ro.boot.boot_devices} wait /dev/block/platform/${ro.boot.boot_devices}
symlink /dev/block/platform/${ro.boot.boot_devices} /dev/block/bootdevice symlink /dev/block/platform/${ro.boot.boot_devices} /dev/block/bootdevice
@ -76,7 +77,7 @@ on init
write /proc/sys/net/core/optmem_max 20480 write /proc/sys/net/core/optmem_max 20480
write /proc/sys/net/core/netdev_max_backlog 10000 write /proc/sys/net/core/netdev_max_backlog 10000
write /proc/sys/net/ipv4/tcp_rmem "2097152 4194304 8388608" write /proc/sys/net/ipv4/tcp_rmem "2097152 4194304 8388608"
write /proc/sys/net/ipv4/tcp_wmem "262144 524288 1048576" write /proc/sys/net/ipv4/tcp_wmem "262144 524288 8388608"
write /proc/sys/net/ipv4/tcp_mem "44259 59012 88518" write /proc/sys/net/ipv4/tcp_mem "44259 59012 88518"
write /proc/sys/net/ipv4/udp_mem "88518 118025 177036" write /proc/sys/net/ipv4/udp_mem "88518 118025 177036"
@ -100,20 +101,18 @@ on init
mkdir /dev/socket/pdx/system/vr/sensors 0775 system system mkdir /dev/socket/pdx/system/vr/sensors 0775 system system
# Boot time 183626384 # Boot time 183626384
write /dev/cpuctl/top-app/cpu.uclamp.min 30 write /sys/kernel/vendor_sched/ta_uclamp_min 1024
write /dev/cpuctl/top-app/cpu.uclamp.latency_sensitive 1
write /dev/cpuctl/foreground/cpu.uclamp.min 30
write /dev/cpuctl/foreground/cpu.uclamp.latency_sensitive 1
write /sys/kernel/vendor_sched/ta_uclamp_min 308
write /sys/kernel/vendor_sched/ta_prefer_idle 1 write /sys/kernel/vendor_sched/ta_prefer_idle 1
write /sys/kernel/vendor_sched/fg_uclamp_min 308 write /sys/kernel/vendor_sched/fg_uclamp_min 1024
write /sys/kernel/vendor_sched/fg_prefer_idle 1 write /sys/kernel/vendor_sched/fg_prefer_idle 1
write /sys/kernel/vendor_sched/sys_uclamp_min 1024
write /sys/kernel/vendor_sched/sys_prefer_idle 1
# governor setting # governor setting
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor sched_pixel 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/up_rate_limit_us 500
write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_us 2000 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/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/up_rate_limit_us 500
write /sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/down_rate_limit_us 20000 write /sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/down_rate_limit_us 20000
@ -149,7 +148,7 @@ on init
chmod 0664 /dev/cpuset/camera-daemon-mid-high-group/tasks chmod 0664 /dev/cpuset/camera-daemon-mid-high-group/tasks
write /sys/kernel/vendor_sched/cam_prefer_idle 1 write /sys/kernel/vendor_sched/cam_prefer_idle 1
write /sys/kernel/vendor_sched/cam_uclamp_min 10 write /sys/kernel/vendor_sched/cam_uclamp_min 1
chown system system /dev/cpuset/cgroup.procs chown system system /dev/cpuset/cgroup.procs
@ -255,8 +254,8 @@ on init
start watchdogd start watchdogd
# Add a boost for NNAPI HAL # Add a boost for NNAPI HAL
write /dev/cpuctl/nnapi-hal/cpu.uclamp.min 15 write /sys/kernel/vendor_sched/nnapi_prefer_idle 0
write /sys/kernel/vendor_sched/nnapi_uclamp_min 154 write /sys/kernel/vendor_sched/nnapi_uclamp_min 512
# Add memlat governor settings # Add memlat governor settings
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu0_memlat@17000010/polling_interval 10 write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu0_memlat@17000010/polling_interval 10
@ -280,17 +279,12 @@ on init
on init on init
setprop vendor.device.modules.ready 1 setprop vendor.device.modules.ready 1
on init && property:ro.boot.hw.soc.rev=0
setprop vendor.powerhal.config powerhint_a0.json
on init && property:ro.boot.hw.soc.rev=1
setprop vendor.powerhal.config powerhint_a1.json
on late-fs on late-fs
# Wait for keymaster HALs # Wait for keymaster HALs
exec_start wait_for_keymaster exec_start wait_for_keymaster
# Start bootanimation class before mount # Start bootanimation class before mount
start bootanim
class_start animation class_start animation
# Mount RW partitions which need run fsck # Mount RW partitions which need run fsck
@ -374,6 +368,7 @@ on post-fs-data
on zygote-start on zygote-start
# For PixelLogger configuration file. # For PixelLogger configuration file.
chmod 0771 /data/vendor/wifi chmod 0771 /data/vendor/wifi
write /sys/kernel/vendor_sched/sys_uclamp_min 0
on post-fs-data on post-fs-data
# Create the directories used by the Wireless subsystem # Create the directories used by the Wireless subsystem
@ -513,28 +508,31 @@ on fs
chown system system /sys/class/backlight/panel0-backlight/hbm_mode 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/local_hbm_mode
chown system system /sys/devices/platform/exynos-drm/primary-panel/gamma 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
chown system system /sys/module/drm/parameters/vblankoffdelay chown system system /sys/module/drm/parameters/vblankoffdelay
chown system system /sys/class/dqe/atc/ambient_light chown system system /sys/class/dqe0/atc/ambient_light
chown system system /sys/class/dqe/atc/st chown system system /sys/class/dqe0/atc/st
chown system system /sys/class/dqe/atc/en chown system system /sys/class/dqe0/atc/en
chown system system /sys/class/dqe/atc/lt chown system system /sys/class/dqe0/atc/lt
chown system system /sys/class/dqe/atc/ns chown system system /sys/class/dqe0/atc/ns
chown system system /sys/class/dqe/atc/dither chown system system /sys/class/dqe0/atc/dither
chown system system /sys/class/dqe/atc/pl_w1 chown system system /sys/class/dqe0/atc/pl_w1
chown system system /sys/class/dqe/atc/pl_w2 chown system system /sys/class/dqe0/atc/pl_w2
chown system system /sys/class/dqe/atc/ctmode chown system system /sys/class/dqe0/atc/ctmode
chown system system /sys/class/dqe/atc/pp_en chown system system /sys/class/dqe0/atc/pp_en
chown system system /sys/class/dqe/atc/upgrade_on chown system system /sys/class/dqe0/atc/upgrade_on
chown system system /sys/class/dqe/atc/tdr_max chown system system /sys/class/dqe0/atc/tdr_max
chown system system /sys/class/dqe/atc/tdr_min chown system system /sys/class/dqe0/atc/tdr_min
chown system system /sys/class/dqe/atc/back_light chown system system /sys/class/dqe0/atc/back_light
chown system system /sys/class/dqe/atc/dstep chown system system /sys/class/dqe0/atc/dstep
chown system system /sys/class/dqe/atc/scale_mode chown system system /sys/class/dqe0/atc/scale_mode
chown system system /sys/class/dqe/atc/threshold_1 chown system system /sys/class/dqe0/atc/threshold_1
chown system system /sys/class/dqe/atc/threshold_2 chown system system /sys/class/dqe0/atc/threshold_2
chown system system /sys/class/dqe/atc/threshold_3 chown system system /sys/class/dqe0/atc/threshold_3
chown system system /sys/class/dqe/atc/gain_limit chown system system /sys/class/dqe0/atc/gain_limit
chown system system /sys/class/dqe/atc/lt_calc_ab_shift chown system system /sys/class/dqe0/atc/lt_calc_ab_shift
chown system system /sys/devices/platform/1c240000.drmdecon/early_wakeup chown system system /sys/devices/platform/1c240000.drmdecon/early_wakeup
chmod 0220 /sys/devices/platform/1c240000.drmdecon/early_wakeup chmod 0220 /sys/devices/platform/1c240000.drmdecon/early_wakeup
chown system system /sys/devices/platform/1c242000.drmdecon/early_wakeup chown system system /sys/devices/platform/1c242000.drmdecon/early_wakeup
@ -637,7 +635,7 @@ on property:sys.boot_completed=1
# Runtime fs tuning # Runtime fs tuning
write /sys/block/sda/queue/nr_requests 128 write /sys/block/sda/queue/nr_requests 128
write /sys/block/sda/queue/iostats 1 write /sys/block/sda/queue/iostats 1
write /sys/block/sda/queue/iosched/slice_idle 8 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/data_io_flag 8
write /dev/sys/fs/by-name/userdata/node_io_flag 8 write /dev/sys/fs/by-name/userdata/node_io_flag 8
@ -673,10 +671,40 @@ on property:sys.boot_completed=1
setprop vendor.powerhal.init 1 setprop vendor.powerhal.init 1
# Setup final cpu.uclamp # Setup final cpu.uclamp
write /dev/cpuctl/top-app/cpu.uclamp.min 10 write /sys/kernel/vendor_sched/ta_uclamp_min 1
write /dev/cpuctl/foreground/cpu.uclamp.min 0
write /sys/kernel/vendor_sched/ta_uclamp_min 103
write /sys/kernel/vendor_sched/fg_uclamp_min 0 write /sys/kernel/vendor_sched/fg_uclamp_min 0
write /sys/kernel/vendor_sched/sys_prefer_idle 0
# cfs_rq clamp is using tg->uclamp setting
# align it with the vendor_group setting
write /sys/kernel/vendor_sched/bg_uclamp_max 512
write /dev/cpuctl/background/cpu.uclamp.max 50
write /sys/kernel/vendor_sched/bg_group_throttle 512
write /sys/kernel/vendor_sched/sysbg_uclamp_max 512
write /dev/cpuctl/system-background/cpu.uclamp.max 50
write /sys/kernel/vendor_sched/sysbg_group_throttle 512
write /sys/kernel/vendor_sched/dex2oat_uclamp_max 615
write /dev/cpuctl/dex2oat/cpu.uclamp.max 60
write /sys/kernel/vendor_sched/dex2oat_group_throttle 615
write /sys/kernel/vendor_sched/ota_uclamp_max 410
write /sys/kernel/vendor_sched/ota_group_throttle 410
# Setup groups for SF (RT used for SF RE, SF used for SF main)
write /sys/kernel/vendor_sched/rt_uclamp_min 125
write /sys/kernel/vendor_sched/rt_prefer_idle 1
write /sys/kernel/vendor_sched/sf_uclamp_min 30
write /sys/kernel/vendor_sched/sf_prefer_idle 1
# Setup cpu.shares to throttle background groups (bg ~ 5% sysbg ~ 5% dex2oat ~2.5%)
write /dev/cpuctl/background/cpu.shares 1024
write /dev/cpuctl/system-background/cpu.shares 1024
write /dev/cpuctl/dex2oat/cpu.shares 512
write /dev/cpuctl/system/cpu.shares 20480
# We only have system and background groups holding tasks and the groups below are empty
write /dev/cpuctl/camera-daemon/cpu.shares 20480
write /dev/cpuctl/foreground/cpu.shares 20480
write /dev/cpuctl/nnapi-hal/cpu.shares 20480
write /dev/cpuctl/rt/cpu.shares 20480
write /dev/cpuctl/top-app/cpu.shares 20480
# gvotables for dumpstate # gvotables for dumpstate
chown system system /sys/kernel/debug/gvotables chown system system /sys/kernel/debug/gvotables
@ -696,6 +724,14 @@ on property:sys.boot_completed=1
chown root system /sys/devices/platform/19000000.aoc/reset chown root system /sys/devices/platform/19000000.aoc/reset
chmod 0220 /sys/devices/platform/19000000.aoc/reset chmod 0220 /sys/devices/platform/19000000.aoc/reset
# AOC UDFPS clock compensation permission
chown system system /sys/devices/platform/19000000.aoc/control/udfps_set_clock_source
chmod 220 /sys/devices/platform/19000000.aoc/control/udfps_set_clock_source
chown system system /sys/devices/platform/19000000.aoc/control/udfps_get_osc_freq
chmod 440 /sys/devices/platform/19000000.aoc/control/udfps_get_osc_freq
chown system system /sys/devices/platform/19000000.aoc/control/udfps_get_disp_freq
chmod 440 /sys/devices/platform/19000000.aoc/control/udfps_get_disp_freq
# IMS WiFi Calling # IMS WiFi Calling
service charonservice /system/vendor/bin/charon service charonservice /system/vendor/bin/charon
class main class main
@ -776,14 +812,12 @@ on post-fs-data
symlink /mnt/vendor/persist/ss /data/vendor/ss/persist symlink /mnt/vendor/persist/ss /data/vendor/ss/persist
chown root system /data/vendor/ss/persist chown root system /data/vendor/ss/persist
chmod 0770 /data/vendor/ss/persist chmod 0770 /data/vendor/ss/persist
chown system system /dev/sg1
start storageproxyd restart storageproxyd
service storageproxyd /vendor/bin/storageproxyd -d /dev/trusty-ipc-dev0 \ service storageproxyd /vendor/bin/storageproxyd -d /dev/trusty-ipc-dev0 \
-r /dev/sg1 -p /data/vendor/ss -t ufs -r /dev/sg1 -p /data/vendor/ss -t ufs
class main class early_hal
disabled
user root user root
# Write build info to kdebuginfo # Write build info to kdebuginfo
@ -809,18 +843,13 @@ on fs
on property:vendor.thermal.link_ready=1 on property:vendor.thermal.link_ready=1
# BCL # BCL
write /dev/thermal/tz-by-name/smpl_gm/policy user_space write /sys/devices/virtual/pmic/mitigation/triggered_lvl/smpl_lvl 3100
write /dev/thermal/tz-by-name/vdroop1/policy user_space write /sys/devices/virtual/pmic/mitigation/triggered_lvl/soft_ocp_cpu2_lvl 9000
write /dev/thermal/tz-by-name/vdroop2/policy user_space write /sys/devices/virtual/pmic/mitigation/triggered_lvl/soft_ocp_gpu_lvl 9000
write /dev/thermal/tz-by-name/ocp_cpu1/policy user_space write /sys/devices/virtual/pmic/mitigation/triggered_lvl/soft_ocp_tpu_lvl 8500
write /dev/thermal/tz-by-name/ocp_cpu2/policy user_space write /sys/devices/virtual/pmic/mitigation/clock_div/tpu_clk_div 0x201
write /dev/thermal/tz-by-name/ocp_tpu/policy user_space write /sys/devices/virtual/pmic/mitigation/clock_div/gpu_clk_div 0x801
write /dev/thermal/tz-by-name/ocp_gpu/policy user_space write /sys/devices/virtual/pmic/mitigation/clock_div/cpu2_clk_div 0x801
write /dev/thermal/tz-by-name/soft_ocp_cpu1/policy user_space
write /dev/thermal/tz-by-name/soft_ocp_cpu2/policy user_space
write /dev/thermal/tz-by-name/soft_ocp_tpu/policy user_space
write /dev/thermal/tz-by-name/soft_ocp_gpu/policy user_space
write /dev/thermal/tz-by-name/soc/policy user_space
chown system system /dev/thermal/tz-by-name/soc/mode chown system system /dev/thermal/tz-by-name/soc/mode
chown system system /dev/thermal/tz-by-name/vdroop2/trip_point_0_temp chown system system /dev/thermal/tz-by-name/vdroop2/trip_point_0_temp
chown system system /dev/thermal/tz-by-name/vdroop2/trip_point_0_hyst chown system system /dev/thermal/tz-by-name/vdroop2/trip_point_0_hyst
@ -847,9 +876,13 @@ on property:vendor.thermal.link_ready=1
chown system system /dev/thermal/tz-by-name/soc/trip_point_0_temp chown system system /dev/thermal/tz-by-name/soc/trip_point_0_temp
chown system system /dev/thermal/tz-by-name/soc/trip_point_0_hyst chown system system /dev/thermal/tz-by-name/soc/trip_point_0_hyst
# Thermal # Thermal
chown system system /dev/thermal/tz-by-name/quiet_therm/trip_point_0_temp
chown system system /dev/thermal/tz-by-name/quiet_therm/trip_point_0_hyst
chown system system /dev/thermal/cdev-by-name/thermal-cpufreq-0/user_vote chown system system /dev/thermal/cdev-by-name/thermal-cpufreq-0/user_vote
chown system system /dev/thermal/cdev-by-name/thermal-cpufreq-1/user_vote chown system system /dev/thermal/cdev-by-name/thermal-cpufreq-1/user_vote
chown system system /dev/thermal/cdev-by-name/thermal-cpufreq-2/user_vote chown system system /dev/thermal/cdev-by-name/thermal-cpufreq-2/user_vote
chown system system /dev/thermal/cdev-by-name/thermal-gpufreq-0/user_vote
chown system system /dev/thermal/cdev-by-name/tpu_cooling/user_vote
chown system system /dev/thermal/cdev-by-name/fcc/cur_state chown system system /dev/thermal/cdev-by-name/fcc/cur_state
on property:vendor.disable.bcl.control=1 on property:vendor.disable.bcl.control=1

View file

@ -89,6 +89,12 @@ on property:vendor.usb.config=*
on property:persist.vendor.usb.usbradio.config=* on property:persist.vendor.usb.usbradio.config=*
start usbd start usbd
on property:vendor.usb.dwc3_irq=medium
exec /vendor/bin/hw/set_usb_irq.sh medium
on property:vendor.usb.dwc3_irq=big
exec /vendor/bin/hw/set_usb_irq.sh big
on charger on charger
mkdir /config/usb_gadget/g1 mkdir /config/usb_gadget/g1
mkdir /config/usb_gadget/g1/strings/0x409 mkdir /config/usb_gadget/g1/strings/0x409

View file

@ -162,6 +162,9 @@
/dev/trusty-ipc-dev0 0660 system drmrpc /dev/trusty-ipc-dev0 0660 system drmrpc
/dev/trusty-log0 0660 system system /dev/trusty-log0 0660 system system
# RPMB
/dev/sg1 0660 system system
# Citadel # Citadel
/dev/gsc0 0660 hsm hsm /dev/gsc0 0660 hsm hsm
@ -202,3 +205,6 @@
# Direct Charging # Direct Charging
/dev/logbuffer_pca9468_tcpm 0600 system system /dev/logbuffer_pca9468_tcpm 0600 system system
# Wlan
/dev/wlan 0660 wifi wifi

View file

@ -1,81 +0,0 @@
#!/bin/sh
BLK=$1
FORMAT_ONLY=$2
MNT_OLD="/mnt/convert_old"
MNT_NEW="/mnt/convert_new"
function log() {
if [ ! -z "$1" ]; then
echo "partition_convert: $1" > /dev/kmsg
fi
}
function check_success() {
if [ $? -ne 0 ]; then
log "Failed: $1"
exit -1
fi
log "Success: $1"
}
F2FS_MAGIC=$(xxd $BLK -s 0x400 -l 4 -p)
if [ "$F2FS_MAGIC" = "1020f5f2" ]; then
log "$BLK is already f2fs - skipping"
exit 0
fi
EXT4_MAGIC=$(xxd $BLK -s 0x438 -l 2 -p)
if [ "$EXT4_MAGIC" != "53ef" ]; then
log "Unknown filesystem $EXT4_MAGIC"
exit -1
fi
if [ $FORMAT_ONLY == "true" ]; then
make_f2fs $BLK 2>&1 > /dev/null
check_success "make_f2fs $BLK"
sync
check_success "sync"
exit 0
fi
mkdir -p $MNT_OLD
check_success "mkdir $MNT_OLD"
mkdir -p $MNT_NEW
check_success "mkdir $MNT_NEW"
mount -t ext4 $BLK $MNT_OLD
check_success "mount $MNT_OLD as ext4"
mount -t tmpfs tmpfs $MNT_NEW
check_success "mount $MNT_NEW as tmpfs"
cp -rp $MNT_OLD/* $MNT_NEW/
check_success "copy $MNT_OLD to $MNT_NEW"
umount $MNT_OLD
check_success "umount $MNT_OLD"
make_f2fs $BLK 2>&1 > /dev/null
check_success "make_f2fs $BLK"
mount -t f2fs $BLK $MNT_OLD
check_success "mount $MNT_OLD as f2fs"
cp -rp $MNT_NEW/* $MNT_OLD/
check_success "copy $MNT_NEW to $MNT_OLD"
sync
check_success "sync"
umount $MNT_OLD
check_success "umount $MNT_OLD"
umount $MNT_NEW
check_success "umount $MNT_NEW"
rmdir $MNT_OLD
check_success "rmdir $MNT_OLD"
rmdir $MNT_NEW
check_success "rmdir $MNT_NEW"

View file

@ -14,12 +14,17 @@
# limitations under the License. # limitations under the License.
# #
-include vendor/google_devices/gs201/proprietary/telephony/device-vendor.mk
include device/google/gs201/device.mk include device/google/gs201/device.mk
# Telephony # Telephony
PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.telephony.carrierlock.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.carrierlock.xml frameworks/native/data/etc/android.hardware.telephony.carrierlock.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.carrierlock.xml
# Android Verified Boot
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.software.verified_boot.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.verified_boot.xml
# Factory OTA # Factory OTA
-include vendor/unbundled_google/packages/FactoryOtaPrebuilt/factoryota.mk -include vendor/unbundled_google/packages/FactoryOtaPrebuilt/factoryota.mk
@ -29,3 +34,6 @@ PRODUCT_VENDOR_PROPERTIES += ro.soc.model=GS201
PRODUCT_PRODUCT_PROPERTIES += \ PRODUCT_PRODUCT_PROPERTIES += \
persist.vendor.testing_battery_profile=0 persist.vendor.testing_battery_profile=0
# ZramWriteback
-include hardware/google/pixel/mm/device_gki.mk

View file

@ -14,8 +14,3 @@
# limitations under the License. # limitations under the License.
include device/google/gs201/device-common.mk include device/google/gs201/device-common.mk
PRODUCT_PROPERTY_OVERRIDES += \
ro.bluetooth.a2dp_offload.supported=true \
persist.bluetooth.a2dp_offload.disabled=true \
persist.bluetooth.a2dp_offload.cap=sbc-aac-aptx-aptxhd-ldac

170
device.mk
View file

@ -14,11 +14,9 @@
# limitations under the License. # limitations under the License.
# #
TARGET_BOARD_PLATFORM := gs201 include device/google/gs-common/device.mk
ifneq (,$(filter %_64,$(TARGET_PRODUCT))) TARGET_BOARD_PLATFORM := gs201
LOCAL_64ONLY := _64
endif
AB_OTA_POSTINSTALL_CONFIG += \ AB_OTA_POSTINSTALL_CONFIG += \
RUN_POSTINSTALL_system=true \ RUN_POSTINSTALL_system=true \
@ -32,6 +30,14 @@ VENDOR_SECURITY_PATCH = $(PLATFORM_SECURITY_PATCH)
# Set boot SPL # Set boot SPL
BOOT_SECURITY_PATCH = $(PLATFORM_SECURITY_PATCH) BOOT_SECURITY_PATCH = $(PLATFORM_SECURITY_PATCH)
# TODO(b/207450311): Remove this flag once implemented
USE_PIXEL_GRALLOC := false
ifeq ($(USE_PIXEL_GRALLOC),true)
PRODUCT_SOONG_NAMESPACES += hardware/google/gchips/GrallocHAL
else
PRODUCT_SOONG_NAMESPACES += hardware/google/gchips/gralloc4
endif
PRODUCT_SOONG_NAMESPACES += \ PRODUCT_SOONG_NAMESPACES += \
hardware/google/av \ hardware/google/av \
hardware/google/gchips \ hardware/google/gchips \
@ -40,6 +46,7 @@ PRODUCT_SOONG_NAMESPACES += \
hardware/google/interfaces \ hardware/google/interfaces \
hardware/google/pixel \ hardware/google/pixel \
device/google/gs201 \ device/google/gs201 \
device/google/gs201/powerstats \
vendor/google/whitechapel/tools \ vendor/google/whitechapel/tools \
vendor/google/interfaces \ vendor/google/interfaces \
vendor/google_devices/common/proprietary/confirmatioui_hal \ vendor/google_devices/common/proprietary/confirmatioui_hal \
@ -55,6 +62,10 @@ LOCAL_KERNEL := $(TARGET_KERNEL_DIR)/Image.lz4
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \ PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
ro.oem_unlock_supported=1 ro.oem_unlock_supported=1
# Include vendor telephony soong namespace
PRODUCT_SOONG_NAMESPACES += \
vendor/samsung_slsi/telephony/$(BOARD_USES_SHARED_VENDOR_TELEPHONY)
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
#Set IKE logs to verbose for WFC #Set IKE logs to verbose for WFC
PRODUCT_PROPERTY_OVERRIDES += log.tag.IKE=VERBOSE PRODUCT_PROPERTY_OVERRIDES += log.tag.IKE=VERBOSE
@ -86,7 +97,6 @@ endif
# From system.property # From system.property
PRODUCT_PROPERTY_OVERRIDES += \ PRODUCT_PROPERTY_OVERRIDES += \
dev.usbsetting.embedded=on \
ro.telephony.default_network=27 \ ro.telephony.default_network=27 \
persist.vendor.ril.use.iccid_to_plmn=1 \ persist.vendor.ril.use.iccid_to_plmn=1 \
persist.vendor.ril.emergencynumber.mode=5 persist.vendor.ril.emergencynumber.mode=5
@ -108,6 +118,10 @@ PRODUCT_PRODUCT_PROPERTIES += \
PRODUCT_PRODUCT_PROPERTIES += \ PRODUCT_PRODUCT_PROPERTIES += \
persist.vendor.ril.camp_on_earlier=1 persist.vendor.ril.camp_on_earlier=1
# Hearing Aid Audio Support Using Bluetooth LE
PRODUCT_PRODUCT_PROPERTIES += \
bluetooth.profile.asha.central.enabled=true
# Carrier configuration default location # Carrier configuration default location
PRODUCT_PROPERTY_OVERRIDES += \ PRODUCT_PROPERTY_OVERRIDES += \
persist.vendor.radio.config.carrier_config_dir=/mnt/vendor/modem_img/images/default/confpack persist.vendor.radio.config.carrier_config_dir=/mnt/vendor/modem_img/images/default/confpack
@ -141,17 +155,17 @@ TARGET_USES_VULKAN = false
# TODO(b/185349920) # TODO(b/185349920)
# PRODUCT_SOONG_NAMESPACES += \ # PRODUCT_SOONG_NAMESPACES += \
# vendor/arm/mali/valhall \ # vendor/arm/mali/valhall
# vendor/arm/mali/valhall/cl \
# vendor/arm/mali/valhall/libmali \
# vendor/arm/mali/valhall/cinstr/production/gpu-hwc-reader
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
mali_csffw.bin \ csffw_image_prebuilt__firmware_prebuilt_todx_mali_csffw.bin \
libGLES_mali-gs201-prebuilt \ libGLES_mali \
vulkan.gs201-prebuilt \ vulkan.mali \
libOpenCL \ libOpenCL \
# libgpudataproducer libgpudataproducer \
PRODUCT_VENDOR_PROPERTIES += \
ro.hardware.vulkan=mali
include device/google/gs101/neuralnetwork/neuralnetwork.mk include device/google/gs101/neuralnetwork/neuralnetwork.mk
@ -175,12 +189,12 @@ PRODUCT_VENDOR_PROPERTIES += \
ro.hardware.egl = swiftshader ro.hardware.egl = swiftshader
else else
PRODUCT_VENDOR_PROPERTIES += \ PRODUCT_VENDOR_PROPERTIES += \
ro.hardware.egl = mali_gs201 ro.hardware.egl = mali
endif endif
PRODUCT_VENDOR_PROPERTIES += \ PRODUCT_VENDOR_PROPERTIES += \
ro.opengles.version=196610 \ ro.opengles.version=196610 \
debug.renderengine.backend=skiaglthreaded debug.renderengine.backend=skiaglthreaded \
# graphics.gpu.profiler.support=true \ graphics.gpu.profiler.support=true \
# GRAPHICS - GPU (end) # GRAPHICS - GPU (end)
# #################### # ####################
@ -188,10 +202,10 @@ PRODUCT_VENDOR_PROPERTIES += \
# Device Manifest, Device Compatibility Matrix for Treble # Device Manifest, Device Compatibility Matrix for Treble
ifeq ($(DEVICE_USES_EXYNOS_GRALLOC_VERSION), 4) ifeq ($(DEVICE_USES_EXYNOS_GRALLOC_VERSION), 4)
DEVICE_MANIFEST_FILE := \ DEVICE_MANIFEST_FILE := \
device/google/gs201/manifest$(LOCAL_64ONLY).xml device/google/gs201/manifest.xml
else else
DEVICE_MANIFEST_FILE := \ DEVICE_MANIFEST_FILE := \
device/google/gs201/manifest$(LOCAL_64ONLY)-gralloc3.xml device/google/gs201/manifest-gralloc3.xml
endif endif
ifneq (,$(filter aosp_%,$(TARGET_PRODUCT))) ifneq (,$(filter aosp_%,$(TARGET_PRODUCT)))
@ -254,6 +268,7 @@ PRODUCT_COPY_FILES += \
# Shell scripts # Shell scripts
PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \
device/google/gs201/init.insmod.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.insmod.sh \ device/google/gs201/init.insmod.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.insmod.sh \
device/google/$(TARGET_BOARD_PLATFORM)/set_usb_irq.sh:$(TARGET_COPY_OUT_VENDOR)/bin/hw/set_usb_irq.sh
# insmod files # insmod files
PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \
@ -292,10 +307,6 @@ PRODUCT_PACKAGES += \
tune2fs.vendor_ramdisk \ tune2fs.vendor_ramdisk \
resize2fs.vendor_ramdisk resize2fs.vendor_ramdisk
# Filesystem: convert /dev/block/by-name/persist to f2fs
PRODUCT_COPY_FILES += \
device/google/gs201/convert_to_f2fs.sh:$(TARGET_COPY_OUT_VENDOR)/bin/convert_to_f2fs.sh \
# Userdata Checkpointing OTA GC # Userdata Checkpointing OTA GC
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
checkpoint_gc checkpoint_gc
@ -319,8 +330,13 @@ PRODUCT_PROPERTY_OVERRIDES += \
persist.vendor.sys.modem.logging.enable=true persist.vendor.sys.modem.logging.enable=true
# Enable silent CP crash handling # Enable silent CP crash handling
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_PROPERTY_OVERRIDES += \ PRODUCT_PROPERTY_OVERRIDES += \
persist.vendor.ril.crash_handling_mode=1 persist.vendor.ril.crash_handling_mode=1
else
PRODUCT_PROPERTY_OVERRIDES += \
persist.vendor.ril.crash_handling_mode=2
endif
# Add support dual SIM mode # Add support dual SIM mode
PRODUCT_PROPERTY_OVERRIDES += \ PRODUCT_PROPERTY_OVERRIDES += \
@ -376,13 +392,11 @@ PRODUCT_PRODUCT_PROPERTIES += \
PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \
device/google/gs201/task_profiles.json:$(TARGET_COPY_OUT_VENDOR)/etc/task_profiles.json device/google/gs201/task_profiles.json:$(TARGET_COPY_OUT_VENDOR)/etc/task_profiles.json
PRODUCT_COPY_FILES += \
device/google/gs201/powerhint_a0.json:$(TARGET_COPY_OUT_VENDOR)/etc/powerhint_a0.json
PRODUCT_COPY_FILES += \
device/google/gs201/powerhint_a1.json:$(TARGET_COPY_OUT_VENDOR)/etc/powerhint_a1.json
-include hardware/google/pixel/power-libperfmgr/aidl/device.mk -include hardware/google/pixel/power-libperfmgr/aidl/device.mk
# IRQ rebalancing.
include hardware/google/pixel/rebalance_interrupts/rebalance_interrupts.mk
# PowerStats HAL # PowerStats HAL
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
android.hardware.power.stats-service.pixel android.hardware.power.stats-service.pixel
@ -483,34 +497,18 @@ else
LOCAL_TARGET_PRODUCT := slider LOCAL_TARGET_PRODUCT := slider
endif endif
#ifneq ($(wildcard vendor/google/camera),) $(call soong_config_set,google3a_config,soc,gs201)
SOONG_CONFIG_NAMESPACES += lyric $(call soong_config_set,google3a_config,gcam_awb,true)
SOONG_CONFIG_lyric += \ $(call soong_config_set,google3a_config,ghawb_truetone,true)
use_lyric_camera_hal \
soc \
tuning_product
SOONG_CONFIG_lyric_soc := gs201 ifneq ($(wildcard vendor/google/services/LyricCameraHAL/src),)
SOONG_CONFIG_lyric_use_lyric_camera_hal := true $(call soong_config_set,lyric,soc,gs201)
# SOONG_CONFIG_lyric_tuning_product is set in device-specific makefiles, $(call soong_config_set,lyric,use_lyric_camera_hal,true)
# lyric::tuning_product is set in device-specific makefiles,
# such as device/google/${DEVICE}/device-${DEVICE}.mk # such as device/google/${DEVICE}/device-${DEVICE}.mk
SOONG_CONFIG_NAMESPACES += google3a_config $(call soong_config_set,gch,hwl_library,lyric)
SOONG_CONFIG_google3a_config += \ endif
soc \
gcam_awb \
ghawb_truetone \
target_device
SOONG_CONFIG_google3a_config_soc := gs201
SOONG_CONFIG_google3a_config_gcam_awb := true
SOONG_CONFIG_google3a_config_ghawb_truetone := true
SOONG_CONFIG_NAMESPACES += gch
SOONG_CONFIG_gch += hwl_library
SOONG_CONFIG_gch_hwl_library := lyric
#endif
# WiFi # WiFi
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
@ -571,7 +569,7 @@ 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.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 frameworks/native/data/etc/android.hardware.usb.accessory.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.accessory.xml
#PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.camera.flash-autofocus.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.flash-autofocus.xml \ frameworks/native/data/etc/android.hardware.camera.flash-autofocus.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.flash-autofocus.xml \
frameworks/native/data/etc/android.hardware.camera.front.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.front.xml \ frameworks/native/data/etc/android.hardware.camera.front.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.front.xml \
frameworks/native/data/etc/android.hardware.camera.concurrent.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.concurrent.xml \ frameworks/native/data/etc/android.hardware.camera.concurrent.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.concurrent.xml \
@ -601,17 +599,19 @@ endif
PRODUCT_PROPERTY_OVERRIDES += \ PRODUCT_PROPERTY_OVERRIDES += \
debug.sf.disable_backpressure=0 \ debug.sf.disable_backpressure=0 \
debug.sf.enable_gl_backpressure=1 debug.sf.enable_gl_backpressure=1 \
debug.sf.enable_sdr_dimming=1
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.use_phase_offsets_as_durations=1 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.use_phase_offsets_as_durations=1
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.late.sf.duration=8300000 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.late.sf.duration=10500000
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.late.app.duration=20500000 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.late.app.duration=16600000
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.early.sf.duration=16000000 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.early.sf.duration=16600000
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.early.app.duration=16500000 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.early.app.duration=16600000
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.earlyGl.sf.duration=13500000 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.earlyGl.sf.duration=16600000
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.earlyGl.app.duration=21000000 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.earlyGl.app.duration=16600000
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_idle_timer_ms=80 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.enable_layer_caching=true
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_idle_timer_ms?=80
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_touch_timer_ms=200 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_touch_timer_ms=200
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_display_power_timer_ms=1000 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_display_power_timer_ms=1000
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.use_content_detection_for_refresh_rate=true PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.use_content_detection_for_refresh_rate=true
@ -670,9 +670,7 @@ endif
## VIDEO ## VIDEO
#################################### ####################################
SOONG_CONFIG_NAMESPACES += bigo $(call soong_config_set,bigo,soc,gs201)
SOONG_CONFIG_bigo += soc
SOONG_CONFIG_bigo_soc := gs201
# 1. Codec 2.0 # 1. Codec 2.0
# exynos service # exynos service
@ -705,6 +703,10 @@ PRODUCT_PROPERTY_OVERRIDES += \
debug.stagefright.ccodec_delayed_params=1 \ debug.stagefright.ccodec_delayed_params=1 \
ro.vendor.gpu.dataspace=1 ro.vendor.gpu.dataspace=1
# Create input surface on the framework side
PRODUCT_PROPERTY_OVERRIDES += \
debug.stagefright.c2inputsurface=-1 \
# 2. OpenMAX IL # 2. OpenMAX IL
PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \
device/google/gs201/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \ device/google/gs201/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \
@ -720,7 +722,7 @@ CBD_USE_V2 := true
CBD_PROTOCOL_SIT := true CBD_PROTOCOL_SIT := true
# setup dalvik vm configs. # setup dalvik vm configs.
$(call inherit-product, frameworks/native/build/phone-xhdpi-2048-dalvik-heap.mk) $(call inherit-product, frameworks/native/build/phone-xhdpi-6144-dalvik-heap.mk)
PRODUCT_TAGS += dalvik.gc.type-precise PRODUCT_TAGS += dalvik.gc.type-precise
@ -827,12 +829,10 @@ PRODUCT_PACKAGES += \
vts.bin vts.bin
# This will be called only if IMSService is building with source code for dev branches. # This will be called only if IMSService is building with source code for dev branches.
$(call inherit-product-if-exists, vendor/samsung_slsi/telephony/shannon-ims/device-vendor.mk) $(call inherit-product-if-exists, vendor/samsung_slsi/telephony/$(BOARD_USES_SHARED_VENDOR_TELEPHONY)/shannon-ims/device-vendor.mk)
PRODUCT_PACKAGES += ShannonIms PRODUCT_PACKAGES += ShannonIms
$(call inherit-product-if-exists, vendor/samsung_slsi/telephony/shannon-iwlan/device-vendor.mk)
#RCS Test Messaging App #RCS Test Messaging App
PRODUCT_PACKAGES_DEBUG += \ PRODUCT_PACKAGES_DEBUG += \
TestRcsApp TestRcsApp
@ -857,18 +857,14 @@ USE_RADIO_HAL_1_6 := true
#$(call inherit-product, vendor/google_devices/gs201/proprietary/device-vendor.mk) #$(call inherit-product, vendor/google_devices/gs201/proprietary/device-vendor.mk)
ifneq ($(BOARD_WITHOUT_RADIO),true) ifneq ($(BOARD_WITHOUT_RADIO),true)
$(call inherit-product-if-exists, vendor/samsung_slsi/telephony/common/device-vendor.mk) $(call inherit-product-if-exists, vendor/samsung_slsi/telephony/$(BOARD_USES_SHARED_VENDOR_TELEPHONY)/common/device-vendor.mk)
endif endif
#GPS HAL #GPS HAL
include device/google/gs201/gnss/device-gnss.mk include device/google/gs201/gnss/device-gnss.mk
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs201-sepolicy/gps BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs201-sepolicy/gps
ifeq (,$(filter %_64,$(TARGET_PRODUCT)))
$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
else
$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit_only.mk) $(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit_only.mk)
endif
#$(call inherit-product, hardware/google_devices/exynos5/exynos5.mk) #$(call inherit-product, hardware/google_devices/exynos5/exynos5.mk)
#$(call inherit-product-if-exists, hardware/google_devices/gs201/gs201.mk) #$(call inherit-product-if-exists, hardware/google_devices/gs201/gs201.mk)
#$(call inherit-product-if-exists, vendor/google_devices/common/exynos-vendor.mk) #$(call inherit-product-if-exists, vendor/google_devices/common/exynos-vendor.mk)
@ -888,6 +884,13 @@ PRODUCT_PACKAGES += modem_svc_sit
# modem logging binary/configs # modem logging binary/configs
PRODUCT_PACKAGES += modem_logging_control PRODUCT_PACKAGES += modem_logging_control
# modem logging configs
PRODUCT_COPY_FILES += \
device/google/gs201/radio/config/logging.conf:$(TARGET_COPY_OUT_VENDOR)/etc/modem/logging.conf \
device/google/gs201/radio/config/default.cfg:$(TARGET_COPY_OUT_VENDOR)/etc/modem/default.cfg \
device/google/gs201/radio/config/default.nprf:$(TARGET_COPY_OUT_VENDOR)/etc/modem/default.nprf \
device/google/gs201/radio/config/default_metrics.xml:$(TARGET_COPY_OUT_VENDOR)/etc/modem/default_metrics.xml
PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \
device/google/gs201/radio/gnss_blanking.csv:$(TARGET_COPY_OUT_VENDOR)/etc/modem/gnss_blanking.csv device/google/gs201/radio/gnss_blanking.csv:$(TARGET_COPY_OUT_VENDOR)/etc/modem/gnss_blanking.csv
@ -902,14 +905,14 @@ PRODUCT_PACKAGES_DEBUG += \
$(NULL) $(NULL)
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
android.hardware.health@2.1-impl-gs201 \ android.hardware.health-service.gs201 \
android.hardware.health@2.1-service android.hardware.health-service.gs201_recovery \
# Audio # Audio
# Audio HAL Server & Default Implementations # Audio HAL Server & Default Implementations
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
android.hardware.audio.service \ android.hardware.audio.service \
android.hardware.audio@7.0-impl \ android.hardware.audio@7.1-impl \
android.hardware.audio.effect@7.0-impl \ android.hardware.audio.effect@7.0-impl \
android.hardware.soundtrigger@2.3-impl \ android.hardware.soundtrigger@2.3-impl \
vendor.google.whitechapel.audio.audioext@2.0-impl \ vendor.google.whitechapel.audio.audioext@2.0-impl \
@ -936,8 +939,8 @@ PRODUCT_PACKAGES += \
audio.a2dp.default \ audio.a2dp.default \
audio.bluetooth.default \ audio.bluetooth.default \
audio.r_submix.default \ audio.r_submix.default \
audio_spk_35l41 audio_spk_35l41 \
# sound_trigger.primary.$(TARGET_BOARD_PLATFORM) \ sound_trigger.primary.$(TARGET_BOARD_PLATFORM)
# libaoc_waves \ # libaoc_waves \
# #
@ -963,11 +966,14 @@ PRODUCT_SOONG_NAMESPACES += \
vendor/google/whitechapel/audio/hal \ vendor/google/whitechapel/audio/hal \
vendor/google/whitechapel/audio/interfaces vendor/google/whitechapel/audio/interfaces
SOONG_CONFIG_NAMESPACES += aoc_audio_board $(call soong_config_set,aoc_audio_board,platform,$(TARGET_BOARD_PLATFORM))
SOONG_CONFIG_aoc_audio_board += \
platform ## AoC soong
PRODUCT_SOONG_NAMESPACES += \
vendor/google/whitechapel/aoc
$(call soong_config_set,aoc,target_soc,$(TARGET_BOARD_PLATFORM))
SOONG_CONFIG_aoc_audio_board_platform := $(TARGET_BOARD_PLATFORM)
# #
## Audio properties ## Audio properties
PRODUCT_PROPERTY_OVERRIDES += \ PRODUCT_PROPERTY_OVERRIDES += \

View file

@ -65,6 +65,7 @@
</hal> </hal>
<hal format="aidl" optional="true"> <hal format="aidl" optional="true">
<name>com.google.edgetpu</name> <name>com.google.edgetpu</name>
<version>2</version>
<interface> <interface>
<name>IEdgeTpuVendorService</name> <name>IEdgeTpuVendorService</name>
<instance>default</instance> <instance>default</instance>
@ -126,7 +127,7 @@
</hal> </hal>
<hal format="hidl" optional="true"> <hal format="hidl" optional="true">
<name>vendor.google.google_battery</name> <name>vendor.google.google_battery</name>
<version>1.1</version> <version>1.2</version>
<interface> <interface>
<name>IGoogleBattery</name> <name>IGoogleBattery</name>
<instance>default</instance> <instance>default</instance>
@ -150,7 +151,7 @@
</hal> </hal>
<hal format="hidl" optional="true"> <hal format="hidl" optional="true">
<name>vendor.google.wifi_ext</name> <name>vendor.google.wifi_ext</name>
<version>1.2</version> <version>1.3</version>
<interface> <interface>
<name>IWifiExt</name> <name>IWifiExt</name>
<instance>default</instance> <instance>default</instance>

View file

@ -209,6 +209,7 @@ void DumpstateDevice::dumpCameraLogs(int fd, const std::string &destDir) {
dumpLogs(fd, kCameraLogDir, cameraDestDir, 10, "session-ended-"); dumpLogs(fd, kCameraLogDir, cameraDestDir, 10, "session-ended-");
dumpLogs(fd, kCameraLogDir, cameraDestDir, 5, "high-drop-rate-"); dumpLogs(fd, kCameraLogDir, cameraDestDir, 5, "high-drop-rate-");
dumpLogs(fd, kCameraLogDir, cameraDestDir, 5, "watchdog-"); dumpLogs(fd, kCameraLogDir, cameraDestDir, 5, "watchdog-");
dumpLogs(fd, kCameraLogDir, cameraDestDir, 5, "camera-ended-");
} }
timepoint_t startSection(int fd, const std::string &sectionName) { timepoint_t startSection(int fd, const std::string &sectionName) {
@ -480,9 +481,6 @@ void DumpstateDevice::dumpPowerSection(int fd) {
"a=${f/\\/sys\\/devices\\/virtual\\/pmic\\/mitigation\\/instruction\\//}; " "a=${f/\\/sys\\/devices\\/virtual\\/pmic\\/mitigation\\/instruction\\//}; "
"echo \"$a=$val\" ; done"}); "echo \"$a=$val\" ; done"});
DumpFileToFd(fd, "BCL", "/sys/devices/virtual/pmic/mitigation/triggered_stats");
DumpFileToFd(fd, "IF PMIC", "/sys/devices/virtual/pmic/max77759-mitigation/triggered_stats");
} }
// Dump items related to thermal // Dump items related to thermal
@ -965,6 +963,7 @@ void DumpstateDevice::dumpRamdumpSection(int fd) {
// Dump items that don't fit well into any other section // Dump items that don't fit well into any other section
void DumpstateDevice::dumpMiscSection(int fd) { void DumpstateDevice::dumpMiscSection(int fd) {
RunCommandToFd(fd, "VENDOR PROPERTIES", {"/vendor/bin/getprop"}); RunCommandToFd(fd, "VENDOR PROPERTIES", {"/vendor/bin/getprop"});
DumpFileToFd(fd, "VENDOR PROC DUMP", "/proc/vendor_sched/dump_task");
} }
// Dump items related to GSC // Dump items related to GSC

View file

@ -1,10 +1,7 @@
# Edgetpu packages # Edgetpu packages
# Config variables for TPU chip on device. # Config variables for TPU chip on device.
SOONG_CONFIG_NAMESPACES += edgetpu_config $(call soong_config_set,edgetpu_config,chip,janeiro)
SOONG_CONFIG_edgetpu_config += chip
SOONG_CONFIG_edgetpu_config_chip := janeiro
# TPU logging service # TPU logging service
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \

View file

@ -38,13 +38,17 @@ PRODUCT_PROPERTY_OVERRIDES += \
vendor.camera.debug.force_mesh_warp_on=0 \ vendor.camera.debug.force_mesh_warp_on=0 \
vendor.camera.debug.force_rectiface_node_on=0 \ vendor.camera.debug.force_rectiface_node_on=0 \
vendor.camera.debug.force_steadiface_on=0 \ vendor.camera.debug.force_steadiface_on=0 \
vendor.camera.debug.force_tnr_on=0 vendor.camera.debug.force_tnr_on=0 \
vendor.camera.debug.force_segmentation_node_on=0 \
vendor.camera.debug.enable_saliency=0 \
vendor.camera.debug.force_local_tone_mapping_on=0 \
vendor.camera.debug.local_tone_mapping_controller_v1.mode=0
# Disable ScreenDecorations for factory builds # Disable ScreenDecorations for factory builds
PRODUCT_PROPERTY_OVERRIDES += \ PRODUCT_PROPERTY_OVERRIDES += \
debug.disable_screen_decorations=true debug.disable_screen_decorations=true
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_idle_timer_ms=80 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_idle_timer_ms?=80
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_touch_timer_ms=200 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_touch_timer_ms=200
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_display_power_timer_ms=1000 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_display_power_timer_ms=1000
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.use_content_detection_for_refresh_rate=true PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.use_content_detection_for_refresh_rate=true

View file

@ -21,9 +21,7 @@ PRODUCT_COPY_FILES += \
PRODUCT_SOONG_NAMESPACES += vendor/goodix/udfps/g6_trusty PRODUCT_SOONG_NAMESPACES += vendor/goodix/udfps/g6_trusty
PRODUCT_SOONG_NAMESPACES += vendor/goodix/udfps/g6_aidl_trusty PRODUCT_SOONG_NAMESPACES += vendor/goodix/udfps/g6_aidl_trusty
SOONG_CONFIG_NAMESPACES += fp_hal_feature $(call soong_config_set,fp_hal_feature,biometric_suez_support,true)
SOONG_CONFIG_fp_hal_feature += biometric_suez_support
SOONG_CONFIG_fp_hal_feature_biometric_suez_support := true
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
android.hardware.biometrics.fingerprint@2.1-service.goodix \ android.hardware.biometrics.fingerprint@2.1-service.goodix \

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load diff

View file

@ -25,12 +25,14 @@ package {
], ],
} }
cc_library_shared { cc_defaults {
name: "android.hardware.health@2.1-impl-gs201", name: "android.hardware.health-service.gs201-defaults",
stem: "android.hardware.health@2.0-impl-2.1-gs201", defaults: [
"libhealth_aidl_impl_user",
proprietary: true, "libhealth_aidl_charger_defaults",
],
relative_install_path: "hw", relative_install_path: "hw",
vintf_fragments: ["android.hardware.health-service.gs201.xml"],
srcs: [ srcs: [
"Health.cpp", "Health.cpp",
], ],
@ -41,19 +43,25 @@ cc_library_shared {
], ],
static_libs: [ static_libs: [
"android.hardware.health@1.0-convert", "libhealth_aidl_impl",
"libbatterymonitor",
"libhealth2impl",
"libhealthloop",
],
shared_libs: [
"libbase",
"libcutils",
"libhidlbase",
"libpixelhealth",
"libutils",
"android.hardware.health@2.0",
"android.hardware.health@2.1",
], ],
} }
cc_binary {
name: "android.hardware.health-service.gs201",
defaults: ["android.hardware.health-service.gs201-defaults"],
proprietary: true,
init_rc: ["android.hardware.health-service.gs201.rc"],
overrides: ["charger"],
shared_libs: [
"libpixelhealth",
],
}
cc_binary {
name: "android.hardware.health-service.gs201_recovery",
defaults: ["android.hardware.health-service.gs201-defaults"],
recovery: true,
init_rc: ["android.hardware.health-service.gs201_recovery.rc"],
overrides: ["charger.recovery"],
}

View file

@ -19,17 +19,20 @@
#include <android-base/file.h> #include <android-base/file.h>
#include <android-base/parseint.h> #include <android-base/parseint.h>
#include <android-base/strings.h> #include <android-base/strings.h>
#include <android/hardware/health/2.0/types.h> #include <android/hardware/health/translate-ndk.h>
#include <health2impl/Health.h> #include <health-impl/Health.h>
#include <health/utils.h> #include <health/utils.h>
#include <hal_conversion.h>
// Recovery doesn't have libpixelhealth and charger mode
#ifndef __ANDROID_RECOVERY__
#include <health-impl/ChargerUtils.h>
#include <pixelhealth/BatteryDefender.h> #include <pixelhealth/BatteryDefender.h>
#include <pixelhealth/BatteryMetricsLogger.h> #include <pixelhealth/BatteryMetricsLogger.h>
#include <pixelhealth/BatteryThermalControl.h> #include <pixelhealth/BatteryThermalControl.h>
#include <pixelhealth/ChargerDetect.h> #include <pixelhealth/ChargerDetect.h>
#include <pixelhealth/DeviceHealth.h> #include <pixelhealth/DeviceHealth.h>
#include <pixelhealth/LowBatteryShutdownMetrics.h> #include <pixelhealth/LowBatteryShutdownMetrics.h>
#endif // !__ANDROID_RECOVERY__
#include <chrono> #include <chrono>
#include <fstream> #include <fstream>
@ -41,15 +44,15 @@ namespace {
using namespace std::literals; using namespace std::literals;
using android::hardware::health::V1_0::hal_conversion::convertFromHealthInfo; using aidl::android::hardware::health::DiskStats;
using android::hardware::health::V1_0::hal_conversion::convertToHealthInfo; using aidl::android::hardware::health::HalHealthLoop;
using android::hardware::health::V2_0::DiskStats; using aidl::android::hardware::health::HealthInfo;
using android::hardware::health::V2_0::StorageAttribute; using aidl::android::hardware::health::StorageInfo;
using android::hardware::health::V2_0::StorageInfo;
using android::hardware::health::V2_0::Result;
using ::android::hardware::health::V2_1::IHealth;
using android::hardware::health::InitHealthdConfig; using android::hardware::health::InitHealthdConfig;
#ifndef __ANDROID_RECOVERY__
using aidl::android::hardware::health::charger::ChargerCallback;
using aidl::android::hardware::health::charger::ChargerModeMain;
using hardware::google::pixel::health::BatteryDefender; using hardware::google::pixel::health::BatteryDefender;
using hardware::google::pixel::health::BatteryMetricsLogger; using hardware::google::pixel::health::BatteryMetricsLogger;
using hardware::google::pixel::health::BatteryThermalControl; using hardware::google::pixel::health::BatteryThermalControl;
@ -70,6 +73,7 @@ static BatteryThermalControl battThermalControl(
static BatteryMetricsLogger battMetricsLogger(kBatteryResistance, kBatteryOCV); static BatteryMetricsLogger battMetricsLogger(kBatteryResistance, kBatteryOCV);
static LowBatteryShutdownMetrics shutdownMetrics(kVoltageAvg); static LowBatteryShutdownMetrics shutdownMetrics(kVoltageAvg);
static DeviceHealth deviceHealth; static DeviceHealth deviceHealth;
#endif // !__ANDROID_RECOVERY__
#define UFS_DIR "/dev/sys/block/bootdevice" #define UFS_DIR "/dev/sys/block/bootdevice"
constexpr char kUfsHealthEol[]{UFS_DIR "/health_descriptor/eol_info"}; constexpr char kUfsHealthEol[]{UFS_DIR "/health_descriptor/eol_info"};
@ -77,7 +81,6 @@ constexpr char kUfsHealthLifetimeA[]{UFS_DIR "/health_descriptor/life_time_estim
constexpr char kUfsHealthLifetimeB[]{UFS_DIR "/health_descriptor/life_time_estimation_b"}; constexpr char kUfsHealthLifetimeB[]{UFS_DIR "/health_descriptor/life_time_estimation_b"};
constexpr char kUfsVersion[]{UFS_DIR "/device_descriptor/specification_version"}; constexpr char kUfsVersion[]{UFS_DIR "/device_descriptor/specification_version"};
constexpr char kDiskStatsFile[]{"/sys/block/sda/stat"}; constexpr char kDiskStatsFile[]{"/sys/block/sda/stat"};
constexpr char kUFSName[]{"UFS0"};
static std::string ufs_version; static std::string ufs_version;
static uint16_t eol; static uint16_t eol;
@ -86,8 +89,10 @@ static uint16_t lifetimeB;
static std::chrono::system_clock::time_point ufs_last_query_time; static std::chrono::system_clock::time_point ufs_last_query_time;
constexpr auto kUfsQueryIntervalHours = std::chrono::hours{24}; constexpr auto kUfsQueryIntervalHours = std::chrono::hours{24};
#ifndef __ANDROID_RECOVERY__
static bool needs_wlc_updates = false; static bool needs_wlc_updates = false;
constexpr char kWlcCapacity[]{WLC_DIR "/capacity"}; constexpr char kWlcCapacity[]{WLC_DIR "/capacity"};
#endif // !__ANDROID_RECOVERY__
std::ifstream assert_open(const std::string &path) { std::ifstream assert_open(const std::string &path) {
std::ifstream stream(path); std::ifstream stream(path);
@ -116,11 +121,10 @@ void read_ufs_version(StorageInfo *info) {
info->version = ufs_version; info->version = ufs_version;
} }
void fill_ufs_storage_attribute(StorageAttribute *attr) { #ifdef __ANDROID_RECOVERY__
attr->isInternal = true; void private_healthd_board_init(struct healthd_config *) {}
attr->isBootDevice = true; int private_healthd_board_battery_update(HealthInfo *) { return 0; }
attr->name = kUFSName; #else // !__ANDROID__RECOVERY__
}
static bool FileExists(const std::string &filename) { static bool FileExists(const std::string &filename) {
struct stat buffer; struct stat buffer;
@ -138,26 +142,26 @@ void private_healthd_board_init(struct healthd_config *hc) {
} }
} }
int private_healthd_board_battery_update(struct android::BatteryProperties *props) { int private_healthd_board_battery_update(HealthInfo *health_info) {
deviceHealth.update(props); deviceHealth.update(health_info);
battThermalControl.updateThermalState(props); battThermalControl.updateThermalState(*health_info);
battMetricsLogger.logBatteryProperties(props); battMetricsLogger.logBatteryProperties(*health_info);
shutdownMetrics.logShutdownVoltage(props); shutdownMetrics.logShutdownVoltage(*health_info);
// Allow BatteryDefender to override online properties // Allow BatteryDefender to override online properties
ChargerDetect::onlineUpdate(props); ChargerDetect::onlineUpdate(health_info);
battDefender.update(props); battDefender.update(health_info);
if (needs_wlc_updates && if (needs_wlc_updates &&
!android::base::WriteStringToFile(std::to_string(props->batteryLevel), kWlcCapacity)) !android::base::WriteStringToFile(std::to_string(health_info->batteryLevel), kWlcCapacity))
LOG(INFO) << "Unable to write battery level to wireless capacity"; LOG(INFO) << "Unable to write battery level to wireless capacity";
return 0; return 0;
} }
#endif // __ANDROID_RECOVERY__
void private_get_storage_info(std::vector<StorageInfo> &vec_storage_info) { void private_get_storage_info(std::vector<StorageInfo> *vec_storage_info) {
vec_storage_info.resize(1); vec_storage_info->resize(1);
StorageInfo *storage_info = &vec_storage_info[0]; StorageInfo *storage_info = &vec_storage_info->at(0);
fill_ufs_storage_attribute(&storage_info->attr);
read_ufs_version(storage_info); read_ufs_version(storage_info);
@ -178,10 +182,9 @@ void private_get_storage_info(std::vector<StorageInfo> &vec_storage_info) {
return; return;
} }
void private_get_disk_stats(std::vector<DiskStats> &vec_stats) { void private_get_disk_stats(std::vector<DiskStats> *vec_stats) {
vec_stats.resize(1); vec_stats->resize(1);
DiskStats *stats = &vec_stats[0]; DiskStats *stats = &vec_stats->at(0);
fill_ufs_storage_attribute(&stats->attr);
auto stream = assert_open(kDiskStatsFile); auto stream = assert_open(kDiskStatsFile);
// Regular diskstats entries // Regular diskstats entries
@ -193,18 +196,14 @@ void private_get_disk_stats(std::vector<DiskStats> &vec_stats) {
} }
} // anonymous namespace } // anonymous namespace
namespace android { namespace aidl::android::hardware::health::implementation {
namespace hardware {
namespace health {
namespace V2_1 {
namespace implementation {
class HealthImpl : public Health { class HealthImpl : public Health {
public: public:
HealthImpl(std::unique_ptr<healthd_config>&& config) HealthImpl(std::string_view instance_name, std::unique_ptr<healthd_config>&& config)
: Health(std::move(config)) {} : Health(std::move(instance_name), std::move(config)) {}
Return<void> getStorageInfo(getStorageInfo_cb _hidl_cb) override; ndk::ScopedAStatus getDiskStats(std::vector<DiskStats>* out) override;
Return<void> getDiskStats(getDiskStats_cb _hidl_cb) override; ndk::ScopedAStatus getStorageInfo(std::vector<StorageInfo>* out) override;
protected: protected:
void UpdateHealthInfo(HealthInfo* health_info) override; void UpdateHealthInfo(HealthInfo* health_info) override;
@ -212,53 +211,57 @@ class HealthImpl : public Health {
}; };
void HealthImpl::UpdateHealthInfo(HealthInfo* health_info) { void HealthImpl::UpdateHealthInfo(HealthInfo* health_info) {
struct BatteryProperties props; private_healthd_board_battery_update(health_info);
convertFromHealthInfo(health_info->legacy.legacy, &props);
private_healthd_board_battery_update(&props);
convertToHealthInfo(&props, health_info->legacy.legacy);
} }
Return<void> HealthImpl::getStorageInfo(getStorageInfo_cb _hidl_cb) ndk::ScopedAStatus HealthImpl::getStorageInfo(std::vector<StorageInfo>* out)
{ {
std::vector<struct StorageInfo> info; private_get_storage_info(out);
private_get_storage_info(info); if (out->empty()) {
hidl_vec<struct StorageInfo> info_vec(info); return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
if (!info.size()) {
_hidl_cb(Result::NOT_SUPPORTED, info_vec);
} else {
_hidl_cb(Result::SUCCESS, info_vec);
} }
return Void(); return ndk::ScopedAStatus::ok();
} }
Return<void> HealthImpl::getDiskStats(getDiskStats_cb _hidl_cb) ndk::ScopedAStatus HealthImpl::getDiskStats(std::vector<DiskStats>* out)
{ {
std::vector<struct DiskStats> stats; private_get_disk_stats(out);
private_get_disk_stats(stats); if (out->empty()) {
hidl_vec<struct DiskStats> stats_vec(stats); return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
if (!stats.size()) {
_hidl_cb(Result::NOT_SUPPORTED, stats_vec);
} else {
_hidl_cb(Result::SUCCESS, stats_vec);
} }
return Void(); return ndk::ScopedAStatus::ok();
} }
} // namespace implementation } // namespace aidl::android::hardware::health::implementation
} // namespace V2_1
} // namespace health int main(int argc, char **argv) {
} // namespace hardware using ::aidl::android::hardware::health::implementation::HealthImpl;
} // namespace android
// Use kernel logging in recovery
#ifdef __ANDROID_RECOVERY__
android::base::InitLogging(argv, android::base::KernelLogger);
#endif
extern "C" IHealth* HIDL_FETCH_IHealth(const char* instance) {
using ::android::hardware::health::V2_1::implementation::HealthImpl;
if (instance != "default"sv) {
return nullptr;
}
auto config = std::make_unique<healthd_config>(); auto config = std::make_unique<healthd_config>();
InitHealthdConfig(config.get()); InitHealthdConfig(config.get());
private_healthd_board_init(config.get()); private_healthd_board_init(config.get());
return new HealthImpl(std::move(config)); auto binder =
ndk::SharedRefBase::make<HealthImpl>("default"sv, std::move(config));
if (argc >= 2 && argv[1] == "--charger"sv) {
// In regular mode, start charger UI.
#ifndef __ANDROID_RECOVERY__
LOG(INFO) << "Starting charger mode with UI.";
return ChargerModeMain(binder, std::make_shared<ChargerCallback>(binder));
#endif
// In recovery, ignore --charger arg.
LOG(INFO) << "Starting charger mode without UI.";
} else {
LOG(INFO) << "Starting health HAL.";
}
auto hal_health_loop = std::make_shared<HalHealthLoop>(binder, binder);
return hal_health_loop->StartLoop();
} }

View file

@ -0,0 +1,17 @@
service vendor.health-gs201 /vendor/bin/hw/android.hardware.health-service.gs201
class hal
user system
group system
capabilities WAKE_ALARM BLOCK_SUSPEND
file /dev/kmsg w
service vendor.charger /vendor/bin/hw/android.hardware.health-service.gs201 --charger
class charger
seclabel u:r:charger_vendor:s0
user system
group system wakelock input
capabilities SYS_BOOT
file /dev/kmsg w
file /sys/fs/pstore/console-ramoops-0 r
file /sys/fs/pstore/console-ramoops r
file /proc/last_kmsg r

View file

@ -0,0 +1,7 @@
<manifest version="1.0" type="device">
<hal format="aidl">
<name>android.hardware.health</name>
<version>1</version>
<fqname>IHealth/default</fqname>
</hal>
</manifest>

View file

@ -0,0 +1,7 @@
service vendor.health-gs201 /system/bin/hw/android.hardware.health-service.gs201_recovery
class hal
seclabel u:r:hal_health_default:s0
user system
group system
capabilities WAKE_ALARM BLOCK_SUSPEND
file /dev/kmsg w

View file

@ -2,7 +2,7 @@
<hal format="hidl"> <hal format="hidl">
<name>android.hardware.audio</name> <name>android.hardware.audio</name>
<transport>hwbinder</transport> <transport>hwbinder</transport>
<version>7.0</version> <version>7.1</version>
<interface> <interface>
<name>IDevicesFactory</name> <name>IDevicesFactory</name>
<instance>default</instance> <instance>default</instance>
@ -25,19 +25,6 @@
<name>ISoundTriggerHw</name> <name>ISoundTriggerHw</name>
<instance>default</instance> <instance>default</instance>
</interface> </interface>
</hal>
<hal format="hidl">
<name>android.hardware.media.omx</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IOmx</name>
<instance>default</instance>
</interface>
<interface>
<name>IOmxStore</name>
<instance>default</instance>
</interface>
</hal> </hal>
<hal format="hidl"> <hal format="hidl">
<name>android.hardware.graphics.allocator</name> <name>android.hardware.graphics.allocator</name>
@ -148,15 +135,6 @@
<transport>hwbinder</transport> <transport>hwbinder</transport>
<fqname>@1.3::IDevice/google-edgetpu</fqname> <fqname>@1.3::IDevice/google-edgetpu</fqname>
</hal> </hal>
<hal format="hidl">
<name>android.hardware.health</name>
<transport>hwbinder</transport>
<version>2.1</version>
<interface>
<name>IHealth</name>
<instance>default</instance>
</interface>
</hal>
<hal format="aidl"> <hal format="aidl">
<name>com.google.input</name> <name>com.google.input</name>
<interface> <interface>
@ -167,7 +145,7 @@
<hal format="hidl"> <hal format="hidl">
<name>vendor.google.google_battery</name> <name>vendor.google.google_battery</name>
<transport>hwbinder</transport> <transport>hwbinder</transport>
<version>1.1</version> <version>1.2</version>
<interface> <interface>
<name>IGoogleBattery</name> <name>IGoogleBattery</name>
<instance>default</instance> <instance>default</instance>

View file

@ -2,7 +2,7 @@
<hal format="hidl"> <hal format="hidl">
<name>android.hardware.audio</name> <name>android.hardware.audio</name>
<transport>hwbinder</transport> <transport>hwbinder</transport>
<version>7.0</version> <version>7.1</version>
<interface> <interface>
<name>IDevicesFactory</name> <name>IDevicesFactory</name>
<instance>default</instance> <instance>default</instance>
@ -26,19 +26,6 @@
<instance>default</instance> <instance>default</instance>
</interface> </interface>
</hal> </hal>
<hal format="hidl">
<name>android.hardware.media.omx</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IOmx</name>
<instance>default</instance>
</interface>
<interface>
<name>IOmxStore</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl"> <hal format="hidl">
<name>android.hardware.graphics.allocator</name> <name>android.hardware.graphics.allocator</name>
<transport>hwbinder</transport> <transport>hwbinder</transport>
@ -108,15 +95,6 @@
</interface> </interface>
<fqname>@1.3::IDevice/google-armnn</fqname> <fqname>@1.3::IDevice/google-armnn</fqname>
</hal> </hal>
<hal format="hidl">
<name>android.hardware.health</name>
<transport>hwbinder</transport>
<version>2.1</version>
<interface>
<name>IHealth</name>
<instance>default</instance>
</interface>
</hal>
<hal format="aidl"> <hal format="aidl">
<name>com.google.input</name> <name>com.google.input</name>
<interface> <interface>
@ -127,7 +105,7 @@
<hal format="hidl"> <hal format="hidl">
<name>vendor.google.google_battery</name> <name>vendor.google.google_battery</name>
<transport>hwbinder</transport> <transport>hwbinder</transport>
<version>1.1</version> <version>1.2</version>
<interface> <interface>
<name>IGoogleBattery</name> <name>IGoogleBattery</name>
<instance>default</instance> <instance>default</instance>

View file

@ -1,218 +0,0 @@
<manifest version="1.0" type="device" target-level="5">
<hal format="hidl">
<name>android.hardware.audio</name>
<transport>hwbinder</transport>
<version>7.0</version>
<interface>
<name>IDevicesFactory</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.audio.effect</name>
<transport>hwbinder</transport>
<version>7.0</version>
<interface>
<name>IEffectsFactory</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.soundtrigger</name>
<transport>hwbinder</transport>
<version>2.3</version>
<interface>
<name>ISoundTriggerHw</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.graphics.allocator</name>
<transport>hwbinder</transport>
<version>2.0</version>
<interface>
<name>IAllocator</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.graphics.mapper</name>
<transport arch="32+64">passthrough</transport>
<version>2.1</version>
<interface>
<name>IMapper</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.graphics.composer</name>
<transport>hwbinder</transport>
<version>2.4</version>
<interface>
<name>IComposer</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.memtrack</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IMemtrack</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.renderscript</name>
<transport arch="32+64">passthrough</transport>
<version>1.0</version>
<interface>
<name>IDevice</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.drm</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>ICryptoFactory</name>
<instance>default</instance>
</interface>
<interface>
<name>IDrmFactory</name>
<instance>default</instance>
</interface>
<fqname>@1.3::ICryptoFactory/clearkey</fqname>
<fqname>@1.3::IDrmFactory/clearkey</fqname>
<fqname>@1.3::ICryptoFactory/widevine</fqname>
<fqname>@1.3::IDrmFactory/widevine</fqname>
</hal>
<hal format = "hidl">
<name>android.hardware.dumpstate</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IDumpstateDevice</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.bluetooth</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>IBluetoothHci</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.bluetooth.audio</name>
<transport>hwbinder</transport>
<version>2.1</version>
<interface>
<name>IBluetoothAudioProvidersFactory</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.boot</name>
<transport>hwbinder</transport>
<fqname>@1.2::IBootControl/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.sensors</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>ISensors</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.neuralnetworks</name>
<transport>hwbinder</transport>
<version>1.3</version>
<interface>
<name>IDevice</name>
<instance>google-armnn</instance>
</interface>
<fqname>@1.3::IDevice/google-armnn</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.neuralnetworks</name>
<transport>hwbinder</transport>
<fqname>@1.3::IDevice/google-edgetpu</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.health</name>
<transport>hwbinder</transport>
<version>2.1</version>
<interface>
<name>IHealth</name>
<instance>default</instance>
</interface>
</hal>
<hal format="aidl">
<name>com.google.input</name>
<interface>
<name>ITouchContextService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>hardware.google.bluetooth.bt_channel_avoidance</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IBTChannelAvoidance</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>hardware.google.bluetooth.sar</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>IBluetoothSar</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>hardware.google.bluetooth.ccc</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IBluetoothCcc</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.google.google_battery</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>IGoogleBattery</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.google.whitechapel.audio.audioext</name>
<transport>hwbinder</transport>
<version>2.0</version>
<interface>
<name>IAudioExt</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.google.audiometricext</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IAudioMetricExt</name>
<instance>default</instance>
</interface>
</hal>
<kernel target-level="6"/>
</manifest>

View file

@ -1,183 +0,0 @@
<manifest version="1.0" type="device" target-level="5">
<hal format="hidl">
<name>android.hardware.audio</name>
<transport>hwbinder</transport>
<version>7.0</version>
<interface>
<name>IDevicesFactory</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.audio.effect</name>
<transport>hwbinder</transport>
<version>7.0</version>
<interface>
<name>IEffectsFactory</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.soundtrigger</name>
<transport>hwbinder</transport>
<version>2.3</version>
<interface>
<name>ISoundTriggerHw</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.graphics.allocator</name>
<transport>hwbinder</transport>
<version>4.0</version>
<interface>
<name>IAllocator</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.graphics.mapper</name>
<transport arch="32+64">passthrough</transport>
<version>4.0</version>
<interface>
<name>IMapper</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.graphics.composer</name>
<transport>hwbinder</transport>
<version>2.4</version>
<interface>
<name>IComposer</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.renderscript</name>
<transport arch="32+64">passthrough</transport>
<version>1.0</version>
<interface>
<name>IDevice</name>
<instance>default</instance>
</interface>
</hal>
<hal format = "hidl">
<name>android.hardware.dumpstate</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>IDumpstateDevice</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.bluetooth</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>IBluetoothHci</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.bluetooth.audio</name>
<transport>hwbinder</transport>
<version>2.1</version>
<interface>
<name>IBluetoothAudioProvidersFactory</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.boot</name>
<transport>hwbinder</transport>
<fqname>@1.2::IBootControl/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.neuralnetworks</name>
<transport>hwbinder</transport>
<version>1.3</version>
<interface>
<name>IDevice</name>
<instance>google-armnn</instance>
</interface>
<fqname>@1.3::IDevice/google-armnn</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.neuralnetworks</name>
<transport>hwbinder</transport>
<fqname>@1.3::IDevice/google-edgetpu</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.health</name>
<transport>hwbinder</transport>
<version>2.1</version>
<interface>
<name>IHealth</name>
<instance>default</instance>
</interface>
</hal>
<hal format="aidl">
<name>com.google.input</name>
<interface>
<name>ITouchContextService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>hardware.google.bluetooth.bt_channel_avoidance</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IBTChannelAvoidance</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>hardware.google.bluetooth.sar</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>IBluetoothSar</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>hardware.google.bluetooth.ccc</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IBluetoothCcc</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.google.google_battery</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>IGoogleBattery</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.google.whitechapel.audio.audioext</name>
<transport>hwbinder</transport>
<version>2.0</version>
<interface>
<name>IAudioExt</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.google.audiometricext</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IAudioMetricExt</name>
<instance>default</instance>
</interface>
</hal>
<kernel target-level="6"/>
</manifest>

View file

@ -142,6 +142,7 @@
<Limit name="performance-point-3840x2160" range="120" /> <Limit name="performance-point-3840x2160" range="120" />
<Limit name="concurrent-instances" max="16" /> <Limit name="concurrent-instances" max="16" />
<Feature name="can-swap-width-height" value="1" /> <Feature name="can-swap-width-height" value="1" />
<Feature name="qp-bounds"/>
</MediaCodec> </MediaCodec>
<MediaCodec name="c2.exynos.hevc.encoder" type="video/hevc" > <MediaCodec name="c2.exynos.hevc.encoder" type="video/hevc" >
<Limit name="size" min="64x64" max="3840x2176" /> <Limit name="size" min="64x64" max="3840x2176" />
@ -153,6 +154,7 @@
<Limit name="performance-point-3840x2160" range="120" /> <Limit name="performance-point-3840x2160" range="120" />
<Limit name="concurrent-instances" max="16" /> <Limit name="concurrent-instances" max="16" />
<Feature name="can-swap-width-height" value="1" /> <Feature name="can-swap-width-height" value="1" />
<Feature name="qp-bounds"/>
</MediaCodec> </MediaCodec>
<MediaCodec name="c2.exynos.mpeg4.encoder" type="video/mp4v-es"> <MediaCodec name="c2.exynos.mpeg4.encoder" type="video/mp4v-es">
<Limit name="size" min="32x32" max="2048x2048" /> <Limit name="size" min="32x32" max="2048x2048" />
@ -164,6 +166,7 @@
<Limit name="performance-point-1920x1080" range="120" /> <Limit name="performance-point-1920x1080" range="120" />
<Limit name="concurrent-instances" max="16" /> <Limit name="concurrent-instances" max="16" />
<Feature name="can-swap-width-height" value="1" /> <Feature name="can-swap-width-height" value="1" />
<Feature name="qp-bounds"/>
</MediaCodec> </MediaCodec>
<MediaCodec name="c2.exynos.h263.encoder" type="video/3gpp"> <MediaCodec name="c2.exynos.h263.encoder" type="video/3gpp">
<Limit name="size" min="32x32" max="2048x1152" /> <Limit name="size" min="32x32" max="2048x1152" />
@ -174,6 +177,7 @@
<Limit name="bitrate" range="1-80000000" /> <Limit name="bitrate" range="1-80000000" />
<Limit name="performance-point-1920x1080" range="120" /> <Limit name="performance-point-1920x1080" range="120" />
<Limit name="concurrent-instances" max="16" /> <Limit name="concurrent-instances" max="16" />
<Feature name="qp-bounds"/>
</MediaCodec> </MediaCodec>
<MediaCodec name="c2.exynos.vp8.encoder" type="video/x-vnd.on2.vp8" > <MediaCodec name="c2.exynos.vp8.encoder" type="video/x-vnd.on2.vp8" >
<Limit name="size" min="32x32" max="3840x2160" /> <Limit name="size" min="32x32" max="3840x2160" />
@ -185,6 +189,7 @@
<Limit name="performance-point-3840x2160" range="120" /> <Limit name="performance-point-3840x2160" range="120" />
<Limit name="concurrent-instances" max="16" /> <Limit name="concurrent-instances" max="16" />
<Feature name="can-swap-width-height" value="1" /> <Feature name="can-swap-width-height" value="1" />
<Feature name="qp-bounds"/>
</MediaCodec> </MediaCodec>
<MediaCodec name="c2.exynos.vp9.encoder" type="video/x-vnd.on2.vp9" > <MediaCodec name="c2.exynos.vp9.encoder" type="video/x-vnd.on2.vp9" >
<Limit name="size" min="64x64" max="3840x2176" /> <Limit name="size" min="64x64" max="3840x2176" />
@ -196,6 +201,7 @@
<Limit name="performance-point-3840x2160" range="120" /> <Limit name="performance-point-3840x2160" range="120" />
<Limit name="concurrent-instances" max="16" /> <Limit name="concurrent-instances" max="16" />
<Feature name="can-swap-width-height" value="1" /> <Feature name="can-swap-width-height" value="1" />
<Feature name="qp-bounds"/>
</MediaCodec> </MediaCodec>
</Encoders> </Encoders>
</MediaCodecs> </MediaCodecs>

View file

@ -257,15 +257,19 @@
<!-- measured 90%:28-30 med:29 N=2 --> <!-- measured 90%:28-30 med:29 N=2 -->
<Limit name="measured-frame-rate-1920x1080" range="28-29" /> <!-- v90%=1.0 --> <Limit name="measured-frame-rate-1920x1080" range="28-29" /> <!-- v90%=1.0 -->
</MediaCodec> </MediaCodec>
<MediaCodec name="c2.android.hevc.encoder" type="video/hevc" update="true">
<!-- measured 90%:61-65 med:62 N=8 -->
<Limit name="measured-frame-rate-320x240" range="18-22" /> <!-- v90%=1.0 -->
</MediaCodec>
<MediaCodec name="c2.android.mpeg4.encoder" type="video/mp4v-es" update="true"> <MediaCodec name="c2.android.mpeg4.encoder" type="video/mp4v-es" update="true">
<!-- measured 90%:461-471 med:462 N=2 --> <!-- measured 90%:461-471 med:462 N=2 -->
<Limit name="measured-frame-rate-176x144" range="461-466" /> <!-- v90%=1.0 --> <Limit name="measured-frame-rate-176x144" range="461-466" /> <!-- v90%=1.0 -->
</MediaCodec> </MediaCodec>
<MediaCodec name="c2.android.vp8.encoder" type="video/x-vnd.on2.vp8" update="true"> <MediaCodec name="c2.android.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
<!-- measured 90%:49-87 med:50 SLOW N=2 --> <!-- measured 90%:49-87 med:50 SLOW N=2 -->
<Limit name="measured-frame-rate-320x180" range="49-66" /> <!-- v90%=1.3 --> <Limit name="measured-frame-rate-320x180" range="394-395" /> <!-- v90%=1.3 -->
<!-- measured 90%:55-57 med:56 N=2 --> <!-- measured 90%:55-57 med:56 N=2 -->
<Limit name="measured-frame-rate-640x360" range="55-56" /> <!-- v90%=1.0 --> <Limit name="measured-frame-rate-640x360" range="196-197" /> <!-- v90%=1.0 -->
<!-- measured 90%:34-35 med:34 N=2 --> <!-- measured 90%:34-35 med:34 N=2 -->
<Limit name="measured-frame-rate-1280x720" range="34-34" /> <!-- v90%=1.0 --> <Limit name="measured-frame-rate-1280x720" range="34-34" /> <!-- v90%=1.0 -->
<!-- measured 90%:29-31 med:30 N=2 --> <!-- measured 90%:29-31 med:30 N=2 -->

View file

@ -34,12 +34,6 @@
<!-- Maximum number of supported users --> <!-- Maximum number of supported users -->
<integer name="config_multiuserMaximumUsers">4</integer> <integer name="config_multiuserMaximumUsers">4</integer>
<!-- Boolean indicating if current platform supports HFP inband ringing -->
<bool name="config_bluetooth_hfp_inband_ringing_support">true</bool>
<!-- Whether Hearing Aid profile is supported -->
<bool name="config_hearing_aid_profile_supported">true</bool>
<!-- Boolean indicating whether the wifi chipset has dual frequency band support --> <!-- Boolean indicating whether the wifi chipset has dual frequency band support -->
<bool translatable="false" name="config_wifi_dual_band_support">true</bool> <bool translatable="false" name="config_wifi_dual_band_support">true</bool>
@ -146,7 +140,6 @@
<string name="config_wlan_data_service_package">com.google.android.iwlan</string> <string name="config_wlan_data_service_package">com.google.android.iwlan</string>
<string name="config_wlan_network_service_package">com.google.android.iwlan</string> <string name="config_wlan_network_service_package">com.google.android.iwlan</string>
<bool name="config_wlan_data_service_conn_persistence_on_restart">false</bool> <bool name="config_wlan_data_service_conn_persistence_on_restart">false</bool>
<string name="config_qualified_networks_service_package">com.shannon.qualifiednetworksservice</string>
<!-- Boolean indicating USSD over IMS is allowed. <!-- Boolean indicating USSD over IMS is allowed.
If it is not supported due to modem limitations, USSD send over the CS pipe instead.--> If it is not supported due to modem limitations, USSD send over the CS pipe instead.-->
@ -161,6 +154,11 @@
<!-- Flag specifying whether WFC over IMS is availasble on device --> <!-- Flag specifying whether WFC over IMS is availasble on device -->
<bool name="config_device_wfc_ims_available">true</bool> <bool name="config_device_wfc_ims_available">true</bool>
<!-- An integer representing a timeout value in milliseconds that will be used to delay a
radio power off command until IMS deregistration completes. If 0, this feature is disabled
and there will be no delay. -->
<integer name="config_delay_for_ims_dereg_millis">3000</integer>
<!-- Whether the new Auto Selection Network UI should be shown --> <!-- Whether the new Auto Selection Network UI should be shown -->
<bool name="config_enableNewAutoSelectNetworkUI">true</bool> <bool name="config_enableNewAutoSelectNetworkUI">true</bool>
@ -241,9 +239,9 @@
<string-array translatable="false" name="config_defaultPinnerServiceFiles"> <string-array translatable="false" name="config_defaultPinnerServiceFiles">
<item>"/apex/com.android.art/javalib/core-oj.jar"</item> <item>"/apex/com.android.art/javalib/core-oj.jar"</item>
<item>"/apex/com.android.art/javalib/core-libart.jar"</item> <item>"/apex/com.android.art/javalib/core-libart.jar"</item>
<item>"/apex/com.android.media/javalib/updatable-media.jar"</item>
<item>"/system/framework/framework.jar"</item> <item>"/system/framework/framework.jar"</item>
<item>"/system/framework/services.jar"</item> <item>"/system/framework/services.jar"</item>
<item>"/system/bin/surfaceflinger"</item>
<item>"/system_ext/priv-app/SystemUIGoogle/SystemUIGoogle.apk"</item> <item>"/system_ext/priv-app/SystemUIGoogle/SystemUIGoogle.apk"</item>
</string-array> </string-array>
@ -279,4 +277,19 @@
manually by the user. Off by default, since the expected haptic feedback may not be manually by the user. Off by default, since the expected haptic feedback may not be
available on some devices. --> available on some devices. -->
<bool name="config_enableHapticTextHandle">true</bool> <bool name="config_enableHapticTextHandle">true</bool>
<!-- Configure tcp buffer sizes in the form:
rmem_min,rmem_def,rmem_max,wmem_min,wmem_def,wmem_max
If this is configured as an empty string, the system default will be applied.
For now this config is used by mobile data only. In the future it should be
used by Wi-Fi as well.
Note that starting from Android 13, the TCP buffer size is fixed after boot up, and should
never be changed based on carriers or the network types. The value should be configured
appropriately based on the device's memory and performance. It is recommended to use lower
values if the device has low memory or doesn't support high-speed network such like LTE,
NR, or Wifi.
-->
<string name="config_tcp_buffers" translatable="false">2097152,6291456,16777216,512000,2097152,8388608</string>
</resources> </resources>

View file

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
* Copyright (c) 2022, The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-->
<resources>
<!-- for 20dp of padding at 3.5px/dp at default density -->
<dimen name="rounded_corner_content_padding">70px</dimen>
</resources>

View file

@ -16,9 +16,6 @@
*/ */
--> -->
<resources> <resources>
<!-- for 20dp of padding at 3.5px/dp at default density -->
<dimen name="rounded_corner_content_padding">70px</dimen>
<!-- the padding on the top of the statusbar (usually 0) --> <!-- the padding on the top of the statusbar (usually 0) -->
<dimen name="status_bar_padding_top">1dp</dimen> <dimen name="status_bar_padding_top">1dp</dimen>

View file

@ -131,6 +131,25 @@
"DefaultIndex": 0, "DefaultIndex": 0,
"ResetOnInit": true "ResetOnInit": true
}, },
{
"Name": "SFUClampBoost",
"Path": "/sys/kernel/vendor_sched/sf_uclamp_min",
"Values": [
"65",
"30"
],
"ResetOnInit": true
},
{
"Name": "MLUclampBoost",
"Path": "/sys/kernel/vendor_sched/nnapi_uclamp_min",
"Values": [
"154",
"512"
],
"DefaultIndex": 0,
"ResetOnInit": true
},
{ {
"Name": "CDPreferIdle", "Name": "CDPreferIdle",
"Path": "/sys/kernel/vendor_sched/cam_prefer_idle", "Path": "/sys/kernel/vendor_sched/cam_prefer_idle",
@ -212,15 +231,6 @@
], ],
"ResetOnInit": true "ResetOnInit": true
}, },
{
"Name": "HighCapacityStartCpu",
"Path": "/sys/kernel/vendor_sched/high_capacity_start_cpu",
"Values": [
"4",
"6"
],
"ResetOnInit": true
},
{ {
"Name": "DisplayWakeup", "Name": "DisplayWakeup",
"Path": "/sys/devices/platform/1c240000.drmdecon/early_wakeup", "Path": "/sys/devices/platform/1c240000.drmdecon/early_wakeup",
@ -273,6 +283,12 @@
"Type": "EndHint", "Type": "EndHint",
"Value": "DISABLE_TA_BOOST" "Value": "DISABLE_TA_BOOST"
}, },
{
"PowerHint": "INTERACTION",
"Node": "SFUClampBoost",
"Duration": 5000,
"Value": "65"
},
{ {
"PowerHint": "INTERACTION", "PowerHint": "INTERACTION",
"Node": "CPUBigClusterMinFreq", "Node": "CPUBigClusterMinFreq",
@ -662,12 +678,6 @@
"Duration": 0, "Duration": 0,
"Value": "1" "Value": "1"
}, },
{
"PowerHint": "CAMERA_STREAMING_EXTREME",
"Node": "HighCapacityStartCpu",
"Duration": 0,
"Value": "4"
},
{ {
"PowerHint": "CAMERA_STREAMING_EXTREME", "PowerHint": "CAMERA_STREAMING_EXTREME",
"Node": "GPUMinFreq", "Node": "GPUMinFreq",
@ -740,12 +750,6 @@
"Duration": 0, "Duration": 0,
"Value": "1" "Value": "1"
}, },
{
"PowerHint": "CAMERA_STREAMING_HIGH",
"Node": "HighCapacityStartCpu",
"Duration": 0,
"Value": "4"
},
{ {
"PowerHint": "CAMERA_STREAMING_HIGH", "PowerHint": "CAMERA_STREAMING_HIGH",
"Node": "CPULittleClusterMaxFreq", "Node": "CPULittleClusterMaxFreq",
@ -884,12 +888,6 @@
"Duration": 0, "Duration": 0,
"Value": "0" "Value": "0"
}, },
{
"PowerHint": "CAMERA_STREAMING_LOW",
"Node": "HighCapacityStartCpu",
"Duration": 0,
"Value": "4"
},
{ {
"PowerHint": "CAMERA_STREAMING_LOW", "PowerHint": "CAMERA_STREAMING_LOW",
"Node": "CPUBigClusterMaxFreq", "Node": "CPUBigClusterMaxFreq",
@ -1053,6 +1051,18 @@
"Node": "GPUMinFreq", "Node": "GPUMinFreq",
"Duration": 0, "Duration": 0,
"Value": "400000" "Value": "400000"
},
{
"PowerHint": "FP_BOOST",
"Node": "CPUBigClusterMaxFreq",
"Duration": 1000,
"Value": "9999999"
},
{
"PowerHint": "FP_BOOST",
"Node": "CPUBigClusterMinFreq",
"Duration": 1000,
"Value": "9999999"
} }
] ]
} }

View file

@ -1,384 +0,0 @@
{
"Nodes": [
{
"Name": "CPULittleClusterMaxFreq",
"Path": "/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq",
"Values": [
"9999999",
"1197000"
],
"DefaultIndex": 0,
"ResetOnInit": true
},
{
"Name": "CPULittleClusterMinFreq",
"Path": "/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq",
"Values": [
"9999999",
"1197000",
"0"
],
"ResetOnInit": true
},
{
"Name": "CPUBigClusterMaxFreq",
"Path": "/sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq",
"Values": [
"9999999",
"1999000"
],
"DefaultIndex": 0,
"ResetOnInit": true
},
{
"Name": "CPUBigClusterMinFreq",
"Path": "/sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq",
"Values": [
"9999999",
"1197000",
"0"
],
"ResetOnInit": true
},
{
"Name": "GPUMinFreq",
"Path": "/sys/devices/platform/28000000.mali/hint_min_freq",
"Values": [
"151000",
"302000",
"510000",
"572000",
"762000"
],
"DefaultIndex": 0,
"ResetOnInit": true
},
{
"Name": "TAUClampBoost",
"Path": "/sys/kernel/vendor_sched/ta_uclamp_min",
"Values": [
"0",
"410",
"308",
"205",
"103"
],
"DefaultIndex": 0,
"ResetOnInit": true
},
{
"Name": "UfsClkGateEnable",
"Path": "/dev/sys/block/bootdevice/clkgate_enable",
"Values": [
"0",
"1"
],
"ResetOnInit": true
},
{
"Name": "F2fsRecessModeEnable",
"Path": "/dev/sys/fs/by-name/userdata/gc_urgent",
"Values": [
"2",
"0"
],
"ResetOnInit": true
},
{
"Name": "DisplayWakeup",
"Path": "/sys/devices/platform/1c240000.drmdecon/early_wakeup",
"Values": [
"1",
"0"
]
},
{
"Name": "PowerHALRenderingState",
"Path": "vendor.powerhal.rendering",
"Values": [
"EXPENSIVE_RENDERING",
""
],
"Type": "Property"
}
],
"Actions": [
{
"PowerHint": "INTERACTION",
"Type": "EndHint",
"Value": "DISABLE_TA_BOOST"
},
{
"PowerHint": "INTERACTION",
"Node": "CPUBigClusterMinFreq",
"Duration": 6000,
"Value": "1197000"
},
{
"PowerHint": "INTERACTION",
"Node": "CPULittleClusterMinFreq",
"Duration": 6000,
"Value": "1197000"
},
{
"PowerHint": "INTERACTION",
"Type": "DoHint",
"Value": "INTERACTION_120"
},
{
"PowerHint": "INTERACTION",
"Type": "DoHint",
"Value": "INTERACTION_90"
},
{
"PowerHint": "INTERACTION",
"Type": "DoHint",
"Value": "INTERACTION_60"
},
{
"PowerHint": "INTERACTION_120",
"Node": "TAUClampBoost",
"Duration": 6000,
"Value": "410"
},
{
"PowerHint": "INTERACTION_90",
"Node": "TAUClampBoost",
"Duration": 6000,
"Value": "308"
},
{
"PowerHint": "INTERACTION_60",
"Node": "TAUClampBoost",
"Duration": 6000,
"Value": "205"
},
{
"PowerHint": "REFRESH_120FPS",
"Type": "MaskHint",
"Value": "INTERACTION_60"
},
{
"PowerHint": "REFRESH_120FPS",
"Type": "MaskHint",
"Value": "INTERACTION_90"
},
{
"PowerHint": "REFRESH_90FPS",
"Type": "MaskHint",
"Value": "INTERACTION_60"
},
{
"PowerHint": "REFRESH_90FPS",
"Type": "MaskHint",
"Value": "INTERACTION_120"
},
{
"PowerHint": "REFRESH_60FPS",
"Type": "MaskHint",
"Value": "INTERACTION_90"
},
{
"PowerHint": "REFRESH_60FPS",
"Type": "MaskHint",
"Value": "INTERACTION_120"
},
{
"PowerHint": "DISPLAY_IDLE",
"Type": "EndHint",
"Value": "INTERACTION_120"
},
{
"PowerHint": "DISPLAY_IDLE",
"Type": "EndHint",
"Value": "INTERACTION_90"
},
{
"PowerHint": "DISPLAY_IDLE",
"Type": "EndHint",
"Value": "INTERACTION_60"
},
{
"PowerHint": "INTERACTION",
"Node": "UfsClkGateEnable",
"Duration": 200,
"Value": "0"
},
{
"PowerHint": "DEVICE_IDLE",
"Node": "F2fsRecessModeEnable",
"Duration": 0,
"Value": "2"
},
{
"PowerHint": "LAUNCH",
"Type": "EndHint",
"Value": "DISABLE_TA_BOOST"
},
{
"PowerHint": "LAUNCH",
"Node": "CPUBigClusterMaxFreq",
"Duration": 5000,
"Value": "9999999"
},
{
"PowerHint": "LAUNCH",
"Node": "CPUBigClusterMinFreq",
"Duration": 5000,
"Value": "9999999"
},
{
"PowerHint": "LAUNCH",
"Node": "CPULittleClusterMaxFreq",
"Duration": 5000,
"Value": "9999999"
},
{
"PowerHint": "LAUNCH",
"Node": "CPULittleClusterMinFreq",
"Duration": 5000,
"Value": "9999999"
},
{
"PowerHint": "LAUNCH",
"Node": "TAUClampBoost",
"Duration": 5000,
"Value": "308"
},
{
"PowerHint": "LAUNCH",
"Node": "UfsClkGateEnable",
"Duration": 5000,
"Value": "0"
},
{
"PowerHint": "DISPLAY_INACTIVE",
"Node": "F2fsRecessModeEnable",
"Duration": 0,
"Value": "2"
},
{
"PowerHint": "CAMERA_LAUNCH",
"Node": "CPUBigClusterMaxFreq",
"Duration": 1000,
"Value": "9999999"
},
{
"PowerHint": "CAMERA_LAUNCH",
"Node": "CPUBigClusterMinFreq",
"Duration": 1000,
"Value": "9999999"
},
{
"PowerHint": "CAMERA_LAUNCH",
"Node": "CPULittleClusterMaxFreq",
"Duration": 1000,
"Value": "9999999"
},
{
"PowerHint": "CAMERA_LAUNCH",
"Node": "CPULittleClusterMinFreq",
"Duration": 1000,
"Value": "9999999"
},
{
"PowerHint": "CAMERA_LAUNCH",
"Node": "UfsClkGateEnable",
"Duration": 1000,
"Value": "0"
},
{
"PowerHint": "CAMERA_STREAMING_STANDARD",
"Node": "CPUBigClusterMaxFreq",
"Duration": 0,
"Value": "1999000"
},
{
"PowerHint": "CAMERA_STREAMING_STANDARD",
"Node": "GPUMinFreq",
"Duration": 0,
"Value": "762000"
},
{
"PowerHint": "FIXED_PERFORMANCE",
"Node": "CPUBigClusterMaxFreq",
"Duration": 0,
"Value": "9999999"
},
{
"PowerHint": "FIXED_PERFORMANCE",
"Node": "CPUBigClusterMinFreq",
"Duration": 0,
"Value": "9999999"
},
{
"PowerHint": "FIXED_PERFORMANCE",
"Node": "CPULittleClusterMaxFreq",
"Duration": 0,
"Value": "9999999"
},
{
"PowerHint": "FIXED_PERFORMANCE",
"Node": "CPULittleClusterMinFreq",
"Duration": 0,
"Value": "9999999"
},
{
"PowerHint": "EXPENSIVE_RENDERING",
"Node": "PowerHALRenderingState",
"Duration": 0,
"Value": "EXPENSIVE_RENDERING"
},
{
"PowerHint": "EXPENSIVE_RENDERING",
"Node": "GPUMinFreq",
"Duration": 0,
"Value": "510000"
},
{
"PowerHint": "REFRESH_120FPS",
"Node": "TAUClampBoost",
"Duration": 0,
"Value": "308"
},
{
"PowerHint": "REFRESH_90FPS",
"Node": "TAUClampBoost",
"Duration": 0,
"Value": "205"
},
{
"PowerHint": "REFRESH_60FPS",
"Node": "TAUClampBoost",
"Duration": 0,
"Value": "103"
},
{
"PowerHint": "DISABLE_TA_BOOST",
"Node": "TAUClampBoost",
"Duration": 0,
"Value": "0"
},
{
"PowerHint": "DISPLAY_IDLE",
"Type": "DoHint",
"Value": "DISABLE_TA_BOOST"
},
{
"PowerHint": "DISPLAY_IDLE",
"Type": "EndHint",
"Value": "DISPLAY_UPDATE_IMMINENT"
},
{
"PowerHint": "DISPLAY_UPDATE_IMMINENT",
"Type": "EndHint",
"Value": "DISABLE_TA_BOOST"
},
{
"PowerHint": "DISPLAY_UPDATE_IMMINENT",
"Node": "DisplayWakeup",
"Duration": 50,
"Value": "1"
}
]
}

View file

@ -1,444 +0,0 @@
{
"Nodes": [
{
"Name": "CPULittleClusterMaxFreq",
"Path": "/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq",
"Values": [
"9999999",
"1197000"
],
"DefaultIndex": 0,
"ResetOnInit": true
},
{
"Name": "CPULittleClusterMinFreq",
"Path": "/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq",
"Values": [
"9999999",
"1197000",
"0"
],
"ResetOnInit": true
},
{
"Name": "CPUMidClusterMaxFreq",
"Path": "/sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq",
"Values": [
"9999999",
"1999000"
],
"DefaultIndex": 0,
"ResetOnInit": true
},
{
"Name": "CPUMidClusterMinFreq",
"Path": "/sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq",
"Values": [
"9999999",
"1197000",
"0"
],
"ResetOnInit": true
},
{
"Name": "CPUBigClusterMaxFreq",
"Path": "/sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq",
"Values": [
"9999999",
"1999000"
],
"DefaultIndex": 0,
"ResetOnInit": true
},
{
"Name": "CPUBigClusterMinFreq",
"Path": "/sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq",
"Values": [
"9999999",
"1106000",
"0"
],
"ResetOnInit": true
},
{
"Name": "GPUMinFreq",
"Path": "/sys/devices/platform/28000000.mali/hint_min_freq",
"Values": [
"151000",
"302000",
"510000",
"572000",
"762000"
],
"DefaultIndex": 0,
"ResetOnInit": true
},
{
"Name": "TAUClampBoost",
"Path": "/sys/kernel/vendor_sched/ta_uclamp_min",
"Values": [
"0",
"410",
"308",
"205",
"103"
],
"DefaultIndex": 0,
"ResetOnInit": true
},
{
"Name": "UfsClkGateEnable",
"Path": "/dev/sys/block/bootdevice/clkgate_enable",
"Values": [
"0",
"1"
],
"ResetOnInit": true
},
{
"Name": "F2fsRecessModeEnable",
"Path": "/dev/sys/fs/by-name/userdata/gc_urgent",
"Values": [
"2",
"0"
],
"ResetOnInit": true
},
{
"Name": "DisplayWakeup",
"Path": "/sys/devices/platform/1c240000.drmdecon/early_wakeup",
"Values": [
"1",
"0"
]
},
{
"Name": "LimitFlashCurrent",
"Path": "vendor.camera.max_flash_current",
"Values": [
"100",
"1500"
],
"ResetOnInit": true,
"Type": "Property"
},
{
"Name": "PowerHALRenderingState",
"Path": "vendor.powerhal.rendering",
"Values": [
"EXPENSIVE_RENDERING",
""
],
"Type": "Property"
}
],
"Actions": [
{
"PowerHint": "INTERACTION",
"Type": "EndHint",
"Value": "DISABLE_TA_BOOST"
},
{
"PowerHint": "INTERACTION",
"Node": "CPUBigClusterMinFreq",
"Duration": 6000,
"Value": "1106000"
},
{
"PowerHint": "INTERACTION",
"Node": "CPUMidClusterMinFreq",
"Duration": 6000,
"Value": "1197000"
},
{
"PowerHint": "INTERACTION",
"Node": "CPULittleClusterMinFreq",
"Duration": 6000,
"Value": "1197000"
},
{
"PowerHint": "INTERACTION",
"Type": "DoHint",
"Value": "INTERACTION_120"
},
{
"PowerHint": "INTERACTION",
"Type": "DoHint",
"Value": "INTERACTION_90"
},
{
"PowerHint": "INTERACTION",
"Type": "DoHint",
"Value": "INTERACTION_60"
},
{
"PowerHint": "INTERACTION_120",
"Node": "TAUClampBoost",
"Duration": 6000,
"Value": "410"
},
{
"PowerHint": "INTERACTION_90",
"Node": "TAUClampBoost",
"Duration": 6000,
"Value": "308"
},
{
"PowerHint": "INTERACTION_60",
"Node": "TAUClampBoost",
"Duration": 6000,
"Value": "205"
},
{
"PowerHint": "REFRESH_120FPS",
"Type": "MaskHint",
"Value": "INTERACTION_60"
},
{
"PowerHint": "REFRESH_120FPS",
"Type": "MaskHint",
"Value": "INTERACTION_90"
},
{
"PowerHint": "REFRESH_90FPS",
"Type": "MaskHint",
"Value": "INTERACTION_60"
},
{
"PowerHint": "REFRESH_90FPS",
"Type": "MaskHint",
"Value": "INTERACTION_120"
},
{
"PowerHint": "REFRESH_60FPS",
"Type": "MaskHint",
"Value": "INTERACTION_90"
},
{
"PowerHint": "REFRESH_60FPS",
"Type": "MaskHint",
"Value": "INTERACTION_120"
},
{
"PowerHint": "DISPLAY_IDLE",
"Type": "EndHint",
"Value": "INTERACTION_120"
},
{
"PowerHint": "DISPLAY_IDLE",
"Type": "EndHint",
"Value": "INTERACTION_90"
},
{
"PowerHint": "DISPLAY_IDLE",
"Type": "EndHint",
"Value": "INTERACTION_60"
},
{
"PowerHint": "INTERACTION",
"Node": "UfsClkGateEnable",
"Duration": 200,
"Value": "0"
},
{
"PowerHint": "DEVICE_IDLE",
"Node": "F2fsRecessModeEnable",
"Duration": 0,
"Value": "2"
},
{
"PowerHint": "LAUNCH",
"Type": "EndHint",
"Value": "DISABLE_TA_BOOST"
},
{
"PowerHint": "LAUNCH",
"Node": "CPUMidClusterMaxFreq",
"Duration": 5000,
"Value": "9999999"
},
{
"PowerHint": "LAUNCH",
"Node": "CPUMidClusterMinFreq",
"Duration": 5000,
"Value": "9999999"
},
{
"PowerHint": "LAUNCH",
"Node": "CPULittleClusterMaxFreq",
"Duration": 5000,
"Value": "9999999"
},
{
"PowerHint": "LAUNCH",
"Node": "CPULittleClusterMinFreq",
"Duration": 5000,
"Value": "9999999"
},
{
"PowerHint": "LAUNCH",
"Node": "TAUClampBoost",
"Duration": 5000,
"Value": "308"
},
{
"PowerHint": "LAUNCH",
"Node": "UfsClkGateEnable",
"Duration": 5000,
"Value": "0"
},
{
"PowerHint": "DISPLAY_INACTIVE",
"Node": "F2fsRecessModeEnable",
"Duration": 0,
"Value": "2"
},
{
"PowerHint": "CAMERA_LAUNCH",
"Node": "CPUBigClusterMaxFreq",
"Duration": 1000,
"Value": "9999999"
},
{
"PowerHint": "CAMERA_LAUNCH",
"Node": "CPUBigClusterMinFreq",
"Duration": 1000,
"Value": "9999999"
},
{
"PowerHint": "CAMERA_LAUNCH",
"Node": "CPULittleClusterMaxFreq",
"Duration": 1000,
"Value": "9999999"
},
{
"PowerHint": "CAMERA_LAUNCH",
"Node": "CPULittleClusterMinFreq",
"Duration": 1000,
"Value": "9999999"
},
{
"PowerHint": "CAMERA_LAUNCH",
"Node": "UfsClkGateEnable",
"Duration": 1000,
"Value": "0"
},
{
"PowerHint": "CAMERA_STREAMING_STANDARD",
"Node": "CPUBigClusterMaxFreq",
"Duration": 0,
"Value": "1999000"
},
{
"PowerHint": "CAMERA_STREAMING_STANDARD",
"Node": "GPUMinFreq",
"Duration": 0,
"Value": "762000"
},
{
"PowerHint": "FIXED_PERFORMANCE",
"Node": "CPUBigClusterMaxFreq",
"Duration": 0,
"Value": "9999999"
},
{
"PowerHint": "FIXED_PERFORMANCE",
"Node": "CPUBigClusterMinFreq",
"Duration": 0,
"Value": "9999999"
},
{
"PowerHint": "FIXED_PERFORMANCE",
"Node": "CPUMidClusterMaxFreq",
"Duration": 0,
"Value": "9999999"
},
{
"PowerHint": "FIXED_PERFORMANCE",
"Node": "CPUMidClusterMinFreq",
"Duration": 0,
"Value": "9999999"
},
{
"PowerHint": "FIXED_PERFORMANCE",
"Node": "CPULittleClusterMaxFreq",
"Duration": 0,
"Value": "9999999"
},
{
"PowerHint": "FIXED_PERFORMANCE",
"Node": "CPULittleClusterMinFreq",
"Duration": 0,
"Value": "9999999"
},
{
"PowerHint": "REFRESH_120FPS",
"Node": "TAUClampBoost",
"Duration": 0,
"Value": "308"
},
{
"PowerHint": "REFRESH_90FPS",
"Node": "TAUClampBoost",
"Duration": 0,
"Value": "205"
},
{
"PowerHint": "REFRESH_60FPS",
"Node": "TAUClampBoost",
"Duration": 0,
"Value": "103"
},
{
"PowerHint": "DISABLE_TA_BOOST",
"Node": "TAUClampBoost",
"Duration": 0,
"Value": "0"
},
{
"PowerHint": "DISPLAY_IDLE",
"Type": "DoHint",
"Value": "DISABLE_TA_BOOST"
},
{
"PowerHint": "DISPLAY_IDLE",
"Type": "EndHint",
"Value": "DISPLAY_UPDATE_IMMINENT"
},
{
"PowerHint": "DISPLAY_UPDATE_IMMINENT",
"Type": "EndHint",
"Value": "DISABLE_TA_BOOST"
},
{
"PowerHint": "DISPLAY_UPDATE_IMMINENT",
"Node": "DisplayWakeup",
"Duration": 50,
"Value": "1"
},
{
"PowerHint": "THERMAL_FLASH_LED_REDUCE_CRITICAL",
"Node": "LimitFlashCurrent",
"Duration": 0,
"Value": "100"
},
{
"PowerHint": "THERMAL_FLASH_LED_REDUCE_NONE",
"Node": "LimitFlashCurrent",
"Duration": 0,
"Value": "1500"
},
{
"PowerHint": "EXPENSIVE_RENDERING",
"Node": "PowerHALRenderingState",
"Duration": 0,
"Value": "EXPENSIVE_RENDERING"
},
{
"PowerHint": "EXPENSIVE_RENDERING",
"Node": "GPUMinFreq",
"Duration": 0,
"Value": "510000"
}
]
}

View file

@ -11,6 +11,14 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and // See the License for the specific language governing permissions and
// limitations under the License. // limitations under the License.
soong_namespace {
imports: [
"hardware/google/pixel",
"device/google/gs-common/powerstats",
],
}
package { package {
// See: http://go/android-license-faq // See: http://go/android-license-faq
// A large-scale-change added 'default_applicable_licenses' to import // A large-scale-change added 'default_applicable_licenses' to import
@ -33,6 +41,7 @@ cc_library {
], ],
shared_libs: [ shared_libs: [
"android.hardware.power.stats-impl.gs-common",
"android.hardware.power.stats-impl.pixel", "android.hardware.power.stats-impl.pixel",
], ],
} }

View file

@ -1,128 +0,0 @@
/*
* Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "AocStateResidencyDataProvider.h"
#include <android-base/logging.h>
namespace aidl {
namespace android {
namespace hardware {
namespace power {
namespace stats {
AocStateResidencyDataProvider::AocStateResidencyDataProvider(std::vector<std::pair<std::string,
std::string>> ids, std::vector<std::pair<std::string, std::string>> states) {
// AoC stats are reported in ticks of 244.140625ns. The transform
// function converts ticks to milliseconds.
// 1000000 / 244.140625 = 4096.
static const uint64_t AOC_CLK = 4096;
std::function<uint64_t(uint64_t)> aocTickToMs = [](uint64_t a) { return a / AOC_CLK; };
GenericStateResidencyDataProvider::StateResidencyConfig config = {
.entryCountSupported = true,
.entryCountPrefix = "Counter:",
.totalTimeSupported = true,
.totalTimePrefix = "Cumulative time:",
.totalTimeTransform = aocTickToMs,
.lastEntrySupported = true,
.lastEntryPrefix = "Time last entered:",
.lastEntryTransform = aocTickToMs,
};
for (const auto &id : ids) {
for (const auto &state : states) {
std::vector<std::pair<std::string, std::string>> aocStateHeaders = {
std::make_pair(state.first, ""),
};
std::vector<GenericStateResidencyDataProvider::PowerEntityConfig> cfgs;
cfgs.emplace_back(generateGenericStateResidencyConfigs(config, aocStateHeaders),
id.first, "");
std::unique_ptr<GenericStateResidencyDataProvider> sdp(
new GenericStateResidencyDataProvider(id.second + state.second, cfgs));
mProviders[id.first].push_back(std::move(sdp));
}
}
}
bool AocStateResidencyDataProvider::getStateResidencies(
std::unordered_map<std::string, std::vector<StateResidency>> *residencies) {
// States from the same power entity are merged.
bool ret = true;
for (const auto &providerList : mProviders) {
int32_t stateId = 0;
std::string curEntity = providerList.first;
std::vector<StateResidency> stateResidencies;
// Iterate over each provider in the providerList, appending each of the states
for (const auto &provider : providerList.second) {
std::unordered_map<std::string, std::vector<StateResidency>> residency;
ret &= provider->getStateResidencies(&residency);
// Each provider should only return data for curEntity but checking anyway
if (residency.find(curEntity) != residency.end()) {
for (auto &r : residency.at(curEntity)) {
/*
* Modifying stateId here because we are stitching together infos from
* multiple GenericStateResidencyDataProviders. stateId must be modified
* to maintain uniqueness for a given entity
*/
r.id = stateId++;
stateResidencies.push_back(r);
}
}
}
residencies->emplace(curEntity, stateResidencies);
}
return ret;
}
std::unordered_map<std::string, std::vector<State>> AocStateResidencyDataProvider::getInfo() {
// States from the same power entity are merged
std::unordered_map<std::string, std::vector<State>> infos;
for (const auto &providerList : mProviders) {
int32_t stateId = 0;
std::string curEntity = providerList.first;
std::vector<State> stateInfos;
// Iterate over each provider in the providerList, appending each of the states
for (const auto &provider : providerList.second) {
std::unordered_map<std::string, std::vector<State>> info = provider->getInfo();
// Each provider should only return data for curEntity but checking anyway
if (info.find(curEntity) != info.end()) {
for (auto &i : info.at(curEntity)) {
/*
* Modifying stateId because we are stitching together infos from
* multiple GenericStateResidencyDataProviders. stateId must be modified
* to maintain uniqueness for a given entity
*/
i.id = stateId++;
stateInfos.push_back(i);
}
}
}
infos.emplace(curEntity, stateInfos);
}
return infos;
}
} // namespace stats
} // namespace power
} // namespace hardware
} // namespace android
} // namespace aidl

View file

@ -1,45 +0,0 @@
/*
* Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include <dataproviders/GenericStateResidencyDataProvider.h>
#include <PowerStatsAidl.h>
namespace aidl {
namespace android {
namespace hardware {
namespace power {
namespace stats {
class AocStateResidencyDataProvider : public PowerStats::IStateResidencyDataProvider {
public:
AocStateResidencyDataProvider(std::vector<std::pair<std::string, std::string>> ids,
std::vector<std::pair<std::string, std::string>> states);
~AocStateResidencyDataProvider() = default;
bool getStateResidencies(
std::unordered_map<std::string, std::vector<StateResidency>> *residencies) override;
std::unordered_map<std::string, std::vector<State>> getInfo() override;
private:
std::unordered_map<std::string /* entity name */,
std::vector<std::unique_ptr<GenericStateResidencyDataProvider>> /* providers */> mProviders;
};
} // namespace stats
} // namespace power
} // namespace hardware
} // namespace android
} // namespace aidl

View file

@ -1,111 +0,0 @@
/*
* Copyright (C) 2021 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "DevfreqStateResidencyDataProvider.h"
#include <android-base/logging.h>
static const std::string nameSuffix = "-DVFS";
static const std::string pathSuffix = "/time_in_state";
namespace aidl {
namespace android {
namespace hardware {
namespace power {
namespace stats {
DevfreqStateResidencyDataProvider::DevfreqStateResidencyDataProvider(const std::string& name,
const std::string& path) : mName(name + nameSuffix), mPath(path + pathSuffix) {}
bool DevfreqStateResidencyDataProvider::extractNum(const char *str, char **str_end, int base,
int64_t* num) {
// errno can be set to any non-zero value by a library function call
// regardless of whether there was an error, so it needs to be cleared
// in order to check the error set by strtoll
errno = 0;
*num = std::strtoll(str, str_end, base);
return (errno != ERANGE);
}
std::vector<std::pair<int64_t, int64_t>> DevfreqStateResidencyDataProvider::parseTimeInState() {
// Using FILE* instead of std::ifstream for performance reasons
std::unique_ptr<FILE, decltype(&fclose)> fp(fopen(mPath.c_str(), "r"), fclose);
if (!fp) {
PLOG(ERROR) << "Failed to open file " << mPath;
return {};
}
std::vector<std::pair<int64_t, int64_t>> timeInState;
char *line = nullptr;
size_t len = 0;
while (getline(&line, &len, fp.get()) != -1) {
char* pEnd;
int64_t frequencyHz, totalTimeMs;
if (!extractNum(line, &pEnd, 10, &frequencyHz) ||
!extractNum(pEnd, &pEnd, 10, &totalTimeMs)) {
PLOG(ERROR) << "Failed to parse " << mPath;
free(line);
return {};
}
timeInState.push_back({frequencyHz, totalTimeMs});
}
free(line);
return timeInState;
}
bool DevfreqStateResidencyDataProvider::getStateResidencies(
std::unordered_map<std::string, std::vector<StateResidency>> *residencies) {
std::vector<std::pair<int64_t, int64_t>> timeInState = parseTimeInState();
if (timeInState.empty()) {
return false;
}
int32_t id = 0;
std::vector<StateResidency> stateResidencies;
for (const auto[frequencyHz, totalTimeMs] : timeInState) {
StateResidency s = {.id = id++, .totalTimeInStateMs = totalTimeMs};
stateResidencies.push_back(s);
}
residencies->emplace(mName, stateResidencies);
return true;
}
std::unordered_map<std::string, std::vector<State>> DevfreqStateResidencyDataProvider::getInfo() {
std::vector<std::pair<int64_t, int64_t>> timeInState = parseTimeInState();
if (timeInState.empty()) {
return {};
}
int32_t id = 0;
std::vector<State> states;
for (const auto[frequencyHz, totalTimeMs] : timeInState) {
State s = {.id = id++, .name = std::to_string(frequencyHz / 1000) + "MHz"};
states.push_back(s);
}
return {{mName, states}};
}
} // namespace stats
} // namespace power
} // namespace hardware
} // namespace android
} // namespace aidl

View file

@ -1,53 +0,0 @@
/*
* Copyright (C) 2021 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include <PowerStatsAidl.h>
namespace aidl {
namespace android {
namespace hardware {
namespace power {
namespace stats {
class DevfreqStateResidencyDataProvider : public PowerStats::IStateResidencyDataProvider {
public:
DevfreqStateResidencyDataProvider(const std::string& name, const std::string& path);
~DevfreqStateResidencyDataProvider() = default;
/*
* See IStateResidencyDataProvider::getStateResidencies
*/
bool getStateResidencies(
std::unordered_map<std::string, std::vector<StateResidency>> *residencies) override;
/*
* See IStateResidencyDataProvider::getInfo
*/
std::unordered_map<std::string, std::vector<State>> getInfo() override;
private:
bool extractNum(const char *str, char **str_end, int base, int64_t* num);
std::vector<std::pair<int64_t, int64_t>> parseTimeInState();
const std::string mName;
const std::string mPath;
};
} // namespace stats
} // namespace power
} // namespace hardware
} // namespace android
} // namespace aidl

View file

@ -1,149 +0,0 @@
/*
* Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "DvfsStateResidencyDataProvider.h"
#include <android-base/logging.h>
#include <android-base/parseint.h>
#include <android-base/strings.h>
#include <string>
#include <utility>
using android::base::ParseUint;
using android::base::Split;
using android::base::StartsWith;
using android::base::Trim;
static const std::string nameSuffix = "-DVFS";
namespace aidl {
namespace android {
namespace hardware {
namespace power {
namespace stats {
DvfsStateResidencyDataProvider::DvfsStateResidencyDataProvider(std::string path, uint64_t clockRate,
std::vector<Config> cfgs)
: mPath(std::move(path)), mClockRate(clockRate), mPowerEntities(std::move(cfgs)) {}
int32_t DvfsStateResidencyDataProvider::matchEntity(char const *line) {
for (int32_t i = 0; i < mPowerEntities.size(); i++) {
if (mPowerEntities[i].powerEntityName == Trim(std::string(line))) {
return i;
}
}
return -1;
}
int32_t DvfsStateResidencyDataProvider::matchState(char const *line, const Config& powerEntity) {
for (int32_t i = 0; i < powerEntity.states.size(); i++) {
if (StartsWith(Trim(std::string(line)), powerEntity.states[i].second)) {
return i;
}
}
return -1;
}
bool DvfsStateResidencyDataProvider::parseState(char const *line, uint64_t *duration,
uint64_t *count) {
std::vector<std::string> parts = Split(line, " ");
if (parts.size() != 7) {
return false;
}
if (!ParseUint(Trim(parts[3]), count)) {
return false;
}
if (!ParseUint(Trim(parts[6]), duration)) {
return false;
}
return true;
}
bool DvfsStateResidencyDataProvider::getStateResidencies(
std::unordered_map<std::string, std::vector<StateResidency>> *residencies) {
std::unique_ptr<FILE, decltype(&fclose)> fp(fopen(mPath.c_str(), "r"), fclose);
if (!fp) {
PLOG(ERROR) << __func__ << ":Failed to open file " << mPath;
return false;
}
for (const Config &powerEntity : mPowerEntities) {
std::vector<StateResidency> stateResidency(powerEntity.states.size());
for (int32_t i = 0; i < stateResidency.size(); i++) {
stateResidency[i].id = i;
}
residencies->emplace(powerEntity.powerEntityName + nameSuffix, stateResidency);
}
size_t len = 0;
char *line = nullptr;
int32_t temp, powerEntityIndex, stateId = -1;
uint64_t duration, count;
auto it = residencies->end();
while (getline(&line, &len, fp.get()) != -1) {
temp = matchEntity(line);
// Assign new index only when a new valid entity is encountered.
if (temp >= 0) {
powerEntityIndex = temp;
it = residencies->find(mPowerEntities[powerEntityIndex].powerEntityName + nameSuffix);
}
if (it != residencies->end()) {
stateId = matchState(line, mPowerEntities[powerEntityIndex]);
if (stateId >= 0) {
if (parseState(line, &duration, &count)) {
it->second[stateId].totalTimeInStateMs =
duration / mClockRate;
it->second[stateId].totalStateEntryCount = count;
} else {
LOG(ERROR) << "Failed to parse duration and count from [" << std::string(line)
<< "]";
return false;
}
}
}
}
free(line);
return true;
}
std::unordered_map<std::string, std::vector<State>> DvfsStateResidencyDataProvider::getInfo() {
std::unordered_map<std::string, std::vector<State>> info;
for (auto const &entity : mPowerEntities) {
std::vector<State> stateInfo(entity.states.size());
int32_t stateId = 0;
for (auto const &state : entity.states) {
stateInfo[stateId] = State{
.id = stateId,
.name = state.first
};
stateId++;
}
info.emplace(entity.powerEntityName + nameSuffix, stateInfo);
}
return info;
}
} // namespace stats
} // namespace power
} // namespace hardware
} // namespace android
} // namespace aidl

View file

@ -1,68 +0,0 @@
/*
* Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include <PowerStatsAidl.h>
namespace aidl {
namespace android {
namespace hardware {
namespace power {
namespace stats {
class DvfsStateResidencyDataProvider : public PowerStats::IStateResidencyDataProvider {
public:
class Config {
public:
// Power entity name to parse.
std::string powerEntityName;
// List of state pairs (name to display, name to parse).
std::vector<std::pair<std::string, std::string>> states;
};
/*
* path - path to dvfs sysfs node.
* clockRate - clock rate in KHz.
*/
DvfsStateResidencyDataProvider(std::string path, uint64_t clockRate, std::vector<Config> cfgs);
~DvfsStateResidencyDataProvider() = default;
/*
* See IStateResidencyDataProvider::getStateResidencies
*/
bool getStateResidencies(
std::unordered_map<std::string, std::vector<StateResidency>> *residencies) override;
/*
* See IStateResidencyDataProvider::getInfo
*/
std::unordered_map<std::string, std::vector<State>> getInfo() override;
private:
int32_t matchEntity(char const *line);
int32_t matchState(char const *line, const Config& powerEntity);
bool parseState(char const *line, uint64_t *duration, uint64_t *count);
const std::string mPath;
const uint64_t mClockRate;
std::vector<Config> mPowerEntities;
};
} // namespace stats
} // namespace power
} // namespace hardware
} // namespace android
} // namespace aidl

View file

@ -16,10 +16,10 @@
#include <PowerStatsAidl.h> #include <PowerStatsAidl.h>
#include <Gs201CommonDataProviders.h> #include <Gs201CommonDataProviders.h>
#include "AocStateResidencyDataProvider.h" #include <AocStateResidencyDataProvider.h>
#include "DevfreqStateResidencyDataProvider.h" #include <DevfreqStateResidencyDataProvider.h>
#include "DvfsStateResidencyDataProvider.h" #include <DvfsStateResidencyDataProvider.h>
#include "UfsStateResidencyDataProvider.h" #include <UfsStateResidencyDataProvider.h>
#include <dataproviders/GenericStateResidencyDataProvider.h> #include <dataproviders/GenericStateResidencyDataProvider.h>
#include <dataproviders/IioEnergyMeterDataProvider.h> #include <dataproviders/IioEnergyMeterDataProvider.h>
#include <dataproviders/PowerStatsEnergyConsumer.h> #include <dataproviders/PowerStatsEnergyConsumer.h>
@ -161,7 +161,13 @@ void addDvfsStats(std::shared_ptr<PowerStats> p) {
}}); }});
cfgs.push_back({"CL0", { cfgs.push_back({"CL0", {
std::make_pair("2024MHz", "2024000"),
std::make_pair("1950MHz", "1950000"),
std::make_pair("1803MHz", "1803000"),
std::make_pair("1704MHz", "1704000"),
std::make_pair("1598MHz", "1598000"), std::make_pair("1598MHz", "1598000"),
std::make_pair("1401MHz", "1401000"),
std::make_pair("1328MHz", "1328000"),
std::make_pair("1197MHz", "1197000"), std::make_pair("1197MHz", "1197000"),
std::make_pair("1098MHz", "1098000"), std::make_pair("1098MHz", "1098000"),
std::make_pair("930MHz", "930000"), std::make_pair("930MHz", "930000"),
@ -172,15 +178,40 @@ void addDvfsStats(std::shared_ptr<PowerStats> p) {
}}); }});
cfgs.push_back({"CL1", { cfgs.push_back({"CL1", {
std::make_pair("2348MHz", "2348000"),
std::make_pair("2253MHz", "2253000"),
std::make_pair("2130MHz", "2130000"),
std::make_pair("1999MHz", "1999000"),
std::make_pair("1836MHz", "1836000"),
std::make_pair("1663MHz", "1663000"),
std::make_pair("1491MHz", "1491000"),
std::make_pair("1328MHz", "1328000"),
std::make_pair("1197MHz", "1197000"),
std::make_pair("1024MHz", "1024000"),
std::make_pair("910MHz", "910000"), std::make_pair("910MHz", "910000"),
std::make_pair("799MHz", "799000"), std::make_pair("799MHz", "799000"),
std::make_pair("696MHz", "696000"), std::make_pair("696MHz", "696000"),
std::make_pair("533MHz", "533000"), std::make_pair("553MHz", "553000"),
std::make_pair("400MHz", "400000"), std::make_pair("400MHz", "400000"),
std::make_pair("0MHz", "0"), std::make_pair("0MHz", "0"),
}}); }});
cfgs.push_back({"CL2", { cfgs.push_back({"CL2", {
std::make_pair("2850MHz", "2850000"),
std::make_pair("2802MHz", "2802000"),
std::make_pair("2704MHz", "2704000"),
std::make_pair("2630MHz", "2630000"),
std::make_pair("2507MHz", "2507000"),
std::make_pair("2401MHz", "2401000"),
std::make_pair("2252MHz", "2252000"),
std::make_pair("2188MHz", "2188000"),
std::make_pair("2048MHz", "2048000"),
std::make_pair("1826MHz", "1826000"),
std::make_pair("1745MHz", "1745000"),
std::make_pair("1582MHz", "1582000"),
std::make_pair("1426MHz", "1426000"),
std::make_pair("1277MHz", "1277000"),
std::make_pair("1106MHz", "1106000"),
std::make_pair("984MHz", "984000"), std::make_pair("984MHz", "984000"),
std::make_pair("851MHz", "851000"), std::make_pair("851MHz", "851000"),
std::make_pair("500MHz", "500000"), std::make_pair("500MHz", "500000"),
@ -376,7 +407,8 @@ void addMobileRadio(std::shared_ptr<PowerStats> p)
"/sys/devices/platform/cpif/modem/power_stats", cfgs)); "/sys/devices/platform/cpif/modem/power_stats", cfgs));
p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterConsumer(p, p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterConsumer(p,
EnergyConsumerType::MOBILE_RADIO, "MODEM", {"VSYS_PWR_MODEM", "VSYS_PWR_RFFE"})); EnergyConsumerType::MOBILE_RADIO, "MODEM",
{"VSYS_PWR_MODEM", "VSYS_PWR_RFFE", "VSYS_PWR_MMWAVE"}));
} }
void addGNSS(std::shared_ptr<PowerStats> p) void addGNSS(std::shared_ptr<PowerStats> p)
@ -533,17 +565,28 @@ void addPowerDomains(std::shared_ptr<PowerStats> p) {
void addDevfreq(std::shared_ptr<PowerStats> p) { void addDevfreq(std::shared_ptr<PowerStats> p) {
p->addStateResidencyDataProvider(std::make_unique<DevfreqStateResidencyDataProvider>( p->addStateResidencyDataProvider(std::make_unique<DevfreqStateResidencyDataProvider>(
"INT", "/sys/devices/platform/17000020.devfreq_int/devfreq/17000020.devfreq_int")); "INT",
"/sys/devices/platform/17000020.devfreq_int/devfreq/17000020.devfreq_int"));
p->addStateResidencyDataProvider(std::make_unique<DevfreqStateResidencyDataProvider>( p->addStateResidencyDataProvider(std::make_unique<DevfreqStateResidencyDataProvider>(
"INTCAM", "INTCAM",
"/sys/devices/platform/17000030.devfreq_intcam/devfreq/17000030.devfreq_intcam")); "/sys/devices/platform/17000030.devfreq_intcam/devfreq/17000030.devfreq_intcam"));
p->addStateResidencyDataProvider(std::make_unique<DevfreqStateResidencyDataProvider>( p->addStateResidencyDataProvider(std::make_unique<DevfreqStateResidencyDataProvider>(
"CAM", "/sys/devices/platform/17000050.devfreq_cam/devfreq/17000050.devfreq_cam")); "DISP",
"/sys/devices/platform/17000040.devfreq_disp/devfreq/17000040.devfreq_disp"));
p->addStateResidencyDataProvider(std::make_unique<DevfreqStateResidencyDataProvider>( p->addStateResidencyDataProvider(std::make_unique<DevfreqStateResidencyDataProvider>(
"TNR", "/sys/devices/platform/17000060.devfreq_tnr/devfreq/17000060.devfreq_tnr")); "CAM",
"/sys/devices/platform/17000050.devfreq_cam/devfreq/17000050.devfreq_cam"));
p->addStateResidencyDataProvider(std::make_unique<DevfreqStateResidencyDataProvider>(
"TNR",
"/sys/devices/platform/17000060.devfreq_tnr/devfreq/17000060.devfreq_tnr"));
p->addStateResidencyDataProvider(std::make_unique<DevfreqStateResidencyDataProvider>(
"MFC",
"/sys/devices/platform/17000070.devfreq_mfc/devfreq/17000070.devfreq_mfc"));
} }
void addTPU(std::shared_ptr<PowerStats> p) { void addTPU(std::shared_ptr<PowerStats> p) {

View file

@ -1,82 +0,0 @@
/*
* Copyright (C) 2021 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "UfsStateResidencyDataProvider.h"
#include <android-base/logging.h>
#include <android-base/parseint.h>
#include <android-base/strings.h>
#include <string>
#include <utility>
using android::base::ParseInt;
using android::base::Split;
using android::base::StartsWith;
using android::base::Trim;
namespace aidl {
namespace android {
namespace hardware {
namespace power {
namespace stats {
const int32_t HIBERNATE_STATE_ID = 0;
const std::string UFS_NAME = "UFS";
UfsStateResidencyDataProvider::UfsStateResidencyDataProvider(std::string prefix) : kPrefix(prefix) {}
bool UfsStateResidencyDataProvider::getStateResidencies(
std::unordered_map<std::string, std::vector<StateResidency>> *residencies) {
StateResidency residency;
residency.id = HIBERNATE_STATE_ID;
// The transform function converts microseconds to milliseconds.
std::function<uint64_t(uint64_t)> usecToMs = [](uint64_t a) { return a / 1000; };
residency.totalTimeInStateMs = usecToMs(readStat(kPrefix + "hibern8_total_us"));
residency.totalStateEntryCount = readStat(kPrefix + "hibern8_exit_cnt");
residency.lastEntryTimestampMs = usecToMs(readStat(kPrefix + "last_hibern8_enter_time"));
residencies->emplace(UFS_NAME, std::vector<StateResidency>{residency});
return true;
}
std::unordered_map<std::string, std::vector<State>> UfsStateResidencyDataProvider::getInfo() {
return {{UFS_NAME, std::vector<State>{{HIBERNATE_STATE_ID, "HIBERN8"}} }};
}
int64_t UfsStateResidencyDataProvider::readStat(std::string path) {
std::unique_ptr<FILE, decltype(&fclose)> fp(fopen(path.c_str(), "r"), fclose);
if (!fp) {
PLOG(ERROR) << __func__ << ":Failed to open file " << path
<< " Error = " << strerror(errno);
return 0;
}
const size_t size = 20;
char buf[size];
(void)fread(&buf, sizeof(char), size, fp.get());
int64_t ret;
if (!ParseInt(Trim(std::string(buf)), &ret)) {
LOG(ERROR) << "Failed to parse int64 from [" << std::string(buf) << "]";
}
return ret;
}
} // namespace stats
} // namespace power
} // namespace hardware
} // namespace android
} // namespace aidl

View file

@ -1,52 +0,0 @@
/*
* Copyright (C) 2021 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include <PowerStatsAidl.h>
namespace aidl {
namespace android {
namespace hardware {
namespace power {
namespace stats {
class UfsStateResidencyDataProvider : public PowerStats::IStateResidencyDataProvider {
public:
UfsStateResidencyDataProvider(std::string prefix);
~UfsStateResidencyDataProvider() = default;
/*
* See IStateResidencyDataProvider::getStateResidencies
*/
bool getStateResidencies(
std::unordered_map<std::string, std::vector<StateResidency>> *residencies) override;
/*
* See IStateResidencyDataProvider::getInfo
*/
std::unordered_map<std::string, std::vector<State>> getInfo() override;
private:
int64_t readStat(std::string path);
const std::string kPrefix;
};
} // namespace stats
} // namespace power
} // namespace hardware
} // namespace android
} // namespace aidl

1
radio/config/default.cfg Normal file
View file

@ -0,0 +1 @@
default.nprf,default_metrics.xml

BIN
radio/config/default.nprf Normal file

Binary file not shown.

View file

@ -0,0 +1,191 @@
<?xml version="1.0" encoding="utf-8"?>
<NODE FILTER="Basic Metrics">
<ITEM NAME="COMMON">
<ITEM NAME="COMMON_BASIC_INFORMATION" VALUE="0x0100" CHECKED="false"></ITEM>
<ITEM NAME="COMMON_CELL_INFORMATION" VALUE="0x0101" CHECKED="false"></ITEM>
<ITEM NAME="COMMON_DATA_INFORMATION" VALUE="0x0102" CHECKED="false"></ITEM>
<ITEM NAME="COMMON_SIG_MSG_INFORMATION" VALUE="0x0103" CHECKED="true"></ITEM>
<ITEM NAME="COMMON_SMS_INFORMATION" VALUE="0x0104" CHECKED="false"></ITEM>
<ITEM NAME="COMMON_HPLMN_TIMER_INFORMATION" VALUE="0x0105" CHECKED="false"></ITEM>
<ITEM NAME="COMMON_SIG_MSG_INFORMATION_MULTI" VALUE="0x0106" CHECKED="true"></ITEM>
<ITEM NAME="NR_RRC_SIGNALING_MESSAGE" VALUE="0x0108" CHECKED="true"></ITEM>
<ITEM NAME="NR_NAS_SIGNALING_MESSAGE" VALUE="0x0109" CHECKED="true"></ITEM>
<ITEM NAME="COMMON_PC5_SIG_MSG" VALUE="0x010A" CHECKED="true"></ITEM>
</ITEM>
<ITEM NAME="LTE">
<ITEM NAME="LTE_PHY_PHY_STATUS_INFO" VALUE="0x0200" CHECKED="false"></ITEM>
<ITEM NAME="LTE_PHY_CELL_SERCH_MEAS_INFO" VALUE="0x0201" CHECKED="false"></ITEM>
<ITEM NAME="LTE_PHY_NCELL_MEAS_INFO" VALUE="0x0202" CHECKED="false"></ITEM>
<ITEM NAME="LTE_PHY_SYSTEM_INF" VALUE="0x0204" CHECKED="false"></ITEM>
<ITEM NAME="LTE_PHY_CHAN_QUAL_INFO" VALUE="0x0205" CHECKED="false"></ITEM>
<ITEM NAME="LTE_PHY_PARAMETER_INFO" VALUE="0x0206" CHECKED="false"></ITEM>
<ITEM NAME="LTE_PHY_PHICH_INFO" VALUE="0x0207" CHECKED="false"></ITEM>
<ITEM NAME="LTE_PHY_THROUGHPUT_INFO" VALUE="0x0208" CHECKED="false"></ITEM>
<ITEM NAME="LTE_PHY_RCVD_SIGNAL_QUALITY_INFO" VALUE="0x0209" CHECKED="false"></ITEM>
<ITEM NAME="LTE_PHY_PHICH_TTIB_INFO" VALUE="0x020A" CHECKED="false"></ITEM>
<ITEM NAME="LTE_PHY_PUSCH_TTIB_INFO" VALUE="0x020B" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L1_RF_INFO" VALUE="0x0210" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L1_SYNC_INFO" VALUE="0x0211" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L1_DOWNLINK_INFO" VALUE="0x0212" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L1_UPLINK_INFO" VALUE="0x0213" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L1_DRX_CONFIG" VALUE="0x0214" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L1_EVENT" VALUE="0x0215" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L1_PUSCH_STATS" VALUE="0x0216" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L1_RACH_ATTEMPT" VALUE="0x0217" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L1_UL_SCHED_STATS" VALUE="0x0218" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L1_SECONDARY_CELL_INFO" VALUE="0x0219" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L1_OTDOA_MEASURE_REPORT_INFO" VALUE="0x021A" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L1_DOWNLINK_INFO2" VALUE="0x021B" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L1_RF_BLACKOUT_TIME" VALUE="0x0220" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L1_SAR_MTPL" VALUE="0x0221" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L1_ANTENNA_SELECTION" VALUE="0x0222" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L2_UL_SPECIFIC_PARAM" VALUE="0x0230" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L2_DL_SCH_CONFIG" VALUE="0x0231" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L2_UL_SCH_CONFIG" VALUE="0x0232" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L2_TIME_ALIGNMENT_TIMER" VALUE="0x0233" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L2_PHR_CONFIG" VALUE="0x0234" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L2_PREAMBLE_INFO" VALUE="0x0235" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L2_POWER_RAMPING_STEP" VALUE="0x0236" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L2_RA_SUPERVISION_INFO" VALUE="0x0237" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L2_MAX_HARQ_MSG3TX" VALUE="0x0238" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L2_RACH_INFO" VALUE="0x0239" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L2_RNTI_INFO" VALUE="0x023A" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L2_RA_FAILURE_INFO" VALUE="0x023B" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L2_UL_SYNC_STAT_INFO" VALUE="0x023C" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L2_D_SR_STATUS" VALUE="0x023D" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L2_BUFFER_STAT_INFO" VALUE="0x023E" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L2_MAC_THROUGHPUT_INFO" VALUE="0x023F" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L2_RLC_INFO" VALUE="0x0240" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L2_RLC_STATUS_INFO" VALUE="0x0241" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L2_UL_PDCP_INFO" VALUE="0x0242" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L2_DL_PDCP_INFO" VALUE="0x0243" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L2_ROHC_CONF_INFO" VALUE="0x0244" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L2_UL_ROHC_INFO" VALUE="0x0245" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L2_DL_ROHC_INFO" VALUE="0x0246" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L2_TTI_BUNDLING" VALUE="0x0247" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L2_MAC_CE" VALUE="0x0248" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L2_TIMER_STATE" VALUE="0x0249" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L2_BSR_STATS" VALUE="0x024A" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L2_RLC_STATS" VALUE="0x024B" CHECKED="false"></ITEM>
<ITEM NAME="LTE_L2_PDCP_STATS" VALUE="0x024C" CHECKED="false"></ITEM>
<ITEM NAME="LTE_RRC_SERVING_CELL_INFO = 0x0250" VALUE="0x0250" CHECKED="false"></ITEM>
<ITEM NAME="LTE_RRC_STATUS_VARIABLE_INFO" VALUE="0x0251" CHECKED="false"></ITEM>
<ITEM NAME="LTE_RRC_PEER_MSG_INFO" VALUE="0x0252" CHECKED="true"></ITEM>
<ITEM NAME="LTE_RRC_TIMER_INFO" VALUE="0x0253" CHECKED="false"></ITEM>
<ITEM NAME="LTE_RRC_PEER_MULTI_MSG_INFO" VALUE="0x0254" CHECKED="true"></ITEM>
<ITEM NAME="LTE_RRC_RACH_MSG_INFO" VALUE="0x0255" CHECKED="false"></ITEM>
<ITEM NAME="LTE_RRC_TIMER_STATE_INFO" VALUE="0x0256" CHECKED="false"></ITEM>
<ITEM NAME="LTE_RRC_EVENT" VALUE="0x0257" CHECKED="false"></ITEM>
<ITEM NAME="LTE_NAS_SIM_DATA_INFO = 0x0258" VALUE="0x0258" CHECKED="false"></ITEM>
<ITEM NAME="LTE_NAS_STATE_VARIABLE_INFO" VALUE="0x0259" CHECKED="false"></ITEM>
<ITEM NAME="LTE_NAS_L3_MM_MSG_INFO" VALUE="0x025A" CHECKED="true"></ITEM>
<ITEM NAME="LTE_NAS_EPS_BEARER_CONTEXT" VALUE="0x025B" CHECKED="false"></ITEM>
<ITEM NAME="LTE_NAS_EPS_BEARER_QOS" VALUE="0x025C" CHECKED="false"></ITEM>
<ITEM NAME="LTE_NAS_PDP_INFO" VALUE="0x025D" CHECKED="false"></ITEM>
<ITEM NAME="LTE_NAS_IP_INFO" VALUE="0x025E" CHECKED="false"></ITEM>
<ITEM NAME="LTE_NAS_L3_SM_MSG_INFO" VALUE="0x025F" CHECKED="true"></ITEM>
<ITEM NAME="LTE_DATA_HANDOVER_STAT_INFO" VALUE="0x0262" CHECKED="false"></ITEM>
<ITEM NAME="LTE_DATA_CALL_DROP_INFO" VALUE="0x0263" CHECKED="false"></ITEM>
<ITEM NAME="LTE_NAS_TIN_INFO" VALUE="0x0264" CHECKED="false"></ITEM>
<ITEM NAME="LTE_NAS_ATTEMPT_INFO" VALUE="0x0265" CHECKED="false"></ITEM>
<ITEM NAME="LTE_NAS_EMM_TIMER_STATE_INFO" VALUE="0x0266" CHECKED="false"></ITEM>
<ITEM NAME="LTE_NAS_ESM_TIMER_STATE_INFO" VALUE="0x0267" CHECKED="false"></ITEM>
<ITEM NAME="LTE_VOLTE_TX_PACKET_INFO" VALUE="0x0270" CHECKED="false"></ITEM>
<ITEM NAME="LTE_VOLTE_RX_PACKET_INFO" VALUE="0x0271" CHECKED="false"></ITEM>
<ITEM NAME="LTE_VOLTE_TX_OVERALL_STAT_INFO" VALUE="0x0272" CHECKED="false"></ITEM>
<ITEM NAME="LTE_VOLTE_RX_OVERALL_STAT_INFO" VALUE="0x0273" CHECKED="false"></ITEM>
<ITEM NAME="LTE_VOLTE_TX_RTP_STAT_INFO" VALUE="0x0274" CHECKED="false"></ITEM>
<ITEM NAME="LTE_VOLTE_RX_RTP_STAT_INFO" VALUE="0x0275" CHECKED="false"></ITEM>
<ITEM NAME="LTE_VOLTE_RX_RTP_FRAME_INFO" VALUE= "0x0276" CHECKED="false"></ITEM>
<ITEM NAME="LTE_VOLTE_RTP_CALL_STATS" VALUE="0x0277" CHECKED="false"></ITEM>
<ITEM NAME="LTE_VOLTE_TX_RTP_INFO" VALUE="0x0278" CHECKED="false"></ITEM>
<ITEM NAME="LTE_VOLTE_RX_RTP_INFO" VALUE="0x0279" CHECKED="false"></ITEM>
<ITEM NAME="LTE_RRC_MBMS_SERVICE_INFO" VALUE="0x0280" CHECKED="false"></ITEM>
<ITEM NAME="LTE_RF_STATUS_RX_MODE_INFO" VALUE="0x0290" CHECKED="false"></ITEM>
<ITEM NAME="LTE_RF_STATUS_SENSOR_INFO" VALUE="0x0291" CHECKED="false"></ITEM>
<ITEM NAME="LTE_RF_STATUS_TX_SWAP_INFO" VALUE="0x0292" CHECKED="false"></ITEM>
<ITEM NAME="LTE_RF_STATUS_RF_POWER_INFO" VALUE="0x0293" CHECKED="false"></ITEM>
</ITEM>
<ITEM NAME="EDGE">
<ITEM NAME="EDGE_PHY_TIME_SLOT_INFO" VALUE="0x0300" CHECKED="false"></ITEM>
<ITEM NAME="EDGE_PHY_RLC_INFO" VALUE="0x0301" CHECKED="false"></ITEM>
<ITEM NAME="EDGE_RESERVED_MSG_02" VALUE="0x0302" CHECKED="false"></ITEM>
<ITEM NAME="EDGE_PHY_SCELL_MEAS_REPT_INFO" VALUE="0x0303" CHECKED="false"></ITEM>
<ITEM NAME="EDGE_PHY_DEDICATED_STATE_INFO" VALUE="0x0304" CHECKED="false"></ITEM>
<ITEM NAME="EDGE_PHY_SCELL_INFO" VALUE="0x0305" CHECKED="false"></ITEM>
<ITEM NAME="EDGE_PHY_NCELL_INFO" VALUE="0x0306" CHECKED="false"></ITEM>
<ITEM NAME="EDGE_PHY_3G_NCELL_INFO" VALUE="0x0307" CHECKED="false"></ITEM>
<ITEM NAME="EDGE_PHY_HANDOVER_INFO" VALUE="0x0308" CHECKED="false"></ITEM>
<ITEM NAME="EDGE_PHY_HO_HISTORY_INFO" VALUE="0x0309" CHECKED="false"></ITEM>
<ITEM NAME="EDGE_PHY_BASIC_INFO" VALUE="0x030A" CHECKED="false"></ITEM>
<ITEM NAME="EDGE_PHY_MEASUREMENT_INFO" VALUE="0x030B" CHECKED="false"></ITEM>
<ITEM NAME="EDGE_PHY_PWR_CNTRL_INFO" VALUE="0x030C" CHECKED="false"></ITEM>
<ITEM NAME="EDGE_L2_QOS_INFO" VALUE="0x0310" CHECKED="false"></ITEM>
<ITEM NAME="EDGE_L3_MM_GMM_INFO" VALUE="0x0311" CHECKED="false"></ITEM>
<ITEM NAME="EDGE_L2_RLC_STATS" VALUE="0x0312" CHECKED="false"></ITEM>
<ITEM NAME="EDGE_L3_EVENT" VALUE="0x0313" CHECKED="false"></ITEM>
<ITEM NAME="EDGE_L1_SAR_MTPL" VALUE="0x0320" CHECKED="false"></ITEM>
<ITEM NAME="EDGE_L1_ANTENNA_SELECTION" VALUE="0x0321" CHECKED="false"></ITEM>
</ITEM>
<ITEM NAME="HSPA">
<ITEM NAME="HSPA_GP_POWER_CONTROL_INFO" VALUE="0x0400" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_GP_TRCH_BLER_INFO" VALUE="0x0401" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_GP_FINGER_INFO" VALUE="0x0402" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_GD_DPA_INFO" VALUE="0x0403" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_GD_DPA_INFO2" VALUE="0x0404" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_GD_DPA_INFO3" VALUE="0x0405" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL1_CM_STATE" VALUE="0x040D" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL1_TRANSPORT_CHANNEL" VALUE="0x040E" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL1_RL_STATUS" VALUE="0x040F" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL1_UMTS_RF_INFO" VALUE="0x0410" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL1_SEARCH_INFO" VALUE="0x0411" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL1_FREQ_SEARCH_INFO" VALUE="0x0412" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL1_POWER_CONTROL_INFO" VALUE="0x0413" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL1_OLPC_INFO" VALUE="0x0414" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL1_HSDPA_STATS" VALUE="0x0415" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL1_MID_TYPE_INFO" VALUE="0x0416" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL1_CELL_MEAS_INFO" VALUE="0x0417" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL1_INTER_FREQ_MEAS_INFO" VALUE="0x0418" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL1_INTER_RAT_MEAS_INFO" VALUE="0x0419" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL1_INTERNAL_MEAS_INFO" VALUE="0x041A" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL1_SERVING_CELL_INFO" VALUE="0x041B" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL1_INTRA_FREQ_RESEL_INFO" VALUE="0x041C" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL1_INTER_FREQ_RESEL_INFO" VALUE="0x041D" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_RESERVED_MSG_1E" VALUE="0x041E" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL1_CHIPSET_DELAY_INFO" VALUE="0x041F" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_URRC_STATUS_INFO" VALUE="0x0420" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_URRC_RB_MAP_INFO" VALUE="0x0421" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_URRC_NETWORK_INFO" VALUE="0x0422" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_URRC_EVENT" VALUE="0x0423" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UUL_RACH_CONFIG_INFO" VALUE="0x0428" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UUL_UDPCH_CONFIG_INFO" VALUE="0x0429" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UUL_POWER_INFO" VALUE="0x042A" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL2_UPDCP_CHAN_CONF_INFO" VALUE="0x0430" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL2_RLC_AM_CHAN_STAT_INFO" VALUE="0x0431" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL2_URLC_AM_CONFIG_INFO" VALUE="0x0432" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL2_RLC_UM_CHAN_STAT_INFO" VALUE="0x0433" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL2_URLC_UM_CONFIG_INFO" VALUE="0x0434" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL2_HSUPA_STATS" VALUE="0x0435" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL2_WCDMA_MAC_INFO" VALUE="0x0436" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL2_HS_MAC_INFO" VALUE="0x0437" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL2_EUL_MAC_INFO" VALUE="0x0438" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL2_EUL_MAC_STAT_INFO" VALUE="0x0439" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_MM_GMM_INFO" VALUE="0x043A" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL2_RLC_STATS" VALUE="0x043B" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL2_RLC_RESET" VALUE="0x043C" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL3_CC_INFO" VALUE="0x0450" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL3_SS_INFO" VALUE="0x0451" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_UL3_SM_INFO" VALUE="0x0452" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_VOC_RX_STAT = 0x0460" VALUE="0x0460" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_VOC_TX_STAT = 0x0461" VALUE="0x0461" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_L1_SAR_MTPL = 0x0470" VALUE="0x0470" CHECKED="false"></ITEM>
<ITEM NAME="HSPA_L1_ANTENNA_SELECTION" VALUE="0x0471" CHECKED="false"></ITEM>
</ITEM>
<ITEM NAME="CDMA">
<ITEM NAME="CDMA_COM_1X_MESSAGE" VALUE="0x0B00" CHECKED="false"></ITEM>
<ITEM NAME="CDMA_COM_EVDO_MESSAGE" VALUE="0x0B01" CHECKED="false"></ITEM>
<ITEM NAME="CDMA_COM_MRU_TABLE_UPDATE_MESSAGE" VALUE="0x0B10" CHECKED="false"></ITEM>
<ITEM NAME="CDMA_RTT_L3_MESSAGE" VALUE="0x0B30" CHECKED="false"></ITEM>
<ITEM NAME="CDMA_EVDO_L3_MESSAGE" VALUE="0x0B31" CHECKED="false"></ITEM>
</ITEM>
</NODE>

View file

@ -0,0 +1 @@
modem_logging_control START -o /data/vendor/radio/logs/always-on -n 10 -s 20 -m /vendor/etc/modem/default.cfg --enable_exmetric --enable_exmetric_internal

16
set_usb_irq.sh Normal file
View file

@ -0,0 +1,16 @@
#!/bin/bash
# Switch into /proc/irq/$IRQ for the dwc3 usb controller
cd /proc/irq/*/dwc3/.. || exit 7
# Move the USB Controller (DWC3) interrupt as requested
# Modem and DIT are on 0/2/5 depending on throughput, so avoid those.
# 0-3 small, 4-5 medium, 6-7 big
case "$1" in
medium) core=4;;
big) core=6;;
*) core=0;;
esac
# This can sometimes fail due to smp_affinity_list no longer existing...
echo "${core}" > smp_affinity_list

View file

@ -3,14 +3,6 @@
{ {
"Name": "MaxPerformance", "Name": "MaxPerformance",
"Actions": [ "Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpu",
"Path": "system"
}
},
{ {
"Name": "WriteFile", "Name": "WriteFile",
"Params": "Params":
@ -25,14 +17,6 @@
{ {
"Name": "CameraServicePerformance", "Name": "CameraServicePerformance",
"Actions": [ "Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpu",
"Path": "system"
}
},
{ {
"Name": "WriteFile", "Name": "WriteFile",
"Params": "Params":
@ -44,6 +28,48 @@
} }
] ]
}, },
{
"Name": "CameraServicePower",
"Actions": [
{
"Name": "WriteFile",
"Params":
{
"FilePath": "/sys/kernel/vendor_sched/set_task_group_cam_power",
"Value": "<pid>",
"LogFailures": "false"
}
}
]
},
{
"Name": "Dex2oatPerformance",
"Actions": [
{
"Name": "WriteFile",
"Params":
{
"FilePath": "/sys/kernel/vendor_sched/set_task_group_dex2oat",
"Value": "<pid>",
"LogFailures": "false"
}
}
]
},
{
"Name": "OtaPerformance",
"Actions": [
{
"Name": "WriteFile",
"Params":
{
"FilePath": "/sys/kernel/vendor_sched/set_task_group_ota",
"Value": "<pid>",
"LogFailures": "false"
}
}
]
},
{ {
"Name": "CameraServiceHighCapacity", "Name": "CameraServiceHighCapacity",
"Actions": [ "Actions": [
@ -86,14 +112,6 @@
{ {
"Name": "HighEnergySaving", "Name": "HighEnergySaving",
"Actions": [ "Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpu",
"Path": "background"
}
},
{ {
"Name": "WriteFile", "Name": "WriteFile",
"Params": "Params":
@ -108,19 +126,11 @@
{ {
"Name": "NormalPerformance", "Name": "NormalPerformance",
"Actions": [ "Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpu",
"Path": "system"
}
},
{ {
"Name": "WriteFile", "Name": "WriteFile",
"Params": "Params":
{ {
"FilePath": "/sys/kernel/vendor_sched/clear_group", "FilePath": "/sys/kernel/vendor_sched/set_task_group_sys",
"Value": "<pid>", "Value": "<pid>",
"LogFailures": "false" "LogFailures": "false"
} }
@ -130,14 +140,6 @@
{ {
"Name": "HighPerformance", "Name": "HighPerformance",
"Actions": [ "Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpu",
"Path": "system"
}
},
{ {
"Name": "WriteFile", "Name": "WriteFile",
"Params": "Params":
@ -152,14 +154,6 @@
{ {
"Name": "RealtimePerformance", "Name": "RealtimePerformance",
"Actions": [ "Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpu",
"Path": "system"
}
},
{ {
"Name": "WriteFile", "Name": "WriteFile",
"Params": "Params":
@ -174,14 +168,6 @@
{ {
"Name": "NNApiHALPerformance", "Name": "NNApiHALPerformance",
"Actions": [ "Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpu",
"Path": "system"
}
},
{ {
"Name": "WriteFile", "Name": "WriteFile",
"Params": "Params":
@ -194,16 +180,8 @@
] ]
}, },
{ {
"Name": "SystemBGPerformance", "Name": "ServicePerformance",
"Actions": [ "Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpu",
"Path": "system"
}
},
{ {
"Name": "WriteFile", "Name": "WriteFile",
"Params": "Params":
@ -214,6 +192,89 @@
} }
} }
] ]
},
{
"Name": "SFMainPolicy",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpuset",
"Path": "top-app"
}
},
{
"Name": "WriteFile",
"Params":
{
"FilePath": "/sys/kernel/vendor_sched/set_task_group_sf",
"Value": "<pid>",
"LogFailures": "false"
}
}
]
},
{
"Name": "SFRenderEnginePolicy",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpuset",
"Path": "top-app"
}
},
{
"Name": "WriteFile",
"Params":
{
"FilePath": "/sys/kernel/vendor_sched/set_task_group_rt",
"Value": "<pid>",
"LogFailures": "false"
}
}
]
},
{
"Name": "ResetUclampGrp",
"Actions": [
{
"Name": "WriteFile",
"Params":
{
"FilePath": "/sys/kernel/vendor_sched/uclamp_fork_reset_set",
"Value": "<pid>",
"LogFailures": "false"
}
}
]
},
{
"Name": "NoResetUclampGrp",
"Actions": [
{
"Name": "WriteFile",
"Params":
{
"FilePath": "/sys/kernel/vendor_sched/uclamp_fork_reset_clear",
"Value": "<pid>",
"LogFailures": "false"
}
}
]
}
],
"AggregateProfiles": [
{
"Name": "Dex2OatBootComplete",
"Profiles": [ "Dex2oatPerformance", "ProcessCapacityNormal", "LowIoPriority", "TimerSlackHigh" ]
},
{
"Name": "OtaProfiles",
"Profiles": [ "OtaPerformance", "ServiceCapacityLow", "LowIoPriority", "TimerSlackHigh" ]
} }
] ]
} }

View file

@ -390,6 +390,12 @@ Return<void> UsbGadget::setCurrentUsbFunctions(uint64_t functions,
goto error; goto error;
} }
if (functions & GadgetFunction::NCM) {
SetProperty("vendor.usb.dwc3_irq", "big");
} else {
SetProperty("vendor.usb.dwc3_irq", "medium");
}
ALOGI("Usb Gadget setcurrent functions called successfully"); ALOGI("Usb Gadget setcurrent functions called successfully");
return Void(); return Void();

View file

@ -1,118 +0,0 @@
[CCC]format=1
[CCC]kind=0
[CCC]settings=1
[CCC]ant0.ch5.prf64.pdoa_iso_rf2_rf1=0
[CCC]ant0.ch5.prf64.pdoa_iso_rf1_rf2=0
[CCC]ant0.ch9.prf64.pdoa_iso_rf2_rf1=0
[CCC]ant0.ch9.prf64.pdoa_iso_rf1_rf2=0
[CCC]ant0.ch5.prf64.pdoa_offset=0
[CCC]ant0.ch9.prf64.pdoa_offset=0
[CCC]ant0.ch5.prf64.pll_locking_code=0
[CCC]ant0.ch9.prf64.pll_locking_code=0
[CCC]id=0
[CCC]wifi_coex_time_gap=10
[CCC]ap_coop_mode=1
[CCC]antenna_selection=4
ant0.ch5.prf16.ant_delay=16450
ant0.ch5.prf16.tx_power=0
ant0.ch5.prf16.pg_count=0
ant0.ch5.prf16.pg_delay=0
ant0.ch5.prf64.ant_delay=16450
ant0.ch5.prf64.tx_power=0
ant0.ch5.prf64.pg_count=0
ant0.ch5.prf64.pg_delay=0
ant0.ch9.prf16.ant_delay=16450
ant0.ch9.prf16.tx_power=0
ant0.ch9.prf16.pg_count=0
ant0.ch9.prf16.pg_delay=0
ant0.ch9.prf64.ant_delay=16450
ant0.ch9.prf64.tx_power=0
ant0.ch9.prf64.pg_count=0
ant0.ch9.prf64.pg_delay=0
ant0.port=0
ant0.selector_gpio=7
ant0.selector_gpio_value=0
ant1.ch5.prf16.ant_delay=16450
ant1.ch5.prf16.tx_power=0
ant1.ch5.prf16.pg_count=0
ant1.ch5.prf16.pg_delay=0
ant1.ch5.prf64.ant_delay=16450
ant1.ch5.prf64.tx_power=0
ant1.ch5.prf64.pg_count=0
ant1.ch5.prf64.pg_delay=0
ant1.ch9.prf16.ant_delay=16450
ant1.ch9.prf16.tx_power=0
ant1.ch9.prf16.pg_count=0
ant1.ch9.prf16.pg_delay=0
ant1.ch9.prf64.ant_delay=16450
ant1.ch9.prf64.tx_power=0
ant1.ch9.prf64.pg_count=0
ant1.ch9.prf64.pg_delay=0
ant1.port=0
ant1.selector_gpio=7
ant1.selector_gpio_value=1
ant2.ch5.prf16.ant_delay=16450
ant2.ch5.prf16.tx_power=0
ant2.ch5.prf16.pg_count=0
ant2.ch5.prf16.pg_delay=0
ant2.ch5.prf64.ant_delay=16450
ant2.ch5.prf64.tx_power=0
ant2.ch5.prf64.pg_count=0
ant2.ch5.prf64.pg_delay=0
ant2.ch9.prf16.ant_delay=16450
ant2.ch9.prf16.tx_power=0
ant2.ch9.prf16.pg_count=0
ant2.ch9.prf16.pg_delay=0
ant2.ch9.prf64.ant_delay=16450
ant2.ch9.prf64.tx_power=0
ant2.ch9.prf64.pg_count=0
ant2.ch9.prf64.pg_delay=0
ant2.port=1
ant2.selector_gpio=6
ant2.selector_gpio_value=0
ant3.ch5.prf16.ant_delay=16450
ant3.ch5.prf16.tx_power=0
ant3.ch5.prf16.pg_count=0
ant3.ch5.prf16.pg_delay=0
ant3.ch5.prf64.ant_delay=16450
ant3.ch5.prf64.tx_power=0
ant3.ch5.prf64.pg_count=0
ant3.ch5.prf64.pg_delay=0
ant3.ch9.prf16.ant_delay=16450
ant3.ch9.prf16.tx_power=0
ant3.ch9.prf16.pg_count=0
ant3.ch9.prf16.pg_delay=0
ant3.ch9.prf64.ant_delay=16450
ant3.ch9.prf64.tx_power=0
ant3.ch9.prf64.pg_count=0
ant3.ch9.prf64.pg_delay=0
ant3.port=1
ant3.selector_gpio=6
ant3.selector_gpio_value=1
ant0.ant1.ch5.pdoa_offset=0
ant0.ant1.ch9.pdoa_offset=0
ant0.ant2.ch5.pdoa_offset=0
ant0.ant2.ch9.pdoa_offset=0
ant1.ant2.ch5.pdoa_offset=2173
ant1.ant2.ch9.pdoa_offset=3555
ant0.ant3.ch5.pdoa_offset=0
ant0.ant3.ch9.pdoa_offset=0
ant1.ant3.ch5.pdoa_offset=3845
ant1.ant3.ch9.pdoa_offset=647
ant2.ant3.ch5.pdoa_offset=0
ant2.ant3.ch9.pdoa_offset=0
ch5.pll_locking_code=0
ch9.pll_locking_code=0
ant1.ant2.ch5.pdoa_lut=3d:ea:7b:0a:66:ea:c3:09:a4:ea:0a:09:cd:ea:66:08:0a:eb:ae:07:33:eb:f6:06:48:eb:52:06:71:eb:9a:05:c3:eb:e1:04:e1:ec:29:04:c3:ef:85:03:a4:f4:cd:02:14:f8:14:02:b8:fa:5c:01:8f:fc:b8:00:e1:fe:00:00:48:01:48:ff:85:03:a4:fe:ae:05:ec:fd:00:08:33:fd:d7:09:7b:fc:85:0b:d7:fb:0a:0d:1f:fb:66:0e:66:fa:33:0f:ae:f9:00:10:0a:f9:a4:10:52:f8:1f:11:9a:f7:5c:11:f6:f6:9a:11:3d:f6:ae:11:85:f5
ant1.ant2.ch9.pdoa_lut=c3:ed:7b:0a:29:ee:c3:09:3d:ee:0a:09:cd:ee:66:08:c3:ef:ae:07:f6:f0:f6:06:3d:f2:52:06:52:f2:9a:05:cd:f2:e1:04:5c:f3:29:04:c3:f3:85:03:b8:f4:cd:02:71:f7:14:02:52:fa:5c:01:85:fd:b8:00:00:00:00:00:0a:01:48:ff:5c:01:a4:fe:14:02:ec:fd:5c:03:33:fd:48:05:7b:fc:b8:06:d7:fb:14:08:1f:fb:33:09:66:fa:ec:09:ae:f9:3d:0a:0a:f9:0a:0b:52:f8:1f:0b:9a:f7:48:0b:f6:f6:85:0b:3d:f6:9a:0b:85:f5
ant1.ant3.ch5.pdoa_lut=66:ec:7b:0a:e1:ec:c3:09:14:ee:0a:09:d7:ef:66:08:8f:f2:ae:07:00:f6:f6:06:cd:f6:52:06:33:f7:9a:05:d7:f7:e1:04:48:f9:29:04:33:fd:85:03:d7:fd:cd:02:3d:fe:14:02:ec:ff:5c:01:14:00:b8:00:3d:00:00:00:cd:02:48:ff:29:04:a4:fe:a4:04:ec:fd:85:05:33:fd:e1:06:7b:fc:b8:08:d7:fb:14:0a:1f:fb:e1:0a:66:fa:1f:0b:0a:f9:1f:0b:ae:f9:5c:0b:52:f8:c3:0b:9a:f7:52:0c:f6:f6:0a:0d:3d:f6:00:0e:85:f5
ant1.ant3.ch9.pdoa_lut=0a:ef:7b:0a:c3:ef:c3:09:00:f0:0a:09:14:f0:66:08:7b:f0:ae:07:48:f1:f6:06:00:f2:52:06:c3:f3:9a:05:00:f6:e1:04:d7:f7:29:04:1f:f9:85:03:ae:f9:cd:02:e1:fa:14:02:e1:fc:5c:01:b8:fe:b8:00:c3:ff:00:00:00:02:48:ff:5c:05:a4:fe:52:08:ec:fd:14:0a:33:fd:e1:0a:7b:fc:14:0c:d7:fb:14:0e:1f:fb:1f:0f:66:fa:00:10:ae:f9:b8:10:0a:f9:29:12:52:f8:00:14:9a:f7:7b:16:f6:f6:d7:17:3d:f6:29:18:85:f5
xtal_trim=23
temperature_reference=85
smart_tx_power=1
auto_sleep_margin=20000
[HAL]antenna_pair_azimuth=3
[HAL]antenna_pair_elevation=4
[HAL]tx_antenna=0
[HAL]minimum_system_offset_uwbtime0=200
restricted_channels=0

View file

@ -1,39 +0,0 @@
#!/bin/bash
# This script is used to generate uwb conuntry configuration file,
# and the PRODUCT_COPY_FILES list in uwb.mk based on uwb_country.conf
# Bug: 196073172
project=("r4" "p7")
count=1
while read line ; do
if [[ "$line" =~ ^"*" ]]; then
header=${line:1}
elif [[ "$line" =~ ^"\"" ]]; then
line=$(echo ${line/,} | tr -d "\"")
country[count]=$(echo $line | cut -d ':' -f1)
code[count]=$(echo $line | cut -d ':' -f2 | tr -d " ")
for var in ${project[@]}; do
if [ "$header" = "restricted_channels=0x20" ]; then
echo "alternate_pulse_shape=0x01" > UWB-calibration-${code[$count]}.conf.$var
echo "$header" >> UWB-calibration-${code[$count]}.conf.$var
else
echo "$header" > UWB-calibration-${code[$count]}.conf.$var
fi
done
fi
((count++))
done < uwb_country.conf
for var in ${project[@]}; do
echo "============== $var =============="
for var2 in ${code[@]}; do
if [ "$var2" = "${code[-1]}" ]; then
echo "\$(LOCAL_UWB_CAL_DIR)/UWB-calibration-$var2.conf.$var:\$(TARGET_COPY_OUT_VENDOR)/etc/UWB-calibration-$var2.conf"
else
echo "\$(LOCAL_UWB_CAL_DIR)/UWB-calibration-$var2.conf.$var:\$(TARGET_COPY_OUT_VENDOR)/etc/UWB-calibration-$var2.conf \\"
fi
done
done

View file

@ -1,21 +0,0 @@
*restricted_channels=0xffff
"Argentina": "ar",
"Armenia": "am",
"Azerbaijan": "az",
"Belarus": "by",
"Indonesia": "id",
"Kazakhstan": "kz",
"Kyrgyzstan": "kg",
"Nepal": "np",
"Pakistan": "pk",
"Paraguay": "py",
"Russia": "ru",
"Solomon Islands": "sb",
"Tajikistan": "tj",
"Turkmenistanr": "tm",
"Ukraine": "ua",
"Uzbekistan": "uz"
*restricted_channels=0x20
"Japan": "jp",
"Taiwan": "tw"

View file

@ -1,27 +0,0 @@
#
# Copyright (C) 2021 The Android Open-Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# UWB - ultra wide band
$(call inherit-product-if-exists, vendor/qorvo/uwb/uwb.mk)
LOCAL_UWB_CAL_DIR=device/google/gs201/uwb/calibration
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.uwb.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.uwb.xml
PRODUCT_COPY_FILES += \
$(LOCAL_UWB_CAL_DIR)/UWB-calibration.conf.p7:$(TARGET_COPY_OUT_VENDOR)/etc/UWB-calibration.conf \
$(LOCAL_UWB_CAL_DIR)/UWB-calibration.conf.p7:$(TARGET_COPY_OUT_VENDOR)/etc/UWB-calibration-unknown.conf \
$(LOCAL_UWB_CAL_DIR)/UWB-calibration.conf.p7:$(TARGET_COPY_OUT_VENDOR)/etc/UWB-calibration-default.conf

View file

@ -1,6 +0,0 @@
blocklist bcmdhd4389
blocklist sec_touch
blocklist uwb_desense.ko
blocklist uwb-hal.ko
blocklist uwbcore.ko
blocklist gxp.ko

View file

@ -27,24 +27,20 @@ CONFIG_IEEE80211AX := true
# BOARD_HAS_QCOM_WLAN := true # BOARD_HAS_QCOM_WLAN := true
# CONFIG_ACS := true # CONFIG_ACS := true
# Wifi interface combination - {1 STA + 1 AP (bridged or single)} or {2 STA + 1 of (P2P or NAN)} # Wifi interface combination - {1 STA + 1 of (P2P or NAN)} or {1 AP}
# WIFI_HAL_INTERFACE_COMBINATIONS := {{{STA}, 1}, {{AP}, 1}}, {{{STA}, 2}, {{P2P, NAN}, 1}} WIFI_HAL_INTERFACE_COMBINATIONS := {{{STA}, 1}, {{P2P, NAN}, 1}}, {{{AP}, 1}}
WIFI_HIDL_FEATURE_AWARE := true WIFI_HIDL_FEATURE_AWARE := true
#Enable STA + SAP Concurrency.
WIFI_HIDL_FEATURE_DUAL_INTERFACE:= true
WIFI_FEATURE_WIFI_EXT_HAL := true WIFI_FEATURE_WIFI_EXT_HAL := true
WIFI_FEATURE_IMU_DETECTION := true WIFI_FEATURE_IMU_DETECTION := true
WIFI_HIDL_UNIFIED_SUPPLICANT_SERVICE_RC_ENTRY := true WIFI_HIDL_UNIFIED_SUPPLICANT_SERVICE_RC_ENTRY := true
# Avoid Wifi reset on MAC Address change # Avoid Wifi reset on MAC Address change
# WIFI_AVOID_IFACE_RESET_MAC_CHANGE := true # WIFI_AVOID_IFACE_RESET_MAC_CHANGE := true
# WIFI_FEATURE_HOSTAPD_11AX := true # WIFI_FEATURE_HOSTAPD_11AX := true
WIFI_DRIVER_STATE_CTRL_PARAM := "/dev/wlan"
WIFI_DRIVER_STATE_ON := "ON"
WIFI_DRIVER_STATE_OFF := "OFF"
# WLAN driver configuration files # WLAN driver configuration files
PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \
$(LOCAL_WIFI_PATH)/wpa_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant_overlay.conf \ $(LOCAL_WIFI_PATH)/wpa_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant_overlay.conf \
$(LOCAL_WIFI_PATH)/p2p_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/p2p_supplicant_overlay.conf $(LOCAL_WIFI_PATH)/p2p_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/p2p_supplicant_overlay.conf