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_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 += earlycon=exynos4210,0x10A00000 console=ttySAC0,115200 androidboot.console=ttySAC0 printk.devkmsg=on
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
# recovery doesn't care about the encryption settings, so it doesn't matter
# whether we use the normal or the fips fstab here.
#
# 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_FSTAB_GENRULE := gen_fstab.gs201
TARGET_RECOVERY_PIXEL_FORMAT := ABGR_8888
TARGET_RECOVERY_UI_MARGIN_HEIGHT := 165
@ -89,6 +75,9 @@ endif
ifneq ($(PRODUCT_BUILD_VBMETA_IMAGE),false)
AB_OTA_PARTITIONS += vbmeta
endif
ifneq ($(PRODUCT_BUILD_PVMFW_IMAGE),false)
AB_OTA_PARTITIONS += pvmfw
endif
# EMULATOR common modules
BOARD_EMULATOR_COMMON_MODULES := liblight
@ -108,40 +97,28 @@ BOARD_USES_SWIFTSHADER := false
# Gralloc4
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)
SOONG_CONFIG_arm_gralloc_gralloc_arm_no_external_afbc := true
SOONG_CONFIG_arm_gralloc_mali_gpu_support_afbc_basic := false
SOONG_CONFIG_arm_gralloc_mali_gpu_support_afbc_wideblk := false
SOONG_CONFIG_arm_gralloc_gralloc_init_afbc := false
SOONG_CONFIG_arm_gralloc_dpu_support_1010102_afbc := false
$(call soong_config_set,arm_gralloc,gralloc_arm_no_external_afbc,true)
$(call soong_config_set,arm_gralloc,mali_gpu_support_afbc_basic,false)
$(call soong_config_set,arm_gralloc,mali_gpu_support_afbc_wideblk,false)
$(call soong_config_set,arm_gralloc,gralloc_init_afbc,false)
$(call soong_config_set,arm_gralloc,dpu_support_1010102_afbc,false)
else
SOONG_CONFIG_arm_gralloc_gralloc_arm_no_external_afbc := false
SOONG_CONFIG_arm_gralloc_mali_gpu_support_afbc_basic := true
SOONG_CONFIG_arm_gralloc_mali_gpu_support_afbc_wideblk := true
SOONG_CONFIG_arm_gralloc_gralloc_init_afbc := true
SOONG_CONFIG_arm_gralloc_dpu_support_1010102_afbc := true
$(call soong_config_set,arm_gralloc,gralloc_arm_no_external_afbc,false)
$(call soong_config_set,arm_gralloc,mali_gpu_support_afbc_basic,true)
$(call soong_config_set,arm_gralloc,mali_gpu_support_afbc_wideblk,true)
$(call soong_config_set,arm_gralloc,gralloc_init_afbc,true)
$(call soong_config_set,arm_gralloc,dpu_support_1010102_afbc,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)
# libVendorGraphicbuffer
SOONG_CONFIG_NAMESPACES += vendorgraphicbuffer
SOONG_CONFIG_vendorgraphicbuffer := \
gralloc_version
ifeq ($(BOARD_USES_EXYNOS_GRALLOC_VERSION),4)
SOONG_CONFIG_vendorgraphicbuffer_gralloc_version := four
$(call soong_config_set,vendorgraphicbuffer,gralloc_version,four)
else
SOONG_CONFIG_vendorgraphicbuffer_gralloc_version := three
$(call soong_config_set,vendorgraphicbuffer,gralloc_version,three)
endif
# Graphics
@ -212,28 +189,16 @@ BOARD_SUPER_PARTITION_ERROR_LIMIT := 8006926336
#
BOARD_USES_GENERIC_AUDIO := true
SOONG_CONFIG_NAMESPACES += aoc_audio_func
SOONG_CONFIG_aoc_audio_func += \
ext_hidl
SOONG_CONFIG_aoc_audio_func_ext_hidl := true
$(call soong_config_set,aoc_audio_func,ext_hidl,true)
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
SOONG_CONFIG_aoc_audio_func += \
dump_usecase_data \
hal_socket_control \
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
$(call soong_config_set,aoc_audio_func,dump_usecase_data,true)
$(call soong_config_set,aoc_audio_func,hal_socket_control,true)
$(call soong_config_set,aoc_audio_func,record_tunning_keys,true)
endif
ifneq (,$(filter aosp_%,$(TARGET_PRODUCT)))
SOONG_CONFIG_aoc_audio_func += aosp_build
SOONG_CONFIG_aoc_audio_func_aosp_build := true
$(call soong_config_set,aoc_audio_func,aosp_build,true)
endif
# Primary AudioHAL Configuration
@ -379,11 +344,11 @@ BOARD_BUILD_SYSTEM_ROOT_IMAGE := false
# Vendor ramdisk image for kernel development
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_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))
ifndef BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD
$(error vendor_boot.modules.load not found or empty)
@ -406,3 +371,6 @@ BOARD_KERNEL_CMDLINE += at24.write_timeout=100
# Enable larger logbuf
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/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)
# 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
#
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)
endif
$(call inherit-product, $(SRC_TARGET_DIR)/product/generic_system.mk)
# Enable CSI checking

View file

@ -5,9 +5,9 @@
#
#<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_ext /system_ext erofs ro wait,slotselect,avb=vbmeta_system,logical,first_stage_mount
product /product erofs ro wait,slotselect,avb=vbmeta_system,logical,first_stage_mount
vendor /vendor erofs ro wait,slotselect,avb=vbmeta_vendor,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,readahead_size_kb=128
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
/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
@ -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/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/zram0 none swap defaults zramsize=2147483648,max_comp_streams=8,zram_backingdev_size=512M
/devices/platform/11210000.usb* auto vfat defaults voldmanaged=usb:auto

View file

@ -30,4 +30,4 @@ on property:power.battery_input.suspended=false
# Bluetooth
on post-fs-data
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 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
# 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
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/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}
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/netdev_max_backlog 10000
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/udp_mem "88518 118025 177036"
@ -100,20 +101,18 @@ on init
mkdir /dev/socket/pdx/system/vr/sensors 0775 system system
# Boot time 183626384
write /dev/cpuctl/top-app/cpu.uclamp.min 30
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_uclamp_min 1024
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/sys_uclamp_min 1024
write /sys/kernel/vendor_sched/sys_prefer_idle 1
# governor setting
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor sched_pixel
write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/up_rate_limit_us 500
write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_us 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/sched_pixel/up_rate_limit_us 500
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
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
@ -255,8 +254,8 @@ on init
start watchdogd
# Add a boost for NNAPI HAL
write /dev/cpuctl/nnapi-hal/cpu.uclamp.min 15
write /sys/kernel/vendor_sched/nnapi_uclamp_min 154
write /sys/kernel/vendor_sched/nnapi_prefer_idle 0
write /sys/kernel/vendor_sched/nnapi_uclamp_min 512
# Add memlat governor settings
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu0_memlat@17000010/polling_interval 10
@ -280,17 +279,12 @@ on init
on init
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
# Wait for keymaster HALs
exec_start wait_for_keymaster
# Start bootanimation class before mount
start bootanim
class_start animation
# Mount RW partitions which need run fsck
@ -374,6 +368,7 @@ on post-fs-data
on zygote-start
# For PixelLogger configuration file.
chmod 0771 /data/vendor/wifi
write /sys/kernel/vendor_sched/sys_uclamp_min 0
on post-fs-data
# 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/local_hbm_mode
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/class/dqe/atc/ambient_light
chown system system /sys/class/dqe/atc/st
chown system system /sys/class/dqe/atc/en
chown system system /sys/class/dqe/atc/lt
chown system system /sys/class/dqe/atc/ns
chown system system /sys/class/dqe/atc/dither
chown system system /sys/class/dqe/atc/pl_w1
chown system system /sys/class/dqe/atc/pl_w2
chown system system /sys/class/dqe/atc/ctmode
chown system system /sys/class/dqe/atc/pp_en
chown system system /sys/class/dqe/atc/upgrade_on
chown system system /sys/class/dqe/atc/tdr_max
chown system system /sys/class/dqe/atc/tdr_min
chown system system /sys/class/dqe/atc/back_light
chown system system /sys/class/dqe/atc/dstep
chown system system /sys/class/dqe/atc/scale_mode
chown system system /sys/class/dqe/atc/threshold_1
chown system system /sys/class/dqe/atc/threshold_2
chown system system /sys/class/dqe/atc/threshold_3
chown system system /sys/class/dqe/atc/gain_limit
chown system system /sys/class/dqe/atc/lt_calc_ab_shift
chown system system /sys/class/dqe0/atc/ambient_light
chown system system /sys/class/dqe0/atc/st
chown system system /sys/class/dqe0/atc/en
chown system system /sys/class/dqe0/atc/lt
chown system system /sys/class/dqe0/atc/ns
chown system system /sys/class/dqe0/atc/dither
chown system system /sys/class/dqe0/atc/pl_w1
chown system system /sys/class/dqe0/atc/pl_w2
chown system system /sys/class/dqe0/atc/ctmode
chown system system /sys/class/dqe0/atc/pp_en
chown system system /sys/class/dqe0/atc/upgrade_on
chown system system /sys/class/dqe0/atc/tdr_max
chown system system /sys/class/dqe0/atc/tdr_min
chown system system /sys/class/dqe0/atc/back_light
chown system system /sys/class/dqe0/atc/dstep
chown system system /sys/class/dqe0/atc/scale_mode
chown system system /sys/class/dqe0/atc/threshold_1
chown system system /sys/class/dqe0/atc/threshold_2
chown system system /sys/class/dqe0/atc/threshold_3
chown system system /sys/class/dqe0/atc/gain_limit
chown system system /sys/class/dqe0/atc/lt_calc_ab_shift
chown system system /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
@ -637,7 +635,7 @@ on property:sys.boot_completed=1
# Runtime fs tuning
write /sys/block/sda/queue/nr_requests 128
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/node_io_flag 8
@ -673,10 +671,40 @@ on property:sys.boot_completed=1
setprop vendor.powerhal.init 1
# Setup final cpu.uclamp
write /dev/cpuctl/top-app/cpu.uclamp.min 10
write /dev/cpuctl/foreground/cpu.uclamp.min 0
write /sys/kernel/vendor_sched/ta_uclamp_min 103
write /sys/kernel/vendor_sched/ta_uclamp_min 1
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
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
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
service charonservice /system/vendor/bin/charon
class main
@ -776,14 +812,12 @@ on post-fs-data
symlink /mnt/vendor/persist/ss /data/vendor/ss/persist
chown root system /data/vendor/ss/persist
chmod 0770 /data/vendor/ss/persist
chown system system /dev/sg1
start storageproxyd
restart storageproxyd
service storageproxyd /vendor/bin/storageproxyd -d /dev/trusty-ipc-dev0 \
-r /dev/sg1 -p /data/vendor/ss -t ufs
class main
disabled
class early_hal
user root
# Write build info to kdebuginfo
@ -809,18 +843,13 @@ on fs
on property:vendor.thermal.link_ready=1
# BCL
write /dev/thermal/tz-by-name/smpl_gm/policy user_space
write /dev/thermal/tz-by-name/vdroop1/policy user_space
write /dev/thermal/tz-by-name/vdroop2/policy user_space
write /dev/thermal/tz-by-name/ocp_cpu1/policy user_space
write /dev/thermal/tz-by-name/ocp_cpu2/policy user_space
write /dev/thermal/tz-by-name/ocp_tpu/policy user_space
write /dev/thermal/tz-by-name/ocp_gpu/policy user_space
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
write /sys/devices/virtual/pmic/mitigation/triggered_lvl/smpl_lvl 3100
write /sys/devices/virtual/pmic/mitigation/triggered_lvl/soft_ocp_cpu2_lvl 9000
write /sys/devices/virtual/pmic/mitigation/triggered_lvl/soft_ocp_gpu_lvl 9000
write /sys/devices/virtual/pmic/mitigation/triggered_lvl/soft_ocp_tpu_lvl 8500
write /sys/devices/virtual/pmic/mitigation/clock_div/tpu_clk_div 0x201
write /sys/devices/virtual/pmic/mitigation/clock_div/gpu_clk_div 0x801
write /sys/devices/virtual/pmic/mitigation/clock_div/cpu2_clk_div 0x801
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_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_hyst
# 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-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-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
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=*
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
mkdir /config/usb_gadget/g1
mkdir /config/usb_gadget/g1/strings/0x409

View file

@ -162,6 +162,9 @@
/dev/trusty-ipc-dev0 0660 system drmrpc
/dev/trusty-log0 0660 system system
# RPMB
/dev/sg1 0660 system system
# Citadel
/dev/gsc0 0660 hsm hsm
@ -202,3 +205,6 @@
# Direct Charging
/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.
#
-include vendor/google_devices/gs201/proprietary/telephony/device-vendor.mk
include device/google/gs201/device.mk
# Telephony
PRODUCT_COPY_FILES += \
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
-include vendor/unbundled_google/packages/FactoryOtaPrebuilt/factoryota.mk
@ -29,3 +34,6 @@ PRODUCT_VENDOR_PROPERTIES += ro.soc.model=GS201
PRODUCT_PRODUCT_PROPERTIES += \
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.
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.
#
TARGET_BOARD_PLATFORM := gs201
include device/google/gs-common/device.mk
ifneq (,$(filter %_64,$(TARGET_PRODUCT)))
LOCAL_64ONLY := _64
endif
TARGET_BOARD_PLATFORM := gs201
AB_OTA_POSTINSTALL_CONFIG += \
RUN_POSTINSTALL_system=true \
@ -32,6 +30,14 @@ VENDOR_SECURITY_PATCH = $(PLATFORM_SECURITY_PATCH)
# Set boot SPL
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 += \
hardware/google/av \
hardware/google/gchips \
@ -40,6 +46,7 @@ PRODUCT_SOONG_NAMESPACES += \
hardware/google/interfaces \
hardware/google/pixel \
device/google/gs201 \
device/google/gs201/powerstats \
vendor/google/whitechapel/tools \
vendor/google/interfaces \
vendor/google_devices/common/proprietary/confirmatioui_hal \
@ -55,6 +62,10 @@ LOCAL_KERNEL := $(TARGET_KERNEL_DIR)/Image.lz4
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
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)))
#Set IKE logs to verbose for WFC
PRODUCT_PROPERTY_OVERRIDES += log.tag.IKE=VERBOSE
@ -86,7 +97,6 @@ endif
# From system.property
PRODUCT_PROPERTY_OVERRIDES += \
dev.usbsetting.embedded=on \
ro.telephony.default_network=27 \
persist.vendor.ril.use.iccid_to_plmn=1 \
persist.vendor.ril.emergencynumber.mode=5
@ -108,6 +118,10 @@ PRODUCT_PRODUCT_PROPERTIES += \
PRODUCT_PRODUCT_PROPERTIES += \
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
PRODUCT_PROPERTY_OVERRIDES += \
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)
# PRODUCT_SOONG_NAMESPACES += \
# vendor/arm/mali/valhall \
# vendor/arm/mali/valhall/cl \
# vendor/arm/mali/valhall/libmali \
# vendor/arm/mali/valhall/cinstr/production/gpu-hwc-reader
# vendor/arm/mali/valhall
PRODUCT_PACKAGES += \
mali_csffw.bin \
libGLES_mali-gs201-prebuilt \
vulkan.gs201-prebuilt \
csffw_image_prebuilt__firmware_prebuilt_todx_mali_csffw.bin \
libGLES_mali \
vulkan.mali \
libOpenCL \
# libgpudataproducer
libgpudataproducer \
PRODUCT_VENDOR_PROPERTIES += \
ro.hardware.vulkan=mali
include device/google/gs101/neuralnetwork/neuralnetwork.mk
@ -175,12 +189,12 @@ PRODUCT_VENDOR_PROPERTIES += \
ro.hardware.egl = swiftshader
else
PRODUCT_VENDOR_PROPERTIES += \
ro.hardware.egl = mali_gs201
ro.hardware.egl = mali
endif
PRODUCT_VENDOR_PROPERTIES += \
ro.opengles.version=196610 \
debug.renderengine.backend=skiaglthreaded
# graphics.gpu.profiler.support=true \
debug.renderengine.backend=skiaglthreaded \
graphics.gpu.profiler.support=true \
# GRAPHICS - GPU (end)
# ####################
@ -188,10 +202,10 @@ PRODUCT_VENDOR_PROPERTIES += \
# Device Manifest, Device Compatibility Matrix for Treble
ifeq ($(DEVICE_USES_EXYNOS_GRALLOC_VERSION), 4)
DEVICE_MANIFEST_FILE := \
device/google/gs201/manifest$(LOCAL_64ONLY).xml
device/google/gs201/manifest.xml
else
DEVICE_MANIFEST_FILE := \
device/google/gs201/manifest$(LOCAL_64ONLY)-gralloc3.xml
device/google/gs201/manifest-gralloc3.xml
endif
ifneq (,$(filter aosp_%,$(TARGET_PRODUCT)))
@ -254,6 +268,7 @@ PRODUCT_COPY_FILES += \
# Shell scripts
PRODUCT_COPY_FILES += \
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
PRODUCT_COPY_FILES += \
@ -292,10 +307,6 @@ PRODUCT_PACKAGES += \
tune2fs.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
PRODUCT_PACKAGES += \
checkpoint_gc
@ -319,8 +330,13 @@ PRODUCT_PROPERTY_OVERRIDES += \
persist.vendor.sys.modem.logging.enable=true
# Enable silent CP crash handling
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_PROPERTY_OVERRIDES += \
persist.vendor.ril.crash_handling_mode=1
else
PRODUCT_PROPERTY_OVERRIDES += \
persist.vendor.ril.crash_handling_mode=2
endif
# Add support dual SIM mode
PRODUCT_PROPERTY_OVERRIDES += \
@ -376,13 +392,11 @@ PRODUCT_PRODUCT_PROPERTIES += \
PRODUCT_COPY_FILES += \
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
# IRQ rebalancing.
include hardware/google/pixel/rebalance_interrupts/rebalance_interrupts.mk
# PowerStats HAL
PRODUCT_PACKAGES += \
android.hardware.power.stats-service.pixel
@ -483,34 +497,18 @@ else
LOCAL_TARGET_PRODUCT := slider
endif
#ifneq ($(wildcard vendor/google/camera),)
SOONG_CONFIG_NAMESPACES += lyric
SOONG_CONFIG_lyric += \
use_lyric_camera_hal \
soc \
tuning_product
$(call soong_config_set,google3a_config,soc,gs201)
$(call soong_config_set,google3a_config,gcam_awb,true)
$(call soong_config_set,google3a_config,ghawb_truetone,true)
SOONG_CONFIG_lyric_soc := gs201
SOONG_CONFIG_lyric_use_lyric_camera_hal := true
# SOONG_CONFIG_lyric_tuning_product is set in device-specific makefiles,
ifneq ($(wildcard vendor/google/services/LyricCameraHAL/src),)
$(call soong_config_set,lyric,soc,gs201)
$(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
SOONG_CONFIG_NAMESPACES += google3a_config
SOONG_CONFIG_google3a_config += \
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
$(call soong_config_set,gch,hwl_library,lyric)
endif
# WiFi
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.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.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 \
@ -601,17 +599,19 @@ endif
PRODUCT_PROPERTY_OVERRIDES += \
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.late.sf.duration=8300000
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.late.app.duration=20500000
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.early.sf.duration=16000000
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.early.app.duration=16500000
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.earlyGl.sf.duration=13500000
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.earlyGl.app.duration=21000000
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.late.sf.duration=10500000
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.late.app.duration=16600000
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.early.sf.duration=16600000
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.early.app.duration=16600000
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.earlyGl.sf.duration=16600000
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_display_power_timer_ms=1000
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.use_content_detection_for_refresh_rate=true
@ -670,9 +670,7 @@ endif
## VIDEO
####################################
SOONG_CONFIG_NAMESPACES += bigo
SOONG_CONFIG_bigo += soc
SOONG_CONFIG_bigo_soc := gs201
$(call soong_config_set,bigo,soc,gs201)
# 1. Codec 2.0
# exynos service
@ -705,6 +703,10 @@ PRODUCT_PROPERTY_OVERRIDES += \
debug.stagefright.ccodec_delayed_params=1 \
ro.vendor.gpu.dataspace=1
# Create input surface on the framework side
PRODUCT_PROPERTY_OVERRIDES += \
debug.stagefright.c2inputsurface=-1 \
# 2. OpenMAX IL
PRODUCT_COPY_FILES += \
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
# 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
@ -827,12 +829,10 @@ PRODUCT_PACKAGES += \
vts.bin
# 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
$(call inherit-product-if-exists, vendor/samsung_slsi/telephony/shannon-iwlan/device-vendor.mk)
#RCS Test Messaging App
PRODUCT_PACKAGES_DEBUG += \
TestRcsApp
@ -857,18 +857,14 @@ USE_RADIO_HAL_1_6 := true
#$(call inherit-product, vendor/google_devices/gs201/proprietary/device-vendor.mk)
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
#GPS HAL
include device/google/gs201/gnss/device-gnss.mk
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)
endif
#$(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, vendor/google_devices/common/exynos-vendor.mk)
@ -888,6 +884,13 @@ PRODUCT_PACKAGES += modem_svc_sit
# modem logging binary/configs
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 += \
device/google/gs201/radio/gnss_blanking.csv:$(TARGET_COPY_OUT_VENDOR)/etc/modem/gnss_blanking.csv
@ -902,14 +905,14 @@ PRODUCT_PACKAGES_DEBUG += \
$(NULL)
PRODUCT_PACKAGES += \
android.hardware.health@2.1-impl-gs201 \
android.hardware.health@2.1-service
android.hardware.health-service.gs201 \
android.hardware.health-service.gs201_recovery \
# Audio
# Audio HAL Server & Default Implementations
PRODUCT_PACKAGES += \
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.soundtrigger@2.3-impl \
vendor.google.whitechapel.audio.audioext@2.0-impl \
@ -936,8 +939,8 @@ PRODUCT_PACKAGES += \
audio.a2dp.default \
audio.bluetooth.default \
audio.r_submix.default \
audio_spk_35l41
# sound_trigger.primary.$(TARGET_BOARD_PLATFORM) \
audio_spk_35l41 \
sound_trigger.primary.$(TARGET_BOARD_PLATFORM)
# libaoc_waves \
#
@ -963,11 +966,14 @@ PRODUCT_SOONG_NAMESPACES += \
vendor/google/whitechapel/audio/hal \
vendor/google/whitechapel/audio/interfaces
SOONG_CONFIG_NAMESPACES += aoc_audio_board
SOONG_CONFIG_aoc_audio_board += \
platform
$(call soong_config_set,aoc_audio_board,platform,$(TARGET_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
PRODUCT_PROPERTY_OVERRIDES += \

View file

@ -65,6 +65,7 @@
</hal>
<hal format="aidl" optional="true">
<name>com.google.edgetpu</name>
<version>2</version>
<interface>
<name>IEdgeTpuVendorService</name>
<instance>default</instance>
@ -126,7 +127,7 @@
</hal>
<hal format="hidl" optional="true">
<name>vendor.google.google_battery</name>
<version>1.1</version>
<version>1.2</version>
<interface>
<name>IGoogleBattery</name>
<instance>default</instance>
@ -150,7 +151,7 @@
</hal>
<hal format="hidl" optional="true">
<name>vendor.google.wifi_ext</name>
<version>1.2</version>
<version>1.3</version>
<interface>
<name>IWifiExt</name>
<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, 5, "high-drop-rate-");
dumpLogs(fd, kCameraLogDir, cameraDestDir, 5, "watchdog-");
dumpLogs(fd, kCameraLogDir, cameraDestDir, 5, "camera-ended-");
}
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\\//}; "
"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
@ -965,6 +963,7 @@ void DumpstateDevice::dumpRamdumpSection(int fd) {
// Dump items that don't fit well into any other section
void DumpstateDevice::dumpMiscSection(int fd) {
RunCommandToFd(fd, "VENDOR PROPERTIES", {"/vendor/bin/getprop"});
DumpFileToFd(fd, "VENDOR PROC DUMP", "/proc/vendor_sched/dump_task");
}
// Dump items related to GSC

View file

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

View file

@ -38,13 +38,17 @@ PRODUCT_PROPERTY_OVERRIDES += \
vendor.camera.debug.force_mesh_warp_on=0 \
vendor.camera.debug.force_rectiface_node_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
PRODUCT_PROPERTY_OVERRIDES += \
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_display_power_timer_ms=1000
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_aidl_trusty
SOONG_CONFIG_NAMESPACES += fp_hal_feature
SOONG_CONFIG_fp_hal_feature += biometric_suez_support
SOONG_CONFIG_fp_hal_feature_biometric_suez_support := true
$(call soong_config_set,fp_hal_feature,biometric_suez_support,true)
PRODUCT_PACKAGES += \
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 {
name: "android.hardware.health@2.1-impl-gs201",
stem: "android.hardware.health@2.0-impl-2.1-gs201",
proprietary: true,
cc_defaults {
name: "android.hardware.health-service.gs201-defaults",
defaults: [
"libhealth_aidl_impl_user",
"libhealth_aidl_charger_defaults",
],
relative_install_path: "hw",
vintf_fragments: ["android.hardware.health-service.gs201.xml"],
srcs: [
"Health.cpp",
],
@ -41,19 +43,25 @@ cc_library_shared {
],
static_libs: [
"android.hardware.health@1.0-convert",
"libbatterymonitor",
"libhealth2impl",
"libhealthloop",
],
shared_libs: [
"libbase",
"libcutils",
"libhidlbase",
"libpixelhealth",
"libutils",
"android.hardware.health@2.0",
"android.hardware.health@2.1",
"libhealth_aidl_impl",
],
}
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/parseint.h>
#include <android-base/strings.h>
#include <android/hardware/health/2.0/types.h>
#include <health2impl/Health.h>
#include <android/hardware/health/translate-ndk.h>
#include <health-impl/Health.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/BatteryMetricsLogger.h>
#include <pixelhealth/BatteryThermalControl.h>
#include <pixelhealth/ChargerDetect.h>
#include <pixelhealth/DeviceHealth.h>
#include <pixelhealth/LowBatteryShutdownMetrics.h>
#endif // !__ANDROID_RECOVERY__
#include <chrono>
#include <fstream>
@ -41,15 +44,15 @@ namespace {
using namespace std::literals;
using android::hardware::health::V1_0::hal_conversion::convertFromHealthInfo;
using android::hardware::health::V1_0::hal_conversion::convertToHealthInfo;
using android::hardware::health::V2_0::DiskStats;
using android::hardware::health::V2_0::StorageAttribute;
using android::hardware::health::V2_0::StorageInfo;
using android::hardware::health::V2_0::Result;
using ::android::hardware::health::V2_1::IHealth;
using aidl::android::hardware::health::DiskStats;
using aidl::android::hardware::health::HalHealthLoop;
using aidl::android::hardware::health::HealthInfo;
using aidl::android::hardware::health::StorageInfo;
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::BatteryMetricsLogger;
using hardware::google::pixel::health::BatteryThermalControl;
@ -70,6 +73,7 @@ static BatteryThermalControl battThermalControl(
static BatteryMetricsLogger battMetricsLogger(kBatteryResistance, kBatteryOCV);
static LowBatteryShutdownMetrics shutdownMetrics(kVoltageAvg);
static DeviceHealth deviceHealth;
#endif // !__ANDROID_RECOVERY__
#define UFS_DIR "/dev/sys/block/bootdevice"
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 kUfsVersion[]{UFS_DIR "/device_descriptor/specification_version"};
constexpr char kDiskStatsFile[]{"/sys/block/sda/stat"};
constexpr char kUFSName[]{"UFS0"};
static std::string ufs_version;
static uint16_t eol;
@ -86,8 +89,10 @@ static uint16_t lifetimeB;
static std::chrono::system_clock::time_point ufs_last_query_time;
constexpr auto kUfsQueryIntervalHours = std::chrono::hours{24};
#ifndef __ANDROID_RECOVERY__
static bool needs_wlc_updates = false;
constexpr char kWlcCapacity[]{WLC_DIR "/capacity"};
#endif // !__ANDROID_RECOVERY__
std::ifstream assert_open(const std::string &path) {
std::ifstream stream(path);
@ -116,11 +121,10 @@ void read_ufs_version(StorageInfo *info) {
info->version = ufs_version;
}
void fill_ufs_storage_attribute(StorageAttribute *attr) {
attr->isInternal = true;
attr->isBootDevice = true;
attr->name = kUFSName;
}
#ifdef __ANDROID_RECOVERY__
void private_healthd_board_init(struct healthd_config *) {}
int private_healthd_board_battery_update(HealthInfo *) { return 0; }
#else // !__ANDROID__RECOVERY__
static bool FileExists(const std::string &filename) {
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) {
deviceHealth.update(props);
battThermalControl.updateThermalState(props);
battMetricsLogger.logBatteryProperties(props);
shutdownMetrics.logShutdownVoltage(props);
int private_healthd_board_battery_update(HealthInfo *health_info) {
deviceHealth.update(health_info);
battThermalControl.updateThermalState(*health_info);
battMetricsLogger.logBatteryProperties(*health_info);
shutdownMetrics.logShutdownVoltage(*health_info);
// Allow BatteryDefender to override online properties
ChargerDetect::onlineUpdate(props);
battDefender.update(props);
ChargerDetect::onlineUpdate(health_info);
battDefender.update(health_info);
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";
return 0;
}
#endif // __ANDROID_RECOVERY__
void private_get_storage_info(std::vector<StorageInfo> &vec_storage_info) {
vec_storage_info.resize(1);
StorageInfo *storage_info = &vec_storage_info[0];
fill_ufs_storage_attribute(&storage_info->attr);
void private_get_storage_info(std::vector<StorageInfo> *vec_storage_info) {
vec_storage_info->resize(1);
StorageInfo *storage_info = &vec_storage_info->at(0);
read_ufs_version(storage_info);
@ -178,10 +182,9 @@ void private_get_storage_info(std::vector<StorageInfo> &vec_storage_info) {
return;
}
void private_get_disk_stats(std::vector<DiskStats> &vec_stats) {
vec_stats.resize(1);
DiskStats *stats = &vec_stats[0];
fill_ufs_storage_attribute(&stats->attr);
void private_get_disk_stats(std::vector<DiskStats> *vec_stats) {
vec_stats->resize(1);
DiskStats *stats = &vec_stats->at(0);
auto stream = assert_open(kDiskStatsFile);
// Regular diskstats entries
@ -193,18 +196,14 @@ void private_get_disk_stats(std::vector<DiskStats> &vec_stats) {
}
} // anonymous namespace
namespace android {
namespace hardware {
namespace health {
namespace V2_1 {
namespace implementation {
namespace aidl::android::hardware::health::implementation {
class HealthImpl : public Health {
public:
HealthImpl(std::unique_ptr<healthd_config>&& config)
: Health(std::move(config)) {}
HealthImpl(std::string_view instance_name, std::unique_ptr<healthd_config>&& config)
: Health(std::move(instance_name), std::move(config)) {}
Return<void> getStorageInfo(getStorageInfo_cb _hidl_cb) override;
Return<void> getDiskStats(getDiskStats_cb _hidl_cb) override;
ndk::ScopedAStatus getDiskStats(std::vector<DiskStats>* out) override;
ndk::ScopedAStatus getStorageInfo(std::vector<StorageInfo>* out) override;
protected:
void UpdateHealthInfo(HealthInfo* health_info) override;
@ -212,53 +211,57 @@ class HealthImpl : public Health {
};
void HealthImpl::UpdateHealthInfo(HealthInfo* health_info) {
struct BatteryProperties props;
convertFromHealthInfo(health_info->legacy.legacy, &props);
private_healthd_board_battery_update(&props);
convertToHealthInfo(&props, health_info->legacy.legacy);
private_healthd_board_battery_update(health_info);
}
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(info);
hidl_vec<struct StorageInfo> info_vec(info);
if (!info.size()) {
_hidl_cb(Result::NOT_SUPPORTED, info_vec);
} else {
_hidl_cb(Result::SUCCESS, info_vec);
private_get_storage_info(out);
if (out->empty()) {
return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
}
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(stats);
hidl_vec<struct DiskStats> stats_vec(stats);
if (!stats.size()) {
_hidl_cb(Result::NOT_SUPPORTED, stats_vec);
} else {
_hidl_cb(Result::SUCCESS, stats_vec);
private_get_disk_stats(out);
if (out->empty()) {
return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
}
return Void();
return ndk::ScopedAStatus::ok();
}
} // namespace implementation
} // namespace V2_1
} // namespace health
} // namespace hardware
} // namespace android
} // namespace aidl::android::hardware::health::implementation
int main(int argc, char **argv) {
using ::aidl::android::hardware::health::implementation::HealthImpl;
// 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>();
InitHealthdConfig(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">
<name>android.hardware.audio</name>
<transport>hwbinder</transport>
<version>7.0</version>
<version>7.1</version>
<interface>
<name>IDevicesFactory</name>
<instance>default</instance>
@ -25,19 +25,6 @@
<name>ISoundTriggerHw</name>
<instance>default</instance>
</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 format="hidl">
<name>android.hardware.graphics.allocator</name>
@ -148,15 +135,6 @@
<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>
@ -167,7 +145,7 @@
<hal format="hidl">
<name>vendor.google.google_battery</name>
<transport>hwbinder</transport>
<version>1.1</version>
<version>1.2</version>
<interface>
<name>IGoogleBattery</name>
<instance>default</instance>

View file

@ -2,7 +2,7 @@
<hal format="hidl">
<name>android.hardware.audio</name>
<transport>hwbinder</transport>
<version>7.0</version>
<version>7.1</version>
<interface>
<name>IDevicesFactory</name>
<instance>default</instance>
@ -26,19 +26,6 @@
<instance>default</instance>
</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 format="hidl">
<name>android.hardware.graphics.allocator</name>
<transport>hwbinder</transport>
@ -108,15 +95,6 @@
</interface>
<fqname>@1.3::IDevice/google-armnn</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>
@ -127,7 +105,7 @@
<hal format="hidl">
<name>vendor.google.google_battery</name>
<transport>hwbinder</transport>
<version>1.1</version>
<version>1.2</version>
<interface>
<name>IGoogleBattery</name>
<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="concurrent-instances" max="16" />
<Feature name="can-swap-width-height" value="1" />
<Feature name="qp-bounds"/>
</MediaCodec>
<MediaCodec name="c2.exynos.hevc.encoder" type="video/hevc" >
<Limit name="size" min="64x64" max="3840x2176" />
@ -153,6 +154,7 @@
<Limit name="performance-point-3840x2160" range="120" />
<Limit name="concurrent-instances" max="16" />
<Feature name="can-swap-width-height" value="1" />
<Feature name="qp-bounds"/>
</MediaCodec>
<MediaCodec name="c2.exynos.mpeg4.encoder" type="video/mp4v-es">
<Limit name="size" min="32x32" max="2048x2048" />
@ -164,6 +166,7 @@
<Limit name="performance-point-1920x1080" range="120" />
<Limit name="concurrent-instances" max="16" />
<Feature name="can-swap-width-height" value="1" />
<Feature name="qp-bounds"/>
</MediaCodec>
<MediaCodec name="c2.exynos.h263.encoder" type="video/3gpp">
<Limit name="size" min="32x32" max="2048x1152" />
@ -174,6 +177,7 @@
<Limit name="bitrate" range="1-80000000" />
<Limit name="performance-point-1920x1080" range="120" />
<Limit name="concurrent-instances" max="16" />
<Feature name="qp-bounds"/>
</MediaCodec>
<MediaCodec name="c2.exynos.vp8.encoder" type="video/x-vnd.on2.vp8" >
<Limit name="size" min="32x32" max="3840x2160" />
@ -185,6 +189,7 @@
<Limit name="performance-point-3840x2160" range="120" />
<Limit name="concurrent-instances" max="16" />
<Feature name="can-swap-width-height" value="1" />
<Feature name="qp-bounds"/>
</MediaCodec>
<MediaCodec name="c2.exynos.vp9.encoder" type="video/x-vnd.on2.vp9" >
<Limit name="size" min="64x64" max="3840x2176" />
@ -196,6 +201,7 @@
<Limit name="performance-point-3840x2160" range="120" />
<Limit name="concurrent-instances" max="16" />
<Feature name="can-swap-width-height" value="1" />
<Feature name="qp-bounds"/>
</MediaCodec>
</Encoders>
</MediaCodecs>

View file

@ -257,15 +257,19 @@
<!-- measured 90%:28-30 med:29 N=2 -->
<Limit name="measured-frame-rate-1920x1080" range="28-29" /> <!-- v90%=1.0 -->
</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">
<!-- measured 90%:461-471 med:462 N=2 -->
<Limit name="measured-frame-rate-176x144" range="461-466" /> <!-- v90%=1.0 -->
</MediaCodec>
<MediaCodec name="c2.android.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
<!-- 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 -->
<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 -->
<Limit name="measured-frame-rate-1280x720" range="34-34" /> <!-- v90%=1.0 -->
<!-- measured 90%:29-31 med:30 N=2 -->

View file

@ -34,12 +34,6 @@
<!-- Maximum number of supported users -->
<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 -->
<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_network_service_package">com.google.android.iwlan</string>
<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.
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 -->
<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 -->
<bool name="config_enableNewAutoSelectNetworkUI">true</bool>
@ -241,9 +239,9 @@
<string-array translatable="false" name="config_defaultPinnerServiceFiles">
<item>"/apex/com.android.art/javalib/core-oj.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/services.jar"</item>
<item>"/system/bin/surfaceflinger"</item>
<item>"/system_ext/priv-app/SystemUIGoogle/SystemUIGoogle.apk"</item>
</string-array>
@ -279,4 +277,19 @@
manually by the user. Off by default, since the expected haptic feedback may not be
available on some devices. -->
<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>

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>
<!-- 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) -->
<dimen name="status_bar_padding_top">1dp</dimen>

View file

@ -131,6 +131,25 @@
"DefaultIndex": 0,
"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",
"Path": "/sys/kernel/vendor_sched/cam_prefer_idle",
@ -212,15 +231,6 @@
],
"ResetOnInit": true
},
{
"Name": "HighCapacityStartCpu",
"Path": "/sys/kernel/vendor_sched/high_capacity_start_cpu",
"Values": [
"4",
"6"
],
"ResetOnInit": true
},
{
"Name": "DisplayWakeup",
"Path": "/sys/devices/platform/1c240000.drmdecon/early_wakeup",
@ -273,6 +283,12 @@
"Type": "EndHint",
"Value": "DISABLE_TA_BOOST"
},
{
"PowerHint": "INTERACTION",
"Node": "SFUClampBoost",
"Duration": 5000,
"Value": "65"
},
{
"PowerHint": "INTERACTION",
"Node": "CPUBigClusterMinFreq",
@ -662,12 +678,6 @@
"Duration": 0,
"Value": "1"
},
{
"PowerHint": "CAMERA_STREAMING_EXTREME",
"Node": "HighCapacityStartCpu",
"Duration": 0,
"Value": "4"
},
{
"PowerHint": "CAMERA_STREAMING_EXTREME",
"Node": "GPUMinFreq",
@ -740,12 +750,6 @@
"Duration": 0,
"Value": "1"
},
{
"PowerHint": "CAMERA_STREAMING_HIGH",
"Node": "HighCapacityStartCpu",
"Duration": 0,
"Value": "4"
},
{
"PowerHint": "CAMERA_STREAMING_HIGH",
"Node": "CPULittleClusterMaxFreq",
@ -884,12 +888,6 @@
"Duration": 0,
"Value": "0"
},
{
"PowerHint": "CAMERA_STREAMING_LOW",
"Node": "HighCapacityStartCpu",
"Duration": 0,
"Value": "4"
},
{
"PowerHint": "CAMERA_STREAMING_LOW",
"Node": "CPUBigClusterMaxFreq",
@ -1053,6 +1051,18 @@
"Node": "GPUMinFreq",
"Duration": 0,
"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.
// See the License for the specific language governing permissions and
// limitations under the License.
soong_namespace {
imports: [
"hardware/google/pixel",
"device/google/gs-common/powerstats",
],
}
package {
// See: http://go/android-license-faq
// A large-scale-change added 'default_applicable_licenses' to import
@ -33,6 +41,7 @@ cc_library {
],
shared_libs: [
"android.hardware.power.stats-impl.gs-common",
"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 <Gs201CommonDataProviders.h>
#include "AocStateResidencyDataProvider.h"
#include "DevfreqStateResidencyDataProvider.h"
#include "DvfsStateResidencyDataProvider.h"
#include "UfsStateResidencyDataProvider.h"
#include <AocStateResidencyDataProvider.h>
#include <DevfreqStateResidencyDataProvider.h>
#include <DvfsStateResidencyDataProvider.h>
#include <UfsStateResidencyDataProvider.h>
#include <dataproviders/GenericStateResidencyDataProvider.h>
#include <dataproviders/IioEnergyMeterDataProvider.h>
#include <dataproviders/PowerStatsEnergyConsumer.h>
@ -161,7 +161,13 @@ void addDvfsStats(std::shared_ptr<PowerStats> p) {
}});
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("1401MHz", "1401000"),
std::make_pair("1328MHz", "1328000"),
std::make_pair("1197MHz", "1197000"),
std::make_pair("1098MHz", "1098000"),
std::make_pair("930MHz", "930000"),
@ -172,15 +178,40 @@ void addDvfsStats(std::shared_ptr<PowerStats> p) {
}});
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("799MHz", "799000"),
std::make_pair("696MHz", "696000"),
std::make_pair("533MHz", "533000"),
std::make_pair("553MHz", "553000"),
std::make_pair("400MHz", "400000"),
std::make_pair("0MHz", "0"),
}});
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("851MHz", "851000"),
std::make_pair("500MHz", "500000"),
@ -376,7 +407,8 @@ void addMobileRadio(std::shared_ptr<PowerStats> p)
"/sys/devices/platform/cpif/modem/power_stats", cfgs));
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)
@ -533,17 +565,28 @@ void addPowerDomains(std::shared_ptr<PowerStats> p) {
void addDevfreq(std::shared_ptr<PowerStats> p) {
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>(
"INTCAM",
"/sys/devices/platform/17000030.devfreq_intcam/devfreq/17000030.devfreq_intcam"));
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>(
"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) {

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",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpu",
"Path": "system"
}
},
{
"Name": "WriteFile",
"Params":
@ -25,14 +17,6 @@
{
"Name": "CameraServicePerformance",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpu",
"Path": "system"
}
},
{
"Name": "WriteFile",
"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",
"Actions": [
@ -86,14 +112,6 @@
{
"Name": "HighEnergySaving",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpu",
"Path": "background"
}
},
{
"Name": "WriteFile",
"Params":
@ -108,19 +126,11 @@
{
"Name": "NormalPerformance",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpu",
"Path": "system"
}
},
{
"Name": "WriteFile",
"Params":
{
"FilePath": "/sys/kernel/vendor_sched/clear_group",
"FilePath": "/sys/kernel/vendor_sched/set_task_group_sys",
"Value": "<pid>",
"LogFailures": "false"
}
@ -130,14 +140,6 @@
{
"Name": "HighPerformance",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpu",
"Path": "system"
}
},
{
"Name": "WriteFile",
"Params":
@ -152,14 +154,6 @@
{
"Name": "RealtimePerformance",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpu",
"Path": "system"
}
},
{
"Name": "WriteFile",
"Params":
@ -174,14 +168,6 @@
{
"Name": "NNApiHALPerformance",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpu",
"Path": "system"
}
},
{
"Name": "WriteFile",
"Params":
@ -194,16 +180,8 @@
]
},
{
"Name": "SystemBGPerformance",
"Name": "ServicePerformance",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpu",
"Path": "system"
}
},
{
"Name": "WriteFile",
"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;
}
if (functions & GadgetFunction::NCM) {
SetProperty("vendor.usb.dwc3_irq", "big");
} else {
SetProperty("vendor.usb.dwc3_irq", "medium");
}
ALOGI("Usb Gadget setcurrent functions called successfully");
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
# CONFIG_ACS := true
# Wifi interface combination - {1 STA + 1 AP (bridged or single)} or {2 STA + 1 of (P2P or NAN)}
# WIFI_HAL_INTERFACE_COMBINATIONS := {{{STA}, 1}, {{AP}, 1}}, {{{STA}, 2}, {{P2P, NAN}, 1}}
# Wifi interface combination - {1 STA + 1 of (P2P or NAN)} or {1 AP}
WIFI_HAL_INTERFACE_COMBINATIONS := {{{STA}, 1}, {{P2P, NAN}, 1}}, {{{AP}, 1}}
WIFI_HIDL_FEATURE_AWARE := true
#Enable STA + SAP Concurrency.
WIFI_HIDL_FEATURE_DUAL_INTERFACE:= true
WIFI_FEATURE_WIFI_EXT_HAL := true
WIFI_FEATURE_IMU_DETECTION := true
WIFI_HIDL_UNIFIED_SUPPLICANT_SERVICE_RC_ENTRY := true
# Avoid Wifi reset on MAC Address change
# WIFI_AVOID_IFACE_RESET_MAC_CHANGE := 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
PRODUCT_COPY_FILES += \
$(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