Android 15.0.0 Release 20 (BP1A.250305.019)
-----BEGIN PGP SIGNATURE----- iF0EABECAB0WIQRDQNE1cO+UXoOBCWTorT+BmrEOeAUCZ8eo7QAKCRDorT+BmrEO eL2HAJ9GJqXQ084waJriZMG+pKW+8L7hAgCeLGKh/diCM8fFbNP6nFkjxriBLTQ= =zXv6 -----END PGP SIGNATURE----- gpgsig -----BEGIN SSH SIGNATURE----- U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgPpdpjxPACTIhnlvYz0GM4BR7FJ +rYv3jMbfxNKD3JvcAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5 AAAAQORceteeIyBdxvcJWIK/oycyapBYr5lWfd9211NCnQrRQ7c3svxenPoZdoLVtsRLXY q/7oUUYD4pQfpBB2PF9wA= -----END SSH SIGNATURE----- Merge tag 'android-15.0.0_r20' into staging/lineage-22.2_merge-android-15.0.0_r20 Android 15.0.0 Release 20 (BP1A.250305.019) # -----BEGIN PGP SIGNATURE----- # # iF0EABECAB0WIQRDQNE1cO+UXoOBCWTorT+BmrEOeAUCZ8eo7QAKCRDorT+BmrEO # eL2HAJ9GJqXQ084waJriZMG+pKW+8L7hAgCeLGKh/diCM8fFbNP6nFkjxriBLTQ= # =zXv6 # -----END PGP SIGNATURE----- # gpg: Signature made Wed Mar 5 03:29:17 2025 EET # gpg: using DSA key 4340D13570EF945E83810964E8AD3F819AB10E78 # gpg: Good signature from "The Android Open Source Project <initial-contribution@android.com>" [ultimate] # By Herbert Xue (3) and others # Via Android Build Coastguard Worker (32) and others * tag 'android-15.0.0_r20': (36 commits) Enable WIFI_FEATURE_HOSTAPD_11AX dump_power: add battery caretaker dump into bugreport [Pixel VPN] Apply reviewed default permissions update health HAL dependency Add sched qos support Change TARGET_RECOVERY_UI_LIB to use fully qualified names in gs201 Change TARGET_RECOVERY_UI_LIB to use fully qualified names in gs201 Clean up unnecessary data_connection_5g_plus overlay init: gs201: move sched rate limit to late init Add soong config use_google_qns to device/google/gs201/device.mk Set soong config variables for libExynosC2H263Dec and libExynosC2H263Enc init: make pmu_poll_enable node readable Set soong config variable "board_use_dec_sw_csc" for libExynosVideoCodec Update ldaf sensor device filename dump_power: gs201: correct dump path Move video_codec soong config variables into board config Use full namespace path for BOARD_WPA_SUPPLICANT_PRIVATE_LIB dumpstate: gs201: fix dump path Revert "Add IGoodixFingerprintDaemon aidl interface" Add IGoodixFingerprintDaemon aidl interface ... Change-Id: I10f7876808a08741e1f15c8182f82ce6fb8af513
This commit is contained in:
commit
29d946776c
14 changed files with 609 additions and 154 deletions
|
@ -22,6 +22,7 @@ TARGET_SOC := gs201
|
|||
TARGET_SOC_NAME := google
|
||||
|
||||
USES_DEVICE_GOOGLE_GS201 := true
|
||||
$(call soong_config_set,CitadelProvision,target_soc,gs201)
|
||||
|
||||
TARGET_ARCH := arm64
|
||||
TARGET_ARCH_VARIANT := armv8-2a
|
||||
|
@ -49,6 +50,7 @@ BOARD_KERNEL_CMDLINE += cgroup_disable=memory
|
|||
BOARD_KERNEL_CMDLINE += rcupdate.rcu_expedited=1 rcu_nocbs=all rcutree.enable_rcu_lazy
|
||||
BOARD_KERNEL_CMDLINE += stack_depot_disable=off page_pinner=on
|
||||
BOARD_KERNEL_CMDLINE += swiotlb=1024
|
||||
BOARD_KERNEL_CMDLINE += cgroup.memory=nokmem
|
||||
BOARD_KERNEL_CMDLINE += disable_dma32=on
|
||||
BOARD_BOOTCONFIG += androidboot.boot_devices=14700000.ufs
|
||||
|
||||
|
@ -73,7 +75,7 @@ TARGET_RECOVERY_FSTAB_GENRULE := gen_fstab.gs201
|
|||
TARGET_RECOVERY_PIXEL_FORMAT := ABGR_8888
|
||||
TARGET_RECOVERY_UI_MARGIN_HEIGHT := 165
|
||||
TARGET_RECOVERY_UI_LIB := \
|
||||
librecovery_ui_pixel \
|
||||
//hardware/google/pixel/recovery:librecovery_ui_pixel \
|
||||
libfstab
|
||||
|
||||
AB_OTA_UPDATER := true
|
||||
|
@ -193,7 +195,16 @@ BOARD_SUPPORT_MFC_ENC_RGB := true
|
|||
BOARD_USE_BLOB_ALLOCATOR := false
|
||||
BOARD_SUPPORT_MFC_ENC_BT2020 := true
|
||||
BOARD_SUPPORT_FLEXIBLE_P010 := true
|
||||
|
||||
$(call soong_config_set,video_codec,target_soc_name,$(TARGET_SOC_NAME))
|
||||
$(call soong_config_set_bool,video_codec,board_use_codec2_hidl_1_2,$(BOARD_USE_CODEC2_HIDL_1_2))
|
||||
$(call soong_config_set_bool,video_codec,board_use_csc_filter,$(BOARD_USE_CSC_FILTER))
|
||||
$(call soong_config_set_bool,video_codec,board_use_dec_sw_csc,$(BOARD_USE_DEC_SW_CSC))
|
||||
$(call soong_config_set_bool,video_codec,board_use_enc_sw_csc,$(BOARD_USE_ENC_SW_CSC))
|
||||
$(call soong_config_set_bool,video_codec,board_support_mfc_enc_rgb,$(BOARD_SUPPORT_MFC_ENC_RGB))
|
||||
$(call soong_config_set_bool,video_codec,board_use_blob_allocator,$(BOARD_USE_BLOB_ALLOCATOR))
|
||||
$(call soong_config_set_bool,video_codec,board_support_mfc_enc_bt2020,$(BOARD_SUPPORT_MFC_ENC_BT2020))
|
||||
$(call soong_config_set_bool,video_codec,board_support_flexible_p010,$(BOARD_SUPPORT_FLEXIBLE_P010))
|
||||
$(call soong_config_set_bool,video_codec,board_use_codec2_aidl,$(if $(BOARD_USE_CODEC2_AIDL),true,false))
|
||||
########################
|
||||
|
||||
BOARD_SUPER_PARTITION_SIZE := 8531214336
|
||||
|
|
|
@ -15,6 +15,15 @@ on init
|
|||
chown system system /sys/devices/platform/sjtag_gsa/interface/end
|
||||
chown system system /sys/devices/platform/sjtag_gsa/interface/pubkey
|
||||
|
||||
# HSUM separated main user from the SYSTEM user, granting write permissions
|
||||
# for write only SJTAG sysfs files
|
||||
chmod 220 /sys/devices/platform/sjtag_ap/interface/auth
|
||||
chmod 220 /sys/devices/platform/sjtag_ap/interface/begin
|
||||
chmod 220 /sys/devices/platform/sjtag_ap/interface/end
|
||||
chmod 220 /sys/devices/platform/sjtag_gsa/interface/auth
|
||||
chmod 220 /sys/devices/platform/sjtag_gsa/interface/begin
|
||||
chmod 220 /sys/devices/platform/sjtag_gsa/interface/end
|
||||
|
||||
on property:vendor.debug.ramdump.force_crash=true
|
||||
write /sys/kernel/pixel_debug/trigger "null"
|
||||
|
||||
|
|
|
@ -19,10 +19,6 @@ on init
|
|||
# Disable util-awareness
|
||||
write /proc/vendor_sched/teo_util_threshold "1024 1024 1024"
|
||||
|
||||
# Boot time fs tuning
|
||||
write /sys/block/sda/queue/scheduler bfq
|
||||
write /sys/block/sda/queue/iosched/slice_idle 0
|
||||
|
||||
chown system system /proc/vendor_sched/groups/bg/set_task_group
|
||||
chown system system /proc/vendor_sched/groups/cam/set_task_group
|
||||
chown system system /proc/vendor_sched/groups/fg/set_task_group
|
||||
|
@ -100,13 +96,90 @@ on init
|
|||
chmod 0220 /proc/vendor_sched/groups/ota/set_proc_group
|
||||
chmod 0220 /proc/vendor_sched/prefer_idle_set
|
||||
chmod 0220 /proc/vendor_sched/prefer_idle_clear
|
||||
chmod 0220 /proc/vendor_sched/pmu_poll_enable
|
||||
chmod 0660 /proc/vendor_sched/pmu_poll_enable
|
||||
chmod 0220 /proc/vendor_sched/pmu_poll_time
|
||||
chmod 0220 /proc/vendor_sched/uclamp_fork_reset_clear
|
||||
chmod 0220 /proc/vendor_sched/uclamp_fork_reset_set
|
||||
|
||||
start vendor.keymaster-4-0
|
||||
|
||||
# Change permission of sched qos nodes
|
||||
chown system system /proc/vendor_sched/sched_qos/adpf_set
|
||||
chown system system /proc/vendor_sched/sched_qos/adpf_clear
|
||||
chown system system /proc/vendor_sched/sched_qos/auto_uclamp_max_set
|
||||
chown system system /proc/vendor_sched/sched_qos/auto_uclamp_max_clear
|
||||
chown system system /proc/vendor_sched/sched_qos/boost_prio_set
|
||||
chown system system /proc/vendor_sched/sched_qos/boost_prio_clear
|
||||
chown system system /proc/vendor_sched/sched_qos/preempt_wakeup_set
|
||||
chown system system /proc/vendor_sched/sched_qos/preempt_wakeup_clear
|
||||
chown system system /proc/vendor_sched/sched_qos/prefer_fit_set
|
||||
chown system system /proc/vendor_sched/sched_qos/prefer_fit_clear
|
||||
chown system system /proc/vendor_sched/sched_qos/prefer_high_cap_set
|
||||
chown system system /proc/vendor_sched/sched_qos/prefer_high_cap_clear
|
||||
chown system system /proc/vendor_sched/sched_qos/prefer_idle_set
|
||||
chown system system /proc/vendor_sched/sched_qos/prefer_idle_clear
|
||||
chown system system /proc/vendor_sched/sched_qos/rampup_multiplier_set
|
||||
chown system system /proc/vendor_sched/sched_qos/rampup_multiplier_clear
|
||||
|
||||
chmod 0220 /proc/vendor_sched/sched_qos/adpf_set
|
||||
chmod 0220 /proc/vendor_sched/sched_qos/adpf_clear
|
||||
chmod 0220 /proc/vendor_sched/sched_qos/auto_uclamp_max_set
|
||||
chmod 0220 /proc/vendor_sched/sched_qos/auto_uclamp_max_clear
|
||||
chmod 0220 /proc/vendor_sched/sched_qos/boost_prio_set
|
||||
chmod 0220 /proc/vendor_sched/sched_qos/boost_prio_clear
|
||||
chmod 0220 /proc/vendor_sched/sched_qos/preempt_wakeup_set
|
||||
chmod 0220 /proc/vendor_sched/sched_qos/preempt_wakeup_clear
|
||||
chmod 0220 /proc/vendor_sched/sched_qos/prefer_fit_set
|
||||
chmod 0220 /proc/vendor_sched/sched_qos/prefer_fit_clear
|
||||
chmod 0220 /proc/vendor_sched/sched_qos/prefer_high_cap_set
|
||||
chmod 0220 /proc/vendor_sched/sched_qos/prefer_high_cap_clear
|
||||
chmod 0220 /proc/vendor_sched/sched_qos/prefer_idle_set
|
||||
chmod 0220 /proc/vendor_sched/sched_qos/prefer_idle_clear
|
||||
chmod 0220 /proc/vendor_sched/sched_qos/rampup_multiplier_set
|
||||
chmod 0220 /proc/vendor_sched/sched_qos/rampup_multiplier_clear
|
||||
|
||||
# Enable sched_qos for some groups
|
||||
write /proc/vendor_sched/groups/ta/qos_adpf_enable 1
|
||||
write /proc/vendor_sched/groups/ta/qos_auto_uclamp_max_enable 1
|
||||
write /proc/vendor_sched/groups/ta/qos_boost_prio_enable 1
|
||||
write /proc/vendor_sched/groups/ta/qos_preempt_wakeup_enable 1
|
||||
write /proc/vendor_sched/groups/ta/qos_prefer_fit_enable 1
|
||||
write /proc/vendor_sched/groups/ta/qos_prefer_high_cap_enable 1
|
||||
write /proc/vendor_sched/groups/ta/qos_prefer_idle_enable 1
|
||||
write /proc/vendor_sched/groups/ta/qos_rampup_multiplier_enable 1
|
||||
write /proc/vendor_sched/groups/fg/qos_adpf_enable 1
|
||||
write /proc/vendor_sched/groups/fg/qos_auto_uclamp_max_enable 1
|
||||
write /proc/vendor_sched/groups/fg/qos_boost_prio_enable 1
|
||||
write /proc/vendor_sched/groups/fg/qos_preempt_wakeup_enable 1
|
||||
write /proc/vendor_sched/groups/fg/qos_prefer_fit_enable 1
|
||||
write /proc/vendor_sched/groups/fg/qos_prefer_high_cap_enable 1
|
||||
write /proc/vendor_sched/groups/fg/qos_prefer_idle_enable 1
|
||||
write /proc/vendor_sched/groups/fg/qos_rampup_multiplier_enable 1
|
||||
write /proc/vendor_sched/groups/fg_wi/qos_adpf_enable 1
|
||||
write /proc/vendor_sched/groups/fg_wi/qos_auto_uclamp_max_enable 1
|
||||
write /proc/vendor_sched/groups/fg_wi/qos_boost_prio_enable 1
|
||||
write /proc/vendor_sched/groups/fg_wi/qos_preempt_wakeup_enable 1
|
||||
write /proc/vendor_sched/groups/fg_wi/qos_prefer_fit_enable 1
|
||||
write /proc/vendor_sched/groups/fg_wi/qos_prefer_high_cap_enable 1
|
||||
write /proc/vendor_sched/groups/fg_wi/qos_prefer_idle_enable 1
|
||||
write /proc/vendor_sched/groups/fg_wi/qos_rampup_multiplier_enable 1
|
||||
write /proc/vendor_sched/groups/cam/qos_adpf_enable 1
|
||||
write /proc/vendor_sched/groups/cam/qos_auto_uclamp_max_enable 1
|
||||
write /proc/vendor_sched/groups/cam/qos_prefer_fit_enable 1
|
||||
write /proc/vendor_sched/groups/cam/qos_prefer_high_cap_enable 1
|
||||
write /proc/vendor_sched/groups/cam/qos_prefer_idle_enable 1
|
||||
write /proc/vendor_sched/groups/cam/qos_rampup_multiplier_enable 1
|
||||
write /proc/vendor_sched/groups/cam_power/qos_adpf_enable 1
|
||||
write /proc/vendor_sched/groups/cam_power/qos_auto_uclamp_max_enable 1
|
||||
write /proc/vendor_sched/groups/cam_power/qos_prefer_fit_enable 1
|
||||
write /proc/vendor_sched/groups/cam_power/qos_prefer_high_cap_enable 1
|
||||
write /proc/vendor_sched/groups/cam_power/qos_prefer_idle_enable 1
|
||||
write /proc/vendor_sched/groups/cam_power/qos_rampup_multiplier_enable 1
|
||||
write /proc/vendor_sched/groups/rt/qos_adpf_enable 1
|
||||
write /proc/vendor_sched/groups/rt/qos_rampup_multiplier_enable 1
|
||||
write /proc/vendor_sched/groups/sf/qos_adpf_enable 1
|
||||
write /proc/vendor_sched/groups/sf/qos_rampup_multiplier_enable 1
|
||||
|
||||
# ZRAM setup
|
||||
write /sys/block/zram0/comp_algorithm lz77eh
|
||||
write /proc/sys/vm/page-cluster 0
|
||||
|
@ -156,14 +229,11 @@ on init
|
|||
# governor setting
|
||||
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor sched_pixel
|
||||
write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/up_rate_limit_us 500
|
||||
write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_us 5000
|
||||
write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_scale_pow 2
|
||||
write /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor sched_pixel
|
||||
write /sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/up_rate_limit_us 500
|
||||
write /sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/down_rate_limit_us 20000
|
||||
write /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor sched_pixel
|
||||
write /sys/devices/system/cpu/cpu6/cpufreq/sched_pixel/up_rate_limit_us 500
|
||||
write /sys/devices/system/cpu/cpu6/cpufreq/sched_pixel/down_rate_limit_us 20000
|
||||
|
||||
# memlat cpuidle awareness setting
|
||||
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu0_memlat@17000010/memlat_cpuidle_state_aware 2
|
||||
|
@ -335,6 +405,11 @@ on late-fs
|
|||
# Mount RW partitions which need run fsck
|
||||
mount_all --late
|
||||
|
||||
on late-init
|
||||
write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_us 5000
|
||||
write /sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/down_rate_limit_us 20000
|
||||
write /sys/devices/system/cpu/cpu6/cpufreq/sched_pixel/down_rate_limit_us 20000
|
||||
|
||||
on post-fs-data
|
||||
# Log data folder
|
||||
mkdir /data/vendor 0771 radio system
|
||||
|
@ -373,8 +448,8 @@ on post-fs-data
|
|||
restorecon /sys/kernel/debug/tracing/trace_marker
|
||||
|
||||
# ranging sensor
|
||||
chown system system /dev/stmvl53l1_ranging
|
||||
chmod 0660 /dev/stmvl53l1_ranging
|
||||
chown system system /dev/ispolin_ranging
|
||||
chmod 0660 /dev/ispolin_ranging
|
||||
|
||||
# Factory calibration files
|
||||
chmod 0771 /mnt/vendor/persist/camera
|
||||
|
|
|
@ -180,10 +180,14 @@
|
|||
</exception>
|
||||
|
||||
<exception package="com.google.android.apps.pixel.relationships">
|
||||
<!-- Contacts -->
|
||||
<permission name="android.permission.CALL_PHONE" fixed="false"/>
|
||||
<permission name="android.permission.READ_CALL_LOG" fixed="false"/>
|
||||
<permission name="android.permission.READ_CONTACTS" fixed="false"/>
|
||||
<permission name="android.permission.WRITE_CONTACTS" fixed="false"/>
|
||||
</exception>
|
||||
<exception
|
||||
package="com.google.android.apps.privacy.wildlife">
|
||||
<permission name="android.permission.READ_PHONE_STATE" fixed="false"/>
|
||||
</exception>
|
||||
</exceptions>
|
||||
|
||||
|
|
21
device.mk
21
device.mk
|
@ -219,6 +219,9 @@ endif
|
|||
# Use for GRIL
|
||||
USES_LASSEN_MODEM := true
|
||||
$(call soong_config_set, vendor_ril_google_feature, use_lassen_modem, true)
|
||||
ifneq ($(BOARD_WITHOUT_RADIO),true)
|
||||
$(call soong_config_set_bool,grilservice,use_google_qns,true)
|
||||
endif
|
||||
|
||||
ifeq ($(USES_GOOGLE_DIALER_CARRIER_SETTINGS),true)
|
||||
USE_GOOGLE_DIALER := true
|
||||
|
@ -393,6 +396,10 @@ PRODUCT_COPY_FILES += \
|
|||
|
||||
include device/google/gs-common/insmod/insmod.mk
|
||||
|
||||
# Insmod config files
|
||||
PRODUCT_COPY_FILES += \
|
||||
$(call find-copy-subdir-files,init.insmod.*.cfg,$(TARGET_KERNEL_DIR),$(TARGET_COPY_OUT_VENDOR_DLKM)/etc)
|
||||
|
||||
# For creating dtbo image
|
||||
PRODUCT_HOST_PACKAGES += \
|
||||
mkdtimg
|
||||
|
@ -959,9 +966,6 @@ USE_EARLY_SEND_DEVICE_INFO := true
|
|||
ifneq ($(BOARD_WITHOUT_RADIO),true)
|
||||
$(call inherit-product-if-exists, vendor/samsung_slsi/telephony/$(BOARD_USES_SHARED_VENDOR_TELEPHONY)/common/device-vendor.mk)
|
||||
|
||||
# modem_svc_sit daemon
|
||||
PRODUCT_PACKAGES += modem_svc_sit
|
||||
|
||||
# modem logging binary/configs
|
||||
PRODUCT_PACKAGES += modem_logging_control
|
||||
|
||||
|
@ -1104,7 +1108,7 @@ PRODUCT_SOONG_NAMESPACES += \
|
|||
vendor/google_devices/gs201/proprietary/gchips/tpu/nnapi_stable_aidl \
|
||||
vendor/google_devices/gs201/proprietary/gchips/tpu/aidl \
|
||||
vendor/google_devices/gs201/proprietary/gchips/tpu/hal \
|
||||
vendor/google_devices/gs201/proprietary/gchips/tpu/tachyon/api \
|
||||
vendor/google_devices/gs201/proprietary/gchips/tpu/tachyon/tachyon_apis \
|
||||
vendor/google_devices/gs201/proprietary/gchips/tpu/tachyon/service
|
||||
# TPU firmware
|
||||
PRODUCT_PACKAGES += edgetpu-janeiro.fw
|
||||
|
@ -1169,12 +1173,19 @@ include device/google/gs201/dumpstate/item.mk
|
|||
DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/gs201/device_framework_matrix_product.xml
|
||||
|
||||
# Preopt SystemUI
|
||||
ifneq ($(RELEASE_SYSTEMUI_USE_SPEED_PROFILE), true)
|
||||
PRODUCT_DEXPREOPT_SPEED_APPS += SystemUIGoogle # For internal
|
||||
PRODUCT_DEXPREOPT_SPEED_APPS += SystemUI # For AOSP
|
||||
endif
|
||||
|
||||
# Compile SystemUI on device with `speed`.
|
||||
# Set on-device compilation mode for SystemUI.
|
||||
ifeq ($(RELEASE_SYSTEMUI_USE_SPEED_PROFILE), true)
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
dalvik.vm.systemuicompilerfilter=speed-profile
|
||||
else
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
dalvik.vm.systemuicompilerfilter=speed
|
||||
endif
|
||||
|
||||
# Keymint configuration
|
||||
PRODUCT_COPY_FILES += \
|
||||
|
|
|
@ -118,7 +118,7 @@
|
|||
</hal>
|
||||
<hal format="aidl" optional="true">
|
||||
<name>vendor.google.wifi_ext</name>
|
||||
<version>2-3</version>
|
||||
<version>2-4</version>
|
||||
<interface>
|
||||
<name>IWifiExt</name>
|
||||
<instance>default</instance>
|
||||
|
|
|
@ -43,9 +43,19 @@ int getCommandOutput(const char *cmd, std::string *output) {
|
|||
return 0;
|
||||
}
|
||||
bool isValidFile(const char *file) {
|
||||
if (!access(file, R_OK)) {
|
||||
return false;
|
||||
FILE *fp = fopen(file, "r");
|
||||
if (fp != NULL) {
|
||||
fclose(fp);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
bool isValidDir(const char *directory) {
|
||||
DIR *dir = opendir(directory);
|
||||
if (dir == NULL)
|
||||
return false;
|
||||
|
||||
closedir(dir);
|
||||
return true;
|
||||
}
|
||||
bool isUserBuild() {
|
||||
|
@ -122,8 +132,8 @@ void dumpPowerSupplyStats() {
|
|||
{"Power supply property gcpm", "/sys/class/power_supply/gcpm/uevent"},
|
||||
{"Power supply property gcpm_pps", "/sys/class/power_supply/gcpm_pps/uevent"},
|
||||
{"Power supply property main-charger", "/sys/class/power_supply/main-charger/uevent"},
|
||||
{"Power supply property dc-mains", "/sys/class/power_supply/dc-mains/uevent"},
|
||||
{"Power supply property tcpm", "/sys/class/power_supply/tcpm-source-psy-8-0025/uevent"},
|
||||
{"Power supply property pca94xx-mains", "/sys/class/power_supply/pca94xx-mains/uevent"},
|
||||
{"Power supply property tcpm", "/sys/class/power_supply/tcpm-source-psy-i2c-max77759tcpc/uevent"},
|
||||
{"Power supply property usb", "/sys/class/power_supply/usb/uevent"},
|
||||
{"Power supply property wireless", "/sys/class/power_supply/wireless/uevent"},
|
||||
};
|
||||
|
@ -133,36 +143,41 @@ void dumpPowerSupplyStats() {
|
|||
}
|
||||
void dumpMaxFg() {
|
||||
const char *maxfgLoc = "/sys/class/power_supply/maxfg";
|
||||
const char *maxfgDualLoc = "/sys/class/power_supply/maxfg_base";
|
||||
const char *maxfg [][2] = {
|
||||
{"Power supply property maxfg", "/sys/class/power_supply/maxfg/uevent"},
|
||||
{"m5_state", "/sys/class/power_supply/maxfg/m5_model_state"},
|
||||
{"maxfg", "/dev/logbuffer_maxfg"},
|
||||
{"maxfg", "/dev/logbuffer_maxfg_monitor"},
|
||||
{"maxfg registers", "/sys/class/power_supply/maxfg/registers_dump"},
|
||||
{"maxfg logbuffer", "/dev/logbuffer_maxfg"},
|
||||
{"maxfg_monitor logbuffer", "/dev/logbuffer_maxfg_monitor"},
|
||||
};
|
||||
const char *maxfgFlip [][2] = {
|
||||
const char *maxfgDual [][2] = {
|
||||
{"Power supply property maxfg_base", "/sys/class/power_supply/maxfg_base/uevent"},
|
||||
{"Power supply property maxfg_flip", "/sys/class/power_supply/maxfg_flip/uevent"},
|
||||
{"Power supply property maxfg_secondary", "/sys/class/power_supply/maxfg_secondary/uevent"},
|
||||
{"maxfg_base registers", "/sys/class/power_supply/maxfg_base/registers_dump"},
|
||||
{"maxfg_secondary registers", "/sys/class/power_supply/maxfg_secondary/registers_dump"},
|
||||
{"m5_state", "/sys/class/power_supply/maxfg_base/m5_model_state"},
|
||||
{"maxfg_base", "/dev/logbuffer_maxfg_base"},
|
||||
{"maxfg_flip", "/dev/logbuffer_maxfg_flip"},
|
||||
{"maxfg_base", "/dev/logbuffer_maxfg_base_monitor"},
|
||||
{"maxfg_flip", "/dev/logbuffer_maxfg_flip_monitor"},
|
||||
{"maxfg_base logbuffer", "/dev/logbuffer_maxfg_base"},
|
||||
{"maxfg_secondary logbuffer", "/dev/logbuffer_maxfg_secondary"},
|
||||
{"maxfg_base logbuffer", "/dev/logbuffer_maxfg_base_monitor"},
|
||||
{"maxfg_secondary logbuffer", "/dev/logbuffer_maxfg_secondary_monitor"},
|
||||
{"dual_batt logbuffer", "/dev/logbuffer_dual_batt"},
|
||||
};
|
||||
const char *maxfgHistoryName = "Maxim FG History";
|
||||
const char *maxfgHistoryDir = "/dev/maxfg_history";
|
||||
std::string content;
|
||||
if (isValidFile(maxfgLoc)) {
|
||||
if (isValidDir(maxfgLoc)) {
|
||||
for (const auto &row : maxfg) {
|
||||
dumpFileContent(row[0], row[1]);
|
||||
}
|
||||
} else {
|
||||
for (const auto &row : maxfgFlip) {
|
||||
} else if (isValidDir(maxfgDualLoc)){
|
||||
for (const auto &row : maxfgDual) {
|
||||
dumpFileContent(row[0], row[1]);
|
||||
}
|
||||
}
|
||||
if (isValidFile(maxfgHistoryDir)) {
|
||||
dumpFileContent(maxfgHistoryName, maxfgHistoryDir);
|
||||
}
|
||||
}
|
||||
}
|
||||
void dumpPowerSupplyDock() {
|
||||
const char* powerSupplyPropertyDockTitle = "Power supply property dock";
|
||||
|
@ -184,65 +199,60 @@ void dumpLogBufferTcpm() {
|
|||
printTitle(tcpmLogTitle);
|
||||
}
|
||||
void dumpTcpc() {
|
||||
int ret;
|
||||
const char* max77759TcpcHead = "TCPC";
|
||||
const char* i2cSubDirMatch = "i2c-";
|
||||
const char* directory = "/sys/devices/platform/10d60000.hsi2c/";
|
||||
const char* max77759Tcpc [][2] {
|
||||
{"registers:", "/i2c-max77759tcpc/registers"},
|
||||
{"frs:", "/i2c-max77759tcpc/frs"},
|
||||
{"auto_discharge:", "/i2c-max77759tcpc/auto_discharge"},
|
||||
{"bcl2_enabled:", "/i2c-max77759tcpc/bcl2_enabled"},
|
||||
{"cc_toggle_enable:", "/i2c-max77759tcpc/cc_toggle_enable"},
|
||||
{"containment_detection:", "/i2c-max77759tcpc/containment_detection"},
|
||||
{"containment_detection_status:", "/i2c-max77759tcpc/containment_detection_status"},
|
||||
const char* max77759TcpcHead = "TCPC Device Attributes";
|
||||
const char* directory = "/sys/class/typec/port0/device";
|
||||
const char* max77759Tcpc [] {
|
||||
"auto_discharge",
|
||||
"bc12_enabled",
|
||||
"cc_toggle_enable",
|
||||
"contaminant_detection",
|
||||
"contaminant_detection_status",
|
||||
"frs",
|
||||
"irq_hpd_count",
|
||||
"manual_disable_vbus",
|
||||
"non_compliant_reasons",
|
||||
"sbu_pullup",
|
||||
"update_sdp_enum_timeout",
|
||||
"usb_limit_accessory_current",
|
||||
"usb_limit_accessory_enable",
|
||||
"usb_limit_sink_current",
|
||||
"usb_limit_sink_enable",
|
||||
"usb_limit_source_enable",
|
||||
};
|
||||
std::vector<std::string> files;
|
||||
|
||||
std::string content;
|
||||
std::string tcpcRegistersPath(std::string(directory) + "/registers");
|
||||
|
||||
dumpFileContent("TCPC Registers", tcpcRegistersPath.c_str());
|
||||
|
||||
printTitle(max77759TcpcHead);
|
||||
ret = getFilesInDir(directory, &files);
|
||||
if (ret < 0) {
|
||||
for (auto &tcpcVal : max77759Tcpc)
|
||||
printf("%s\n", tcpcVal[0]);
|
||||
return;
|
||||
}
|
||||
for (auto &file : files) {
|
||||
for (auto &tcpcVal : max77759Tcpc) {
|
||||
printf("%s ", tcpcVal[0]);
|
||||
if (std::string::npos == std::string(file).find(i2cSubDirMatch)) {
|
||||
continue;
|
||||
}
|
||||
std::string fileName = directory + file + "/" + std::string(tcpcVal[1]);
|
||||
if (!android::base::ReadFileToString(fileName, &content)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
for (auto& tcpcVal : max77759Tcpc) {
|
||||
std::string filename = std::string(directory) + "/" + std::string(tcpcVal);
|
||||
printf("%s: ", tcpcVal);
|
||||
android::base::ReadFileToString(filename, &content);
|
||||
if (!content.empty() && (content.back() == '\n' || content.back() == '\r'))
|
||||
content.pop_back();
|
||||
printf("%s\n", content.c_str());
|
||||
}
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
void dumpPdEngine() {
|
||||
const char* pdEngine [][2] {
|
||||
{"PD Engine", "/dev/logbuffer_usbpd"},
|
||||
{"PPS-google_cpm", "/dev/logbuffer_cpm"},
|
||||
{"PPS-dc", "/dev/logbuffer_pca9468"},
|
||||
const char* pdEngine [][3] {
|
||||
{"TCPC logbuffer", "/dev/logbuffer_usbpd"},
|
||||
{"pogo_transport logbuffer", "/dev/logbuffer_pogo_transport"},
|
||||
{"PPS-google_cpm logbuffer", "/dev/logbuffer_cpm"},
|
||||
{"PPS-pca9468 logbuffer", "/dev/logbuffer_pca9468"},
|
||||
};
|
||||
for (const auto &row : pdEngine) {
|
||||
dumpFileContent(row[0], row[1]);
|
||||
}
|
||||
}
|
||||
void dumpWc68() {
|
||||
const char* wc68Title = "WC68";
|
||||
const char* wc68File = "/dev/logbuffer_wc68";
|
||||
dumpFileContent(wc68Title, wc68File);
|
||||
}
|
||||
void dumpLn8411() {
|
||||
const char* ln8411Title = "LN8411";
|
||||
const char* ln8411File = "/dev/logbuffer_ln8411";
|
||||
dumpFileContent(ln8411Title, ln8411File);
|
||||
}
|
||||
void dumpBatteryHealth() {
|
||||
const char* batteryHealth [][2] {
|
||||
{"Battery Health", "/sys/class/power_supply/battery/health_index_stats"},
|
||||
{"Battery Health SoC Residency", "/sys/class/power_supply/battery/swelling_data"},
|
||||
{"BMS", "/dev/logbuffer_ssoc"},
|
||||
{"TTF", "/dev/logbuffer_ttf"},
|
||||
{"TTF details", "/sys/class/power_supply/battery/ttf_details"},
|
||||
|
@ -281,7 +291,7 @@ void dumpBatteryDefend() {
|
|||
sort(files.begin(), files.end());
|
||||
for (auto &file : files) {
|
||||
fileLocation = std::string(config[1]) + std::string(file);
|
||||
if (!android::base::ReadFileToString(fileLocation, &content)) {
|
||||
if (!android::base::ReadFileToString(fileLocation, &content) || content.empty()) {
|
||||
content = "\n";
|
||||
}
|
||||
printf("%s: %s", file.c_str(), content.c_str());
|
||||
|
@ -291,15 +301,150 @@ void dumpBatteryDefend() {
|
|||
files.clear();
|
||||
}
|
||||
}
|
||||
void dumpBatteryCaretaker() {
|
||||
const char* aacpConfig [][3] {
|
||||
{"AACP Version",
|
||||
"/sys/devices/platform/google,battery/power_supply/battery/", "aacp_"},
|
||||
{"AACR Config",
|
||||
"/sys/devices/platform/google,battery/power_supply/battery/", "aacr_"},
|
||||
{"AAFV Config",
|
||||
"/sys/devices/platform/google,battery/power_supply/battery/", "aafv_"},
|
||||
{"AACT Config",
|
||||
"/sys/devices/platform/google,battery/power_supply/battery/", "aact_"},
|
||||
{"AACC",
|
||||
"/sys/devices/platform/google,battery/power_supply/battery/", "aacc"},
|
||||
};
|
||||
std::vector<std::string> files;
|
||||
struct dirent *entry;
|
||||
std::string content;
|
||||
std::string fileLocation;
|
||||
for (auto &config : aacpConfig) {
|
||||
DIR *dir = opendir(config[1]);
|
||||
if (dir == NULL)
|
||||
continue;
|
||||
printTitle(config[0]);
|
||||
while ((entry = readdir(dir)) != NULL) {
|
||||
if (std::string(entry->d_name).find(config[2]) != std::string::npos &&
|
||||
strncmp(config[2], entry->d_name, strlen(config[2])) == 0) {
|
||||
files.push_back(entry->d_name);
|
||||
}
|
||||
}
|
||||
closedir(dir);
|
||||
sort(files.begin(), files.end());
|
||||
for (auto &file : files) {
|
||||
fileLocation = std::string(config[1]) + std::string(file);
|
||||
if (!android::base::ReadFileToString(fileLocation, &content) || content.empty()) {
|
||||
content = "\n";
|
||||
}
|
||||
printf("%s: %s", file.c_str(), content.c_str());
|
||||
if (content.back() != '\n')
|
||||
printf("\n");
|
||||
}
|
||||
files.clear();
|
||||
}
|
||||
}
|
||||
void printValuesOfDirectory(const char *directory, std::string debugfs, const char *strMatch) {
|
||||
std::vector<std::string> files;
|
||||
auto info = directory;
|
||||
std::string content;
|
||||
struct dirent *entry;
|
||||
DIR *dir = opendir(debugfs.c_str());
|
||||
if (dir == NULL)
|
||||
return;
|
||||
|
||||
printTitle((debugfs + std::string(strMatch) + "/" + std::string(info)).c_str());
|
||||
while ((entry = readdir(dir)) != NULL)
|
||||
if (std::string(entry->d_name).find(strMatch) != std::string::npos)
|
||||
files.push_back(entry->d_name);
|
||||
closedir(dir);
|
||||
|
||||
sort(files.begin(), files.end());
|
||||
|
||||
for (auto &file : files) {
|
||||
std::string fileDirectory = debugfs + file;
|
||||
std::string fileLocation = fileDirectory + "/" + std::string(info);
|
||||
if (!android::base::ReadFileToString(fileLocation, &content)) {
|
||||
content = "\n";
|
||||
}
|
||||
|
||||
printf("%s:\n%s", fileDirectory.c_str(), content.c_str());
|
||||
|
||||
if (content.back() != '\n')
|
||||
printf("\n");
|
||||
}
|
||||
files.clear();
|
||||
}
|
||||
void dumpChg() {
|
||||
const std::string pmic_bus = "/sys/devices/platform/10d60000.hsi2c/i2c-13/13-0066";
|
||||
const char* chg_reg_dump_file = "/sys/class/power_supply/main-charger/device/registers_dump";
|
||||
const std::string chg_name_cmd = "/sys/class/power_supply/main-charger/device/name";
|
||||
const std::string pmic_name_cmd = pmic_bus + "/name";
|
||||
const std::string pmic_reg_dump_file = pmic_bus + "/registers_dump";
|
||||
const std::string reg_dump_str = " registers dump";
|
||||
const char* chgConfig [][2] {
|
||||
{"DC_registers dump", "/sys/class/power_supply/pca94xx-mains/device/registers_dump"},
|
||||
};
|
||||
std::string chg_name;
|
||||
std::string pmic_name;
|
||||
|
||||
printf("\n");
|
||||
|
||||
int ret = android::base::ReadFileToString(chg_name_cmd, &chg_name);
|
||||
if (ret && !chg_name.empty()) {
|
||||
chg_name.erase(chg_name.length() - 1); // remove new line
|
||||
const std::string chg_reg_dump_title = chg_name + reg_dump_str;
|
||||
|
||||
/* CHG reg dump */
|
||||
dumpFileContent(chg_reg_dump_title.c_str(), chg_reg_dump_file);
|
||||
}
|
||||
|
||||
ret = android::base::ReadFileToString(pmic_name_cmd, &pmic_name);
|
||||
if (ret && !pmic_name.empty()) {
|
||||
pmic_name.erase(pmic_name.length() - 1); // remove new line
|
||||
const std::string pmic_reg_dump_title = pmic_name + reg_dump_str;
|
||||
|
||||
/* PMIC reg dump */
|
||||
dumpFileContent(pmic_reg_dump_title.c_str(), pmic_reg_dump_file.c_str());
|
||||
}
|
||||
|
||||
for (auto &config : chgConfig) {
|
||||
dumpFileContent(config[0], config[1]);
|
||||
}
|
||||
}
|
||||
void dumpChgUserDebug() {
|
||||
const std::string debugfs = "/d/";
|
||||
const char *maxFgDir = "/d/maxfg";
|
||||
const char *maxFgStrMatch = "maxfg";
|
||||
const char *maxBaseFgDir = "/d/maxfg_base";
|
||||
const char *maxBaseFgStrMatch = "maxfg_base";
|
||||
const char *chgTblName = "Charging table dump";
|
||||
const char *chgTblDir = "/d/google_battery/chg_raw_profile";
|
||||
|
||||
const char *maxFgInfo [] {
|
||||
"fg_model",
|
||||
"algo_ver",
|
||||
"model_ok",
|
||||
};
|
||||
|
||||
if (isUserBuild())
|
||||
return;
|
||||
|
||||
dumpFileContent(chgTblName, chgTblDir);
|
||||
|
||||
if (isValidDir(maxFgDir)) {
|
||||
for (auto & directory : maxFgInfo) {
|
||||
printValuesOfDirectory(directory, debugfs, maxFgStrMatch);
|
||||
}
|
||||
} else if (isValidDir(maxBaseFgDir)) {
|
||||
for (auto & directory : maxFgInfo) {
|
||||
printValuesOfDirectory(directory, debugfs, maxBaseFgStrMatch);
|
||||
}
|
||||
}
|
||||
}
|
||||
void dumpBatteryEeprom() {
|
||||
const char *title = "Battery EEPROM";
|
||||
const char *files[] {
|
||||
"/sys/devices/platform/10970000.hsi2c/i2c-4/4-0050/eeprom",
|
||||
"/sys/devices/platform/10970000.hsi2c/i2c-5/5-0050/eeprom",
|
||||
"/sys/devices/platform/10da0000.hsi2c/i2c-6/6-0050/eeprom",
|
||||
"/sys/devices/platform/10da0000.hsi2c/i2c-7/7-0050/eeprom",
|
||||
"/sys/devices/platform/10c90000.hsi2c/i2c-7/7-0050/eeprom",
|
||||
"/sys/devices/platform/10c90000.hsi2c/i2c-6/6-0050/eeprom",
|
||||
"/sys/devices/platform/10da0000.hsi2c/i2c-15/15-0050/eeprom",
|
||||
};
|
||||
std::string result;
|
||||
std::string xxdCmd;
|
||||
|
@ -325,7 +470,7 @@ void dumpChargerStats() {
|
|||
std::string content;
|
||||
struct dirent *entry;
|
||||
dumpFileContent(chgStatsTitle, chgStatsLocation);
|
||||
if (!isUserBuild())
|
||||
if (isUserBuild())
|
||||
return;
|
||||
for (auto &stat : chargerStats) {
|
||||
DIR *dir = opendir(stat[1]);
|
||||
|
@ -370,7 +515,7 @@ void dumpGvoteables() {
|
|||
std::string content;
|
||||
std::vector<std::string> files;
|
||||
int ret;
|
||||
if (!isUserBuild())
|
||||
if (isUserBuild())
|
||||
return;
|
||||
ret = getFilesInDir(directory, &files);
|
||||
if (ret < 0)
|
||||
|
@ -658,10 +803,11 @@ int main() {
|
|||
dumpLogBufferTcpm();
|
||||
dumpTcpc();
|
||||
dumpPdEngine();
|
||||
dumpWc68();
|
||||
dumpLn8411();
|
||||
dumpBatteryHealth();
|
||||
dumpBatteryDefend();
|
||||
dumpBatteryCaretaker();
|
||||
dumpChg();
|
||||
dumpChgUserDebug();
|
||||
dumpBatteryEeprom();
|
||||
dumpChargerStats();
|
||||
dumpWlcLogs();
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<manifest version="1.0" type="device">
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.health</name>
|
||||
<version>3</version>
|
||||
<version>4</version>
|
||||
<fqname>IHealth/default</fqname>
|
||||
</hal>
|
||||
</manifest>
|
||||
|
|
|
@ -276,6 +276,9 @@
|
|||
<!-- Enable Zram writeback feature to allow unused pages in zram be written to flash. -->
|
||||
<bool name="config_zramWriteback">true</bool>
|
||||
|
||||
<!-- the number of the max cached processes in the system. -->
|
||||
<integer name="config_customizedMaxCachedProcesses">1024</integer>
|
||||
|
||||
<!-- List of system components which are allowed to receive ServiceState entries in an
|
||||
un-sanitized form, even if the location toggle is off. This is intended ONLY for system
|
||||
components, such as the telephony stack, which require access to the full ServiceState for
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
-->
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<!-- Content description of the data connection type 5G UW. [CHAR LIMIT=NONE] -->
|
||||
<string name="data_connection_5g_plus" translatable="false">5G UW</string>
|
||||
</resources>
|
|
@ -1,22 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
-->
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<!-- Content description of the data connection type 5G UW. [CHAR LIMIT=NONE] -->
|
||||
<string name="data_connection_5g_plus" translatable="false">5G UW</string>
|
||||
</resources>
|
|
@ -159,6 +159,21 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "HighPerformanceWI",
|
||||
"Actions": [
|
||||
{
|
||||
"Name": "WriteFile",
|
||||
"Params":
|
||||
{
|
||||
"FilePath": "/proc/vendor_sched/groups/fg_wi/set_task_group",
|
||||
"ProcFilePath": "/proc/vendor_sched/groups/fg_wi/set_proc_group",
|
||||
"Value": "<pid>",
|
||||
"LogFailures": "false"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "RealtimePerformance",
|
||||
"Actions": [
|
||||
|
@ -250,6 +265,202 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "AdpfSet",
|
||||
"Actions": [
|
||||
{
|
||||
"Name": "WriteFile",
|
||||
"Params":
|
||||
{
|
||||
"FilePath": "/proc/vendor_sched/sched_qos/adpf_set",
|
||||
"Value": "<pid>",
|
||||
"LogFailures": "false"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "AdpfClear",
|
||||
"Actions": [
|
||||
{
|
||||
"Name": "WriteFile",
|
||||
"Params":
|
||||
{
|
||||
"FilePath": "/proc/vendor_sched/sched_qos/adpf_clear",
|
||||
"Value": "<pid>",
|
||||
"LogFailures": "false"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "BoostPrioSet",
|
||||
"Actions": [
|
||||
{
|
||||
"Name": "WriteFile",
|
||||
"Params":
|
||||
{
|
||||
"FilePath": "/proc/vendor_sched/sched_qos/boost_prio_set",
|
||||
"Value": "<pid>",
|
||||
"LogFailures": "false"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "BoostPrioClear",
|
||||
"Actions": [
|
||||
{
|
||||
"Name": "WriteFile",
|
||||
"Params":
|
||||
{
|
||||
"FilePath": "/proc/vendor_sched/sched_qos/boost_prio_clear",
|
||||
"Value": "<pid>",
|
||||
"LogFailures": "false"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "PreemptWakeupSet",
|
||||
"Actions": [
|
||||
{
|
||||
"Name": "WriteFile",
|
||||
"Params":
|
||||
{
|
||||
"FilePath": "/proc/vendor_sched/sched_qos/preempt_wakeup_set",
|
||||
"Value": "<pid>",
|
||||
"LogFailures": "false"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "PreemptWakeupClear",
|
||||
"Actions": [
|
||||
{
|
||||
"Name": "WriteFile",
|
||||
"Params":
|
||||
{
|
||||
"FilePath": "/proc/vendor_sched/sched_qos/preempt_wakeup_clear",
|
||||
"Value": "<pid>",
|
||||
"LogFailures": "false"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "PreferFitSet",
|
||||
"Actions": [
|
||||
{
|
||||
"Name": "WriteFile",
|
||||
"Params":
|
||||
{
|
||||
"FilePath": "/proc/vendor_sched/sched_qos/prefer_fit_set",
|
||||
"Value": "<pid>",
|
||||
"LogFailures": "false"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "PreferFitClear",
|
||||
"Actions": [
|
||||
{
|
||||
"Name": "WriteFile",
|
||||
"Params":
|
||||
{
|
||||
"FilePath": "/proc/vendor_sched/sched_qos/prefer_fit_clear",
|
||||
"Value": "<pid>",
|
||||
"LogFailures": "false"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "PreferIdleSet",
|
||||
"Actions": [
|
||||
{
|
||||
"Name": "WriteFile",
|
||||
"Params":
|
||||
{
|
||||
"FilePath": "/proc/vendor_sched/sched_qos/prefer_idle_set",
|
||||
"Value": "<pid>",
|
||||
"LogFailures": "false"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "PreferIdleClear",
|
||||
"Actions": [
|
||||
{
|
||||
"Name": "WriteFile",
|
||||
"Params":
|
||||
{
|
||||
"FilePath": "/proc/vendor_sched/sched_qos/prefer_idle_clear",
|
||||
"Value": "<pid>",
|
||||
"LogFailures": "false"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "AutoUclampMaxSet",
|
||||
"Actions": [
|
||||
{
|
||||
"Name": "WriteFile",
|
||||
"Params":
|
||||
{
|
||||
"FilePath": "/proc/vendor_sched/sched_qos/auto_uclamp_max_set",
|
||||
"Value": "<pid>",
|
||||
"LogFailures": "false"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "AutoUclampMaxClear",
|
||||
"Actions": [
|
||||
{
|
||||
"Name": "WriteFile",
|
||||
"Params":
|
||||
{
|
||||
"FilePath": "/proc/vendor_sched/sched_qos/auto_uclamp_max_clear",
|
||||
"Value": "<pid>",
|
||||
"LogFailures": "false"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "PreferHighCapSet",
|
||||
"Actions": [
|
||||
{
|
||||
"Name": "WriteFile",
|
||||
"Params":
|
||||
{
|
||||
"FilePath": "/proc/vendor_sched/sched_qos/prefer_high_cap_set",
|
||||
"Value": "<pid>",
|
||||
"LogFailures": "false"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "PreferHighCapClear",
|
||||
"Actions": [
|
||||
{
|
||||
"Name": "WriteFile",
|
||||
"Params":
|
||||
{
|
||||
"FilePath": "/proc/vendor_sched/sched_qos/prefer_high_cap_clear",
|
||||
"Value": "<pid>",
|
||||
"LogFailures": "false"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "ResetUclampGrp",
|
||||
"Actions": [
|
||||
|
@ -287,11 +498,35 @@
|
|||
},
|
||||
{
|
||||
"Name": "OtaProfiles",
|
||||
"Profiles": [ "OtaPerformance", "ProcessCapacityNormal", "LowIoPriority", "TimerSlackHigh" ]
|
||||
"Profiles": [ "OtaPerformance", "ServiceCapacityLow", "LowIoPriority", "TimerSlackHigh" ]
|
||||
},
|
||||
{
|
||||
"Name": "SCHED_QOS_SENSITIVE_EXTREME_SET",
|
||||
"Profiles": [ "AdpfSet", "PreferIdleSet", "PreferFitSet", "BoostPrioSet", "PreemptWakeupSet" ]
|
||||
},
|
||||
{
|
||||
"Name": "SCHED_QOS_SENSITIVE_EXTREME_CLEAR",
|
||||
"Profiles": [ "AdpfClear", "PreferIdleClear", "PreferFitClear", "BoostPrioClear", "PreemptWakeupClear" ]
|
||||
},
|
||||
{
|
||||
"Name": "SCHED_QOS_SENSITIVE_STANDARD_SET",
|
||||
"Profiles": [ "AdpfSet", "PreferIdleSet", "PreferFitSet" ]
|
||||
},
|
||||
{
|
||||
"Name": "SCHED_QOS_SENSITIVE_STANDARD_CLEAR",
|
||||
"Profiles": [ "AdpfClear", "PreferIdleClear", "PreferFitClear" ]
|
||||
},
|
||||
{
|
||||
"Name": "SCHED_QOS_POWER_EFFICIENCY_SET",
|
||||
"Profiles": [ "AutoUclampMaxSet" ]
|
||||
},
|
||||
{
|
||||
"Name": "SCHED_QOS_POWER_EFFICIENCY_CLEAR",
|
||||
"Profiles": [ "AutoUclampMaxClear" ]
|
||||
},
|
||||
{
|
||||
"Name": "InputPolicy",
|
||||
"Profiles": [ "ResetUclampGrp" ]
|
||||
"Profiles": [ "MaxPerformance", "SCHED_QOS_SENSITIVE_EXTREME_SET" ]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -990,6 +990,7 @@ void queryVersionHelper(android::hardware::usb::Usb *usb,
|
|||
Status status;
|
||||
pthread_mutex_lock(&usb->mLock);
|
||||
status = getPortStatusHelper(usb, currentPortStatus);
|
||||
if (status == Status::SUCCESS && currentPortStatus->size() > 0) {
|
||||
queryMoistureDetectionStatus(usb, currentPortStatus);
|
||||
queryPowerTransferStatus(usb, currentPortStatus);
|
||||
queryNonCompliantChargerStatus(currentPortStatus);
|
||||
|
@ -1002,6 +1003,9 @@ void queryVersionHelper(android::hardware::usb::Usb *usb,
|
|||
} else {
|
||||
ALOGI("Notifying userspace skipped. Callback is NULL");
|
||||
}
|
||||
} else {
|
||||
ALOGI("%s skipped. currentPortStatus is empty", __func__);
|
||||
}
|
||||
pthread_mutex_unlock(&usb->mLock);
|
||||
}
|
||||
|
||||
|
|
|
@ -19,8 +19,9 @@ LOCAL_WIFI_PATH := device/google/gs201/wifi/qcom
|
|||
# wlan flags
|
||||
BOARD_WLAN_DEVICE := qcwcn
|
||||
BOARD_WLAN_CHIP := wcn6740
|
||||
BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE)
|
||||
BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE)
|
||||
# Use full namespace path for both BOARD_WPA_SUPPLICANT_PRIVATE_LIB and BOARD_HOSTAPD_PRIVATE_LIB due to wlan module for sw5100 has its own namespace.
|
||||
BOARD_WPA_SUPPLICANT_PRIVATE_LIB := //hardware/qcom/wlan/wcn6740/qcwcn/wpa_supplicant_8_lib:lib_driver_cmd_$(BOARD_WLAN_DEVICE)
|
||||
BOARD_HOSTAPD_PRIVATE_LIB := //hardware/qcom/wlan/wcn6740/qcwcn/wpa_supplicant_8_lib:lib_driver_cmd_$(BOARD_WLAN_DEVICE)
|
||||
BOARD_WPA_SUPPLICANT_DRIVER := NL80211
|
||||
BOARD_HOSTAPD_DRIVER := NL80211
|
||||
WPA_SUPPLICANT_VERSION := VER_0_8_X
|
||||
|
@ -36,7 +37,7 @@ 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_FEATURE_HOSTAPD_11AX := true
|
||||
WIFI_DRIVER_STATE_CTRL_PARAM := "/dev/wlan"
|
||||
WIFI_DRIVER_STATE_ON := "ON"
|
||||
WIFI_DRIVER_STATE_OFF := "OFF"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue