Compare commits
31 Commits
86a105cac1
...
bka
| Author | SHA1 | Date | |
|---|---|---|---|
| 27ad86cd5c | |||
|
|
ce8eacb771 | ||
|
|
ea8032d800 | ||
|
|
1f71cbf67d | ||
|
|
480af963fd | ||
|
|
4577fe8551 | ||
|
|
14c4750072 | ||
|
|
21b5d431a1 | ||
|
|
939c3e55d0 | ||
|
|
3dc6f4abba | ||
|
|
241eea73ae | ||
|
|
3e855cc5bf | ||
|
|
9b8e381b45 | ||
|
|
3d47a0cda6 | ||
|
|
0ce4a26958 | ||
|
|
7980132b8d | ||
|
|
9cd69bdca4 | ||
|
|
b8bf4ad8a2 | ||
|
|
48b5ca47ff | ||
|
|
8cf4018711 | ||
|
|
75376286a4 | ||
|
|
e4c7397780 | ||
|
|
180f58bc15 | ||
|
|
e77f34cf32 | ||
|
|
775b886a3e | ||
|
|
a9fc594c5b | ||
|
|
816d06c93d | ||
|
|
4f4ee5c69a | ||
|
|
ae1ddbb77b | ||
|
|
0bb452b6c1 | ||
|
|
080a9c0b0b |
@@ -1 +0,0 @@
|
||||
https://android.googlesource.com/device/google/gs201
|
||||
@@ -1,29 +1,13 @@
|
||||
#
|
||||
# Copyright (C) 2019 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.
|
||||
# SPDX-FileCopyrightText: 2019 The Android Open-Source Project
|
||||
# SPDX-FileCopyrightText: The LineageOS Project
|
||||
# SPDX-FileCopyrightText: The Calyx Institute
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
include build/make/target/board/BoardConfigMainlineCommon.mk
|
||||
include build/make/target/board/BoardConfigPixelCommon.mk
|
||||
|
||||
# HACK : To fix up after bring up multimedia devices.
|
||||
TARGET_SOC := gs201
|
||||
|
||||
TARGET_SOC_NAME := google
|
||||
|
||||
USES_DEVICE_GOOGLE_GS201 := true
|
||||
$(call soong_config_set,googleDeviceConfig,target_soc,gs201)
|
||||
|
||||
TARGET_ARCH := arm64
|
||||
TARGET_ARCH_VARIANT := armv8-2a
|
||||
TARGET_CPU_ABI := arm64-v8a
|
||||
@@ -54,13 +38,8 @@ BOARD_KERNEL_CMDLINE += disable_dma32=on
|
||||
BOARD_BOOTCONFIG += androidboot.boot_devices=14700000.ufs
|
||||
|
||||
TARGET_NO_BOOTLOADER := true
|
||||
TARGET_NO_RADIOIMAGE := true
|
||||
BOARD_PREBUILT_BOOTIMAGE := $(wildcard $(TARGET_KERNEL_DIR)/boot.img)
|
||||
ifneq (,$(BOARD_PREBUILT_BOOTIMAGE))
|
||||
TARGET_NO_KERNEL := true
|
||||
else
|
||||
TARGET_NO_KERNEL := false
|
||||
endif
|
||||
BOARD_USES_GENERIC_KERNEL_IMAGE := true
|
||||
BOARD_MOVE_RECOVERY_RESOURCES_TO_VENDOR_BOOT := true
|
||||
BOARD_MOVE_GSI_AVB_KEYS_TO_VENDOR_BOOT := true
|
||||
@@ -80,11 +59,14 @@ TARGET_RECOVERY_UI_LIB := \
|
||||
AB_OTA_UPDATER := true
|
||||
|
||||
AB_OTA_PARTITIONS += \
|
||||
system \
|
||||
system_dlkm \
|
||||
system_ext \
|
||||
product \
|
||||
vbmeta_system
|
||||
system \
|
||||
system_dlkm \
|
||||
system_ext \
|
||||
product \
|
||||
vbmeta_system \
|
||||
vbmeta_vendor \
|
||||
vendor \
|
||||
vendor_dlkm
|
||||
|
||||
ifneq ($(PRODUCT_BUILD_BOOT_IMAGE),false)
|
||||
AB_OTA_PARTITIONS += boot
|
||||
@@ -106,41 +88,6 @@ ifneq ($(PRODUCT_BUILD_PVMFW_IMAGE),false)
|
||||
AB_OTA_PARTITIONS += pvmfw
|
||||
endif
|
||||
|
||||
# EMULATOR common modules
|
||||
BOARD_EMULATOR_COMMON_MODULES := liblight
|
||||
|
||||
OVERRIDE_RS_DRIVER := libRSDriverArm.so
|
||||
BOARD_EGL_CFG := device/google/gs201/conf/egl.cfg
|
||||
#BOARD_USES_HGL := true
|
||||
USE_OPENGL_RENDERER := true
|
||||
NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3
|
||||
BOARD_USES_EXYNOS5_COMMON_GRALLOC := true
|
||||
BOARD_USES_ALIGN_RESTRICTION := false
|
||||
BOARD_USES_GRALLOC_ION_SYNC := true
|
||||
|
||||
# This should be the same value as USE_SWIFTSHADER in device.mk
|
||||
BOARD_USES_SWIFTSHADER := false
|
||||
|
||||
# Gralloc4
|
||||
ifeq ($(BOARD_USES_SWIFTSHADER),true)
|
||||
$(call soong_config_set,arm_gralloc,gralloc_arm_no_external_afbc,true)
|
||||
$(call soong_config_set,arm_gralloc,mali_gpu_support_afbc_basic,false)
|
||||
$(call soong_config_set,arm_gralloc,mali_gpu_support_afbc_wideblk,false)
|
||||
$(call soong_config_set,arm_gralloc,gralloc_init_afbc,false)
|
||||
$(call soong_config_set,arm_gralloc,dpu_support_1010102_afbc,false)
|
||||
else
|
||||
$(call soong_config_set,arm_gralloc,gralloc_arm_no_external_afbc,false)
|
||||
$(call soong_config_set,arm_gralloc,mali_gpu_support_afbc_basic,true)
|
||||
$(call soong_config_set,arm_gralloc,mali_gpu_support_afbc_wideblk,true)
|
||||
$(call soong_config_set,arm_gralloc,gralloc_init_afbc,true)
|
||||
$(call soong_config_set,arm_gralloc,dpu_support_1010102_afbc,true)
|
||||
endif # ifeq ($(BOARD_USES_SWIFTSHADER),true)
|
||||
|
||||
$(call soong_config_set,arm_gralloc,gralloc_ion_sync_on_lock,$(BOARD_USES_GRALLOC_ION_SYNC))
|
||||
|
||||
# Graphics
|
||||
#BOARD_USES_EXYNOS_DATASPACE_FEATURE := true
|
||||
|
||||
# Enable chain partition for system.
|
||||
BOARD_AVB_VBMETA_SYSTEM := system system_dlkm system_ext product
|
||||
BOARD_AVB_VBMETA_SYSTEM_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem
|
||||
@@ -158,18 +105,27 @@ BOARD_AVB_BOOT_ALGORITHM := SHA256_RSA2048
|
||||
BOARD_AVB_BOOT_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
|
||||
BOARD_AVB_BOOT_ROLLBACK_INDEX_LOCATION := 2
|
||||
|
||||
# Enable chain partition for vendor.
|
||||
BOARD_AVB_VBMETA_VENDOR := vendor
|
||||
BOARD_AVB_VBMETA_VENDOR_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem
|
||||
BOARD_AVB_VBMETA_VENDOR_ALGORITHM := SHA256_RSA2048
|
||||
BOARD_AVB_VBMETA_VENDOR_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
|
||||
BOARD_AVB_VBMETA_VENDOR_ROLLBACK_INDEX_LOCATION := 3
|
||||
|
||||
# Enable chained vbmeta for init_boot images
|
||||
BOARD_AVB_INIT_BOOT_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem
|
||||
BOARD_AVB_INIT_BOOT_ALGORITHM := SHA256_RSA2048
|
||||
BOARD_AVB_INIT_BOOT_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
|
||||
BOARD_AVB_INIT_BOOT_ROLLBACK_INDEX_LOCATION := 4
|
||||
|
||||
# Verified Boot
|
||||
BOARD_AVB_MAKE_VBMETA_IMAGE_ARGS += --flags 3
|
||||
|
||||
TARGET_USERIMAGES_USE_EXT4 := true
|
||||
TARGET_USERIMAGES_USE_F2FS := true
|
||||
BOARD_USERDATAIMAGE_PARTITION_SIZE := 11796480000
|
||||
PRODUCT_FS_COMPRESSION := 1
|
||||
BOARD_FLASH_BLOCK_SIZE := 4096
|
||||
BOARD_MOUNT_SDCARD_RW := true
|
||||
|
||||
# product.img
|
||||
BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := ext4
|
||||
@@ -179,33 +135,16 @@ TARGET_COPY_OUT_PRODUCT := product
|
||||
BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE := ext4
|
||||
TARGET_COPY_OUT_SYSTEM_EXT := system_ext
|
||||
|
||||
# vendor.img
|
||||
BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4
|
||||
|
||||
# vendor_dlkm.img
|
||||
BOARD_VENDOR_DLKMIMAGE_FILE_SYSTEM_TYPE := ext4
|
||||
TARGET_COPY_OUT_VENDOR_DLKM := vendor_dlkm
|
||||
|
||||
# persist.img
|
||||
BOARD_PERSISTIMAGE_FILE_SYSTEM_TYPE := ext4
|
||||
|
||||
########################
|
||||
# Video Codec
|
||||
########################
|
||||
# 1. Exynos C2
|
||||
BOARD_USE_CODEC2_HIDL_1_2 := true
|
||||
BOARD_USE_CSC_FILTER := false
|
||||
BOARD_USE_DEC_SW_CSC := true
|
||||
BOARD_USE_ENC_SW_CSC := true
|
||||
BOARD_SUPPORT_MFC_ENC_RGB := true
|
||||
BOARD_USE_BLOB_ALLOCATOR := false
|
||||
BOARD_SUPPORT_MFC_ENC_BT2020 := true
|
||||
BOARD_SUPPORT_FLEXIBLE_P010 := true
|
||||
$(call soong_config_set,video_codec,target_soc_name,$(TARGET_SOC_NAME))
|
||||
$(call soong_config_set_bool,video_codec,board_use_codec2_hidl_1_2,$(BOARD_USE_CODEC2_HIDL_1_2))
|
||||
$(call soong_config_set_bool,video_codec,board_use_csc_filter,$(BOARD_USE_CSC_FILTER))
|
||||
$(call soong_config_set_bool,video_codec,board_use_dec_sw_csc,$(BOARD_USE_DEC_SW_CSC))
|
||||
$(call soong_config_set_bool,video_codec,board_use_enc_sw_csc,$(BOARD_USE_ENC_SW_CSC))
|
||||
$(call soong_config_set_bool,video_codec,board_support_mfc_enc_rgb,$(BOARD_SUPPORT_MFC_ENC_RGB))
|
||||
$(call soong_config_set_bool,video_codec,board_use_blob_allocator,$(BOARD_USE_BLOB_ALLOCATOR))
|
||||
$(call soong_config_set_bool,video_codec,board_support_mfc_enc_bt2020,$(BOARD_SUPPORT_MFC_ENC_BT2020))
|
||||
$(call soong_config_set_bool,video_codec,board_support_flexible_p010,$(BOARD_SUPPORT_FLEXIBLE_P010))
|
||||
$(call soong_config_set_bool,video_codec,board_use_codec2_aidl,$(if $(BOARD_USE_CODEC2_AIDL),true,false))
|
||||
########################
|
||||
|
||||
BOARD_SUPER_PARTITION_SIZE := 8531214336
|
||||
BOARD_SUPER_PARTITION_GROUPS := google_dynamic_partitions
|
||||
# Set size to BOARD_SUPER_PARTITION_SIZE - overhead (4MiB) (b/182237294)
|
||||
@@ -221,145 +160,31 @@ BOARD_GOOGLE_DYNAMIC_PARTITIONS_PARTITION_LIST := \
|
||||
# Set error limit to BOARD_SUPER_PARTITON_SIZE - 500MB
|
||||
BOARD_SUPER_PARTITION_ERROR_LIMIT := 8006926336
|
||||
|
||||
# Reserve space for gapps install
|
||||
-include vendor/lineage/config/BoardConfigReservedSize.mk
|
||||
|
||||
# Build a separate system_dlkm partition
|
||||
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/p10c10-setup.sh
|
||||
|
||||
#
|
||||
# AUDIO & VOICE
|
||||
#
|
||||
BOARD_USES_GENERIC_AUDIO := true
|
||||
|
||||
$(call soong_config_set,aoc_audio_func,ext_hidl,true)
|
||||
|
||||
ifneq (,$(filter aosp_%,$(TARGET_PRODUCT)))
|
||||
$(call soong_config_set,aoc_audio_func,aosp_build,true)
|
||||
endif
|
||||
|
||||
# Primary AudioHAL Configuration
|
||||
#BOARD_USE_COMMON_AUDIOHAL := true
|
||||
#BOARD_USE_CALLIOPE_AUDIOHAL := false
|
||||
#BOARD_USE_AUDIOHAL := true
|
||||
|
||||
# Compress Offload Configuration
|
||||
#BOARD_USE_OFFLOAD_AUDIO := true
|
||||
#BOARD_USE_OFFLOAD_EFFECT := false
|
||||
|
||||
# SoundTriggerHAL Configuration
|
||||
#BOARD_USE_SOUNDTRIGGER_HAL := false
|
||||
|
||||
# Vibrator HAL actuator model and adaptive haptics configuration
|
||||
$(call soong_config_set,haptics,actuator_model,$(ACTUATOR_MODEL))
|
||||
$(call soong_config_set,haptics,adaptive_haptics_feature,$(ADAPTIVE_HAPTICS_FEATURE))
|
||||
|
||||
# HWComposer
|
||||
BOARD_HWC_VERSION := hwc3
|
||||
TARGET_RUNNING_WITHOUT_SYNC_FRAMEWORK := false
|
||||
BOARD_HDMI_INCAPABLE := true
|
||||
TARGET_USES_HWC2 := true
|
||||
HWC_SUPPORT_RENDER_INTENT := true
|
||||
HWC_SUPPORT_COLOR_TRANSFORM := true
|
||||
#BOARD_USES_DISPLAYPORT := true
|
||||
# if AFBC is enabled, must set ro.vendor.ddk.set.afbc=1
|
||||
BOARD_USES_EXYNOS_AFBC_FEATURE := true
|
||||
#BOARD_USES_HDRUI_GLES_CONVERSION := true
|
||||
|
||||
BOARD_LIBACRYL_DEFAULT_COMPOSITOR := fimg2d_gs201
|
||||
BOARD_LIBACRYL_G2D_HDR_PLUGIN := libacryl_hdr_plugin
|
||||
$(call soong_config_set,acryl,libacryl_g2d_hdr_plugin,//hardware/google/graphics/gs201/libacryl_plugins:libacryl_hdr_plugin)
|
||||
$(call soong_config_set,acryl,libacryl_c_include,hardware/google/graphics/$(TARGET_BOARD_PLATFORM)/libcap)
|
||||
|
||||
# HWCServices
|
||||
BOARD_USES_HWC_SERVICES := true
|
||||
|
||||
# WiFiDisplay
|
||||
# BOARD_USES_VIRTUAL_DISPLAY := true
|
||||
# BOARD_USES_VDS_EXYNOS_HWC := true
|
||||
# BOARD_USES_WIFI_DISPLAY:= true
|
||||
# BOARD_USES_EGL_SURFACE_FOR_COMPOSITION_MIXED := true
|
||||
# BOARD_USES_VDS_YUV420SPM := true
|
||||
# BOARD_USES_VDS_OTHERFORMAT := true
|
||||
# BOARD_USES_VDS_DEBUG_FLAG := true
|
||||
# BOARD_USES_DISABLE_COMPOSITIONTYPE_GLES := true
|
||||
# BOARD_USES_SECURE_ENCODER_ONLY := true
|
||||
# BOARD_USES_TSMUX := true
|
||||
|
||||
# SCALER
|
||||
BOARD_USES_DEFAULT_CSC_HW_SCALER := true
|
||||
BOARD_DEFAULT_CSC_HW_SCALER := 4
|
||||
BOARD_USES_SCALER_M2M1SHOT := true
|
||||
|
||||
# Device Tree
|
||||
BOARD_USES_DT := true
|
||||
BOARD_INCLUDE_DTB_IN_BOOTIMG := true
|
||||
BOARD_PREBUILT_DTBIMAGE_DIR := $(TARGET_KERNEL_DIR)
|
||||
BOARD_PREBUILT_DTBOIMAGE := $(BOARD_PREBUILT_DTBIMAGE_DIR)/dtbo.img
|
||||
|
||||
# PLATFORM LOG
|
||||
TARGET_USES_LOGD := true
|
||||
|
||||
# LIBHWJPEG
|
||||
#TARGET_USES_UNIVERSAL_LIBHWJPEG := true
|
||||
#LIBHWJPEG_HWSCALER_ID := 0
|
||||
|
||||
#Keymaster
|
||||
#BOARD_USES_KEYMASTER_VER1 := true
|
||||
|
||||
#FMP
|
||||
#BOARD_USES_FMP_DM_CRYPT := true
|
||||
#BOARD_USES_FMP_FSCRYPTO := true
|
||||
BOARD_USES_METADATA_PARTITION := true
|
||||
|
||||
# SKIA
|
||||
#BOARD_USES_SKIA_MULTITHREADING := true
|
||||
#BOARD_USES_FIMGAPI_V5X := true
|
||||
|
||||
# SECCOMP Policy
|
||||
BOARD_SECCOMP_POLICY = device/google/gs201/seccomp_policy
|
||||
|
||||
#CURL
|
||||
BOARD_USES_CURL := true
|
||||
|
||||
# Sensor HAL
|
||||
BOARD_USES_EXYNOS_SENSORS_DUMMY := true
|
||||
|
||||
# VISION
|
||||
# Exynos vision framework (EVF)
|
||||
#TARGET_USES_EVF := true
|
||||
# HW acceleration
|
||||
#TARGET_USES_VPU_KERNEL := true
|
||||
#TARGET_USES_SCORE_KERNEL := true
|
||||
#TARGET_USES_CL_KERNEL := false
|
||||
|
||||
# exynos RIL
|
||||
TARGET_EXYNOS_RIL_SOURCE := true
|
||||
ENABLE_VENDOR_RIL_SERVICE := true
|
||||
|
||||
# GNSS
|
||||
# BOARD_USES_EXYNOS_GNSS_DUMMY := true
|
||||
|
||||
# Bluetooth defines
|
||||
# TODO(b/123695868): Remove the need for this
|
||||
BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := \
|
||||
build/make/target/board/mainline_arm64/bluetooth
|
||||
|
||||
#VNDK
|
||||
BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true
|
||||
BOARD_VNDK_VERSION := current
|
||||
|
||||
# H/W align restriction of MM IPs
|
||||
BOARD_EXYNOS_S10B_FORMAT_ALIGN := 64
|
||||
|
||||
# Boot.img
|
||||
BOARD_RAMDISK_USE_LZ4 := true
|
||||
#BOARD_KERNEL_BASE := 0x80000000
|
||||
#BOARD_KERNEL_PAGESIZE := 2048
|
||||
#BOARD_KERNEL_OFFSET := 0x80000
|
||||
#BOARD_RAMDISK_OFFSET := 0x4000000
|
||||
BOARD_BOOT_HEADER_VERSION := 4
|
||||
BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOT_HEADER_VERSION)
|
||||
|
||||
@@ -418,10 +243,26 @@ endif
|
||||
BOARD_SYSTEM_KERNEL_MODULES_LOAD := $(strip $(shell cat $(KERNEL_MODULE_DIR)/system_dlkm.modules.load 2>/dev/null))
|
||||
BOARD_SYSTEM_KERNEL_MODULES := $(addprefix $(KERNEL_MODULE_DIR)/, $(notdir $(BOARD_SYSTEM_KERNEL_MODULES_LOAD)))
|
||||
|
||||
# Using BUILD_COPY_HEADERS
|
||||
BUILD_BROKEN_USES_BUILD_COPY_HEADERS := true
|
||||
# SEPolicy
|
||||
BOARD_VENDOR_SEPOLICY_DIRS += \
|
||||
hardware/google/pixel-sepolicy/googlebattery \
|
||||
hardware/google/pixel-sepolicy/input \
|
||||
hardware/google/pixel-sepolicy/powerstats \
|
||||
device/google/gs201/sepolicy/certificates \
|
||||
device/google/gs201/sepolicy/recovery \
|
||||
device/google/gs201/sepolicy/vendor
|
||||
|
||||
include device/google/gs201/sepolicy/gs201-sepolicy.mk
|
||||
PRODUCT_PRIVATE_SEPOLICY_DIRS += \
|
||||
device/google/gs201/sepolicy/product/private
|
||||
|
||||
PRODUCT_PUBLIC_SEPOLICY_DIRS += \
|
||||
device/google/gs201/sepolicy/product/public
|
||||
|
||||
SYSTEM_EXT_PRIVATE_SEPOLICY_DIRS += \
|
||||
device/google/gs201/sepolicy/system_ext/private
|
||||
|
||||
SYSTEM_EXT_PUBLIC_SEPOLICY_DIRS += \
|
||||
device/google/gs201/sepolicy/system_ext/public
|
||||
|
||||
# Battery options
|
||||
BOARD_KERNEL_CMDLINE += at24.write_timeout=100
|
||||
@@ -432,4 +273,4 @@ BOARD_KERNEL_CMDLINE += log_buf_len=1024K
|
||||
# Protected VM firmware
|
||||
BOARD_PVMFWIMAGE_PARTITION_SIZE := 0x00100000
|
||||
|
||||
include device/google/gs201/BoardConfigLineage.mk
|
||||
include device/google/gs201/BoardConfigEvolution.mk
|
||||
|
||||
11
BoardConfigEvolution.mk
Normal file
11
BoardConfigEvolution.mk
Normal file
@@ -0,0 +1,11 @@
|
||||
#
|
||||
# Copyright (C) 2024 The Evolution X Project
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
BUILD_BROKEN_DUP_RULES := true
|
||||
|
||||
DISABLE_ARTIFACT_PATH_REQUIREMENTS := true
|
||||
|
||||
SPOOF_FIRST_API_LEVEL_32 := true
|
||||
@@ -1,37 +0,0 @@
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021-2024 The LineageOS Project
|
||||
# SPDX-FileCopyrightText: 2021-2024 The Calyx Institute
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
# Manifests
|
||||
DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE += vendor/lineage/config/device_framework_matrix.xml
|
||||
DEVICE_MANIFEST_FILE += device/google/gs201/android.hardware.security.rkp-service.citadel.xml
|
||||
ifneq ($(BOARD_WITHOUT_RADIO),true)
|
||||
DEVICE_MANIFEST_FILE += device/google/gs201/manifest_radio_ds.xml
|
||||
endif
|
||||
|
||||
# Partitions
|
||||
AB_OTA_PARTITIONS += \
|
||||
vendor \
|
||||
vendor_dlkm
|
||||
|
||||
BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4
|
||||
BOARD_VENDOR_DLKMIMAGE_FILE_SYSTEM_TYPE := ext4
|
||||
TARGET_COPY_OUT_VENDOR_DLKM := vendor_dlkm
|
||||
|
||||
# Enable chain partition for vendor.
|
||||
BOARD_AVB_VBMETA_VENDOR := vendor
|
||||
BOARD_AVB_VBMETA_VENDOR_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem
|
||||
BOARD_AVB_VBMETA_VENDOR_ALGORITHM := SHA256_RSA2048
|
||||
BOARD_AVB_VBMETA_VENDOR_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
|
||||
BOARD_AVB_VBMETA_VENDOR_ROLLBACK_INDEX_LOCATION := 3
|
||||
|
||||
AB_OTA_PARTITIONS += \
|
||||
vbmeta_vendor
|
||||
|
||||
# Reserve space for gapps install
|
||||
-include vendor/lineage/config/BoardConfigReservedSize.mk
|
||||
|
||||
# Verified Boot
|
||||
BOARD_AVB_MAKE_VBMETA_IMAGE_ARGS += --flags 3
|
||||
@@ -1,17 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2022 The LineageOS 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.
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2022 The LineageOS Project
|
||||
SPDX-License-Identifier: Apache-2.0
|
||||
-->
|
||||
<config>
|
||||
<!-- Specify the explicit set of other applications that AI services are allowed to
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
<manifest version="1.0" type="device">
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.security.keymint</name>
|
||||
<version>3</version>
|
||||
<fqname>IRemotelyProvisionedComponent/strongbox</fqname>
|
||||
</hal>
|
||||
</manifest>
|
||||
@@ -1,17 +1,6 @@
|
||||
#
|
||||
# Copyright 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.
|
||||
# SPDX-FileCopyrightText: 2020 The Android Open-Source Project
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
#
|
||||
@@ -47,8 +36,3 @@ $(call inherit-product, $(SRC_TARGET_DIR)/product/handheld_vendor.mk)
|
||||
ifneq ($(BOARD_WITHOUT_RADIO),true)
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/telephony_vendor.mk)
|
||||
endif
|
||||
|
||||
#$(call inherit-product, device/google/gs201/device.mk)
|
||||
|
||||
# TODO: fix
|
||||
# PRODUCT_RESTRICT_VENDOR_FILES := all
|
||||
|
||||
@@ -1,23 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 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.
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2020 The Android Open Source Project
|
||||
SPDX-License-Identifier: Apache-2.0
|
||||
-->
|
||||
<config>
|
||||
<component-override package="com.android.bluetooth" >
|
||||
<component class=".sap.SapService" enabled="true" />
|
||||
</component-override>
|
||||
<component-override package="com.google.android.apps.tips" >
|
||||
<component class=".TipsMain" enabled="true" />
|
||||
</component-override>
|
||||
</config>
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
0 1 mali
|
||||
@@ -1,7 +0,0 @@
|
||||
# Android fstab file.
|
||||
# <src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
|
||||
# Create the specific fstab file for modem partition as flexibility
|
||||
/dev/block/platform/14700000.ufs/by-name/efs /mnt/vendor/efs f2fs noatime,sync wait,check,formattable
|
||||
/dev/block/platform/14700000.ufs/by-name/efs_backup /mnt/vendor/efs_backup f2fs noatime,sync wait,check,formattable
|
||||
/dev/block/platform/14700000.ufs/by-name/modem_userdata /mnt/vendor/modem_userdata f2fs noatime,sync wait,check,formattable
|
||||
/dev/block/platform/14700000.ufs/by-name/modem /mnt/vendor/modem_img ext4 noatime,ro,context=u:object_r:modem_img_file:s0 wait,slotselect
|
||||
@@ -1,5 +0,0 @@
|
||||
# Android fstab file.
|
||||
# <src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
|
||||
# Keep persist in an fstab file, since we need to run fsck on it after abnormal shutdown.
|
||||
/dev/block/platform/14700000.ufs/by-name/persist /mnt/vendor/persist ext4 noatime,nosuid,nodev,data=journal,commit=1 wait,check,formattable,metadata_csum
|
||||
/dev/block/platform/14700000.ufs/by-name/persist /mnt/vendor/persist f2fs noatime,nosuid,nodev,sync wait,check,formattable
|
||||
@@ -1,20 +0,0 @@
|
||||
on post-fs
|
||||
## ensure correct calibration file permissions
|
||||
chown root system /mnt/vendor/persist/sensorcal.json
|
||||
chmod 0640 /mnt/vendor/persist/sensorcal.json
|
||||
start vendor.flash-nanohub-fw
|
||||
|
||||
on post-fs-data
|
||||
mkdir /data/vendor/sensor
|
||||
chown root system /data/vendor/sensor
|
||||
chmod 0770 /data/vendor/sensor
|
||||
|
||||
service vendor.flash-nanohub-fw /vendor/bin/nanoapp_cmd download
|
||||
oneshot
|
||||
disabled
|
||||
user root
|
||||
group system
|
||||
|
||||
on post-fs-data
|
||||
mkdir /data/system/nanohub_lock/
|
||||
restorecon /data/system/nanohub_lock
|
||||
@@ -1,19 +0,0 @@
|
||||
# Factory specific init.rc
|
||||
|
||||
on early-init
|
||||
mount debugfs /sys/kernel/debug /sys/kernel/debug
|
||||
|
||||
on init
|
||||
export PATH /product/bin:/apex/com.android.runtime/bin:/apex/com.android.art/bin:/system_ext/bin:/system/bin:/system/xbin:/odm/bin:/vendor/bin:/vendor/xbin:/vendor/bin/factory
|
||||
|
||||
on boot
|
||||
# FTM log folder
|
||||
mkdir /data/ftmlog 0775 system system
|
||||
|
||||
# Audio test folder
|
||||
mkdir /data/AudioTest 0775 system system
|
||||
|
||||
on property:sys.boot_completed=1
|
||||
# Bump nnapi min clamp & add adbd to it for factory (b/222226268)
|
||||
write /proc/vendor_sched/nnapi_uclamp_min 512
|
||||
exec - root root -- /vendor/bin/factory/factory_post_boot
|
||||
@@ -1,915 +0,0 @@
|
||||
import /vendor/etc/init/hw/init.gs201.storage.rc
|
||||
import /vendor/etc/init/hw/init.gs201.usb.rc
|
||||
import android.hardware.drm@1.2-service.widevine.rc
|
||||
import init.exynos.sensorhub.rc
|
||||
|
||||
on early-init && property:ro.build.type=eng
|
||||
# Convert /dev/block/by-name/persist to ext4 on eng builds only
|
||||
exec -- /system_ext/bin/convert_to_ext4.sh /dev/block/by-name/persist false
|
||||
|
||||
on early-init
|
||||
mount_all /vendor/etc/fstab.persist --early
|
||||
|
||||
on init
|
||||
# CPU0 cannot be offline
|
||||
chmod 0444 /sys/devices/system/cpu/cpu0/online
|
||||
|
||||
# Set teo as cpu idle governor
|
||||
write /sys/devices/system/cpu/cpuidle/current_governor teo
|
||||
# Disable util-awareness
|
||||
write /proc/vendor_sched/teo_util_threshold "1024 1024 1024"
|
||||
|
||||
chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/lcpi_threshold
|
||||
chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/spc_threshold
|
||||
chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/limit_frequency
|
||||
chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/pmu_limit_enable
|
||||
chown system system /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/lcpi_threshold
|
||||
chown system system /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/spc_threshold
|
||||
chown system system /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/limit_frequency
|
||||
chown system system /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/pmu_limit_enable
|
||||
chown system system /sys/devices/system/cpu/cpufreq/policy6/sched_pixel/lcpi_threshold
|
||||
chown system system /sys/devices/system/cpu/cpufreq/policy6/sched_pixel/spc_threshold
|
||||
chown system system /sys/devices/system/cpu/cpufreq/policy6/sched_pixel/limit_frequency
|
||||
chown system system /sys/devices/system/cpu/cpufreq/policy6/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
|
||||
chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu3_memlat@17000010/memlat_cpuidle_state_aware
|
||||
chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu4_memlat@17000010/memlat_cpuidle_state_aware
|
||||
chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu5_memlat@17000010/memlat_cpuidle_state_aware
|
||||
chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu6_memlat@17000010/memlat_cpuidle_state_aware
|
||||
chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu7_memlat@17000010/memlat_cpuidle_state_aware
|
||||
|
||||
start vendor.keymaster-4-0
|
||||
|
||||
# ZRAM setup
|
||||
write /sys/block/zram0/comp_algorithm lz77eh
|
||||
write /proc/sys/vm/page-cluster 0
|
||||
|
||||
# Some user code relies on ro.boot.hardware.revision
|
||||
setprop ro.boot.hardware.revision ${ro.revision}
|
||||
|
||||
# Allow PAI targeting per hardware SKU
|
||||
setprop ro.oem.key1 ${ro.boot.hardware.sku}
|
||||
|
||||
# Property used by vintf for sku specific manifests
|
||||
# Property used by NFC for sku specific configurations
|
||||
setprop ro.boot.product.hardware.sku ${ro.boot.hardware.sku}
|
||||
|
||||
# Support legacy paths
|
||||
symlink /data/app /factory
|
||||
|
||||
# Apply network parameters for high data performance.
|
||||
write /proc/sys/net/core/rmem_default 1310720
|
||||
write /proc/sys/net/core/rmem_max 8388608
|
||||
write /proc/sys/net/core/wmem_default 327680
|
||||
write /proc/sys/net/core/wmem_max 8388608
|
||||
write /proc/sys/net/core/optmem_max 20480
|
||||
write /proc/sys/net/core/netdev_max_backlog 10000
|
||||
write /proc/sys/net/ipv4/tcp_rmem "2097152 4194304 8388608"
|
||||
write /proc/sys/net/ipv4/tcp_wmem "262144 524288 8388608"
|
||||
write /proc/sys/net/ipv4/tcp_mem "44259 59012 88518"
|
||||
write /proc/sys/net/ipv4/udp_mem "88518 118025 177036"
|
||||
|
||||
write /sys/class/net/rmnet0/queues/rx-0/rps_cpus fe
|
||||
write /sys/class/net/rmnet1/queues/rx-0/rps_cpus fe
|
||||
write /sys/class/net/rmnet2/queues/rx-0/rps_cpus fe
|
||||
write /sys/class/net/rmnet3/queues/rx-0/rps_cpus fe
|
||||
write /sys/class/net/rmnet4/queues/rx-0/rps_cpus fe
|
||||
write /sys/class/net/rmnet5/queues/rx-0/rps_cpus fe
|
||||
write /sys/class/net/rmnet6/queues/rx-0/rps_cpus fe
|
||||
write /sys/class/net/rmnet7/queues/rx-0/rps_cpus fe
|
||||
|
||||
# Boot time 183626384
|
||||
write /proc/vendor_sched/groups/ta/uclamp_min 159
|
||||
write /proc/vendor_sched/groups/ta/prefer_idle 1
|
||||
write /proc/vendor_sched/groups/fg/uclamp_min 159
|
||||
write /proc/vendor_sched/groups/fg/prefer_idle 1
|
||||
write /proc/vendor_sched/groups/sys/uclamp_min 159
|
||||
write /proc/vendor_sched/groups/sys/prefer_idle 1
|
||||
|
||||
# governor setting
|
||||
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor sched_pixel
|
||||
write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/up_rate_limit_us 500
|
||||
write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_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/cpu6/cpufreq/scaling_governor sched_pixel
|
||||
write /sys/devices/system/cpu/cpu6/cpufreq/sched_pixel/up_rate_limit_us 500
|
||||
|
||||
# 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_cpu1_memlat@17000010/memlat_cpuidle_state_aware 2
|
||||
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu2_memlat@17000010/memlat_cpuidle_state_aware 2
|
||||
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu3_memlat@17000010/memlat_cpuidle_state_aware 2
|
||||
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu4_memlat@17000010/memlat_cpuidle_state_aware 2
|
||||
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu5_memlat@17000010/memlat_cpuidle_state_aware 2
|
||||
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu6_memlat@17000010/memlat_cpuidle_state_aware 2
|
||||
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu7_memlat@17000010/memlat_cpuidle_state_aware 2
|
||||
|
||||
mkdir /dev/cpuset/camera-daemon-high-group
|
||||
write /dev/cpuset/camera-daemon-high-group/cpus 0-7
|
||||
write /dev/cpuset/camera-daemon-high-group/mems 0
|
||||
chown system system /dev/cpuset/camera-daemon-high-group/tasks
|
||||
chmod 0664 /dev/cpuset/camera-daemon-high-group/tasks
|
||||
|
||||
mkdir /dev/cpuset/camera-daemon-mid-group
|
||||
write /dev/cpuset/camera-daemon-mid-group/cpus 0-7
|
||||
write /dev/cpuset/camera-daemon-mid-group/mems 0
|
||||
chown system system /dev/cpuset/camera-daemon-mid-group/tasks
|
||||
chmod 0664 /dev/cpuset/camera-daemon-mid-group/tasks
|
||||
|
||||
mkdir /dev/cpuset/camera-daemon-mid-high-group
|
||||
write /dev/cpuset/camera-daemon-mid-high-group/cpus 0-7
|
||||
write /dev/cpuset/camera-daemon-mid-high-group/mems 0
|
||||
chown system system /dev/cpuset/camera-daemon-mid-high-group/tasks
|
||||
chmod 0664 /dev/cpuset/camera-daemon-mid-high-group/tasks
|
||||
|
||||
# nanohub sensor
|
||||
chmod 0664 /dev/nanohub
|
||||
chmod 0664 /dev/nanohub_comms
|
||||
chown system system /dev/nanohub
|
||||
chown system system /dev/nanohub_comms
|
||||
|
||||
# Dump maxfg
|
||||
chown system system /sys/class/power_supply/maxfg/m5_model_state
|
||||
chown system system /sys/class/power_supply/maxfg_base/m5_model_state
|
||||
chown system system /dev/maxfg_history
|
||||
|
||||
# Dump eeprom
|
||||
chown system system /sys/devices/platform/10da0000.hsi2c/i2c-15/15-0050/eeprom
|
||||
|
||||
# Loading common kernel modules in background
|
||||
start init_display
|
||||
|
||||
# Charge stats (write 0)
|
||||
chown system system /sys/class/power_supply/battery/charge_stats
|
||||
|
||||
# Pca Charge stats (write 0)
|
||||
chown system system /sys/class/power_supply/pca94xx-mains/device/chg_stats
|
||||
|
||||
# Wireless Charge stats (write 0)
|
||||
chown system system /sys/class/power_supply/wireless/device/charge_stats
|
||||
|
||||
# Thermal Charge stats (write 0)
|
||||
chown system system /sys/devices/platform/google,charger/thermal_stats
|
||||
|
||||
# Google Charger stats (write 0)
|
||||
chown system system /sys/devices/platform/google,charger/charge_stats
|
||||
|
||||
# Permission for wireless charging fan
|
||||
chown system system /sys/devices/platform/google,charger/thermal_dc_fan_alarm
|
||||
chown system system /sys/devices/platform/google,cpm/thermal_mdis_fan_alarm
|
||||
|
||||
# Permission for wireless charging
|
||||
chown system system /sys/class/power_supply/wireless/capacity
|
||||
chown system system /sys/class/power_supply/wireless/device/rtx
|
||||
chown system system /sys/class/power_supply/wireless/device/rxdata
|
||||
chown system system /sys/class/power_supply/wireless/device/txdata
|
||||
chown system system /sys/class/power_supply/wireless/device/rxlen
|
||||
chown system system /sys/class/power_supply/wireless/device/txlen
|
||||
chown system system /sys/class/power_supply/wireless/device/ccreset
|
||||
chown system system /sys/class/power_supply/wireless/device/status
|
||||
chown system system /sys/class/power_supply/wireless/device/version
|
||||
chown system system /sys/class/power_supply/wireless/device/features
|
||||
chown system system /sys/class/power_supply/wireless/device/authtype
|
||||
chown system system /sys/class/power_supply/wireless/device/authstart
|
||||
|
||||
# Adaptive charge
|
||||
chown system system /sys/class/power_supply/battery/charge_deadline
|
||||
|
||||
# Charging policy
|
||||
chown system system /sys/class/power_supply/battery/charging_policy
|
||||
|
||||
# BatteryHealthData
|
||||
chown system system /sys/class/power_supply/battery/first_usage_date
|
||||
chown system system /sys/devices/platform/google,battery/power_supply/battery/swelling_data
|
||||
|
||||
# Battery Defender
|
||||
chown system system /sys/devices/platform/google,battery/power_supply/battery/bd_trickle_cnt
|
||||
chown system system /sys/devices/platform/google,battery/power_supply/battery/bd_trickle_dry_run
|
||||
chown system system /sys/devices/platform/google,battery/power_supply/battery/bd_trickle_enable
|
||||
chown system system /sys/devices/platform/google,battery/power_supply/battery/bd_trickle_recharge_soc
|
||||
chown system system /sys/devices/platform/google,battery/power_supply/battery/bd_trickle_reset_sec
|
||||
chown system system /sys/devices/platform/google,battery/power_supply/battery/bd_clear
|
||||
chown system system /sys/devices/platform/google,battery/power_supply/battery/health_safety_margin
|
||||
chown system system /sys/devices/platform/google,charger/bd_drainto_soc
|
||||
chown system system /sys/devices/platform/google,charger/bd_recharge_soc
|
||||
chown system system /sys/devices/platform/google,charger/bd_recharge_voltage
|
||||
chown system system /sys/devices/platform/google,charger/bd_resume_abs_temp
|
||||
chown system system /sys/devices/platform/google,charger/bd_resume_soc
|
||||
chown system system /sys/devices/platform/google,charger/bd_resume_temp
|
||||
chown system system /sys/devices/platform/google,charger/bd_resume_time
|
||||
chown system system /sys/devices/platform/google,charger/bd_temp_dry_run
|
||||
chown system system /sys/devices/platform/google,charger/bd_temp_enable
|
||||
chown system system /sys/devices/platform/google,charger/bd_trigger_temp
|
||||
chown system system /sys/devices/platform/google,charger/bd_trigger_time
|
||||
chown system system /sys/devices/platform/google,charger/bd_trigger_voltage
|
||||
chown system system /sys/devices/platform/google,charger/bd_clear
|
||||
chown system system /sys/devices/platform/google,charger/bd_state
|
||||
chown system system /sys/devices/platform/google,charger/charge_start_level
|
||||
chown system system /sys/devices/platform/google,charger/charge_stop_level
|
||||
chown system system /sys/devices/platform/google,cpm/dc_ctl
|
||||
# Important to include dd_state as it's used in battery defender in charger mode
|
||||
chown system system /sys/devices/platform/google,charger/dd_state
|
||||
chown system system /sys/devices/platform/google,charger/dd_settings
|
||||
|
||||
# Battery temperature filter
|
||||
chown system system /sys/class/power_supply/battery/temp_filter_enable
|
||||
|
||||
# Power Stats HAL
|
||||
chown system system /dev/bbd_pwrstat
|
||||
|
||||
# Add memlat governor settings
|
||||
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu0_memlat@17000010/polling_interval 10
|
||||
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu1_memlat@17000010/polling_interval 10
|
||||
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu2_memlat@17000010/polling_interval 10
|
||||
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu3_memlat@17000010/polling_interval 10
|
||||
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu4_memlat@17000010/polling_interval 10
|
||||
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu5_memlat@17000010/polling_interval 10
|
||||
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu6_memlat@17000010/polling_interval 10
|
||||
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu7_memlat@17000010/polling_interval 10
|
||||
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu0_memlat@17000010/mem_latency/ratio_ceil 400
|
||||
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu1_memlat@17000010/mem_latency/ratio_ceil 400
|
||||
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu2_memlat@17000010/mem_latency/ratio_ceil 400
|
||||
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu3_memlat@17000010/mem_latency/ratio_ceil 400
|
||||
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu4_memlat@17000010/mem_latency/ratio_ceil 2700
|
||||
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu5_memlat@17000010/mem_latency/ratio_ceil 2700
|
||||
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu6_memlat@17000010/mem_latency/ratio_ceil 3200
|
||||
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu7_memlat@17000010/mem_latency/ratio_ceil 3200
|
||||
|
||||
# Set boost_adpf_prio, -1 by default
|
||||
write /proc/vendor_sched/boost_adpf_prio ${persist.device_config.vendor_system_native_boot.boost_adpf_prio:--1}
|
||||
|
||||
on late-fs
|
||||
# Start bootanimation class before mount
|
||||
start bootanim
|
||||
class_start animation
|
||||
|
||||
# Mount RW partitions which need run fsck
|
||||
mount_all --late
|
||||
|
||||
on late-init
|
||||
write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_us 5000
|
||||
write /sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/down_rate_limit_us 20000
|
||||
write /sys/devices/system/cpu/cpu6/cpufreq/sched_pixel/down_rate_limit_us 20000
|
||||
|
||||
on post-fs-data
|
||||
# Log data folder
|
||||
mkdir /data/vendor 0771 radio system
|
||||
mkdir /data/vendor/log 0771 radio system
|
||||
|
||||
mkdir /data/exynos/log 0771 radio system
|
||||
mkdir /data/vendor/rild 0771 radio system
|
||||
mkdir /data/vendor/dump 0771 radio system
|
||||
|
||||
# PixelLogger log paths.
|
||||
mkdir /data/vendor/radio 773 system radio
|
||||
mkdir /data/vendor/radio/logs 773 system radio
|
||||
mkdir /data/vendor/radio/logs/always-on 777 system radio
|
||||
|
||||
# Write display frequency config from RadioExt HAL
|
||||
|
||||
# OSC frequency files
|
||||
chown system system /sys/devices/platform/1c2c0000.drmdsim/1c2c0000.drmdsim.0/osc2_clk_khz
|
||||
chmod 0664 /sys/devices/platform/1c2c0000.drmdsim/1c2c0000.drmdsim.0/osc2_clk_khz
|
||||
|
||||
# MIPI frequency files
|
||||
chown system system /sys/devices/platform/1c2c0000.drmdsim/hs_clock
|
||||
chown system system /sys/devices/platform/1c2d0000.drmdsim/hs_clock
|
||||
chmod 0664 /sys/devices/platform/1c2c0000.drmdsim/hs_clock
|
||||
chmod 0664 /sys/devices/platform/1c2d0000.drmdsim/hs_clock
|
||||
|
||||
# IPSEC PIDDIR for VoWiFi
|
||||
mkdir /data/vendor/misc 0771 root system
|
||||
mkdir /data/vendor/misc/vpn 0771 root system
|
||||
|
||||
# Permissions Camera
|
||||
mkdir /data/vendor/camera 0770 system camera
|
||||
mkdir /data/vendor/camera/catpipe 0770 system camera
|
||||
mkdir /data/vendor/camera/video_bokeh_node 0770 system camera
|
||||
chmod 0755 /sys/kernel/debug/tracing
|
||||
restorecon /sys/kernel/debug/tracing/trace_marker
|
||||
|
||||
# ranging sensor
|
||||
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 0770 system system
|
||||
chmod 0771 /mnt/vendor/persist/camera/rear
|
||||
|
||||
# Audio dump and debug
|
||||
mkdir /data/vendor/audio 0770 audio audio
|
||||
|
||||
# Create the directories for Darwinn HAL.
|
||||
mkdir /data/vendor/hal_neuralnetworks_darwinn 0770 system system
|
||||
mkdir /data/vendor/hal_neuralnetworks_darwinn/checksum_cache 0770 system system
|
||||
mkdir /data/vendor/edgetpu 0770 system system
|
||||
mkdir /data/vendor/edgetpu/cache 0770 system system
|
||||
|
||||
# Compatibility path for TPU
|
||||
symlink /dev/janeiro /dev/edgetpu
|
||||
|
||||
|
||||
on zygote-start
|
||||
# For PixelLogger configuration file.
|
||||
chmod 0771 /data/vendor/wifi
|
||||
write /proc/vendor_sched/groups/sys/uclamp_min 0
|
||||
|
||||
on post-fs-data
|
||||
# Create the directories used by the Wireless subsystem
|
||||
mkdir /data/vendor/wifi 0771 wifi wifi
|
||||
mkdir /data/vendor/wifi/wpa 0770 wifi wifi
|
||||
mkdir /data/vendor/wifi/wpa/sockets 0770 wifi wifi
|
||||
|
||||
# Gatekeeper data
|
||||
mkdir /data/vendor/gk 0771 system system
|
||||
|
||||
# HWC data
|
||||
mkdir /data/vendor/log/hwc 0771 system graphics
|
||||
|
||||
# Video data
|
||||
mkdir /data/vendor/media 0700 mediacodec mediacodec
|
||||
|
||||
on post-fs-data
|
||||
# GPS
|
||||
mkdir /data/vendor/gps 0771 system system
|
||||
chown system system /data/vendor/gps
|
||||
rm /data/vendor/gps/gps_started
|
||||
rm /data/vendor/gps/glonass_started
|
||||
rm /data/vendor/gps/beidou_started
|
||||
rm /data/vendor/gps/smd_started
|
||||
rm /data/vendor/gps/sv_cno.info
|
||||
|
||||
chown gps system /sys/devices/platform/10940000.spi/spi_master/spi5/spi5.0/nstandby
|
||||
chmod 0664 /dev/ttyBCM
|
||||
chown gps system /dev/ttyBCM
|
||||
chmod 0664 /dev/bbd_control
|
||||
chown gps system /dev/bbd_control
|
||||
chmod 0664 /dev/bbd_patch
|
||||
chown gps system /dev/bbd_patch
|
||||
chmod 0664 /dev/bbd_sensor
|
||||
chown gps system /dev/bbd_sensor
|
||||
|
||||
on early-boot
|
||||
# Wait for insmod_sh to finish all common modules
|
||||
wait_for_prop vendor.common.modules.ready 1
|
||||
|
||||
# PCIe link stats for pixelstats
|
||||
chown system system /sys/devices/platform/11920000.pcie/link_stats/complete_timeout_irqs
|
||||
chown system system /sys/devices/platform/11920000.pcie/link_stats/link_down_irqs
|
||||
chown system system /sys/devices/platform/11920000.pcie/link_stats/link_recovery_failures
|
||||
chown system system /sys/devices/platform/11920000.pcie/link_stats/link_up_average
|
||||
chown system system /sys/devices/platform/11920000.pcie/link_stats/link_up_failures
|
||||
chown system system /sys/devices/platform/11920000.pcie/link_stats/pll_lock_average
|
||||
chown system system /sys/devices/platform/14520000.pcie/link_stats/complete_timeout_irqs
|
||||
chown system system /sys/devices/platform/14520000.pcie/link_stats/link_down_irqs
|
||||
chown system system /sys/devices/platform/14520000.pcie/link_stats/link_recovery_failures
|
||||
chown system system /sys/devices/platform/14520000.pcie/link_stats/link_up_average
|
||||
chown system system /sys/devices/platform/14520000.pcie/link_stats/link_up_failures
|
||||
chown system system /sys/devices/platform/14520000.pcie/link_stats/pll_lock_average
|
||||
|
||||
# Dump Battery EEPROM history for pixelstats
|
||||
chown system system /dev/battery_history
|
||||
chmod 0644 /dev/battery_history
|
||||
|
||||
# Permission for logbuffer
|
||||
chown system system /dev/logbuffer_maxfg
|
||||
chown system system /dev/logbuffer_maxfg_base
|
||||
chown system system /dev/logbuffer_maxfg_secondary
|
||||
chown system system /dev/logbuffer_maxfg_monitor
|
||||
chown system system /dev/logbuffer_maxfg_base_monitor
|
||||
chown system system /dev/logbuffer_maxfg_secondary_monitor
|
||||
chown system system /dev/logbuffer_maxq
|
||||
chown system system /dev/logbuffer_rtx
|
||||
chown system system /dev/logbuffer_ssoc
|
||||
chown system system /dev/logbuffer_ttf
|
||||
chown system system /dev/logbuffer_tcpm
|
||||
chown system system /dev/logbuffer_usbpd
|
||||
chown system system /dev/logbuffer_pogo_transport
|
||||
chown system system /dev/logbuffer_wireless
|
||||
chown system system /dev/logbuffer_pca9468
|
||||
chown system system /dev/logbuffer_cpm
|
||||
chown system system /dev/logbuffer_bd
|
||||
chown system system /dev/logbuffer_dual_batt
|
||||
chown system system /dev/logbuffer_cpif
|
||||
|
||||
on boot
|
||||
|
||||
# Allow to access debugfs for system:system
|
||||
chmod 0755 /sys/kernel/debug
|
||||
chown system system /sys/kernel/debug
|
||||
|
||||
#setprop ro.radio.noril no
|
||||
|
||||
# default country code
|
||||
setprop ro.boot.wificountrycode 00
|
||||
|
||||
# Set up kernel tracing, but disable it by default
|
||||
chmod 0222 /sys/kernel/debug/tracing/trace_marker
|
||||
write /sys/kernel/debug/tracing/tracing_on 0
|
||||
|
||||
# Change permission for A-Box firmware logs file & GPR dump
|
||||
chown audioserver system /sys/devices/platform/17c50000.abox/reset
|
||||
chown audioserver system /sys/devices/platform/17c50000.abox/service
|
||||
chown audioserver system /sys/devices/platform/17c50000.abox/0.abox_debug/gpr
|
||||
chown audioserver system /sys/devices/platform/17c50000.abox/0.abox_debug/calliope_sram
|
||||
chown audioserver system /sys/devices/platform/17c50000.abox/0.abox_debug/calliope_dram
|
||||
chown audioserver system /sys/devices/platform/17c50000.abox/0.abox_debug/calliope_iva
|
||||
chown audioserver system /sys/kernel/debug/abox/log-00
|
||||
|
||||
# Permission for USB SELECT
|
||||
chown system system /sys/class/android_usb/android0/enable
|
||||
chmod 0660 /sys/class/android_usb/android0/enable
|
||||
chown system system /sys/class/android_usb/android0/idVendor
|
||||
chmod 0660 /sys/class/android_usb/android0/idVendor
|
||||
chown system system /sys/class/android_usb/android0/idProduct
|
||||
chmod 0660 /sys/class/android_usb/android0/idProduct
|
||||
chown system system /sys/class/android_usb/android0/f_diag/clients
|
||||
chmod 0660 /sys/class/android_usb/android0/f_diag/clients
|
||||
chown system system /sys/class/android_usb/android0/functions
|
||||
chmod 0660 /sys/class/android_usb/android0/functions
|
||||
chown system system /sys/class/android_usb/android0/bDeviceClass
|
||||
chmod 0660 /sys/class/android_usb/android0/bDeviceClass
|
||||
|
||||
# Permission for UART SWITCH
|
||||
chmod 0660 /sys/class/sec/switch/uart_sel
|
||||
chown system system /sys/class/sec/switch/uart_sel
|
||||
|
||||
# VTS sysfs file permission
|
||||
chown audioserver system /sys/devices/platform/13810000.vts/vts_svoice_model
|
||||
chown audioserver system /sys/devices/platform/13810000.vts/vts_google_model
|
||||
chmod 0660 /sys/devices/platform/13810000.vts/vts_svoice_model
|
||||
chmod 0660 /sys/devices/platform/13810000.vts/vts_google_model
|
||||
|
||||
on property:persist.vendor.radio.no_modem_board=1
|
||||
setprop ro.radio.noril yes
|
||||
|
||||
on fs
|
||||
mount_all --early
|
||||
|
||||
# for battery defender
|
||||
mkdir /mnt/vendor/persist/battery 0700 system system
|
||||
|
||||
# for battery defender
|
||||
mkdir /mnt/vendor/persist/battery 0700 system system
|
||||
|
||||
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
|
||||
# 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
|
||||
|
||||
# Permissions for hwcomposer
|
||||
chown system system /sys/class/backlight/panel0-backlight/als_table
|
||||
chown system system /sys/class/backlight/panel0-backlight/brightness
|
||||
chown system system /sys/class/backlight/panel0-backlight/dimming_on
|
||||
chown system system /sys/class/backlight/panel0-backlight/hbm_mode
|
||||
chown system system /sys/class/backlight/panel0-backlight/local_hbm_mode
|
||||
chown system system /sys/class/backlight/panel0-backlight/allow_wakeup_by_state_change
|
||||
chown system system /sys/devices/platform/exynos-drm/primary-panel/gamma
|
||||
chown system system /sys/devices/platform/exynos-drm/primary-panel/min_vrefresh
|
||||
chown system system /sys/devices/platform/exynos-drm/primary-panel/idle_delay_ms
|
||||
chown system system /sys/devices/platform/exynos-drm/primary-panel/panel_idle
|
||||
chown system system /sys/devices/platform/exynos-drm/primary-panel/panel_need_handle_idle_exit
|
||||
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
|
||||
chown system system /sys/class/dqe0/atc/st
|
||||
chown system system /sys/class/dqe0/atc/en
|
||||
chown system system /sys/class/dqe0/atc/lt
|
||||
chown system system /sys/class/dqe0/atc/ns
|
||||
chown system system /sys/class/dqe0/atc/dither
|
||||
chown system system /sys/class/dqe0/atc/pl_w1
|
||||
chown system system /sys/class/dqe0/atc/pl_w2
|
||||
chown system system /sys/class/dqe0/atc/ctmode
|
||||
chown system system /sys/class/dqe0/atc/pp_en
|
||||
chown system system /sys/class/dqe0/atc/upgrade_on
|
||||
chown system system /sys/class/dqe0/atc/tdr_max
|
||||
chown system system /sys/class/dqe0/atc/tdr_min
|
||||
chown system system /sys/class/dqe0/atc/back_light
|
||||
chown system system /sys/class/dqe0/atc/dstep
|
||||
chown system system /sys/class/dqe0/atc/scale_mode
|
||||
chown system system /sys/class/dqe0/atc/threshold_1
|
||||
chown system system /sys/class/dqe0/atc/threshold_2
|
||||
chown system system /sys/class/dqe0/atc/threshold_3
|
||||
chown system system /sys/class/dqe0/atc/gain_limit
|
||||
chown system system /sys/class/dqe0/atc/lt_calc_ab_shift
|
||||
|
||||
chown system system /sys/devices/platform/1c240000.drmdecon/early_wakeup
|
||||
chmod 0660 /sys/devices/platform/1c240000.drmdecon/early_wakeup
|
||||
chown system system /sys/devices/platform/1c242000.drmdecon/early_wakeup
|
||||
chmod 0660 /sys/devices/platform/1c242000.drmdecon/early_wakeup
|
||||
|
||||
# Copy DRM Key
|
||||
# copy /system/app/wv.keys /factory/wv.keys
|
||||
|
||||
# Permission for DRM Key
|
||||
# chmod 0644 /factory/wv.keys
|
||||
|
||||
# Permission for flashlight control for HAL3.3
|
||||
# The Istor espresso board does not have the flash led h/w, So the below permission line are blocked.
|
||||
# If you want to test the flashlight in board which have the flash led h/w, Enable the below blocked lines.
|
||||
chmod 0660 /sys/class/camera/flash/rear_torch_flash
|
||||
chown system camera /sys/class/camera/flash/rear_torch_flash
|
||||
#load ecd firmware
|
||||
write /proc/ecd/load_firmware 1
|
||||
|
||||
service abox /vendor/bin/main_abox 17c50000.abox
|
||||
class late_start
|
||||
user audioserver
|
||||
group audioserver
|
||||
seclabel u:r:abox:s0
|
||||
|
||||
# on eng builds, enable kgdb on the serial console
|
||||
on property:ro.build.type=eng
|
||||
write /sys/module/kgdboc/parameters/kgdboc ttyFIQ1
|
||||
write /sys/module/fiq_debugger/parameters/kgdb_enable 1
|
||||
|
||||
# Touch
|
||||
on property:vendor.device.modules.ready=1
|
||||
chown system system /sys/class/spi_master/spi0/spi0.0/synaptics_tcm.0/sysfs/get_raw_data
|
||||
chown system system /sys/class/spi_master/spi0/spi0.0/synaptics_tcm.0/sysfs/force_active
|
||||
chown system system /sys/class/spi_master/spi11/spi11.0/stm_fts_cmd
|
||||
chown system system /sys/class/spi_master/spi11/spi11.0/glove_mode
|
||||
chown system system /sys/class/spi_master/spi6/spi6.0/stm_fts_cmd
|
||||
chown system system /sys/class/spi_master/spi6/spi6.0/glove_mode
|
||||
chown system system /sys/devices/virtual/sec/tsp/fw_version
|
||||
chown system system /sys/devices/virtual/sec/tsp/cmd
|
||||
chown system system /sys/devices/virtual/sec/tsp/cmd_result
|
||||
chown system system /sys/devices/virtual/sec/tsp/status
|
||||
# Allow access to touch
|
||||
chown system input /dev/touch_offload
|
||||
chmod 660 /dev/touch_offload
|
||||
|
||||
# Route touch_sensitivity_mode to persist
|
||||
on property:debug.touch_sensitivity_mode=0
|
||||
setprop persist.vendor.touch_sensitivity_mode 0
|
||||
|
||||
on property:debug.touch_sensitivity_mode=1
|
||||
setprop persist.vendor.touch_sensitivity_mode 1
|
||||
|
||||
on property:init.svc.vendor.charger=running
|
||||
stop keymaster-4-0
|
||||
|
||||
setprop sys.usb.configfs 1
|
||||
setprop vendor.setup.power 1
|
||||
|
||||
# keep one little and one mid core
|
||||
write /sys/devices/system/cpu/cpu1/online 0
|
||||
write /sys/devices/system/cpu/cpu2/online 0
|
||||
write /sys/devices/system/cpu/cpu3/online 0
|
||||
write /sys/devices/system/cpu/cpu5/online 0
|
||||
write /sys/devices/system/cpu/cpu6/online 0
|
||||
write /sys/devices/system/cpu/cpu7/online 0
|
||||
|
||||
on property:sys.boot_completed=1
|
||||
# Enable ZRAM on boot_complete
|
||||
swapon_all /vendor/etc/fstab.${ro.board.platform}
|
||||
write /proc/sys/vm/swappiness 60
|
||||
|
||||
# Adjust watermark level
|
||||
write /proc/sys/vm/watermark_scale_factor 200
|
||||
|
||||
# Back to default VM settings
|
||||
write /proc/sys/vm/dirty_expire_centisecs 3000
|
||||
write /proc/sys/vm/dirty_background_ratio 10
|
||||
|
||||
# Reset DDR frequency
|
||||
write /sys/devices/platform/17000010.devfreq_mif/devfreq/17000010.devfreq_mif/exynos_data/cancel_boot_freq 1
|
||||
write /sys/devices/platform/17000020.devfreq_int/devfreq/17000020.devfreq_int/exynos_data/cancel_boot_freq 1
|
||||
|
||||
# Setup final cpuset
|
||||
write /dev/cpuset/top-app/cpus ${persist.device_config.vendor_system_native.top-app_cpuset:-0-7}
|
||||
write /dev/cpuset/foreground/cpus ${persist.device_config.vendor_system_native.foreground_cpuset:-0-3,4-5}
|
||||
write /dev/cpuset/foreground_window/cpus ${persist.device_config.vendor_system_native.foreground_window_cpuset:-0-3,4-5}
|
||||
write /dev/cpuset/background/cpus ${persist.device_config.vendor_system_native.background_cpuset:-0-3}
|
||||
write /dev/cpuset/system-background/cpus ${persist.device_config.vendor_system_native.system-background_cpuset:-0-3}
|
||||
write /dev/cpuset/restricted/cpus ${persist.device_config.vendor_system_native.restricted_cpuset:-0-3}
|
||||
write /dev/cpuset/camera-daemon/cpus ${persist.device_config.vendor_system_native.camera-daemon_cpuset:-0-7}
|
||||
setprop vendor.powerhal.init 1
|
||||
|
||||
# Set uclamp.max for some groups, which could indicate cpu importance used in scheduling
|
||||
write /proc/vendor_sched/groups/bg/uclamp_max 512
|
||||
write /proc/vendor_sched/groups/sys_bg/uclamp_max 512
|
||||
write /proc/vendor_sched/groups/ota/uclamp_max 512
|
||||
write /proc/vendor_sched/groups/dex2oat/uclamp_max 615
|
||||
|
||||
# Set PMU freq limit parameters
|
||||
write /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/lcpi_threshold 2
|
||||
write /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/spc_threshold 70
|
||||
write /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/limit_frequency 1401000
|
||||
write /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/lcpi_threshold 6
|
||||
write /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/spc_threshold 65
|
||||
write /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/limit_frequency 1836000
|
||||
write /sys/devices/system/cpu/cpufreq/policy6/sched_pixel/lcpi_threshold 5
|
||||
write /sys/devices/system/cpu/cpufreq/policy6/sched_pixel/spc_threshold 69
|
||||
write /sys/devices/system/cpu/cpufreq/policy6/sched_pixel/limit_frequency 2507000
|
||||
write /proc/vendor_sched/pmu_poll_time 10
|
||||
|
||||
# Make devices on the critical path for suspend/resume asynchronous
|
||||
write /sys/devices/platform/acpm_mfd_bus@18110000/i2c-21/21-002f/power/async "enabled"
|
||||
write /sys/devices/platform/acpm_mfd_bus@18110000/i2c-21/power/async "enabled"
|
||||
write /sys/devices/platform/acpm_mfd_bus@18110000/power/async "enabled"
|
||||
write /sys/devices/platform/acpm_mfd_bus@18100000/i2c-20/20-001f/power/async "enabled"
|
||||
write /sys/devices/platform/acpm_mfd_bus@18100000/i2c-20/power/async "enabled"
|
||||
write /sys/devices/platform/acpm_mfd_bus@18100000/power/async "enabled"
|
||||
write /sys/devices/platform/dbgdev-pd-hsi0/power/async "enabled"
|
||||
write /sys/devices/platform/fixedregulator@0/regulator/regulator.2/power/async "enabled"
|
||||
write /sys/devices/platform/fixedregulator@0/power/async "enabled"
|
||||
write /sys/devices/platform/1e080000.clock-controller/power/async "enabled"
|
||||
write /sys/devices/platform/10840000.pinctrl/power/async "enabled"
|
||||
write /sys/devices/platform/18062080.pd-hsi0/power/async "enabled"
|
||||
write /sys/devices/platform/14460000.pinctrl/power/async "enabled"
|
||||
|
||||
# gvotables for dumpstate
|
||||
chown system system /sys/kernel/debug/gvotables
|
||||
|
||||
# Permission for wireless charging
|
||||
chown system system /sys/class/power_supply/wireless/capacity
|
||||
chown system system /sys/class/power_supply/wireless/device/rtx
|
||||
chown system system /sys/class/power_supply/wireless/device/rxdata
|
||||
chown system system /sys/class/power_supply/wireless/device/txdata
|
||||
chown system system /sys/class/power_supply/wireless/device/rxlen
|
||||
chown system system /sys/class/power_supply/wireless/device/txlen
|
||||
chown system system /sys/class/power_supply/wireless/device/ccreset
|
||||
chown system system /sys/class/power_supply/wireless/device/status
|
||||
chown system system /sys/class/power_supply/wireless/device/version
|
||||
|
||||
# AOC reset permission
|
||||
chown root system /sys/devices/platform/19000000.aoc/reset
|
||||
chmod 0220 /sys/devices/platform/19000000.aoc/reset
|
||||
|
||||
# AOC UDFPS clock compensation permission
|
||||
chown system system /sys/devices/platform/19000000.aoc/control/udfps_set_clock_source
|
||||
chmod 220 /sys/devices/platform/19000000.aoc/control/udfps_set_clock_source
|
||||
chown system system /sys/devices/platform/19000000.aoc/control/udfps_get_osc_freq
|
||||
chmod 440 /sys/devices/platform/19000000.aoc/control/udfps_get_osc_freq
|
||||
chown system system /sys/devices/platform/19000000.aoc/control/udfps_get_disp_freq
|
||||
chmod 440 /sys/devices/platform/19000000.aoc/control/udfps_get_disp_freq
|
||||
|
||||
# Disable GPU firmware logging
|
||||
write /sys/devices/platform/28000000.mali/firmware_config/Log\ verbosity/cur 0
|
||||
|
||||
# write serialno to battery path for pairing
|
||||
write /sys/class/power_supply/battery/dev_sn ${ro.boot.serialno}
|
||||
|
||||
# Reduce pm_freeze_timeout value
|
||||
write /sys/power/pm_freeze_timeout 1000
|
||||
|
||||
# IMS WiFi Calling
|
||||
service charonservice /system/vendor/bin/charon
|
||||
class main
|
||||
user root
|
||||
disabled
|
||||
seclabel u:r:charonservice:s0
|
||||
|
||||
on property:vendor.charon.exec=1
|
||||
rm /data/vendor/misc/vpn/charon.pid
|
||||
chmod 0666 /dev/tun
|
||||
start charonservice
|
||||
|
||||
on property:vendor.charon.exec=0
|
||||
stop charonservice
|
||||
rm /data/vendor/misc/vpn/charon.pid
|
||||
|
||||
# charger driver exposes now finer grain control, map demo mode to those properties
|
||||
# NOTE: demo mode can only be exit wiping data (which reset the persist properties)
|
||||
on property:sys.retaildemo.enabled=1
|
||||
setprop persist.vendor.charge.stop.level 35
|
||||
setprop persist.vendor.charge.start.level 30
|
||||
|
||||
# Test Harness Mode default battery profile.
|
||||
on property:persist.sys.test_harness=1 && property:persist.vendor.testing_battery_profile=0
|
||||
setprop persist.vendor.charge.stop.level 70
|
||||
setprop persist.vendor.charge.start.level 35
|
||||
setprop vendor.battery.defender.disable 1
|
||||
|
||||
# Extremely restricted battery profile.
|
||||
on property:persist.sys.test_harness=1 && property:persist.vendor.testing_battery_profile=1
|
||||
setprop persist.vendor.charge.stop.level 50
|
||||
setprop persist.vendor.charge.start.level 35
|
||||
setprop vendor.battery.defender.disable 1
|
||||
|
||||
# Normal behavior (as if the device was a regular device)
|
||||
on property:persist.sys.test_harness=1 && property:persist.vendor.testing_battery_profile=2
|
||||
setprop persist.vendor.charge.stop.level 100
|
||||
setprop persist.vendor.charge.start.level 0
|
||||
|
||||
# Unrestricted, allows charging to 100%
|
||||
on property:persist.sys.test_harness=1 && property:persist.vendor.testing_battery_profile=3
|
||||
setprop persist.vendor.charge.stop.level 100
|
||||
setprop persist.vendor.charge.start.level 0
|
||||
setprop vendor.battery.defender.disable 1
|
||||
|
||||
# on eng builds, enable scsi error recovery log
|
||||
on property:ro.build.type=eng
|
||||
write /sys/module/scsi_mod/parameters/scsi_logging_level 63
|
||||
|
||||
service init_display /vendor/bin/init.display.sh
|
||||
class main
|
||||
user root
|
||||
group root system
|
||||
disabled
|
||||
oneshot
|
||||
file /dev/kmsg w
|
||||
|
||||
# bugreport is triggered by holding down volume down, volume up and power
|
||||
service bugreport /system/bin/dumpstate -d -p -z
|
||||
class main
|
||||
user root
|
||||
disabled
|
||||
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/persist/nsp
|
||||
|
||||
restart storageproxyd
|
||||
|
||||
service storageproxyd /vendor/bin/storageproxyd -d /dev/trusty-ipc-dev0 \
|
||||
-r /dev/sg1 -p /data/vendor/ss -t ufs
|
||||
class early_hal
|
||||
user system
|
||||
group system
|
||||
|
||||
# Write build info to kdebuginfo
|
||||
on property:ro.build.fingerprint=*
|
||||
write /sys/module/debug_kinfo/parameters/build_info ${ro.build.fingerprint}
|
||||
|
||||
# Bluetooth
|
||||
on early-boot
|
||||
chown bluetooth system /sys/devices/platform/175b0000.serial/serial0/serial0-0/bluetooth/hci0/rfkill0/state
|
||||
chown bluetooth system /sys/devices/platform/odm/odm:btbcm/rfkill/rfkill0/state
|
||||
chown bluetooth system /sys/devices/platform/odm/odm:btbcm/rfkill/rfkill2/state
|
||||
|
||||
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
|
||||
mkdir /data/vendor/bluetooth 0770 bluetooth system
|
||||
|
||||
on post-fs-data
|
||||
mkdir /data/vendor/powerstats 0771 system system
|
||||
chown system system /data/vendor/powerstats
|
||||
# Thermal Residency Stats (write 1 to reset)
|
||||
chown system system /sys/kernel/metrics/thermal/tr_by_group/tmu/stats_reset
|
||||
chown system system /sys/kernel/metrics/thermal/tr_by_group/spmic/stats_reset
|
||||
|
||||
on property:vendor.brownout.mitigation.ready=1
|
||||
# BCL
|
||||
write /sys/devices/virtual/pmic/mitigation/clock_ratio/tpu_light_clk_ratio 0x80041c3 #DFS
|
||||
write /sys/devices/virtual/pmic/mitigation/clock_ratio/cpu1_heavy_clk_ratio 0xfff041c0 #DFS
|
||||
write /sys/devices/virtual/pmic/mitigation/clock_ratio/cpu2_heavy_clk_ratio 0xfff041c0 #DFS
|
||||
write /sys/devices/virtual/pmic/mitigation/clock_ratio/gpu_light_clk_ratio 0xfff041c3 #DFS
|
||||
write /sys/devices/virtual/pmic/mitigation/clock_ratio/cpu2_light_clk_ratio 0xfff041c3 #OCP
|
||||
write /sys/devices/virtual/pmic/mitigation/clock_ratio/gpu_heavy_clk_ratio 0xfff04385 #OCP
|
||||
write /sys/devices/virtual/pmic/mitigation/clock_ratio/tpu_heavy_clk_ratio 0xfff041c1 #OCP
|
||||
write /sys/devices/virtual/pmic/mitigation/triggered_lvl/uvlo1_lvl 3200
|
||||
write /sys/devices/virtual/pmic/mitigation/triggered_lvl/smpl_lvl 3100
|
||||
write /sys/devices/virtual/pmic/mitigation/triggered_lvl/uvlo2_lvl 3000
|
||||
write /sys/devices/virtual/pmic/mitigation/triggered_lvl/soft_ocp_cpu2_lvl 12000
|
||||
write /sys/devices/virtual/pmic/mitigation/clock_div/tpu_clk_div 0x1
|
||||
write /sys/devices/virtual/pmic/mitigation/clock_div/gpu_clk_div 0x81 #mask VDROOP1
|
||||
write /sys/devices/virtual/pmic/mitigation/clock_div/cpu1_clk_div 0x381
|
||||
write /sys/devices/virtual/pmic/mitigation/clock_div/cpu2_clk_div 0x1
|
||||
|
||||
on property:vendor.thermal.link_ready=1
|
||||
# Thermal
|
||||
chown system system /dev/thermal/tz-by-name/skin_therm/trip_point_0_temp
|
||||
chown system system /dev/thermal/tz-by-name/skin_therm/trip_point_0_hyst
|
||||
chown system system /dev/thermal/tz-by-name/skin_therm1/trip_point_0_temp
|
||||
chown system system /dev/thermal/tz-by-name/skin_therm1/trip_point_0_hyst
|
||||
chown system system /dev/thermal/tz-by-name/quiet_therm/trip_point_0_temp
|
||||
chown system system /dev/thermal/tz-by-name/quiet_therm/trip_point_0_hyst
|
||||
chown system system /dev/thermal/tz-by-name/usb_pwr_therm2/trip_point_0_temp
|
||||
chown system system /dev/thermal/tz-by-name/usb_pwr_therm2/trip_point_0_hyst
|
||||
chown system system /dev/thermal/tz-by-name/usb_pwr_therm/trip_point_0_temp
|
||||
chown system system /dev/thermal/tz-by-name/usb_pwr_therm/trip_point_0_hyst
|
||||
chmod 664 /dev/thermal/cdev-by-name/thermal-cpufreq-0/user_vote
|
||||
chown system system /dev/thermal/cdev-by-name/thermal-cpufreq-0/user_vote
|
||||
chmod 664 /dev/thermal/cdev-by-name/thermal-cpufreq-1/user_vote
|
||||
chown system system /dev/thermal/cdev-by-name/thermal-cpufreq-1/user_vote
|
||||
chmod 664 /dev/thermal/cdev-by-name/thermal-cpufreq-2/user_vote
|
||||
chown system system /dev/thermal/cdev-by-name/thermal-cpufreq-2/user_vote
|
||||
chmod 664 /dev/thermal/cdev-by-name/thermal-gpufreq-0/user_vote
|
||||
chown system system /dev/thermal/cdev-by-name/thermal-gpufreq-0/user_vote
|
||||
chmod 664 /dev/thermal/cdev-by-name/tpu_cooling/user_vote
|
||||
chown system system /dev/thermal/cdev-by-name/gxp-cooling/user_vote
|
||||
chown system system /dev/thermal/cdev-by-name/tpu_cooling/user_vote
|
||||
chmod 664 /dev/thermal/cdev-by-name/fcc/cur_state
|
||||
chown system system /dev/thermal/cdev-by-name/fcc/cur_state
|
||||
chmod 664 /dev/thermal/cdev-by-name/dc_icl/cur_state
|
||||
chown system system /dev/thermal/cdev-by-name/dc_icl/cur_state
|
||||
chmod 664 /dev/thermal/cdev-by-name/wlc_fcc/cur_state
|
||||
chown system system /dev/thermal/cdev-by-name/wlc_fcc/cur_state
|
||||
chmod 664 /dev/thermal/cdev-by-name/chg_mdis/cur_state
|
||||
chown system system /dev/thermal/cdev-by-name/chg_mdis/cur_state
|
||||
chmod 664 /dev/thermal/cdev-by-name/usbc-port/cur_state
|
||||
chown system system /dev/thermal/cdev-by-name/usbc-port/cur_state
|
||||
|
||||
on charger
|
||||
# Use charger thermal config
|
||||
setprop vendor.thermal.config "thermal_info_config_charge.json"
|
||||
|
||||
# Wait for insmod_sh to finish all common modules
|
||||
wait_for_prop vendor.common.modules.ready 1
|
||||
|
||||
# Create thermal symlink in off charging mode
|
||||
mkdir /dev/thermal 0750 system system
|
||||
mkdir /dev/thermal/tz-by-name 0750 system system
|
||||
mkdir /dev/thermal/cdev-by-name 0750 system system
|
||||
start vendor.thermal.symlinks
|
||||
|
||||
# Cancel boot devfreq and uclamp
|
||||
write /sys/devices/platform/17000010.devfreq_mif/devfreq/17000010.devfreq_mif/exynos_data/cancel_boot_freq 1
|
||||
write /sys/devices/platform/17000020.devfreq_int/devfreq/17000020.devfreq_int/exynos_data/cancel_boot_freq 1
|
||||
write /proc/vendor_sched/groups/ta/uclamp_min 0
|
||||
write /proc/vendor_sched/groups/ta/prefer_idle 0
|
||||
write /proc/vendor_sched/groups/fg/uclamp_min 0
|
||||
write /proc/vendor_sched/groups/fg/prefer_idle 0
|
||||
write /proc/vendor_sched/groups/sys/uclamp_min 0
|
||||
write /proc/vendor_sched/groups/sys/prefer_idle 0
|
||||
|
||||
# Enable SICD
|
||||
write /sys/devices/system/cpu/cpupm/cpupm/sicd 1
|
||||
|
||||
on property:vendor.disable.bcl.control=1
|
||||
write /sys/devices/virtual/pmic/mitigation/instruction/enable_mitigation 0
|
||||
|
||||
on property:vendor.disable.bcl.control=0
|
||||
write /sys/devices/virtual/pmic/mitigation/instruction/enable_mitigation 1
|
||||
|
||||
# UDFPS
|
||||
on post-fs-data && property:ro.vendor.factory=1
|
||||
# HBM mode for UDFPS factory apk
|
||||
chmod 666 /d/dri/0/DSI-1/panel/reg/payload
|
||||
chmod 666 /d/dri/0/DSI-1/panel/reg/count
|
||||
chmod 666 /d/dri/0/DSI-1/panel/reg/address
|
||||
chmod 666 /d/dri/0/DSI-1/panel/hbm_mode
|
||||
chmod 666 /sys/class/backlight/panel0-backlight/local_hbm_max_timeout
|
||||
chmod 666 /sys/class/backlight/panel0-backlight/local_hbm_mode
|
||||
chmod 666 /sys/class/backlight/panel0-backlight/hbm_mode
|
||||
|
||||
# Persistent Soft Max Freq overrides
|
||||
on property:persist.vendor.softmaxfreq.cl0=*
|
||||
write /sys/devices/platform/exynos-acme/freq_qos_max "0 ${persist.vendor.softmaxfreq.cl0}"
|
||||
|
||||
on property:persist.vendor.softmaxfreq.cl1=*
|
||||
write /sys/devices/platform/exynos-acme/freq_qos_max "4 ${persist.vendor.softmaxfreq.cl1}"
|
||||
|
||||
on property:persist.vendor.softmaxfreq.cl2=*
|
||||
write /sys/devices/platform/exynos-acme/freq_qos_max "6 ${persist.vendor.softmaxfreq.cl2}"
|
||||
|
||||
on property:ro.boot.mode=charger && property:init.svc.vendor.charger=running
|
||||
# Disable dock-defend in Off Mode Charger
|
||||
write /sys/devices/platform/google,charger/dd_state -1
|
||||
|
||||
# Cpuset experiment
|
||||
on property:persist.device_config.vendor_system_native.top-app_cpuset=*
|
||||
write /dev/cpuset/top-app/cpus ${persist.device_config.vendor_system_native.top-app_cpuset:-0-7}
|
||||
on property:persist.device_config.vendor_system_native.foreground_cpuset=*
|
||||
write /dev/cpuset/foreground/cpus ${persist.device_config.vendor_system_native.foreground_cpuset:-0-3,4-5}
|
||||
on property:persist.device_config.vendor_system_native.foreground_window_cpuset=*
|
||||
write /dev/cpuset/foreground/cpus ${persist.device_config.vendor_system_native.foreground_window_cpuset:-0-3,4-5}
|
||||
on property:persist.device_config.vendor_system_native.background_cpuset=*
|
||||
write /dev/cpuset/background/cpus ${persist.device_config.vendor_system_native.background_cpuset:-0-3}
|
||||
on property:persist.device_config.vendor_system_native.system-background_cpuset=*
|
||||
write /dev/cpuset/system-background/cpus ${persist.device_config.vendor_system_native.system-background_cpuset:-0-3}
|
||||
on property:persist.device_config.vendor_system_native.restricted_cpuset=*
|
||||
write /dev/cpuset/restricted/cpus ${persist.device_config.vendor_system_native.restricted_cpuset:-0-3}
|
||||
on property:persist.device_config.vendor_system_native.camera-daemon_cpuset=*
|
||||
write /dev/cpuset/camera-daemon/cpus ${persist.device_config.vendor_system_native.camera-daemon_cpuset:-0-7}
|
||||
|
||||
# Battery health
|
||||
on property:persist.vendor.pulsar.opt_out=1
|
||||
write /sys/class/power_supply/battery/aacp_opt_out 1
|
||||
|
||||
on property:persist.vendor.pulsar.opt_out=0
|
||||
write /sys/class/power_supply/battery/aacp_opt_out 0
|
||||
|
||||
# NFC
|
||||
on post-fs-data
|
||||
mkdir /data/vendor/nfc 0770 nfc nfc
|
||||
@@ -1,423 +0,0 @@
|
||||
on early-boot
|
||||
mkdir /config/usb_gadget/g1
|
||||
mkdir /config/usb_gadget/g1/strings/0x409
|
||||
mkdir /config/usb_gadget/g1/configs/b.1
|
||||
write /config/usb_gadget/g1/idVendor 0x18d1
|
||||
write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
|
||||
write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer}
|
||||
write /config/usb_gadget/g1/strings/0x409/product ${ro.product.model}
|
||||
write /config/usb_gadget/g1/configs/b.1/MaxPower 0x384
|
||||
write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1
|
||||
write /config/usb_gadget/g1/os_desc/qw_sign "MSFT100"
|
||||
|
||||
# ffs function
|
||||
mkdir /config/usb_gadget/g1/functions/ffs.adb 0770 shell shell
|
||||
mkdir /config/usb_gadget/g1/functions/ffs.mtp
|
||||
mkdir /config/usb_gadget/g1/functions/ffs.ptp
|
||||
mkdir /dev/usb-ffs 0775 shell shell
|
||||
mkdir /dev/usb-ffs/adb 0770 shell shell
|
||||
mkdir /dev/usb-ffs/mtp 0770 mtp mtp
|
||||
mkdir /dev/usb-ffs/ptp 0770 mtp mtp
|
||||
mount functionfs adb /dev/usb-ffs/adb rmode=0770,fmode=0660,uid=2000,gid=2000,no_disconnect=1
|
||||
mount functionfs mtp /dev/usb-ffs/mtp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1
|
||||
mount functionfs ptp /dev/usb-ffs/ptp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1
|
||||
setprop sys.usb.mtp.device_type 3
|
||||
setprop sys.usb.mtp.batchcancel true
|
||||
symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1
|
||||
|
||||
# mtp function
|
||||
mkdir /config/usb_gadget/g1/functions/mtp.gs0
|
||||
|
||||
# ptp function
|
||||
mkdir /config/usb_gadget/g1/functions/ptp.gs1
|
||||
|
||||
# accessory function
|
||||
mkdir /config/usb_gadget/g1/functions/accessory.gs2
|
||||
|
||||
# audio_source function
|
||||
mkdir /config/usb_gadget/g1/functions/audio_source.gs3
|
||||
|
||||
# rndis function
|
||||
mkdir /config/usb_gadget/g1/functions/rndis.gs4
|
||||
# Modify class/subclass/protocol for rndis.gs4
|
||||
# Remote NDIS: Class: Wireless Controller (0xe0), Subclass: 0x1, Protocol: 0x3
|
||||
write /config/usb_gadget/g1/functions/rndis.gs4/class e0
|
||||
write /config/usb_gadget/g1/functions/rndis.gs4/subclass 01
|
||||
write /config/usb_gadget/g1/functions/rndis.gs4/protocol 03
|
||||
write /config/usb_gadget/g1/functions/rndis.gs4/os_desc/interface.ncm/compatible_id RNDIS
|
||||
write /config/usb_gadget/g1/functions/rndis.gs4/ifname rndis%d
|
||||
setprop vendor.usb.rndis.config rndis.gs4
|
||||
|
||||
# midi function
|
||||
mkdir /config/usb_gadget/g1/functions/midi.gs5
|
||||
|
||||
# acm function
|
||||
mkdir /config/usb_gadget/g1/functions/acm.gs6
|
||||
|
||||
# dm function
|
||||
mkdir /config/usb_gadget/g1/functions/dm.gs7
|
||||
|
||||
# uts function
|
||||
mkdir /config/usb_gadget/g1/functions/uts.gs8
|
||||
|
||||
# ncm function
|
||||
mkdir /config/usb_gadget/g1/functions/ncm.gs9
|
||||
write /config/usb_gadget/g1/functions/ncm.gs9/os_desc/interface.ncm/compatible_id WINNCM
|
||||
write /config/usb_gadget/g1/functions/ncm.gs9/ifname ncm%d
|
||||
|
||||
# etr_miu function
|
||||
mkdir /config/usb_gadget/g1/functions/etr_miu.gs11
|
||||
|
||||
# acm function for uwb
|
||||
mkdir /config/usb_gadget/g1/functions/acm.uwb0
|
||||
|
||||
# uvc function
|
||||
mkdir /config/usb_gadget/g1/functions/uvc.0
|
||||
write /config/usb_gadget/g1/functions/uvc.0/function_name "Android Webcam"
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming_maxpacket 3072
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming_maxburst 1
|
||||
# write /config/usb_gadget/g1/functions/uvc.0/streaming_interval 2
|
||||
# setup control params
|
||||
mkdir /config/usb_gadget/g1/functions/uvc.0/control/header/h
|
||||
symlink /config/usb_gadget/g1/functions/uvc.0/control/header/h /config/usb_gadget/g1/functions/uvc.0/control/class/fs/h
|
||||
symlink /config/usb_gadget/g1/functions/uvc.0/control/header/h /config/usb_gadget/g1/functions/uvc.0/control/class/ss/h
|
||||
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m
|
||||
# advertise 360p resolution for webcam encoded as mjpeg
|
||||
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/wHeight 360
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/wWidth 640
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMaxVideoFrameBufferSize 460800
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwDefaultFrameInterval 333333
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwFrameInterval "166666
|
||||
333333
|
||||
416666
|
||||
666666"
|
||||
# advertise 480p resolution for webcam encoded as mjpeg
|
||||
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/wHeight 480
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/wWidth 640
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMaxVideoFrameBufferSize 614400
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwDefaultFrameInterval 333333
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwFrameInterval "166666
|
||||
333333
|
||||
416666
|
||||
666666"
|
||||
# advertise 720p resolution for webcam encoded as mjpeg
|
||||
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wHeight 720
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wWidth 1280
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxVideoFrameBufferSize 1843200
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwDefaultFrameInterval 333333
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwFrameInterval "166666
|
||||
333333
|
||||
416666
|
||||
666666"
|
||||
# advertise 1080p resolution for webcam encoded as mjpeg
|
||||
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wHeight 1080
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wWidth 1920
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxVideoFrameBufferSize 4147200
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwDefaultFrameInterval 333333
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwFrameInterval "166666
|
||||
333333
|
||||
416666
|
||||
666666"
|
||||
# TODO: Add uncompressed streams
|
||||
# setup streaming params
|
||||
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/header/h
|
||||
symlink /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/m
|
||||
symlink /config/usb_gadget/g1/functions/uvc.0/streaming/header/h /config/usb_gadget/g1/functions/uvc.0/streaming/class/fs/h
|
||||
symlink /config/usb_gadget/g1/functions/uvc.0/streaming/header/h /config/usb_gadget/g1/functions/uvc.0/streaming/class/hs/h
|
||||
symlink /config/usb_gadget/g1/functions/uvc.0/streaming/header/h /config/usb_gadget/g1/functions/uvc.0/streaming/class/ss/h
|
||||
# remove write permissions for 'others'
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/control/header/h/bcdUVC
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/control/header/h/dwClockFrequency
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/bSourceID
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/function_name
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming_interval
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming_maxburst
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming_maxpacket
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/bmCapabilities
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwDefaultFrameInterval
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwFrameInterval
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxBitRate
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxVideoFrameBufferSize
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMinBitRate
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wHeight
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wWidth
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/bmCapabilities
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwDefaultFrameInterval
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwFrameInterval
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMaxBitRate
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMaxVideoFrameBufferSize
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMinBitRate
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/wHeight
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/wWidth
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/bmCapabilities
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwDefaultFrameInterval
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwFrameInterval
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMaxBitRate
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMaxVideoFrameBufferSize
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMinBitRate
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/wHeight
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/wWidth
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/bmCapabilities
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwDefaultFrameInterval
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwFrameInterval
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxBitRate
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxVideoFrameBufferSize
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMinBitRate
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wHeight
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wWidth
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bDefaultFrameIndex
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bmaControls
|
||||
|
||||
|
||||
# chown file/folder permission
|
||||
chown system system /config/usb_gadget/
|
||||
chown system system /config/usb_gadget/g1
|
||||
chown system system /config/usb_gadget/g1/UDC
|
||||
chown system system /config/usb_gadget/g1/bDeviceClass
|
||||
chown system system /config/usb_gadget/g1/bDeviceProtocol
|
||||
chown system system /config/usb_gadget/g1/bDeviceSubClass
|
||||
chown system system /config/usb_gadget/g1/bMaxPacketSize0
|
||||
chown system system /config/usb_gadget/g1/bcdDevice
|
||||
chown system system /config/usb_gadget/g1/bcdUSB
|
||||
chown system system /config/usb_gadget/g1/configs
|
||||
chown system system /config/usb_gadget/g1/configs/b.1
|
||||
chown system system /config/usb_gadget/g1/configs/b.1/MaxPower
|
||||
chown system system /config/usb_gadget/g1/configs/b.1/bmAttributes
|
||||
chown system system /config/usb_gadget/g1/configs/b.1/strings
|
||||
chown system system /config/usb_gadget/g1/functions
|
||||
chown system system /config/usb_gadget/g1/functions/accessory.gs2
|
||||
chown system system /config/usb_gadget/g1/functions/acm.gs6
|
||||
chown system system /config/usb_gadget/g1/functions/acm.gs6/port_num
|
||||
chown system system /config/usb_gadget/g1/functions/acm.uwb0
|
||||
chown system system /config/usb_gadget/g1/functions/acm.uwb0/port_num
|
||||
chown system system /config/usb_gadget/g1/functions/audio_source.gs3
|
||||
chown system system /config/usb_gadget/g1/functions/dm.gs7
|
||||
chown system system /config/usb_gadget/g1/functions/ffs.adb
|
||||
chown system system /config/usb_gadget/g1/functions/ffs.mtp
|
||||
chown system system /config/usb_gadget/g1/functions/ffs.ptp
|
||||
chown system system /config/usb_gadget/g1/functions/midi.gs5
|
||||
chown system system /config/usb_gadget/g1/functions/midi.gs5/buflen
|
||||
chown system system /config/usb_gadget/g1/functions/midi.gs5/id
|
||||
chown system system /config/usb_gadget/g1/functions/midi.gs5/in_ports
|
||||
chown system system /config/usb_gadget/g1/functions/midi.gs5/index
|
||||
chown system system /config/usb_gadget/g1/functions/midi.gs5/out_ports
|
||||
chown system system /config/usb_gadget/g1/functions/midi.gs5/qlen
|
||||
chown system system /config/usb_gadget/g1/functions/mtp.gs0
|
||||
chown system system /config/usb_gadget/g1/functions/mtp.gs0/os_desc
|
||||
chown system system /config/usb_gadget/g1/functions/mtp.gs0/os_desc/interface.MTP
|
||||
chown system system /config/usb_gadget/g1/functions/mtp.gs0/os_desc/interface.MTP/compatible_id
|
||||
chown system system /config/usb_gadget/g1/functions/mtp.gs0/os_desc/interface.MTP/sub_compatible_id
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9/dev_addr
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9/host_addr
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9/ifname
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9/os_desc
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9/os_desc/interface.ncm
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9/os_desc/interface.ncm/compatible_id
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9/os_desc/interface.ncm/sub_compatible_id
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9/qmult
|
||||
chown system system /config/usb_gadget/g1/functions/ptp.gs1
|
||||
chown system system /config/usb_gadget/g1/functions/ptp.gs1/os_desc
|
||||
chown system system /config/usb_gadget/g1/functions/ptp.gs1/os_desc/interface.MTP
|
||||
chown system system /config/usb_gadget/g1/functions/ptp.gs1/os_desc/interface.MTP/compatible_id
|
||||
chown system system /config/usb_gadget/g1/functions/ptp.gs1/os_desc/interface.MTP/sub_compatible_id
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/class
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/dev_addr
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/host_addr
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/ifname
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/os_desc
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/os_desc/interface.rndis
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/os_desc/interface.rndis/compatible_id
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/os_desc/interface.rndis/sub_compatible_id
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/protocol
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/qmult
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/subclass
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/bInterfaceNumber
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/class
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/class/fs
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/class/fs/h
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/class/ss
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/class/ss/h
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/header
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/header/h
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/header/h/bcdUVC
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/header/h/dwClockFrequency
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default/bmControls
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default/bSourceID
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default/bUnitID
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default/iProcessing
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default/wMaxMultiplier
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/bAssocTerminal
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/bmControls
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/bTerminalID
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/iTerminal
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/wObjectiveFocalLengthMax
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/wObjectiveFocalLengthMin
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/wOcularFocalLength
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/wTerminalType
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/bAssocTerminal
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/bSourceID
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/bTerminalID
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/iTerminal
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/wTerminalType
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/function_name
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming_interval
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming_maxburst
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming_maxpacket
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/bInterfaceNumber
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/fs
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/fs/h
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/hs
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/hs/h
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/ss
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/ss/h
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/color_matching
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/color_matching/default
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/color_matching/default/bColorPrimaries
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/color_matching/default/bMatrixCoefficients
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/color_matching/default/bTransferCharacteristics
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/bmInfo
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/bStillCaptureMethod
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/bTerminalLink
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/bTriggerSupport
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/bTriggerUsage
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/m
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/bFrameIndex
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/bmCapabilities
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwDefaultFrameInterval
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwFrameInterval
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxBitRate
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxVideoFrameBufferSize
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMinBitRate
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wHeight
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wWidth
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/bFrameIndex
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/bmCapabilities
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwDefaultFrameInterval
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwFrameInterval
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMaxBitRate
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMaxVideoFrameBufferSize
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMinBitRate
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/wHeight
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/wWidth
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/bFrameIndex
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/bmCapabilities
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwDefaultFrameInterval
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwFrameInterval
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMaxBitRate
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMaxVideoFrameBufferSize
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMinBitRate
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/wHeight
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/wWidth
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/bFrameIndex
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/bmCapabilities
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwDefaultFrameInterval
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwFrameInterval
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxBitRate
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxVideoFrameBufferSize
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMinBitRate
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wHeight
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wWidth
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bAspectRatioX
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bAspectRatioY
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bDefaultFrameIndex
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bFormatIndex
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bmaControls
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bmFlags
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bmInterlaceFlags
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed
|
||||
chown system system /config/usb_gadget/g1/idProduct
|
||||
chown system system /config/usb_gadget/g1/idVendor
|
||||
chown system system /config/usb_gadget/g1/max_speed
|
||||
chown system system /config/usb_gadget/g1/os_desc
|
||||
chown system system /config/usb_gadget/g1/os_desc/b.1
|
||||
chown system system /config/usb_gadget/g1/os_desc/b_vendor_code
|
||||
chown system system /config/usb_gadget/g1/os_desc/qw_sign
|
||||
chown system system /config/usb_gadget/g1/os_desc/use
|
||||
chown system system /config/usb_gadget/g1/strings
|
||||
chown system system /config/usb_gadget/g1/strings/0x409
|
||||
chown system system /config/usb_gadget/g1/strings/0x409/manufacturer
|
||||
chown system system /config/usb_gadget/g1/strings/0x409/product
|
||||
chown system system /config/usb_gadget/g1/strings/0x409/serialnumber
|
||||
setprop vendor.usb.functions.ready 1
|
||||
|
||||
on boot
|
||||
write /config/usb_gadget/g1/bcdDevice 0x0510
|
||||
# Set USB timeout
|
||||
write sys/module/usbcore/parameters/initial_descriptor_timeout 500
|
||||
# Use USB Gadget HAL
|
||||
setprop sys.usb.configfs 2
|
||||
# Enable in-kernel media-presence polling for SD cards
|
||||
write /sys/module/block/parameters/events_dfl_poll_msecs 2000
|
||||
|
||||
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb && property:sys.usb.configfs=1
|
||||
write /config/usb_gadget/g1/idProduct 0x4EE7
|
||||
write /config/usb_gadget/g1/idVendor 0x18D1
|
||||
|
||||
on property:vendor.usb.config=*
|
||||
start usbd
|
||||
|
||||
on property:persist.vendor.usb.usbradio.config=*
|
||||
start usbd
|
||||
|
||||
on charger
|
||||
mkdir /config/usb_gadget/g1
|
||||
mkdir /config/usb_gadget/g1/strings/0x409
|
||||
mkdir /config/usb_gadget/g1/configs/b.1
|
||||
write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
|
||||
write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer}
|
||||
write /config/usb_gadget/g1/strings/0x409/product ${ro.product.model}
|
||||
write /config/usb_gadget/g1/configs/b.1/MaxPower 0x384
|
||||
write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1
|
||||
write /config/usb_gadget/g1/os_desc/qw_sign "MSFT100"
|
||||
write /config/usb_gadget/g1/bcdDevice 0x0510
|
||||
mkdir /config/usb_gadget/g1/functions/midi.gs5
|
||||
symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1
|
||||
setprop sys.usb.controller "11210000.dwc3"
|
||||
setprop sys.usb.configfs 1
|
||||
|
||||
on property:ro.bootmode=charger
|
||||
setprop sys.usb.config charger
|
||||
|
||||
on property:sys.usb.config=charger && property:sys.usb.configfs=1
|
||||
write /config/usb_gadget/g1/idVendor 0x18d1
|
||||
write /config/usb_gadget/g1/idProduct 0x4eea
|
||||
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "midi"
|
||||
symlink /config/usb_gadget/g1/functions/midi.gs5 /config/usb_gadget/g1/configs/b.1/f1
|
||||
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
|
||||
write /sys/class/typec/port0/device/update_sdp_enum_timeout 0x1
|
||||
setprop sys.usb.state ${sys.usb.config}
|
||||
|
||||
on property:ro.bootmode=usbuwb
|
||||
setprop persist.vendor.usb.usbradio.config uwb_acm
|
||||
|
||||
on property:vendor.usb.contaminantdisable=true
|
||||
exec /vendor/bin/hw/disable_contaminant_detection.sh
|
||||
|
||||
# WAR for kernel 5.10 with CONFIG_USB_DUMMY_HCD enabled
|
||||
on property:sys.usb.controller=dummy_udc.0
|
||||
setprop sys.usb.controller "11210000.dwc3"
|
||||
@@ -1,45 +0,0 @@
|
||||
on init
|
||||
# Modem temperature driver
|
||||
chown radio system /sys/devices/platform/cp-tm1/cp_temp
|
||||
|
||||
on post-fs-data
|
||||
# Log data folder
|
||||
mkdir /data/vendor 0771 radio system
|
||||
mkdir /data/vendor/log 0771 radio system
|
||||
mkdir /data/vendor/log/cbd 0771 radio system
|
||||
mkdir /data/vendor/log/rfsd 0771 radio system
|
||||
mkdir /data/vendor/slog 0771 system system
|
||||
|
||||
# Modem extended log folder
|
||||
mkdir /data/vendor/radio/extended_logs 0771 radio system
|
||||
|
||||
# Modem MDS log folder
|
||||
mkdir /data/vendor/radio/mds 0771 radio system
|
||||
|
||||
# Modem OTA UECap folder
|
||||
mkdir /data/vendor/radio/ota_uecap 0773 radio system
|
||||
|
||||
# Unzipped modem images folder
|
||||
mkdir /data/vendor/radio/image 0771 radio system
|
||||
|
||||
# Modem stat folder
|
||||
mkdir /data/vendor/modem_stat 0771 radio system
|
||||
write /data/vendor/modem_stat/debug.txt ""
|
||||
chown radio system /data/vendor/modem_stat/debug.txt
|
||||
chmod 0664 /data/vendor/modem_stat/debug.txt
|
||||
|
||||
# Modem replay folder
|
||||
mkdir /mnt/vendor/modem_userdata/replay 0775 radio system
|
||||
|
||||
on fs
|
||||
# Mount modem partition
|
||||
mount_all /vendor/etc/fstab.modem --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
|
||||
restorecon_recursive /mnt/vendor/modem_img
|
||||
restorecon_recursive /mnt/vendor/persist/modem
|
||||
@@ -1,109 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2017 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.
|
||||
*/
|
||||
#ifndef __EXYNOS_SOUNDTRIGGERCONF_H__
|
||||
#define __EXYNOS_SOUNDTRIGGERCONF_H__
|
||||
|
||||
/********************************************************************/
|
||||
/** ALSA Framework Sound Card & Sound Device Information */
|
||||
/** */
|
||||
/** You can find Sound Device Name from /dev/snd. */
|
||||
/** Sound Device Name consist of Card Number & Device Number. */
|
||||
/** */
|
||||
/********************************************************************/
|
||||
|
||||
/* Sound Card and Mixer card Numbers based on Target Device */
|
||||
/* You have to match this number with real kernel information */
|
||||
#define VTS_SOUND_CARD 0
|
||||
#define VTS_MIXER_CARD 0
|
||||
|
||||
/* PCM Nodes number for seamless and normal recording*/
|
||||
#define VTS_TRICAP_DEVICE_NODE 13
|
||||
#define VTS_RECORD_DEVICE_NODE 14
|
||||
|
||||
/* sysfs file paths for loading model binaries into VTS kernel driver */
|
||||
#define VTS_HOTWORD_MODEL "/sys/devices/platform/13810000.vts/vts_google_model"
|
||||
#define VTS_SVOICE_MODEL "/sys/devices/platform/13810000.vts/vts_svoice_model"
|
||||
|
||||
#define AUDIO_PRIMARY_HAL_LIBRARY_PATH "/vendor/lib/libaudioproxy.so"
|
||||
|
||||
// VTS Capture(Input) PCM Configuration
|
||||
#define DEFAULT_VTS_CHANNELS 1 // Mono
|
||||
#define DEFAULT_VTS_SAMPLING_RATE 16000 // 16KHz
|
||||
|
||||
#define PRIMARY_VTS_PERIOD_SIZE 160 // 160 frames, 10ms in case of 16KHz Stream
|
||||
#define PRIMARY_VTS_PERIOD_COUNT 1024 // Buffer count => Total 327680 Bytes = 160 * 1(Mono) * 2(16bit PCM) * 1024(Buffer count)
|
||||
|
||||
/* VTS mixer controls */
|
||||
#define VTS_ACTIVE_KEYPHRASE_CTL_NAME "VTS Active Keyphrase" /* default: 0-"SVOICE", 1-"GOOGLE", 2-"SENSORY" */
|
||||
#define VTS_EXECUTION_MODE_CTL_NAME "VTS Execution Mode" /* 0-"OFF-MODE", 1-"VOICE-TRIG-MODE", 2-"SOUND-DECTECT-MODE", 3-"VT-ALWAYS-MODE" 4-"GOOGLE-TRI-MODE */
|
||||
#define VTS_VOICERECOGNIZE_START_CTL_NAME "VTS VoiceRecognize Start" /* 0-"Off", 1-On" */
|
||||
#define VTS_VOICETRIGGER_VALUE_CTL_NAME "VTS VoiceTrigger Value" /* 0 ~ 2000 ms*/
|
||||
|
||||
#define MAIN_MIC_CONTROL_COUNT 8
|
||||
#define HEADSET_MIC_CONTROL_COUNT 8
|
||||
#define MODEL_RECOGNIZE_CONTROL_COUNT 4
|
||||
|
||||
/* MIC Mixer controls for VTS */
|
||||
char *main_mic_ctlname[] = {
|
||||
"VTS DMIC SEL",
|
||||
"VTS DMIC IF RCH EN",
|
||||
"VTS DMIC IF LCH EN",
|
||||
"VTS SYS SEL",
|
||||
"VTS HPF EN",
|
||||
"VTS HPF SEL",
|
||||
"DMIC1 Switch",
|
||||
"VTS Virtual Output Mux",
|
||||
};
|
||||
|
||||
char *headset_mic_ctlname[] = {
|
||||
"AUXPDM1 Rate",
|
||||
"AUXPDM1 Input",
|
||||
"AUXPDM1 Output Switch",
|
||||
"AUXPDM Switch",
|
||||
"VTS DMIC SEL",
|
||||
"VTS DMIC IF RCH EN",
|
||||
"VTS DMIC IF LCH EN",
|
||||
"VTS SYS SEL",
|
||||
"VTS HPF EN",
|
||||
"VTS HPF SEL",
|
||||
};
|
||||
|
||||
/* MIC Mixer control values */
|
||||
/* FIXME : Double check this values */
|
||||
int main_mic_ctlvalue[] = {
|
||||
0, //"VTS DMIC SEL",
|
||||
1, //"VTS DMIC IF RCH EN",
|
||||
1, //"VTS DMIC IF LCH EN",
|
||||
1, //"VTS SYS SEL",
|
||||
1, //"VTS HPF EN",
|
||||
1, //"VTS HPF SEL",
|
||||
1, //"DMIC1 Switch",
|
||||
1, //"VTS Virtual Output Mux",
|
||||
};
|
||||
|
||||
int headset_mic_ctlvalue[] = {
|
||||
3, //"AUXPDM1 Rate",
|
||||
0, //"AUXPDM1 Input",
|
||||
1, //"AUXPDM1 Output Switch",
|
||||
1, //"AUXPDM Switch",
|
||||
1, //"VTS DMIC SEL",
|
||||
1, //"VTS DMIC IF RCH EN",
|
||||
1, //"VTS DMIC IF LCH EN",
|
||||
1, //"VTS SYS SEL",
|
||||
1, //"VTS HPF EN",
|
||||
1, //"VTS HPF SEL",
|
||||
};
|
||||
#endif // __EXYNOS_SOUNDTRIGGERCONF_H__
|
||||
@@ -1,238 +0,0 @@
|
||||
/dev/mali0 0666 system system
|
||||
/dev/ion 0666 system system
|
||||
/dev/ump 0666 system graphics
|
||||
/dev/exynos-mem 0660 system graphics
|
||||
/dev/video0 0660 system camera
|
||||
/dev/video1 0660 system camera
|
||||
/dev/video2 0660 system camera
|
||||
/dev/video3 0660 system camera
|
||||
/dev/video20 0660 system system
|
||||
# media0 is used for GSC, DECON, etc
|
||||
/dev/media0 0660 system camera
|
||||
# media1 is used for DECON Ext WB
|
||||
/dev/media1 0660 system graphics
|
||||
# Various devices use the v4l-subdev interface
|
||||
# We declare all such nodes simultaneously here
|
||||
/dev/v4l-subdev0 0660 system camera
|
||||
/dev/v4l-subdev1 0660 system camera
|
||||
/dev/v4l-subdev2 0660 system camera
|
||||
/dev/v4l-subdev3 0660 system camera
|
||||
/dev/v4l-subdev4 0660 system camera
|
||||
/dev/v4l-subdev5 0660 system camera
|
||||
/dev/v4l-subdev6 0660 system camera
|
||||
/dev/v4l-subdev7 0660 system camera
|
||||
/dev/v4l-subdev8 0660 system camera
|
||||
/dev/v4l-subdev9 0660 system camera
|
||||
/dev/v4l-subdev10 0660 system camera
|
||||
/dev/v4l-subdev11 0660 system camera
|
||||
/dev/v4l-subdev12 0660 system camera
|
||||
/dev/v4l-subdev13 0660 system camera
|
||||
/dev/v4l-subdev14 0660 system camera
|
||||
/dev/v4l-subdev15 0660 system camera
|
||||
/dev/v4l-subdev16 0660 system camera
|
||||
/dev/v4l-subdev17 0660 system camera
|
||||
/dev/v4l-subdev18 0660 system camera
|
||||
/dev/v4l-subdev19 0660 system camera
|
||||
# v4l-subdev20 is used for DECON Ext WB
|
||||
/dev/v4l-subdev20 0660 system graphics
|
||||
/dev/v4l-subdev21 0660 system graphics
|
||||
/dev/v4l-subdev32 0660 system graphics
|
||||
|
||||
# gscalers
|
||||
/dev/video23 0660 media graphics
|
||||
/dev/video26 0660 media graphics
|
||||
/dev/video24 0660 media graphics
|
||||
/dev/video27 0660 media graphics
|
||||
/dev/video29 0660 media graphics
|
||||
/dev/video30 0660 media graphics
|
||||
# video31 is used for DECON Ext WB
|
||||
/dev/video31 0660 media graphics
|
||||
|
||||
# mscalers
|
||||
/dev/video50 0660 mediacodec drmrpc
|
||||
/dev/m2m1shot_scaler0 0660 mediacodec drmrpc
|
||||
|
||||
/dev/video55 0666 system graphics
|
||||
/dev/g2d 0660 system graphics
|
||||
/dev/fimg2d 0666 system graphics
|
||||
/dev/HPD 0660 system system
|
||||
|
||||
# wfd
|
||||
/dev/tsmux 0660 media graphics
|
||||
/dev/repeater 0660 media graphics
|
||||
|
||||
# mfc
|
||||
/dev/video6 0660 mediacodec mediadrm
|
||||
/dev/video7 0660 mediacodec mediadrm
|
||||
/dev/video8 0660 mediacodec mediadrm
|
||||
/dev/video9 0660 mediacodec mediadrm
|
||||
/dev/video10 0660 mediacodec mediadrm
|
||||
/dev/video11 0660 mediacodec mediadrm
|
||||
|
||||
# camera
|
||||
/dev/media2 0660 media media
|
||||
/dev/hdcp2 0660 media media
|
||||
|
||||
# jpeg
|
||||
/dev/m2m1shot_jpeg 0660 media media
|
||||
/dev/video12 0666 system system
|
||||
|
||||
# audio
|
||||
/dev/seiren 0660 system audio
|
||||
/dev/acd-audio_output_tuning 0660 system audio
|
||||
/dev/acd-audio_bulk_tx 0660 system audio
|
||||
/dev/acd-audio_bulk_rx 0660 system audio
|
||||
/dev/acd-audio_input_tuning 0660 system audio
|
||||
/dev/acd-audio_input_bulk_tx 0660 system audio
|
||||
/dev/acd-audio_input_bulk_rx 0660 system audio
|
||||
/dev/acd-sound_trigger 0660 system audio
|
||||
/dev/acd-hotword_notification 0660 system audio
|
||||
/dev/acd-hotword_pcm 0660 system audio
|
||||
/dev/acd-ambient_pcm 0660 system audio
|
||||
/dev/acd-model_data 0660 system audio
|
||||
/dev/acd-debug 0660 system audio
|
||||
/dev/acd-audio_tap* 0660 system audio
|
||||
/dev/acd-audio_dcdoff_ref 0660 system audio
|
||||
/dev/acd-mel_processor 0660 system audio
|
||||
/dev/amcs 0660 system audio
|
||||
/dev/acd-audio_rtp_* 0660 system radio
|
||||
|
||||
# Secure MEM driver
|
||||
/dev/s5p-smem 0660 drm drmrpc
|
||||
|
||||
# cbd
|
||||
/dev/block/by-name/modem 0640 root radio
|
||||
/dev/block/by-name/modem_a 0640 root radio
|
||||
/dev/block/by-name/modem_b 0640 root radio
|
||||
|
||||
# DM tools
|
||||
/dev/umts_dm0 0660 system system
|
||||
/dev/umts_router 0660 system system
|
||||
/dev/ttyGS0 0660 system system
|
||||
/dev/ttyGS1 0660 system system
|
||||
/dev/ttyGS2 0660 system system
|
||||
|
||||
# IPC RIL
|
||||
/dev/umts_boot0 0660 radio system
|
||||
/dev/umts_ipc0 0660 radio radio
|
||||
/dev/umts_ipc1 0660 radio radio
|
||||
/dev/umts_rfs0 0660 radio radio
|
||||
|
||||
# IPC OEM
|
||||
/dev/oem_ipc* 0660 radio radio
|
||||
/dev/oem_test 0660 radio radio
|
||||
|
||||
# interactive governor parameters
|
||||
/sys/devices/system/cpu/cpu* cpufreq/interactive/timer_rate 0660 system system
|
||||
/sys/devices/system/cpu/cpu* cpufreq/interactive/timer_slack 0660 system system
|
||||
/sys/devices/system/cpu/cpu* cpufreq/interactive/min_sample_time 0660 system system
|
||||
/sys/devices/system/cpu/cpu* cpufreq/interactive/hispeed_freq 0660 system system
|
||||
/sys/devices/system/cpu/cpu* cpufreq/interactive/target_loads 0660 system system
|
||||
/sys/devices/system/cpu/cpu* cpufreq/interactive/go_hispeed_load 0660 system system
|
||||
/sys/devices/system/cpu/cpu* cpufreq/interactive/above_hispeed_delay 0660 system system
|
||||
/sys/devices/system/cpu/cpu* cpufreq/interactive/boost 0660 system system
|
||||
/sys/devices/system/cpu/cpu* cpufreq/interactive/boostpulse 0200 system system
|
||||
/sys/devices/system/cpu/cpu* cpufreq/interactive/input_boost 0660 system system
|
||||
/sys/devices/system/cpu/cpu* cpufreq/interactive/boostpulse_duration 0660 system system
|
||||
/sys/devices/system/cpu/cpu* cpufreq/interactive/io_is_busy 0660 system system
|
||||
|
||||
# Vision (VPU, SCORE)
|
||||
/dev/vertex0 0660 media media
|
||||
/dev/vertex1 0660 media media
|
||||
|
||||
# AoC
|
||||
/dev/aoc 0660 system system
|
||||
|
||||
# AoC stats (UmfwStat)
|
||||
/dev/acd-com.google.umfw_stat 0660 system system
|
||||
|
||||
# Sensors (USF)
|
||||
/dev/acd-com.google.usf 0660 system system
|
||||
/dev/acd-com.google.usf.non_wake_up 0660 system system
|
||||
|
||||
# CHRE
|
||||
/dev/acd-com.google.chre 0660 system system
|
||||
/dev/acd-com.google.chre.non_wake_up 0660 system system
|
||||
|
||||
# LWIS
|
||||
/dev/lwis* 0660 system system
|
||||
|
||||
# NFC
|
||||
/dev/st21nfc 0660 nfc nfc
|
||||
|
||||
# SecureElement
|
||||
/dev/st54j_se 0660 secure_element secure_element
|
||||
/dev/st54spi 0660 secure_element secure_element
|
||||
/dev/st33spi 0660 secure_element secure_element
|
||||
|
||||
#bigocean
|
||||
/dev/bigocean 0660 mediacodec mediadrm
|
||||
|
||||
# Trusty
|
||||
/dev/trusty-ipc-dev0 0660 system drmrpc
|
||||
/dev/trusty-log0 0660 system system
|
||||
|
||||
# RPMB
|
||||
/dev/sg1 0660 system system
|
||||
|
||||
# Citadel
|
||||
/dev/gsc0 0660 hsm hsm
|
||||
|
||||
# Storage: for factory reset protection feature
|
||||
/dev/block/by-name/frp 0660 system system
|
||||
|
||||
# Storage: for UDFPS calibration data sideload feature
|
||||
/dev/block/by-name/mfg_data 0660 system system
|
||||
|
||||
# TPU
|
||||
/dev/janeiro 0660 system system
|
||||
|
||||
# DSP
|
||||
/dev/gxp 0666 system camera
|
||||
|
||||
# TOE
|
||||
/dev/dit2 0660 radio radio
|
||||
|
||||
# Bluetooth
|
||||
/dev/ttySAC18 0660 bluetooth system
|
||||
/dev/btpower 0660 bluetooth system
|
||||
|
||||
# BT Wifi Coexistence
|
||||
/dev/wbrc 0660 system system
|
||||
|
||||
# TUI
|
||||
/dev/tui-driver 0660 system system
|
||||
|
||||
# DMA-BUF heaps
|
||||
/dev/dma_heap/crypto 0444 system graphics
|
||||
/dev/dma_heap/crypto-uncached 0444 system graphics
|
||||
/dev/dma_heap/faceauth_tpu-secure 0444 system graphics
|
||||
/dev/dma_heap/faimg-secure 0444 system graphics
|
||||
/dev/dma_heap/famodel-secure 0444 system graphics
|
||||
/dev/dma_heap/faprev-secure 0444 system graphics
|
||||
/dev/dma_heap/farawimg-secure 0444 system graphics
|
||||
/dev/dma_heap/tui-secure 0444 system graphics
|
||||
/dev/dma_heap/vframe-secure 0444 system drmrpc
|
||||
/dev/dma_heap/vscaler-secure 0444 system graphics
|
||||
/dev/dma_heap/vstream-secure 0444 system drmrpc
|
||||
/dev/dma_heap/sensor_direct_heap 0444 system graphics
|
||||
/dev/dma_heap/aaudio_playback_heap 0444 system audio
|
||||
/dev/dma_heap/aaudio_capture_heap 0444 system audio
|
||||
|
||||
# Direct Charging
|
||||
/dev/logbuffer_pca9468_tcpm 0600 system system
|
||||
|
||||
# Raw HID devices
|
||||
/dev/hidraw* 0660 system system
|
||||
|
||||
# Wlan
|
||||
/dev/wlan 0660 wifi wifi
|
||||
|
||||
# ODPM
|
||||
/sys/bus/iio/devices/iio:device* enabled_rails 0660 system system
|
||||
|
||||
# sysfs LED nodes for external USB devices
|
||||
/sys/devices/platform/11210000.usb/11210000.dwc3/xhci-hcd-exynos.5.auto/usb2/2-1* brightness 0664 system system
|
||||
/sys/devices/platform/11210000.usb/11210000.dwc3/xhci-hcd-exynos.5.auto/usb2/2-1* multi_intensity 0664 system system
|
||||
/sys/devices/platform/11210000.usb/11210000.dwc3/xhci-hcd-exynos.4.auto/usb2/2-1* brightness 0664 system system
|
||||
/sys/devices/platform/11210000.usb/11210000.dwc3/xhci-hcd-exynos.4.auto/usb2/2-1* multi_intensity 0664 system system
|
||||
@@ -1,178 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
PERSIST_BLK='/dev/block/by-name/persist'
|
||||
EFS_BLK='/dev/block/by-name/efs'
|
||||
MNT_BASE='/mnt/product'
|
||||
MNT_OLD="$MNT_BASE/convert_old"
|
||||
MNT_NEW="$MNT_BASE/convert_new"
|
||||
|
||||
function log() {
|
||||
if [ ! -z "$1" ]; then
|
||||
echo "partition_convert: $1" > /dev/kmsg
|
||||
fi
|
||||
}
|
||||
|
||||
function check_success() {
|
||||
RES=$?
|
||||
if [ $RES -ne 0 ]; then
|
||||
log "Failed: $1"
|
||||
else
|
||||
log "Success: $1"
|
||||
fi
|
||||
return $RES
|
||||
}
|
||||
|
||||
function get_fs_type()
|
||||
{
|
||||
BLOCK=$1
|
||||
EXT4_MAGIC=$(xxd $BLOCK -s 0x438 -l 2 -p)
|
||||
if [ "$EXT4_MAGIC" = "53ef" ]; then
|
||||
echo "ext4"
|
||||
else
|
||||
F2FS_MAGIC=$(xxd $BLOCK -s 0x400 -l 4 -p)
|
||||
if [ "$F2FS_MAGIC" = "1020f5f2" ]; then
|
||||
echo "f2fs"
|
||||
else
|
||||
echo "unknown"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Flow:
|
||||
# 1. If persist is f2fs we need to make efs ext4 and copy out the files. Once files are copied
|
||||
# successfully, format persist as ext4 to mark completion of step.
|
||||
# 2. If persist is ext4 and efs is ext4, we need to copy from efs to persist (use dd). Once
|
||||
# everything is copied successfully, erase efs to allow it to be formatted to f2fs later.
|
||||
# 3. If persist is ext4 and efs is not ext4, we have already migrated - do nothing.
|
||||
|
||||
# If persist is already ext4 and efs is not ext4 we have already migrated.
|
||||
PERSIST_FS=$(get_fs_type $PERSIST_BLK)
|
||||
EFS_FS=$(get_fs_type $EFS_BLK)
|
||||
if [ "$PERSIST_FS" = "ext4" ]; then
|
||||
if [ "$EFS_FS" != "ext4" ]; then
|
||||
log "persist ext4 migration already done"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$PERSIST_FS" = "unknown" ]; then
|
||||
log "persist partition hasn't been initialized"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
RETRIES=10
|
||||
while [[ $RETRIES -gt 0 ]]; do
|
||||
# Sleep for 1 second here, as other failure points will trigger continue
|
||||
sleep 1
|
||||
RETRIES=$((RETRIES-1))
|
||||
|
||||
# If persist is still f2fs, we need to copy to efs.
|
||||
if [ "$PERSIST_FS" = "f2fs" ]; then
|
||||
# Format efs as ext4
|
||||
/system/bin/mke2fs -t ext4 -b 4096 $EFS_BLK
|
||||
check_success "/system/bin/mke2fs -t ext4 -b 4096 $EFS_BLK"
|
||||
if [ $? -ne 0 ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
#Create directory to mount persist partition
|
||||
mkdir -p $MNT_OLD
|
||||
check_success "mkdir $MNT_OLD"
|
||||
if [ $? -ne 0 ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
# Create directory to mount efs partition
|
||||
mkdir -p $MNT_NEW
|
||||
check_success "mkdir $MNT_NEW"
|
||||
if [ $? -ne 0 ]; then
|
||||
rm -rf $MNT_OLD
|
||||
continue
|
||||
fi
|
||||
|
||||
# Mount persist
|
||||
mount -t f2fs $PERSIST_BLK $MNT_OLD
|
||||
check_success "mount -t f2fs $PERSIST_BLK $MNT_OLD"
|
||||
if [ $? -ne 0 ]; then
|
||||
rm -rf $MNT_NEW
|
||||
rm -rf $MNT_OLD
|
||||
continue
|
||||
fi
|
||||
|
||||
# Mount efs
|
||||
mount -t ext4 $EFS_BLK $MNT_NEW
|
||||
check_success "mount -t ext4 $EFS_BLK $MNT_NEW"
|
||||
if [ $? -ne 0 ]; then
|
||||
umount $MNT_OLD
|
||||
rm -rf $MNT_NEW
|
||||
rm -rf $MNT_OLD
|
||||
continue
|
||||
fi
|
||||
|
||||
cp -rp $MNT_OLD/.* $MNT_NEW/
|
||||
cp -rp $MNT_OLD/* $MNT_NEW/
|
||||
check_success "cp -rp $MNT_OLD/* $MNT_NEW/"
|
||||
if [ $? -ne 0 ]; then
|
||||
umount $MNT_NEW
|
||||
umount $MNT_OLD
|
||||
rm -rf $MNT_NEW
|
||||
rm -rf $MNT_OLD
|
||||
continue
|
||||
fi
|
||||
|
||||
# Calculate md5sum of all files and compare between persist and efs
|
||||
(cd $MNT_NEW; find . -type f | xargs md5sum | sort) > $MNT_BASE/new.md5sums
|
||||
(cd $MNT_OLD; find . -type f | xargs md5sum | sort) > $MNT_BASE/old.md5sums
|
||||
diff $MNT_BASE/new.md5sums $MNT_BASE/old.md5sums
|
||||
check_success "diff $MNT_BASE/new.md5sums $MNT_BASE/old.md5sums"
|
||||
RES=$?
|
||||
rm $MNT_BASE/new.md5sums $MNT_BASE/old.md5sums
|
||||
|
||||
umount $MNT_NEW
|
||||
umount $MNT_OLD
|
||||
rm -rf $MNT_NEW
|
||||
rm -rf $MNT_OLD
|
||||
|
||||
if [ $RES -ne 0 ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
/system/bin/mke2fs -t ext4 -b 4096 $PERSIST_BLK
|
||||
check_success "/system/bin/mke2fs -t ext4 -b 4096 $PERSIST_BLK"
|
||||
if [ $? -ne 0 ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
PERSIST_FS="ext4"
|
||||
fi
|
||||
|
||||
# copy efs to persist
|
||||
dd if=$EFS_BLK of=$PERSIST_BLK
|
||||
check_success "dd if=$EFS_BLK of=$PERSIST_BLK"
|
||||
if [ $? -ne 0 ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
sync
|
||||
check_success "sync"
|
||||
if [ $? -ne 0 ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
# compare md5sum for integrity
|
||||
EFS_MD5SUM=$(dd if=$EFS_BLK 2>/dev/null | md5sum)
|
||||
PERSIST_MD5SUM=$(dd if=$PERSIST_BLK 2>/dev/null | md5sum)
|
||||
if [ "$PERSIST_MD5SUM" != "$EFS_MD5SUM" ]; then
|
||||
log "dd md5sum mismatch"
|
||||
continue
|
||||
fi
|
||||
|
||||
dd if=/dev/zero of=$EFS_BLK bs=1M count=64
|
||||
check_success "dd if=/dev/zero of=$EFS_BLK bs=1M count=64"
|
||||
if [ $? -ne 0 ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
log "Migration succeeded"
|
||||
break
|
||||
done
|
||||
@@ -1,18 +1,8 @@
|
||||
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
|
||||
|
||||
<!-- Copyright (C) 2019 Google Inc.
|
||||
|
||||
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.
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2019 Google Inc.
|
||||
SPDX-License-Identifier: Apache-2.0
|
||||
-->
|
||||
|
||||
<!--
|
||||
|
||||
@@ -1,17 +1,6 @@
|
||||
#
|
||||
# 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.
|
||||
# SPDX-FileCopyrightText: 2020 The Android Open-Source Project
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
include device/google/gs201/device.mk
|
||||
|
||||
@@ -1,16 +1,6 @@
|
||||
#
|
||||
# Copyright (C) 2020 The Android Open-Source Project
|
||||
# SPDX-FileCopyrightText: 2020 The Android Open-Source Project
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
include device/google/gs201/device-common.mk
|
||||
|
||||
634
device.mk
634
device.mk
@@ -1,47 +1,52 @@
|
||||
#
|
||||
# Copyright (C) 2011 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.
|
||||
# SPDX-FileCopyrightText: 2011 The Android Open-Source Project
|
||||
# SPDX-FileCopyrightText: The LineageOS Project
|
||||
# SPDX-FileCopyrightText: The Calyx Institute
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
include device/google/gs-common/device.mk
|
||||
include device/google/gs-common/gs_watchdogd/watchdog.mk
|
||||
include device/google/gs-common/ramdump_and_coredump/ramdump_and_coredump.mk
|
||||
include device/google/gs-common/soc/soc.mk
|
||||
include device/google/gs-common/soc/freq.mk
|
||||
include device/google/gs-common/modem/modem.mk
|
||||
include device/google/gs-common/aoc/aoc.mk
|
||||
include device/google/gs-common/thermal/dump/thermal.mk
|
||||
include device/google/gs-common/thermal/thermal_hal/device.mk
|
||||
include device/google/gs-common/pixel_metrics/pixel_metrics.mk
|
||||
include device/google/gs-common/performance/perf.mk
|
||||
include device/google/gs-common/display/dump_exynos_display.mk
|
||||
include device/google/gs-common/camera/dump.mk
|
||||
include device/google/gs-common/gxp/gxp.mk
|
||||
include device/google/gs-common/gps/dump/log.mk
|
||||
include device/google/gs-common/radio/dump.mk
|
||||
include device/google/gs-common/umfw_stat/umfw_stat.mk
|
||||
include device/google/gs-common/gear/dumpstate/aidl.mk
|
||||
include device/google/gs-common/widevine/widevine.mk
|
||||
include device/google/gs-common/sota_app/factoryota.mk
|
||||
include device/google/gs-common/misc_writer/misc_writer.mk
|
||||
include device/google/gs-common/bootctrl/bootctrl_aidl.mk
|
||||
include device/google/gs-common/betterbug/betterbug.mk
|
||||
ifneq ($(filter %_cheetah %_felix %_panther, $(TARGET_PRODUCT)),)
|
||||
include device/google/gs-common/bcmbt/dump/dumplog.mk
|
||||
# Disable OMX
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
vendor.media.omx=0
|
||||
|
||||
# Installs gsi keys into ramdisk, to boot a developer GSI with verified boot.
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/developer_gsi_keys.mk)
|
||||
|
||||
PRODUCT_COPY_FILES += \
|
||||
frameworks/native/data/etc/android.software.ipsec_tunnel_migration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.ipsec_tunnel_migration.xml
|
||||
|
||||
# sscoredump
|
||||
PRODUCT_PROPERTY_OVERRIDES += vendor.debug.ssrdump.type=sscoredump
|
||||
|
||||
# Modem
|
||||
ifneq ($(BOARD_WITHOUT_RADIO),true)
|
||||
PRODUCT_PACKAGES += dump_modem
|
||||
endif
|
||||
include device/google/gs-common/fingerprint/fingerprint.mk
|
||||
include device/google/gs-common/nfc/nfc.mk
|
||||
|
||||
# Thermal
|
||||
PRODUCT_PACKAGES += android.hardware.thermal-service.pixel
|
||||
|
||||
# Thermal utils
|
||||
PRODUCT_PACKAGES += thermal_symlinks
|
||||
|
||||
# Ensure enough free space to create zram backing device
|
||||
PRODUCT_PRODUCT_PROPERTIES += \
|
||||
ro.zram_backing_device_min_free_mb=1536
|
||||
|
||||
# DRM
|
||||
PRODUCT_PACKAGES += \
|
||||
android.hardware.drm-service.clearkey
|
||||
|
||||
# misc_writer
|
||||
PRODUCT_PACKAGES += \
|
||||
misc_writer
|
||||
|
||||
# Boot control
|
||||
PRODUCT_PACKAGES += \
|
||||
android.hardware.boot-service.default-pixel \
|
||||
android.hardware.boot-service.default_recovery-pixel
|
||||
|
||||
PRODUCT_SOONG_NAMESPACES += device/google/gs-common/bootctrl/aidl
|
||||
|
||||
TARGET_BOARD_PLATFORM := gs201
|
||||
|
||||
@@ -51,31 +56,11 @@ AB_OTA_POSTINSTALL_CONFIG += \
|
||||
FILESYSTEM_TYPE_system=ext4 \
|
||||
POSTINSTALL_OPTIONAL_system=true
|
||||
|
||||
# Set Vendor SPL to match platform
|
||||
VENDOR_SECURITY_PATCH := 2025-06-05
|
||||
|
||||
# Set boot SPL
|
||||
BOOT_SECURITY_PATCH := 2025-06-05
|
||||
|
||||
# TODO(b/207450311): Remove this flag once implemented
|
||||
USE_PIXEL_GRALLOC := false
|
||||
ifeq ($(USE_PIXEL_GRALLOC),true)
|
||||
PRODUCT_SOONG_NAMESPACES += hardware/google/gchips/GrallocHAL
|
||||
endif
|
||||
|
||||
PRODUCT_SOONG_NAMESPACES += \
|
||||
hardware/google/av \
|
||||
hardware/google/interfaces \
|
||||
hardware/google/pixel \
|
||||
device/google/gs201 \
|
||||
device/google/gs201/powerstats
|
||||
|
||||
LOCAL_KERNEL := $(TARGET_KERNEL_DIR)/Image.lz4
|
||||
|
||||
ifeq ($(RELEASE_AVF_ENABLE_LLPVM_CHANGES),true)
|
||||
# Set the environment variable to enable the Secretkeeper HAL service.
|
||||
SECRETKEEPER_ENABLED := true
|
||||
endif
|
||||
device/google/gs201
|
||||
|
||||
# OEM Unlock reporting
|
||||
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
|
||||
@@ -86,8 +71,6 @@ PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.telephony.default_network=27 \
|
||||
persist.vendor.ril.db_ecc.use.iccid_to_plmn=1 \
|
||||
persist.vendor.ril.db_ecc.id.type=5
|
||||
#rild.libpath=/system/lib64/libsec-ril.so \
|
||||
#rild.libargs=-d /dev/umts_ipc0
|
||||
|
||||
# SIT-RIL Logging setting
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
@@ -163,63 +146,20 @@ PRODUCT_PROPERTY_OVERRIDES += \
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
telephony.active_modems.max_count=2
|
||||
|
||||
USE_LASSEN_OEMHOOK := true
|
||||
# The "power-anomaly-sitril" is added into PRODUCT_SOONG_NAMESPACES when
|
||||
# $(USE_LASSEN_OEMHOOK) is true and $(BOARD_WITHOUT_RADIO) is not true.
|
||||
ifneq ($(BOARD_WITHOUT_RADIO),true)
|
||||
$(call soong_config_set,sitril,use_lassen_oemhook_with_radio,true)
|
||||
endif
|
||||
|
||||
# Use for GRIL
|
||||
USES_LASSEN_MODEM := true
|
||||
$(call soong_config_set, vendor_ril_google_feature, use_lassen_modem, true)
|
||||
ifneq ($(BOARD_WITHOUT_RADIO),true)
|
||||
$(call soong_config_set_bool,grilservice,use_google_qns,true)
|
||||
endif
|
||||
|
||||
ifeq ($(USES_GOOGLE_DIALER_CARRIER_SETTINGS),true)
|
||||
USE_GOOGLE_DIALER := true
|
||||
USE_GOOGLE_CARRIER_SETTINGS := true
|
||||
endif
|
||||
|
||||
ifeq ($(USES_GOOGLE_PREBUILT_MODEM_SVC),true)
|
||||
USE_GOOGLE_PREBUILT_MODEM_SVC := true
|
||||
endif
|
||||
|
||||
# Audio client implementation for RIL
|
||||
USES_GAUDIO := true
|
||||
|
||||
# ######################
|
||||
# GRAPHICS - GPU (begin)
|
||||
|
||||
# Must match BOARD_USES_SWIFTSHADER in BoardConfig.mk
|
||||
USE_SWIFTSHADER := false
|
||||
|
||||
# HWUI
|
||||
ifeq ($(USE_SWIFTSHADER),true)
|
||||
TARGET_USES_VULKAN = false
|
||||
else
|
||||
TARGET_USES_VULKAN = true
|
||||
endif
|
||||
TARGET_USES_VULKAN = true
|
||||
|
||||
$(call soong_config_set,pixel_mali,soc,$(TARGET_BOARD_PLATFORM))
|
||||
|
||||
include device/google/gs-common/gpu/gpu.mk
|
||||
PRODUCT_PACKAGES += \
|
||||
csffw_image_prebuilt__firmware_prebuilt_todx_mali_csffw.bin \
|
||||
libGLES_mali \
|
||||
vulkan.mali \
|
||||
libgpudataproducer \
|
||||
# GPU
|
||||
PRODUCT_PACKAGES += gpu_probe
|
||||
|
||||
# Install the OpenCL ICD Loader
|
||||
PRODUCT_SOONG_NAMESPACES += external/OpenCL-ICD-Loader
|
||||
PRODUCT_PACKAGES += \
|
||||
libOpenCL \
|
||||
mali_icd__customer_pixel_opencl-icd_ARM.icd
|
||||
ifeq ($(DEVICE_IS_64BIT_ONLY),false)
|
||||
PRODUCT_PACKAGES += \
|
||||
mali_icd__customer_pixel_opencl-icd_ARM32.icd
|
||||
endif
|
||||
libOpenCL
|
||||
|
||||
PRODUCT_VENDOR_PROPERTIES += \
|
||||
ro.hardware.egl=mali \
|
||||
ro.hardware.vulkan=mali
|
||||
|
||||
# Mali Configuration Properties
|
||||
PRODUCT_VENDOR_PROPERTIES += \
|
||||
@@ -231,28 +171,12 @@ PRODUCT_VENDOR_PROPERTIES += \
|
||||
|
||||
PRODUCT_COPY_FILES += \
|
||||
frameworks/native/data/etc/android.hardware.opengles.aep.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.opengles.aep.xml \
|
||||
frameworks/native/data/etc/android.hardware.vulkan.version-1_3.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version.xml \
|
||||
frameworks/native/data/etc/android.hardware.vulkan.version-1_4.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version.xml \
|
||||
frameworks/native/data/etc/android.hardware.vulkan.level-1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level.xml \
|
||||
frameworks/native/data/etc/android.hardware.vulkan.compute-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.compute.xml \
|
||||
frameworks/native/data/etc/android.software.vulkan.deqp.level-2025-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.vulkan.deqp.level.xml \
|
||||
frameworks/native/data/etc/android.software.opengles.deqp.level-2025-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.opengles.deqp.level.xml
|
||||
|
||||
ifeq ($(USE_SWIFTSHADER),true)
|
||||
PRODUCT_PACKAGES += \
|
||||
vulkan.pastel
|
||||
endif
|
||||
|
||||
ifeq ($(USE_SWIFTSHADER),true)
|
||||
PRODUCT_VENDOR_PROPERTIES += \
|
||||
ro.hardware.egl = mali \
|
||||
persist.graphics.egl = angle \
|
||||
ro.hardware.vulkan = pastel
|
||||
else
|
||||
PRODUCT_VENDOR_PROPERTIES += \
|
||||
ro.hardware.egl = mali \
|
||||
ro.hardware.vulkan = mali
|
||||
endif
|
||||
|
||||
# Configure EGL blobcache
|
||||
PRODUCT_VENDOR_PROPERTIES += \
|
||||
ro.egl.blobcache.multifile=true \
|
||||
@@ -265,33 +189,8 @@ PRODUCT_VENDOR_PROPERTIES += \
|
||||
# b/295257834 Add HDR shaders to SurfaceFlinger's pre-warming cache
|
||||
PRODUCT_VENDOR_PROPERTIES += ro.surface_flinger.prime_shader_cache.ultrahdr=1
|
||||
|
||||
# GRAPHICS - GPU (end)
|
||||
# ####################
|
||||
|
||||
# Device Manifest, Device Compatibility Matrix for Treble
|
||||
DEVICE_MANIFEST_FILE := \
|
||||
device/google/gs201/manifest.xml
|
||||
|
||||
BOARD_USE_CODEC2_AIDL := V1
|
||||
ifneq (,$(filter aosp_%,$(TARGET_PRODUCT)))
|
||||
DEVICE_MANIFEST_FILE += \
|
||||
device/google/gs201/manifest_media_aosp.xml
|
||||
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/gs201/media_codecs_aosp_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_c2.xml
|
||||
else
|
||||
DEVICE_MANIFEST_FILE += \
|
||||
device/google/gs201/manifest_media.xml
|
||||
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/gs201/media_codecs_bo_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_c2.xml \
|
||||
device/google/gs201/media_codecs_aosp_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_aosp_c2.xml
|
||||
endif
|
||||
|
||||
DEVICE_MATRIX_FILE := \
|
||||
device/google/gs201/compatibility_matrix.xml
|
||||
|
||||
DEVICE_PACKAGE_OVERLAYS += device/google/gs201/overlay
|
||||
DEVICE_PACKAGE_OVERLAYS += device/google/gs201/overlay-lineage
|
||||
|
||||
# This device is shipped with 33 (Android T)
|
||||
PRODUCT_SHIPPING_API_LEVEL := 33
|
||||
@@ -300,23 +199,6 @@ PRODUCT_SHIPPING_API_LEVEL := 33
|
||||
PRODUCT_PRODUCT_VNDK_VERSION := current
|
||||
PRODUCT_ENFORCE_PRODUCT_PARTITION_INTERFACE := true
|
||||
|
||||
# Init files
|
||||
PRODUCT_COPY_FILES += \
|
||||
$(LOCAL_KERNEL):kernel \
|
||||
device/google/gs201/conf/init.gs201.usb.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.gs201.usb.rc \
|
||||
device/google/gs201/conf/ueventd.gs201.rc:$(TARGET_COPY_OUT_VENDOR)/etc/ueventd.rc
|
||||
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/gs201/conf/init.gs201.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.gs201.rc
|
||||
|
||||
ifneq (,$(filter 5.%, $(TARGET_LINUX_KERNEL_VERSION)))
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/gs201/storage/5.10/init.gs201.storage.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.gs201.storage.rc
|
||||
else
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/gs201/storage/6.1/init.gs201.storage.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.gs201.storage.rc
|
||||
endif
|
||||
|
||||
# Recovery files
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/gs201/conf/init.recovery.device.rc:$(TARGET_COPY_OUT_RECOVERY)/root/init.recovery.gs201.rc
|
||||
@@ -328,16 +210,6 @@ PRODUCT_PACKAGES += \
|
||||
fstab.gs201-fips \
|
||||
fstab.gs201-fips.vendor_ramdisk
|
||||
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/$(TARGET_BOARD_PLATFORM)/conf/fstab.persist:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.persist \
|
||||
|
||||
# Shell scripts
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/gs201/init.display.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.display.sh \
|
||||
device/google/gs201/disable_contaminant_detection.sh:$(TARGET_COPY_OUT_VENDOR)/bin/hw/disable_contaminant_detection.sh
|
||||
|
||||
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)
|
||||
@@ -347,23 +219,10 @@ PRODUCT_HOST_PACKAGES += \
|
||||
mkdtimg
|
||||
|
||||
# CHRE
|
||||
## HAL
|
||||
include device/google/gs-common/chre/hal.mk
|
||||
## hal
|
||||
PRODUCT_PACKAGES += android.hardware.contexthub-service.generic
|
||||
PRODUCT_COPY_FILES += \
|
||||
frameworks/native/data/etc/android.hardware.context_hub.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.context_hub.xml
|
||||
CHRE_DEDICATED_TRANSPORT_CHANNEL_ENABLED := true
|
||||
PRODUCT_PACKAGES += \
|
||||
preloaded_nanoapps.json
|
||||
|
||||
# Filesystem management tools
|
||||
PRODUCT_PACKAGES += \
|
||||
linker.vendor_ramdisk \
|
||||
tune2fs.vendor_ramdisk \
|
||||
resize2fs.vendor_ramdisk
|
||||
|
||||
# Filesystem: convert /dev/block/by-name/persist to ext4 (b/239632964)
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/gs201/convert_to_ext4.sh:$(TARGET_COPY_OUT_SYSTEM_EXT)/bin/convert_to_ext4.sh \
|
||||
|
||||
# Userdata Checkpointing OTA GC
|
||||
PRODUCT_PACKAGES += \
|
||||
@@ -373,13 +232,6 @@ PRODUCT_PACKAGES += \
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
persist.vendor.verbose_logging_enabled=false
|
||||
|
||||
# RPMB TA
|
||||
PRODUCT_PACKAGES += \
|
||||
tlrpmb
|
||||
|
||||
# Touch firmware
|
||||
#PRODUCT_COPY_FILES += \
|
||||
device/google/gs201/firmware/touch/s6sy761.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/s6sy761.fw
|
||||
# Touch
|
||||
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
|
||||
@@ -420,9 +272,6 @@ PRODUCT_COPY_FILES += \
|
||||
frameworks/native/data/etc/android.hardware.telephony.euicc.mep.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/permissions/android.hardware.telephony.euicc.mep.xml
|
||||
endif
|
||||
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/gs201/task_profiles.json:$(TARGET_COPY_OUT_VENDOR)/etc/task_profiles.json
|
||||
|
||||
-include hardware/google/pixel/power-libperfmgr/aidl/device.mk
|
||||
|
||||
# IRQ rebalancing.
|
||||
@@ -436,105 +285,27 @@ PRODUCT_PACKAGES += \
|
||||
# Audio HALs
|
||||
#
|
||||
|
||||
# Audio Configurations
|
||||
USE_LEGACY_LOCAL_AUDIO_HAL := false
|
||||
USE_XML_AUDIO_POLICY_CONF := 1
|
||||
|
||||
# Enable AAudio MMAP/NOIRQ data path.
|
||||
PRODUCT_PROPERTY_OVERRIDES += aaudio.mmap_policy=2
|
||||
PRODUCT_PROPERTY_OVERRIDES += aaudio.mmap_exclusive_policy=2
|
||||
PRODUCT_PROPERTY_OVERRIDES += aaudio.hw_burst_min_usec=2000
|
||||
|
||||
# Calliope firmware overwrite
|
||||
#PRODUCT_COPY_FILES += \
|
||||
device/google/gs201/firmware/calliope_dram.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/calliope_dram.bin \
|
||||
device/google/gs201/firmware/calliope_sram.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/calliope_sram.bin \
|
||||
device/google/gs201/firmware/calliope_dram_2.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/calliope_dram_2.bin \
|
||||
device/google/gs201/firmware/calliope_sram_2.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/calliope_sram_2.bin \
|
||||
device/google/gs201/firmware/calliope2.dt:$(TARGET_COPY_OUT_VENDOR)/firmware/calliope2.dt \
|
||||
|
||||
# Cannot reference variables defined in BoardConfig.mk, uncomment this if
|
||||
# BOARD_USE_OFFLOAD_AUDIO and BOARD_USE_OFFLOAD_EFFECT are true
|
||||
## AudioEffectHAL library
|
||||
#PRODUCT_PACKAGES += \
|
||||
# libexynospostprocbundle
|
||||
|
||||
# Cannot reference variables defined in BoardConfig.mk, uncomment this if
|
||||
# BOARD_USE_SOUNDTRIGGER_HAL is true
|
||||
#PRODUCT_PACKAGES += \
|
||||
# sound_trigger.primary.maran9820
|
||||
|
||||
# A-Box Service Daemon
|
||||
#PRODUCT_PACKAGES += main_abox
|
||||
|
||||
# Libs
|
||||
PRODUCT_PACKAGES += \
|
||||
com.android.future.usb.accessory
|
||||
|
||||
PRODUCT_PACKAGES += \
|
||||
android.hardware.memtrack-service.pixel \
|
||||
libion_exynos \
|
||||
libion
|
||||
|
||||
PRODUCT_PACKAGES += \
|
||||
libhwjpeg
|
||||
|
||||
# Video Editor
|
||||
PRODUCT_PACKAGES += \
|
||||
VideoEditorGoogle
|
||||
|
||||
# WideVine modules
|
||||
include device/google/gs201/widevine/device.mk
|
||||
PRODUCT_PACKAGES += \
|
||||
liboemcrypto \
|
||||
|
||||
PANTHER_PRODUCT := %panther
|
||||
CHEETAH_PRODUCT := %cheetah
|
||||
LYNX_PRODUCT := %lynx
|
||||
FELIX_PRODUCT := %felix
|
||||
CLOUDRIPPER_PRODUCT := %cloudripper
|
||||
TANGOR_PRODUCT := %tangorpro
|
||||
ifneq (,$(filter $(PANTHER_PRODUCT), $(TARGET_PRODUCT)))
|
||||
LOCAL_TARGET_PRODUCT := panther
|
||||
else ifneq (,$(filter $(CHEETAH_PRODUCT), $(TARGET_PRODUCT)))
|
||||
LOCAL_TARGET_PRODUCT := cheetah
|
||||
else ifneq (,$(filter $(LYNX_PRODUCT), $(TARGET_PRODUCT)))
|
||||
LOCAL_TARGET_PRODUCT := lynx
|
||||
else ifneq (,$(filter $(FELIX_PRODUCT), $(TARGET_PRODUCT)))
|
||||
LOCAL_TARGET_PRODUCT := felix
|
||||
else ifneq (,$(filter $(CLOUDRIPPER_PRODUCT), $(TARGET_PRODUCT)))
|
||||
LOCAL_TARGET_PRODUCT := cloudripper
|
||||
else ifneq (,$(filter $(TANGOR_PRODUCT), $(TARGET_PRODUCT)))
|
||||
LOCAL_TARGET_PRODUCT := tangorpro
|
||||
else
|
||||
# WAR: continue defaulting to slider build on gs201 to not
|
||||
# break dev targets such as ravenclaw
|
||||
LOCAL_TARGET_PRODUCT := slider
|
||||
endif
|
||||
|
||||
# Lyric Camera HAL settings
|
||||
include device/google/gs-common/camera/lyric.mk
|
||||
$(call soong_config_set,lyric,soc,gs201)
|
||||
$(call soong_config_set,google3a_config,soc,gs201)
|
||||
|
||||
# WiFi
|
||||
PRODUCT_PACKAGES += \
|
||||
wificond \
|
||||
libwpa_client
|
||||
# Camera
|
||||
PRODUCT_SOONG_NAMESPACES += \
|
||||
hardware/google/camera
|
||||
|
||||
# Connectivity
|
||||
PRODUCT_PACKAGES += \
|
||||
ConnectivityOverlay
|
||||
|
||||
# Storage dump
|
||||
include device/google/gs-common/storage/storage.mk
|
||||
|
||||
# Storage health HAL
|
||||
PRODUCT_PACKAGES += \
|
||||
android.hardware.health.storage-service.default
|
||||
|
||||
# Battery Mitigation
|
||||
include device/google/gs-common/battery_mitigation/bcl.mk
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
vendor.battery_mitigation.aidl.enable=true
|
||||
|
||||
# storage pixelstats
|
||||
-include hardware/google/pixel/pixelstats/device.mk
|
||||
|
||||
@@ -546,18 +317,6 @@ $(call inherit-product, $(SRC_TARGET_DIR)/product/virtual_ab_ota/launch_with_ven
|
||||
# Enforce generic ramdisk allow list
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/generic_ramdisk.mk)
|
||||
|
||||
# Titan-M
|
||||
ifeq (,$(filter true, $(BOARD_WITHOUT_DTLS)))
|
||||
include device/google/gs-common/dauntless/gsc.mk
|
||||
endif
|
||||
|
||||
# Copy Camera HFD Setfiles
|
||||
#PRODUCT_COPY_FILES += \
|
||||
device/google/gs201/firmware/camera/libhfd/default_configuration.hfd.cfg.json:$(TARGET_COPY_OUT_VENDOR)/firmware/default_configuration.hfd.cfg.json \
|
||||
device/google/gs201/firmware/camera/libhfd/pp_cfg.json:$(TARGET_COPY_OUT_VENDOR)/firmware/pp_cfg.json \
|
||||
device/google/gs201/firmware/camera/libhfd/tracker_cfg.json:$(TARGET_COPY_OUT_VENDOR)/firmware/tracker_cfg.json \
|
||||
device/google/gs201/firmware/camera/libhfd/WithLightFixNoBN.SDNNmodel:$(TARGET_COPY_OUT_VENDOR)/firmware/WithLightFixNoBN.SDNNmodel
|
||||
|
||||
# WiFi
|
||||
PRODUCT_COPY_FILES += \
|
||||
frameworks/native/data/etc/android.hardware.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.xml \
|
||||
@@ -585,12 +344,6 @@ PRODUCT_COPY_FILES += \
|
||||
frameworks/native/data/etc/android.hardware.camera.full.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.full.xml\
|
||||
frameworks/native/data/etc/android.hardware.camera.raw.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.raw.xml\
|
||||
|
||||
#PRODUCT_COPY_FILES += \
|
||||
frameworks/native/data/etc/handheld_core_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/handheld_core_hardware.xml \
|
||||
frameworks/native/data/etc/android.hardware.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.xml \
|
||||
frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml \
|
||||
frameworks/native/data/etc/android.hardware.wifi.passpoint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.passpoint.xml \
|
||||
|
||||
PRODUCT_COPY_FILES += \
|
||||
frameworks/native/data/etc/android.hardware.audio.low_latency.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.low_latency.xml \
|
||||
frameworks/native/data/etc/android.hardware.audio.pro.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.pro.xml \
|
||||
@@ -627,7 +380,6 @@ PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.use_content_detection_f
|
||||
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.max_frame_buffer_acquired_buffers=3
|
||||
|
||||
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.supports_background_blur=1
|
||||
PRODUCT_SYSTEM_PROPERTIES += ro.launcher.blur.appLaunch=0
|
||||
|
||||
# Must align with HAL types Dataspace
|
||||
# The data space of wide color gamut composition preference is Dataspace::DISPLAY_P3
|
||||
@@ -642,18 +394,10 @@ PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.display_update_imminent
|
||||
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
persist.sys.sf.native_mode=2
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/gs201/display/display_colordata_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_colordata_cal0.pb
|
||||
|
||||
# limit DPP downscale ratio
|
||||
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.hwc.dpp.downscale=2
|
||||
|
||||
# Cannot reference variables defined in BoardConfig.mk, uncomment this if
|
||||
# BOARD_USES_EXYNOS_DSS_FEATURE is true
|
||||
## set the dss enable status setup
|
||||
#PRODUCT_PROPERTY_OVERRIDES += \
|
||||
# ro.exynos.dss=1
|
||||
|
||||
# Cannot reference variables defined in BoardConfig.mk, uncomment this if
|
||||
# BOARD_USES_EXYNOS_AFBC_FEATURE is true
|
||||
# set the dss enable status setup
|
||||
@@ -666,44 +410,21 @@ else
|
||||
PRODUCT_CHARACTERISTICS := nosdcard
|
||||
endif
|
||||
|
||||
# WIFI COEX
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/gs201/wifi/coex_table.xml:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/coex_table.xml
|
||||
|
||||
PRODUCT_PACKAGES += hostapd
|
||||
PRODUCT_PACKAGES += wpa_supplicant
|
||||
PRODUCT_PACKAGES += wpa_supplicant.conf
|
||||
|
||||
WIFI_PRIV_CMD_UPDATE_MBO_CELL_STATUS := enabled
|
||||
|
||||
####################################
|
||||
## VIDEO
|
||||
####################################
|
||||
|
||||
$(call soong_config_set,bigo,soc,gs201)
|
||||
|
||||
# 1. Codec 2.0
|
||||
# for settings used by different C2 hal
|
||||
include device/google/gs-common/mediacodec/common/mediacodec_common.mk
|
||||
# for Exynos C2 Hal
|
||||
include device/google/gs-common/mediacodec/samsung/mediacodec_samsung.mk
|
||||
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/gs201/media_codecs_performance_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance_c2.xml \
|
||||
|
||||
# Video
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
debug.c2.use_dmabufheaps=1 \
|
||||
media.c2.dmabuf.padding=512 \
|
||||
debug.stagefright.ccodec_delayed_params=1 \
|
||||
ro.vendor.gpu.dataspace=1
|
||||
|
||||
ifneq ($(BOARD_USE_CODEC2_AIDL), )
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
debug.stagefright.c2-poolmask=1507328
|
||||
else
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
debug.stagefright.c2-poolmask=458752
|
||||
endif
|
||||
|
||||
# Create input surface on the framework side
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
@@ -711,54 +432,15 @@ PRODUCT_PROPERTY_OVERRIDES += \
|
||||
|
||||
PRODUCT_PROPERTY_OVERRIDES += media.c2.hal.selection=aidl
|
||||
|
||||
# 2. OpenMAX IL
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/gs201/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \
|
||||
device/google/gs201/media_codecs_performance.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance.xml
|
||||
####################################
|
||||
|
||||
# Telephony
|
||||
#PRODUCT_COPY_FILES += \
|
||||
frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_telephony.xml
|
||||
|
||||
# CBD (CP booting deamon)
|
||||
CBD_USE_V2 := true
|
||||
CBD_PROTOCOL_SIT := true
|
||||
|
||||
# setup dalvik vm configs.
|
||||
$(call inherit-product, frameworks/native/build/phone-xhdpi-6144-dalvik-heap.mk)
|
||||
|
||||
PRODUCT_TAGS += dalvik.gc.type-precise
|
||||
|
||||
# Exynos OpenVX framework
|
||||
PRODUCT_PACKAGES += \
|
||||
libexynosvision
|
||||
|
||||
ifeq ($(TARGET_USES_CL_KERNEL),true)
|
||||
PRODUCT_PACKAGES += \
|
||||
libopenvx-opencl
|
||||
endif
|
||||
|
||||
# Trusty (KM, GK, Storage)
|
||||
$(call inherit-product, system/core/trusty/trusty-storage.mk)
|
||||
$(call inherit-product, system/core/trusty/trusty-base.mk)
|
||||
|
||||
# Trusty dump
|
||||
include device/google/gs-common/trusty/trusty.mk
|
||||
|
||||
# Trusty Secure DPU Daemon
|
||||
PRODUCT_PACKAGES += \
|
||||
securedpud.slider
|
||||
|
||||
# Trusty Metrics Daemon
|
||||
PRODUCT_PACKAGES += \
|
||||
trusty_metricsd
|
||||
|
||||
$(call soong_config_set,google_displaycolor,displaycolor_platform,gs201)
|
||||
PRODUCT_PACKAGES += \
|
||||
android.hardware.composer.hwc3-service.pixel \
|
||||
libdisplaycolor
|
||||
|
||||
# Storage: for factory reset protection feature
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.frp.pst=/dev/block/by-name/frp
|
||||
@@ -768,10 +450,6 @@ PRODUCT_PRODUCT_PROPERTIES += \
|
||||
persist.bluetooth.bqr.event_mask?=30 \
|
||||
persist.bluetooth.bqr.min_interval_ms=500
|
||||
|
||||
#VNDK
|
||||
PRODUCT_PACKAGES += \
|
||||
vndk-libs
|
||||
|
||||
PRODUCT_ENFORCE_RRO_TARGETS := \
|
||||
framework-res
|
||||
|
||||
@@ -802,44 +480,7 @@ PRODUCT_PACKAGES += \
|
||||
PRODUCT_PACKAGES += \
|
||||
Iwlan
|
||||
|
||||
PRODUCT_PACKAGES += \
|
||||
whitelist \
|
||||
libstagefright_hdcp \
|
||||
libskia_opt
|
||||
|
||||
#PRODUCT_PACKAGES += \
|
||||
mfc_fw.bin \
|
||||
calliope_sram.bin \
|
||||
calliope_dram.bin \
|
||||
calliope_iva.bin \
|
||||
vts.bin
|
||||
|
||||
ifneq ($(BOARD_WITHOUT_RADIO),true)
|
||||
PRODUCT_PACKAGES += ShannonIms
|
||||
|
||||
PRODUCT_PACKAGES += ShannonRcs
|
||||
endif
|
||||
|
||||
# Exynos RIL and telephony
|
||||
# Multi SIM(DSDS)
|
||||
SIM_COUNT := 2
|
||||
$(call soong_config_set,sim,sim_count,$(SIM_COUNT))
|
||||
SUPPORT_MULTI_SIM := true
|
||||
# Support NR
|
||||
SUPPORT_NR := true
|
||||
# Support 5G on both stacks
|
||||
SUPPORT_NR_DS := true
|
||||
# Using IRadio 2.0
|
||||
USE_RADIO_HAL_2_0 := true
|
||||
# Support SecureElement HAL for HIDL
|
||||
USE_SE_HIDL := true
|
||||
# Using Early Send Device Info
|
||||
USE_EARLY_SEND_DEVICE_INFO := true
|
||||
|
||||
ifneq ($(BOARD_WITHOUT_RADIO),true)
|
||||
# modem logging binary/configs
|
||||
PRODUCT_PACKAGES += modem_logging_control
|
||||
|
||||
# CP Logging properties
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.vendor.sys.modem.logging.loc = /data/vendor/slog \
|
||||
@@ -856,50 +497,46 @@ PRODUCT_PROPERTY_OVERRIDES += \
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
persist.vendor.radio.multisim_switch_support=true
|
||||
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/$(TARGET_BOARD_PLATFORM)/conf/init.modem.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.modem.rc \
|
||||
device/google/$(TARGET_BOARD_PLATFORM)/conf/fstab.modem:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.modem \
|
||||
device/google/gs201/location/gps.cer:$(TARGET_COPY_OUT_VENDOR)/etc/gnss/gps.cer
|
||||
|
||||
|
||||
include device/google/gs-common/gps/brcm/device.mk
|
||||
PRODUCT_PACKAGES += \
|
||||
android.hardware.location.gps.prebuilt.xml
|
||||
endif
|
||||
|
||||
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit_only.mk)
|
||||
|
||||
include device/google/gs-common/sensors/sensors.mk
|
||||
$(call soong_config_set,usf,target_soc,gs201)
|
||||
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/gs201/default-permissions.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/default-permissions/default-permissions.xml \
|
||||
device/google/gs201/component-overrides.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sysconfig/component-overrides.xml
|
||||
|
||||
# modem logging configs
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/$(TARGET_BOARD_PLATFORM)/radio/config/logging.conf:$(TARGET_COPY_OUT_VENDOR)/etc/modem/logging.conf \
|
||||
device/google/$(TARGET_BOARD_PLATFORM)/radio/config/default.cfg:$(TARGET_COPY_OUT_VENDOR)/etc/modem/default.cfg \
|
||||
device/google/$(TARGET_BOARD_PLATFORM)/radio/config/default.nprf:$(TARGET_COPY_OUT_VENDOR)/etc/modem/default.nprf \
|
||||
device/google/$(TARGET_BOARD_PLATFORM)/radio/config/default_metrics.xml:$(TARGET_COPY_OUT_VENDOR)/etc/modem/default_metrics.xml \
|
||||
device/google/$(TARGET_BOARD_PLATFORM)/radio/config/Pixel_Default_metrics.xml:$(TARGET_COPY_OUT_VENDOR)/etc/modem/Pixel_Default_metrics.xml \
|
||||
device/google/$(TARGET_BOARD_PLATFORM)/radio/config/Pixel_stability.cfg:$(TARGET_COPY_OUT_VENDOR)/etc/modem/Pixel_stability.cfg \
|
||||
device/google/$(TARGET_BOARD_PLATFORM)/radio/config/Pixel_stability.nprf:$(TARGET_COPY_OUT_VENDOR)/etc/modem/Pixel_stability.nprf \
|
||||
|
||||
PRODUCT_PACKAGES += \
|
||||
android.hardware.health-service.gs201 \
|
||||
android.hardware.health-service.gs201_recovery \
|
||||
|
||||
# Audio
|
||||
# Audio HAL configurations
|
||||
PRODUCT_COPY_FILES += \
|
||||
frameworks/av/services/audiopolicy/config/a2dp_audio_policy_configuration_7_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_audio_policy_configuration_7_0.xml \
|
||||
frameworks/av/services/audiopolicy/config/a2dp_in_audio_policy_configuration_7_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_in_audio_policy_configuration_7_0.xml \
|
||||
frameworks/av/services/audiopolicy/config/hearing_aid_audio_policy_configuration_7_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/hearing_aid_audio_policy_configuration_7_0.xml \
|
||||
frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
|
||||
frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml \
|
||||
frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml
|
||||
|
||||
# Audio HAL Server & Default Implementations
|
||||
include device/google/gs-common/audio/hidl_gs201.mk
|
||||
PRODUCT_PACKAGES += \
|
||||
android.hardware.audio.service \
|
||||
android.hardware.audio@7.1-impl \
|
||||
android.hardware.audio.effect@7.0-impl \
|
||||
android.hardware.soundtrigger@2.3-impl \
|
||||
android.hardware.bluetooth.audio-impl
|
||||
|
||||
## AoC soong
|
||||
$(call soong_config_set,aoc,target_soc,$(TARGET_BOARD_PLATFORM))
|
||||
$(call soong_config_set,aoc,target_product,$(TARGET_PRODUCT))
|
||||
# Audio HAL libraries
|
||||
PRODUCT_PACKAGES += \
|
||||
audio.usb.default \
|
||||
audio.usbv2.default \
|
||||
audio.bluetooth.default \
|
||||
audio.r_submix.default
|
||||
|
||||
#
|
||||
## Audio properties
|
||||
ifneq (,$(filter $(TANGOR_PRODUCT), $(TARGET_PRODUCT)))
|
||||
ifneq (,$(filter %tangorpro, $(TARGET_PRODUCT)))
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.config.vc_call_vol_steps=7 \
|
||||
ro.config.media_vol_steps=20 \
|
||||
@@ -918,32 +555,19 @@ endif
|
||||
PRODUCT_PACKAGES += vndservicemanager
|
||||
PRODUCT_PACKAGES += vndservice
|
||||
|
||||
PRODUCT_PACKAGES += \
|
||||
google.hardware.media.c2@1.0-service \
|
||||
libgc2_store \
|
||||
libgc2_base \
|
||||
libgc2_av1_dec \
|
||||
libbo_av1 \
|
||||
libgc2_cwl \
|
||||
libgc2_utils
|
||||
|
||||
## Start packet router
|
||||
include device/google/gs-common/telephony/pktrouter.mk
|
||||
PRODUCT_PROPERTY_OVERRIDES += vendor.pktrouter=1
|
||||
|
||||
# Thermal HAL
|
||||
PRODUCT_PROPERTY_OVERRIDES += persist.vendor.enable.thermal.genl=true
|
||||
|
||||
# EdgeTPU
|
||||
include device/google/gs-common/edgetpu/edgetpu.mk
|
||||
# Config variables for TPU chip on device.
|
||||
$(call soong_config_set,edgetpu_config,chip,janeiro)
|
||||
# Tflite Darwinn delegate property
|
||||
PRODUCT_VENDOR_PROPERTIES += vendor.edgetpu.tflite_delegate.force_disable_io_coherency=0
|
||||
|
||||
# TPU firmware
|
||||
PRODUCT_PACKAGES += edgetpu-janeiro.fw
|
||||
|
||||
# Connectivity Thermal Power Manager
|
||||
PRODUCT_PACKAGES += \
|
||||
ConnectivityThermalPowerManager
|
||||
# Edgetpu CPU scheduler property
|
||||
PRODUCT_VENDOR_PROPERTIES += vendor.edgetpu.cpu_scheduler.policy=FIFO
|
||||
PRODUCT_VENDOR_PROPERTIES += vendor.edgetpu.cpu_scheduler.priority=99
|
||||
|
||||
# A/B support
|
||||
PRODUCT_PACKAGES += \
|
||||
@@ -956,6 +580,8 @@ PRODUCT_PACKAGES += \
|
||||
# pKVM
|
||||
$(call inherit-product, packages/modules/Virtualization/apex/product_packages.mk)
|
||||
PRODUCT_BUILD_PVMFW_IMAGE := true
|
||||
# Set the environment variable to enable the Secretkeeper HAL service.
|
||||
SECRETKEEPER_ENABLED := true
|
||||
|
||||
# Enable to build standalone vendor_kernel_boot image.
|
||||
PRODUCT_BUILD_VENDOR_KERNEL_BOOT_IMAGE := true
|
||||
@@ -982,22 +608,9 @@ PRODUCT_PROPERTY_OVERRIDES += \
|
||||
# Project
|
||||
include hardware/google/pixel/common/pixel-common-device.mk
|
||||
|
||||
# Pixel Logger
|
||||
include hardware/google/pixel/PixelLogger/PixelLogger.mk
|
||||
|
||||
# RadioExt Version
|
||||
USES_RADIOEXT_V1_5 = true
|
||||
|
||||
# Wifi ext
|
||||
include hardware/google/pixel/wifi_ext/device.mk
|
||||
|
||||
include device/google/gs201/dumpstate/item.mk
|
||||
|
||||
# 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/gs201/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 \
|
||||
@@ -1009,16 +622,53 @@ PRODUCT_VENDOR_PROPERTIES += ro.crypto.metadata_init_delete_all_keys.enabled?=tr
|
||||
# Hardware Info
|
||||
include hardware/google/pixel/HardwareInfo/HardwareInfo.mk
|
||||
|
||||
# UFS: the script is used to select the corresponding firmware to run FFU.
|
||||
PRODUCT_PACKAGES += ufs_firmware_update.sh
|
||||
|
||||
# Touch service
|
||||
include device/google/gs-common/touch/twoshay/aidl_gs101.mk
|
||||
include device/google/gs-common/touch/twoshay/twoshay.mk
|
||||
|
||||
|
||||
# Allow longer timeout for incident report generation in bugreport
|
||||
# Overriding in /product partition instead of /vendor intentionally,
|
||||
# since it can't be overridden from /vendor.
|
||||
PRODUCT_PRODUCT_PROPERTIES += \
|
||||
dumpstate.strict_run=false
|
||||
|
||||
# AiAi Config
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/gs201/allowlist_com.google.android.as.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/sysconfig/allowlist_com.google.android.as.xml
|
||||
|
||||
# Camera
|
||||
PRODUCT_PRODUCT_PROPERTIES += \
|
||||
ro.vendor.camera.extensions.package=com.google.android.apps.camera.services \
|
||||
ro.vendor.camera.extensions.service=com.google.android.apps.camera.services.extensions.service.PixelExtensions
|
||||
|
||||
# Lineage Health
|
||||
include hardware/google/pixel/lineage_health/device.mk
|
||||
|
||||
$(call soong_config_set_bool,lineage_health,charging_control_supports_deadline,true)
|
||||
$(call soong_config_set_bool,lineage_health,charging_control_supports_limit,true)
|
||||
$(call soong_config_set_bool,lineage_health,charging_control_supports_toggle,false)
|
||||
|
||||
# Linker config
|
||||
PRODUCT_VENDOR_LINKER_CONFIG_FRAGMENTS += \
|
||||
device/google/gs201/linker.config.json
|
||||
|
||||
# Parts
|
||||
PRODUCT_PACKAGES += \
|
||||
GoogleParts
|
||||
|
||||
# Properties
|
||||
TARGET_PRODUCT_PROP += device/google/gs201/product.prop
|
||||
TARGET_SYSTEM_PROP += device/google/gs201/system.prop
|
||||
|
||||
# Tethering
|
||||
PRODUCT_PACKAGES += \
|
||||
TetheringOverlay
|
||||
|
||||
# Touch
|
||||
include hardware/google/pixel/touch/device.mk
|
||||
|
||||
# VINTF
|
||||
DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE += \
|
||||
device/google/gs201/vintf/vendor_framework_compatibility_matrix.xml
|
||||
DEVICE_MANIFEST_FILE += \
|
||||
device/google/gs201/vintf/manifest.xml
|
||||
DEVICE_MATRIX_FILE += \
|
||||
device/google/gs201/vintf/compatibility_matrix.xml
|
||||
DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += \
|
||||
device/google/gs201/vintf/device_framework_matrix_product.xml
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
#!/vendor/bin/sh
|
||||
|
||||
max77759tcpc_path=/sys/devices/platform/10d60000.hsi2c/i2c-13/13-0025
|
||||
if [ -d $max77759tcpc_path ]; then
|
||||
echo 0 > $max77759tcpc_path/contaminant_detection;
|
||||
fi
|
||||
Binary file not shown.
@@ -1,20 +0,0 @@
|
||||
package {
|
||||
default_applicable_licenses: ["Android-Apache-2.0"],
|
||||
}
|
||||
|
||||
cc_binary {
|
||||
name: "dump_power",
|
||||
srcs: ["dump_power.cpp"],
|
||||
cflags: [
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
],
|
||||
shared_libs: [
|
||||
"libbase",
|
||||
"libdump",
|
||||
"libdumpstateutil",
|
||||
],
|
||||
vendor: true,
|
||||
relative_install_path: "dump",
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
Please refer to go/pixel-recycle to modularize your code in this space.
|
||||
@@ -1,819 +0,0 @@
|
||||
/*
|
||||
* Copyright 2023 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
#include <cstring>
|
||||
#include <dirent.h>
|
||||
#include <dump/pixel_dump.h>
|
||||
#include <fstream>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/sysinfo.h>
|
||||
#include <time.h>
|
||||
#include <vector>
|
||||
#include <android-base/file.h>
|
||||
#include <android-base/strings.h>
|
||||
#include "DumpstateUtil.h"
|
||||
void printTitle(const char *msg) {
|
||||
printf("\n------ %s ------\n", msg);
|
||||
}
|
||||
int getCommandOutput(const char *cmd, std::string *output) {
|
||||
char buffer[1024];
|
||||
FILE *pipe = popen(cmd, "r");
|
||||
if (!pipe) {
|
||||
return -1;
|
||||
}
|
||||
while (fgets(buffer, sizeof buffer, pipe) != NULL) {
|
||||
*output += buffer;
|
||||
}
|
||||
pclose(pipe);
|
||||
if (output->back() == '\n')
|
||||
output->pop_back();
|
||||
return 0;
|
||||
}
|
||||
bool isValidFile(const char *file) {
|
||||
FILE *fp = fopen(file, "r");
|
||||
if (fp != NULL) {
|
||||
fclose(fp);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
bool isValidDir(const char *directory) {
|
||||
DIR *dir = opendir(directory);
|
||||
if (dir == NULL)
|
||||
return false;
|
||||
|
||||
closedir(dir);
|
||||
return true;
|
||||
}
|
||||
bool isUserBuild() {
|
||||
return ::android::os::dumpstate::PropertiesHelper::IsUserBuild();
|
||||
}
|
||||
int getFilesInDir(const char *directory, std::vector<std::string> *files) {
|
||||
std::string content;
|
||||
struct dirent *entry;
|
||||
DIR *dir = opendir(directory);
|
||||
if (dir == NULL)
|
||||
return -1;
|
||||
files->clear();
|
||||
while ((entry = readdir(dir)) != NULL)
|
||||
files->push_back(entry->d_name);
|
||||
closedir(dir);
|
||||
sort(files->begin(), files->end());
|
||||
return 0;
|
||||
}
|
||||
void dumpPowerStatsTimes() {
|
||||
const char *title = "Power Stats Times";
|
||||
char rBuff[128];
|
||||
struct timespec rTs;
|
||||
struct sysinfo info;
|
||||
int ret;
|
||||
printTitle(title);
|
||||
sysinfo(&info);
|
||||
const time_t boottime = time(NULL) - info.uptime;
|
||||
ret = clock_gettime(CLOCK_REALTIME, &rTs);
|
||||
if (ret)
|
||||
return;
|
||||
struct tm *nowTime = std::localtime(&rTs.tv_sec);
|
||||
std::strftime(rBuff, sizeof(rBuff), "%m/%d/%Y %H:%M:%S", nowTime);
|
||||
printf("Boot: %s", ctime(&boottime));
|
||||
printf("Now: %s\n", rBuff);
|
||||
}
|
||||
int readContentsOfDir(const char* title, const char* directory, const char* strMatch,
|
||||
bool useStrMatch = false, bool printDirectory = false) {
|
||||
std::vector<std::string> files;
|
||||
std::string content;
|
||||
std::string fileLocation;
|
||||
int ret;
|
||||
ret = getFilesInDir(directory, &files);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
printTitle(title);
|
||||
for (auto &file : files) {
|
||||
if (useStrMatch && std::string::npos == std::string(file).find(strMatch)) {
|
||||
continue;
|
||||
}
|
||||
fileLocation = std::string(directory) + std::string(file);
|
||||
if (!android::base::ReadFileToString(fileLocation, &content)) {
|
||||
continue;
|
||||
}
|
||||
if (printDirectory) {
|
||||
printf("\n\n%s\n", fileLocation.c_str());
|
||||
}
|
||||
if (content.back() == '\n')
|
||||
content.pop_back();
|
||||
printf("%s\n", content.c_str());
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
void dumpAcpmStats() {
|
||||
const char* acpmDir = "/sys/devices/platform/acpm_stats/";
|
||||
const char* statsSubStr = "_stats";
|
||||
const char* acpmTitle = "ACPM stats";
|
||||
readContentsOfDir(acpmTitle, acpmDir, statsSubStr, true, true);
|
||||
}
|
||||
void dumpPowerSupplyStats() {
|
||||
const char* dumpList[][2] = {
|
||||
{"CPU PM stats", "/sys/devices/system/cpu/cpupm/cpupm/time_in_state"},
|
||||
{"Power supply property battery", "/sys/class/power_supply/battery/uevent"},
|
||||
{"Power supply property dc", "/sys/class/power_supply/dc/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 main-charger", "/sys/class/power_supply/main-charger/uevent"},
|
||||
{"Power supply property pca94xx-mains", "/sys/class/power_supply/pca94xx-mains/uevent"},
|
||||
{"Power supply property tcpm", "/sys/class/power_supply/tcpm-source-psy-i2c-max77759tcpc/uevent"},
|
||||
{"Power supply property usb", "/sys/class/power_supply/usb/uevent"},
|
||||
{"Power supply property wireless", "/sys/class/power_supply/wireless/uevent"},
|
||||
};
|
||||
for (const auto &row : dumpList) {
|
||||
dumpFileContent(row[0], row[1]);
|
||||
}
|
||||
}
|
||||
void dumpMaxFg() {
|
||||
const char *maxfgLoc = "/sys/class/power_supply/maxfg";
|
||||
const char *maxfgDualLoc = "/sys/class/power_supply/maxfg_base";
|
||||
const char *maxfg [][2] = {
|
||||
{"Power supply property maxfg", "/sys/class/power_supply/maxfg/uevent"},
|
||||
{"m5_state", "/sys/class/power_supply/maxfg/m5_model_state"},
|
||||
{"maxfg registers", "/sys/class/power_supply/maxfg/registers_dump"},
|
||||
{"maxfg logbuffer", "/dev/logbuffer_maxfg"},
|
||||
{"maxfg_monitor logbuffer", "/dev/logbuffer_maxfg_monitor"},
|
||||
};
|
||||
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"},
|
||||
{"m5_state", "/sys/class/power_supply/maxfg_base/m5_model_state"},
|
||||
{"maxfg_base logbuffer", "/dev/logbuffer_maxfg_base"},
|
||||
{"maxfg_secondary logbuffer", "/dev/logbuffer_maxfg_secondary"},
|
||||
{"maxfg_base logbuffer", "/dev/logbuffer_maxfg_base_monitor"},
|
||||
{"maxfg_secondary logbuffer", "/dev/logbuffer_maxfg_secondary_monitor"},
|
||||
{"dual_batt logbuffer", "/dev/logbuffer_dual_batt"},
|
||||
};
|
||||
const char *maxfgHistoryName = "Maxim FG History";
|
||||
const char *maxfgHistoryDir = "/dev/maxfg_history";
|
||||
std::string content;
|
||||
if (isValidDir(maxfgLoc)) {
|
||||
for (const auto &row : maxfg) {
|
||||
dumpFileContent(row[0], row[1]);
|
||||
}
|
||||
} else if (isValidDir(maxfgDualLoc)){
|
||||
for (const auto &row : maxfgDual) {
|
||||
dumpFileContent(row[0], row[1]);
|
||||
}
|
||||
if (isValidFile(maxfgHistoryDir)) {
|
||||
dumpFileContent(maxfgHistoryName, maxfgHistoryDir);
|
||||
}
|
||||
}
|
||||
}
|
||||
void dumpPowerSupplyDock() {
|
||||
const char* powerSupplyPropertyDockTitle = "Power supply property dock";
|
||||
const char* powerSupplyPropertyDockFile = "/sys/class/power_supply/dock/uevent";
|
||||
dumpFileContent(powerSupplyPropertyDockTitle, powerSupplyPropertyDockFile);
|
||||
}
|
||||
void dumpLogBufferTcpm() {
|
||||
const char* logbufferTcpmTitle = "Logbuffer TCPM";
|
||||
const char* logbufferTcpmFile = "/dev/logbuffer_tcpm";
|
||||
const char* debugTcpmFile = "/sys/kernel/debug/tcpm";
|
||||
const char* tcpmLogTitle = "TCPM logs";
|
||||
const char* tcpmFile = "/sys/kernel/debug/tcpm";
|
||||
const char* tcpmFileAlt = "/sys/kernel/debug/usb/tcpm";
|
||||
int retCode;
|
||||
dumpFileContent(logbufferTcpmTitle, logbufferTcpmFile);
|
||||
retCode = readContentsOfDir(tcpmLogTitle, isValidFile(debugTcpmFile) ? tcpmFile : tcpmFileAlt,
|
||||
NULL);
|
||||
if (retCode < 0)
|
||||
printTitle(tcpmLogTitle);
|
||||
}
|
||||
void dumpTcpc() {
|
||||
const char* max77759TcpcHead = "TCPC Device Attributes";
|
||||
const char* directory = "/sys/class/typec/port0/device";
|
||||
const char* max77759Tcpc [] {
|
||||
"auto_discharge",
|
||||
"bc12_enabled",
|
||||
"cc_toggle_enable",
|
||||
"contaminant_detection",
|
||||
"contaminant_detection_status",
|
||||
"frs",
|
||||
"irq_hpd_count",
|
||||
"manual_disable_vbus",
|
||||
"non_compliant_reasons",
|
||||
"sbu_pullup",
|
||||
"update_sdp_enum_timeout",
|
||||
"usb_limit_accessory_current",
|
||||
"usb_limit_accessory_enable",
|
||||
"usb_limit_sink_current",
|
||||
"usb_limit_sink_enable",
|
||||
"usb_limit_source_enable",
|
||||
};
|
||||
|
||||
std::string content;
|
||||
std::string tcpcRegistersPath(std::string(directory) + "/registers");
|
||||
|
||||
dumpFileContent("TCPC Registers", tcpcRegistersPath.c_str());
|
||||
|
||||
printTitle(max77759TcpcHead);
|
||||
|
||||
for (auto& tcpcVal : max77759Tcpc) {
|
||||
std::string filename = std::string(directory) + "/" + std::string(tcpcVal);
|
||||
printf("%s: ", tcpcVal);
|
||||
android::base::ReadFileToString(filename, &content);
|
||||
if (!content.empty() && (content.back() == '\n' || content.back() == '\r'))
|
||||
content.pop_back();
|
||||
printf("%s\n", content.c_str());
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
void dumpPdEngine() {
|
||||
const char* pdEngine [][3] {
|
||||
{"TCPC logbuffer", "/dev/logbuffer_usbpd"},
|
||||
{"pogo_transport logbuffer", "/dev/logbuffer_pogo_transport"},
|
||||
{"PPS-google_cpm logbuffer", "/dev/logbuffer_cpm"},
|
||||
{"PPS-pca9468 logbuffer", "/dev/logbuffer_pca9468"},
|
||||
};
|
||||
for (const auto &row : pdEngine) {
|
||||
dumpFileContent(row[0], row[1]);
|
||||
}
|
||||
}
|
||||
void dumpBatteryHealth() {
|
||||
const char* batteryHealth [][2] {
|
||||
{"Battery Health", "/sys/class/power_supply/battery/health_index_stats"},
|
||||
{"Battery Health SoC Residency", "/sys/class/power_supply/battery/swelling_data"},
|
||||
{"BMS", "/dev/logbuffer_ssoc"},
|
||||
{"TTF", "/dev/logbuffer_ttf"},
|
||||
{"TTF details", "/sys/class/power_supply/battery/ttf_details"},
|
||||
{"TTF stats", "/sys/class/power_supply/battery/ttf_stats"},
|
||||
{"aacr_state", "/sys/class/power_supply/battery/aacr_state"},
|
||||
{"maxq", "/dev/logbuffer_maxq"},
|
||||
{"TEMP/DOCK-DEFEND", "/dev/logbuffer_bd"},
|
||||
};
|
||||
for (const auto &row : batteryHealth) {
|
||||
dumpFileContent(row[0], row[1]);
|
||||
}
|
||||
}
|
||||
void dumpBatteryDefend() {
|
||||
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"},
|
||||
{"TEMP-DEFEND Config", "/sys/devices/platform/google,charger/", "bd_"},
|
||||
};
|
||||
std::vector<std::string> files;
|
||||
struct dirent *entry;
|
||||
std::string content;
|
||||
std::string fileLocation;
|
||||
for (auto &config : defendConfig) {
|
||||
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 dumpBatteryCaretaker() {
|
||||
const char* aacpConfig [][3] {
|
||||
{"AACP Version",
|
||||
"/sys/devices/platform/google,battery/power_supply/battery/", "aacp_"},
|
||||
{"AACR Config",
|
||||
"/sys/devices/platform/google,battery/power_supply/battery/", "aacr_"},
|
||||
{"AAFV Config",
|
||||
"/sys/devices/platform/google,battery/power_supply/battery/", "aafv_"},
|
||||
{"AACT Config",
|
||||
"/sys/devices/platform/google,battery/power_supply/battery/", "aact_"},
|
||||
{"AACC",
|
||||
"/sys/devices/platform/google,battery/power_supply/battery/", "aacc"},
|
||||
};
|
||||
std::vector<std::string> files;
|
||||
struct dirent *entry;
|
||||
std::string content;
|
||||
std::string fileLocation;
|
||||
for (auto &config : aacpConfig) {
|
||||
DIR *dir = opendir(config[1]);
|
||||
if (dir == NULL)
|
||||
continue;
|
||||
printTitle(config[0]);
|
||||
while ((entry = readdir(dir)) != NULL) {
|
||||
if (std::string(entry->d_name).find(config[2]) != std::string::npos &&
|
||||
strncmp(config[2], entry->d_name, strlen(config[2])) == 0) {
|
||||
files.push_back(entry->d_name);
|
||||
}
|
||||
}
|
||||
closedir(dir);
|
||||
sort(files.begin(), files.end());
|
||||
for (auto &file : files) {
|
||||
fileLocation = std::string(config[1]) + std::string(file);
|
||||
if (!android::base::ReadFileToString(fileLocation, &content) || content.empty()) {
|
||||
content = "\n";
|
||||
}
|
||||
printf("%s: %s", file.c_str(), content.c_str());
|
||||
if (content.back() != '\n')
|
||||
printf("\n");
|
||||
}
|
||||
files.clear();
|
||||
}
|
||||
}
|
||||
void printValuesOfDirectory(const char *directory, std::string debugfs, const char *strMatch) {
|
||||
std::vector<std::string> files;
|
||||
auto info = directory;
|
||||
std::string content;
|
||||
struct dirent *entry;
|
||||
DIR *dir = opendir(debugfs.c_str());
|
||||
if (dir == NULL)
|
||||
return;
|
||||
|
||||
printTitle((debugfs + std::string(strMatch) + "/" + std::string(info)).c_str());
|
||||
while ((entry = readdir(dir)) != NULL)
|
||||
if (std::string(entry->d_name).find(strMatch) != std::string::npos)
|
||||
files.push_back(entry->d_name);
|
||||
closedir(dir);
|
||||
|
||||
sort(files.begin(), files.end());
|
||||
|
||||
for (auto &file : files) {
|
||||
std::string fileDirectory = debugfs + file;
|
||||
std::string fileLocation = fileDirectory + "/" + std::string(info);
|
||||
if (!android::base::ReadFileToString(fileLocation, &content)) {
|
||||
content = "\n";
|
||||
}
|
||||
|
||||
printf("%s:\n%s", fileDirectory.c_str(), content.c_str());
|
||||
|
||||
if (content.back() != '\n')
|
||||
printf("\n");
|
||||
}
|
||||
files.clear();
|
||||
}
|
||||
void dumpChg() {
|
||||
const std::string pmic_bus = "/sys/devices/platform/10d60000.hsi2c/i2c-13/13-0066";
|
||||
const char* chg_reg_dump_file = "/sys/class/power_supply/main-charger/device/registers_dump";
|
||||
const std::string chg_name_cmd = "/sys/class/power_supply/main-charger/device/name";
|
||||
const std::string pmic_name_cmd = pmic_bus + "/name";
|
||||
const std::string pmic_reg_dump_file = pmic_bus + "/registers_dump";
|
||||
const std::string reg_dump_str = " registers dump";
|
||||
const char* chgConfig [][2] {
|
||||
{"DC_registers dump", "/sys/class/power_supply/pca94xx-mains/device/registers_dump"},
|
||||
};
|
||||
std::string chg_name;
|
||||
std::string pmic_name;
|
||||
|
||||
printf("\n");
|
||||
|
||||
int ret = android::base::ReadFileToString(chg_name_cmd, &chg_name);
|
||||
if (ret && !chg_name.empty()) {
|
||||
chg_name.erase(chg_name.length() - 1); // remove new line
|
||||
const std::string chg_reg_dump_title = chg_name + reg_dump_str;
|
||||
|
||||
/* CHG reg dump */
|
||||
dumpFileContent(chg_reg_dump_title.c_str(), chg_reg_dump_file);
|
||||
}
|
||||
|
||||
ret = android::base::ReadFileToString(pmic_name_cmd, &pmic_name);
|
||||
if (ret && !pmic_name.empty()) {
|
||||
pmic_name.erase(pmic_name.length() - 1); // remove new line
|
||||
const std::string pmic_reg_dump_title = pmic_name + reg_dump_str;
|
||||
|
||||
/* PMIC reg dump */
|
||||
dumpFileContent(pmic_reg_dump_title.c_str(), pmic_reg_dump_file.c_str());
|
||||
}
|
||||
|
||||
for (auto &config : chgConfig) {
|
||||
dumpFileContent(config[0], config[1]);
|
||||
}
|
||||
}
|
||||
void dumpChgUserDebug() {
|
||||
const std::string debugfs = "/d/";
|
||||
const char *maxFgDir = "/d/maxfg";
|
||||
const char *maxFgStrMatch = "maxfg";
|
||||
const char *maxBaseFgDir = "/d/maxfg_base";
|
||||
const char *maxBaseFgStrMatch = "maxfg_base";
|
||||
const char *chgTblName = "Charging table dump";
|
||||
const char *chgTblDir = "/d/google_battery/chg_raw_profile";
|
||||
|
||||
const char *maxFgInfo [] {
|
||||
"fg_model",
|
||||
"algo_ver",
|
||||
"model_ok",
|
||||
};
|
||||
|
||||
if (isUserBuild())
|
||||
return;
|
||||
|
||||
dumpFileContent(chgTblName, chgTblDir);
|
||||
|
||||
if (isValidDir(maxFgDir)) {
|
||||
for (auto & directory : maxFgInfo) {
|
||||
printValuesOfDirectory(directory, debugfs, maxFgStrMatch);
|
||||
}
|
||||
} else if (isValidDir(maxBaseFgDir)) {
|
||||
for (auto & directory : maxFgInfo) {
|
||||
printValuesOfDirectory(directory, debugfs, maxBaseFgStrMatch);
|
||||
}
|
||||
}
|
||||
}
|
||||
void dumpBatteryEeprom() {
|
||||
const char *title = "Battery EEPROM";
|
||||
const char *files[] {
|
||||
"/sys/devices/platform/10da0000.hsi2c/i2c-15/15-0050/eeprom",
|
||||
};
|
||||
std::string result;
|
||||
std::string xxdCmd;
|
||||
printTitle(title);
|
||||
for (auto &file : files) {
|
||||
if (!isValidFile(file))
|
||||
continue;
|
||||
xxdCmd = "xxd " + std::string(file);
|
||||
int ret = getCommandOutput(xxdCmd.c_str(), &result);
|
||||
if (ret < 0)
|
||||
return;
|
||||
printf("%s\n", result.c_str());
|
||||
}
|
||||
}
|
||||
void dumpChargerStats() {
|
||||
const char *chgStatsTitle = "Charger Stats";
|
||||
const char *chgStatsLocation = "/sys/class/power_supply/battery/charge_details";
|
||||
const char *chargerStats [][3] {
|
||||
{"Google Charger", "/sys/kernel/debug/google_charger/", "pps_"},
|
||||
{"Google Battery", "/sys/kernel/debug/google_battery/", "ssoc_"},
|
||||
};
|
||||
std::vector<std::string> files;
|
||||
std::string content;
|
||||
struct dirent *entry;
|
||||
dumpFileContent(chgStatsTitle, chgStatsLocation);
|
||||
if (isUserBuild())
|
||||
return;
|
||||
for (auto &stat : chargerStats) {
|
||||
DIR *dir = opendir(stat[1]);
|
||||
if (dir == NULL)
|
||||
return;
|
||||
printTitle(stat[0]);
|
||||
while ((entry = readdir(dir)) != NULL)
|
||||
if (std::string(entry->d_name).find(stat[2]) != std::string::npos)
|
||||
files.push_back(entry->d_name);
|
||||
closedir(dir);
|
||||
sort(files.begin(), files.end());
|
||||
for (auto &file : files) {
|
||||
std::string fileLocation = std::string(stat[1]) + file;
|
||||
if (!android::base::ReadFileToString(fileLocation, &content)) {
|
||||
content = "\n";
|
||||
}
|
||||
printf("%s: %s", file.c_str(), content.c_str());
|
||||
if (content.back() != '\n')
|
||||
printf("\n");
|
||||
}
|
||||
files.clear();
|
||||
}
|
||||
}
|
||||
void dumpWlcLogs() {
|
||||
const char *dumpWlcList [][2] {
|
||||
{"WLC Logs", "/dev/logbuffer_wireless"},
|
||||
{"WLC VER", "/sys/class/power_supply/wireless/device/version"},
|
||||
{"WLC STATUS", "/sys/class/power_supply/wireless/device/status"},
|
||||
{"WLC FW Version", "/sys/class/power_supply/wireless/device/fw_rev"},
|
||||
{"RTX", "/dev/logbuffer_rtx"},
|
||||
};
|
||||
for (auto &row : dumpWlcList) {
|
||||
if (!isValidFile(row[1]))
|
||||
printTitle(row[0]);
|
||||
dumpFileContent(row[0], row[1]);
|
||||
}
|
||||
}
|
||||
void dumpGvoteables() {
|
||||
const char *directory = "/sys/kernel/debug/gvotables/";
|
||||
const char *statusName = "/status";
|
||||
const char *title = "gvotables";
|
||||
std::string content;
|
||||
std::vector<std::string> files;
|
||||
int ret;
|
||||
if (isUserBuild())
|
||||
return;
|
||||
ret = getFilesInDir(directory, &files);
|
||||
if (ret < 0)
|
||||
return;
|
||||
printTitle(title);
|
||||
for (auto &file : files) {
|
||||
std::string fileLocation = std::string(directory) + file + std::string(statusName);
|
||||
if (!android::base::ReadFileToString(fileLocation, &content)) {
|
||||
continue;
|
||||
}
|
||||
printf("%s: %s", file.c_str(), content.c_str());
|
||||
if (content.back() != '\n')
|
||||
printf("\n");
|
||||
}
|
||||
files.clear();
|
||||
}
|
||||
void dumpMitigation() {
|
||||
const char *mitigationList [][2] {
|
||||
{"Lastmeal" , "/data/vendor/mitigation/lastmeal.txt"},
|
||||
{"Thismeal" , "/data/vendor/mitigation/thismeal.txt"},
|
||||
};
|
||||
for (auto &row : mitigationList) {
|
||||
if (!isValidFile(row[1]))
|
||||
printTitle(row[0]);
|
||||
dumpFileContent(row[0], row[1]);
|
||||
}
|
||||
}
|
||||
void dumpMitigationStats() {
|
||||
int ret;
|
||||
const char *directory = "/sys/devices/virtual/pmic/mitigation/last_triggered_count/";
|
||||
const char *capacityDirectory = "/sys/devices/virtual/pmic/mitigation/last_triggered_capacity/";
|
||||
const char *timestampDirectory =
|
||||
"/sys/devices/virtual/pmic/mitigation/last_triggered_timestamp/";
|
||||
const char *voltageDirectory = "/sys/devices/virtual/pmic/mitigation/last_triggered_voltage/";
|
||||
const char *capacitySuffix = "_cap";
|
||||
const char *timeSuffix = "_time";
|
||||
const char *voltageSuffix = "_volt";
|
||||
const char *countSuffix = "_count";
|
||||
const char *title = "Mitigation Stats";
|
||||
std::vector<std::string> files;
|
||||
std::string content;
|
||||
std::string fileLocation;
|
||||
std::string source;
|
||||
std::string subModuleName;
|
||||
int count;
|
||||
int soc;
|
||||
int time;
|
||||
int voltage;
|
||||
ret = getFilesInDir(directory, &files);
|
||||
if (ret < 0)
|
||||
return;
|
||||
printTitle(title);
|
||||
printf("Source\t\tCount\tSOC\tTime\tVoltage\n");
|
||||
for (auto &file : files) {
|
||||
fileLocation = std::string(directory) + std::string(file);
|
||||
if (!android::base::ReadFileToString(fileLocation, &content)) {
|
||||
continue;
|
||||
}
|
||||
ret = atoi(android::base::Trim(content).c_str());
|
||||
if (ret == -1)
|
||||
continue;
|
||||
count = ret;
|
||||
subModuleName = std::string(file);
|
||||
subModuleName.erase(subModuleName.find(countSuffix), strlen(countSuffix));
|
||||
fileLocation = std::string(capacityDirectory) + std::string(subModuleName) +
|
||||
std::string(capacitySuffix);
|
||||
if (!android::base::ReadFileToString(fileLocation, &content)) {
|
||||
continue;
|
||||
}
|
||||
ret = atoi(android::base::Trim(content).c_str());
|
||||
if (ret == -1)
|
||||
continue;
|
||||
soc = ret;
|
||||
fileLocation = std::string(timestampDirectory) + std::string(subModuleName) +
|
||||
std::string(timeSuffix);
|
||||
if (!android::base::ReadFileToString(fileLocation, &content)) {
|
||||
continue;
|
||||
}
|
||||
ret = atoi(android::base::Trim(content).c_str());
|
||||
if (ret == -1)
|
||||
continue;
|
||||
time = ret;
|
||||
fileLocation = std::string(voltageDirectory) + std::string(subModuleName) +
|
||||
std::string(voltageSuffix);
|
||||
if (!android::base::ReadFileToString(fileLocation, &content)) {
|
||||
continue;
|
||||
}
|
||||
ret = atoi(android::base::Trim(content).c_str());
|
||||
if (ret == -1)
|
||||
continue;
|
||||
voltage = ret;
|
||||
printf("%s \t%i\t%i\t%i\t%i\n", subModuleName.c_str(), count, soc, time, voltage);
|
||||
}
|
||||
}
|
||||
void dumpMitigationDirs() {
|
||||
const int paramCount = 4;
|
||||
const char *titles[] = {
|
||||
"Clock Divider Ratio",
|
||||
"Clock Stats",
|
||||
"Triggered Level",
|
||||
"Instruction",
|
||||
};
|
||||
const char *directories[] = {
|
||||
"/sys/devices/virtual/pmic/mitigation/clock_ratio/",
|
||||
"/sys/devices/virtual/pmic/mitigation/clock_stats/",
|
||||
"/sys/devices/virtual/pmic/mitigation/triggered_lvl/",
|
||||
"/sys/devices/virtual/pmic/mitigation/instruction/",
|
||||
};
|
||||
const char *paramSuffix[] = {"_ratio", "_stats", "_lvl", ""};
|
||||
const char *titleRowVal[] = {
|
||||
"Source\t\tRatio",
|
||||
"Source\t\tStats",
|
||||
"Source\t\tLevel",
|
||||
"",
|
||||
};
|
||||
const int eraseCnt[] = {6, 6, 4, 0};
|
||||
const bool useTitleRow[] = {true, true, true, false};
|
||||
std::vector<std::string> files;
|
||||
std::string content;
|
||||
std::string fileLocation;
|
||||
std::string source;
|
||||
std::string subModuleName;
|
||||
std::string readout;
|
||||
for (int i = 0; i < paramCount; i++) {
|
||||
printTitle(titles[i]);
|
||||
if (useTitleRow[i]) {
|
||||
printf("%s\n", titleRowVal[i]);
|
||||
}
|
||||
getFilesInDir(directories[i], &files);
|
||||
for (auto &file : files) {
|
||||
fileLocation = std::string(directories[i]) + std::string(file);
|
||||
if (!android::base::ReadFileToString(fileLocation, &content)) {
|
||||
continue;
|
||||
}
|
||||
readout = android::base::Trim(content);
|
||||
subModuleName = std::string(file);
|
||||
subModuleName.erase(subModuleName.find(paramSuffix[i]), eraseCnt[i]);
|
||||
if (useTitleRow[i]) {
|
||||
printf("%s \t%s\n", subModuleName.c_str(), readout.c_str());
|
||||
} else {
|
||||
printf("%s=%s\n", subModuleName.c_str(), readout.c_str());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
void dumpIrqDurationCounts() {
|
||||
const char *title = "IRQ Duration Counts";
|
||||
const char *colNames = "Source\t\t\t\tlt_5ms_cnt\tbt_5ms_to_10ms_cnt\tgt_10ms_cnt\tCode"
|
||||
"\tCurrent Threshold (uA)\tCurrent Reading (uA)\n";
|
||||
const int nonOdpmChannelCnt = 9;
|
||||
const int odpmChCnt = 12;
|
||||
enum Duration {
|
||||
LT_5MS,
|
||||
BT_5MS_10MS,
|
||||
GT_10MS,
|
||||
DUR_MAX,
|
||||
};
|
||||
const char *irqDurDirectories[] = {
|
||||
"/sys/devices/virtual/pmic/mitigation/irq_dur_cnt/less_than_5ms_count",
|
||||
"/sys/devices/virtual/pmic/mitigation/irq_dur_cnt/between_5ms_to_10ms_count",
|
||||
"/sys/devices/virtual/pmic/mitigation/irq_dur_cnt/greater_than_10ms_count",
|
||||
};
|
||||
enum PowerWarn {
|
||||
MAIN,
|
||||
SUB,
|
||||
PWRWARN_MAX,
|
||||
};
|
||||
const char *pwrwarnDirectories[] = {
|
||||
"/sys/devices/virtual/pmic/mitigation/main_pwrwarn/",
|
||||
"/sys/devices/virtual/pmic/mitigation/sub_pwrwarn/",
|
||||
};
|
||||
const char *lpfCurrentDirs[] = {
|
||||
"/sys/devices/platform/acpm_mfd_bus@15500000/i2c-1/1-001f/s2mpg14-meter/"
|
||||
"s2mpg14-odpm/iio:device1/lpf_current",
|
||||
"/sys/devices/platform/acpm_mfd_bus@15510000/i2c-0/0-002f/s2mpg15-meter/"
|
||||
"s2mpg15-odpm/iio:device0/lpf_current",
|
||||
};
|
||||
bool titlesInitialized = false;
|
||||
std::vector<std::string> channelNames;
|
||||
std::vector<std::string> channelData[DUR_MAX];
|
||||
std::vector<std::string> pwrwarnThreshold[PWRWARN_MAX];
|
||||
std::vector<std::string> pwrwarnCode[PWRWARN_MAX];
|
||||
std::vector<std::string> lpfCurrentVals[PWRWARN_MAX];
|
||||
std::vector<std::string> files;
|
||||
std::string content;
|
||||
std::string token;
|
||||
std::string tokenCh;
|
||||
std::string fileLocation;
|
||||
for (int i = 0; i < DUR_MAX; i++) {
|
||||
if (!android::base::ReadFileToString(irqDurDirectories[i], &content)) {
|
||||
return;
|
||||
}
|
||||
std::istringstream tokenStream(content);
|
||||
while (std::getline(tokenStream, token, '\n')) {
|
||||
if (!titlesInitialized) {
|
||||
tokenCh = token;
|
||||
tokenCh.erase(tokenCh.find(':'), tokenCh.length());
|
||||
channelNames.push_back(tokenCh);
|
||||
}
|
||||
// there is a space after the ':' which needs to be removed
|
||||
token.erase(0, token.find(':') + 1);
|
||||
channelData[i].push_back(token);
|
||||
}
|
||||
if (!titlesInitialized)
|
||||
titlesInitialized = true;
|
||||
}
|
||||
for (int i = 0; i < PWRWARN_MAX; i++) {
|
||||
getFilesInDir(pwrwarnDirectories[i], &files);
|
||||
for (auto &file : files) {
|
||||
fileLocation = std::string(pwrwarnDirectories[i]) + std::string(file);
|
||||
if (!android::base::ReadFileToString(fileLocation, &content)) {
|
||||
continue;
|
||||
}
|
||||
std::string readout;
|
||||
readout = android::base::Trim(content);
|
||||
std::string readoutThreshold = readout;
|
||||
readoutThreshold.erase(0, readoutThreshold.find('=') + 1);
|
||||
std::string readoutCode = readout;
|
||||
readoutCode.erase(readoutCode.find('='), readoutCode.length());
|
||||
pwrwarnThreshold[i].push_back(readoutThreshold);
|
||||
pwrwarnCode[i].push_back(readoutCode);
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < PWRWARN_MAX; i++) {
|
||||
if (!android::base::ReadFileToString(lpfCurrentDirs[i], &content)) {
|
||||
continue;
|
||||
}
|
||||
std::istringstream tokenStream(content);
|
||||
bool first = true;
|
||||
while (std::getline(tokenStream, token, '\n')) {
|
||||
token.erase(0, token.find(' '));
|
||||
if (first) {
|
||||
first = false;
|
||||
continue;
|
||||
}
|
||||
lpfCurrentVals[i].push_back(token);
|
||||
}
|
||||
}
|
||||
printTitle(title);
|
||||
printf("%s", colNames);
|
||||
for (uint i = 0; i < channelNames.size(); i++) {
|
||||
std::string code = "";
|
||||
std::string threshold = "";
|
||||
std::string current = "";
|
||||
std::string ltDataMsg = "";
|
||||
std::string btDataMsg = "";
|
||||
std::string gtDataMsg = "";
|
||||
int pmicSel = 0;
|
||||
int offset = 0;
|
||||
std::string channelNameSuffix = " \t";
|
||||
if (i >= nonOdpmChannelCnt) {
|
||||
offset = nonOdpmChannelCnt;
|
||||
if (i >= (odpmChCnt + nonOdpmChannelCnt)) {
|
||||
pmicSel = 1;
|
||||
offset = odpmChCnt + nonOdpmChannelCnt;
|
||||
}
|
||||
channelNameSuffix = "";
|
||||
code = pwrwarnCode[pmicSel][i - offset];
|
||||
threshold = pwrwarnThreshold[pmicSel][i - offset];
|
||||
current = lpfCurrentVals[pmicSel][i - offset];
|
||||
}
|
||||
if (i < channelData[0].size())
|
||||
ltDataMsg = channelData[0][i];
|
||||
if (i < channelData[1].size())
|
||||
btDataMsg = channelData[1][i];
|
||||
if (i < channelData[2].size())
|
||||
gtDataMsg = channelData[2][i];
|
||||
std::string adjustedChannelName = channelNames[i] + channelNameSuffix;
|
||||
printf("%s \t%s\t\t%s\t\t\t%s\t\t%s \t%s \t\t%s\n",
|
||||
adjustedChannelName.c_str(),
|
||||
ltDataMsg.c_str(),
|
||||
btDataMsg.c_str(),
|
||||
gtDataMsg.c_str(),
|
||||
code.c_str(),
|
||||
threshold.c_str(),
|
||||
current.c_str());
|
||||
}
|
||||
}
|
||||
int main() {
|
||||
dumpPowerStatsTimes();
|
||||
dumpAcpmStats();
|
||||
dumpPowerSupplyStats();
|
||||
dumpMaxFg();
|
||||
dumpPowerSupplyDock();
|
||||
dumpLogBufferTcpm();
|
||||
dumpTcpc();
|
||||
dumpPdEngine();
|
||||
dumpBatteryHealth();
|
||||
dumpBatteryDefend();
|
||||
dumpBatteryCaretaker();
|
||||
dumpChg();
|
||||
dumpChgUserDebug();
|
||||
dumpBatteryEeprom();
|
||||
dumpChargerStats();
|
||||
dumpWlcLogs();
|
||||
dumpGvoteables();
|
||||
dumpMitigation();
|
||||
dumpMitigationStats();
|
||||
dumpMitigationDirs();
|
||||
dumpIrqDurationCounts();
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
PRODUCT_PACKAGES += dump_power
|
||||
10
evolution.dependencies
Normal file
10
evolution.dependencies
Normal file
@@ -0,0 +1,10 @@
|
||||
[
|
||||
{
|
||||
"repository": "device_google_gs-common",
|
||||
"target_path": "device/google/gs-common"
|
||||
},
|
||||
{
|
||||
"repository": "packages_apps_PixelParts",
|
||||
"target_path": "packages/apps/PixelParts"
|
||||
}
|
||||
]
|
||||
8
evolution_common.mk
Normal file
8
evolution_common.mk
Normal file
@@ -0,0 +1,8 @@
|
||||
#
|
||||
# Copyright (C) 2024 The Evolution X Project
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
# PixelParts
|
||||
include packages/apps/PixelParts/device.mk
|
||||
@@ -1 +0,0 @@
|
||||
22:22:3b:ff:0d:50
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,22 +0,0 @@
|
||||
#!/vendor/bin/sh
|
||||
modules_dir=
|
||||
|
||||
for f in /vendor/lib/modules/*/modules.dep /vendor/lib/modules/modules.dep; do
|
||||
if [[ -f "$f" ]]; then
|
||||
modules_dir="$(dirname "$f")"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ -z "${modules_dir}" ]]; then
|
||||
echo "Unable to locate kernel modules directory" 2>&1
|
||||
exit 1
|
||||
fi
|
||||
|
||||
panel_drv=`getprop ro.boot.primary_panel_drv`
|
||||
if [[ -z "$panel_drv" ]]; then
|
||||
panel_drv="panel-samsung-emul"
|
||||
fi
|
||||
modprobe -d "${modules_dir}" exynos-drm.ko
|
||||
modprobe -d "${modules_dir}" $panel_drv.ko
|
||||
|
||||
@@ -1,17 +1,7 @@
|
||||
//
|
||||
// Copyright (C) 2018 The Android Open Source Project
|
||||
// SPDX-FileCopyrightText: 2018 The Android Open Source Project
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
//
|
||||
// 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.
|
||||
|
||||
package {
|
||||
// See: http://go/android-license-faq
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
[
|
||||
{
|
||||
"repository": "android_device_google_gs-common",
|
||||
"target_path": "device/google/gs-common"
|
||||
}
|
||||
]
|
||||
@@ -1,42 +0,0 @@
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021-2024 The LineageOS Project
|
||||
# SPDX-FileCopyrightText: 2021-2024 The Calyx Institute
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
# Overlays
|
||||
DEVICE_PACKAGE_OVERLAYS += device/google/gs201/overlay-lineage
|
||||
|
||||
# AiAi Config
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/gs201/allowlist_com.google.android.as.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/sysconfig/allowlist_com.google.android.as.xml
|
||||
|
||||
# Camera
|
||||
PRODUCT_PRODUCT_PROPERTIES += \
|
||||
ro.vendor.camera.extensions.package=com.google.android.apps.camera.services \
|
||||
ro.vendor.camera.extensions.service=com.google.android.apps.camera.services.extensions.service.PixelExtensions
|
||||
|
||||
# Google Assistant
|
||||
PRODUCT_PRODUCT_PROPERTIES += ro.opa.eligible_device=true
|
||||
|
||||
# Lineage Health
|
||||
include hardware/google/pixel/lineage_health/device.mk
|
||||
|
||||
$(call soong_config_set,lineage_health,charging_control_supports_deadline,true)
|
||||
$(call soong_config_set,lineage_health,charging_control_supports_limit,true)
|
||||
$(call soong_config_set,lineage_health,charging_control_supports_toggle,false)
|
||||
|
||||
# Linker config
|
||||
PRODUCT_VENDOR_LINKER_CONFIG_FRAGMENTS += \
|
||||
device/google/gs201/linker.config.json
|
||||
|
||||
# Parts
|
||||
PRODUCT_PACKAGES += \
|
||||
GoogleParts
|
||||
|
||||
# Tethering
|
||||
PRODUCT_PACKAGES += \
|
||||
TetheringOverlay
|
||||
|
||||
# Touch
|
||||
include hardware/google/pixel/touch/device.mk
|
||||
175
location/gps.cer
175
location/gps.cer
@@ -1,175 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB
|
||||
yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
|
||||
ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
|
||||
U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
|
||||
ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
|
||||
aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL
|
||||
MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
|
||||
ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2ln
|
||||
biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp
|
||||
U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
|
||||
aXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1
|
||||
nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbex
|
||||
t0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIz
|
||||
SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG
|
||||
BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+
|
||||
rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/
|
||||
NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E
|
||||
BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH
|
||||
BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
|
||||
aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv
|
||||
MzEzMA0GCSqGSIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzE
|
||||
p6B4Eq1iDkVwZMXnl2YtmAl+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y
|
||||
5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKEKQsTb47bDN0lAtukixlE0kF6BWlK
|
||||
WE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiCKm0oHw0LxOXnGiYZ
|
||||
4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vEZV8N
|
||||
hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ
|
||||
RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD
|
||||
VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX
|
||||
DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y
|
||||
ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy
|
||||
VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr
|
||||
mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr
|
||||
IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK
|
||||
mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu
|
||||
XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy
|
||||
dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye
|
||||
jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1
|
||||
BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3
|
||||
DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92
|
||||
9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx
|
||||
jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0
|
||||
Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz
|
||||
ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS
|
||||
R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh
|
||||
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
||||
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH
|
||||
MjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT
|
||||
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
|
||||
b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG
|
||||
9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI
|
||||
2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx
|
||||
1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ
|
||||
q2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz
|
||||
tCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ
|
||||
vIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP
|
||||
BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV
|
||||
5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY
|
||||
1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4
|
||||
NeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG
|
||||
Fdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91
|
||||
8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe
|
||||
pLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl
|
||||
MrY=
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB
|
||||
yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
|
||||
ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
|
||||
U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
|
||||
ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
|
||||
aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL
|
||||
MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
|
||||
ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2ln
|
||||
biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp
|
||||
U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
|
||||
aXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1
|
||||
nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbex
|
||||
t0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIz
|
||||
SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG
|
||||
BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+
|
||||
rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/
|
||||
NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E
|
||||
BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH
|
||||
BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
|
||||
aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv
|
||||
MzEzMA0GCSqGSIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzE
|
||||
p6B4Eq1iDkVwZMXnl2YtmAl+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y
|
||||
5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKEKQsTb47bDN0lAtukixlE0kF6BWlK
|
||||
WE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiCKm0oHw0LxOXnGiYZ
|
||||
4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vEZV8N
|
||||
hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFZTCCA02gAwIBAgIPAWv6o5fPZQ5hxva1vuNrMA0GCSqGSIb3DQEBCwUAMDgx
|
||||
CzAJBgNVBAYTAkpQMRcwFQYDVQQKDA5SYWt1dGVuIE1vYmlsZTEQMA4GA1UEAwwH
|
||||
Um9vdCBDQTAeFw0xOTA3MTYxMTU1NDJaFw0yOTA3MTMxMTU1NDJaMD4xCzAJBgNV
|
||||
BAYTAkpQMRcwFQYDVQQKEw5SYWt1dGVuIE1vYmlsZTEWMBQGA1UEAxMNREMgSXNz
|
||||
dWluZyBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAObjAbQ8TkzF
|
||||
A+/WvSE6fzDf+rlvBKY1dJJbiJ2/j0lc+tj56dE7+BhZ2JVmAYIYfEoUw69dwxTR
|
||||
44EdZln3ZVFmMuOdfxvF9A46pMKzH1skr8ErDgjNyJ9f/JOuQ29p/7BvLC55aRzk
|
||||
yj99BYdzJWKs+5W7jQlv7/HyJ/PQ+rUEBOx4o/YiTucDFduWdV6/x5mcEbKD3ufL
|
||||
66vUEf3MHGegDkOWAMTchl1RmaYDlf3IMsXC7M2bFPFa/9y/vzaaY6EhnJ861co6
|
||||
rkOhTZe/kJZwqQYFmWczBPZK/9zRy3C1zA09tCBk+CDNBrNXe+3dMLFmnW4npxUQ
|
||||
oceTPhaaDo5lA6HkkARwVWLrporFZ2B/th2Bqtu6uObLSB6JMA2jxmKwKukM8/jp
|
||||
C9tKV9X03rHQIQultc63rivPdgQvqYgW1PVdzV1a3pZEMk5zv257+fxgfUGzfUh7
|
||||
tx0OY+BkykSP6ZK/BsbI/BY+rsS0L/0lmC22NU1p+qVeN3ZRHoqntB+FymaBfQ3/
|
||||
yfKkDNfnMua5GzLyyYGYUDDx71rtfrs3hGDiwjvE4B0IvsU0E7Oerk5gLqx8t0q/
|
||||
MmhI+CJJS1bH2sRBMcqfRAv+eyByFsvLY7Er/ztveaabX9xEwyPNFOcU+SZMhipv
|
||||
EUKmUcOAHxzx4HbYEFyM0Z7WgUdlTd1xAgMBAAGjZjBkMB8GA1UdIwQYMBaAFPUI
|
||||
BlLFno+y5xdHlCX349iVyS75MB0GA1UdDgQWBBQzVhTSCf8F31Zf0Bu661qymMko
|
||||
JzAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADANBgkqhkiG9w0B
|
||||
AQsFAAOCAgEADQEufjma/6fT/Do4Fh13lZhsowHSsGv5sFYly6224GsciE80ZwYg
|
||||
R4EK/TAR0jorBXsu6sQc51pZ5SSHhIxfo2frfprTPaaWN6cZwfrb6UcnD/FaZ1jP
|
||||
HzWrI3kRxG9JCDffzE8uMf8Rnc69n1j+TBerk4Ix3Zui2TaaF6LVceJ4RgeNkZl0
|
||||
OFkGGFruHz/d83q7A6YjgN0iwMEabdtKH7Sq27LqGPeCS8NuGlrziNAxktdwaYlN
|
||||
D5t6ntM/1nHYPmVqdioEU9vAnyB3BiXOlITPHEEMOSlItcUsJ6rN5DZJaJgkBxvN
|
||||
Qdi6wmaDlxy8XFyy4KGFKWAl17FlfpqW5VtYQJ4aDpibGlGqamg0vm+IJDIGPlOs
|
||||
KQcxG17cOw4MCflAtnzHKHBn52DegQKwxev2ZpqdwVw/NqPq0yTNEbCRqEyiq7+H
|
||||
ljKEFiEjEjeXTcqR4DoCseA5UgcriuriV0OCvr8KTlviV4FEUu+IA9ut8YIvf2of
|
||||
Zz0z8rO4H+Rb4tMi/yBRM09x3rEW4hXwO0qpCBNBa0wEJBxufF3f6l9efEle+YTR
|
||||
XS92gutaoVluqMfRSJckjwWokToi32/FvF79guZymD0qHkOSi5dewsIW7zsdobvv
|
||||
t2CWLfTAb9cx222ELBpVPkfcgUKfF4RCGWPzuAlK6OueuDrInOiz8ag=
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFUjCCAzqgAwIBAgICBpAwDQYJKoZIhvcNAQELBQAwODELMAkGA1UEBhMCSlAx
|
||||
FzAVBgNVBAoMDlJha3V0ZW4gTW9iaWxlMRAwDgYDVQQDDAdSb290IENBMB4XDTE5
|
||||
MDcxNjEwNTkwMVoXDTM5MDcxNTEwNTkwMVowODELMAkGA1UEBhMCSlAxFzAVBgNV
|
||||
BAoMDlJha3V0ZW4gTW9iaWxlMRAwDgYDVQQDDAdSb290IENBMIICIjANBgkqhkiG
|
||||
9w0BAQEFAAOCAg8AMIICCgKCAgEAqiPMbNudotG8afkk5Fwo2QdDcFFmC+qGpGjw
|
||||
yQs57QtGPRk1HsIhZFfr6zn8t1tZw6Zo+A0biFA7d2N93nYsseHBy/bZlhhOL+Js
|
||||
Jb907UM09L5xaJIgnbFYVT1QjtB7ksLAy3rHpdSKiggfT1ynwM/u6wIdWRSx24QU
|
||||
Vxpq5iFpVj041+/RnpCPASL5pSnbYZKQyOb/XsOaR+hz7aSjwiUzk2cRjAmRqYxY
|
||||
qYVe135IAy377inJRtUPvi3IhtmUHJToiMLBH5tChkjkIpdRG1lVIj4vGdzrIb+Q
|
||||
Kvg/k7BDVZ3sstsLvJ8evNonBzrqcr80ek/X+HFrgY/3M1VEru4ohLAiA877CuuG
|
||||
UAfrxFh9qjP1yue+dlrQWk+WHMbGMzKI1zCKEMphJatyNHfpRtD8LUWtLV96DD78
|
||||
qLwQwrSYrEMd2u/akeBFKINYWqpqkVBhSsV3eukXVIdSbtSAxZNv+4m6QddEcUvG
|
||||
2ZLf+yCf2tl+LPGXNL08vwMVbQqcDw8m+nDP4vu0VUixddyoqnnDlWOoQESuQFQ1
|
||||
IqYFQhRPs2dFRf5TJzkmbqRUXbaPxsrKGjTtVpPgENbv40nyRGyBbl1CzqpBFEp5
|
||||
7w4MPYDIzWKYbRyCnUE5WScRBFmym7242KA3SOfkylzGMb8KGJxohVME+7oMbNf5
|
||||
EjLWVgECAwEAAaNmMGQwHwYDVR0jBBgwFoAU9QgGUsWej7LnF0eUJffj2JXJLvkw
|
||||
HQYDVR0OBBYEFPUIBlLFno+y5xdHlCX349iVyS75MA4GA1UdDwEB/wQEAwIBBjAS
|
||||
BgNVHRMBAf8ECDAGAQH/AgEBMA0GCSqGSIb3DQEBCwUAA4ICAQCDGIeYrtivFt3p
|
||||
8k5vXKFUT072C7wMvfrAGYCYgIdUthWCqJoMwnG3Fsg7Ngu70La7ESBzEKpnpPWz
|
||||
eIdnREJkNP9iqiKHXnaUV2P/21AS1q6enVKBFOl7dYiVjqOZ+vac3a1UjLWkvm0g
|
||||
x4sg/f3PpiEzZM7ecnQYk2wfMSq8Jw0w1Lf0SEeoYZTkf12cqSJVSa/G7gEdL/Cn
|
||||
LO3yyBq0KPNdd87eIfvCLJj55UJ5dCr0JXRTUteBvJwflbPXmOqfI8fA05fwlJZS
|
||||
o1SBpMI9cEBwaPXQM9CPNKaWLvyOR1KpviRzbCnaKf44Fs2OuZboo3avZrC9eUoU
|
||||
HU2HKXRj8UMRlFeCdNugbOdGyK+CpXwMHVtIrtpf0iOUqo0rOekgnUSNi9qyjD1g
|
||||
IV3Y/NLVl9fqe8q66IWUn8NYndxigMKWcMCBFUjfP0yMZeqSHFiIv7zk9PuV/62k
|
||||
Yele7cK9iHnEUwWBj6VCEs6pZBS1QSmhRw3GWlSDc/gHXd38PG20zH7xg4z2H9Rc
|
||||
Op9P1ZW2kjqv5D2+q/qtaePAyHn3B05UZrQYUmx7LaHNO7op6dZgCdoR0sVsR+Fc
|
||||
Zyr0AhgiuTWrjtUEOGx2qJVwAsHkpqtlN+DaGT08dT64LvIf0bfGvmtm++/WEDWJ
|
||||
HInwg85pGm+sEkYbYFRBD0woPBsL3g==
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQsw
|
||||
CQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURp
|
||||
Z2lDZXJ0IFRMUyBFQ0MgUDM4NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2
|
||||
MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJ
|
||||
bmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQgUm9vdCBHNTB2MBAG
|
||||
ByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1TzvdlHJS
|
||||
7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp
|
||||
0zVozptjn4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICIS
|
||||
B4CIfBFqMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49
|
||||
BAMDA2gAMGUCMQCJao1H5+z8blUD2WdsJk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQ
|
||||
LgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIxAJSdYsiJvRmEFOml+wG4
|
||||
DXZDjC5Ty3zfDBeWUA==
|
||||
-----END CERTIFICATE-----
|
||||
@@ -1,97 +0,0 @@
|
||||
<manifest version="1.0" type="device" target-level="7">
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.graphics.allocator</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>2.0</version>
|
||||
<interface>
|
||||
<name>IAllocator</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.graphics.mapper</name>
|
||||
<transport arch="32+64">passthrough</transport>
|
||||
<version>2.0</version>
|
||||
<interface>
|
||||
<name>IMapper</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.graphics.composer</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>2.4</version>
|
||||
<interface>
|
||||
<name>IComposer</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.memtrack</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>1.0</version>
|
||||
<interface>
|
||||
<name>IMemtrack</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.drm</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>1.0</version>
|
||||
<interface>
|
||||
<name>ICryptoFactory</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
<interface>
|
||||
<name>IDrmFactory</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
<fqname>@1.3::ICryptoFactory/clearkey</fqname>
|
||||
<fqname>@1.3::IDrmFactory/clearkey</fqname>
|
||||
<fqname>@1.3::ICryptoFactory/widevine</fqname>
|
||||
<fqname>@1.3::IDrmFactory/widevine</fqname>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.dumpstate</name>
|
||||
<interface>
|
||||
<name>IDumpstateDevice</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.bluetooth.audio</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>2.1</version>
|
||||
<interface>
|
||||
<name>IBluetoothAudioProvidersFactory</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.boot</name>
|
||||
<fqname>IBootControl/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.sensors</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>1.0</version>
|
||||
<interface>
|
||||
<name>ISensors</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.neuralnetworks</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.3::IDevice/google-edgetpu</fqname>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>vendor.google.google_battery</name>
|
||||
<version>2-3</version>
|
||||
<interface>
|
||||
<name>IGoogleBattery</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
</manifest>
|
||||
@@ -1,6 +0,0 @@
|
||||
<manifest version="1.0" type="device" target-level="7">
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.boot</name>
|
||||
<fqname>IBootControl/default</fqname>
|
||||
</hal>
|
||||
</manifest>
|
||||
@@ -1,13 +0,0 @@
|
||||
<manifest version="1.0" type="device">
|
||||
<!-- AIDL fragment -->
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.media.c2</name>
|
||||
<version>1</version>
|
||||
<fqname>IComponentStore/default1</fqname>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.media.c2</name>
|
||||
<version>1</version>
|
||||
<fqname>IComponentStore/default</fqname>
|
||||
</hal>
|
||||
</manifest>
|
||||
@@ -1,18 +0,0 @@
|
||||
<manifest version="1.0" type="device">
|
||||
<!-- HIDL fragment -->
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.media.c2</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>1.2</version>
|
||||
<interface>
|
||||
<name>IComponentStore</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<!-- AIDL fragment -->
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.media.c2</name>
|
||||
<version>1</version>
|
||||
<fqname>IComponentStore/default</fqname>
|
||||
</hal>
|
||||
</manifest>
|
||||
@@ -1,53 +0,0 @@
|
||||
<manifest version="1.0" type="device">
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.radio</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.2::ISap/slot1</fqname>
|
||||
<fqname>@1.2::ISap/slot2</fqname>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.radio.config</name>
|
||||
<fqname>IRadioConfig/default</fqname>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.radio.data</name>
|
||||
<fqname>IRadioData/slot1</fqname>
|
||||
<fqname>IRadioData/slot2</fqname>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.radio.messaging</name>
|
||||
<fqname>IRadioMessaging/slot1</fqname>
|
||||
<fqname>IRadioMessaging/slot2</fqname>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.radio.modem</name>
|
||||
<fqname>IRadioModem/slot1</fqname>
|
||||
<fqname>IRadioModem/slot2</fqname>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.radio.network</name>
|
||||
<fqname>IRadioNetwork/slot1</fqname>
|
||||
<fqname>IRadioNetwork/slot2</fqname>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.radio.sim</name>
|
||||
<fqname>IRadioSim/slot1</fqname>
|
||||
<fqname>IRadioSim/slot2</fqname>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.radio.voice</name>
|
||||
<fqname>IRadioVoice/slot1</fqname>
|
||||
<fqname>IRadioVoice/slot2</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.secure_element</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.2::ISecureElement/SIM1</fqname>
|
||||
<fqname>@1.2::ISecureElement/SIM2</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>vendor.samsung_slsi.telephony.hardware.radioExternal</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.1::IOemSlsiRadioExternal/rilExternal</fqname>
|
||||
</hal>
|
||||
</manifest>
|
||||
@@ -1,82 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!-- Copyright (C) 2012 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.
|
||||
-->
|
||||
|
||||
<!--
|
||||
<!DOCTYPE MediaCodecs [
|
||||
<!ELEMENT Include EMPTY>
|
||||
<!ATTLIST Include href CDATA #REQUIRED>
|
||||
<!ELEMENT MediaCodecs (Decoders|Encoders|Include)*>
|
||||
<!ELEMENT Decoders (MediaCodec|Include)*>
|
||||
<!ELEMENT Encoders (MediaCodec|Include)*>
|
||||
<!ELEMENT MediaCodec (Type|Quirk|Include)*>
|
||||
<!ATTLIST MediaCodec name CDATA #REQUIRED>
|
||||
<!ATTLIST MediaCodec type CDATA>
|
||||
<!ELEMENT Type EMPTY>
|
||||
<!ATTLIST Type name CDATA #REQUIRED>
|
||||
<!ELEMENT Quirk EMPTY>
|
||||
<!ATTLIST Quirk name CDATA #REQUIRED>
|
||||
]>
|
||||
|
||||
There's a simple and a complex syntax to declare the availability of a
|
||||
media codec:
|
||||
|
||||
A codec that properly follows the OpenMax spec and therefore doesn't have any
|
||||
quirks and that only supports a single content type can be declared like so:
|
||||
|
||||
<MediaCodec name="OMX.foo.bar" type="something/interesting" />
|
||||
|
||||
If a codec has quirks OR supports multiple content types, the following syntax
|
||||
can be used:
|
||||
|
||||
<MediaCodec name="OMX.foo.bar" >
|
||||
<Type name="something/interesting" />
|
||||
<Type name="something/else" />
|
||||
...
|
||||
<Quirk name="requires-allocate-on-input-ports" />
|
||||
<Quirk name="requires-allocate-on-output-ports" />
|
||||
<Quirk name="output-buffers-are-unreadable" />
|
||||
</MediaCodec>
|
||||
|
||||
Only the three quirks included above are recognized at this point:
|
||||
|
||||
"requires-allocate-on-input-ports"
|
||||
must be advertised if the component does not properly support specification
|
||||
of input buffers using the OMX_UseBuffer(...) API but instead requires
|
||||
OMX_AllocateBuffer to be used.
|
||||
|
||||
"requires-allocate-on-output-ports"
|
||||
must be advertised if the component does not properly support specification
|
||||
of output buffers using the OMX_UseBuffer(...) API but instead requires
|
||||
OMX_AllocateBuffer to be used.
|
||||
|
||||
"output-buffers-are-unreadable"
|
||||
must be advertised if the emitted output buffers of a decoder component
|
||||
are not readable, i.e. use a custom format even though abusing one of
|
||||
the official OMX colorspace constants.
|
||||
Clients of such decoders will not be able to access the decoded data,
|
||||
naturally making the component much less useful. The only use for
|
||||
a component with this quirk is to render the output to the screen.
|
||||
Audio decoders MUST NOT advertise this quirk.
|
||||
Video decoders that advertise this quirk must be accompanied by a
|
||||
corresponding color space converter for thumbnail extraction,
|
||||
matching surfaceflinger support that can render the custom format to
|
||||
a texture and possibly other code, so just DON'T USE THIS QUIRK.
|
||||
|
||||
-->
|
||||
|
||||
<MediaCodecs>
|
||||
<Include href="media_codecs_google_telephony.xml" />
|
||||
</MediaCodecs>
|
||||
@@ -1,251 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!-- Copyright 2018 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.
|
||||
-->
|
||||
<MediaCodecs>
|
||||
<Settings>
|
||||
<Setting name="supports-multiple-secure-codecs" value="true" />
|
||||
<Setting name="supports-secure-with-non-secure-codec" value="true" />
|
||||
</Settings>
|
||||
<Decoders>
|
||||
<MediaCodec name="c2.exynos.h264.decoder" type="video/avc">
|
||||
<Limit name="size" min="32x32" max="3840x2160" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="block-count" range="1-32400" />
|
||||
<Limit name="blocks-per-second" min="1" max="3888000" />
|
||||
<Limit name="bitrate" range="1-120000000" />
|
||||
<Limit name="performance-point-1920x1080" range="240" />
|
||||
<Limit name="performance-point-3840x2160" range="120" />
|
||||
<Limit name="concurrent-instances" max="16" />
|
||||
<Feature name="adaptive-playback" />
|
||||
<Feature name="can-swap-width-height" value="1" />
|
||||
<Feature name="low-latency" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.h264.decoder.secure" type="video/avc">
|
||||
<Limit name="size" min="32x32" max="3840x2160" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="block-count" range="1-32400" />
|
||||
<Limit name="blocks-per-second" min="1" max="3888000" />
|
||||
<Limit name="bitrate" range="1-120000000" />
|
||||
<Limit name="performance-point-1920x1080" range="240" />
|
||||
<Limit name="performance-point-3840x2160" range="120" />
|
||||
<Limit name="concurrent-instances" max="2" />
|
||||
<Feature name="adaptive-playback" />
|
||||
<Feature name="secure-playback" required="true" />
|
||||
<Feature name="can-swap-width-height" value="1" />
|
||||
<Feature name="low-latency" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.hevc.decoder" type="video/hevc" >
|
||||
<Limit name="size" min="64x64" max="3840x2176" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="block-count" range="1-32640" />
|
||||
<Limit name="blocks-per-second" min="1" max="3916800" />
|
||||
<Limit name="bitrate" range="1-120000000" />
|
||||
<Limit name="performance-point-1920x1080" range="240" />
|
||||
<Limit name="performance-point-3840x2160" range="120" />
|
||||
<Limit name="concurrent-instances" max="16" />
|
||||
<Feature name="adaptive-playback" />
|
||||
<Feature name="can-swap-width-height" value="1" />
|
||||
<Feature name="low-latency" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.hevc.decoder.secure" type="video/hevc" >
|
||||
<Limit name="size" min="64x64" max="3840x2160" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="block-count" range="1-32400" />
|
||||
<Limit name="blocks-per-second" min="1" max="3888000" />
|
||||
<Limit name="bitrate" range="1-120000000" />
|
||||
<Limit name="performance-point-1920x1080" range="240" />
|
||||
<Limit name="performance-point-3840x2160" range="120" />
|
||||
<Limit name="concurrent-instances" max="2" />
|
||||
<Feature name="adaptive-playback" />
|
||||
<Feature name="secure-playback" required="true" />
|
||||
<Feature name="can-swap-width-height" value="1" />
|
||||
<Feature name="low-latency" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.mpeg4.decoder" type="video/mp4v-es">
|
||||
<Limit name="size" min="32x32" max="2048x2048" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="block-count" range="1-16384" />
|
||||
<Limit name="blocks-per-second" min="1" max="979200" />
|
||||
<Limit name="bitrate" range="1-80000000" />
|
||||
<Limit name="performance-point-1280x720" range="240" />
|
||||
<Limit name="performance-point-1920x1080" range="120" />
|
||||
<Limit name="concurrent-instances" max="16" />
|
||||
<Feature name="adaptive-playback" />
|
||||
<Feature name="can-swap-width-height" value="1" />
|
||||
<Feature name="low-latency" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.h263.decoder" type="video/3gpp">
|
||||
<Limit name="size" min="32x32" max="2048x1152" />
|
||||
<Limit name="alignment" value="4x4" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="block-count" range="1-9216" />
|
||||
<Limit name="blocks-per-second" min="1" max="979200" />
|
||||
<Limit name="bitrate" range="1-80000000" />
|
||||
<Limit name="performance-point-1280x720" range="240" />
|
||||
<Limit name="performance-point-1920x1080" range="120" />
|
||||
<Limit name="concurrent-instances" max="16" />
|
||||
<Feature name="adaptive-playback" />
|
||||
<Feature name="low-latency" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.vp8.decoder" type="video/x-vnd.on2.vp8" >
|
||||
<Limit name="size" min="32x32" max="3840x2160" />
|
||||
<Limit name="alignment" value="1x1" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="block-count" range="1-32400" />
|
||||
<Limit name="blocks-per-second" min="1" max="3888000" />
|
||||
<Limit name="bitrate" range="1-80000000" />
|
||||
<Limit name="performance-point-1920x1080" range="240" />
|
||||
<Limit name="performance-point-3840x2160" range="120" />
|
||||
<Limit name="concurrent-instances" max="16" />
|
||||
<Feature name="adaptive-playback" />
|
||||
<Feature name="can-swap-width-height" value="1" />
|
||||
<Feature name="low-latency" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.vp9.decoder" type="video/x-vnd.on2.vp9" >
|
||||
<Limit name="size" min="64x64" 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="3888000" />
|
||||
<Limit name="bitrate" range="1-80000000" />
|
||||
<Limit name="performance-point-1920x1080" range="240" />
|
||||
<Limit name="performance-point-3840x2160" range="120" />
|
||||
<Limit name="concurrent-instances" max="16" />
|
||||
<Feature name="adaptive-playback" />
|
||||
<Feature name="can-swap-width-height" value="1" />
|
||||
<Feature name="low-latency" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.vp9.decoder.secure" type="video/x-vnd.on2.vp9" >
|
||||
<Limit name="size" min="64x64" 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="3888000" />
|
||||
<Limit name="bitrate" range="1-80000000" />
|
||||
<Limit name="performance-point-1920x1080" range="240" />
|
||||
<Limit name="performance-point-3840x2160" range="120" />
|
||||
<Limit name="concurrent-instances" max="2" />
|
||||
<Feature name="adaptive-playback" />
|
||||
<Feature name="secure-playback" required="true" />
|
||||
<Feature name="can-swap-width-height" value="1" />
|
||||
<Feature name="low-latency" />
|
||||
</MediaCodec>
|
||||
</Decoders>
|
||||
|
||||
<Encoders>
|
||||
<MediaCodec name="c2.exynos.h264.encoder" type="video/avc">
|
||||
<Limit name="size" min="32x32" max="3840x2160" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="block-count" range="1-32400" />
|
||||
<Limit name="blocks-per-second" min="1" max="3888000" />
|
||||
<Limit name="bitrate" range="1-120000000" />
|
||||
<Limit name="performance-point-1920x1080" range="240" />
|
||||
<Limit name="performance-point-3840x2160" range="120" />
|
||||
<Limit name="concurrent-instances" max="16" />
|
||||
<Feature name="can-swap-width-height" value="1" />
|
||||
<Feature name="vq-minimum-quality"/>
|
||||
<Feature name="qp-bounds"/>
|
||||
<Feature name="encoding-statistics"/>
|
||||
<Feature name="bitrate-modes" value="VBR,CBR,CBR-FD" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.hevc.encoder" type="video/hevc" >
|
||||
<Limit name="size" min="64x64" max="3840x2176" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="32x32" />
|
||||
<Limit name="block-count" range="1-8160" />
|
||||
<Limit name="blocks-per-second" min="1" max="979200" />
|
||||
<Limit name="bitrate" range="1-120000000" />
|
||||
<Limit name="performance-point-1920x1080" range="240" />
|
||||
<Limit name="performance-point-3840x2160" range="120" />
|
||||
<Limit name="concurrent-instances" max="16" />
|
||||
<Limit name="quality" range="0-100" default="57" />
|
||||
<Feature name="can-swap-width-height" value="1" />
|
||||
<Feature name="vq-minimum-quality"/>
|
||||
<Feature name="qp-bounds"/>
|
||||
<Feature name="encoding-statistics"/>
|
||||
<Feature name="hdr-editing" />
|
||||
<Feature name="bitrate-modes" value="VBR,CBR,CQ,CBR-FD" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.mpeg4.encoder" type="video/mp4v-es">
|
||||
<Limit name="size" min="32x32" max="2048x2048" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="block-count" range="1-16384" />
|
||||
<Limit name="blocks-per-second" min="1" max="979200" />
|
||||
<Limit name="bitrate" range="1-80000000" />
|
||||
<Limit name="performance-point-1280x720" range="240" />
|
||||
<Limit name="performance-point-1920x1080" range="120" />
|
||||
<Limit name="concurrent-instances" max="16" />
|
||||
<Feature name="can-swap-width-height" value="1" />
|
||||
<Feature name="vq-minimum-quality"/>
|
||||
<Feature name="qp-bounds"/>
|
||||
<Feature name="encoding-statistics"/>
|
||||
<Feature name="bitrate-modes" value="VBR,CBR" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.h263.encoder" type="video/3gpp">
|
||||
<Limit name="size" min="32x32" max="2048x1152" />
|
||||
<Limit name="alignment" value="4x4" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="block-count" range="1-9216" />
|
||||
<Limit name="blocks-per-second" min="1" max="979200" />
|
||||
<Limit name="bitrate" range="1-80000000" />
|
||||
<Limit name="performance-point-1280x720" range="240" />
|
||||
<Limit name="performance-point-1920x1080" range="120" />
|
||||
<Limit name="concurrent-instances" max="16" />
|
||||
<Feature name="vq-minimum-quality"/>
|
||||
<Feature name="qp-bounds"/>
|
||||
<Feature name="encoding-statistics"/>
|
||||
<Feature name="bitrate-modes" value="VBR,CBR" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.vp8.encoder" type="video/x-vnd.on2.vp8" >
|
||||
<Limit name="size" min="32x32" max="3840x2160" />
|
||||
<Limit name="alignment" value="1x1" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="block-count" range="1-32400" />
|
||||
<Limit name="blocks-per-second" min="1" max="3888000" />
|
||||
<Limit name="bitrate" range="1-80000000" />
|
||||
<Limit name="performance-point-1920x1080" range="240" />
|
||||
<Limit name="performance-point-3840x2160" range="120" />
|
||||
<Limit name="concurrent-instances" max="16" />
|
||||
<Feature name="can-swap-width-height" value="1" />
|
||||
<Feature name="vq-minimum-quality"/>
|
||||
<Feature name="qp-bounds"/>
|
||||
<Feature name="encoding-statistics"/>
|
||||
<Feature name="bitrate-modes" value="VBR,CBR" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.vp9.encoder" type="video/x-vnd.on2.vp9" >
|
||||
<Limit name="size" min="64x64" 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="243000" />
|
||||
<Limit name="bitrate" range="1-80000000" />
|
||||
<Limit name="performance-point-1920x1080" range="240" />
|
||||
<Limit name="performance-point-3840x2160" range="120" />
|
||||
<Limit name="concurrent-instances" max="16" />
|
||||
<Feature name="can-swap-width-height" value="1" />
|
||||
<Feature name="vq-minimum-quality"/>
|
||||
<Feature name="qp-bounds"/>
|
||||
<Feature name="encoding-statistics"/>
|
||||
<Feature name="bitrate-modes" value="VBR,CBR" />
|
||||
</MediaCodec>
|
||||
</Encoders>
|
||||
</MediaCodecs>
|
||||
@@ -1,52 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!-- Copyright 2018 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.
|
||||
-->
|
||||
<MediaCodecs>
|
||||
<Include href="media_codecs_aosp_c2.xml" />
|
||||
<Include href="media_codecs_dolby_c2.xml" />
|
||||
<Decoders>
|
||||
<MediaCodec name="c2.google.av1.decoder" type="video/av01">
|
||||
<Limit name="size" min="96x96" max="3840x2160" />
|
||||
<Limit name="alignment" value="1x1" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="block-count" range="36-32400" />
|
||||
<Limit name="blocks-per-second" min="24" max="1944000" />
|
||||
<Limit name="bitrate" range="1-120000000" />
|
||||
<Limit name="frame-rate" range="1-120" />
|
||||
<Limit name="concurrent-instances" max="16" />
|
||||
<Limit name="performance-point-1920x1080" value="180" />
|
||||
<Limit name="performance-point-1920x1079" value="120" />
|
||||
<Limit name="performance-point-3840x2160" value="60" />
|
||||
<Feature name="adaptive-playback" />
|
||||
<Feature name="can-swap-width-height" value="1" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.google.av1.decoder.secure" type="video/av01">
|
||||
<Limit name="size" min="96x96" max="3840x2160" />
|
||||
<Limit name="alignment" value="1x1" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="block-count" range="36-32400" />
|
||||
<Limit name="blocks-per-second" min="24" max="1944000" />
|
||||
<Limit name="bitrate" range="1-120000000" />
|
||||
<Limit name="frame-rate" range="1-120" />
|
||||
<Limit name="concurrent-instances" max="16" />
|
||||
<Limit name="performance-point-1920x1080" value="180" />
|
||||
<Limit name="performance-point-1920x1079" value="120" />
|
||||
<Limit name="performance-point-3840x2160" value="60" />
|
||||
<Feature name="adaptive-playback" />
|
||||
<Feature name="secure-playback" required="true" />
|
||||
<Feature name="can-swap-width-height" value="1" />
|
||||
</MediaCodec>
|
||||
</Decoders>
|
||||
</MediaCodecs>
|
||||
@@ -1,18 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!-- Copyright 2016 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.
|
||||
-->
|
||||
|
||||
<MediaCodecs>
|
||||
</MediaCodecs>
|
||||
@@ -1,264 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!-- Copyright 2016 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.
|
||||
-->
|
||||
|
||||
<MediaCodecs>
|
||||
<Decoders>
|
||||
<MediaCodec name="c2.exynos.h264.decoder" type="video/avc" update="true">
|
||||
<!-- measured 90%:528-534 med:528 N=2 -->
|
||||
<Limit name="measured-frame-rate-320x240" range="528-531" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:550-560 med:551 N=2 -->
|
||||
<Limit name="measured-frame-rate-720x480" range="550-555" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:540-561 med:541 N=2 -->
|
||||
<Limit name="measured-frame-rate-1280x720" range="540-551" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:409-413 med:410 N=2 -->
|
||||
<Limit name="measured-frame-rate-1920x1088" range="409-411" /> <!-- v90%=1.0 -->
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.h264.decoder.secure" type="video/avc" update="true">
|
||||
<!-- measured 90%:528-534 med:528 N=2 -->
|
||||
<Limit name="measured-frame-rate-320x240" range="528-531" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:550-560 med:551 N=2 -->
|
||||
<Limit name="measured-frame-rate-720x480" range="550-555" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:540-561 med:541 N=2 -->
|
||||
<Limit name="measured-frame-rate-1280x720" range="540-551" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:409-413 med:410 N=2 -->
|
||||
<Limit name="measured-frame-rate-1920x1088" range="409-411" /> <!-- v90%=1.0 -->
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.hevc.decoder" type="video/hevc" update="true">
|
||||
<!-- measured 90%:529-530 med:529 N=2 -->
|
||||
<Limit name="measured-frame-rate-352x288" range="1150-1250" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:528-530 med:529 N=2 -->
|
||||
<Limit name="measured-frame-rate-640x360" range="528-529" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:546-549 med:546 N=2 -->
|
||||
<Limit name="measured-frame-rate-720x480" range="546-548" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:547-560 med:547 N=2 -->
|
||||
<Limit name="measured-frame-rate-1280x720" range="547-553" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:569-574 med:570 N=2 -->
|
||||
<Limit name="measured-frame-rate-1920x1080" range="569-572" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:159-160 med:159 N=2 -->
|
||||
<Limit name="measured-frame-rate-3840x2160" range="159-159" /> <!-- v90%=1.0 -->
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.hevc.decoder.secure" type="video/hevc" update="true">
|
||||
<!-- measured 90%:529-530 med:529 N=2 -->
|
||||
<Limit name="measured-frame-rate-352x288" range="1150-1250" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:528-530 med:529 N=2 -->
|
||||
<Limit name="measured-frame-rate-640x360" range="528-529" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:546-549 med:546 N=2 -->
|
||||
<Limit name="measured-frame-rate-720x480" range="546-548" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:547-560 med:547 N=2 -->
|
||||
<Limit name="measured-frame-rate-1280x720" range="547-553" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:569-574 med:570 N=2 -->
|
||||
<Limit name="measured-frame-rate-1920x1080" range="569-572" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:159-160 med:159 N=2 -->
|
||||
<Limit name="measured-frame-rate-3840x2160" range="159-159" /> <!-- v90%=1.0 -->
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.mpeg4.decoder" type="video/mp4v-es" update="true">
|
||||
<!-- measured 90%:527-537 med:528 N=2 -->
|
||||
<Limit name="measured-frame-rate-176x144" range="527-532" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:387-391 med:387 N=2 -->
|
||||
<Limit name="measured-frame-rate-480x360" range="387-389" /> <!-- v90%=1.0 -->
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.h263.decoder" type="video/3gpp" update="true">
|
||||
<!-- measured 90%:521-541 med:521 N=2 -->
|
||||
<Limit name="measured-frame-rate-176x144" range="1300-1400" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:528-540 med:528 N=2 -->
|
||||
<Limit name="measured-frame-rate-352x288" range="528-534" /> <!-- v90%=1.0 -->
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
|
||||
<!-- measured 90%:451-555 med:452 SLOW N=2 -->
|
||||
<Limit name="measured-frame-rate-320x180" range="451-500" /> <!-- v90%=1.1 -->
|
||||
<!-- measured 90%:486-504 med:486 N=2 -->
|
||||
<Limit name="measured-frame-rate-640x360" range="486-495" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:518-566 med:518 N=2 -->
|
||||
<Limit name="measured-frame-rate-1280x720" range="518-542" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:386-387 med:386 N=2 -->
|
||||
<Limit name="measured-frame-rate-1920x1080" range="386-386" /> <!-- v90%=1.0 -->
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
|
||||
<!-- measured 90%:523-536 med:524 N=2 -->
|
||||
<Limit name="measured-frame-rate-320x180" range="523-529" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:503-506 med:504 N=2 -->
|
||||
<Limit name="measured-frame-rate-640x360" range="503-505" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:510-518 med:511 N=2 -->
|
||||
<Limit name="measured-frame-rate-1280x720" range="510-514" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:349-351 med:350 N=2 -->
|
||||
<Limit name="measured-frame-rate-1920x1080" range="349-350" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:100-101 med:100 N=2 -->
|
||||
<Limit name="measured-frame-rate-3840x2160" range="100-100" /> <!-- v90%=1.0 -->
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.vp9.decoder.secure" type="video/x-vnd.on2.vp9" update="true">
|
||||
<!-- measured 90%:523-536 med:524 N=2 -->
|
||||
<Limit name="measured-frame-rate-320x180" range="523-529" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:503-506 med:504 N=2 -->
|
||||
<Limit name="measured-frame-rate-640x360" range="503-505" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:510-518 med:511 N=2 -->
|
||||
<Limit name="measured-frame-rate-1280x720" range="510-514" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:349-351 med:350 N=2 -->
|
||||
<Limit name="measured-frame-rate-1920x1080" range="349-350" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:100-101 med:100 N=2 -->
|
||||
<Limit name="measured-frame-rate-3840x2160" range="100-100" /> <!-- v90%=1.0 -->
|
||||
</MediaCodec>
|
||||
|
||||
<MediaCodec name="c2.android.h263.decoder" type="video/3gpp" update="true">
|
||||
<Limit name="measured-frame-rate-176x144" range="1504-2256" />
|
||||
<Limit name="measured-frame-rate-352x288" range="893-1339" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.avc.decoder" type="video/avc" update="true">
|
||||
<!-- measured 90%:342-360 med:343 N=2 -->
|
||||
<Limit name="measured-frame-rate-320x240" range="558-1084" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:142-147 med:143 N=2 -->
|
||||
<Limit name="measured-frame-rate-720x480" range="193-357" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:54-56 med:55 N=2 -->
|
||||
<Limit name="measured-frame-rate-1280x720" range="73-125" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:25-26 med:26 N=2 -->
|
||||
<Limit name="measured-frame-rate-1920x1080" range="25-41" /> <!-- v90%=1.0 -->
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.hevc.decoder" type="video/hevc" update="true">
|
||||
<Limit name="measured-frame-rate-352x288" range="583-1019" />
|
||||
<!-- measured 90%:196-207 med:196 N=2 -->
|
||||
<Limit name="measured-frame-rate-640x360" range="196-608" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:177-180 med:178 N=2 -->
|
||||
<Limit name="measured-frame-rate-720x480" range="177-495" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:81-82 med:82 N=2 -->
|
||||
<Limit name="measured-frame-rate-1280x720" range="81-165" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:45-47 med:46 N=2 -->
|
||||
<Limit name="measured-frame-rate-1920x1080" range="45-87" /> <!-- v90%=1.0 -->
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.mpeg4.decoder" type="video/mp4v-es" update="true">
|
||||
<Limit name="measured-frame-rate-176x144" range="1215-1823" />
|
||||
<Limit name="measured-frame-rate-480x360" range="830-1246" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="265-397" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
|
||||
<Limit name="measured-frame-rate-320x180" range="847-1271" />
|
||||
<Limit name="measured-frame-rate-640x360" range="412-618" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="119-178" />
|
||||
<Limit name="measured-frame-rate-1920x1080" range="28-55" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
|
||||
<Limit name="measured-frame-rate-320x180" range="622-934" />
|
||||
<Limit name="measured-frame-rate-640x360" range="418-627" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="123-185" />
|
||||
<Limit name="measured-frame-rate-1920x1080" range="75-112" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.google.av1.decoder" type="video/av01" update="true">
|
||||
<Limit name="measured-frame-rate-352x288" range="630-748" />
|
||||
<Limit name="measured-frame-rate-640x360" range="586-700" />
|
||||
<Limit name="measured-frame-rate-720x480" range="575-690" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="247-460" />
|
||||
<Limit name="measured-frame-rate-1920x1080" range="219-252" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.google.av1.decoder.secure" type="video/av01" update="true">
|
||||
<Limit name="measured-frame-rate-352x288" range="630-748" />
|
||||
<Limit name="measured-frame-rate-640x360" range="586-700" />
|
||||
<Limit name="measured-frame-rate-720x480" range="575-690" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="247-460" />
|
||||
<Limit name="measured-frame-rate-1920x1080" range="219-252" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.av1.decoder" type="video/av01" update="true">
|
||||
<Limit name="measured-frame-rate-352x288" range="358-383" />
|
||||
<Limit name="measured-frame-rate-640x360" range="207-221" />
|
||||
<Limit name="measured-frame-rate-720x480" range="106-148" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="65-71" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.av1-dav1d.decoder" type="video/av01" update="true">
|
||||
<Limit name="measured-frame-rate-352x288" range="848-1033" />
|
||||
<Limit name="measured-frame-rate-640x360" range="450-685" />
|
||||
<Limit name="measured-frame-rate-720x480" range="406-484" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="148-187" />
|
||||
</MediaCodec>
|
||||
</Decoders>
|
||||
|
||||
<Encoders>
|
||||
<MediaCodec name="c2.exynos.h264.encoder" type="video/avc" update="true">
|
||||
<Limit name="measured-frame-rate-320x240" range="372-551" />
|
||||
<Limit name="measured-frame-rate-720x480" range="221-308" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="151-190" />
|
||||
<Limit name="measured-frame-rate-1920x1080" range="58-99" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.hevc.encoder" type="video/hevc" update="true">
|
||||
<Limit name="measured-frame-rate-320x240" range="371-553" />
|
||||
<Limit name="measured-frame-rate-720x480" range="214-305" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="154-198" />
|
||||
<Limit name="measured-frame-rate-1920x1080" range="46-97" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.mpeg4.encoder" type="video/mp4v-es" update="true">
|
||||
<Limit name="measured-frame-rate-176x144" range="380-566" />
|
||||
<Limit name="measured-frame-rate-352x288" range="222-250" />
|
||||
<Limit name="measured-frame-rate-640x480" range="103-124" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.h263.encoder" type="video/3gpp" update="true">
|
||||
<Limit name="measured-frame-rate-176x144" range="500-751" />
|
||||
<Limit name="measured-frame-rate-352x288" range="236-355" />
|
||||
<Limit name="measured-frame-rate-704x576" range="76-114" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
|
||||
<Limit name="measured-frame-rate-320x180" range="378-488" />
|
||||
<Limit name="measured-frame-rate-640x360" range="267-351" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="113-170" />
|
||||
<Limit name="measured-frame-rate-1920x1080" range="55-82" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.vp9.encoder" type="video/x-vnd.on2.vp9" update="true">
|
||||
<Limit name="measured-frame-rate-320x180" range="302-453" />
|
||||
<Limit name="measured-frame-rate-640x360" range="188-283" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="160-240" />
|
||||
<Limit name="measured-frame-rate-1920x1080" range="100-151" />
|
||||
</MediaCodec>
|
||||
|
||||
<MediaCodec name="c2.android.h263.encoder" type="video/3gpp" update="true">
|
||||
<Limit name="measured-frame-rate-176x144" range="1452-2178" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.avc.encoder" type="video/avc" update="true">
|
||||
<!-- measured 90%:345-350 med:345 N=2 -->
|
||||
<Limit name="measured-frame-rate-320x240" range="345-347" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:101-103 med:101 N=2 -->
|
||||
<Limit name="measured-frame-rate-720x480" range="101-102" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:54-55 med:54 N=2 -->
|
||||
<Limit name="measured-frame-rate-1280x720" range="54-54" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:28-30 med:29 N=2 -->
|
||||
<Limit name="measured-frame-rate-1920x1080" range="28-29" /> <!-- v90%=1.0 -->
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.hevc.encoder" type="video/hevc" update="true">
|
||||
<!-- measured 90%:61-65 med:62 N=8 -->
|
||||
<Limit name="measured-frame-rate-320x240" range="50-80" /> <!-- v90%=1.0 -->
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.mpeg4.encoder" type="video/mp4v-es" update="true">
|
||||
<Limit name="measured-frame-rate-176x144" range="1201-1801" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
|
||||
<!-- measured 90%:49-87 med:50 SLOW N=2 -->
|
||||
<Limit name="measured-frame-rate-320x180" range="394-395" /> <!-- v90%=1.3 -->
|
||||
<!-- measured 90%:55-57 med:56 N=2 -->
|
||||
<Limit name="measured-frame-rate-640x360" range="196-197" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:34-35 med:34 N=2 -->
|
||||
<Limit name="measured-frame-rate-1280x720" range="34-34" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:29-31 med:30 N=2 -->
|
||||
<Limit name="measured-frame-rate-1920x1080" range="29-30" /> <!-- v90%=1.0 -->
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.vp9.encoder" type="video/x-vnd.on2.vp9" update="true">
|
||||
<Limit name="measured-frame-rate-320x180" range="345-518" />
|
||||
<Limit name="measured-frame-rate-640x360" range="91-136" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="24-36" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.av1.encoder" type="video/av01" update="true">
|
||||
<!-- measured 90%:354-361 med:355 N=2 -->
|
||||
<Limit name="measured-frame-rate-320x240" range="354-358" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:81-85 med:81 N=2 -->
|
||||
<Limit name="measured-frame-rate-720x480" range="81-83" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:32-33 med:33 N=2 -->
|
||||
<Limit name="measured-frame-rate-1280x720" range="32-33" /> <!-- v90%=1.0 -->
|
||||
</MediaCodec>
|
||||
</Encoders>
|
||||
</MediaCodecs>
|
||||
@@ -1,895 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2010 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.
|
||||
-->
|
||||
<!DOCTYPE MediaSettings [
|
||||
<!ELEMENT MediaSettings (CamcorderProfiles,
|
||||
EncoderOutputFileFormat+,
|
||||
VideoEncoderCap+,
|
||||
AudioEncoderCap+,
|
||||
VideoDecoderCap,
|
||||
AudioDecoderCap)>
|
||||
<!ELEMENT CamcorderProfiles (EncoderProfile+, ImageEncoding+, ImageDecoding, Camera)>
|
||||
<!ELEMENT EncoderProfile (Video, Audio)>
|
||||
<!ATTLIST EncoderProfile quality (high|low) #REQUIRED>
|
||||
<!ATTLIST EncoderProfile fileFormat (mp4|3gp) #REQUIRED>
|
||||
<!ATTLIST EncoderProfile duration (30|60) #REQUIRED>
|
||||
<!ELEMENT Video EMPTY>
|
||||
<!ATTLIST Video codec (h264|h263|m4v) #REQUIRED>
|
||||
<!ATTLIST Video bitRate CDATA #REQUIRED>
|
||||
<!ATTLIST Video width CDATA #REQUIRED>
|
||||
<!ATTLIST Video height CDATA #REQUIRED>
|
||||
<!ATTLIST Video frameRate CDATA #REQUIRED>
|
||||
<!ELEMENT Audio EMPTY>
|
||||
<!ATTLIST Audio codec (amrnb|amrwb|aac) #REQUIRED>
|
||||
<!ATTLIST Audio bitRate CDATA #REQUIRED>
|
||||
<!ATTLIST Audio sampleRate CDATA #REQUIRED>
|
||||
<!ATTLIST Audio channels (1|2) #REQUIRED>
|
||||
<!ELEMENT ImageEncoding EMPTY>
|
||||
<!ATTLIST ImageEncoding quality (90|80|70|60|50|40) #REQUIRED>
|
||||
<!ELEMENT ImageDecoding EMPTY>
|
||||
<!ATTLIST ImageDecoding memCap CDATA #REQUIRED>
|
||||
<!ELEMENT Camera EMPTY>
|
||||
<!ATTLIST Camera previewFrameRate CDATA #REQUIRED>
|
||||
<!ELEMENT EncoderOutputFileFormat EMPTY>
|
||||
<!ATTLIST EncoderOutputFileFormat name (mp4|3gp) #REQUIRED>
|
||||
<!ELEMENT VideoEncoderCap EMPTY>
|
||||
<!ATTLIST VideoEncoderCap name (h264|h263|m4v|wmv) #REQUIRED>
|
||||
<!ATTLIST VideoEncoderCap enabled (true|false) #REQUIRED>
|
||||
<!ATTLIST VideoEncoderCap minBitRate CDATA #REQUIRED>
|
||||
<!ATTLIST VideoEncoderCap maxBitRate CDATA #REQUIRED>
|
||||
<!ATTLIST VideoEncoderCap minFrameWidth CDATA #REQUIRED>
|
||||
<!ATTLIST VideoEncoderCap maxFrameWidth CDATA #REQUIRED>
|
||||
<!ATTLIST VideoEncoderCap minFrameHeight CDATA #REQUIRED>
|
||||
<!ATTLIST VideoEncoderCap maxFrameHeight CDATA #REQUIRED>
|
||||
<!ATTLIST VideoEncoderCap minFrameRate CDATA #REQUIRED>
|
||||
<!ATTLIST VideoEncoderCap maxFrameRate CDATA #REQUIRED>
|
||||
<!ELEMENT AudioEncoderCap EMPTY>
|
||||
<!ATTLIST AudioEncoderCap name (amrnb|amrwb|aac|wma) #REQUIRED>
|
||||
<!ATTLIST AudioEncoderCap enabled (true|false) #REQUIRED>
|
||||
<!ATTLIST AudioEncoderCap minBitRate CDATA #REQUIRED>
|
||||
<!ATTLIST AudioEncoderCap maxBitRate CDATA #REQUIRED>
|
||||
<!ATTLIST AudioEncoderCap minSampleRate CDATA #REQUIRED>
|
||||
<!ATTLIST AudioEncoderCap maxSampleRate CDATA #REQUIRED>
|
||||
<!ATTLIST AudioEncoderCap minChannels (1|2) #REQUIRED>
|
||||
<!ATTLIST AudioEncoderCap maxChannels (1|2) #REQUIRED>
|
||||
<!ELEMENT VideoDecoderCap EMPTY>
|
||||
<!ATTLIST VideoDecoderCap name (wmv) #REQUIRED>
|
||||
<!ATTLIST VideoDecoderCap enabled (true|false) #REQUIRED>
|
||||
<!ELEMENT AudioDecoderCap EMPTY>
|
||||
<!ATTLIST AudioDecoderCap name (wma) #REQUIRED>
|
||||
<!ATTLIST AudioDecoderCap enabled (true|false) #REQUIRED>
|
||||
]>
|
||||
<!--
|
||||
This file is used to declare the multimedia profiles and capabilities
|
||||
on an android-powered device.
|
||||
-->
|
||||
<MediaSettings>
|
||||
<!-- Each camcorder profile defines a set of predefined configuration parameters -->
|
||||
<CamcorderProfiles cameraId="0">
|
||||
|
||||
<EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="3840"
|
||||
height="2160"
|
||||
frameRate="60" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="60" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="720p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="8000000"
|
||||
width="1280"
|
||||
height="720"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="480p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="3000000"
|
||||
width="720"
|
||||
height="480"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="3840"
|
||||
height="2160"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="8000000"
|
||||
width="1280"
|
||||
height="720"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="3000000"
|
||||
width="720"
|
||||
height="480"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="highspeed1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="42000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="240" />
|
||||
|
||||
<!-- audio setting is ignored -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="48000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<ImageEncoding quality="90" />
|
||||
<ImageEncoding quality="80" />
|
||||
<ImageEncoding quality="70" />
|
||||
<ImageDecoding memCap="20000000" />
|
||||
|
||||
</CamcorderProfiles>
|
||||
|
||||
<CamcorderProfiles cameraId="1">
|
||||
|
||||
<EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="720p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="8000000"
|
||||
width="1280"
|
||||
height="720"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
|
||||
</EncoderProfile>
|
||||
<EncoderProfile quality="480p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="3000000"
|
||||
width="720"
|
||||
height="480"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="8000000"
|
||||
width="1280"
|
||||
height="720"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="3000000"
|
||||
width="720"
|
||||
height="480"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<ImageEncoding quality="90" />
|
||||
<ImageEncoding quality="80" />
|
||||
<ImageEncoding quality="70" />
|
||||
<ImageDecoding memCap="20000000" />
|
||||
|
||||
</CamcorderProfiles>
|
||||
|
||||
<CamcorderProfiles cameraId="2">
|
||||
|
||||
<EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="3840"
|
||||
height="2160"
|
||||
frameRate="60" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="720p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="8000000"
|
||||
width="1280"
|
||||
height="720"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
|
||||
</EncoderProfile>
|
||||
<EncoderProfile quality="480p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="3000000"
|
||||
width="720"
|
||||
height="480"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="8000000"
|
||||
width="1280"
|
||||
height="720"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="3000000"
|
||||
width="720"
|
||||
height="480"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="highspeed1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="42000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="240" />
|
||||
|
||||
<!-- audio setting is ignored -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="48000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<ImageEncoding quality="90" />
|
||||
<ImageEncoding quality="80" />
|
||||
<ImageEncoding quality="70" />
|
||||
<ImageDecoding memCap="20000000" />
|
||||
|
||||
</CamcorderProfiles>
|
||||
|
||||
<CamcorderProfiles cameraId="3">
|
||||
|
||||
<EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="720p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="8000000"
|
||||
width="1280"
|
||||
height="720"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
|
||||
</EncoderProfile>
|
||||
<EncoderProfile quality="480p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="3000000"
|
||||
width="720"
|
||||
height="480"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="8000000"
|
||||
width="1280"
|
||||
height="720"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="3000000"
|
||||
width="720"
|
||||
height="480"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<ImageEncoding quality="90" />
|
||||
<ImageEncoding quality="80" />
|
||||
<ImageEncoding quality="70" />
|
||||
<ImageDecoding memCap="20000000" />
|
||||
|
||||
</CamcorderProfiles>
|
||||
|
||||
<CamcorderProfiles cameraId="4">
|
||||
|
||||
<EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="720p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="8000000"
|
||||
width="1280"
|
||||
height="720"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
|
||||
</EncoderProfile>
|
||||
<EncoderProfile quality="480p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="3000000"
|
||||
width="720"
|
||||
height="480"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="8000000"
|
||||
width="1280"
|
||||
height="720"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="3000000"
|
||||
width="720"
|
||||
height="480"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<ImageEncoding quality="90" />
|
||||
<ImageEncoding quality="80" />
|
||||
<ImageEncoding quality="70" />
|
||||
<ImageDecoding memCap="20000000" />
|
||||
|
||||
</CamcorderProfiles>
|
||||
|
||||
<CamcorderProfiles cameraId="5">
|
||||
|
||||
<EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="3840"
|
||||
height="2160"
|
||||
frameRate="60" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="720p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="8000000"
|
||||
width="1280"
|
||||
height="720"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="480p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="3000000"
|
||||
width="720"
|
||||
height="480"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="3840"
|
||||
height="2160"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="8000000"
|
||||
width="1280"
|
||||
height="720"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="3000000"
|
||||
width="720"
|
||||
height="480"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="highspeed1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="42000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="240" />
|
||||
|
||||
<!-- audio setting is ignored -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="48000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<ImageEncoding quality="90" />
|
||||
<ImageEncoding quality="80" />
|
||||
<ImageEncoding quality="70" />
|
||||
<ImageDecoding memCap="20000000" />
|
||||
|
||||
</CamcorderProfiles>
|
||||
|
||||
<CamcorderProfiles cameraId="6">
|
||||
|
||||
<EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="720p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="8000000"
|
||||
width="1280"
|
||||
height="720"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
|
||||
</EncoderProfile>
|
||||
<EncoderProfile quality="480p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="3000000"
|
||||
width="720"
|
||||
height="480"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="8000000"
|
||||
width="1280"
|
||||
height="720"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="3000000"
|
||||
width="720"
|
||||
height="480"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<ImageEncoding quality="90" />
|
||||
<ImageEncoding quality="80" />
|
||||
<ImageEncoding quality="70" />
|
||||
<ImageDecoding memCap="20000000" />
|
||||
|
||||
</CamcorderProfiles>
|
||||
|
||||
|
||||
|
||||
<EncoderOutputFileFormat name="3gp" />
|
||||
<EncoderOutputFileFormat name="mp4" />
|
||||
|
||||
<!--
|
||||
If a codec is not enabled, it is invisible to the applications
|
||||
In other words, the applications won't be able to use the codec
|
||||
or query the capabilities of the codec at all if it is disabled
|
||||
-->
|
||||
|
||||
<!--
|
||||
FIXME : we only check Mpeg4 encorder cap and other codec doesn't check
|
||||
codec cap
|
||||
-->
|
||||
<VideoEncoderCap name="h264" enabled="true"
|
||||
minBitRate="64000" maxBitRate="12000000"
|
||||
minFrameWidth="128" maxFrameWidth="3840"
|
||||
minFrameHeight="96" maxFrameHeight="2160"
|
||||
minFrameRate="15" maxFrameRate="30" />
|
||||
|
||||
<VideoEncoderCap name="h263" enabled="true"
|
||||
minBitRate="64000" maxBitRate="1000000"
|
||||
minFrameWidth="128" maxFrameWidth="1920"
|
||||
minFrameHeight="96" maxFrameHeight="1080"
|
||||
minFrameRate="15" maxFrameRate="30" />
|
||||
|
||||
<VideoEncoderCap name="m4v" enabled="true"
|
||||
minBitRate="64000" maxBitRate="2000000"
|
||||
minFrameWidth="128" maxFrameWidth="1920"
|
||||
minFrameHeight="96" maxFrameHeight="1080"
|
||||
minFrameRate="15" maxFrameRate="30" />
|
||||
|
||||
<AudioEncoderCap name="aac" enabled="true"
|
||||
minBitRate="758" maxBitRate="288000"
|
||||
minSampleRate="8000" maxSampleRate="48000"
|
||||
minChannels="1" maxChannels="1" />
|
||||
|
||||
<AudioEncoderCap name="heaac" enabled="true"
|
||||
minBitRate="8000" maxBitRate="64000"
|
||||
minSampleRate="16000" maxSampleRate="48000"
|
||||
minChannels="1" maxChannels="1" />
|
||||
|
||||
<AudioEncoderCap name="aaceld" enabled="true"
|
||||
minBitRate="16000" maxBitRate="192000"
|
||||
minSampleRate="16000" maxSampleRate="48000"
|
||||
minChannels="1" maxChannels="1" />
|
||||
|
||||
<AudioEncoderCap name="amrwb" enabled="true"
|
||||
minBitRate="6600" maxBitRate="23050"
|
||||
minSampleRate="16000" maxSampleRate="16000"
|
||||
minChannels="1" maxChannels="1" />
|
||||
|
||||
<AudioEncoderCap name="amrnb" enabled="true"
|
||||
minBitRate="5525" maxBitRate="12200"
|
||||
minSampleRate="8000" maxSampleRate="8000"
|
||||
minChannels="1" maxChannels="1" />
|
||||
|
||||
<!--
|
||||
FIXME:
|
||||
We do not check decoder capabilities at present
|
||||
At present, we only check whether windows media is visible
|
||||
for TEST applications. For other applications, we do
|
||||
not perform any checks at all.
|
||||
-->
|
||||
<VideoDecoderCap name="wmv" enabled="false"/>
|
||||
<AudioDecoderCap name="wma" enabled="false"/>
|
||||
</MediaSettings>
|
||||
@@ -21,6 +21,7 @@
|
||||
<!-- Defines the actions shown in advanced reboot submenu -->
|
||||
<string-array name="config_restartActionsList">
|
||||
<item>restart</item>
|
||||
<item>restart_systemui</item>
|
||||
<item>restart_recovery</item>
|
||||
<item>restart_fastboot</item>
|
||||
<item>restart_bootloader</item>
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Copyright (C) 2021 The LineageOS 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>
|
||||
<bool name="call_recording_enabled">true</bool>
|
||||
<integer name="call_recording_audio_source">4</integer>
|
||||
</resources>
|
||||
@@ -1,18 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2021 The LineageOS 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.
|
||||
SPDX-FileCopyrightText: 2021 The LineageOS Project
|
||||
SPDX-License-Identifier: Apache-2.0
|
||||
-->
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="org.lineageos.settings"
|
||||
|
||||
@@ -1,17 +1,6 @@
|
||||
/*
|
||||
* Copyright (C) 2021 The LineageOS 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.
|
||||
* SPDX-FileCopyrightText: 2021 The LineageOS Project
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package org.lineageos.settings;
|
||||
|
||||
@@ -1,17 +1,6 @@
|
||||
/*
|
||||
* Copyright (C) 2021 The LineageOS 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.
|
||||
* SPDX-FileCopyrightText: 2021 The LineageOS Project
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package org.lineageos.settings;
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
// Copyright (C) 2020 The Android Open Source Project
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
soong_namespace {
|
||||
imports: [
|
||||
"hardware/google/pixel",
|
||||
"device/google/gs-common/powerstats",
|
||||
],
|
||||
}
|
||||
|
||||
package {
|
||||
// See: http://go/android-license-faq
|
||||
// A large-scale-change added 'default_applicable_licenses' to import
|
||||
// all of the 'license_kinds' from "//device/google/gs201:device_google_gs201_license"
|
||||
// to get the below license kinds:
|
||||
// SPDX-license-identifier-Apache-2.0
|
||||
default_applicable_licenses: [
|
||||
"//device/google/gs201:device_google_gs201_license",
|
||||
],
|
||||
}
|
||||
|
||||
cc_library {
|
||||
name: "android.hardware.power.stats-impl.gs201",
|
||||
vendor_available: true,
|
||||
export_include_dirs: ["include"],
|
||||
defaults: ["powerstats_pixel_defaults"],
|
||||
|
||||
srcs: [
|
||||
"*.cpp",
|
||||
],
|
||||
|
||||
shared_libs: [
|
||||
"android.hardware.power.stats-impl.gs-common",
|
||||
"android.hardware.power.stats-impl.pixel",
|
||||
],
|
||||
}
|
||||
@@ -1,663 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2020 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include <PowerStatsAidl.h>
|
||||
#include <Gs201CommonDataProviders.h>
|
||||
#include <AdaptiveDvfsStateResidencyDataProvider.h>
|
||||
#include <AocTimedStateResidencyDataProvider.h>
|
||||
#include <DevfreqStateResidencyDataProvider.h>
|
||||
#include <DisplayMrrStateResidencyDataProvider.h>
|
||||
#include <DvfsStateResidencyDataProvider.h>
|
||||
#include <UfsStateResidencyDataProvider.h>
|
||||
#include <dataproviders/GenericStateResidencyDataProvider.h>
|
||||
#include <dataproviders/IioEnergyMeterDataProvider.h>
|
||||
#include <dataproviders/PowerStatsEnergyConsumer.h>
|
||||
#include <dataproviders/PowerStatsEnergyAttribution.h>
|
||||
#include <dataproviders/PixelStateResidencyDataProvider.h>
|
||||
#include <dataproviders/WlanStateResidencyDataProvider.h>
|
||||
|
||||
#include <android-base/logging.h>
|
||||
#include <android-base/properties.h>
|
||||
#include <android/binder_manager.h>
|
||||
#include <android/binder_process.h>
|
||||
#include <log/log.h>
|
||||
|
||||
using aidl::android::hardware::power::stats::AdaptiveDvfsStateResidencyDataProvider;
|
||||
using aidl::android::hardware::power::stats::AocTimedStateResidencyDataProvider;
|
||||
using aidl::android::hardware::power::stats::DevfreqStateResidencyDataProvider;
|
||||
using aidl::android::hardware::power::stats::DisplayMrrStateResidencyDataProvider;
|
||||
using aidl::android::hardware::power::stats::DvfsStateResidencyDataProvider;
|
||||
using aidl::android::hardware::power::stats::UfsStateResidencyDataProvider;
|
||||
using aidl::android::hardware::power::stats::EnergyConsumerType;
|
||||
using aidl::android::hardware::power::stats::GenericStateResidencyDataProvider;
|
||||
using aidl::android::hardware::power::stats::IioEnergyMeterDataProvider;
|
||||
using aidl::android::hardware::power::stats::PixelStateResidencyDataProvider;
|
||||
using aidl::android::hardware::power::stats::PowerStatsEnergyConsumer;
|
||||
using aidl::android::hardware::power::stats::WlanStateResidencyDataProvider;
|
||||
|
||||
// TODO (b/181070764) (b/182941084):
|
||||
// Remove this when Wifi/BT energy consumption models are available or revert before ship
|
||||
using aidl::android::hardware::power::stats::EnergyConsumerResult;
|
||||
using aidl::android::hardware::power::stats::Channel;
|
||||
using aidl::android::hardware::power::stats::EnergyMeasurement;
|
||||
class PlaceholderEnergyConsumer : public PowerStats::IEnergyConsumer {
|
||||
public:
|
||||
PlaceholderEnergyConsumer(std::shared_ptr<PowerStats> p, EnergyConsumerType type,
|
||||
std::string name) : kType(type), kName(name), mPowerStats(p), mChannelId(-1) {
|
||||
std::vector<Channel> channels;
|
||||
mPowerStats->getEnergyMeterInfo(&channels);
|
||||
|
||||
for (const auto &c : channels) {
|
||||
if (c.name == "VSYS_PWR_WLAN_BT") {
|
||||
mChannelId = c.id;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
std::pair<EnergyConsumerType, std::string> getInfo() override { return {kType, kName}; }
|
||||
|
||||
std::optional<EnergyConsumerResult> getEnergyConsumed() override {
|
||||
int64_t totalEnergyUWs = 0;
|
||||
int64_t timestampMs = 0;
|
||||
if (mChannelId != -1) {
|
||||
std::vector<EnergyMeasurement> measurements;
|
||||
if (mPowerStats->readEnergyMeter({mChannelId}, &measurements).isOk()) {
|
||||
for (const auto &m : measurements) {
|
||||
totalEnergyUWs += m.energyUWs;
|
||||
timestampMs = m.timestampMs;
|
||||
}
|
||||
} else {
|
||||
LOG(ERROR) << "Failed to read energy meter";
|
||||
return {};
|
||||
}
|
||||
}
|
||||
|
||||
return EnergyConsumerResult{.timestampMs = timestampMs,
|
||||
.energyUWs = totalEnergyUWs>>1};
|
||||
}
|
||||
|
||||
std::string getConsumerName() override {
|
||||
return kName;
|
||||
};
|
||||
|
||||
private:
|
||||
const EnergyConsumerType kType;
|
||||
const std::string kName;
|
||||
std::shared_ptr<PowerStats> mPowerStats;
|
||||
int32_t mChannelId;
|
||||
};
|
||||
|
||||
void addPlaceholderEnergyConsumers(std::shared_ptr<PowerStats> p) {
|
||||
p->addEnergyConsumer(
|
||||
std::make_unique<PlaceholderEnergyConsumer>(p, EnergyConsumerType::WIFI, "Wifi"));
|
||||
p->addEnergyConsumer(
|
||||
std::make_unique<PlaceholderEnergyConsumer>(p, EnergyConsumerType::BLUETOOTH, "BT"));
|
||||
}
|
||||
|
||||
void addAoC(std::shared_ptr<PowerStats> p) {
|
||||
// When the given timeout is 0, the timeout will be replaced with "120ms * statesCount".
|
||||
static const uint64_t TIMEOUT_MILLIS = 0;
|
||||
// AoC clock is synced from "libaoc.c"
|
||||
static const uint64_t AOC_CLOCK = 24576;
|
||||
std::string prefix = "/sys/devices/platform/19000000.aoc/control/";
|
||||
|
||||
// Add AoC cores (a32, ff1, hf0, and hf1)
|
||||
std::vector<std::pair<std::string, std::string>> coreIds = {
|
||||
{"AoC-A32", prefix + "a32_"},
|
||||
{"AoC-FF1", prefix + "ff1_"},
|
||||
{"AoC-HF1", prefix + "hf1_"},
|
||||
{"AoC-HF0", prefix + "hf0_"},
|
||||
};
|
||||
std::vector<std::pair<std::string, std::string>> coreStates = {
|
||||
{"DWN", "off"}, {"RET", "retention"}, {"WFI", "wfi"}};
|
||||
p->addStateResidencyDataProvider(std::make_unique<AocTimedStateResidencyDataProvider>(coreIds,
|
||||
coreStates, TIMEOUT_MILLIS, AOC_CLOCK));
|
||||
|
||||
// Add AoC voltage stats
|
||||
std::vector<std::pair<std::string, std::string>> voltageIds = {
|
||||
{"AoC-Voltage", prefix + "voltage_"},
|
||||
};
|
||||
std::vector<std::pair<std::string, std::string>> voltageStates = {{"NOM", "nominal"},
|
||||
{"SUD", "super_underdrive"},
|
||||
{"UUD", "ultra_underdrive"},
|
||||
{"UD", "underdrive"}};
|
||||
p->addStateResidencyDataProvider(
|
||||
std::make_unique<AocTimedStateResidencyDataProvider>(voltageIds, voltageStates,
|
||||
TIMEOUT_MILLIS, AOC_CLOCK));
|
||||
|
||||
// Add AoC monitor mode
|
||||
std::vector<std::pair<std::string, std::string>> monitorIds = {
|
||||
{"AoC", prefix + "monitor_"},
|
||||
};
|
||||
std::vector<std::pair<std::string, std::string>> monitorStates = {
|
||||
{"MON", "mode"},
|
||||
};
|
||||
p->addStateResidencyDataProvider(
|
||||
std::make_unique<AocTimedStateResidencyDataProvider>(monitorIds, monitorStates,
|
||||
TIMEOUT_MILLIS, AOC_CLOCK));
|
||||
|
||||
// Add AoC restart count
|
||||
const GenericStateResidencyDataProvider::StateResidencyConfig restartCountConfig = {
|
||||
.entryCountSupported = true,
|
||||
.entryCountPrefix = "",
|
||||
.totalTimeSupported = false,
|
||||
.lastEntrySupported = false,
|
||||
};
|
||||
const std::vector<std::pair<std::string, std::string>> restartCountHeaders = {
|
||||
std::make_pair("RESTART", ""),
|
||||
};
|
||||
std::vector<GenericStateResidencyDataProvider::PowerEntityConfig> cfgs;
|
||||
cfgs.emplace_back(
|
||||
generateGenericStateResidencyConfigs(restartCountConfig, restartCountHeaders),
|
||||
"AoC-Count", "");
|
||||
p->addStateResidencyDataProvider(std::make_unique<GenericStateResidencyDataProvider>(
|
||||
"/sys/devices/platform/19000000.aoc/restart_count", cfgs));
|
||||
}
|
||||
|
||||
void addDvfsStats(std::shared_ptr<PowerStats> p) {
|
||||
// A constant to represent the number of nanoseconds in one millisecond
|
||||
const int NS_TO_MS = 1000000;
|
||||
std::string path = "/sys/devices/platform/acpm_stats/fvp_stats";
|
||||
|
||||
std::vector<std::pair<std::string, std::string>> adpCfgs = {
|
||||
std::make_pair("CL0", "/sys/devices/system/cpu/cpufreq/policy0/stats"),
|
||||
std::make_pair("CL1", "/sys/devices/system/cpu/cpufreq/policy4/stats"),
|
||||
std::make_pair("CL2", "/sys/devices/system/cpu/cpufreq/policy6/stats")
|
||||
};
|
||||
p->addStateResidencyDataProvider(std::make_unique<AdaptiveDvfsStateResidencyDataProvider>(
|
||||
path, NS_TO_MS, adpCfgs));
|
||||
|
||||
std::vector<DvfsStateResidencyDataProvider::Config> cfgs;
|
||||
|
||||
cfgs.push_back({"TPU", {
|
||||
std::make_pair("1066MHz", "1066000"),
|
||||
std::make_pair("845MHz", "845000"),
|
||||
std::make_pair("627MHz", "627000"),
|
||||
std::make_pair("401MHz", "401000"),
|
||||
std::make_pair("226MHz", "226000"),
|
||||
std::make_pair("0MHz", "0"),
|
||||
}});
|
||||
|
||||
cfgs.push_back({"AUR", {
|
||||
std::make_pair("1160MHz", "1160000"),
|
||||
std::make_pair("750MHz", "750000"),
|
||||
std::make_pair("373MHz", "373000"),
|
||||
std::make_pair("178MHz", "178000"),
|
||||
std::make_pair("0MHz", "0"),
|
||||
}});
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<DvfsStateResidencyDataProvider>(
|
||||
path, NS_TO_MS, cfgs));
|
||||
}
|
||||
|
||||
void addSoC(std::shared_ptr<PowerStats> p) {
|
||||
// A constant to represent the number of nanoseconds in one millisecond.
|
||||
const int NS_TO_MS = 1000000;
|
||||
|
||||
// ACPM stats are reported in nanoseconds. The transform function
|
||||
// converts nanoseconds to milliseconds.
|
||||
std::function<uint64_t(uint64_t)> acpmNsToMs = [](uint64_t a) { return a / NS_TO_MS; };
|
||||
const GenericStateResidencyDataProvider::StateResidencyConfig lpmStateConfig = {
|
||||
.entryCountSupported = true,
|
||||
.entryCountPrefix = "success_count:",
|
||||
.totalTimeSupported = true,
|
||||
.totalTimePrefix = "total_time_ns:",
|
||||
.totalTimeTransform = acpmNsToMs,
|
||||
.lastEntrySupported = true,
|
||||
.lastEntryPrefix = "last_entry_time_ns:",
|
||||
.lastEntryTransform = acpmNsToMs,
|
||||
};
|
||||
const GenericStateResidencyDataProvider::StateResidencyConfig downStateConfig = {
|
||||
.entryCountSupported = true,
|
||||
.entryCountPrefix = "down_count:",
|
||||
.totalTimeSupported = true,
|
||||
.totalTimePrefix = "total_down_time_ns:",
|
||||
.totalTimeTransform = acpmNsToMs,
|
||||
.lastEntrySupported = true,
|
||||
.lastEntryPrefix = "last_down_time_ns:",
|
||||
.lastEntryTransform = acpmNsToMs,
|
||||
};
|
||||
const GenericStateResidencyDataProvider::StateResidencyConfig reqStateConfig = {
|
||||
.entryCountSupported = true,
|
||||
.entryCountPrefix = "req_up_count:",
|
||||
.totalTimeSupported = true,
|
||||
.totalTimePrefix = "total_req_up_time_ns:",
|
||||
.totalTimeTransform = acpmNsToMs,
|
||||
.lastEntrySupported = true,
|
||||
.lastEntryPrefix = "last_req_up_time_ns:",
|
||||
.lastEntryTransform = acpmNsToMs,
|
||||
|
||||
};
|
||||
const std::vector<std::pair<std::string, std::string>> powerStateHeaders = {
|
||||
std::make_pair("SICD", "SICD"),
|
||||
std::make_pair("SLEEP", "SLEEP"),
|
||||
std::make_pair("SLEEP_SLCMON", "SLEEP_SLCMON"),
|
||||
std::make_pair("SLEEP_HSI1ON", "SLEEP_HSI1ON"),
|
||||
std::make_pair("STOP", "STOP"),
|
||||
};
|
||||
const std::vector<std::pair<std::string, std::string>> mifReqStateHeaders = {
|
||||
std::make_pair("AOC", "AOC"),
|
||||
std::make_pair("GSA", "GSA"),
|
||||
std::make_pair("TPU", "TPU"),
|
||||
};
|
||||
const std::vector<std::pair<std::string, std::string>> slcReqStateHeaders = {
|
||||
std::make_pair("AOC", "AOC"),
|
||||
};
|
||||
|
||||
std::vector<GenericStateResidencyDataProvider::PowerEntityConfig> cfgs;
|
||||
cfgs.emplace_back(generateGenericStateResidencyConfigs(lpmStateConfig, powerStateHeaders),
|
||||
"LPM", "LPM:");
|
||||
cfgs.emplace_back(generateGenericStateResidencyConfigs(downStateConfig, powerStateHeaders),
|
||||
"MIF", "MIF:");
|
||||
cfgs.emplace_back(generateGenericStateResidencyConfigs(reqStateConfig, mifReqStateHeaders),
|
||||
"MIF-REQ", "MIF_REQ:");
|
||||
cfgs.emplace_back(generateGenericStateResidencyConfigs(downStateConfig, powerStateHeaders),
|
||||
"SLC", "SLC:");
|
||||
cfgs.emplace_back(generateGenericStateResidencyConfigs(reqStateConfig, slcReqStateHeaders),
|
||||
"SLC-REQ", "SLC_REQ:");
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<GenericStateResidencyDataProvider>(
|
||||
"/sys/devices/platform/acpm_stats/soc_stats", cfgs));
|
||||
}
|
||||
|
||||
void setEnergyMeter(std::shared_ptr<PowerStats> p) {
|
||||
std::vector<std::string> deviceNames { "s2mpg12-odpm", "s2mpg13-odpm" };
|
||||
p->setEnergyMeterDataProvider(std::make_unique<IioEnergyMeterDataProvider>(deviceNames, true));
|
||||
}
|
||||
|
||||
void addCPUclusters(std::shared_ptr<PowerStats> p) {
|
||||
// A constant to represent the number of nanoseconds in one millisecond.
|
||||
const int NS_TO_MS = 1000000;
|
||||
|
||||
std::function<uint64_t(uint64_t)> acpmNsToMs = [](uint64_t a) { return a / NS_TO_MS; };
|
||||
const GenericStateResidencyDataProvider::StateResidencyConfig cpuStateConfig = {
|
||||
.entryCountSupported = true,
|
||||
.entryCountPrefix = "down_count:",
|
||||
.totalTimeSupported = true,
|
||||
.totalTimePrefix = "total_down_time_ns:",
|
||||
.totalTimeTransform = acpmNsToMs,
|
||||
.lastEntrySupported = true,
|
||||
.lastEntryPrefix = "last_down_time_ns:",
|
||||
.lastEntryTransform = acpmNsToMs,
|
||||
};
|
||||
|
||||
const std::vector<std::pair<std::string, std::string>> cpuStateHeaders = {
|
||||
std::make_pair("DOWN", ""),
|
||||
};
|
||||
|
||||
std::vector<GenericStateResidencyDataProvider::PowerEntityConfig> cfgs;
|
||||
for (std::string name : {"CORE00", "CORE01", "CORE02", "CORE03", "CORE10", "CORE11",
|
||||
"CORE20", "CORE21", "CLUSTER0", "CLUSTER1", "CLUSTER2"}) {
|
||||
cfgs.emplace_back(generateGenericStateResidencyConfigs(cpuStateConfig, cpuStateHeaders),
|
||||
name, name);
|
||||
}
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<GenericStateResidencyDataProvider>(
|
||||
"/sys/devices/platform/acpm_stats/core_stats", cfgs));
|
||||
|
||||
p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterConsumer(p,
|
||||
EnergyConsumerType::CPU_CLUSTER, "CPUCL0", {"S4M_VDD_CPUCL0"}));
|
||||
p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterConsumer(p,
|
||||
EnergyConsumerType::CPU_CLUSTER, "CPUCL1", {"S3M_VDD_CPUCL1"}));
|
||||
p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterConsumer(p,
|
||||
EnergyConsumerType::CPU_CLUSTER, "CPUCL2", {"S2M_VDD_CPUCL2"}));
|
||||
}
|
||||
|
||||
void addGPU(std::shared_ptr<PowerStats> p) {
|
||||
// Add gpu energy consumer
|
||||
std::map<std::string, int32_t> stateCoeffs;
|
||||
|
||||
// TODO (b/197721618): Measuring the GPU power numbers
|
||||
stateCoeffs = {
|
||||
{"202000", 890},
|
||||
{"251000", 1102},
|
||||
{"302000", 1308},
|
||||
{"351000", 1522},
|
||||
{"400000", 1772},
|
||||
{"471000", 2105},
|
||||
{"510000", 2292},
|
||||
{"572000", 2528},
|
||||
{"701000", 3127},
|
||||
{"762000", 3452},
|
||||
{"848000", 4044}};
|
||||
|
||||
p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterAndAttrConsumer(p,
|
||||
EnergyConsumerType::OTHER, "GPU", {"S8S_VDD_G3D_L2", "S2S_VDD_G3D"},
|
||||
{{UID_TIME_IN_STATE, "/sys/devices/platform/28000000.mali/uid_time_in_state"}},
|
||||
stateCoeffs));
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<DevfreqStateResidencyDataProvider>("GPU",
|
||||
"/sys/devices/platform/28000000.mali"));
|
||||
}
|
||||
|
||||
void addMobileRadio(std::shared_ptr<PowerStats> p)
|
||||
{
|
||||
// A constant to represent the number of microseconds in one millisecond.
|
||||
const int US_TO_MS = 1000;
|
||||
|
||||
// modem power_stats are reported in microseconds. The transform function
|
||||
// converts microseconds to milliseconds.
|
||||
std::function<uint64_t(uint64_t)> modemUsToMs = [](uint64_t a) { return a / US_TO_MS; };
|
||||
const GenericStateResidencyDataProvider::StateResidencyConfig powerStateConfig = {
|
||||
.entryCountSupported = true,
|
||||
.entryCountPrefix = "count:",
|
||||
.totalTimeSupported = true,
|
||||
.totalTimePrefix = "duration_usec:",
|
||||
.totalTimeTransform = modemUsToMs,
|
||||
.lastEntrySupported = true,
|
||||
.lastEntryPrefix = "last_entry_timestamp_usec:",
|
||||
.lastEntryTransform = modemUsToMs,
|
||||
};
|
||||
const std::vector<std::pair<std::string, std::string>> powerStateHeaders = {
|
||||
std::make_pair("SLEEP", "SLEEP:"),
|
||||
};
|
||||
|
||||
std::vector<GenericStateResidencyDataProvider::PowerEntityConfig> cfgs;
|
||||
cfgs.emplace_back(generateGenericStateResidencyConfigs(powerStateConfig, powerStateHeaders),
|
||||
"MODEM", "");
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<GenericStateResidencyDataProvider>(
|
||||
"/sys/devices/platform/cpif/modem/power_stats", cfgs));
|
||||
|
||||
p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterConsumer(p,
|
||||
EnergyConsumerType::MOBILE_RADIO, "MODEM",
|
||||
{"VSYS_PWR_MODEM", "VSYS_PWR_RFFE", "VSYS_PWR_MMWAVE"}));
|
||||
}
|
||||
|
||||
void addGNSS(std::shared_ptr<PowerStats> p)
|
||||
{
|
||||
// A constant to represent the number of microseconds in one millisecond.
|
||||
const int US_TO_MS = 1000;
|
||||
|
||||
// gnss power_stats are reported in microseconds. The transform function
|
||||
// converts microseconds to milliseconds.
|
||||
std::function<uint64_t(uint64_t)> gnssUsToMs = [](uint64_t a) { return a / US_TO_MS; };
|
||||
|
||||
const GenericStateResidencyDataProvider::StateResidencyConfig gnssStateConfig = {
|
||||
.entryCountSupported = true,
|
||||
.entryCountPrefix = "count:",
|
||||
.totalTimeSupported = true,
|
||||
.totalTimePrefix = "duration_usec:",
|
||||
.totalTimeTransform = gnssUsToMs,
|
||||
.lastEntrySupported = true,
|
||||
.lastEntryPrefix = "last_entry_timestamp_usec:",
|
||||
.lastEntryTransform = gnssUsToMs,
|
||||
};
|
||||
|
||||
const std::vector<std::pair<std::string, std::string>> gnssStateHeaders = {
|
||||
std::make_pair("ON", "GPS_ON:"),
|
||||
std::make_pair("OFF", "GPS_OFF:"),
|
||||
};
|
||||
|
||||
std::vector<GenericStateResidencyDataProvider::PowerEntityConfig> cfgs;
|
||||
cfgs.emplace_back(generateGenericStateResidencyConfigs(gnssStateConfig, gnssStateHeaders),
|
||||
"GPS", "");
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<GenericStateResidencyDataProvider>(
|
||||
"/dev/bbd_pwrstat", cfgs));
|
||||
|
||||
p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterConsumer(p,
|
||||
EnergyConsumerType::GNSS, "GPS", {"L9S_GNSS_CORE"}));
|
||||
}
|
||||
|
||||
void addPCIe(std::shared_ptr<PowerStats> p) {
|
||||
// Add PCIe power entities for Modem and WiFi
|
||||
const GenericStateResidencyDataProvider::StateResidencyConfig pcieStateConfig = {
|
||||
.entryCountSupported = true,
|
||||
.entryCountPrefix = "Cumulative count:",
|
||||
.totalTimeSupported = true,
|
||||
.totalTimePrefix = "Cumulative duration msec:",
|
||||
.lastEntrySupported = true,
|
||||
.lastEntryPrefix = "Last entry timestamp msec:",
|
||||
};
|
||||
const std::vector<std::pair<std::string, std::string>> pcieStateHeaders = {
|
||||
std::make_pair("UP", "Link up:"),
|
||||
std::make_pair("DOWN", "Link down:"),
|
||||
};
|
||||
|
||||
// Add PCIe - Modem
|
||||
const std::vector<GenericStateResidencyDataProvider::PowerEntityConfig> pcieModemCfgs = {
|
||||
{generateGenericStateResidencyConfigs(pcieStateConfig, pcieStateHeaders), "PCIe-Modem",
|
||||
"Version: 1"}
|
||||
};
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<GenericStateResidencyDataProvider>(
|
||||
"/sys/devices/platform/11920000.pcie/power_stats", pcieModemCfgs));
|
||||
|
||||
// Add PCIe - WiFi
|
||||
const std::vector<GenericStateResidencyDataProvider::PowerEntityConfig> pcieWifiCfgs = {
|
||||
{generateGenericStateResidencyConfigs(pcieStateConfig, pcieStateHeaders),
|
||||
"PCIe-WiFi", "Version: 1"}
|
||||
};
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<GenericStateResidencyDataProvider>(
|
||||
"/sys/devices/platform/14520000.pcie/power_stats", pcieWifiCfgs));
|
||||
}
|
||||
|
||||
void addWifi(std::shared_ptr<PowerStats> p) {
|
||||
// The transform function converts microseconds to milliseconds.
|
||||
std::function<uint64_t(uint64_t)> usecToMs = [](uint64_t a) { return a / 1000; };
|
||||
const GenericStateResidencyDataProvider::StateResidencyConfig stateConfig = {
|
||||
.entryCountSupported = true,
|
||||
.entryCountPrefix = "count:",
|
||||
.totalTimeSupported = true,
|
||||
.totalTimePrefix = "duration_usec:",
|
||||
.totalTimeTransform = usecToMs,
|
||||
.lastEntrySupported = true,
|
||||
.lastEntryPrefix = "last_entry_timestamp_usec:",
|
||||
.lastEntryTransform = usecToMs,
|
||||
};
|
||||
const GenericStateResidencyDataProvider::StateResidencyConfig pcieStateConfig = {
|
||||
.entryCountSupported = true,
|
||||
.entryCountPrefix = "count:",
|
||||
.totalTimeSupported = true,
|
||||
.totalTimePrefix = "duration_usec:",
|
||||
.totalTimeTransform = usecToMs,
|
||||
.lastEntrySupported = false,
|
||||
};
|
||||
|
||||
const std::vector<std::pair<std::string, std::string>> stateHeaders = {
|
||||
std::make_pair("AWAKE", "AWAKE:"),
|
||||
std::make_pair("ASLEEP", "ASLEEP:"),
|
||||
|
||||
};
|
||||
const std::vector<std::pair<std::string, std::string>> pcieStateHeaders = {
|
||||
std::make_pair("L0", "L0:"),
|
||||
std::make_pair("L1", "L1:"),
|
||||
std::make_pair("L1_1", "L1_1:"),
|
||||
std::make_pair("L1_2", "L1_2:"),
|
||||
std::make_pair("L2", "L2:"),
|
||||
};
|
||||
|
||||
const std::vector<GenericStateResidencyDataProvider::PowerEntityConfig> cfgs = {
|
||||
{generateGenericStateResidencyConfigs(stateConfig, stateHeaders), "WIFI", "WIFI"},
|
||||
{generateGenericStateResidencyConfigs(pcieStateConfig, pcieStateHeaders), "WIFI-PCIE",
|
||||
"WIFI-PCIE"}
|
||||
};
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<GenericStateResidencyDataProvider>("/sys/wifi/power_stats",
|
||||
cfgs));
|
||||
}
|
||||
|
||||
void addWlan(std::shared_ptr<PowerStats> p) {
|
||||
p->addStateResidencyDataProvider(std::make_unique<WlanStateResidencyDataProvider>(
|
||||
"WLAN",
|
||||
"/sys/kernel/wifi/power_stats"));
|
||||
}
|
||||
|
||||
void addUfs(std::shared_ptr<PowerStats> p) {
|
||||
p->addStateResidencyDataProvider(std::make_unique<UfsStateResidencyDataProvider>("/sys/bus/platform/devices/14700000.ufs/ufs_stats/"));
|
||||
}
|
||||
|
||||
void addPowerDomains(std::shared_ptr<PowerStats> p) {
|
||||
// A constant to represent the number of nanoseconds in one millisecond.
|
||||
const int NS_TO_MS = 1000000;
|
||||
|
||||
std::function<uint64_t(uint64_t)> acpmNsToMs = [](uint64_t a) { return a / NS_TO_MS; };
|
||||
const GenericStateResidencyDataProvider::StateResidencyConfig cpuStateConfig = {
|
||||
.entryCountSupported = true,
|
||||
.entryCountPrefix = "on_count:",
|
||||
.totalTimeSupported = true,
|
||||
.totalTimePrefix = "total_on_time_ns:",
|
||||
.totalTimeTransform = acpmNsToMs,
|
||||
.lastEntrySupported = true,
|
||||
.lastEntryPrefix = "last_on_time_ns:",
|
||||
.lastEntryTransform = acpmNsToMs,
|
||||
};
|
||||
|
||||
const std::vector<std::pair<std::string, std::string>> cpuStateHeaders = {
|
||||
std::make_pair("ON", ""),
|
||||
};
|
||||
|
||||
std::vector<GenericStateResidencyDataProvider::PowerEntityConfig> cfgs;
|
||||
for (std::string name : {"pd-aur", "pd-tpu", "pd-bo", "pd-tnr", "pd-gdc", "pd-mcsc", "pd-itp",
|
||||
"pd-ipp", "pd-g3aa", "pd-dns", "pd-pdp", "pd-csis",
|
||||
"pd-mfc", "pd-g2d", "pd-disp", "pd-dpu", "pd-hsi0",
|
||||
"pd-g3d", "pd-embedded_g3d", "pd-eh"}) {
|
||||
cfgs.emplace_back(generateGenericStateResidencyConfigs(cpuStateConfig, cpuStateHeaders),
|
||||
name, name + ":");
|
||||
}
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<GenericStateResidencyDataProvider>(
|
||||
"/sys/devices/platform/acpm_stats/pd_stats", cfgs));
|
||||
}
|
||||
|
||||
void addDevfreq(std::shared_ptr<PowerStats> p) {
|
||||
p->addStateResidencyDataProvider(std::make_unique<DevfreqStateResidencyDataProvider>(
|
||||
"MIF",
|
||||
"/sys/devices/platform/17000010.devfreq_mif/devfreq/17000010.devfreq_mif"));
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<DevfreqStateResidencyDataProvider>(
|
||||
"INT",
|
||||
"/sys/devices/platform/17000020.devfreq_int/devfreq/17000020.devfreq_int"));
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<DevfreqStateResidencyDataProvider>(
|
||||
"INTCAM",
|
||||
"/sys/devices/platform/17000030.devfreq_intcam/devfreq/17000030.devfreq_intcam"));
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<DevfreqStateResidencyDataProvider>(
|
||||
"DISP",
|
||||
"/sys/devices/platform/17000040.devfreq_disp/devfreq/17000040.devfreq_disp"));
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<DevfreqStateResidencyDataProvider>(
|
||||
"CAM",
|
||||
"/sys/devices/platform/17000050.devfreq_cam/devfreq/17000050.devfreq_cam"));
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<DevfreqStateResidencyDataProvider>(
|
||||
"TNR",
|
||||
"/sys/devices/platform/17000060.devfreq_tnr/devfreq/17000060.devfreq_tnr"));
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<DevfreqStateResidencyDataProvider>(
|
||||
"MFC",
|
||||
"/sys/devices/platform/17000070.devfreq_mfc/devfreq/17000070.devfreq_mfc"));
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<DevfreqStateResidencyDataProvider>(
|
||||
"BO",
|
||||
"/sys/devices/platform/17000080.devfreq_bo/devfreq/17000080.devfreq_bo"));
|
||||
}
|
||||
|
||||
void addTPU(std::shared_ptr<PowerStats> p) {
|
||||
std::map<std::string, int32_t> stateCoeffs;
|
||||
|
||||
stateCoeffs = {
|
||||
// TODO (b/197721618): Measuring the TPU power numbers
|
||||
{"226000", 10},
|
||||
{"627000", 20},
|
||||
{"845000", 30},
|
||||
{"1066000", 40}};
|
||||
|
||||
p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterAndAttrConsumer(p,
|
||||
EnergyConsumerType::OTHER, "TPU", {"S10M_VDD_TPU"},
|
||||
{{UID_TIME_IN_STATE, "/sys/class/edgetpu/edgetpu-soc/device/tpu_usage"}},
|
||||
stateCoeffs));
|
||||
}
|
||||
|
||||
/**
|
||||
* Unlike other data providers, which source power entity state residency data from the kernel,
|
||||
* this data provider acts as a general-purpose channel for state residency data providers
|
||||
* that live in user space. Entities are defined here and user space clients of this provider's
|
||||
* vendor service register callbacks to provide state residency data for their given pwoer entity.
|
||||
*/
|
||||
void addPixelStateResidencyDataProvider(std::shared_ptr<PowerStats> p) {
|
||||
|
||||
auto pixelSdp = std::make_unique<PixelStateResidencyDataProvider>();
|
||||
|
||||
pixelSdp->addEntity("Bluetooth", {{0, "Idle"}, {1, "Active"}, {2, "Tx"}, {3, "Rx"}});
|
||||
|
||||
pixelSdp->start();
|
||||
|
||||
p->addStateResidencyDataProvider(std::move(pixelSdp));
|
||||
}
|
||||
|
||||
void addCamera(std::shared_ptr<PowerStats> p) {
|
||||
p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterConsumer(
|
||||
p,
|
||||
EnergyConsumerType::CAMERA,
|
||||
"CAMERA",
|
||||
{"VSYS_PWR_CAM"}));
|
||||
}
|
||||
|
||||
void addDisplayMrrByEntity(std::shared_ptr<PowerStats> p, std::string name, std::string path) {
|
||||
p->addStateResidencyDataProvider(std::make_unique<DisplayMrrStateResidencyDataProvider>(
|
||||
name, path));
|
||||
}
|
||||
|
||||
void addDisplayMrr(std::shared_ptr<PowerStats> p) {
|
||||
addDisplayMrrByEntity(p, "Display", "/sys/class/drm/card0/device/primary-panel/");
|
||||
}
|
||||
|
||||
void addGs201CommonDataProviders(std::shared_ptr<PowerStats> p) {
|
||||
setEnergyMeter(p);
|
||||
|
||||
addPixelStateResidencyDataProvider(p);
|
||||
addAoC(p);
|
||||
addDvfsStats(p);
|
||||
addSoC(p);
|
||||
addCPUclusters(p);
|
||||
addGPU(p);
|
||||
addMobileRadio(p);
|
||||
addGNSS(p);
|
||||
addPCIe(p);
|
||||
addWifi(p);
|
||||
addUfs(p);
|
||||
addPowerDomains(p);
|
||||
addDevfreq(p);
|
||||
addTPU(p);
|
||||
addCamera(p);
|
||||
}
|
||||
|
||||
void addNFC(std::shared_ptr<PowerStats> p, const std::string& path) {
|
||||
const GenericStateResidencyDataProvider::StateResidencyConfig nfcStateConfig = {
|
||||
.entryCountSupported = true,
|
||||
.entryCountPrefix = "Cumulative count:",
|
||||
.totalTimeSupported = true,
|
||||
.totalTimePrefix = "Cumulative duration msec:",
|
||||
.lastEntrySupported = true,
|
||||
.lastEntryPrefix = "Last entry timestamp msec:",
|
||||
};
|
||||
const std::vector<std::pair<std::string, std::string>> nfcStateHeaders = {
|
||||
std::make_pair("IDLE", "Idle mode:"),
|
||||
std::make_pair("ACTIVE", "Active mode:"),
|
||||
std::make_pair("ACTIVE-RW", "Active Reader/Writer mode:"),
|
||||
};
|
||||
|
||||
std::vector<GenericStateResidencyDataProvider::PowerEntityConfig> cfgs;
|
||||
cfgs.emplace_back(generateGenericStateResidencyConfigs(nfcStateConfig, nfcStateHeaders),
|
||||
"NFC", "NFC subsystem");
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<GenericStateResidencyDataProvider>(
|
||||
path, cfgs));
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2021 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <PowerStatsAidl.h>
|
||||
|
||||
using aidl::android::hardware::power::stats::PowerStats;
|
||||
|
||||
void addAoC(std::shared_ptr<PowerStats> p);
|
||||
void addCPUclusters(std::shared_ptr<PowerStats> p);
|
||||
void addCamera(std::shared_ptr<PowerStats> p);
|
||||
void addDevfreq(std::shared_ptr<PowerStats> p);
|
||||
void addDisplayMrr(std::shared_ptr<PowerStats> p);
|
||||
void addDisplayMrrByEntity(std::shared_ptr<PowerStats> p, std::string name, std::string path);
|
||||
void addDvfsStats(std::shared_ptr<PowerStats> p);
|
||||
void addGNSS(std::shared_ptr<PowerStats> p);
|
||||
void addGs201CommonDataProviders(std::shared_ptr<PowerStats> p);
|
||||
void addMobileRadio(std::shared_ptr<PowerStats> p);
|
||||
void addNFC(std::shared_ptr<PowerStats> p, const std::string& path);
|
||||
void addPCIe(std::shared_ptr<PowerStats> p);
|
||||
void addPixelStateResidencyDataProvider(std::shared_ptr<PowerStats> p);
|
||||
void addPowerDomains(std::shared_ptr<PowerStats> p);
|
||||
void addSoC(std::shared_ptr<PowerStats> p);
|
||||
void addTPU(std::shared_ptr<PowerStats> p);
|
||||
void addUfs(std::shared_ptr<PowerStats> p);
|
||||
void addWifi(std::shared_ptr<PowerStats> p);
|
||||
void addWlan(std::shared_ptr<PowerStats> p);
|
||||
void setEnergyMeter(std::shared_ptr<PowerStats> p);
|
||||
2
product.prop
Normal file
2
product.prop
Normal file
@@ -0,0 +1,2 @@
|
||||
# fsck
|
||||
persist.fsck.disable_linear_lookup=on
|
||||
@@ -1,191 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<NODE FILTER="Basic Metrics">
|
||||
<ITEM NAME="COMMON">
|
||||
<ITEM NAME="COMMON_BASIC_INFORMATION" VALUE="0x0100" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="COMMON_CELL_INFORMATION" VALUE="0x0101" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="COMMON_DATA_INFORMATION" VALUE="0x0102" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="COMMON_SIG_MSG_INFORMATION" VALUE="0x0103" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="COMMON_SMS_INFORMATION" VALUE="0x0104" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="COMMON_HPLMN_TIMER_INFORMATION" VALUE="0x0105" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="COMMON_SIG_MSG_INFORMATION_MULTI" VALUE="0x0106" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="NR_RRC_SIGNALING_MESSAGE" VALUE="0x0108" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="NR_NAS_SIGNALING_MESSAGE" VALUE="0x0109" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="COMMON_PC5_SIG_MSG" VALUE="0x010A" CHECKED="true"></ITEM>
|
||||
</ITEM>
|
||||
<ITEM NAME="LTE">
|
||||
<ITEM NAME="LTE_PHY_PHY_STATUS_INFO" VALUE="0x0200" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_PHY_CELL_SERCH_MEAS_INFO" VALUE="0x0201" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_PHY_NCELL_MEAS_INFO" VALUE="0x0202" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_PHY_SYSTEM_INF" VALUE="0x0204" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_PHY_CHAN_QUAL_INFO" VALUE="0x0205" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_PHY_PARAMETER_INFO" VALUE="0x0206" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_PHY_PHICH_INFO" VALUE="0x0207" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_PHY_THROUGHPUT_INFO" VALUE="0x0208" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_PHY_RCVD_SIGNAL_QUALITY_INFO" VALUE="0x0209" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_PHY_PHICH_TTIB_INFO" VALUE="0x020A" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_PHY_PUSCH_TTIB_INFO" VALUE="0x020B" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L1_RF_INFO" VALUE="0x0210" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_L1_SYNC_INFO" VALUE="0x0211" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L1_DOWNLINK_INFO" VALUE="0x0212" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_L1_UPLINK_INFO" VALUE="0x0213" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_L1_DRX_CONFIG" VALUE="0x0214" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_L1_EVENT" VALUE="0x0215" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L1_PUSCH_STATS" VALUE="0x0216" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L1_RACH_ATTEMPT" VALUE="0x0217" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_L1_UL_SCHED_STATS" VALUE="0x0218" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_L1_SECONDARY_CELL_INFO" VALUE="0x0219" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L1_OTDOA_MEASURE_REPORT_INFO" VALUE="0x021A" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L1_DOWNLINK_INFO2" VALUE="0x021B" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L1_RF_BLACKOUT_TIME" VALUE="0x0220" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L1_SAR_MTPL" VALUE="0x0221" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_L1_ANTENNA_SELECTION" VALUE="0x0222" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_L2_UL_SPECIFIC_PARAM" VALUE="0x0230" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_DL_SCH_CONFIG" VALUE="0x0231" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_UL_SCH_CONFIG" VALUE="0x0232" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_TIME_ALIGNMENT_TIMER" VALUE="0x0233" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_PHR_CONFIG" VALUE="0x0234" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_PREAMBLE_INFO" VALUE="0x0235" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_POWER_RAMPING_STEP" VALUE="0x0236" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_RA_SUPERVISION_INFO" VALUE="0x0237" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_MAX_HARQ_MSG3TX" VALUE="0x0238" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_RACH_INFO" VALUE="0x0239" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_L2_RNTI_INFO" VALUE="0x023A" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_RA_FAILURE_INFO" VALUE="0x023B" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_UL_SYNC_STAT_INFO" VALUE="0x023C" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_L2_D_SR_STATUS" VALUE="0x023D" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_BUFFER_STAT_INFO" VALUE="0x023E" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_MAC_THROUGHPUT_INFO" VALUE="0x023F" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_RLC_INFO" VALUE="0x0240" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_L2_RLC_STATUS_INFO" VALUE="0x0241" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_L2_UL_PDCP_INFO" VALUE="0x0242" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_L2_DL_PDCP_INFO" VALUE="0x0243" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_L2_ROHC_CONF_INFO" VALUE="0x0244" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_L2_UL_ROHC_INFO" VALUE="0x0245" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_L2_DL_ROHC_INFO" VALUE="0x0246" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_L2_TTI_BUNDLING" VALUE="0x0247" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_L2_MAC_CE" VALUE="0x0248" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_L2_TIMER_STATE" VALUE="0x0249" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_L2_BSR_STATS" VALUE="0x024A" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_L2_RLC_STATS" VALUE="0x024B" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_L2_PDCP_STATS" VALUE="0x024C" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_RRC_SERVING_CELL_INFO = 0x0250" VALUE="0x0250" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_RRC_STATUS_VARIABLE_INFO" VALUE="0x0251" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_RRC_PEER_MSG_INFO" VALUE="0x0252" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_RRC_TIMER_INFO" VALUE="0x0253" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_RRC_PEER_MULTI_MSG_INFO" VALUE="0x0254" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_RRC_RACH_MSG_INFO" VALUE="0x0255" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_RRC_TIMER_STATE_INFO" VALUE="0x0256" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_RRC_EVENT" VALUE="0x0257" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_NAS_SIM_DATA_INFO = 0x0258" VALUE="0x0258" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_NAS_STATE_VARIABLE_INFO" VALUE="0x0259" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_NAS_L3_MM_MSG_INFO" VALUE="0x025A" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_NAS_EPS_BEARER_CONTEXT" VALUE="0x025B" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_NAS_EPS_BEARER_QOS" VALUE="0x025C" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_NAS_PDP_INFO" VALUE="0x025D" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_NAS_IP_INFO" VALUE="0x025E" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_NAS_L3_SM_MSG_INFO" VALUE="0x025F" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_DATA_HANDOVER_STAT_INFO" VALUE="0x0262" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_DATA_CALL_DROP_INFO" VALUE="0x0263" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_NAS_TIN_INFO" VALUE="0x0264" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_NAS_ATTEMPT_INFO" VALUE="0x0265" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_NAS_EMM_TIMER_STATE_INFO" VALUE="0x0266" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_NAS_ESM_TIMER_STATE_INFO" VALUE="0x0267" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_VOLTE_TX_PACKET_INFO" VALUE="0x0270" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_VOLTE_RX_PACKET_INFO" VALUE="0x0271" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_VOLTE_TX_OVERALL_STAT_INFO" VALUE="0x0272" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_VOLTE_RX_OVERALL_STAT_INFO" VALUE="0x0273" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_VOLTE_TX_RTP_STAT_INFO" VALUE="0x0274" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_VOLTE_RX_RTP_STAT_INFO" VALUE="0x0275" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_VOLTE_RX_RTP_FRAME_INFO" VALUE= "0x0276" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_VOLTE_RTP_CALL_STATS" VALUE="0x0277" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_VOLTE_TX_RTP_INFO" VALUE="0x0278" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_VOLTE_RX_RTP_INFO" VALUE="0x0279" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_RRC_MBMS_SERVICE_INFO" VALUE="0x0280" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_RF_STATUS_RX_MODE_INFO" VALUE="0x0290" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_RF_STATUS_SENSOR_INFO" VALUE="0x0291" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_RF_STATUS_TX_SWAP_INFO" VALUE="0x0292" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_RF_STATUS_RF_POWER_INFO" VALUE="0x0293" CHECKED="false"></ITEM>
|
||||
</ITEM>
|
||||
<ITEM NAME="EDGE">
|
||||
<ITEM NAME="EDGE_PHY_TIME_SLOT_INFO" VALUE="0x0300" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_PHY_RLC_INFO" VALUE="0x0301" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_RESERVED_MSG_02" VALUE="0x0302" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_PHY_SCELL_MEAS_REPT_INFO" VALUE="0x0303" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_PHY_DEDICATED_STATE_INFO" VALUE="0x0304" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_PHY_SCELL_INFO" VALUE="0x0305" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_PHY_NCELL_INFO" VALUE="0x0306" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_PHY_3G_NCELL_INFO" VALUE="0x0307" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_PHY_HANDOVER_INFO" VALUE="0x0308" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_PHY_HO_HISTORY_INFO" VALUE="0x0309" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_PHY_BASIC_INFO" VALUE="0x030A" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_PHY_MEASUREMENT_INFO" VALUE="0x030B" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_PHY_PWR_CNTRL_INFO" VALUE="0x030C" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_L2_QOS_INFO" VALUE="0x0310" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_L3_MM_GMM_INFO" VALUE="0x0311" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_L2_RLC_STATS" VALUE="0x0312" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_L3_EVENT" VALUE="0x0313" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_L1_SAR_MTPL" VALUE="0x0320" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_L1_ANTENNA_SELECTION" VALUE="0x0321" CHECKED="false"></ITEM>
|
||||
</ITEM>
|
||||
<ITEM NAME="HSPA">
|
||||
<ITEM NAME="HSPA_GP_POWER_CONTROL_INFO" VALUE="0x0400" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_GP_TRCH_BLER_INFO" VALUE="0x0401" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_GP_FINGER_INFO" VALUE="0x0402" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_GD_DPA_INFO" VALUE="0x0403" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_GD_DPA_INFO2" VALUE="0x0404" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_GD_DPA_INFO3" VALUE="0x0405" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_CM_STATE" VALUE="0x040D" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_TRANSPORT_CHANNEL" VALUE="0x040E" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_RL_STATUS" VALUE="0x040F" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_UMTS_RF_INFO" VALUE="0x0410" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_SEARCH_INFO" VALUE="0x0411" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_FREQ_SEARCH_INFO" VALUE="0x0412" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_POWER_CONTROL_INFO" VALUE="0x0413" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_OLPC_INFO" VALUE="0x0414" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_HSDPA_STATS" VALUE="0x0415" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_MID_TYPE_INFO" VALUE="0x0416" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_CELL_MEAS_INFO" VALUE="0x0417" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_INTER_FREQ_MEAS_INFO" VALUE="0x0418" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_INTER_RAT_MEAS_INFO" VALUE="0x0419" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_INTERNAL_MEAS_INFO" VALUE="0x041A" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_SERVING_CELL_INFO" VALUE="0x041B" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_INTRA_FREQ_RESEL_INFO" VALUE="0x041C" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_INTER_FREQ_RESEL_INFO" VALUE="0x041D" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_RESERVED_MSG_1E" VALUE="0x041E" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_CHIPSET_DELAY_INFO" VALUE="0x041F" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_URRC_STATUS_INFO" VALUE="0x0420" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="HSPA_URRC_RB_MAP_INFO" VALUE="0x0421" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_URRC_NETWORK_INFO" VALUE="0x0422" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="HSPA_URRC_EVENT" VALUE="0x0423" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="HSPA_UUL_RACH_CONFIG_INFO" VALUE="0x0428" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UUL_UDPCH_CONFIG_INFO" VALUE="0x0429" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UUL_POWER_INFO" VALUE="0x042A" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL2_UPDCP_CHAN_CONF_INFO" VALUE="0x0430" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL2_RLC_AM_CHAN_STAT_INFO" VALUE="0x0431" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL2_URLC_AM_CONFIG_INFO" VALUE="0x0432" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL2_RLC_UM_CHAN_STAT_INFO" VALUE="0x0433" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL2_URLC_UM_CONFIG_INFO" VALUE="0x0434" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL2_HSUPA_STATS" VALUE="0x0435" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL2_WCDMA_MAC_INFO" VALUE="0x0436" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL2_HS_MAC_INFO" VALUE="0x0437" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL2_EUL_MAC_INFO" VALUE="0x0438" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL2_EUL_MAC_STAT_INFO" VALUE="0x0439" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_MM_GMM_INFO" VALUE="0x043A" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL2_RLC_STATS" VALUE="0x043B" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL2_RLC_RESET" VALUE="0x043C" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL3_CC_INFO" VALUE="0x0450" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL3_SS_INFO" VALUE="0x0451" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL3_SM_INFO" VALUE="0x0452" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_VOC_RX_STAT = 0x0460" VALUE="0x0460" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_VOC_TX_STAT = 0x0461" VALUE="0x0461" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_L1_SAR_MTPL = 0x0470" VALUE="0x0470" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_L1_ANTENNA_SELECTION" VALUE="0x0471" CHECKED="false"></ITEM>
|
||||
</ITEM>
|
||||
<ITEM NAME="CDMA">
|
||||
<ITEM NAME="CDMA_COM_1X_MESSAGE" VALUE="0x0B00" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="CDMA_COM_EVDO_MESSAGE" VALUE="0x0B01" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="CDMA_COM_MRU_TABLE_UPDATE_MESSAGE" VALUE="0x0B10" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="CDMA_RTT_L3_MESSAGE" VALUE="0x0B30" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="CDMA_EVDO_L3_MESSAGE" VALUE="0x0B31" CHECKED="false"></ITEM>
|
||||
</ITEM>
|
||||
</NODE>
|
||||
@@ -1 +0,0 @@
|
||||
Pixel_stability.nprf,Pixel_Default_metrics.xml
|
||||
Binary file not shown.
@@ -1 +0,0 @@
|
||||
default.nprf,default_metrics.xml
|
||||
Binary file not shown.
@@ -1,191 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<NODE FILTER="Basic Metrics">
|
||||
<ITEM NAME="COMMON">
|
||||
<ITEM NAME="COMMON_BASIC_INFORMATION" VALUE="0x0100" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="COMMON_CELL_INFORMATION" VALUE="0x0101" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="COMMON_DATA_INFORMATION" VALUE="0x0102" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="COMMON_SIG_MSG_INFORMATION" VALUE="0x0103" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="COMMON_SMS_INFORMATION" VALUE="0x0104" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="COMMON_HPLMN_TIMER_INFORMATION" VALUE="0x0105" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="COMMON_SIG_MSG_INFORMATION_MULTI" VALUE="0x0106" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="NR_RRC_SIGNALING_MESSAGE" VALUE="0x0108" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="NR_NAS_SIGNALING_MESSAGE" VALUE="0x0109" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="COMMON_PC5_SIG_MSG" VALUE="0x010A" CHECKED="true"></ITEM>
|
||||
</ITEM>
|
||||
<ITEM NAME="LTE">
|
||||
<ITEM NAME="LTE_PHY_PHY_STATUS_INFO" VALUE="0x0200" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_PHY_CELL_SERCH_MEAS_INFO" VALUE="0x0201" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_PHY_NCELL_MEAS_INFO" VALUE="0x0202" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_PHY_SYSTEM_INF" VALUE="0x0204" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_PHY_CHAN_QUAL_INFO" VALUE="0x0205" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_PHY_PARAMETER_INFO" VALUE="0x0206" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_PHY_PHICH_INFO" VALUE="0x0207" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_PHY_THROUGHPUT_INFO" VALUE="0x0208" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_PHY_RCVD_SIGNAL_QUALITY_INFO" VALUE="0x0209" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_PHY_PHICH_TTIB_INFO" VALUE="0x020A" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_PHY_PUSCH_TTIB_INFO" VALUE="0x020B" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L1_RF_INFO" VALUE="0x0210" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L1_SYNC_INFO" VALUE="0x0211" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L1_DOWNLINK_INFO" VALUE="0x0212" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L1_UPLINK_INFO" VALUE="0x0213" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L1_DRX_CONFIG" VALUE="0x0214" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L1_EVENT" VALUE="0x0215" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L1_PUSCH_STATS" VALUE="0x0216" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L1_RACH_ATTEMPT" VALUE="0x0217" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L1_UL_SCHED_STATS" VALUE="0x0218" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L1_SECONDARY_CELL_INFO" VALUE="0x0219" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L1_OTDOA_MEASURE_REPORT_INFO" VALUE="0x021A" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L1_DOWNLINK_INFO2" VALUE="0x021B" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L1_RF_BLACKOUT_TIME" VALUE="0x0220" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L1_SAR_MTPL" VALUE="0x0221" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L1_ANTENNA_SELECTION" VALUE="0x0222" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_UL_SPECIFIC_PARAM" VALUE="0x0230" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_DL_SCH_CONFIG" VALUE="0x0231" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_UL_SCH_CONFIG" VALUE="0x0232" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_TIME_ALIGNMENT_TIMER" VALUE="0x0233" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_PHR_CONFIG" VALUE="0x0234" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_PREAMBLE_INFO" VALUE="0x0235" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_POWER_RAMPING_STEP" VALUE="0x0236" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_RA_SUPERVISION_INFO" VALUE="0x0237" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_MAX_HARQ_MSG3TX" VALUE="0x0238" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_RACH_INFO" VALUE="0x0239" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_RNTI_INFO" VALUE="0x023A" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_RA_FAILURE_INFO" VALUE="0x023B" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_UL_SYNC_STAT_INFO" VALUE="0x023C" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_D_SR_STATUS" VALUE="0x023D" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_BUFFER_STAT_INFO" VALUE="0x023E" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_MAC_THROUGHPUT_INFO" VALUE="0x023F" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_RLC_INFO" VALUE="0x0240" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_RLC_STATUS_INFO" VALUE="0x0241" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_UL_PDCP_INFO" VALUE="0x0242" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_DL_PDCP_INFO" VALUE="0x0243" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_ROHC_CONF_INFO" VALUE="0x0244" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_UL_ROHC_INFO" VALUE="0x0245" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_DL_ROHC_INFO" VALUE="0x0246" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_TTI_BUNDLING" VALUE="0x0247" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_MAC_CE" VALUE="0x0248" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_TIMER_STATE" VALUE="0x0249" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_BSR_STATS" VALUE="0x024A" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_RLC_STATS" VALUE="0x024B" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_L2_PDCP_STATS" VALUE="0x024C" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_RRC_SERVING_CELL_INFO = 0x0250" VALUE="0x0250" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_RRC_STATUS_VARIABLE_INFO" VALUE="0x0251" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_RRC_PEER_MSG_INFO" VALUE="0x0252" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_RRC_TIMER_INFO" VALUE="0x0253" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_RRC_PEER_MULTI_MSG_INFO" VALUE="0x0254" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_RRC_RACH_MSG_INFO" VALUE="0x0255" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_RRC_TIMER_STATE_INFO" VALUE="0x0256" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_RRC_EVENT" VALUE="0x0257" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_NAS_SIM_DATA_INFO = 0x0258" VALUE="0x0258" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_NAS_STATE_VARIABLE_INFO" VALUE="0x0259" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_NAS_L3_MM_MSG_INFO" VALUE="0x025A" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_NAS_EPS_BEARER_CONTEXT" VALUE="0x025B" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_NAS_EPS_BEARER_QOS" VALUE="0x025C" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_NAS_PDP_INFO" VALUE="0x025D" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_NAS_IP_INFO" VALUE="0x025E" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_NAS_L3_SM_MSG_INFO" VALUE="0x025F" CHECKED="true"></ITEM>
|
||||
<ITEM NAME="LTE_DATA_HANDOVER_STAT_INFO" VALUE="0x0262" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_DATA_CALL_DROP_INFO" VALUE="0x0263" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_NAS_TIN_INFO" VALUE="0x0264" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_NAS_ATTEMPT_INFO" VALUE="0x0265" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_NAS_EMM_TIMER_STATE_INFO" VALUE="0x0266" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_NAS_ESM_TIMER_STATE_INFO" VALUE="0x0267" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_VOLTE_TX_PACKET_INFO" VALUE="0x0270" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_VOLTE_RX_PACKET_INFO" VALUE="0x0271" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_VOLTE_TX_OVERALL_STAT_INFO" VALUE="0x0272" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_VOLTE_RX_OVERALL_STAT_INFO" VALUE="0x0273" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_VOLTE_TX_RTP_STAT_INFO" VALUE="0x0274" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_VOLTE_RX_RTP_STAT_INFO" VALUE="0x0275" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_VOLTE_RX_RTP_FRAME_INFO" VALUE= "0x0276" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_VOLTE_RTP_CALL_STATS" VALUE="0x0277" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_VOLTE_TX_RTP_INFO" VALUE="0x0278" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_VOLTE_RX_RTP_INFO" VALUE="0x0279" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_RRC_MBMS_SERVICE_INFO" VALUE="0x0280" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_RF_STATUS_RX_MODE_INFO" VALUE="0x0290" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_RF_STATUS_SENSOR_INFO" VALUE="0x0291" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_RF_STATUS_TX_SWAP_INFO" VALUE="0x0292" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="LTE_RF_STATUS_RF_POWER_INFO" VALUE="0x0293" CHECKED="false"></ITEM>
|
||||
</ITEM>
|
||||
<ITEM NAME="EDGE">
|
||||
<ITEM NAME="EDGE_PHY_TIME_SLOT_INFO" VALUE="0x0300" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_PHY_RLC_INFO" VALUE="0x0301" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_RESERVED_MSG_02" VALUE="0x0302" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_PHY_SCELL_MEAS_REPT_INFO" VALUE="0x0303" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_PHY_DEDICATED_STATE_INFO" VALUE="0x0304" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_PHY_SCELL_INFO" VALUE="0x0305" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_PHY_NCELL_INFO" VALUE="0x0306" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_PHY_3G_NCELL_INFO" VALUE="0x0307" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_PHY_HANDOVER_INFO" VALUE="0x0308" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_PHY_HO_HISTORY_INFO" VALUE="0x0309" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_PHY_BASIC_INFO" VALUE="0x030A" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_PHY_MEASUREMENT_INFO" VALUE="0x030B" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_PHY_PWR_CNTRL_INFO" VALUE="0x030C" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_L2_QOS_INFO" VALUE="0x0310" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_L3_MM_GMM_INFO" VALUE="0x0311" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_L2_RLC_STATS" VALUE="0x0312" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_L3_EVENT" VALUE="0x0313" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_L1_SAR_MTPL" VALUE="0x0320" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="EDGE_L1_ANTENNA_SELECTION" VALUE="0x0321" CHECKED="false"></ITEM>
|
||||
</ITEM>
|
||||
<ITEM NAME="HSPA">
|
||||
<ITEM NAME="HSPA_GP_POWER_CONTROL_INFO" VALUE="0x0400" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_GP_TRCH_BLER_INFO" VALUE="0x0401" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_GP_FINGER_INFO" VALUE="0x0402" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_GD_DPA_INFO" VALUE="0x0403" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_GD_DPA_INFO2" VALUE="0x0404" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_GD_DPA_INFO3" VALUE="0x0405" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_CM_STATE" VALUE="0x040D" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_TRANSPORT_CHANNEL" VALUE="0x040E" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_RL_STATUS" VALUE="0x040F" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_UMTS_RF_INFO" VALUE="0x0410" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_SEARCH_INFO" VALUE="0x0411" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_FREQ_SEARCH_INFO" VALUE="0x0412" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_POWER_CONTROL_INFO" VALUE="0x0413" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_OLPC_INFO" VALUE="0x0414" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_HSDPA_STATS" VALUE="0x0415" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_MID_TYPE_INFO" VALUE="0x0416" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_CELL_MEAS_INFO" VALUE="0x0417" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_INTER_FREQ_MEAS_INFO" VALUE="0x0418" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_INTER_RAT_MEAS_INFO" VALUE="0x0419" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_INTERNAL_MEAS_INFO" VALUE="0x041A" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_SERVING_CELL_INFO" VALUE="0x041B" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_INTRA_FREQ_RESEL_INFO" VALUE="0x041C" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_INTER_FREQ_RESEL_INFO" VALUE="0x041D" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_RESERVED_MSG_1E" VALUE="0x041E" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL1_CHIPSET_DELAY_INFO" VALUE="0x041F" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_URRC_STATUS_INFO" VALUE="0x0420" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_URRC_RB_MAP_INFO" VALUE="0x0421" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_URRC_NETWORK_INFO" VALUE="0x0422" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_URRC_EVENT" VALUE="0x0423" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UUL_RACH_CONFIG_INFO" VALUE="0x0428" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UUL_UDPCH_CONFIG_INFO" VALUE="0x0429" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UUL_POWER_INFO" VALUE="0x042A" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL2_UPDCP_CHAN_CONF_INFO" VALUE="0x0430" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL2_RLC_AM_CHAN_STAT_INFO" VALUE="0x0431" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL2_URLC_AM_CONFIG_INFO" VALUE="0x0432" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL2_RLC_UM_CHAN_STAT_INFO" VALUE="0x0433" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL2_URLC_UM_CONFIG_INFO" VALUE="0x0434" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL2_HSUPA_STATS" VALUE="0x0435" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL2_WCDMA_MAC_INFO" VALUE="0x0436" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL2_HS_MAC_INFO" VALUE="0x0437" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL2_EUL_MAC_INFO" VALUE="0x0438" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL2_EUL_MAC_STAT_INFO" VALUE="0x0439" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_MM_GMM_INFO" VALUE="0x043A" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL2_RLC_STATS" VALUE="0x043B" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL2_RLC_RESET" VALUE="0x043C" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL3_CC_INFO" VALUE="0x0450" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL3_SS_INFO" VALUE="0x0451" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_UL3_SM_INFO" VALUE="0x0452" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_VOC_RX_STAT = 0x0460" VALUE="0x0460" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_VOC_TX_STAT = 0x0461" VALUE="0x0461" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_L1_SAR_MTPL = 0x0470" VALUE="0x0470" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="HSPA_L1_ANTENNA_SELECTION" VALUE="0x0471" CHECKED="false"></ITEM>
|
||||
</ITEM>
|
||||
<ITEM NAME="CDMA">
|
||||
<ITEM NAME="CDMA_COM_1X_MESSAGE" VALUE="0x0B00" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="CDMA_COM_EVDO_MESSAGE" VALUE="0x0B01" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="CDMA_COM_MRU_TABLE_UPDATE_MESSAGE" VALUE="0x0B10" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="CDMA_RTT_L3_MESSAGE" VALUE="0x0B30" CHECKED="false"></ITEM>
|
||||
<ITEM NAME="CDMA_EVDO_L3_MESSAGE" VALUE="0x0B31" CHECKED="false"></ITEM>
|
||||
</ITEM>
|
||||
</NODE>
|
||||
@@ -1 +0,0 @@
|
||||
modem_logging_control START -o /data/vendor/radio/logs/always-on -n 50 -s 50 -m /vendor/etc/modem/default.cfg --enable_exmetric --enable_exmetric_internal
|
||||
@@ -1,4 +0,0 @@
|
||||
5
|
||||
850,30,
|
||||
B39,15,
|
||||
|
||||
|
@@ -1 +0,0 @@
|
||||
https://android.googlesource.com/device/google/gs201-sepolicy
|
||||
@@ -1,4 +0,0 @@
|
||||
include device/google/gs-common:/sepolicy/OWNERS
|
||||
|
||||
adamshih@google.com
|
||||
|
||||
14
sepolicy/certificates/keys.conf
Normal file
14
sepolicy/certificates/keys.conf
Normal file
@@ -0,0 +1,14 @@
|
||||
[@GOOGLE]
|
||||
ALL : device/google/gs201/sepolicy/certificates/certs/app.x509.pem
|
||||
|
||||
[@CAMERASERVICES]
|
||||
ALL : device/google/gs201/sepolicy/certificates/certs/com_google_android_apps_camera_services.x509.pem
|
||||
|
||||
[@MDS]
|
||||
ALL : device/google/gs201/sepolicy/certificates/certs/com_google_mds.x509.pem
|
||||
|
||||
[@UWB]
|
||||
ALL : device/google/gs201/sepolicy/certificates/certs/com_qorvo_uwb.x509.pem
|
||||
|
||||
[@EUICCSUPPORTPIXEL]
|
||||
ALL : device/google/gs201/sepolicy/certificates/certs/EuiccSupportPixel.x509.pem
|
||||
@@ -1,8 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<policy>
|
||||
|
||||
<!--
|
||||
|
||||
* A signature is a hex encoded X.509 certificate or a tag defined in
|
||||
keys.conf and is required for each signer tag.
|
||||
* A signer tag may contain a seinfo tag and multiple package stanzas.
|
||||
@@ -22,21 +20,18 @@
|
||||
-->
|
||||
<!-- google apps key -->
|
||||
<signer signature="@GOOGLE" >
|
||||
<seinfo value="google" />
|
||||
<seinfo value="google" />
|
||||
</signer>
|
||||
<signer signature="@CAMERASERVICES" >
|
||||
<seinfo value="CameraServices" />
|
||||
</signer>
|
||||
<signer signature="@MDS" >
|
||||
<seinfo value="mds" />
|
||||
</signer>
|
||||
<signer signature="@UWB" >
|
||||
<seinfo value="uwb" />
|
||||
</signer>
|
||||
<signer signature="@EUICCSUPPORTPIXEL" >
|
||||
<seinfo value="EuiccSupportPixel" />
|
||||
</signer>
|
||||
<signer signature="@CAMERAENG" >
|
||||
<seinfo value="CameraEng" />
|
||||
</signer>
|
||||
<signer signature="@CAMERAFISHFOOD" >
|
||||
<seinfo value="CameraFishfood" />
|
||||
</signer>
|
||||
<signer signature="@CAMERASERVICES" >
|
||||
<seinfo value="CameraServices" />
|
||||
</signer>
|
||||
</policy>
|
||||
@@ -1,33 +0,0 @@
|
||||
# ConnectivityThermalPowerManager
|
||||
BOARD_SEPOLICY_DIRS += hardware/google/pixel-sepolicy/connectivity_thermal_power_manager
|
||||
|
||||
# twoshay
|
||||
BOARD_SEPOLICY_DIRS += hardware/google/pixel-sepolicy/input
|
||||
|
||||
# google_battery service
|
||||
BOARD_SEPOLICY_DIRS += hardware/google/pixel-sepolicy/googlebattery
|
||||
|
||||
# sepolicy that are shared among devices using whitechapel
|
||||
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs201/sepolicy/whitechapel_pro
|
||||
|
||||
# unresolved SELinux error log with bug tracking
|
||||
BOARD_SEPOLICY_DIRS += device/google/gs201/sepolicy/tracking_denials
|
||||
|
||||
PRODUCT_PUBLIC_SEPOLICY_DIRS += device/google/gs201/sepolicy/public
|
||||
PRODUCT_PRIVATE_SEPOLICY_DIRS += device/google/gs201/sepolicy/private
|
||||
|
||||
# system_ext
|
||||
SYSTEM_EXT_PUBLIC_SEPOLICY_DIRS += device/google/gs201/sepolicy/system_ext/public
|
||||
SYSTEM_EXT_PRIVATE_SEPOLICY_DIRS += device/google/gs201/sepolicy/system_ext/private
|
||||
|
||||
#
|
||||
# Pixel-wide
|
||||
#
|
||||
# Dauntless sepolicy (b/199685763)
|
||||
BOARD_SEPOLICY_DIRS += device/google/gs201/sepolicy/dauntless
|
||||
|
||||
# PowerStats HAL
|
||||
BOARD_SEPOLICY_DIRS += hardware/google/pixel-sepolicy/powerstats
|
||||
|
||||
# Health HAL
|
||||
BOARD_SEPOLICY_DIRS += device/google/gs201/sepolicy/health
|
||||
@@ -1 +0,0 @@
|
||||
/vendor/bin/hw/android\.hardware\.health-service\.gs201 u:object_r:hal_health_default_exec:s0
|
||||
@@ -1,16 +0,0 @@
|
||||
typeattribute debug_camera_app coredomain;
|
||||
|
||||
userdebug_or_eng(`
|
||||
app_domain(debug_camera_app)
|
||||
net_domain(debug_camera_app)
|
||||
|
||||
allow debug_camera_app app_api_service:service_manager find;
|
||||
allow debug_camera_app audioserver_service:service_manager find;
|
||||
allow debug_camera_app cameraserver_service:service_manager find;
|
||||
allow debug_camera_app mediaextractor_service:service_manager find;
|
||||
allow debug_camera_app mediametrics_service:service_manager find;
|
||||
allow debug_camera_app mediaserver_service:service_manager find;
|
||||
|
||||
# Allows camera app to access the PowerHAL.
|
||||
hal_client_domain(debug_camera_app, hal_power)
|
||||
')
|
||||
@@ -1,17 +0,0 @@
|
||||
typeattribute google_camera_app coredomain;
|
||||
|
||||
app_domain(google_camera_app)
|
||||
net_domain(google_camera_app)
|
||||
|
||||
allow google_camera_app app_api_service:service_manager find;
|
||||
allow google_camera_app audioserver_service:service_manager find;
|
||||
allow google_camera_app cameraserver_service:service_manager find;
|
||||
allow google_camera_app mediaextractor_service:service_manager find;
|
||||
allow google_camera_app mediametrics_service:service_manager find;
|
||||
allow google_camera_app mediaserver_service:service_manager find;
|
||||
|
||||
# Allows camera app to access the PowerHAL.
|
||||
hal_client_domain(google_camera_app, hal_power)
|
||||
|
||||
# Library code may try to access vendor properties, but should be denied
|
||||
dontaudit google_camera_app vendor_default_prop:file { getattr map open };
|
||||
@@ -1,11 +0,0 @@
|
||||
# Google Camera
|
||||
user=_app isPrivApp=true seinfo=google name=com.google.android.GoogleCamera domain=google_camera_app type=app_data_file levelFrom=all
|
||||
|
||||
# Also allow GoogleCameraNext, the fishfood version, the same access as GoogleCamera
|
||||
user=_app seinfo=CameraFishfood name=com.google.android.apps.googlecamera.fishfood domain=google_camera_app type=app_data_file levelFrom=all
|
||||
|
||||
# Google Camera Eng
|
||||
user=_app seinfo=CameraEng name=com.google.android.GoogleCameraEng domain=debug_camera_app type=app_data_file levelFrom=all
|
||||
|
||||
# Also label GoogleCameraNext, built with debug keys as debug_camera_app.
|
||||
user=_app seinfo=CameraEng name=com.google.android.apps.googlecamera.fishfood domain=debug_camera_app type=app_data_file levelFrom=all
|
||||
@@ -1 +0,0 @@
|
||||
telephony.oem.oemrilhook u:object_r:radio_service:s0
|
||||
12
sepolicy/product/private/pbcs_app.te
Normal file
12
sepolicy/product/private/pbcs_app.te
Normal file
@@ -0,0 +1,12 @@
|
||||
app_domain(vendor_pbcs_app)
|
||||
|
||||
typeattribute vendor_pbcs_app coredomain;
|
||||
|
||||
add_service(vendor_pbcs_app, camera_binder_service)
|
||||
add_service(vendor_pbcs_app, camera_cameraidremapper_service)
|
||||
add_service(vendor_pbcs_app, camera_lyricconfigprovider_service)
|
||||
|
||||
allow vendor_pbcs_app app_api_service:service_manager find;
|
||||
allow vendor_pbcs_app cameraserver_service:service_manager find;
|
||||
|
||||
dontaudit vendor_pbcs_app system_app_data_file:dir *;
|
||||
31
sepolicy/product/private/pcs_app.te
Normal file
31
sepolicy/product/private/pcs_app.te
Normal file
@@ -0,0 +1,31 @@
|
||||
app_domain(vendor_pcs_app)
|
||||
|
||||
bluetooth_domain(vendor_pcs_app)
|
||||
|
||||
net_domain(vendor_pcs_app)
|
||||
|
||||
typeattribute vendor_pcs_app coredomain;
|
||||
|
||||
r_dir_file(vendor_pcs_app, preloads_data_file)
|
||||
r_dir_file(vendor_pcs_app, preloads_media_file)
|
||||
|
||||
allow vendor_pcs_app app_api_service:service_manager find;
|
||||
allow vendor_pcs_app audioserver_service:service_manager find;
|
||||
allow vendor_pcs_app cache_file:dir create_dir_perms;
|
||||
allow vendor_pcs_app cache_file:file create_file_perms;
|
||||
allow vendor_pcs_app cache_file:lnk_file r_file_perms;
|
||||
allow vendor_pcs_app cache_recovery_file:dir create_dir_perms;
|
||||
allow vendor_pcs_app cache_recovery_file:file create_file_perms;
|
||||
allow vendor_pcs_app camera_cameraidremapper_service:service_manager find;
|
||||
allow vendor_pcs_app camera_lyricconfigprovider_service:service_manager find;
|
||||
allow vendor_pcs_app cameraserver_service:service_manager find;
|
||||
allow vendor_pcs_app drmserver_service:service_manager find;
|
||||
allow vendor_pcs_app media_rw_data_file:dir create_dir_perms;
|
||||
allow vendor_pcs_app media_rw_data_file:file create_file_perms;
|
||||
allow vendor_pcs_app mediametrics_service:service_manager find;
|
||||
allow vendor_pcs_app mediaserver_service:service_manager find;
|
||||
allow vendor_pcs_app nfc_service:service_manager find;
|
||||
allow vendor_pcs_app radio_service:service_manager find;
|
||||
|
||||
dontaudit vendor_pcs_app device:dir read;
|
||||
dontaudit vendor_pcs_app usb_device:dir { open read search };
|
||||
4
sepolicy/product/private/seapp_contexts
Normal file
4
sepolicy/product/private/seapp_contexts
Normal file
@@ -0,0 +1,4 @@
|
||||
user=_app seinfo=CameraServices name=com.google.android.apps.camera.services domain=vendor_pcs_app type=app_data_file levelFrom=all
|
||||
user=_app seinfo=CameraServices name=com.google.android.apps.camera.services:* domain=vendor_pcs_app type=app_data_file levelFrom=all
|
||||
user=system seinfo=platform name=com.google.pixel.camera.services domain=vendor_pbcs_app type=system_app_data_file levelFrom=all
|
||||
user=system seinfo=platform name=com.google.pixel.camera.services:* domain=vendor_pbcs_app type=system_app_data_file levelFrom=all
|
||||
4
sepolicy/product/private/service_contexts
Normal file
4
sepolicy/product/private/service_contexts
Normal file
@@ -0,0 +1,4 @@
|
||||
com.google.pixel.camera.services.binder.IServiceBinder/default u:object_r:camera_binder_service:s0
|
||||
com.google.pixel.camera.services.cameraidremapper.ICameraIdRemapper/default u:object_r:camera_cameraidremapper_service:s0
|
||||
com.google.pixel.camera.services.lyricconfigprovider.ILyricConfigProvider/default u:object_r:camera_lyricconfigprovider_service:s0
|
||||
telephony.oem.oemrilhook u:object_r:radio_service:s0
|
||||
1
sepolicy/product/public/pbcs_app.te
Normal file
1
sepolicy/product/public/pbcs_app.te
Normal file
@@ -0,0 +1 @@
|
||||
type vendor_pbcs_app, domain;
|
||||
1
sepolicy/product/public/pcs_app.te
Normal file
1
sepolicy/product/public/pcs_app.te
Normal file
@@ -0,0 +1 @@
|
||||
type vendor_pcs_app, domain;
|
||||
3
sepolicy/product/public/service.te
Normal file
3
sepolicy/product/public/service.te
Normal file
@@ -0,0 +1,3 @@
|
||||
type camera_binder_service, hal_service_type, protected_service, service_manager_type;
|
||||
type camera_cameraidremapper_service, hal_service_type, protected_service, service_manager_type;
|
||||
type camera_lyricconfigprovider_service, hal_service_type, protected_service, service_manager_type;
|
||||
@@ -1 +0,0 @@
|
||||
type debug_camera_app, domain;
|
||||
@@ -1 +0,0 @@
|
||||
type google_camera_app, domain;
|
||||
8
sepolicy/recovery/fastbootd.te
Normal file
8
sepolicy/recovery/fastbootd.te
Normal file
@@ -0,0 +1,8 @@
|
||||
recovery_only(`
|
||||
allow fastbootd citadel_device:chr_file rw_file_perms;
|
||||
allow fastbootd custom_ab_block_device:blk_file rw_file_perms;
|
||||
allow fastbootd devinfo_block_device:blk_file rw_file_perms;
|
||||
allow fastbootd sda_block_device:blk_file rw_file_perms;
|
||||
allow fastbootd st54spi_device:chr_file rw_file_perms;
|
||||
allow fastbootd sysfs_ota:file rw_file_perms;
|
||||
')
|
||||
3
sepolicy/recovery/hal_bootctl_default.te
Normal file
3
sepolicy/recovery/hal_bootctl_default.te
Normal file
@@ -0,0 +1,3 @@
|
||||
recovery_only(`
|
||||
allow hal_bootctl_default rootfs:dir r_dir_perms;
|
||||
')
|
||||
7
sepolicy/recovery/recovery.te
Normal file
7
sepolicy/recovery/recovery.te
Normal file
@@ -0,0 +1,7 @@
|
||||
recovery_only(`
|
||||
allow recovery citadel_device:chr_file rw_file_perms;
|
||||
allow recovery st54spi_device:chr_file rw_file_perms;
|
||||
allow recovery sysfs_ota:file rw_file_perms;
|
||||
allow recovery sysfs_scsi_devices_0000:file r_file_perms;
|
||||
allow recovery sysfs_scsi_devices_0000:dir r_dir_perms;
|
||||
')
|
||||
9
sepolicy/system_ext/private/bluetooth_gci.te
Normal file
9
sepolicy/system_ext/private/bluetooth_gci.te
Normal file
@@ -0,0 +1,9 @@
|
||||
init_daemon_domain(bluetooth_gci)
|
||||
|
||||
allow bluetooth_gci bluetooth_data_file:dir ra_dir_perms;
|
||||
allow bluetooth_gci bluetooth_data_file:file create_file_perms;
|
||||
allow bluetooth_gci fuse:dir r_dir_perms;
|
||||
allow bluetooth_gci fuse:file r_file_perms;
|
||||
allow bluetooth_gci media_rw_data_file:dir ra_dir_perms;
|
||||
allow bluetooth_gci media_rw_data_file:file r_file_perms;
|
||||
allow bluetooth_gci mnt_user_file:dir search;
|
||||
@@ -1,7 +1,8 @@
|
||||
typeattribute con_monitor_app coredomain;
|
||||
|
||||
app_domain(con_monitor_app)
|
||||
|
||||
typeattribute con_monitor_app coredomain;
|
||||
|
||||
set_prop(con_monitor_app, radio_prop)
|
||||
|
||||
allow con_monitor_app app_api_service:service_manager find;
|
||||
allow con_monitor_app radio_service:service_manager find;
|
||||
@@ -0,0 +1,9 @@
|
||||
type connectivity_thermal_power_manager, coredomain, domain, system_suspend_internal_server;
|
||||
|
||||
app_domain(connectivity_thermal_power_manager)
|
||||
|
||||
hal_client_domain(connectivity_thermal_power_manager, hal_power_stats)
|
||||
|
||||
allow connectivity_thermal_power_manager app_api_service:service_manager find;
|
||||
allow connectivity_thermal_power_manager radio_service:service_manager find;
|
||||
allow connectivity_thermal_power_manager system_api_service:service_manager find;
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user