Android 15.0.0 Release 21 (BP1A.250305.020)

-----BEGIN PGP SIGNATURE-----
 
 iF0EABECAB0WIQRDQNE1cO+UXoOBCWTorT+BmrEOeAUCZ8fKCAAKCRDorT+BmrEO
 eGxiAJ9kdOB3bGMC2D+BZ2qX44tDh4U6UwCfZVmV34e2iZoBr1HUvv+PFbdBh44=
 =aWWI
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN SSH SIGNATURE-----
 U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgPpdpjxPACTIhnlvYz0GM4BR7FJ
 +rYv3jMbfxNKD3JvcAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5
 AAAAQFSO/dKxh4Sd8uhs5QJzCKI6gvYCc8lwQ9mQNatuwPvUcY0egzeoXFaHBFWB6GGqYj
 I2JQr0ogw7/XpRnzDYOA8=
 -----END SSH SIGNATURE-----

Merge tag 'android-15.0.0_r21' into staging/lineage-22.2_merge-android-15.0.0_r21

Android 15.0.0 Release 21 (BP1A.250305.020)

# -----BEGIN PGP SIGNATURE-----
#
# iF0EABECAB0WIQRDQNE1cO+UXoOBCWTorT+BmrEOeAUCZ8fKCAAKCRDorT+BmrEO
# eGxiAJ9kdOB3bGMC2D+BZ2qX44tDh4U6UwCfZVmV34e2iZoBr1HUvv+PFbdBh44=
# =aWWI
# -----END PGP SIGNATURE-----
# gpg: Signature made Wed Mar  5 05:50:32 2025 EET
# gpg:                using DSA key 4340D13570EF945E83810964E8AD3F819AB10E78
# gpg: Good signature from "The Android Open Source Project <initial-contribution@android.com>" [ultimate]

# By Rick Yiu (8) and others
# Via Android (Google) Code Review (59) and others
* tag 'android-15.0.0_r21': (83 commits)
  Reject e911 call during non-emergency satellite session.
  dump_power: add battery caretaker dump into bugreport
  [Pixel VPN] Apply reviewed default permissions
  Configure satellite NIDD APN name for Zuma pro devices
  Add country codes of Canda and EU countries to the satellite allowed list
  Add enhanced geofencing data and satelltie access config json for Zuma Pro
  Add enhanced geofencing data and satelltie access config json for Zuma Pro
  modem_svc: use modem_svc_sit version sepolicy
  Set permission for rampup_multiplier
  Use SCHED_QOS_SENSITIVE_EXTREME_SET for InputPolicy
  Add SCHED_QOS_POWER_EFFICIENCY profiles
  update health HAL dependency
  Add `config_satellite_carrier_roaming_esos_provisioned_class` for  the intent to trigger satellite provisioning
  Change TARGET_RECOVERY_UI_LIB to use fully qualified names in zumapro
  Add `config_satellite_allow_tn_scanning_during_satellite_session` flag.
  Fix kasan logic
  Clean up unnecessary data_connection_5g_plus overlay
  Vibrator: Update compatability matrix
  [NTN][VZW P2P] Add config to enable sending check message datagrams when satellite modem is not connected.
  init: zuma: move sched rate limit to late init
  ...

Change-Id: I9c4e0b550fe27df45e16097bc061315b1219da26
This commit is contained in:
Michael Bestas 2025-03-09 10:59:35 +02:00
commit 19beed9713
42 changed files with 1325 additions and 239 deletions

View file

@ -41,3 +41,13 @@ sh_binary {
vendor: true,
sub_dir: "hw",
}
// Filesystem: Copy the content of the efs/efs_backup/modem_userdata/persist
// partitions to /data partition so that they can be accessed by 16kb kernels.
// By default, these partitions are F2FS formatted with 4kb block size,
// which can't be mounted by 16kb kernels.
sh_binary {
name: "copy_efs_files_to_data",
src: "copy_efs_files_to_data.sh",
vendor: true,
}

View file

@ -40,9 +40,23 @@ BOARD_KERNEL_CMDLINE += rcupdate.rcu_expedited=1 rcu_nocbs=all rcutree.enable_rc
BOARD_KERNEL_CMDLINE += swiotlb=noforce
BOARD_KERNEL_CMDLINE += disable_dma32=on
BOARD_KERNEL_CMDLINE += sysctl.kernel.sched_pelt_multiplier=4
# Normal (non-_fullmte) builds should disable kasan
ifeq (,$(filter %_fullmte,$(TARGET_PRODUCT)))
BOARD_KERNEL_CMDLINE += kasan=off
endif
# Enable a limited subset of MTE for "normal" (non-_fullmte) eng builds.
# Don't touch any settings for _fullmte builds. They are set somewhere else.
ifeq (,$(filter %_fullmte,$(TARGET_PRODUCT)))
ifeq ($(TARGET_BUILD_VARIANT),eng)
BOARD_KERNEL_CMDLINE += bootloader.pixel.MTE_FORCE_ON
ifeq ($(filter memtag_heap,$(SANITIZE_TARGET)),)
SANITIZE_TARGET := $(strip $(SANITIZE_TARGET) memtag_heap)
endif
endif
endif
BOARD_BOOTCONFIG += androidboot.boot_devices=13200000.ufs
# Enable KUnit for eng builds
@ -71,7 +85,7 @@ TARGET_RECOVERY_FSTAB_GENRULE := gen_fstab.zumapro-sw-encrypt
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
@ -208,6 +222,17 @@ BOARD_USE_BLOB_ALLOCATOR := false
BOARD_SUPPORT_MFC_ENC_BT2020 := true
BOARD_SUPPORT_FLEXIBLE_P010 := true
BOARD_SUPPORT_MFC_VERSION := 1660
$(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))
$(call soong_config_set,video_codec,board_support_mfc_version,$(BOARD_SUPPORT_MFC_VERSION))
########################
BOARD_SUPER_PARTITION_SIZE := 8531214336
@ -230,6 +255,9 @@ BOARD_USES_SYSTEM_DLKMIMAGE := true
BOARD_SYSTEM_DLKMIMAGE_FILE_SYSTEM_TYPE := ext4
TARGET_COPY_OUT_SYSTEM_DLKM := system_dlkm
# Testing related defines
BOARD_PERFSETUP_SCRIPT := platform_testing/scripts/perf-setup/p24-setup.sh
#
# AUDIO & VOICE
#

View file

@ -0,0 +1,76 @@
<!--
Autogenerated skeleton compatibility matrix.
Use with caution. Modify it to suit your needs.
All HALs are set to optional.
Many entries other than HALs are zero-filled and
require human attention.
-->
<compatibility-matrix version="1.0" type="device">
<hal format="hidl" optional="true">
<name>android.frameworks.displayservice</name>
<version>1.0</version>
<interface>
<name>IDisplayService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>android.frameworks.schedulerservice</name>
<version>1.0</version>
<interface>
<name>ISchedulingPolicyService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>android.frameworks.sensorservice</name>
<version>1.0</version>
<interface>
<name>ISensorManager</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>android.hardware.graphics.composer</name>
<version>2.1</version>
<interface>
<name>IComposer</name>
<instance>vr</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>android.hidl.manager</name>
<version>1.0</version>
<interface>
<name>IServiceManager</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>android.hidl.memory</name>
<version>1.0</version>
<interface>
<name>IMapper</name>
<instance>ashmem</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>android.hidl.token</name>
<version>1.0</version>
<interface>
<name>ITokenManager</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>android.system.wifi.keystore</name>
<version>1.0</version>
<interface>
<name>IKeystore</name>
<instance>default</instance>
</interface>
</hal>
<vndk>
<version>0.0.0</version>
</vndk>
</compatibility-matrix>

View file

@ -1,5 +1,8 @@
# Android fstab file for /data and /metadata partitions.
#
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
/dev/block/platform/13200000.ufs/by-name/metadata /metadata ext4 noatime,nosuid,nodev,sync wait,check,formattable,first_stage_mount
/dev/block/platform/13200000.ufs/by-name/userdata /data ext4 noatime,nosuid,nodev latemount,wait,check,quota,formattable,sysfs_path=/dev/sys/block/bootdevice,reservedsize=128M,readahead_size_kb=128
/dev/block/platform/13200000.ufs/by-name/userdata /data ext4 noatime,nosuid,nodev,@inlinecrypt@ latemount,wait,check,quota,formattable,reservedsize=128M,readahead_size_kb=128,@fileencryption@,@metadata_encryption@,keydirectory=/metadata/vold/metadata_encryption
/dev/block/platform/13200000.ufs/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,reserve_root=32768,resgid=1065,fsync_mode=nobarrier,compress_extension=apk,compress_extension=so,compress_extension=vdex,compress_extension=odex,@inlinecrypt@,atgc,checkpoint_merge,compress_cache latemount,wait,check,quota,sysfs_path=/dev/sys/block/bootdevice,checkpoint=fs,reservedsize=128M,fscompress,readahead_size_kb=128,@fileencryption@,@metadata_encryption@,keydirectory=/metadata/vold/metadata_encryption,device=zoned:/dev/block/by-name/zoned_device
/dev/block/platform/13200000.ufs/by-name/metadata /metadata ext4 noatime,nosuid,nodev,data=journal,commit=1 wait,check,formattable,first_stage_mount,metadata_csum
/dev/block/platform/13200000.ufs/by-name/metadata /metadata f2fs noatime,nosuid,nodev,sync wait,check,first_stage_mount

View file

@ -1,5 +1,8 @@
# Android fstab file for /data and /metadata partitions.
#
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
/dev/block/platform/13200000.ufs/by-name/metadata /metadata f2fs noatime,nosuid,nodev,sync wait,check,formattable,first_stage_mount
/dev/block/platform/13200000.ufs/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,reserve_root=32768,resgid=1065,fsync_mode=nobarrier,compress_extension=apk,compress_extension=so,compress_extension=vdex,compress_extension=odex,@inlinecrypt@,atgc,checkpoint_merge,compress_cache latemount,wait,check,quota,formattable,sysfs_path=/dev/sys/block/bootdevice,checkpoint=fs,reservedsize=128M,fscompress,readahead_size_kb=128,@fileencryption@,@metadata_encryption@,keydirectory=/metadata/vold/metadata_encryption,device=zoned:/dev/block/by-name/zoned_device
/dev/block/platform/13200000.ufs/by-name/userdata /data ext4 noatime,nosuid,nodev,@inlinecrypt@ latemount,wait,check,quota,formattable,reservedsize=128M,readahead_size_kb=128,@fileencryption@,@metadata_encryption@,keydirectory=/metadata/vold/metadata_encryption
/dev/block/platform/13200000.ufs/by-name/metadata /metadata f2fs noatime,nosuid,nodev,sync wait,check,formattable,first_stage_mount
/dev/block/platform/13200000.ufs/by-name/metadata /metadata ext4 noatime,nosuid,nodev,data=journal,commit=1 wait,check,formattable,first_stage_mount,metadata_csum

10
conf/fstab.efs.from_data Normal file
View file

@ -0,0 +1,10 @@
# Android fstab file.
# <src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
# Create the specific fstab file for efs/modem_userdata/persist partitions for flexibility
/data/vendor/copied/efs /mnt/vendor/efs none bind latemount
/data/vendor/copied/efs_backup /mnt/vendor/efs_backup none bind latemount
/data/vendor/copied/modem_userdata /mnt/vendor/modem_userdata none bind latemount
/data/vendor/copied/persist /mnt/vendor/persist none bind latemount

View file

@ -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"

22
conf/init.efs.16k.rc Normal file
View file

@ -0,0 +1,22 @@
# This RC file is used for:
# - 16kb Developer option which can boot with 4kb/16kb page size.
# - 16kb targets only
service copy_efs_files_to_data /vendor/bin/copy_efs_files_to_data
user root
group root radio system audio media graphics camera
stdio_to_kmsg
oneshot
disabled
on post-fs-data && property:ro.boot.hardware.cpu.pagesize=16384
mkdir /data/vendor/copied 0775 radio system
restorecon_recursive /data/vendor/copied
exec_start copy_efs_files_to_data
mount_all /vendor/etc/fstab.efs.from_data
restorecon_recursive /mnt/vendor/persist
restorecon_recursive /data/vendor/ss
setprop ro.vendor.persist.status mounted
on late-fs && property:ro.boot.hardware.cpu.pagesize=4096
mount_all /vendor/etc/fstab.efs --early

2
conf/init.efs.4k.rc Normal file
View file

@ -0,0 +1,2 @@
on late-fs
mount_all /vendor/etc/fstab.efs --early

View file

@ -1,11 +0,0 @@
on early-init
mount_all /vendor/etc/fstab.persist --early
on late-fs
mount_all /vendor/etc/fstab.efs --early
restorecon_recursive /mnt/vendor/efs
chown radio system /mnt/vendor/efs
restorecon_recursive /mnt/vendor/efs_backup
chown radio system /mnt/vendor/efs_backup
restorecon_recursive /mnt/vendor/modem_userdata
chown radio system /mnt/vendor/modem_userdata

14
conf/init.eng.memtag.rc Normal file
View file

@ -0,0 +1,14 @@
# MTE in -eng build: all cores in Sync mode
on init
# Per-core mode overrides.
# Little Cores: sync
write /sys/devices/system/cpu/cpu0/mte_tcf_preferred sync
write /sys/devices/system/cpu/cpu1/mte_tcf_preferred sync
write /sys/devices/system/cpu/cpu2/mte_tcf_preferred sync
write /sys/devices/system/cpu/cpu3/mte_tcf_preferred sync
# Mid Cores: sync
write /sys/devices/system/cpu/cpu4/mte_tcf_preferred sync
write /sys/devices/system/cpu/cpu5/mte_tcf_preferred sync
write /sys/devices/system/cpu/cpu6/mte_tcf_preferred sync
# Big Core: sync
write /sys/devices/system/cpu/cpu7/mte_tcf_preferred sync

52
conf/init.persist.rc Normal file
View file

@ -0,0 +1,52 @@
on early-init && property:ro.boot.hardware.cpu.pagesize=4096
mount_all /vendor/etc/fstab.persist --early
setprop ro.vendor.persist.status mounted
on property:ro.vendor.persist.status=mounted
# for modem related functions
restorecon_recursive /mnt/vendor/efs
chown radio system /mnt/vendor/efs
restorecon_recursive /mnt/vendor/efs_backup
chown radio system /mnt/vendor/efs_backup
restorecon_recursive /mnt/vendor/modem_userdata
chown radio system /mnt/vendor/modem_userdata
# for battery defender
mkdir /mnt/vendor/persist/battery 0700 system system
# Camera factory calibration files
chmod 0771 /mnt/vendor/persist/camera
chmod 0771 /mnt/vendor/persist/camera/OTP_calibration
chmod 0771 /mnt/vendor/persist/camera/pdaf_calibration_data
mkdir /mnt/vendor/persist/camera/rear 0771 system camera
chmod 0771 /mnt/vendor/persist/camera/rear
restorecon_recursive /mnt/vendor/persist
restorecon_recursive /mnt/vendor/persist/aoc
restorecon_recursive /mnt/vendor/persist/audio
restorecon_recursive /mnt/vendor/persist/sensors
restorecon_recursive /mnt/vendor/persist/battery
restorecon_recursive /mnt/vendor/persist/camera
restorecon_recursive /mnt/vendor/persist/modem
# Set up display-related directories and permissions
# Add restorecon_recursive command to make sure the restorecon label is persist_display_file.
restorecon_recursive /mnt/vendor/persist/display
mkdir /mnt/vendor/persist/data/sfs 0700 system system
mkdir /mnt/vendor/persist/data/tz 0700 system system
mkdir /mnt/vendor/persist/touch 0770 system system
on property:ro.fstype.data=* && property:ro.vendor.persist.status=mounted
# Proxy for Secure Storage
mkdir /data/vendor/rebootescrow 0770 hsm hsm
mkdir /data/vendor/ss 0770 root system
mkdir /mnt/vendor/persist/ss 0770 root system
restorecon_recursive /mnt/vendor/persist/ss
symlink /mnt/vendor/persist/ss /data/vendor/ss/persist
chown root system /data/vendor/ss/persist
chmod 0770 /data/vendor/ss/persist
symlink /dev/block/platform/13200000\.ufs/by-name/trusty_persist /data/vendor/ss/persist/0
chown system system /data/vendor/ss/0
chown system system /data/vendor/ss/persist/0
chown system system /data/vendor/ss/persist/nsp
restart storageproxyd

View file

@ -34,14 +34,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/cpu8/cpufreq/scaling_governor sched_pixel
write /sys/devices/system/cpu/cpu8/cpufreq/sched_pixel/up_rate_limit_us 500
write /sys/devices/system/cpu/cpu8/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
@ -107,6 +104,11 @@ on init
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu7_memlat@17000010/mem_latency/stall_floor 2400
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu8_memlat@17000010/mem_latency/stall_floor 500
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/cpu8/cpufreq/sched_pixel/down_rate_limit_us 20000
on zygote-start
# For PixelLogger configuration file.
chmod 0771 /data/vendor/wifi

View file

@ -1,5 +1,6 @@
import /vendor/etc/init/hw/init.zumapro.usb.rc
import /vendor/etc/init/hw/init.efs.rc
import /vendor/etc/init/hw/init.persist.rc
import android.hardware.drm@1.2-service.widevine.rc
import init.exynos.sensorhub.rc
import /vendor/etc/init/hw/init.${ro.boot.hardware.platform}.soc.rc
@ -268,13 +269,6 @@ on post-fs-data
chown system system /dev/ispolin_ranging
chmod 0660 /dev/ispolin_ranging
# Factory calibration files
chmod 0771 /mnt/vendor/persist/camera
chmod 0771 /mnt/vendor/persist/camera/OTP_calibration
chmod 0771 /mnt/vendor/persist/camera/pdaf_calibration_data
mkdir /mnt/vendor/persist/camera/rear 0771 system camera
chmod 0771 /mnt/vendor/persist/camera/rear
# Audio dump and debug
mkdir /data/vendor/audio 0770 audio audio
@ -369,27 +363,10 @@ on property:persist.vendor.radio.no_modem_board=1
on fs
mount_all --early
# for battery defender
mkdir /mnt/vendor/persist/battery 0700 system system
# Mount modem partition
mount_all /vendor/etc/fstab.modem --early
restorecon_recursive /mnt/vendor/modem_img
restorecon_recursive /mnt/vendor/persist
restorecon_recursive /mnt/vendor/persist/aoc
restorecon_recursive /mnt/vendor/persist/audio
restorecon_recursive /mnt/vendor/persist/sensors
restorecon_recursive /mnt/vendor/persist/battery
restorecon_recursive /mnt/vendor/persist/camera
restorecon_recursive /mnt/vendor/persist/modem
# Set up display-related directories and permissions
# Add restorecon_recursive command to make sure the restorecon label is persist_display_file.
restorecon_recursive /mnt/vendor/persist/display
mkdir /mnt/vendor/persist/data/sfs 0700 system system
mkdir /mnt/vendor/persist/data/tz 0700 system system
mkdir /mnt/vendor/persist/touch 0770 system system
# Permissions for ION
chmod 0660 /sys/class/ion_cma/ion_video_ext/isolated
chown system system /sys/class/ion_cma/ion_video_ext/isolated
@ -412,8 +389,8 @@ on fs
chown system system /sys/devices/platform/exynos-drm/primary-panel/te2_option
chown system system /sys/devices/platform/exynos-drm/primary-panel/power_state
chown system system /sys/devices/platform/exynos-drm/primary-panel/frame_rate
chown system system /sys/devices/platform/exynos-drm/primary-panel/frame_interval
chown system system /sys/devices/platform/exynos-drm/primary-panel/expected_present_time
chown system system /sys/devices/platform/exynos-drm/primary-panel/frame_interval_ns
chown system system /sys/devices/platform/exynos-drm/primary-panel/expected_present_time_ns
chown system system /sys/module/drm/parameters/vblankoffdelay
chown system system /sys/module/drm/parameters/debug
chown system system /sys/class/dqe0/atc/ambient_light
@ -635,21 +612,6 @@ service bugreport /system/bin/dumpstate -d -p -z
oneshot
keycodes 114 115 116
# Proxy for Secure Storage
on post-fs-data
mkdir /data/vendor/rebootescrow 0770 hsm hsm
mkdir /data/vendor/ss 0770 root system
mkdir /mnt/vendor/persist/ss 0770 root system
restorecon_recursive /mnt/vendor/persist/ss
symlink /mnt/vendor/persist/ss /data/vendor/ss/persist
chown root system /data/vendor/ss/persist
chmod 0770 /data/vendor/ss/persist
chown system system /data/vendor/ss/0
chown system system /data/vendor/ss/persist/0
chown system system /data/vendor/ss/persist/nsp
restart storageproxyd
service storageproxyd /vendor/bin/storageproxyd \
-d /dev/trusty-ipc-dev0 \
-r /dev/sg1 \
@ -677,6 +639,7 @@ on post-fs-data
chown bluetooth system /proc/bluetooth/sleep/btwake
chown bluetooth system /proc/bluetooth/sleep/lpm
chown bluetooth system /proc/bluetooth/sleep/btwrite
chown bluetooth system /sys/devices/platform/155d0000.serial/uart_dbg
mkdir /data/vendor/bluetooth 0770 bluetooth system
# ODPM

View file

@ -9,7 +9,6 @@ on init
chown system system /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/limit_frequency
chown system system /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/pmu_limit_enable
chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu0_memlat@17000010/memlat_cpuidle_state_aware
chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu1_memlat@17000010/memlat_cpuidle_state_aware
chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu2_memlat@17000010/memlat_cpuidle_state_aware
@ -60,17 +59,6 @@ on init
write /proc/vendor_sched/groups/sys_bg/disable_util_est 1
write /proc/vendor_sched/groups/ta/disable_util_est 0
# 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 500
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 500
write /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor sched_pixel
write /sys/devices/system/cpu/cpu7/cpufreq/sched_pixel/up_rate_limit_us 500
write /sys/devices/system/cpu/cpu7/cpufreq/sched_pixel/down_rate_limit_us 500
# memlat cpuidle awareness setting
# FIXME(b/301212469) these nodes missing on zuma pro
# TODO(b/308973423) these values need to be tuned
@ -143,6 +131,83 @@ on init
write /sys/devices/system/cpu/cpu6/mte_tcf_preferred asymm
write /sys/devices/system/cpu/cpu7/mte_tcf_preferred asymm
# 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
on zygote-start
# For PixelLogger configuration file.
chmod 0771 /data/vendor/wifi

View file

@ -153,6 +153,11 @@
/dev/acd-com.google.chre 0660 system system
/dev/acd-com.google.chre.non_wake_up 0660 system system
# CHRE (EFW transport)
/dev/acd-chre_ctl 0660 system system
/dev/acd-chre_data_tx 0220 system system
/dev/acd-chre_data_rx 0440 system system
# BT
/dev/acd-com.google.bt 0660 system system
/dev/acd-com.google.bt.non_wake_up 0660 system system

39
copy_efs_files_to_data.sh Normal file
View file

@ -0,0 +1,39 @@
#!/vendor/bin/sh
CHECKPOINT_DIR=/data/vendor/copied
export BIN_DIR=/vendor/bin
$BIN_DIR/mkdir -p $CHECKPOINT_DIR
function copy_files_to_data()
{
block_device=$1
partition_name=$(basename $1)
mount_point=$2
tmpdir=$CHECKPOINT_DIR/$partition_name.img
build_checkpoint=$CHECKPOINT_DIR/$partition_name
if [ ! -e $build_checkpoint ]; then
$BIN_DIR/rm -rf $tmpdir
$BIN_DIR/mkdir -p $tmpdir
$BIN_DIR/dump.f2fs -rfPo $tmpdir $block_device
if [ $? -ne 0 ]; then
echo "Failed to $BIN_DIR/dump.f2fs -rfPo $tmpdir $block_device"
return
fi
$BIN_DIR/mv $tmpdir $build_checkpoint
if [ $? -ne 0 ]; then
echo "mv $tmpdir $build_checkpoint"
return
fi
$BIN_DIR/fsync `dirname $build_checkpoint`
fi
echo "Successfully copied $mount_point to $build_checkpoint"
}
copy_files_to_data "/dev/block/by-name/efs" "/mnt/vendor/efs"
copy_files_to_data "/dev/block/by-name/efs_backup" "/mnt/vendor/efs_backup"
copy_files_to_data "/dev/block/by-name/modem_userdata" "/mnt/vendor/modem_userdata"
copy_files_to_data "/dev/block/by-name/persist" "/mnt/vendor/persist"
$BIN_DIR/fsync /data/vendor/copied

View file

@ -69,7 +69,7 @@
</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"/>
@ -173,5 +173,9 @@
<!-- Notifications -->
<permission name="android.permission.POST_NOTIFICATIONS" fixed="false"/>
</exception>
<exception
package="com.google.android.apps.privacy.wildlife">
<permission name="android.permission.READ_PHONE_STATE" fixed="false"/>
</exception>
</exceptions>

View file

@ -51,12 +51,21 @@ PRODUCT_VENDOR_PROPERTIES += \
vendor.zram.size?=50p
# Indicate that the bootloader supports the MTE developer option switch
# (MISC_MEMTAG_MODE_MEMTAG_ONCE), with the exception of _fullmte products that
# force enable MTE.
# (MISC_MEMTAG_MODE_MEMTAG_ONCE), with the exception of _fullmte products and
# eng products that force enable MTE
ifeq (,$(filter %_fullmte,$(TARGET_PRODUCT)))
ifeq (,$(filter eng,$(TARGET_BUILD_VARIANT)))
PRODUCT_PRODUCT_PROPERTIES += ro.arm64.memtag.bootctl_supported=1
PRODUCT_PRODUCT_PROPERTIES += persist.arm64.memtag.app.com.android.se=off
PRODUCT_PRODUCT_PROPERTIES += persist.arm64.memtag.app.com.google.android.bluetooth=off
PRODUCT_PRODUCT_PROPERTIES += persist.arm64.memtag.app.com.android.nfc=off
PRODUCT_PRODUCT_PROPERTIES += persist.arm64.memtag.system_server=off
endif
endif
ifeq (,$(filter %_fullmte,$(TARGET_PRODUCT)))
ifneq (,$(filter eng,$(TARGET_BUILD_VARIANT)))
PRODUCT_COPY_FILES += \
device/google/zumapro/conf/init.eng.memtag.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.eng.memtag.rc
endif
endif

View file

@ -75,6 +75,7 @@ PRODUCT_SOONG_NAMESPACES += \
hardware/google/gchips/gralloc4 \
hardware/google/graphics/common \
hardware/google/graphics/zuma \
hardware/google/graphics/zumapro/libhwc2.1 \
hardware/google/interfaces \
hardware/google/pixel \
device/google/zumapro \
@ -183,7 +184,7 @@ PRODUCT_PRODUCT_PROPERTIES += \
bluetooth.profile.asha.central.enabled=true \
bluetooth.profile.a2dp.source.enabled=true \
bluetooth.profile.avrcp.target.enabled=true \
bluetooth.profile.bap.unicast.server.enabled=true \
bluetooth.profile.bap.unicast.client.enabled=true \
bluetooth.profile.bas.client.enabled=true \
bluetooth.profile.csip.set_coordinator.enabled=true \
bluetooth.profile.gatt.enabled=true \
@ -198,8 +199,12 @@ PRODUCT_PRODUCT_PROPERTIES += \
bluetooth.profile.pan.panu.enabled=true \
bluetooth.profile.pbap.server.enabled=true \
bluetooth.profile.sap.server.enabled=true \
bluetooth.profile.tbs.server.enabled=true \
bluetooth.profile.vc.server.enabled=true
bluetooth.profile.ccp.server.enabled=true \
bluetooth.profile.vcp.controller.enabled=true
# Override default HCI command timeout value for BT stack
PRODUCT_PRODUCT_PROPERTIES += \
bluetooth.hci.timeout_milliseconds=5000
# Carrier configuration default location
PRODUCT_PROPERTY_OVERRIDES += \
@ -290,10 +295,13 @@ BOARD_SEPOLICY_DIRS += hardware/google/pixel-sepolicy/logger_app
endif # ifneq ($(BOARD_WITHOUT_RADIO),true)
# Shared Modem Platform
include device/google/gs-common/modem/shared_modem_platform/shared_modem_platform.mk
include device/google/gs-common/modem/modem_svc_sit/shared_modem_platform.mk
# Use for GRIL
USES_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
@ -374,6 +382,14 @@ PRODUCT_VENDOR_PROPERTIES += \
ro.hardware.vulkan=mali
endif
# SurfaceFlinger / RenderEngine
ifeq ($(TARGET_USES_VULKAN),true)
# b/293371537 Opt in to RE-Graphite's aconfig-based preview rollout
PRODUCT_VENDOR_PROPERTIES += debug.renderengine.graphite_preview_optin=true
else
$(warning TARGET_USES_VULKAN == false, cannot opt in to RE-Graphite rollout in SurfaceFlinger)
PRODUCT_VENDOR_PROPERTIES += debug.renderengine.graphite_preview_optin=false
endif
# b/295257834 Add HDR shaders to SurfaceFlinger's pre-warming cache
PRODUCT_VENDOR_PROPERTIES += ro.surface_flinger.prime_shader_cache.ultrahdr=1
@ -410,13 +426,33 @@ PRODUCT_VENDOR_PROPERTIES += \
PRODUCT_SHIPPING_API_LEVEL := $(SHIPPING_API_LEVEL)
# Device Manifest, Device Compatibility Matrix for Treble
#
# Install product specific framework compatibility matrix
# (TODO: b/169535506) This includes the FCM for system_ext and product partition.
# It must be split into the FCM of each partition.
ifeq ($(PRODUCT_SHIPPING_API_LEVEL),35)
DEVICE_MANIFEST_FILE := \
device/google/zumapro/manifest_202404.xml
DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/zumapro/device_framework_matrix_product_202404.xml
DEVICE_MATRIX_FILE := \
device/google/zumapro/compatibility_matrix_202404.xml
else
DEVICE_MANIFEST_FILE := \
device/google/zumapro/manifest.xml
DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/zumapro/device_framework_matrix_product_8.xml
DEVICE_MATRIX_FILE := \
device/google/zumapro/compatibility_matrix.xml
endif
BOARD_USE_CODEC2_AIDL := V1
ifneq (,$(filter aosp_%,$(TARGET_PRODUCT)))
ifeq ($(PRODUCT_SHIPPING_API_LEVEL),35)
DEVICE_MANIFEST_FILE += \
device/google/zumapro/manifest_media_aosp_202404.xml
else
DEVICE_MANIFEST_FILE += \
device/google/zumapro/manifest_media_aosp.xml
endif
PRODUCT_COPY_FILES += \
device/google/zumapro/media_codecs_aosp_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_c2.xml
@ -429,9 +465,6 @@ PRODUCT_COPY_FILES += \
device/google/zumapro/media_codecs_aosp_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_aosp_c2.xml
endif
DEVICE_MATRIX_FILE := \
device/google/zumapro/compatibility_matrix.xml
DEVICE_PACKAGE_OVERLAYS += device/google/zumapro/overlay
# RKP VINTF
@ -451,7 +484,19 @@ PRODUCT_COPY_FILES += \
device/google/zumapro/conf/init.zumapro.soc.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.zumapro.soc.rc \
device/google/zumapro/conf/init.zuma.soc.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.zuma.soc.rc \
device/google/zumapro/conf/init.zumapro.board.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.zumapro.board.rc \
device/google/zumapro/conf/init.efs.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.efs.rc
device/google/zumapro/conf/init.persist.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.persist.rc
ifeq (true,$(filter $(TARGET_BOOTS_16K) $(PRODUCT_16K_DEVELOPER_OPTION),true))
PRODUCT_COPY_FILES += \
device/google/zumapro/conf/init.efs.16k.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.efs.rc \
device/google/zumapro/conf/fstab.efs.from_data:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.efs.from_data
PRODUCT_PACKAGES += copy_efs_files_to_data
PRODUCT_PACKAGES += fsck.f2fs.vendor
else
PRODUCT_COPY_FILES += \
device/google/zumapro/conf/init.efs.4k.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.efs.rc
endif
ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_COPY_FILES += \
@ -584,6 +629,10 @@ PRODUCT_PACKAGES += \
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml
ifneq (,$(filter ripcurrentpro, $(TARGET_PRODUCT)))
include device/google/gs-common/touch/gti/gti.mk
endif
# Sensors
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.sensor.accelerometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.accelerometer.xml \
@ -772,6 +821,12 @@ PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.wifi.passpoint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.passpoint.xml \
frameworks/native/data/etc/android.hardware.wifi.rtt.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.rtt.xml
# Bluetooth channel sounding
ifneq (,$(RELEASE_RANGING_STACK))
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.bluetooth_le.channel_sounding.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth_le.channel_sounding.xml
endif
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.usb.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.host.xml \
frameworks/native/data/etc/android.hardware.usb.accessory.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.accessory.xml
@ -1178,7 +1233,7 @@ PRODUCT_SOONG_NAMESPACES += \
vendor/google_devices/zumapro/proprietary/gchips/tpu/nnapi_stable_aidl \
vendor/google_devices/zumapro/proprietary/gchips/tpu/aidl \
vendor/google_devices/zumapro/proprietary/gchips/tpu/hal \
vendor/google_devices/zumapro/proprietary/gchips/tpu/tachyon/api \
vendor/google_devices/zumapro/proprietary/gchips/tpu/tachyon/tachyon_apis \
vendor/google_devices/zumapro/proprietary/gchips/tpu/tachyon/service
# TPU firmware
PRODUCT_PACKAGES += edgetpu-rio.fw
@ -1198,6 +1253,10 @@ PRODUCT_PACKAGES += \
# pKVM
$(call inherit-product, packages/modules/Virtualization/apex/product_packages.mk)
PRODUCT_BUILD_PVMFW_IMAGE := true
ifeq ($(RELEASE_AVF_ENABLE_LLPVM_CHANGES),true)
# Set the environment variable to enable the Secretkeeper HAL service.
SECRETKEEPER_ENABLED := true
endif
# Enable to build standalone vendor_kernel_boot image.
PRODUCT_BUILD_VENDOR_KERNEL_BOOT_IMAGE := true
@ -1231,11 +1290,6 @@ include hardware/google/pixel/wifi_ext/device.mk
# Battery Stats Viewer
PRODUCT_PACKAGES_ENG += BatteryStatsViewer
# Install product specific framework compatibility matrix
# (TODO: b/169535506) This includes the FCM for system_ext and product partition.
# It must be split into the FCM of each partition.
DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/zumapro/device_framework_matrix_product.xml
# Keymint configuration
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.software.device_id_attestation.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.device_id_attestation.xml \
@ -1261,16 +1315,19 @@ include device/google/gs-common/pixel_ril/ril.mk
endif
endif
SUPPORT_VENDOR_SATELLITE_SERVICE := true
# Telephony satellite geofence data file
PRODUCT_COPY_FILES += \
device/google/zumapro/telephony/sats2.dat:$(TARGET_COPY_OUT_VENDOR)/etc/telephony/sats2.dat
device/google/zumapro/telephony/sats2.dat:$(TARGET_COPY_OUT_VENDOR)/etc/telephony/sats2.dat \
device/google/zumapro/telephony/satellite_access_config.json:$(TARGET_COPY_OUT_VENDOR)/etc/telephony/satellite_access_config.json
# Touch service
include device/google/gs-common/touch/twoshay/aidl_zuma.mk
include device/google/gs-common/touch/twoshay/twoshay.mk
ifeq ($(RELEASE_PIXEL_GIA_ENABLED),true)
include device/google/gs-common/input/gia/gia.mk
endif
PRODUCT_CHECK_VENDOR_SEAPP_VIOLATIONS := true
PRODUCT_CHECK_DEV_TYPE_VIOLATIONS := true
@ -1287,3 +1344,4 @@ PRODUCT_PRODUCT_PROPERTIES += \
dumpstate.strict_run=false
PRODUCT_NO_BIONIC_PAGE_SIZE_MACRO := true
PRODUCT_CHECK_PREBUILT_MAX_PAGE_SIZE := true

View file

@ -0,0 +1,198 @@
<compatibility-matrix version="1.0" type="framework" level="202404">
<hal format="aidl" optional="true">
<name>android.hardware.boot</name>
<fqname>IBootControl/default</fqname>
</hal>
<hal format="aidl">
<name>android.hardware.graphics.composer3</name>
<version>2</version>
<interface>
<name>IComposer</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>android.hardware.radio</name>
<version>1.2</version>
<interface>
<name>ISap</name>
<instance>slot2</instance>
</interface>
</hal>
<hal format="aidl" optional="true">
<name>android.hardware.vibrator</name>
<version>2-3</version>
<interface>
<name>IVibrator</name>
<instance>dual</instance>
</interface>
</hal>
<hal format="aidl" optional="true">
<name>android.hardware.wifi.hostapd</name>
<version>1</version>
<interface>
<name>IHostapd</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>android.vendor.samsung_slsi.telephony.hardware.radio</name>
<version>1.1</version>
<interface>
<name>IOemSamsungslsi</name>
<instance>slot1</instance>
<instance>slot2</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>com.fingerprints33.extension</name>
<version>1.0</version>
<interface>
<name>IFingerprintAuthenticator</name>
<instance>default</instance>
</interface>
<interface>
<name>IFingerprintCalibration</name>
<instance>default</instance>
</interface>
<interface>
<name>IFingerprintEngineering</name>
<instance>default</instance>
</interface>
<interface>
<name>IFingerprintNavigation</name>
<instance>default</instance>
</interface>
<interface>
<name>IFingerprintRecalibration</name>
<instance>default</instance>
</interface>
<interface>
<name>IFingerprintSenseTouch</name>
<instance>default</instance>
</interface>
<interface>
<name>IFingerprintSensorTest</name>
<instance>default</instance>
</interface>
</hal>
<hal format="aidl" optional="true" updatable-via-apex="true">
<name>com.google.face.debug</name>
<version>3-4</version>
<interface>
<name>IDebugHost</name>
<instance>default</instance>
</interface>
<interface>
<name>IDebugManager</name>
<instance>default</instance>
</interface>
</hal>
<hal format="aidl" optional="true">
<name>com.google.edgetpu</name>
<version>2</version>
<interface>
<name>IEdgeTpuVendorService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="aidl" optional="true">
<name>com.google.edgetpu.dba</name>
<version>1</version>
<interface>
<name>IDevice</name>
<instance>default</instance>
</interface>
</hal>
<hal format="aidl" optional="true">
<name>com.google.edgetpu.tachyon</name>
<version>1</version>
<interface>
<name>IComputeService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="aidl" optional="true">
<name>com.google.hardware.pixel.display</name>
<version>13</version>
<interface>
<name>IDisplay</name>
<instance>default</instance>
</interface>
</hal>
<hal format="aidl" optional="true">
<name>hardware.qorvo.uwb</name>
<interface>
<name>IUwbVendor</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.goodix.hardware.biometrics.fingerprint</name>
<version>2.1</version>
<interface>
<name>IGoodixFingerprintDaemon</name>
<instance>default</instance>
</interface>
</hal>
<hal format="aidl" optional="true">
<name>vendor.google.google_battery</name>
<version>2-3</version>
<interface>
<name>IGoogleBattery</name>
<instance>default</instance>
</interface>
</hal>
<hal format="aidl" optional="true">
<name>vendor.google.wifi_ext</name>
<version>2-4</version>
<interface>
<name>IWifiExt</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.samsung_slsi.telephony.hardware.oemservice</name>
<version>1.0</version>
<interface>
<name>IOemService</name>
<instance>dm0</instance>
<instance>dm1</instance>
<instance>sced0</instance>
</interface>
</hal>
<hal format="aidl" optional="true">
<name>com.google.pixel.modem.logmasklibrary</name>
<version>1</version>
<interface>
<name>ILiboemserviceProxy</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.samsung_slsi.telephony.hardware.radioExternal</name>
<version>1.1</version>
<interface>
<name>IOemSlsiRadioExternal</name>
<instance>rilExternal</instance>
</interface>
</hal>
<hal format="aidl" optional="true">
<name>vendor.samsung_slsi.telephony.hardware.radioExternal</name>
<version>1</version>
<interface>
<name>IOemSlsiRadioExternal</name>
<instance>default</instance>
</interface>
</hal>
<hal format="aidl" optional="true">
<name>vendor.samsung_slsi.telephony.hardware.oemservice</name>
<version>1</version>
<interface>
<name>IOemService</name>
<instance>dm0</instance>
<instance>dm1</instance>
<instance>sced0</instance>
</interface>
</hal>
</compatibility-matrix>

View file

@ -21,7 +21,7 @@
</hal>
<hal format="aidl" optional="true">
<name>android.hardware.vibrator</name>
<version>2</version>
<version>2-3</version>
<interface>
<name>IVibrator</name>
<instance>dual</instance>
@ -145,7 +145,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>

View file

@ -177,7 +177,7 @@ void dumpPowerSupplyStats() {
void dumpMaxFg() {
const char *maxfgLoc = "/sys/class/power_supply/maxfg";
const char *max77779fgDir = "/sys/class/power_supply/max77779fg";
const char *maxfgDualLoc = "/sys/class/power_supply/maxfg_base";
const char *maxfg [][2] = {
{"Power supply property maxfg", "/sys/class/power_supply/maxfg/uevent"},
{"maxfg registers", "/sys/class/power_supply/maxfg/registers_dump"},
@ -194,16 +194,17 @@ void dumpMaxFg() {
{"max77779fg_monitor logbuffer", "/dev/logbuffer_max77779fg_monitor"},
};
const char *maxfgSecondary [][2] = {
const char *maxfgDual [][2] = {
{"Power supply property maxfg_base", "/sys/class/power_supply/maxfg_base/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"},
{"model_state", "/sys/class/power_supply/maxfg_base/model_state"},
{"maxfg_base", "/dev/logbuffer_maxfg_base"},
{"maxfg_secondary", "/dev/logbuffer_maxfg_secondary"},
{"maxfg_base logbuffer", "/dev/logbuffer_maxfg_base"},
{"maxfg_secondary logbuffer", "/dev/logbuffer_maxfg_secondary"},
{"maxfg_base_monitor logbuffer", "/dev/logbuffer_maxfg_base_monitor"},
{"maxfg_secondary_monitor logbuffer", "/dev/logbuffer_maxfg_secondary_monitor"},
{"dual_batt logbuffer", "/dev/logbuffer_dual_batt"},
};
const char *maxfgHistoryName = "Maxim FG History";
@ -220,15 +221,14 @@ void dumpMaxFg() {
for (const auto &row : max77779fgFiles) {
dumpFileContent(row[0], row[1]);
}
} else {
for (const auto &row : maxfgSecondary) {
} else if (isValidDir(maxfgDualLoc)){
for (const auto &row : maxfgDual) {
dumpFileContent(row[0], row[1]);
}
}
if (isValidFile(maxfgHistoryDir)) {
dumpFileContent(maxfgHistoryName, maxfgHistoryDir);
}
}
}
void dumpPowerSupplyDock() {
@ -317,19 +317,14 @@ void dumpPdEngine() {
{"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"},
{"PPS-ln8411 logbuffer", "/dev/logbuffer_ln8411"},
{"PPS-dc_mains logbuffer", "/dev/logbuffer_dc_mains"}
};
const char* ppsDcMsg = "PPS-dc logbuffer";
const char* pca9468dir = "/dev/logbuffer_pca9468";
const char* ln8411dir = "/dev/logbuffer_ln8411";
for (const auto &row : pdEngine) {
dumpFileContent(row[0], row[1]);
}
if (isValidFile(pca9468dir)) {
dumpFileContent(ppsDcMsg, pca9468dir);
} else {
dumpFileContent(ppsDcMsg, ln8411dir);
}
}
void dumpBatteryHealth() {
@ -361,7 +356,7 @@ void dumpBatteryHealth() {
}
void dumpBatteryDefend() {
const char* defendConfig [][4] {
const char* defendConfig [][3] {
{"TRICKLE-DEFEND Config",
"/sys/devices/platform/google,battery/power_supply/battery/", "bd_"},
{"DWELL-DEFEND Config", "/sys/devices/platform/google,charger/", "charge_s"},
@ -406,6 +401,57 @@ void dumpBatteryDefend() {
}
}
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;
@ -440,11 +486,8 @@ void printValuesOfDirectory(const char *directory, std::string debugfs, const ch
void dumpChg() {
const std::string pmic_bus = "/sys/devices/platform/108d0000.hsi2c/i2c-6/6-0066";
const std::string pmic_bus_dev = "/sys/devices/platform/10cb0000.hsi2c/i2c-11/11-0066";
const char* chg_reg_dump_file = "/sys/class/power_supply/main-charger/device/registers_dump";
const std::string chg_name_file = "/sys/class/power_supply/main-charger/device/name";
const std::string pmic_name_file_dev = pmic_bus_dev + "/name";
const std::string pmic_reg_dump_dev_file = pmic_bus_dev + "/registers_dump";
const std::string pmic_name_file = pmic_bus + "/name";
const std::string pmic_reg_dump_file = pmic_bus + "/registers_dump";
const std::string reg_dump_str = " registers dump";
@ -469,10 +512,6 @@ void dumpChg() {
if (isValidDir(pmic_bus.c_str())) {
ret = android::base::ReadFileToString(pmic_name_file, &pmic_name);
pmic_reg_dump = pmic_reg_dump_file;
} else {
/* DEV device */
ret = android::base::ReadFileToString(pmic_name_file_dev, &pmic_name);
pmic_reg_dump = pmic_reg_dump_dev_file;
}
if (ret && !pmic_name.empty()) {
@ -490,36 +529,16 @@ void dumpChg() {
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 *maxSecFgDir = "/d/maxfg_secondary";
const char *maxSecFgStrMatch = "maxfg_secondary";
const char *max77779FgDir = "/d/max77779fg";
const char *maxFg77779StrMatch = "max77779fg";
const char *chgTblName = "Charging table dump";
const char *chgTblDir = "/d/google_battery/chg_raw_profile";
const char *maxFgInfo [] {
"fg_model",
"algo_ver",
"model_ok",
"registers",
"nv_registers",
};
const char *max77779FgInfo [] {
"fg_model",
"algo_ver",
"model_ok",
"registers",
"debug_registers",
};
const char *max1720xFgInfo [] {
"registers",
"nv_registers",
};
if (isUserBuild())
@ -527,11 +546,7 @@ void dumpChgUserDebug() {
dumpFileContent(chgTblName, chgTblDir);
if (isValidDir(maxFgDir)) {
for (auto & directory : maxFgInfo) {
printValuesOfDirectory(directory, debugfs, maxFgStrMatch);
}
} else if (isValidDir(max77779FgDir)) {
if (isValidDir(max77779FgDir)) {
for (auto & directory : max77779FgInfo) {
printValuesOfDirectory(directory, debugfs, maxFg77779StrMatch);
}
@ -539,11 +554,6 @@ void dumpChgUserDebug() {
for (auto & directory : max77779FgInfo) {
printValuesOfDirectory(directory, debugfs, maxBaseFgStrMatch);
}
if (isValidDir(maxSecFgDir)) {
for (auto & directory : max1720xFgInfo) {
printValuesOfDirectory(directory, debugfs, maxSecFgStrMatch);
}
}
}
}
@ -1113,6 +1123,7 @@ int main() {
dumpPdEngine();
dumpBatteryHealth();
dumpBatteryDefend();
dumpBatteryCaretaker();
dumpChg();
dumpChgUserDebug();
dumpScratchpad();

View file

@ -97,6 +97,7 @@ on early-boot
chown system system /dev/logbuffer_maxfg_secondary
chown system system /dev/logbuffer_maxfg_base_monitor
chown system system /dev/logbuffer_maxfg_secondary_monitor
chown system system /dev/logbuffer_dual_batt
chown system system /dev/logbuffer_maxq
chown system system /dev/logbuffer_rtx
chown system system /dev/logbuffer_ssoc
@ -107,6 +108,7 @@ on early-boot
chown system system /dev/logbuffer_wireless
chown system system /dev/logbuffer_pca9468
chown system system /dev/logbuffer_ln8411
chown system system /dev/logbuffer_dc_mains
chown system system /dev/logbuffer_cpm
chown system system /dev/logbuffer_wc68
chown system system /dev/logbuffer_max77779_fwupdate

View file

@ -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>

6
manifest_202404.xml Normal file
View file

@ -0,0 +1,6 @@
<manifest version="1.0" type="device" target-level="202404">
<hal format="aidl">
<name>android.hardware.boot</name>
<fqname>IBootControl/default</fqname>
</hal>
</manifest>

View file

@ -0,0 +1,8 @@
<manifest version="1.0" type="device">
<!-- AIDL fragment -->
<hal format="aidl">
<name>android.hardware.media.c2</name>
<version>1</version>
<fqname>IComponentStore/default</fqname>
</hal>
</manifest>

View file

@ -33,6 +33,7 @@
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" value="1" />
<Feature name="low-latency" />
<Feature name="dynamic-color-aspects" />
</MediaCodec>
<MediaCodec name="c2.exynos.h264.decoder.secure" type="video/avc">
<Limit name="size" min="32x32" max="3840x2160" />
@ -48,6 +49,7 @@
<Feature name="secure-playback" required="true" />
<Feature name="can-swap-width-height" value="1" />
<Feature name="low-latency" />
<Feature name="dynamic-color-aspects" />
</MediaCodec>
<MediaCodec name="c2.exynos.hevc.decoder" type="video/hevc" >
<Limit name="size" min="64x64" max="7680x4320" />
@ -63,6 +65,7 @@
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" value="1" />
<Feature name="low-latency" />
<Feature name="dynamic-color-aspects" />
</MediaCodec>
<MediaCodec name="c2.exynos.hevc.decoder.secure" type="video/hevc" >
<Limit name="size" min="64x64" max="3840x2160" />
@ -78,6 +81,7 @@
<Feature name="secure-playback" required="true" />
<Feature name="can-swap-width-height" value="1" />
<Feature name="low-latency" />
<Feature name="dynamic-color-aspects" />
</MediaCodec>
<MediaCodec name="c2.exynos.mpeg4.decoder" type="video/mp4v-es">
<Limit name="size" min="32x32" max="2048x2048" />
@ -119,6 +123,7 @@
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" value="1" />
<Feature name="low-latency" />
<Feature name="dynamic-color-aspects" />
</MediaCodec>
<MediaCodec name="c2.exynos.vp9.decoder" type="video/x-vnd.on2.vp9" >
<Limit name="size" min="64x64" max="7680x4352" />
@ -134,6 +139,7 @@
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" value="1" />
<Feature name="low-latency" />
<Feature name="dynamic-color-aspects" />
</MediaCodec>
<MediaCodec name="c2.exynos.vp9.decoder.secure" type="video/x-vnd.on2.vp9" >
<Limit name="size" min="64x64" max="3840x2176" />
@ -149,6 +155,7 @@
<Feature name="secure-playback" required="true" />
<Feature name="can-swap-width-height" value="1" />
<Feature name="low-latency" />
<Feature name="dynamic-color-aspects" />
</MediaCodec>
</Decoders>
@ -188,6 +195,7 @@
<Feature name="qp-bounds"/>
<Feature name="encoding-statistics"/>
<Feature name="hdr-editing" />
<Feature name="hlg-editing" />
</MediaCodec>
<MediaCodec name="c2.exynos.mpeg4.encoder" type="video/mp4v-es">
<Limit name="size" min="32x32" max="2048x2048" />

View file

@ -31,6 +31,7 @@
<Limit name="performance-point-3840x2160" value="60" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" value="1" />
<Feature name="dynamic-color-aspects" />
</MediaCodec>
<MediaCodec name="c2.google.av1.decoder.secure" type="video/av01">
<Limit name="size" min="96x96" max="3840x2160" />
@ -47,15 +48,16 @@
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Feature name="can-swap-width-height" value="1" />
<Feature name="dynamic-color-aspects" />
</MediaCodec>
</Decoders>
<Encoders>
<MediaCodec name="c2.google.av1.encoder" type="video/av01">
<Limit name="size" min="64x64" max="3840x2176" />
<Limit name="size" min="80x80" max="3840x2176" />
<Limit name="alignment" value="1x1" />
<Limit name="block-size" value="64x64" />
<Limit name="block-count" range="1-2040" />
<Limit name="blocks-per-second" min="1" max="61200" />
<Limit name="block-count" range="4-2040" />
<Limit name="blocks-per-second" min="4" max="61200" />
<Limit name="bitrate" range="1-120000000" />
<Limit name="performance-point-1280x720" range="200" />
<Limit name="performance-point-1920x1080" value="180" />
@ -66,6 +68,7 @@
<Feature name="vq-minimum-quality"/>
<Feature name="encoding-statistics"/>
<Feature name="hdr-editing" />
<Feature name="hlg-editing" />
</MediaCodec>
</Encoders>
</MediaCodecs>

View file

@ -275,6 +275,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>
<!-- Enable variable refresh rate when typing. -->
<bool name="config_variableRefreshRateTypingSupported">false</bool>
@ -481,10 +484,44 @@
<!-- Telephony satellite gateway service package name to bind to by default. -->
<string name="config_satellite_gateway_service_package">com.google.android.apps.stargate</string>
<!-- The class name to receive the intent for provisioning. -->
<string name="config_satellite_carrier_roaming_esos_provisioned_class">com.google.android.apps.stargate.registration.RegistrationReceiver_Receiver</string>
<!-- List of country codes where oem-enabled satellite services are either allowed or disallowed
by the device. Each country code is a lowercase 2 character ISO-3166-1 alpha-2. -->
<string-array name="config_oem_enabled_satellite_country_codes">
<item>US</item>
<item>PR</item>
<item>CA</item>
<item>AT</item>
<item>BE</item>
<item>BG</item>
<item>HR</item>
<item>CY</item>
<item>CZ</item>
<item>DK</item>
<item>EE</item>
<item>FI</item>
<item>FR</item>
<item>DE</item>
<item>GR</item>
<item>HU</item>
<item>IE</item>
<item>IT</item>
<item>LV</item>
<item>LT</item>
<item>LU</item>
<item>NL</item>
<item>NO</item>
<item>PL</item>
<item>PT</item>
<item>RO</item>
<item>SK</item>
<item>SI</item>
<item>ES</item>
<item>SE</item>
<item>CH</item>
<item>GB</item>
</string-array>
<!-- The file storing S2-cell-based satellite access restriction of the countries defined by
@ -523,10 +560,30 @@
<!-- The intent action to handle oem-enabled satellite demo mode SOS messaging. -->
<string name="config_satellite_demo_mode_sos_intent_action">com.google.android.apps.stargate.ACTION_ESOS_DEMO</string>
<!-- User activity timeout: Maximum screen dim duration in milliseconds. -->
<integer name="config_maximumScreenDimDuration">20000</integer>
<!-- The receiver class of the intent action to start satellite non-emergency mode -->
<string name="config_satellite_carrier_roaming_non_emergency_session_class">com.google.android.apps.stargate.sessionmanager.SessionManagerReceiver_Receiver</string>
<!-- User activity timeout: Maximum screen dim duration as a percentage of screen off timeout.
<!-- Whether to show the system notification to users whenever there is a change
in the satellite availability state at the current location. -->
<bool name="config_satellite_should_notify_availability">false</bool>
<!-- The absolute path to the satellite config file. -->
<string name="satellite_access_config_file">/vendor/etc/telephony/satellite_access_config.json</string>
<!-- Whether to allow check message datagrams to be sent even when the satellite modem is in
not connected state. -->
<bool name="config_satellite_allow_check_message_in_not_connected">true</bool>
<!-- Whether to allow TN scanning during satellite session. -->
<bool name="config_satellite_allow_tn_scanning_during_satellite_session">false</bool>
<!-- A string defines the NIDD (Non-IP Data Delivery) APN to be used for satellite attachment. For more on NIDD,
see 3GPP TS 29.542. This config is used for an NTN-only subscription, which requires activation before being used.
-->
<fraction name="config_maximumScreenDimRatio">33%</fraction>
<string name="config_satellite_nidd_apn_name">pixel.ntn</string>
<!-- List of integer tag Ids representing VZW satellite coverage. -->
<integer-array name="config_verizon_satellite_enabled_tagids">
<item>1001</item>
</integer-array>
</resources>

View file

@ -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>

View file

@ -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>

View file

@ -31,4 +31,7 @@
<!-- String indicating the package name of the device GbaService implementation. -->
<string name="config_gba_package" translatable="false">com.shannon.rcsservice</string>
<!-- Whether to turn off non-emergency nb iot ntn satellite for emergency call -->
<bool name="config_turn_off_non_emergency_nb_iot_ntn_satellite_for_emergency_call">false</bool>
</resources>

View file

@ -265,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": [
@ -304,9 +500,33 @@
"Name": "OtaProfiles",
"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" ]
}
]
}

View file

@ -0,0 +1,195 @@
{
"access_control_configs": [
{
"config_id": 0,
"satellite_infos": [
{
"satellite_id": "967f8e86-fc27-4673-9343-a820280a14dd",
"satellite_position": {
"longitude": 10.25,
"altitude": 35793.1
},
"bands": [
256
],
"earfcn_ranges": [
{
"start_earfcn": 229360,
"end_earfcn": 229360
},
{
"start_earfcn": 229362,
"end_earfcn": 229362
},
{
"start_earfcn": 229364,
"end_earfcn": 229364
},
{
"start_earfcn": 229366,
"end_earfcn": 229366
}
]
}
],
"tag_ids": [
101
]
},
{
"config_id": 1,
"satellite_infos": [
{
"satellite_id": "c9d78ffa-ffa5-4d41-a81b-34693b33b496",
"satellite_position": {
"longitude": -101.3,
"altitude": 35786.0
},
"bands": [
255
],
"earfcn_ranges": [
{
"start_earfcn": 229011,
"end_earfcn": 229011
},
{
"start_earfcn": 229013,
"end_earfcn": 229013
},
{
"start_earfcn": 229015,
"end_earfcn": 229015
},
{
"start_earfcn": 229017,
"end_earfcn": 229017
}
]
}
],
"tag_ids": [
11,
1001
]
},
{
"config_id": 2,
"satellite_infos": [
{
"satellite_id": "62de127d-ead1-481f-8524-b58e2664103a",
"satellite_position": {
"longitude": -98.0,
"altitude": 35775.1
},
"bands": [
255
],
"earfcn_ranges": [
{
"start_earfcn": 228837,
"end_earfcn": 228837
}
]
}
],
"tag_ids": [
11,
1001
]
},
{
"config_id": 3,
"satellite_infos": [
{
"satellite_id": "62de127d-ead1-481f-8524-b58e2664103a",
"satellite_position": {
"longitude": -98.0,
"altitude": 35775.1
},
"bands": [
255
],
"earfcn_ranges": [
{
"start_earfcn": 228909,
"end_earfcn": 228909
},
{
"start_earfcn": 228919,
"end_earfcn": 228919
}
]
}
],
"tag_ids": [
11
]
},
{
"config_id": 4,
"satellite_infos": [
{
"satellite_id": "c9d78ffa-ffa5-4d41-a81b-34693b33b496",
"satellite_position": {
"longitude": -101.3,
"altitude": 35786.0
},
"bands": [
255
],
"earfcn_ranges": [
{
"start_earfcn": 229011,
"end_earfcn": 229011
},
{
"start_earfcn": 229013,
"end_earfcn": 229013
},
{
"start_earfcn": 229015,
"end_earfcn": 229015
},
{
"start_earfcn": 229017,
"end_earfcn": 229017
}
]
}
],
"tag_ids": [
12
]
},
{
"config_id": 5,
"satellite_infos": [
{
"satellite_id": "62de127d-ead1-481f-8524-b58e2664103a",
"satellite_position": {
"longitude": -98.0,
"altitude": 35775.1
},
"bands": [
255
],
"earfcn_ranges": [
{
"start_earfcn": 228919,
"end_earfcn": 228919
},
{
"start_earfcn": 228909,
"end_earfcn": 228909
}
]
}
],
"tag_ids": [
11,
1001
]
}
]
}

Binary file not shown.

View file

@ -117,6 +117,12 @@ constexpr char kHost1StatePath[] = "/sys/bus/usb/devices/usb1/1-0:1.0/usb1-port1
constexpr char kHost2UeventRegex[] =
"/devices/platform/11210000.usb/11210000.dwc3/xhci-hcd-exynos.[0-9].auto/usb2/2-0:1.0";
constexpr char kHost2StatePath[] = "/sys/bus/usb/devices/usb2/2-0:1.0/usb2-port1/state";
constexpr char kHubHost1UeventRegex[] =
"/devices/platform/11210000.usb/11210000.dwc3/xhci-hcd-exynos.[0-9].auto/usb1/1-1/1-1:1.0";
constexpr char kHubHost1StatePath[] = "/sys/bus/usb/devices/usb1/1-1/1-1:1.0/1-1-port1/state";
constexpr char kHubHost2UeventRegex[] =
"/devices/platform/11210000.usb/11210000.dwc3/xhci-hcd-exynos.[0-9].auto/usb1/1-1/1-1:1.0";
constexpr char kHubHost2StatePath[] = "/sys/bus/usb/devices/usb1/1-1/1-1:1.0/1-1-port2/state";
constexpr char kDataRolePath[] = "/sys/devices/platform/11210000.usb/new_data_role";
constexpr int kSamplingIntervalSec = 5;
void queryVersionHelper(android::hardware::usb::Usb *usb,
@ -536,10 +542,9 @@ static int getInternalHubUniqueId() {
return internalHubUniqueId;
}
static Status tuneInternalHub(const char *devname, void* client_data) {
static Status tuneInternalHub(const char *devname, android::hardware::usb::Usb *usb) {
uint16_t vendorId, productId;
struct usb_device *device;
::aidl::android::hardware::usb::Usb *usb;
int value, index;
device = usb_device_open(devname);
@ -548,7 +553,6 @@ static Status tuneInternalHub(const char *devname, void* client_data) {
return Status::ERROR;
}
usb = (::aidl::android::hardware::usb::Usb *)client_data;
value = usb->mUsbHubVendorCmdValue;
index = usb->mUsbHubVendorCmdIndex;
@ -571,20 +575,46 @@ static Status tuneInternalHub(const char *devname, void* client_data) {
}
static int usbDeviceRemoved(const char *devname, void* client_data) {
string pogoEnableHub;
::aidl::android::hardware::usb::Usb *usb;
usb = (::aidl::android::hardware::usb::Usb *)client_data;
if (usb->mIntHubEnabled == true && ReadFileToString(kPogoEnableHub, &pogoEnableHub)
&& Trim(pogoEnableHub) == "0") {
ALOGI("Internal hub disabled");
usb->mIntHubEnabled = false;
usb->mUsbDataSessionMonitor.reset(new UsbDataSessionMonitor(kUdcUeventRegex, kUdcStatePath,
kHost1UeventRegex, kHost1StatePath, kHost2UeventRegex,
kHost2StatePath, kDataRolePath,
std::bind(&updatePortStatus, usb)));
}
return 0;
}
static int usbDeviceAdded(const char *devname, void* client_data) {
string pogoEnableHub;
int uniqueId = 0;
::aidl::android::hardware::usb::Usb *usb;
usb = (::aidl::android::hardware::usb::Usb *)client_data;
// Enable hub tuning when the pogo dock is connected.
if (ReadFileToString(kPogoEnableHub, &pogoEnableHub) && Trim(pogoEnableHub) == "1") {
// If enable_hub is set to 1, the internal hub is the first enumearted device on bus 1 and
// port 1.
uniqueId = usb_device_get_unique_id_from_name(devname);
if (uniqueId == getInternalHubUniqueId())
tuneInternalHub(devname, client_data);
if (uniqueId == getInternalHubUniqueId()) {
ALOGI("Internal hub enabled");
usb->mIntHubEnabled = true;
tuneInternalHub(devname, usb);
usb->mUsbDataSessionMonitor.reset(new UsbDataSessionMonitor(kUdcUeventRegex,
kUdcStatePath, kHubHost1UeventRegex,
kHubHost1StatePath, kHubHost2UeventRegex,
kHubHost2StatePath, kDataRolePath,
std::bind(&updatePortStatus, usb)));
}
}
return 0;
@ -612,9 +642,9 @@ Usb::Usb()
mRoleSwitchLock(PTHREAD_MUTEX_INITIALIZER),
mPartnerLock(PTHREAD_MUTEX_INITIALIZER),
mPartnerUp(false),
mUsbDataSessionMonitor(kUdcUeventRegex, kUdcStatePath, kHost1UeventRegex, kHost1StatePath,
kHost2UeventRegex, kHost2StatePath, kDataRolePath,
std::bind(&updatePortStatus, this)),
mUsbDataSessionMonitor(new UsbDataSessionMonitor(kUdcUeventRegex, kUdcStatePath,
kHost1UeventRegex, kHost1StatePath, kHost2UeventRegex,
kHost2StatePath, kDataRolePath, std::bind(&updatePortStatus, this))),
mOverheat(ZoneInfo(TemperatureType::USB_PORT, kThermalZoneForTrip,
ThrottlingSeverity::CRITICAL),
{ZoneInfo(TemperatureType::UNKNOWN, kThermalZoneForTempReadPrimary,
@ -1200,7 +1230,7 @@ void queryUsbDataSession(android::hardware::usb::Usb *usb,
std::vector<PortStatus> *currentPortStatus) {
std::vector<ComplianceWarning> warnings;
usb->mUsbDataSessionMonitor.getComplianceWarnings(
usb->mUsbDataSessionMonitor->getComplianceWarnings(
(*currentPortStatus)[0].currentDataRole, &warnings);
(*currentPortStatus)[0].complianceWarnings.insert(
(*currentPortStatus)[0].complianceWarnings.end(),
@ -1215,9 +1245,11 @@ void queryVersionHelper(android::hardware::usb::Usb *usb,
pthread_mutex_lock(&usb->mLock);
status = getPortStatusHelper(usb, currentPortStatus);
if (status == Status::SUCCESS && currentPortStatus->size() > 0) {
queryMoistureDetectionStatus(usb, currentPortStatus);
queryPowerTransferStatus(usb, currentPortStatus);
queryNonCompliantChargerStatus(currentPortStatus);
queryUsbDataSession(usb, currentPortStatus);
pthread_mutex_lock(&usb->mDisplayPortLock);
if (!usb->mDisplayPortFirstSetupDone &&
usb->getDisplayPortUsbPathHelper(&displayPortUsbPath) == Status::SUCCESS) {
@ -1235,6 +1267,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);
}

View file

@ -126,7 +126,8 @@ struct Usb : public BnUsb {
bool mPartnerUp;
// Report usb data session event and data incompliance warnings
UsbDataSessionMonitor mUsbDataSessionMonitor;
std::unique_ptr<UsbDataSessionMonitor> mUsbDataSessionMonitor;
bool mIntHubEnabled;
// Usb Overheat object for push suez event
UsbOverheatEvent mOverheat;
// Temperature when connected

View file

@ -102,6 +102,7 @@ UsbDataSessionMonitor::UsbDataSessionMonitor(
const std::string &dataRolePath, std::function<void()> updatePortStatusCb) {
struct epoll_event ev;
std::string udc;
int pipefds[2];
unique_fd epollFd(epoll_create(8));
if (epollFd.get() == -1) {
@ -133,19 +134,28 @@ UsbDataSessionMonitor::UsbDataSessionMonitor(
abort();
}
pipe(pipefds);
mPipefd0.reset(pipefds[0]);
mPipefd1.reset(pipefds[1]);
if (addEpollFd(epollFd, mPipefd0))
abort();
/*
* The device state file could be absent depending on the current data role
* and driver architecture. It's ok for addEpollFile to fail here, the file
* will be monitored later when its presence is detected by uevent.
*/
mDeviceState.name = "udc";
mDeviceState.filePath = deviceStatePath;
mDeviceState.ueventRegex = deviceUeventRegex;
addEpollFile(epollFd.get(), mDeviceState.filePath, mDeviceState.fd);
mHost1State.name = "host1";
mHost1State.filePath = host1StatePath;
mHost1State.ueventRegex = host1UeventRegex;
addEpollFile(epollFd.get(), mHost1State.filePath, mHost1State.fd);
mHost2State.name = "host2";
mHost2State.filePath = host2StatePath;
mHost2State.ueventRegex = host2UeventRegex;
addEpollFile(epollFd.get(), mHost2State.filePath, mHost2State.fd);
@ -169,7 +179,15 @@ UsbDataSessionMonitor::UsbDataSessionMonitor(
usb_flags::enable_report_usb_data_compliance_warning());
}
UsbDataSessionMonitor::~UsbDataSessionMonitor() {}
UsbDataSessionMonitor::~UsbDataSessionMonitor() {
/*
* Write a character to the pipe to signal the monitor thread to exit.
* The character is not important, it can be any value.
*/
int c = 'q';
write(mPipefd1, &c, 1);
pthread_join(mMonitor, NULL);
}
void UsbDataSessionMonitor::reportUsbDataSessionMetrics() {
std::vector<VendorUsbDataSessionEvent> events;
@ -307,11 +325,11 @@ void UsbDataSessionMonitor::handleDeviceStateEvent(struct usbDeviceState *device
n = read(deviceState->fd.get(), &state, USB_STATE_MAX_LEN);
if (kValidStates.find(state) == kValidStates.end()) {
ALOGE("Invalid state %s", state);
ALOGE("Invalid state %s: %s", deviceState->name.c_str(), state);
return;
}
ALOGI("Update USB device state: %s", state);
ALOGI("Update device state %s: %s", deviceState->name.c_str(), state);
deviceState->states.push_back(state);
deviceState->timestamps.push_back(boot_clock::now());
@ -484,7 +502,9 @@ void *UsbDataSessionMonitor::monitorThread(void *param) {
}
for (int n = 0; n < nevents; ++n) {
if (events[n].data.fd == monitor->mUeventFd.get()) {
if (events[n].data.fd == monitor->mPipefd0.get()) {
return NULL;
} else if (events[n].data.fd == monitor->mUeventFd.get()) {
monitor->handleUevent();
} else if (events[n].data.fd == monitor->mTimerFd.get()) {
monitor->handleTimerEvent();

View file

@ -64,6 +64,8 @@ class UsbDataSessionMonitor {
private:
struct usbDeviceState {
// The name of the usb device, e.g. udc, host1, host2.
std::string name;
unique_fd fd;
std::string filePath;
std::string ueventRegex;
@ -86,6 +88,8 @@ class UsbDataSessionMonitor {
void updateUdcBindStatus(const std::string &devname);
pthread_t mMonitor;
unique_fd mPipefd0;
unique_fd mPipefd1;
unique_fd mEpollFd;
unique_fd mUeventFd;
unique_fd mTimerFd;

View file

@ -26,7 +26,6 @@ on post-fs
chown root system /sys/devices/platform/11110000.usb/dwc3_exynos_otg_b_sess
chown root system /sys/devices/platform/11110000.usb/dwc3_exynos_otg_id
chown root system /sys/devices/platform/11110000.usb/usb_data_enabled
chown root system /sys/devices/platform/google,pogo/enable_usb
chmod 664 /sys/class/typec/port0/power_role
chmod 664 /sys/class/typec/port0/data_role
chmod 664 /sys/class/typec/port0/port_type
@ -48,4 +47,3 @@ on post-fs
chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/pin_assignment
chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/link_status
chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/usbc_cable_disconnect
chmod 664 /sys/devices/platform/google,pogo/enable_usb

View file

@ -26,7 +26,6 @@ on post-fs
chown root system /sys/devices/platform/11110000.usb/dwc3_exynos_otg_b_sess
chown root system /sys/devices/platform/11110000.usb/dwc3_exynos_otg_id
chown root system /sys/devices/platform/11110000.usb/usb_data_enabled
chown root system /sys/devices/platform/google,pogo/enable_usb
chmod 664 /sys/class/typec/port0/power_role
chmod 664 /sys/class/typec/port0/data_role
chmod 664 /sys/class/typec/port0/port_type
@ -48,4 +47,3 @@ on post-fs
chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/pin_assignment
chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/link_status
chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/usbc_cable_disconnect
chmod 664 /sys/devices/platform/google,pogo/enable_usb