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
|
TARGET_SOC_NAME := google
|
||||||
|
|
||||||
USES_DEVICE_GOOGLE_GS201 := true
|
USES_DEVICE_GOOGLE_GS201 := true
|
||||||
|
$(call soong_config_set,CitadelProvision,target_soc,gs201)
|
||||||
|
|
||||||
TARGET_ARCH := arm64
|
TARGET_ARCH := arm64
|
||||||
TARGET_ARCH_VARIANT := armv8-2a
|
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 += rcupdate.rcu_expedited=1 rcu_nocbs=all rcutree.enable_rcu_lazy
|
||||||
BOARD_KERNEL_CMDLINE += stack_depot_disable=off page_pinner=on
|
BOARD_KERNEL_CMDLINE += stack_depot_disable=off page_pinner=on
|
||||||
BOARD_KERNEL_CMDLINE += swiotlb=1024
|
BOARD_KERNEL_CMDLINE += swiotlb=1024
|
||||||
|
BOARD_KERNEL_CMDLINE += cgroup.memory=nokmem
|
||||||
BOARD_KERNEL_CMDLINE += disable_dma32=on
|
BOARD_KERNEL_CMDLINE += disable_dma32=on
|
||||||
BOARD_BOOTCONFIG += androidboot.boot_devices=14700000.ufs
|
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_PIXEL_FORMAT := ABGR_8888
|
||||||
TARGET_RECOVERY_UI_MARGIN_HEIGHT := 165
|
TARGET_RECOVERY_UI_MARGIN_HEIGHT := 165
|
||||||
TARGET_RECOVERY_UI_LIB := \
|
TARGET_RECOVERY_UI_LIB := \
|
||||||
librecovery_ui_pixel \
|
//hardware/google/pixel/recovery:librecovery_ui_pixel \
|
||||||
libfstab
|
libfstab
|
||||||
|
|
||||||
AB_OTA_UPDATER := true
|
AB_OTA_UPDATER := true
|
||||||
|
@ -193,7 +195,16 @@ BOARD_SUPPORT_MFC_ENC_RGB := true
|
||||||
BOARD_USE_BLOB_ALLOCATOR := false
|
BOARD_USE_BLOB_ALLOCATOR := false
|
||||||
BOARD_SUPPORT_MFC_ENC_BT2020 := true
|
BOARD_SUPPORT_MFC_ENC_BT2020 := true
|
||||||
BOARD_SUPPORT_FLEXIBLE_P010 := 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
|
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/end
|
||||||
chown system system /sys/devices/platform/sjtag_gsa/interface/pubkey
|
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
|
on property:vendor.debug.ramdump.force_crash=true
|
||||||
write /sys/kernel/pixel_debug/trigger "null"
|
write /sys/kernel/pixel_debug/trigger "null"
|
||||||
|
|
||||||
|
|
|
@ -19,10 +19,6 @@ on init
|
||||||
# Disable util-awareness
|
# Disable util-awareness
|
||||||
write /proc/vendor_sched/teo_util_threshold "1024 1024 1024"
|
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/bg/set_task_group
|
||||||
chown system system /proc/vendor_sched/groups/cam/set_task_group
|
chown system system /proc/vendor_sched/groups/cam/set_task_group
|
||||||
chown system system /proc/vendor_sched/groups/fg/set_task_group
|
chown system system /proc/vendor_sched/groups/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/groups/ota/set_proc_group
|
||||||
chmod 0220 /proc/vendor_sched/prefer_idle_set
|
chmod 0220 /proc/vendor_sched/prefer_idle_set
|
||||||
chmod 0220 /proc/vendor_sched/prefer_idle_clear
|
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/pmu_poll_time
|
||||||
chmod 0220 /proc/vendor_sched/uclamp_fork_reset_clear
|
chmod 0220 /proc/vendor_sched/uclamp_fork_reset_clear
|
||||||
chmod 0220 /proc/vendor_sched/uclamp_fork_reset_set
|
chmod 0220 /proc/vendor_sched/uclamp_fork_reset_set
|
||||||
|
|
||||||
start vendor.keymaster-4-0
|
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
|
# ZRAM setup
|
||||||
write /sys/block/zram0/comp_algorithm lz77eh
|
write /sys/block/zram0/comp_algorithm lz77eh
|
||||||
write /proc/sys/vm/page-cluster 0
|
write /proc/sys/vm/page-cluster 0
|
||||||
|
@ -156,14 +229,11 @@ on init
|
||||||
# governor setting
|
# governor setting
|
||||||
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor sched_pixel
|
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor sched_pixel
|
||||||
write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/up_rate_limit_us 500
|
write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/up_rate_limit_us 500
|
||||||
write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_us 5000
|
|
||||||
write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_scale_pow 2
|
write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_scale_pow 2
|
||||||
write /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor sched_pixel
|
write /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor sched_pixel
|
||||||
write /sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/up_rate_limit_us 500
|
write /sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/up_rate_limit_us 500
|
||||||
write /sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/down_rate_limit_us 20000
|
|
||||||
write /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor sched_pixel
|
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/up_rate_limit_us 500
|
||||||
write /sys/devices/system/cpu/cpu6/cpufreq/sched_pixel/down_rate_limit_us 20000
|
|
||||||
|
|
||||||
# memlat cpuidle awareness setting
|
# memlat cpuidle awareness setting
|
||||||
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu0_memlat@17000010/memlat_cpuidle_state_aware 2
|
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 RW partitions which need run fsck
|
||||||
mount_all --late
|
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
|
on post-fs-data
|
||||||
# Log data folder
|
# Log data folder
|
||||||
mkdir /data/vendor 0771 radio system
|
mkdir /data/vendor 0771 radio system
|
||||||
|
@ -373,8 +448,8 @@ on post-fs-data
|
||||||
restorecon /sys/kernel/debug/tracing/trace_marker
|
restorecon /sys/kernel/debug/tracing/trace_marker
|
||||||
|
|
||||||
# ranging sensor
|
# ranging sensor
|
||||||
chown system system /dev/stmvl53l1_ranging
|
chown system system /dev/ispolin_ranging
|
||||||
chmod 0660 /dev/stmvl53l1_ranging
|
chmod 0660 /dev/ispolin_ranging
|
||||||
|
|
||||||
# Factory calibration files
|
# Factory calibration files
|
||||||
chmod 0771 /mnt/vendor/persist/camera
|
chmod 0771 /mnt/vendor/persist/camera
|
||||||
|
|
|
@ -180,10 +180,14 @@
|
||||||
</exception>
|
</exception>
|
||||||
|
|
||||||
<exception package="com.google.android.apps.pixel.relationships">
|
<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_CALL_LOG" fixed="false"/>
|
||||||
<permission name="android.permission.READ_CONTACTS" fixed="false"/>
|
<permission name="android.permission.READ_CONTACTS" fixed="false"/>
|
||||||
<permission name="android.permission.WRITE_CONTACTS" fixed="false"/>
|
<permission name="android.permission.WRITE_CONTACTS" fixed="false"/>
|
||||||
</exception>
|
</exception>
|
||||||
|
<exception
|
||||||
|
package="com.google.android.apps.privacy.wildlife">
|
||||||
|
<permission name="android.permission.READ_PHONE_STATE" fixed="false"/>
|
||||||
|
</exception>
|
||||||
</exceptions>
|
</exceptions>
|
||||||
|
|
||||||
|
|
21
device.mk
21
device.mk
|
@ -219,6 +219,9 @@ endif
|
||||||
# Use for GRIL
|
# Use for GRIL
|
||||||
USES_LASSEN_MODEM := true
|
USES_LASSEN_MODEM := true
|
||||||
$(call soong_config_set, vendor_ril_google_feature, use_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)
|
ifeq ($(USES_GOOGLE_DIALER_CARRIER_SETTINGS),true)
|
||||||
USE_GOOGLE_DIALER := true
|
USE_GOOGLE_DIALER := true
|
||||||
|
@ -393,6 +396,10 @@ PRODUCT_COPY_FILES += \
|
||||||
|
|
||||||
include device/google/gs-common/insmod/insmod.mk
|
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
|
# For creating dtbo image
|
||||||
PRODUCT_HOST_PACKAGES += \
|
PRODUCT_HOST_PACKAGES += \
|
||||||
mkdtimg
|
mkdtimg
|
||||||
|
@ -959,9 +966,6 @@ USE_EARLY_SEND_DEVICE_INFO := true
|
||||||
ifneq ($(BOARD_WITHOUT_RADIO),true)
|
ifneq ($(BOARD_WITHOUT_RADIO),true)
|
||||||
$(call inherit-product-if-exists, vendor/samsung_slsi/telephony/$(BOARD_USES_SHARED_VENDOR_TELEPHONY)/common/device-vendor.mk)
|
$(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
|
# modem logging binary/configs
|
||||||
PRODUCT_PACKAGES += modem_logging_control
|
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/nnapi_stable_aidl \
|
||||||
vendor/google_devices/gs201/proprietary/gchips/tpu/aidl \
|
vendor/google_devices/gs201/proprietary/gchips/tpu/aidl \
|
||||||
vendor/google_devices/gs201/proprietary/gchips/tpu/hal \
|
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
|
vendor/google_devices/gs201/proprietary/gchips/tpu/tachyon/service
|
||||||
# TPU firmware
|
# TPU firmware
|
||||||
PRODUCT_PACKAGES += edgetpu-janeiro.fw
|
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
|
DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/gs201/device_framework_matrix_product.xml
|
||||||
|
|
||||||
# Preopt SystemUI
|
# Preopt SystemUI
|
||||||
|
ifneq ($(RELEASE_SYSTEMUI_USE_SPEED_PROFILE), true)
|
||||||
PRODUCT_DEXPREOPT_SPEED_APPS += SystemUIGoogle # For internal
|
PRODUCT_DEXPREOPT_SPEED_APPS += SystemUIGoogle # For internal
|
||||||
PRODUCT_DEXPREOPT_SPEED_APPS += SystemUI # For AOSP
|
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 += \
|
PRODUCT_PROPERTY_OVERRIDES += \
|
||||||
dalvik.vm.systemuicompilerfilter=speed
|
dalvik.vm.systemuicompilerfilter=speed
|
||||||
|
endif
|
||||||
|
|
||||||
# Keymint configuration
|
# Keymint configuration
|
||||||
PRODUCT_COPY_FILES += \
|
PRODUCT_COPY_FILES += \
|
||||||
|
|
|
@ -118,7 +118,7 @@
|
||||||
</hal>
|
</hal>
|
||||||
<hal format="aidl" optional="true">
|
<hal format="aidl" optional="true">
|
||||||
<name>vendor.google.wifi_ext</name>
|
<name>vendor.google.wifi_ext</name>
|
||||||
<version>2-3</version>
|
<version>2-4</version>
|
||||||
<interface>
|
<interface>
|
||||||
<name>IWifiExt</name>
|
<name>IWifiExt</name>
|
||||||
<instance>default</instance>
|
<instance>default</instance>
|
||||||
|
|
|
@ -43,9 +43,19 @@ int getCommandOutput(const char *cmd, std::string *output) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
bool isValidFile(const char *file) {
|
bool isValidFile(const char *file) {
|
||||||
if (!access(file, R_OK)) {
|
FILE *fp = fopen(file, "r");
|
||||||
return false;
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
bool isUserBuild() {
|
bool isUserBuild() {
|
||||||
|
@ -122,8 +132,8 @@ void dumpPowerSupplyStats() {
|
||||||
{"Power supply property gcpm", "/sys/class/power_supply/gcpm/uevent"},
|
{"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 gcpm_pps", "/sys/class/power_supply/gcpm_pps/uevent"},
|
||||||
{"Power supply property main-charger", "/sys/class/power_supply/main-charger/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 pca94xx-mains", "/sys/class/power_supply/pca94xx-mains/uevent"},
|
||||||
{"Power supply property tcpm", "/sys/class/power_supply/tcpm-source-psy-8-0025/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 usb", "/sys/class/power_supply/usb/uevent"},
|
||||||
{"Power supply property wireless", "/sys/class/power_supply/wireless/uevent"},
|
{"Power supply property wireless", "/sys/class/power_supply/wireless/uevent"},
|
||||||
};
|
};
|
||||||
|
@ -133,36 +143,41 @@ void dumpPowerSupplyStats() {
|
||||||
}
|
}
|
||||||
void dumpMaxFg() {
|
void dumpMaxFg() {
|
||||||
const char *maxfgLoc = "/sys/class/power_supply/maxfg";
|
const char *maxfgLoc = "/sys/class/power_supply/maxfg";
|
||||||
|
const char *maxfgDualLoc = "/sys/class/power_supply/maxfg_base";
|
||||||
const char *maxfg [][2] = {
|
const char *maxfg [][2] = {
|
||||||
{"Power supply property maxfg", "/sys/class/power_supply/maxfg/uevent"},
|
{"Power supply property maxfg", "/sys/class/power_supply/maxfg/uevent"},
|
||||||
{"m5_state", "/sys/class/power_supply/maxfg/m5_model_state"},
|
{"m5_state", "/sys/class/power_supply/maxfg/m5_model_state"},
|
||||||
{"maxfg", "/dev/logbuffer_maxfg"},
|
{"maxfg registers", "/sys/class/power_supply/maxfg/registers_dump"},
|
||||||
{"maxfg", "/dev/logbuffer_maxfg_monitor"},
|
{"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_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"},
|
{"m5_state", "/sys/class/power_supply/maxfg_base/m5_model_state"},
|
||||||
{"maxfg_base", "/dev/logbuffer_maxfg_base"},
|
{"maxfg_base logbuffer", "/dev/logbuffer_maxfg_base"},
|
||||||
{"maxfg_flip", "/dev/logbuffer_maxfg_flip"},
|
{"maxfg_secondary logbuffer", "/dev/logbuffer_maxfg_secondary"},
|
||||||
{"maxfg_base", "/dev/logbuffer_maxfg_base_monitor"},
|
{"maxfg_base logbuffer", "/dev/logbuffer_maxfg_base_monitor"},
|
||||||
{"maxfg_flip", "/dev/logbuffer_maxfg_flip_monitor"},
|
{"maxfg_secondary logbuffer", "/dev/logbuffer_maxfg_secondary_monitor"},
|
||||||
|
{"dual_batt logbuffer", "/dev/logbuffer_dual_batt"},
|
||||||
};
|
};
|
||||||
const char *maxfgHistoryName = "Maxim FG History";
|
const char *maxfgHistoryName = "Maxim FG History";
|
||||||
const char *maxfgHistoryDir = "/dev/maxfg_history";
|
const char *maxfgHistoryDir = "/dev/maxfg_history";
|
||||||
std::string content;
|
std::string content;
|
||||||
if (isValidFile(maxfgLoc)) {
|
if (isValidDir(maxfgLoc)) {
|
||||||
for (const auto &row : maxfg) {
|
for (const auto &row : maxfg) {
|
||||||
dumpFileContent(row[0], row[1]);
|
dumpFileContent(row[0], row[1]);
|
||||||
}
|
}
|
||||||
} else {
|
} else if (isValidDir(maxfgDualLoc)){
|
||||||
for (const auto &row : maxfgFlip) {
|
for (const auto &row : maxfgDual) {
|
||||||
dumpFileContent(row[0], row[1]);
|
dumpFileContent(row[0], row[1]);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (isValidFile(maxfgHistoryDir)) {
|
if (isValidFile(maxfgHistoryDir)) {
|
||||||
dumpFileContent(maxfgHistoryName, maxfgHistoryDir);
|
dumpFileContent(maxfgHistoryName, maxfgHistoryDir);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
void dumpPowerSupplyDock() {
|
void dumpPowerSupplyDock() {
|
||||||
const char* powerSupplyPropertyDockTitle = "Power supply property dock";
|
const char* powerSupplyPropertyDockTitle = "Power supply property dock";
|
||||||
|
@ -184,65 +199,60 @@ void dumpLogBufferTcpm() {
|
||||||
printTitle(tcpmLogTitle);
|
printTitle(tcpmLogTitle);
|
||||||
}
|
}
|
||||||
void dumpTcpc() {
|
void dumpTcpc() {
|
||||||
int ret;
|
const char* max77759TcpcHead = "TCPC Device Attributes";
|
||||||
const char* max77759TcpcHead = "TCPC";
|
const char* directory = "/sys/class/typec/port0/device";
|
||||||
const char* i2cSubDirMatch = "i2c-";
|
const char* max77759Tcpc [] {
|
||||||
const char* directory = "/sys/devices/platform/10d60000.hsi2c/";
|
"auto_discharge",
|
||||||
const char* max77759Tcpc [][2] {
|
"bc12_enabled",
|
||||||
{"registers:", "/i2c-max77759tcpc/registers"},
|
"cc_toggle_enable",
|
||||||
{"frs:", "/i2c-max77759tcpc/frs"},
|
"contaminant_detection",
|
||||||
{"auto_discharge:", "/i2c-max77759tcpc/auto_discharge"},
|
"contaminant_detection_status",
|
||||||
{"bcl2_enabled:", "/i2c-max77759tcpc/bcl2_enabled"},
|
"frs",
|
||||||
{"cc_toggle_enable:", "/i2c-max77759tcpc/cc_toggle_enable"},
|
"irq_hpd_count",
|
||||||
{"containment_detection:", "/i2c-max77759tcpc/containment_detection"},
|
"manual_disable_vbus",
|
||||||
{"containment_detection_status:", "/i2c-max77759tcpc/containment_detection_status"},
|
"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 content;
|
||||||
|
std::string tcpcRegistersPath(std::string(directory) + "/registers");
|
||||||
|
|
||||||
|
dumpFileContent("TCPC Registers", tcpcRegistersPath.c_str());
|
||||||
|
|
||||||
printTitle(max77759TcpcHead);
|
printTitle(max77759TcpcHead);
|
||||||
ret = getFilesInDir(directory, &files);
|
|
||||||
if (ret < 0) {
|
for (auto& tcpcVal : max77759Tcpc) {
|
||||||
for (auto &tcpcVal : max77759Tcpc)
|
std::string filename = std::string(directory) + "/" + std::string(tcpcVal);
|
||||||
printf("%s\n", tcpcVal[0]);
|
printf("%s: ", tcpcVal);
|
||||||
return;
|
android::base::ReadFileToString(filename, &content);
|
||||||
}
|
if (!content.empty() && (content.back() == '\n' || content.back() == '\r'))
|
||||||
for (auto &file : files) {
|
content.pop_back();
|
||||||
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;
|
|
||||||
}
|
|
||||||
printf("%s\n", content.c_str());
|
printf("%s\n", content.c_str());
|
||||||
}
|
}
|
||||||
}
|
printf("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void dumpPdEngine() {
|
void dumpPdEngine() {
|
||||||
const char* pdEngine [][2] {
|
const char* pdEngine [][3] {
|
||||||
{"PD Engine", "/dev/logbuffer_usbpd"},
|
{"TCPC logbuffer", "/dev/logbuffer_usbpd"},
|
||||||
{"PPS-google_cpm", "/dev/logbuffer_cpm"},
|
{"pogo_transport logbuffer", "/dev/logbuffer_pogo_transport"},
|
||||||
{"PPS-dc", "/dev/logbuffer_pca9468"},
|
{"PPS-google_cpm logbuffer", "/dev/logbuffer_cpm"},
|
||||||
|
{"PPS-pca9468 logbuffer", "/dev/logbuffer_pca9468"},
|
||||||
};
|
};
|
||||||
for (const auto &row : pdEngine) {
|
for (const auto &row : pdEngine) {
|
||||||
dumpFileContent(row[0], row[1]);
|
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() {
|
void dumpBatteryHealth() {
|
||||||
const char* batteryHealth [][2] {
|
const char* batteryHealth [][2] {
|
||||||
{"Battery Health", "/sys/class/power_supply/battery/health_index_stats"},
|
{"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"},
|
{"BMS", "/dev/logbuffer_ssoc"},
|
||||||
{"TTF", "/dev/logbuffer_ttf"},
|
{"TTF", "/dev/logbuffer_ttf"},
|
||||||
{"TTF details", "/sys/class/power_supply/battery/ttf_details"},
|
{"TTF details", "/sys/class/power_supply/battery/ttf_details"},
|
||||||
|
@ -281,7 +291,7 @@ void dumpBatteryDefend() {
|
||||||
sort(files.begin(), files.end());
|
sort(files.begin(), files.end());
|
||||||
for (auto &file : files) {
|
for (auto &file : files) {
|
||||||
fileLocation = std::string(config[1]) + std::string(file);
|
fileLocation = std::string(config[1]) + std::string(file);
|
||||||
if (!android::base::ReadFileToString(fileLocation, &content)) {
|
if (!android::base::ReadFileToString(fileLocation, &content) || content.empty()) {
|
||||||
content = "\n";
|
content = "\n";
|
||||||
}
|
}
|
||||||
printf("%s: %s", file.c_str(), content.c_str());
|
printf("%s: %s", file.c_str(), content.c_str());
|
||||||
|
@ -291,15 +301,150 @@ void dumpBatteryDefend() {
|
||||||
files.clear();
|
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() {
|
void dumpBatteryEeprom() {
|
||||||
const char *title = "Battery EEPROM";
|
const char *title = "Battery EEPROM";
|
||||||
const char *files[] {
|
const char *files[] {
|
||||||
"/sys/devices/platform/10970000.hsi2c/i2c-4/4-0050/eeprom",
|
"/sys/devices/platform/10da0000.hsi2c/i2c-15/15-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",
|
|
||||||
};
|
};
|
||||||
std::string result;
|
std::string result;
|
||||||
std::string xxdCmd;
|
std::string xxdCmd;
|
||||||
|
@ -325,7 +470,7 @@ void dumpChargerStats() {
|
||||||
std::string content;
|
std::string content;
|
||||||
struct dirent *entry;
|
struct dirent *entry;
|
||||||
dumpFileContent(chgStatsTitle, chgStatsLocation);
|
dumpFileContent(chgStatsTitle, chgStatsLocation);
|
||||||
if (!isUserBuild())
|
if (isUserBuild())
|
||||||
return;
|
return;
|
||||||
for (auto &stat : chargerStats) {
|
for (auto &stat : chargerStats) {
|
||||||
DIR *dir = opendir(stat[1]);
|
DIR *dir = opendir(stat[1]);
|
||||||
|
@ -370,7 +515,7 @@ void dumpGvoteables() {
|
||||||
std::string content;
|
std::string content;
|
||||||
std::vector<std::string> files;
|
std::vector<std::string> files;
|
||||||
int ret;
|
int ret;
|
||||||
if (!isUserBuild())
|
if (isUserBuild())
|
||||||
return;
|
return;
|
||||||
ret = getFilesInDir(directory, &files);
|
ret = getFilesInDir(directory, &files);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
|
@ -658,10 +803,11 @@ int main() {
|
||||||
dumpLogBufferTcpm();
|
dumpLogBufferTcpm();
|
||||||
dumpTcpc();
|
dumpTcpc();
|
||||||
dumpPdEngine();
|
dumpPdEngine();
|
||||||
dumpWc68();
|
|
||||||
dumpLn8411();
|
|
||||||
dumpBatteryHealth();
|
dumpBatteryHealth();
|
||||||
dumpBatteryDefend();
|
dumpBatteryDefend();
|
||||||
|
dumpBatteryCaretaker();
|
||||||
|
dumpChg();
|
||||||
|
dumpChgUserDebug();
|
||||||
dumpBatteryEeprom();
|
dumpBatteryEeprom();
|
||||||
dumpChargerStats();
|
dumpChargerStats();
|
||||||
dumpWlcLogs();
|
dumpWlcLogs();
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<manifest version="1.0" type="device">
|
<manifest version="1.0" type="device">
|
||||||
<hal format="aidl">
|
<hal format="aidl">
|
||||||
<name>android.hardware.health</name>
|
<name>android.hardware.health</name>
|
||||||
<version>3</version>
|
<version>4</version>
|
||||||
<fqname>IHealth/default</fqname>
|
<fqname>IHealth/default</fqname>
|
||||||
</hal>
|
</hal>
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|
|
@ -276,6 +276,9 @@
|
||||||
<!-- Enable Zram writeback feature to allow unused pages in zram be written to flash. -->
|
<!-- Enable Zram writeback feature to allow unused pages in zram be written to flash. -->
|
||||||
<bool name="config_zramWriteback">true</bool>
|
<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
|
<!-- 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
|
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
|
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",
|
"Name": "RealtimePerformance",
|
||||||
"Actions": [
|
"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",
|
"Name": "ResetUclampGrp",
|
||||||
"Actions": [
|
"Actions": [
|
||||||
|
@ -287,11 +498,35 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Name": "OtaProfiles",
|
"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",
|
"Name": "InputPolicy",
|
||||||
"Profiles": [ "ResetUclampGrp" ]
|
"Profiles": [ "MaxPerformance", "SCHED_QOS_SENSITIVE_EXTREME_SET" ]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -990,6 +990,7 @@ void queryVersionHelper(android::hardware::usb::Usb *usb,
|
||||||
Status status;
|
Status status;
|
||||||
pthread_mutex_lock(&usb->mLock);
|
pthread_mutex_lock(&usb->mLock);
|
||||||
status = getPortStatusHelper(usb, currentPortStatus);
|
status = getPortStatusHelper(usb, currentPortStatus);
|
||||||
|
if (status == Status::SUCCESS && currentPortStatus->size() > 0) {
|
||||||
queryMoistureDetectionStatus(usb, currentPortStatus);
|
queryMoistureDetectionStatus(usb, currentPortStatus);
|
||||||
queryPowerTransferStatus(usb, currentPortStatus);
|
queryPowerTransferStatus(usb, currentPortStatus);
|
||||||
queryNonCompliantChargerStatus(currentPortStatus);
|
queryNonCompliantChargerStatus(currentPortStatus);
|
||||||
|
@ -1002,6 +1003,9 @@ void queryVersionHelper(android::hardware::usb::Usb *usb,
|
||||||
} else {
|
} else {
|
||||||
ALOGI("Notifying userspace skipped. Callback is NULL");
|
ALOGI("Notifying userspace skipped. Callback is NULL");
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
ALOGI("%s skipped. currentPortStatus is empty", __func__);
|
||||||
|
}
|
||||||
pthread_mutex_unlock(&usb->mLock);
|
pthread_mutex_unlock(&usb->mLock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,8 +19,9 @@ LOCAL_WIFI_PATH := device/google/gs201/wifi/qcom
|
||||||
# wlan flags
|
# wlan flags
|
||||||
BOARD_WLAN_DEVICE := qcwcn
|
BOARD_WLAN_DEVICE := qcwcn
|
||||||
BOARD_WLAN_CHIP := wcn6740
|
BOARD_WLAN_CHIP := wcn6740
|
||||||
BOARD_WPA_SUPPLICANT_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_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE)
|
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_WPA_SUPPLICANT_DRIVER := NL80211
|
||||||
BOARD_HOSTAPD_DRIVER := NL80211
|
BOARD_HOSTAPD_DRIVER := NL80211
|
||||||
WPA_SUPPLICANT_VERSION := VER_0_8_X
|
WPA_SUPPLICANT_VERSION := VER_0_8_X
|
||||||
|
@ -36,7 +37,7 @@ WIFI_FEATURE_IMU_DETECTION := true
|
||||||
WIFI_HIDL_UNIFIED_SUPPLICANT_SERVICE_RC_ENTRY := true
|
WIFI_HIDL_UNIFIED_SUPPLICANT_SERVICE_RC_ENTRY := true
|
||||||
# Avoid Wifi reset on MAC Address change
|
# Avoid Wifi reset on MAC Address change
|
||||||
# WIFI_AVOID_IFACE_RESET_MAC_CHANGE := true
|
# WIFI_AVOID_IFACE_RESET_MAC_CHANGE := true
|
||||||
# WIFI_FEATURE_HOSTAPD_11AX := true
|
WIFI_FEATURE_HOSTAPD_11AX := true
|
||||||
WIFI_DRIVER_STATE_CTRL_PARAM := "/dev/wlan"
|
WIFI_DRIVER_STATE_CTRL_PARAM := "/dev/wlan"
|
||||||
WIFI_DRIVER_STATE_ON := "ON"
|
WIFI_DRIVER_STATE_ON := "ON"
|
||||||
WIFI_DRIVER_STATE_OFF := "OFF"
|
WIFI_DRIVER_STATE_OFF := "OFF"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue