diff --git a/Android.bp b/Android.bp index ad27f07..dfecee0 100644 --- a/Android.bp +++ b/Android.bp @@ -1,26 +1,3 @@ -// -// Copyright (C) 2021-2024 The LineageOS Project -// SPDX-License-Identifier: Apache-2.0 -// Copyright (C) 2019-Current A-Team Digital Solutions -// - soong_namespace { - imports: [ - "hardware/google/interfaces", - "hardware/google/pixel" - ], -} - -install_symlink { - name: "firmware_wlan_mac.bin_symlink", - vendor: true, - installed_location: "firmware/wlan/qca_cld/wlan_mac.bin", - symlink_target: "/mnt/vendor/persist/wlan_mac.bin", -} - -install_symlink { - name: "firmware_WCNSS_qcom_cfg.ini_symlink", - vendor: true, - installed_location: "firmware/wlan/qca_cld/WCNSS_qcom_cfg.ini", - symlink_target: "/odm/vendor/etc/wifi/WCNSS_qcom_cfg.ini", + imports: ["hardware/qcom-caf/bootctrl"], } diff --git a/Android.mk b/Android.mk new file mode 100644 index 0000000..dbae463 --- /dev/null +++ b/Android.mk @@ -0,0 +1,99 @@ +# +# Copyright (C) 2021-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. +# + +LOCAL_PATH := $(call my-dir) + +ifeq ($(TARGET_DEVICE),dre) +include $(call all-makefiles-under,$(LOCAL_PATH)) + +include $(CLEAR_VARS) + +# A/B builds require us to create the mount points at compile time. +# Just creating it for all cases since it does not hurt. +FIRMWARE_MOUNT_POINT := $(TARGET_OUT_VENDOR)/firmware_mnt +$(FIRMWARE_MOUNT_POINT): $(LOCAL_INSTALLED_MODULE) + @echo "Creating $(FIRMWARE_MOUNT_POINT)" + @mkdir -p $(TARGET_OUT_VENDOR)/firmware_mnt + +BT_FIRMWARE_MOUNT_POINT := $(TARGET_OUT_VENDOR)/bt_firmware +$(BT_FIRMWARE_MOUNT_POINT): $(LOCAL_INSTALLED_MODULE) + @echo "Creating $(BT_FIRMWARE_MOUNT_POINT)" + @mkdir -p $(TARGET_OUT_VENDOR)/bt_firmware + +DSP_MOUNT_POINT := $(TARGET_OUT_VENDOR)/dsp +$(DSP_MOUNT_POINT): $(LOCAL_INSTALLED_MODULE) + @echo "Creating $(DSP_MOUNT_POINT)" + @mkdir -p $(TARGET_OUT_VENDOR)/dsp + +ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_MOUNT_POINT) $(BT_FIRMWARE_MOUNT_POINT) $(DSP_MOUNT_POINT) + +RFS_MSM_ADSP_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/adsp/ +$(RFS_MSM_ADSP_SYMLINKS): $(LOCAL_INSTALLED_MODULE) + @echo "Creating RFS MSM ADSP folder structure: $@" + @rm -rf $@/* + @mkdir -p $(dir $@)/readonly/vendor + $(hide) ln -sf /data/vendor/tombstones/rfs/lpass $@/ramdumps + $(hide) ln -sf /mnt/vendor/persist/rfs/msm/adsp $@/readwrite + $(hide) ln -sf /mnt/vendor/persist/rfs/shared $@/shared + $(hide) ln -sf /mnt/vendor/persist/hlos_rfs/shared $@/hlos + $(hide) ln -sf /vendor/firmware_mnt $@/readonly/firmware + $(hide) ln -sf /vendor/firmware $@/readonly/vendor/firmware + +RFS_MSM_CDSP_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/cdsp/ +$(RFS_MSM_CDSP_SYMLINKS): $(LOCAL_INSTALLED_MODULE) + @echo "Creating RFS MSM CDSP folder structure: $@" + @rm -rf $@/* + @mkdir -p $(dir $@)/readonly/vendor + $(hide) ln -sf /data/vendor/tombstones/rfs/cdsp $@/ramdumps + $(hide) ln -sf /mnt/vendor/persist/rfs/msm/cdsp $@/readwrite + $(hide) ln -sf /mnt/vendor/persist/rfs/shared $@/shared + $(hide) ln -sf /mnt/vendor/persist/hlos_rfs/shared $@/hlos + $(hide) ln -sf /vendor/firmware_mnt $@/readonly/firmware + $(hide) ln -sf /vendor/firmware $@/readonly/vendor/firmware + +RFS_MSM_MPSS_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/mpss/ +$(RFS_MSM_MPSS_SYMLINKS): $(LOCAL_INSTALLED_MODULE) + @echo "Creating RFS MSM MPSS folder structure: $@" + @rm -rf $@/* + @mkdir -p $(dir $@)/readonly/vendor + $(hide) ln -sf /data/vendor/tombstones/rfs/modem $@/ramdumps + $(hide) ln -sf /mnt/vendor/persist/rfs/msm/mpss $@/readwrite + $(hide) ln -sf /mnt/vendor/persist/rfs/shared $@/shared + $(hide) ln -sf /mnt/vendor/persist/hlos_rfs/shared $@/hlos + $(hide) ln -sf /vendor/firmware_mnt $@/readonly/firmware + $(hide) ln -sf /vendor/firmware $@/readonly/vendor/firmware + +RFS_MSM_SLPI_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/slpi/ +$(RFS_MSM_SLPI_SYMLINKS): $(LOCAL_INSTALLED_MODULE) + @echo "Creating RFS MSM SLPI folder structure: $@" + @rm -rf $@/* + @mkdir -p $(dir $@)/readonly/vendor + $(hide) ln -sf /data/vendor/tombstones/rfs/slpi $@/ramdumps + $(hide) ln -sf /mnt/vendor/persist/rfs/msm/slpi $@/readwrite + $(hide) ln -sf /mnt/vendor/persist/rfs/shared $@/shared + $(hide) ln -sf /mnt/vendor/persist/hlos_rfs/shared $@/hlos + $(hide) ln -sf /vendor/firmware_mnt $@/readonly/firmware + $(hide) ln -sf /vendor/firmware $@/readonly/vendor/firmware + +WIFI_FIRMWARE_SYMLINKS := $(TARGET_OUT_VENDOR)/firmware/wlan/qca_cld +$(WIFI_FIRMWARE_SYMLINKS): $(LOCAL_INSTALLED_MODULE) + @echo "Creating wifi firmware symlinks: $@" + @mkdir -p $@ + $(hide) ln -sf /mnt/vendor/persist/WCNSS_qcom_cfg.ini $@/WCNSS_qcom_cfg.ini + $(hide) ln -sf /mnt/vendor/persist/wlan_mac.bin $@/wlan_mac.bin + +ALL_DEFAULT_INSTALLED_MODULES += $(RFS_MSM_ADSP_SYMLINKS) $(RFS_MSM_CDSP_SYMLINKS) $(RFS_MSM_MPSS_SYMLINKS) $(RFS_MSM_SLPI_SYMLINKS) $(WIFI_FIRMWARE_SYMLINKS) +endif diff --git a/AndroidProducts.mk b/AndroidProducts.mk index 5149227..5b67f85 100644 --- a/AndroidProducts.mk +++ b/AndroidProducts.mk @@ -13,6 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. # -# Copyright (C) 2019-Current A-Team Digital Solutions + PRODUCT_MAKEFILES := \ - $(LOCAL_DIR)/bliss_dre.mk + $(LOCAL_DIR)/lineage_dre.mk + +COMMON_LUNCH_CHOICES := \ + lineage_dre-user \ + lineage_dre-userdebug \ + lineage_dre-eng diff --git a/BoardConfig.mk b/BoardConfig.mk index 300574b..adf47eb 100644 --- a/BoardConfig.mk +++ b/BoardConfig.mk @@ -1,6 +1,23 @@ -# Copyright (C) 2021-2024 The LineageOS Project -# SPDX-License-Identifier: Apache-2.0 -# Copyright (C) 2019-Current A-Team Digital Solutions +# +# Copyright (C) 2021-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. +# + +BUILD_BROKEN_DUP_RULES := true +BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES := true + +BOARD_VENDOR := oneplus DEVICE_PATH := device/oneplus/dre @@ -20,6 +37,9 @@ AB_OTA_PARTITIONS += \ vendor_boot \ vendor_dlkm +# ANT+ +BOARD_ANT_WIRELESS_DEVICE := "qualcomm-hidl" + # Architecture TARGET_ARCH := arm64 TARGET_ARCH_VARIANT := armv8-a @@ -35,11 +55,13 @@ TARGET_2ND_CPU_ABI2 := armeabi TARGET_2ND_CPU_VARIANT := generic TARGET_2ND_CPU_VARIANT_RUNTIME := kryo385 -# Assert -TARGET_OTA_ASSERT_DEVICE := OnePlusN200,OnePlusN200TMO,dre - # Audio +AUDIO_FEATURE_ENABLED_AHAL_EXT := false AUDIO_FEATURE_ENABLED_DLKM := true +AUDIO_FEATURE_ENABLED_DS2_DOLBY_DAP := false +AUDIO_FEATURE_ENABLED_DTS_EAGLE := false +AUDIO_FEATURE_ENABLED_DYNAMIC_LOG := false +AUDIO_FEATURE_ENABLED_EXT_AMPLIFIER := true AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT := true AUDIO_FEATURE_ENABLED_GEF_SUPPORT := true AUDIO_FEATURE_ENABLED_GKI := true @@ -47,7 +69,6 @@ AUDIO_FEATURE_ENABLED_HW_ACCELERATED_EFFECTS := false AUDIO_FEATURE_ENABLED_INSTANCE_ID := true AUDIO_FEATURE_ENABLED_PROXY_DEVICE := true AUDIO_FEATURE_ENABLED_SSR := true -AUDIO_FEATURE_ENABLED_SVA_MULTI_STAGE := true BOARD_SUPPORTS_OPENSOURCE_STHAL := true BOARD_SUPPORTS_SOUND_TRIGGER := true BOARD_USES_ALSA_AUDIO := true @@ -57,18 +78,40 @@ USE_CUSTOM_AUDIO_POLICY := 1 TARGET_BOOTLOADER_BOARD_NAME := holi TARGET_NO_BOOTLOADER := true +# Bluetooth +BOARD_BLUETOOTH_BDROID_BUILDCFG_INLUDE_DIR := $(DEVICE_PATH)/bluetooth +TARGET_USE_QTI_BT_STACK := true + # Camera TARGET_USES_QTI_CAMERA_DEVICE := true USE_DEVICE_SPECIFIC_CAMERA := true # Display -TARGET_GRALLOC_HANDLE_HAS_RESERVED_SIZE := true -TARGET_HAS_WIDE_COLOR_DISPLAY := false TARGET_SCREEN_DENSITY := 450 +TARGET_USES_COLOR_METADATA := true +TARGET_USES_DISPLAY_RENDER_INTENTS := true +TARGET_USES_DRM_PP := true +TARGET_USES_GRALLOC4 := true +TARGET_USES_HWC2 := true +TARGET_USES_ION := true +TARGET_USES_QCOM_DISPLAY_BSP := true +TARGET_USES_QTI_MAPPER_2_0 := true +TARGET_USES_QTI_MAPPER_EXTENSIONS_1_1 := true + +# DRM +TARGET_ENABLE_MEDIADRM_64 := true # Filesystem TARGET_FS_CONFIG_GEN := $(DEVICE_PATH)/config.fs +# HIDL +DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE := \ + $(DEVICE_PATH)/device_framework_matrix.xml \ + hardware/qcom-caf/common/vendor_framework_compatibility_matrix.xml \ + vendor/lineage/config/device_framework_matrix.xml +DEVICE_MATRIX_FILE := $(DEVICE_PATH)/compatibility_matrix.xml +DEVICE_MANIFEST_FILE := $(DEVICE_PATH)/manifest.xml + # Kernel BOARD_BOOT_HEADER_VERSION := 3 BOARD_KERNEL_BASE := 0x00000000 @@ -84,35 +127,45 @@ BOARD_KERNEL_CMDLINE := \ service_locator.enable=1 \ swiotlb=0 \ iptable_raw.raw_before_defrag=1 \ - ip6table_raw.raw_before_defrag=1 + ip6table_raw.raw_before_defrag=1 \ + video=vfb:640x400,bpp=32,memsize=3072000 BOARD_KERNEL_IMAGE_NAME := Image BOARD_KERNEL_PAGESIZE := 4096 BOARD_KERNEL_SEPARATED_DTBO := true BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOT_HEADER_VERSION) -BOARD_RAMDISK_USE_LZ4 := true +TARGET_KERNEL_ADDITIONAL_FLAGS := \ + DTC_EXT=$(shell pwd)/prebuilts/misc/linux-x86/dtc/dtc \ + LLVM=1 TARGET_KERNEL_SOURCE := kernel/oneplus/sm4350 TARGET_KERNEL_CONFIG := vendor/holi-qgki_defconfig -TARGET_KERNEL_NO_GCC := true # Kernel modules BOARD_VENDOR_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVICE_PATH)/modules.load)) +BOARD_VENDOR_RAMDISK_RECOVERY_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVICE_PATH)/modules.load.recovery)) +BOOT_KERNEL_MODULES := $(BOARD_VENDOR_RAMDISK_RECOVERY_KERNEL_MODULES_LOAD) # Metadata BOARD_USES_METADATA_PARTITION := true # Partitions -BOARD_PRODUCTIMAGE_MINIMAL_PARTITION_RESERVED_SIZE := false --include vendor/lineage/config/BoardConfigReservedSize.mk BOARD_BOOTIMAGE_PARTITION_SIZE := 100663296 BOARD_DTBOIMG_PARTITION_SIZE := 8388608 BOARD_USERDATAIMAGE_PARTITION_SIZE := 54429298688 BOARD_VENDOR_BOOTIMAGE_PARTITION_SIZE := 100663296 -BOARD_ODMIMAGE_FILE_SYSTEM_TYPE := erofs +ifneq ($(WITH_GMS),true) +BOARD_PRODUCTIMAGE_EXTFS_INODE_COUNT := -1 +BOARD_PRODUCTIMAGE_PARTITION_RESERVED_SIZE := 958769746 +BOARD_SYSTEMIMAGE_EXTFS_INODE_COUNT := -1 +BOARD_SYSTEMIMAGE_PARTITION_RESERVED_SIZE := 1441097161 +BOARD_SYSTEM_EXTIMAGE_EXTFS_INODE_COUNT := -1 +BOARD_SYSTEM_EXTIMAGE_PARTITION_RESERVED_SIZE := 92160000 +endif +BOARD_ODMIMAGE_FILE_SYSTEM_TYPE := ext4 BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := ext4 BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE := ext4 BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE := ext4 -BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := erofs -BOARD_VENDOR_DLKMIMAGE_FILE_SYSTEM_TYPE := erofs +BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4 +BOARD_VENDOR_DLKMIMAGE_FILE_SYSTEM_TYPE := ext4 BOARD_ONEPLUS_DYNAMIC_PARTITIONS_PARTITION_LIST := odm product system system_ext vendor vendor_dlkm BOARD_ONEPLUS_DYNAMIC_PARTITIONS_SIZE := 5837979648 BOARD_SUPER_PARTITION_GROUPS := oneplus_dynamic_partitions @@ -128,72 +181,57 @@ TARGET_COPY_OUT_VENDOR_DLKM := vendor_dlkm BOARD_USES_QCOM_HARDWARE := true TARGET_BOARD_PLATFORM := holi +# Power +TARGET_TAP_TO_WAKE_NODE := "/proc/touchpanel/double_tap_enable" + # Properties TARGET_ODM_PROP += $(DEVICE_PATH)/odm.prop -TARGET_PRODUCT_PROP += $(DEVICE_PATH)/product.prop -TARGET_SYSTEM_EXT_PROP += $(DEVICE_PATH)/system_ext.prop +TARGET_SYSTEM_PROP += $(DEVICE_PATH)/system.prop TARGET_VENDOR_PROP += $(DEVICE_PATH)/vendor.prop # Recovery BOARD_INCLUDE_DTB_IN_BOOTIMG := true -BOARD_MOVE_RECOVERY_RESOURCES_TO_VENDOR_BOOT := true -TARGET_RECOVERY_FSTAB := $(DEVICE_PATH)/init/fstab.qcom +BOARD_USES_RECOVERY_AS_BOOT := true +TARGET_RECOVERY_FSTAB := $(DEVICE_PATH)/rootdir/etc/fstab.qcom TARGET_RECOVERY_PIXEL_FORMAT := RGBX_8888 TARGET_USERIMAGES_USE_EXT4 := true TARGET_USERIMAGES_USE_F2FS := true # RIL +CUSTOM_APNS_FILE := $(DEVICE_PATH)/configs/apns-conf.xml ENABLE_VENDOR_RIL_SERVICE := true -# Security -BOOT_SECURITY_PATCH := $(PLATFORM_SECURITY_PATCH) -VENDOR_SECURITY_PATCH := $(BOOT_SECURITY_PATCH) +# Security patch level +VENDOR_SECURITY_PATCH := 2022-03-01 # SEPolicy include device/qcom/sepolicy_vndr/SEPolicy.mk -include hardware/oplus/sepolicy/qti/SEPolicy.mk -SYSTEM_EXT_PRIVATE_SEPOLICY_DIRS += $(DEVICE_PATH)/sepolicy/private + +BOARD_VENDOR_SEPOLICY_DIRS += $(DEVICE_PATH)/sepolicy/vendor # Verified Boot BOARD_AVB_ENABLE := true BOARD_AVB_MAKE_VBMETA_IMAGE_ARGS += --set_hashtree_disabled_flag -BOARD_AVB_MAKE_VBMETA_IMAGE_ARGS += --set_verification_disabled_flag - -BOARD_AVB_BOOT_KEY_PATH := external/avb/test/data/testkey_rsa4096.pem -BOARD_AVB_BOOT_ALGORITHM := SHA256_RSA4096 -BOARD_AVB_BOOT_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP) -BOARD_AVB_BOOT_ROLLBACK_INDEX_LOCATION := 4 - -BOARD_AVB_DTBO_KEY_PATH := external/avb/test/data/testkey_rsa4096.pem -BOARD_AVB_DTBO_ALGORITHM := SHA256_RSA4096 -BOARD_AVB_DTBO_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP) -BOARD_AVB_DTBO_ROLLBACK_INDEX_LOCATION := 3 - +BOARD_AVB_MAKE_VBMETA_IMAGE_ARGS += --flags 2 BOARD_AVB_VBMETA_SYSTEM := system system_ext product -BOARD_AVB_VBMETA_SYSTEM_KEY_PATH := external/avb/test/data/testkey_rsa4096.pem -BOARD_AVB_VBMETA_SYSTEM_ALGORITHM := SHA256_RSA4096 +BOARD_AVB_VBMETA_SYSTEM_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem +BOARD_AVB_VBMETA_SYSTEM_ALGORITHM := SHA256_RSA2048 BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP) -BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX_LOCATION := 2 - -BOARD_AVB_VENDOR_BOOT_KEY_PATH := external/avb/test/data/testkey_rsa4096.pem -BOARD_AVB_VENDOR_BOOT_ALGORITHM := SHA256_RSA4096 -BOARD_AVB_VENDOR_BOOT_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP) -BOARD_AVB_VENDOR_BOOT_ROLLBACK_INDEX_LOCATION := 1 +BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX_LOCATION := 1 # Wi-Fi BOARD_WLAN_DEVICE := qcwcn BOARD_HOSTAPD_DRIVER := NL80211 BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE) -BOARD_WPA_SUPPLICANT_DRIVER := $(BOARD_HOSTAPD_DRIVER) -BOARD_WPA_SUPPLICANT_PRIVATE_LIB := $(BOARD_HOSTAPD_PRIVATE_LIB) -BOARD_WPA_SUPPLICANT_PRIVATE_LIB_EVENT := "ON" +BOARD_WPA_SUPPLICANT_DRIVER := NL80211 +BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE) +WIFI_DRIVER_DEFAULT := qca_cld3 WIFI_DRIVER_STATE_CTRL_PARAM := "/dev/wlan" WIFI_DRIVER_STATE_OFF := "OFF" WIFI_DRIVER_STATE_ON := "ON" -WIFI_HIDL_FEATURE_AWARE := true WIFI_HIDL_FEATURE_DUAL_INTERFACE := true WIFI_HIDL_UNIFIED_SUPPLICANT_SERVICE_RC_ENTRY := true WPA_SUPPLICANT_VERSION := VER_0_8_X # Include the proprietary files BoardConfig. -include vendor/oneplus/dre/BoardConfigVendor.mk +-include vendor/oneplus/dre/BoardConfigVendor.mk diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 261eeb9..0000000 --- a/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - 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. diff --git a/configs/audio/audio_io_policy.conf b/audio/audio_io_policy.conf similarity index 90% rename from configs/audio/audio_io_policy.conf rename to audio/audio_io_policy.conf index b1169dd..337c70b 100644 --- a/configs/audio/audio_io_policy.conf +++ b/audio/audio_io_policy.conf @@ -11,21 +11,26 @@ # the flags and formats should match the ones in "audio_policy.conf" outputs { +#ifdef VENDOR_EDIT +#if OP_FEATURE_MM_24BIT == 1 +#zhangyu@MM.Audio, 2021/01/28, Use 24bit to playback default { - flags AUDIO_OUTPUT_FLAG_PRIMARY - formats AUDIO_FORMAT_PCM_16_BIT - sampling_rates 48000 - bit_width 16 - app_type 69937 - } -#Vincent.chen@MULTIMEDIA.AUDIODRIVER.HAL, 2022/03/09, Add for support 24bit playback - default_24bit { flags AUDIO_OUTPUT_FLAG_PRIMARY formats AUDIO_FORMAT_PCM_24_BIT_PACKED sampling_rates 48000 bit_width 24 app_type 69937 } +#else +# default { +# flags AUDIO_OUTPUT_FLAG_PRIMARY +# formats AUDIO_FORMAT_PCM_16_BIT +# sampling_rates 48000 +# bit_width 16 +# app_type 69937 +# } +#endif +#endif proaudio { flags AUDIO_OUTPUT_FLAG_FAST|AUDIO_OUTPUT_FLAG_RAW formats AUDIO_FORMAT_PCM_16_BIT @@ -40,21 +45,26 @@ outputs { bit_width 16 app_type 69946 } +#ifdef VENDOR_EDIT +#if OP_FEATURE_MM_24BIT == 1 +#zhangyu@MM.Audio, 2021/01/28, Use 24bit to playback deep_buffer { - flags AUDIO_OUTPUT_FLAG_DEEP_BUFFER - formats AUDIO_FORMAT_PCM_16_BIT - sampling_rates 48000 - bit_width 16 - app_type 69936 - } -#Vincent.chen@MULTIMEDIA.AUDIODRIVER.HAL, 2022/03/09, Add for support 24bit playback - deep_buffer_24bit { flags AUDIO_OUTPUT_FLAG_DEEP_BUFFER formats AUDIO_FORMAT_PCM_24_BIT_PACKED sampling_rates 48000 bit_width 24 app_type 69936 } +#else +# deep_buffer { +# flags AUDIO_OUTPUT_FLAG_DEEP_BUFFER +# formats AUDIO_FORMAT_PCM_16_BIT +# sampling_rates 48000 +# bit_width 16 +# app_type 69936 +# } +#endif +#endif direct_pcm_16 { flags AUDIO_OUTPUT_FLAG_DIRECT formats AUDIO_FORMAT_PCM_16_BIT|AUDIO_FORMAT_PCM_24_BIT_PACKED|AUDIO_FORMAT_PCM_8_24_BIT|AUDIO_FORMAT_PCM_32_BIT diff --git a/configs/audio/audio_platform_info.xml b/audio/audio_platform_info_intcodec.xml similarity index 81% rename from configs/audio/audio_platform_info.xml rename to audio/audio_platform_info_intcodec.xml index 9bfd743..b628fdf 100644 --- a/configs/audio/audio_platform_info.xml +++ b/audio/audio_platform_info_intcodec.xml @@ -1,5 +1,5 @@ - + @@ -82,11 +82,8 @@ - - - + - @@ -95,20 +92,16 @@ + + - - - - - - @@ -116,33 +109,15 @@ - + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + @@ -153,7 +128,12 @@ + + + + + @@ -177,60 +157,16 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - + + + + + + + @@ -262,9 +198,6 @@ - - - @@ -309,9 +242,6 @@ - - - @@ -350,9 +280,6 @@ - - - @@ -399,25 +326,12 @@ - - - - - - - - - - - - - - - - - - - + + + + + + @@ -471,6 +385,8 @@ + - diff --git a/configs/audio/mixer_paths.xml b/audio/mixer_paths.xml similarity index 84% rename from configs/audio/mixer_paths.xml rename to audio/mixer_paths.xml index ee9a34f..68508d8 100644 --- a/configs/audio/mixer_paths.xml +++ b/audio/mixer_paths.xml @@ -64,7 +64,6 @@ - @@ -336,7 +335,6 @@ - @@ -348,14 +346,6 @@ - - - - - - - - @@ -382,31 +372,33 @@ - - - - - - + - - + + + + + + + - + + + + @@ -454,9 +446,6 @@ - - - @@ -482,36 +471,9 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + @@ -564,34 +526,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -624,9 +558,11 @@ + + @@ -673,6 +609,7 @@ + @@ -779,6 +716,7 @@ + @@ -927,6 +865,7 @@ + @@ -997,11 +936,6 @@ - - - - - @@ -1018,9 +952,11 @@ + + @@ -1055,6 +991,7 @@ + @@ -1164,9 +1101,11 @@ + + @@ -1185,6 +1124,7 @@ + @@ -1295,9 +1235,11 @@ + + @@ -1316,6 +1258,7 @@ + @@ -1425,9 +1368,11 @@ + + @@ -1446,6 +1391,7 @@ + @@ -1555,9 +1501,11 @@ + + @@ -1576,6 +1524,7 @@ + @@ -1685,9 +1634,11 @@ + + @@ -1706,6 +1657,7 @@ + @@ -1815,9 +1767,11 @@ + + @@ -1836,6 +1790,7 @@ + @@ -1945,9 +1900,11 @@ + + @@ -1966,6 +1923,7 @@ + @@ -2075,9 +2033,11 @@ + + @@ -2096,6 +2056,7 @@ + @@ -2214,6 +2175,7 @@ + @@ -2238,6 +2200,7 @@ + @@ -2262,6 +2225,7 @@ + @@ -2280,12 +2244,17 @@ - + + + + + + @@ -2559,6 +2528,7 @@ + @@ -2586,10 +2556,12 @@ + - + + @@ -2617,6 +2589,7 @@ + @@ -2685,6 +2658,7 @@ + @@ -2746,10 +2720,6 @@ - - - - @@ -2763,6 +2733,7 @@ + @@ -2812,8 +2783,7 @@ - - + @@ -2828,37 +2798,17 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - + + + + @@ -2868,6 +2818,7 @@ + @@ -2901,6 +2852,7 @@ + @@ -2908,6 +2860,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2940,11 +2938,12 @@ - - - - - + + + + + + @@ -2971,6 +2970,12 @@ + + + + + + @@ -2999,7 +3004,7 @@ - + @@ -3026,20 +3031,14 @@ - + - + - - + + @@ -3052,22 +3051,7 @@ - - - - - - - - - - - - - - - + @@ -3086,10 +3070,6 @@ - - - @@ -3112,6 +3092,7 @@ + @@ -3144,49 +3125,10 @@ - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -3194,12 +3136,6 @@ - - - - - - @@ -3212,12 +3148,10 @@ - - - - - + + + @@ -3249,43 +3183,11 @@ - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - + @@ -3293,8 +3195,7 @@ - - + @@ -3398,14 +3299,8 @@ - - + + @@ -3420,9 +3315,14 @@ - + + + + + + @@ -3447,14 +3347,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + - - + + @@ -3467,33 +3392,16 @@ - + - - - - - - - - - - - - - - - - - - - + + @@ -3506,9 +3414,60 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3521,89 +3480,116 @@ + + + + - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3696,14 +3682,20 @@ - - + + + + + + @@ -4021,6 +4013,7 @@ + @@ -4105,6 +4098,7 @@ + @@ -4393,269 +4387,4 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/configs/audio/sound_trigger_mixer_paths.xml b/audio/sound_trigger_mixer_paths.xml similarity index 85% rename from configs/audio/sound_trigger_mixer_paths.xml rename to audio/sound_trigger_mixer_paths.xml index 089ee7a..66f54b0 100644 --- a/configs/audio/sound_trigger_mixer_paths.xml +++ b/audio/sound_trigger_mixer_paths.xml @@ -56,12 +56,6 @@ - - - - - - @@ -78,14 +72,11 @@ - - - @@ -250,13 +241,17 @@ + + - - - - + + + + @@ -267,44 +262,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/blob-patches/init-post-boot-blair.patch b/blob-patches/init-post-boot-blair.patch deleted file mode 100644 index bb6bf61..0000000 --- a/blob-patches/init-post-boot-blair.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- a/init.kernel.post_boot-blair.sh -+++ b/init.kernel.post_boot-blair.sh -@@ -32,11 +32,6 @@ - #============================================================================= - - function configure_zram_parameters() { -- # Moto yangbq2: Skip this if we are using zram from fstab. -- using_zram_from_fstab=`getprop ro.boot.using_zram_from_fstab` -- if [ "$using_zram_from_fstab" == "true" ]; then -- return -- fi - MemTotalStr=`cat /proc/meminfo | grep MemTotal` - MemTotal=${MemTotalStr:16:8} - diff --git a/blob-patches/init-post-boot-holi.patch b/blob-patches/init-post-boot-holi.patch deleted file mode 100644 index bc9a319..0000000 --- a/blob-patches/init-post-boot-holi.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- a/init.kernel.post_boot-holi.sh -+++ b/init.kernel.post_boot-holi.sh -@@ -32,11 +32,6 @@ - #============================================================================= - - function configure_zram_parameters() { -- # Moto yangbq2: Skip this if we are using zram from fstab. -- using_zram_from_fstab=`getprop ro.boot.using_zram_from_fstab` -- if [ "$using_zram_from_fstab" == "true" ]; then -- return -- fi - MemTotalStr=`cat /proc/meminfo | grep MemTotal` - MemTotal=${MemTotalStr:16:8} - diff --git a/bluetooth/bdroid_buildcfg.h b/bluetooth/bdroid_buildcfg.h new file mode 100644 index 0000000..9b20406 --- /dev/null +++ b/bluetooth/bdroid_buildcfg.h @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2013, The Linux Foundation. All rights reserved. + * Not a Contribution. + * + * Copyright (C) 2012 The Android Open Source Project + * 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. + */ + +#ifndef _BDROID_BUILDCFG_H +#define _BDROID_BUILDCFG_H +#define BTM_DEF_LOCAL_NAME "OnePlus Nord N200" +// Disables read remote device feature +#define MAX_ACL_CONNECTIONS 16 +#define MAX_L2CAP_CHANNELS 32 +#define BLE_VND_INCLUDED TRUE +#define GATT_MAX_PHY_CHANNEL 10 +// skips conn update at conn completion +#define BT_CLEAN_TURN_ON_DISABLED 1 + +#define AVDT_NUM_SEPS 35 +#endif \ No newline at end of file diff --git a/board-info.txt b/board-info.txt deleted file mode 100644 index 0fee1ba..0000000 --- a/board-info.txt +++ /dev/null @@ -1 +0,0 @@ -require board=holi|OnePlusN200 diff --git a/bootctrl/Android.bp b/bootctrl/Android.bp new file mode 100644 index 0000000..0f412aa --- /dev/null +++ b/bootctrl/Android.bp @@ -0,0 +1,28 @@ +// +// Copyright (C) 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. +// + +cc_library { + name: "bootctrl.holi", + defaults: ["bootctrl_hal_defaults"], + static_libs: ["libgptutils.oneplus_holi"], +} + +cc_library_shared { + name: "android.hardware.boot@1.1-impl-qti", + stem: "android.hardware.boot@1.0-impl-1.1-qti", + defaults: ["android.hardware.boot@1.1-impl-qti_defaults"], + static_libs: ["libgptutils.oneplus_holi"], +} diff --git a/compatibility_matrix.xml b/compatibility_matrix.xml new file mode 100644 index 0000000..8c2c0bf --- /dev/null +++ b/compatibility_matrix.xml @@ -0,0 +1,109 @@ + + + + android.frameworks.schedulerservice + 1.0 + + ISchedulingPolicyService + default + + + + android.frameworks.sensorservice + 1.0 + + ISensorManager + default + + + + android.hidl.allocator + 1.0 + + IAllocator + ashmem + + + + android.hidl.manager + 1.0 + + IServiceManager + default + + + + android.hidl.memory + 1.0 + + IMapper + ashmem + + + + android.hidl.token + 1.0 + + ITokenManager + default + + + + android.system.wifi.keystore + 1.0 + + IKeystore + default + + + + vendor.qti.hardware.qccsyshal + 1.0 + + IQccsyshal + qccsyshal + + + + vendor.qti.hardware.sigma_miracast + 1.0 + + Isigma_miracast + sigmahal + + + + vendor.qti.hardware.wifi.keystore + 1.0 + + IKeystoreExt + default + + + diff --git a/config.fs b/config.fs index 0b2da9d..084ddf9 100644 --- a/config.fs +++ b/config.fs @@ -25,12 +25,6 @@ value:2908 [AID_VENDOR_QTR] value:2909 -[AID_VENDOR_LAUNCHER] -value:2988 - -[AID_VENDOR_SAURES] -value:2989 - [bt_firmware/] mode: 0771 user: AID_SYSTEM diff --git a/configs/apns-conf.xml b/configs/apns-conf.xml new file mode 100644 index 0000000..ad5bd04 --- /dev/null +++ b/configs/apns-conf.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/configs/audio/audio_policy_configuration.xml b/configs/audio/audio_policy_configuration.xml deleted file mode 100644 index c04734a..0000000 --- a/configs/audio/audio_policy_configuration.xml +++ /dev/null @@ -1,448 +0,0 @@ - - - - - - - - - - - - - - - - - - - Earpiece - Speaker - Telephony Tx - Built-In Mic - Built-In Back Mic - FM Tuner - Telephony Rx - - Speaker - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/configs/audio/audio_policy_configuration_a2dp_offload_disabled.xml b/configs/audio/audio_policy_configuration_a2dp_offload_disabled.xml deleted file mode 100644 index 62b6633..0000000 --- a/configs/audio/audio_policy_configuration_a2dp_offload_disabled.xml +++ /dev/null @@ -1,427 +0,0 @@ - - - - - - - - - - - - - - - - - - - Earpiece - Speaker - Telephony Tx - Built-In Mic - Built-In Back Mic - FM Tuner - Telephony Rx - - Speaker - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/configs/audio/bluetooth_hearing_aid_audio_policy_configuration.xml b/configs/audio/bluetooth_hearing_aid_audio_policy_configuration.xml deleted file mode 100644 index eddd371..0000000 --- a/configs/audio/bluetooth_hearing_aid_audio_policy_configuration.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/configs/media_codecs_holi.xml b/configs/media_codecs_holi.xml new file mode 100644 index 0000000..aad5cf5 --- /dev/null +++ b/configs/media_codecs_holi.xml @@ -0,0 +1,291 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/configs/media_codecs_holi_vendor.xml b/configs/media_codecs_holi_vendor.xml new file mode 100644 index 0000000..229f30e --- /dev/null +++ b/configs/media_codecs_holi_vendor.xml @@ -0,0 +1,287 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/configs/media_codecs_performance_holi.xml b/configs/media_codecs_performance_holi.xml new file mode 100644 index 0000000..f4cf7bf --- /dev/null +++ b/configs/media_codecs_performance_holi.xml @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/configs/media_codecs_performance_holi_vendor.xml b/configs/media_codecs_performance_holi_vendor.xml new file mode 100644 index 0000000..b95d481 --- /dev/null +++ b/configs/media_codecs_performance_holi_vendor.xml @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/configs/media_codecs_vendor_audio.xml b/configs/media_codecs_vendor_audio.xml new file mode 100644 index 0000000..2164a65 --- /dev/null +++ b/configs/media_codecs_vendor_audio.xml @@ -0,0 +1,24 @@ + + + + + + + + + diff --git a/configs/media_profiles.xml b/configs/media_profiles.xml new file mode 100644 index 0000000..66128d6 --- /dev/null +++ b/configs/media_profiles.xml @@ -0,0 +1,867 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/configs/media_profiles_V1_0.xml b/configs/media_profiles_V1_0.xml new file mode 100644 index 0000000..dc4a051 --- /dev/null +++ b/configs/media_profiles_V1_0.xml @@ -0,0 +1,511 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/configs/media/media_profiles_holi.xml b/configs/media_profiles_holi.xml similarity index 100% rename from configs/media/media_profiles_holi.xml rename to configs/media_profiles_holi.xml diff --git a/configs/nfc/libnfc-hal-st.conf b/configs/nfc/libnfc-hal-st.conf deleted file mode 100644 index ebd4224..0000000 --- a/configs/nfc/libnfc-hal-st.conf +++ /dev/null @@ -1,156 +0,0 @@ -########################### Start of libnfc-hal-st.conf ########################### - -############################################################################### -############################################################################### -# ST HAL trace log level -#define STNFC_TRACE_LEVEL_NONE 0x00 -#define STNFC_TRACE_LEVEL_ERROR 0x01 -#define STNFC_TRACE_LEVEL_WARNING 0x02 -#define STNFC_TRACE_LEVEL_DEBUG 0x03 -#define STNFC_TRACE_LEVEL_VERBOSE 0x04 -#define STNFC_TRACE_FLAG_PRIVACY 0x10 -STNFC_HAL_LOGLEVEL=3 - -NFC_DEBUG_ENABLED=1 - -############################################################################### -# Vendor specific mode to enable FW (RF & SWP) traces. -STNFC_FW_DEBUG_ENABLED=0 - -############################################################################### -# File used for NFA storage -NFA_STORAGE="/data/nfc" - -############################################################################### -# Keep the nfa storage file. -PRESERVE_STORAGE=1 - -############################################################################### -# In Switch OFF mode (phone switched-off), specify the desired CE mode to -# the controller. -# 0: No card-emulation; DEFAULT -# 1: Switch-off card-emulation enabled -CE_ON_SWITCH_OFF_STATE=1 - -############################################################################### -# Vendor specific mode to support the USB charging mode if VPSIO=1 in switch off. -STNFC_USB_CHARGING_MODE=1 - -############################################################################### -# Vendor Specific Proprietary Protocol & Discovery Configuration -# Set to 0xFF if unsupported -# byte[0] NCI_PROTOCOL_18092_ACTIVE -# byte[1] NCI_PROTOCOL_B_PRIME -# byte[2] NCI_PROTOCOL_DUAL -# byte[3] NCI_PROTOCOL_15693 -# byte[4] NCI_PROTOCOL_KOVIO -# byte[5] NCI_PROTOCOL_MIFARE -# byte[6] NCI_DISCOVERY_TYPE_POLL_KOVIO -# byte[7] NCI_DISCOVERY_TYPE_POLL_B_PRIME -# byte[8] NCI_DISCOVERY_TYPE_LISTEN_B_PRIME -NFA_PROPRIETARY_CFG={05:FF:FF:06:8A:90:77:FF:FF} - -############################################################################### -# Choose the presence-check algorithm for type-4 tag. If not defined, -# the default value is 1. -# 0 NFA_RW_PRES_CHK_DEFAULT; Let stack selects an algorithm -# 1 NFA_RW_PRES_CHK_I_BLOCK; ISO-DEP protocol's empty I-block -# 2 NFA_RW_PRES_CHK_RESET; Deactivate to Sleep, then re-activate -# 3 NFA_RW_PRES_CHK_RB_CH0; Type-4 tag protocol's ReadBinary command on channel 0 -# 4 NFA_RW_PRES_CHK_RB_CH3; Type-4 tag protocol's ReadBinary command on channel 3 -# 5 NFA_RW_PRES_CHK_ISO_DEP_NAK; presence check command ISO-DEP NAK as per NCI2.0 -PRESENCE_CHECK_ALGORITHM=5 - -############################################################################### -# Name of the NCI HAL module to use -# If unset, falls back to nfc_nci.bcm2079x -NCI_HAL_MODULE="nfc_nci.st21nfc" - -############################################################################### -# Allow list to be set at startup. -DEVICE_HOST_ALLOW_LIST={02:C0} - -############################################################################### -# BAIL OUT value for P2P -# Implements algorithm for NFC-DEP protocol priority over ISO-DEP protocol. -POLL_BAIL_OUT_MODE=1 - -############################################################################### -# Extended APDU length for ISO_DEP -ISO_DEP_MAX_TRANSCEIVE=0xFEFF - -############################################################################### -# Configure the NFC Extras to open and use a static pipe. If the value is -# not set or set to 0, then the default is use a dynamic pipe based on a -# destination gate (see NFA_HCI_DEFAULT_DEST_GATE). Note there is a value -# for each EE (ESE/SIM) -OFF_HOST_ESE_PIPE_ID=0x5E -OFF_HOST_SIM_PIPE_ID=0x3E - -############################################################################### -#Set the default Felica T3T System Code OffHost route Location : -#This settings will be used when application does not set this parameter -# host 0x00 -# eSE 0x82 (eSE), 0x86 (eUICC/SPI-SE) -# UICC 0x81 (UICC_1), 0x85 (UICC_2) -DEFAULT_SYS_CODE_ROUTE=0x81 - -############################################################################### -#Set the Felica T3T System Code supported power state: -DEFAULT_SYS_CODE_PWR_STATE=0x3B - -############################################################################### -# Path and Files used for FW update binaries storage -STNFC_FW_PATH_STORAGE="/vendor/firmware/" -# STNFC_FW_BIN_NAME="st21nfc_fw7.bin" -STNFC_FW_CONF_NAME="/vendor/etc/libnfc-st21h_conf.txt" - -############################################################################### -# Default off-host route for Felica. -#This settings will be used when application does not set this parameter -# host 0x00 -# eSE 0x82 (eSE), 0x86 (eUICC/SPI-SE) -# UICC 0x81 (UICC_1), 0x85 (UICC_2) -DEFAULT_NFCF_ROUTE=0x81 - -############################################################################### -# Configure the default off-host route. -# used for technology A and B routing -# eSE 0x82 (eSE), 0x86 (eUICC/SPI-SE) -# UICC 0x81 (UICC_1), 0x85 (UICC_2) -DEFAULT_OFFHOST_ROUTE=0x81 - -############################################################################### -# Configure the default AID route. -# host 0x00 -# eSE 0x82 (eSE), 0x86 (eUICC/SPI-SE) -# UICC 0x81 (UICC_1), 0x85 (UICC_2) -DEFAULT_ROUTE=0x81 - -############################################################################### -# Configure the NFCEEIDs of offhost UICC. -# UICC 0x81 (UICC_1), 0x85 (UICC_2) -OFFHOST_ROUTE_UICC={81,83,85} - -############################################################################### -# Configure the NFCEEIDs of offhost eSEs. -# eSE 0x82 (eSE), 0x86 (eUICC/SPI-SE) -OFFHOST_ROUTE_ESE={82,86} - -############################################################################### -# Configure the list of NFCEE for the ISO-DEP routing. -# host 0x00 -# eSE 0x82 (eSE), 0x86 (eUICC/SPI-SE) -# UICC 0x81 (UICC_1), 0x85 (UICC_2) -DEFAULT_ISODEP_ROUTE=0x81 - -############################################################################### -# Core configuration settings -CORE_CONF_PROP={ 20, 02, 13, 06, - a1, 01, 19, - a2, 01, 15, - 80, 01, 01, - 08, 01, 01, - 11, 01, 01, - 19, 01, 01 -} diff --git a/configs/perf/task_profiles.json b/configs/perf/task_profiles.json deleted file mode 100644 index 0fc4bd5..0000000 --- a/configs/perf/task_profiles.json +++ /dev/null @@ -1,566 +0,0 @@ -{ - "Attributes": [ - { - "Name": "LowCapacityCPUs", - "Controller": "cpuset", - "File": "background/cpus" - }, - { - "Name": "HighCapacityCPUs", - "Controller": "cpuset", - "File": "foreground/cpus" - }, - { - "Name": "MaxCapacityCPUs", - "Controller": "cpuset", - "File": "top-app/cpus" - }, - { - "Name": "AudioAppCapacityCPUs", - "Controller": "cpuset", - "File": "audio-app/cpus" - }, - - { - "Name": "MemLimit", - "Controller": "memory", - "File": "memory.limit_in_bytes" - }, - { - "Name": "MemSoftLimit", - "Controller": "memory", - "File": "memory.soft_limit_in_bytes" - }, - { - "Name": "MemSwappiness", - "Controller": "memory", - "File": "memory.swappiness" - }, - { - "Name": "UClampMin", - "Controller": "cpu", - "File": "cpu.uclamp.min" - }, - { - "Name": "UClampMax", - "Controller": "cpu", - "File": "cpu.uclamp.max" - } - ], - - "Profiles": [ - { - "Name": "HighEnergySaving", - "Actions": [ - { - "Name": "JoinCgroup", - "Params": - { - "Controller": "cpu", - "Path": "background" - } - } - ] - }, - { - "Name": "NormalPerformance", - "Actions": [ - { - "Name": "JoinCgroup", - "Params": - { - "Controller": "cpu", - "Path": "" - } - } - ] - }, - { - "Name": "HighPerformance", - "Actions": [ - { - "Name": "JoinCgroup", - "Params": - { - "Controller": "cpu", - "Path": "foreground" - } - } - ] - }, - { - "Name": "MaxPerformance", - "Actions": [ - { - "Name": "JoinCgroup", - "Params": - { - "Controller": "cpu", - "Path": "top-app" - } - } - ] - }, - { - "Name": "RealtimePerformance", - "Actions": [ - { - "Name": "JoinCgroup", - "Params": - { - "Controller": "cpu", - "Path": "rt" - } - } - ] - }, - { - "Name": "AudioAppPerformance", - "Actions" : [ - { - "Name" : "JoinCgroup", - "Params" : - { - "Controller": "cpu", - "Path": "audio-app" - } - } - ] - }, - - { - "Name": "VrKernelCapacity", - "Actions": [ - { - "Name": "JoinCgroup", - "Params": - { - "Controller": "cpuset", - "Path": "" - } - } - ] - }, - { - "Name": "VrServiceCapacityLow", - "Actions": [ - { - "Name": "JoinCgroup", - "Params": - { - "Controller": "cpuset", - "Path": "system/background" - } - } - ] - }, - { - "Name": "VrServiceCapacityNormal", - "Actions": [ - { - "Name": "JoinCgroup", - "Params": - { - "Controller": "cpuset", - "Path": "system" - } - } - ] - }, - { - "Name": "VrServiceCapacityHigh", - "Actions": [ - { - "Name": "JoinCgroup", - "Params": - { - "Controller": "cpuset", - "Path": "system/performance" - } - } - ] - }, - { - "Name": "VrProcessCapacityLow", - "Actions": [ - { - "Name": "JoinCgroup", - "Params": - { - "Controller": "cpuset", - "Path": "application/background" - } - } - ] - }, - { - "Name": "VrProcessCapacityNormal", - "Actions": [ - { - "Name": "JoinCgroup", - "Params": - { - "Controller": "cpuset", - "Path": "application" - } - } - ] - }, - { - "Name": "VrProcessCapacityHigh", - "Actions": [ - { - "Name": "JoinCgroup", - "Params": - { - "Controller": "cpuset", - "Path": "application/performance" - } - } - ] - }, - - { - "Name": "ProcessCapacityLow", - "Actions": [ - { - "Name": "JoinCgroup", - "Params": - { - "Controller": "cpuset", - "Path": "background" - } - } - ] - }, - { - "Name": "ProcessCapacityNormal", - "Actions": [ - { - "Name": "JoinCgroup", - "Params": - { - "Controller": "cpuset", - "Path": "" - } - } - ] - }, - { - "Name": "ProcessCapacityHigh", - "Actions": [ - { - "Name": "JoinCgroup", - "Params": - { - "Controller": "cpuset", - "Path": "foreground" - } - } - ] - }, - { - "Name": "ProcessCapacityMax", - "Actions": [ - { - "Name": "JoinCgroup", - "Params": - { - "Controller": "cpuset", - "Path": "top-app" - } - } - ] - }, - - { - "Name": "ServiceCapacityLow", - "Actions": [ - { - "Name": "JoinCgroup", - "Params": - { - "Controller": "cpuset", - "Path": "system-background" - } - } - ] - }, - { - "Name": "ServiceCapacityRestricted", - "Actions": [ - { - "Name": "JoinCgroup", - "Params": - { - "Controller": "cpuset", - "Path": "restricted" - } - } - ] - }, - - { - "Name": "CameraServiceCapacity", - "Actions": [ - { - "Name": "JoinCgroup", - "Params": - { - "Controller": "cpuset", - "Path": "camera-daemon" - } - } - ] - }, - { - "Name": "AudioAppCapacity", - "Actions" : [ - { - "Name" : "JoinCgroup", - "Params" : - { - "Controller": "cpuset", - "Path": "audio-app" - } - } - ] - }, - - { - "Name": "BlkIOForeground", - "Actions" : [ - { - "Name" : "JoinCgroup", - "Params" : - { - "Controller": "blkio", - "Path": "" - } - } - ] - }, - { - "Name": "BlkIOBackground", - "Actions" : [ - { - "Name" : "JoinCgroup", - "Params" : - { - "Controller": "blkio", - "Path": "bg" - } - } - ] - }, - - { - "Name": "LowIoPriority", - "Actions": [ - { - "Name": "JoinCgroup", - "Params": - { - "Controller": "blkio", - "Path": "background" - } - } - ] - }, - { - "Name": "NormalIoPriority", - "Actions": [ - { - "Name": "JoinCgroup", - "Params": - { - "Controller": "blkio", - "Path": "" - } - } - ] - }, - { - "Name": "HighIoPriority", - "Actions": [ - { - "Name": "JoinCgroup", - "Params": - { - "Controller": "blkio", - "Path": "" - } - } - ] - }, - { - "Name": "MaxIoPriority", - "Actions": [ - { - "Name": "JoinCgroup", - "Params": - { - "Controller": "blkio", - "Path": "" - } - } - ] - }, - - { - "Name": "TimerSlackHigh", - "Actions": [ - { - "Name": "SetTimerSlack", - "Params": - { - "Slack": "5000000" - } - } - ] - }, - { - "Name": "TimerSlackNormal", - "Actions": [ - { - "Name": "SetTimerSlack", - "Params": - { - "Slack": "50000" - } - } - ] - }, - - { - "Name": "PerfBoost", - "Actions": [ - { - "Name": "SetClamps", - "Params": - { - "Boost": "50%", - "Clamp": "0" - } - } - ] - }, - { - "Name": "PerfClamp", - "Actions": [ - { - "Name": "SetClamps", - "Params": - { - "Boost": "0", - "Clamp": "30%" - } - } - ] - }, - - { - "Name": "LowMemoryUsage", - "Actions": [ - { - "Name": "SetAttribute", - "Params": - { - "Name": "MemSoftLimit", - "Value": "16MB" - } - }, - { - "Name": "SetAttribute", - "Params": - { - "Name": "MemSwappiness", - "Value": "150" - - } - } - ] - }, - { - "Name": "HighMemoryUsage", - "Actions": [ - { - "Name": "SetAttribute", - "Params": - { - "Name": "MemSoftLimit", - "Value": "512MB" - } - }, - { - "Name": "SetAttribute", - "Params": - { - "Name": "MemSwappiness", - "Value": "100" - } - } - ] - }, - { - "Name": "SystemMemoryProcess", - "Actions": [ - { - "Name": "JoinCgroup", - "Params": - { - "Controller": "memory", - "Path": "system" - } - } - ] - } - ], - - "AggregateProfiles": [ - { - "Name": "SCHED_SP_DEFAULT", - "Profiles": [ "TimerSlackNormal" ] - }, - { - "Name": "SCHED_SP_BACKGROUND", - "Profiles": [ "HighEnergySaving", "LowIoPriority", "TimerSlackHigh" ] - }, - { - "Name": "SCHED_SP_FOREGROUND", - "Profiles": [ "HighPerformance", "HighIoPriority", "TimerSlackNormal" ] - }, - { - "Name": "SCHED_SP_TOP_APP", - "Profiles": [ "MaxPerformance", "MaxIoPriority", "TimerSlackNormal" ] - }, - { - "Name": "SCHED_SP_RT_APP", - "Profiles": [ "RealtimePerformance", "MaxIoPriority", "TimerSlackNormal" ] - }, - { - "Name": "CPUSET_SP_DEFAULT", - "Profiles": [ "TimerSlackNormal" ] - }, - { - "Name": "CPUSET_SP_BACKGROUND", - "Profiles": [ "HighEnergySaving", "ProcessCapacityLow", "LowIoPriority", "TimerSlackHigh" ] - }, - { - "Name": "CPUSET_SP_FOREGROUND", - "Profiles": [ "HighPerformance", "ProcessCapacityHigh", "HighIoPriority", "TimerSlackNormal" ] - }, - { - "Name": "CPUSET_SP_TOP_APP", - "Profiles": [ "MaxPerformance", "ProcessCapacityMax", "MaxIoPriority", "TimerSlackNormal" ] - }, - { - "Name": "CPUSET_SP_SYSTEM", - "Profiles": [ "ServiceCapacityLow", "TimerSlackNormal" ] - }, - { - "Name": "CPUSET_SP_RESTRICTED", - "Profiles": [ "ServiceCapacityRestricted", "TimerSlackNormal" ] - } - ] -} diff --git a/configs/powerhint.json b/configs/powerhint.json deleted file mode 100644 index 9a79c05..0000000 --- a/configs/powerhint.json +++ /dev/null @@ -1,628 +0,0 @@ -{ - "Nodes": [ - { - "Name": "CPULittleClusterMaxFreq", - "Path": "/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq", - "Values": [ - "9999999", - "1708800", - "576000", - "300000" - ], - "DefaultIndex": 0, - "ResetOnInit": true - }, - { - "Name": "CPULittleClusterMinFreq", - "Path": "/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq", - "Values": [ - "9999999", - "1708800", - "1324800", - "576000", - "300000" - ], - "DefaultIndex": 4, - "ResetOnInit": true - }, - { - "Name": "CPULittleClusterUpRateLimit", - "Path": "/sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us", - "Values": [ - "500", - "2000" - ], - "ResetOnInit": true - }, - { - "Name": "CPULittleClusterDownRateLimit", - "Path": "/sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us", - "Values": [ - "20000", - "2000" - ], - "ResetOnInit": true - }, - { - "Name": "CPUBigClusterMaxFreq", - "Path": "/sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq", - "Values": [ - "9999999", - "2035200", - "1804800", - "1651200", - "1536000" - ], - "DefaultIndex": 0, - "ResetOnInit": true - }, - { - "Name": "CPUBigClusterMinFreq", - "Path": "/sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq", - "Values": [ - "9999999", - "1651200", - "768000", - "0" - ], - "DefaultIndex": 3, - "ResetOnInit": true - }, - { - "Name": "CPUBigClusterUpRateLimit", - "Path": "/sys/devices/system/cpu/cpu6/cpufreq/schedutil/up_rate_limit_us", - "Values": [ - "500", - "2000" - ], - "ResetOnInit": true - }, - { - "Name": "CPUBigClusterDownRateLimit", - "Path": "/sys/devices/system/cpu/cpu6/cpufreq/schedutil/down_rate_limit_us", - "Values": [ - "20000", - "2000" - ], - "ResetOnInit": true - }, - { - "Name": "UclampTAMin", - "Path": "/dev/cpuctl/top-app/cpu.uclamp.min", - "Values": [ - "0", - "50", - "100" - ], - "DefaultIndex": 0, - "ResetOnInit": true - }, - { - "Name": "UclampTALatency", - "Path": "/dev/cpuctl/top-app/cpu.uclamp.latency_sensitive", - "Values": [ - "1", - "0" - ], - "ResetOnInit": true - }, - { - "Name": "UclampFgMin", - "Path": "/dev/cpuctl/foreground/cpu.uclamp.min", - "Values": [ - "0", - "50", - "100" - ], - "DefaultIndex": 0, - "ResetOnInit": true - }, - { - "Name": "GPUMaxFreq", - "Path": "/sys/class/kgsl/kgsl-3d0/max_pwrlevel", - "Values": [ - "0", - "1" - ], - "DefaultIndex": 0, - "ResetOnInit": true - }, - { - "Name": "GPUMinFreq", - "Path": "/sys/class/kgsl/kgsl-3d0/min_pwrlevel", - "Values": [ - "0", - "1", - "2", - "3", - "4" - ], - "ResetOnInit": true - }, - { - "Name": "GPUForceRailOn", - "Path": "/sys/class/kgsl/kgsl-3d0/force_rail_on", - "Values": [ - "1", - "0" - ], - "ResetOnInit": true - }, - { - "Name": "GPUForceClkOn", - "Path": "/sys/class/kgsl/kgsl-3d0/force_clk_on", - "Values": [ - "1", - "0" - ], - "ResetOnInit": true - }, - { - "Name": "GPUIdleTimer", - "Path": "/sys/class/kgsl/kgsl-3d0/idle_timer", - "Values": [ - "10000", - "80" - ], - "ResetOnInit": true - }, - { - "Name": "CPUBWHystTriggerCount", - "Path": "/sys/class/devfreq/soc:qcom,cpu-cpu-ddr-bw/bw_hwmon/hyst_trigger_count", - "Values": [ - "0", - "3" - ], - "ResetOnInit": true - }, - { - "Name": "CPUBWHistMemory", - "Path": "/sys/class/devfreq/soc:qcom,cpu-cpu-ddr-bw/bw_hwmon/hist_memory", - "Values": [ - "0", - "20" - ], - "ResetOnInit": true - }, - { - "Name": "CPUBWHystLength", - "Path": "/sys/class/devfreq/soc:qcom,cpu-cpu-ddr-bw/bw_hwmon/hyst_length", - "Values": [ - "0", - "10" - ], - "ResetOnInit": true - }, - { - "Name": "CPUBWSampleMs", - "Path": "/sys/class/devfreq/soc:qcom,cpu-cpu-ddr-bw/bw_hwmon/sample_ms", - "Values": [ - "10", - "4" - ], - "ResetOnInit": true - }, - { - "Name": "CPUBWMinFreq", - "Path": "/sys/class/devfreq/soc:qcom,cpu-cpu-ddr-bw/min_freq", - "Values": [ - "7980", - "5161", - "762" - ], - "ResetOnInit": true - }, - { - "Name": "L3LittleClusterMinFreq", - "Path": "/sys/class/devfreq/fd90100.qcom,cpu0-cpu-l3-lat/min_freq", - "Values": [ - "1459200000", - "1171200000", - "300000000" - ], - "ResetOnInit": true - }, - { - "Name": "L3BigClusterMinFreq", - "Path": "/sys/class/devfreq/fd90100.qcom,cpu6-cpu-l3-lat/min_freq", - "Values": [ - "1459200000", - "1171200000", - "300000000" - ], - "ResetOnInit": true - }, - { - "Name": "CPUDDRLatLittleMinFreq", - "Path": "/sys/class/devfreq/soc:qcom,cpu0-cpu-ddr-lat/min_freq", - "Values": [ - "7980", - "3879", - "762" - ], - "ResetOnInit": true - }, - { - "Name": "CPUDDRLatBigMinFreq", - "Path": "/sys/class/devfreq/soc:qcom,cpu6-cpu-ddr-lat/min_freq", - "Values": [ - "7980", - "3879", - "762" - ], - "ResetOnInit": true - }, - { - "Name": "CPUDDRLatfloorLittleMinFreq", - "Path": "/sys/class/devfreq/soc:qcom,cpu0-cpu-ddr-latfloor/min_freq", - "Values": [ - "7980", - "3879", - "762" - ], - "ResetOnInit": true - }, - { - "Name": "CPUDDRLatfloorBigMinFreq", - "Path": "/sys/class/devfreq/soc:qcom,cpu6-cpu-ddr-latfloor/min_freq", - "Values": [ - "7980", - "3879", - "762" - ], - "ResetOnInit": true - }, - { - "Name": "DoubleTapToWake", - "Path": "/proc/touchpanel/double_tap_enable", - "Values": [ - "1", - "0" - ] - }, - { - "Name": "PowerHALMainState", - "Path": "vendor.powerhal.state", - "Values": [ - "SUSTAINED_PERFORMANCE", - "" - ], - "Type": "Property" - }, - { - "Name": "PowerHALRenderingState", - "Path": "vendor.powerhal.rendering", - "Values": [ - "EXPENSIVE_RENDERING", - "" - ], - "Type": "Property" - } - ], - "Actions": [ - { - "PowerHint": "SUSTAINED_PERFORMANCE", - "Node": "PowerHALMainState", - "Duration": 0, - "Value": "SUSTAINED_PERFORMANCE" - }, - { - "PowerHint": "SUSTAINED_PERFORMANCE", - "Node": "CPUBigClusterMaxFreq", - "Duration": 0, - "Value": "1536000" - }, - { - "PowerHint": "SUSTAINED_PERFORMANCE", - "Node": "CPULittleClusterMaxFreq", - "Duration": 0, - "Value": "1708800" - }, - { - "PowerHint": "SUSTAINED_PERFORMANCE", - "Node": "GPUMaxFreq", - "Duration": 0, - "Value": "1" - }, - { - "PowerHint": "INTERACTION", - "Node": "CPUBigClusterMinFreq", - "Duration": 1000, - "Value": "1651200" - }, - { - "PowerHint": "INTERACTION", - "Node": "CPULittleClusterMinFreq", - "Duration": 1000, - "Value": "1708800" - }, - { - "PowerHint": "INTERACTION", - "Node": "UclampTAMin", - "Duration": 1000, - "Value": "50" - }, - { - "PowerHint": "INTERACTION", - "Node": "UclampTALatency", - "Duration": 0, - "Value": "1" - }, - { - "PowerHint": "INTERACTION", - "Node": "UclampFgMin", - "Duration": 1000, - "Value": "50" - }, - { - "PowerHint": "INTERACTION", - "Node": "GPUMinFreq", - "Duration": 1000, - "Value": "3" - }, - { - "PowerHint": "INTERACTION", - "Node": "CPUBWHystTriggerCount", - "Duration": 1000, - "Value": "0" - }, - { - "PowerHint": "INTERACTION", - "Node": "CPUBWHystLength", - "Duration": 1000, - "Value": "0" - }, - { - "PowerHint": "INTERACTION", - "Node": "CPUBWHistMemory", - "Duration": 1000, - "Value": "0" - }, - { - "PowerHint": "INTERACTION", - "Node": "CPUBWMinFreq", - "Duration": 1000, - "Value": "5161" - }, - { - "PowerHint": "INTERACTION", - "Node": "CPUDDRLatLittleMinFreq", - "Duration": 1000, - "Value": "7980" - }, - { - "PowerHint": "INTERACTION", - "Node": "CPUDDRLatBigMinFreq", - "Duration": 1000, - "Value": "7980" - }, - { - "PowerHint": "INTERACTION", - "Node": "CPUDDRLatfloorLittleMinFreq", - "Duration": 1000, - "Value": "7980" - }, - { - "PowerHint": "INTERACTION", - "Node": "CPUDDRLatfloorBigMinFreq", - "Duration": 1000, - "Value": "7980" - }, - { - "PowerHint": "INTERACTION", - "Node": "L3LittleClusterMinFreq", - "Duration": 1000, - "Value": "1171200000" - }, - { - "PowerHint": "INTERACTION", - "Node": "L3BigClusterMinFreq", - "Duration": 1000, - "Value": "1171200000" - }, - { - "PowerHint": "INTERACTIVE", - "Node": "CPULittleClusterUpRateLimit", - "Duration": 0, - "Value": "500" - }, - { - "PowerHint": "INTERACTIVE", - "Node": "CPULittleClusterDownRateLimit", - "Duration": 0, - "Value": "20000" - }, - { - "PowerHint": "INTERACTIVE", - "Node": "CPUBigClusterUpRateLimit", - "Duration": 0, - "Value": "500" - }, - { - "PowerHint": "INTERACTIVE", - "Node": "CPUBigClusterDownRateLimit", - "Duration": 0, - "Value": "20000" - }, - { - "PowerHint": "LAUNCH", - "Node": "CPUBigClusterMaxFreq", - "Duration": 3000, - "Value": "9999999" - }, - { - "PowerHint": "LAUNCH", - "Node": "CPUBigClusterMinFreq", - "Duration": 3000, - "Value": "9999999" - }, - { - "PowerHint": "LAUNCH", - "Node": "CPULittleClusterMinFreq", - "Duration": 3000, - "Value": "9999999" - }, - { - "PowerHint": "LAUNCH", - "Node": "UclampTAMin", - "Duration": 3000, - "Value": "100" - }, - { - "PowerHint": "LAUNCH", - "Node": "UclampFgMin", - "Duration": 3000, - "Value": "100" - }, - { - "PowerHint": "LAUNCH", - "Node": "CPUBWHystTriggerCount", - "Duration": 3000, - "Value": "0" - }, - { - "PowerHint": "LAUNCH", - "Node": "CPUBWHystLength", - "Duration": 3000, - "Value": "0" - }, - { - "PowerHint": "LAUNCH", - "Node": "CPUBWHistMemory", - "Duration": 3000, - "Value": "0" - }, - { - "PowerHint": "LAUNCH", - "Node": "CPUBWMinFreq", - "Duration": 3000, - "Value": "7980" - }, - { - "PowerHint": "LAUNCH", - "Node": "CPUDDRLatLittleMinFreq", - "Duration": 3000, - "Value": "7980" - }, - { - "PowerHint": "LAUNCH", - "Node": "CPUDDRLatBigMinFreq", - "Duration": 3000, - "Value": "7980" - }, - { - "PowerHint": "LAUNCH", - "Node": "CPUDDRLatfloorLittleMinFreq", - "Duration": 3000, - "Value": "7980" - }, - { - "PowerHint": "LAUNCH", - "Node": "CPUDDRLatfloorBigMinFreq", - "Duration": 3000, - "Value": "7980" - }, - { - "PowerHint": "LAUNCH", - "Node": "GPUForceClkOn", - "Duration": 3000, - "Value": "1" - }, - { - "PowerHint": "LAUNCH", - "Node": "GPUForceRailOn", - "Duration": 3000, - "Value": "1" - }, - { - "PowerHint": "LAUNCH", - "Node": "GPUIdleTimer", - "Duration": 3000, - "Value": "10000" - }, - { - "PowerHint": "LAUNCH", - "Node": "L3LittleClusterMinFreq", - "Duration": 3000, - "Value": "1459200000" - }, - { - "PowerHint": "LAUNCH", - "Node": "L3BigClusterMinFreq", - "Duration": 3000, - "Value": "1459200000" - }, - { - "PowerHint": "FIXED_PERFORMANCE", - "Node": "CPUBigClusterMaxFreq", - "Duration": 0, - "Value": "9999999" - }, - { - "PowerHint": "FIXED_PERFORMANCE", - "Node": "CPUBigClusterMinFreq", - "Duration": 0, - "Value": "9999999" - }, - { - "PowerHint": "FIXED_PERFORMANCE", - "Node": "CPULittleClusterMaxFreq", - "Duration": 0, - "Value": "9999999" - }, - { - "PowerHint": "FIXED_PERFORMANCE", - "Node": "CPULittleClusterMinFreq", - "Duration": 0, - "Value": "9999999" - }, - { - "PowerHint": "FIXED_PERFORMANCE", - "Node": "GPUMaxFreq", - "Duration": 0, - "Value": "0" - }, - { - "PowerHint": "FIXED_PERFORMANCE", - "Node": "GPUMinFreq", - "Duration": 0, - "Value": "0" - }, - { - "PowerHint": "EXPENSIVE_RENDERING", - "Node": "PowerHALRenderingState", - "Duration": 0, - "Value": "EXPENSIVE_RENDERING" - }, - { - "PowerHint": "EXPENSIVE_RENDERING", - "Node": "GPUMinFreq", - "Duration": 0, - "Value": "1" - }, - { - "PowerHint": "EXPENSIVE_RENDERING", - "Node": "GPUMaxFreq", - "Duration": 0, - "Value": "0" - }, - { - "PowerHint": "EXPENSIVE_RENDERING", - "Node": "CPULittleClusterMinFreq", - "Duration": 0, - "Value": "1708800" - }, - { - "PowerHint": "EXPENSIVE_RENDERING", - "Node": "CPUBigClusterMinFreq", - "Duration": 0, - "Value": "1651200" - }, - { - "PowerHint": "DOUBLE_TAP_TO_WAKE", - "Node": "DoubleTapToWake", - "Duration": 0, - "Value": "1" - } - ] -} diff --git a/configs/permissions/privapp-permissions-hotword.xml b/configs/privapp-permissions-hotword.xml similarity index 100% rename from configs/permissions/privapp-permissions-hotword.xml rename to configs/privapp-permissions-hotword.xml diff --git a/configs/public.libraries.txt b/configs/public.libraries.txt new file mode 100644 index 0000000..aed894f --- /dev/null +++ b/configs/public.libraries.txt @@ -0,0 +1,32 @@ +libAlgoInterface.so +libAlgoProcess.so +vendor.qti.hardware.camera.postproc@1.0.so +libPolarrRender.so +libapsexif.so +libapsjpeg.so +libmpbase.so +libarcsoft_high_dynamic_range.so 64 +libarcsoft_low_light_hdr.so 64 +libarcsoft_hdr_couple_api.so 64 +libarcsoft_high_dynamic_range_couple.so 64 +libCOppLceTonemapAPI.so +libVDSuperPhotoAPI.so +libFaceBeautyCap.so +libstface_fd_api.so +libVDDualCameraBlurlessAPI.so 64 +libSNPE.so 64 +libc++_shared.so 64 +libstdc++.so +libarcsoft_dualcam_bokeh_api.so 64 +libPlatformValidatorShared.so 64 +libcvface_api.so +libsnpe_dsp_domains_v3.so 64 +libPolarrRender.so +libXDocProcessSDK.so +libqti-perfd-client.so +libadsprpc.so +libcdsprpc.so +libsdsprpc.so +libfastcvopt.so +liblistensoundmodel2.so +libOpenCL.so diff --git a/device.mk b/device.mk index 35514b5..88eadcc 100644 --- a/device.mk +++ b/device.mk @@ -1,17 +1,56 @@ -# Copyright (C) 2021-2025 The LineageOS Project -# SPDX-License-Identifier: Apache-2.0 -# Copyright (C) 2019-Current A-Team Digital Solutions +# +# Copyright (C) 2021-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. +# -# Add common definitions for Qualcomm -$(call inherit-product, hardware/qcom-caf/common/common.mk) +# Enable project quotas and casefolding for emulated storage without sdcardfs +$(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk) + +# Enable updating of APEXes +$(call inherit-product, $(SRC_TARGET_DIR)/product/updatable_apex.mk) + +# Enable virtual A/B OTA +$(call inherit-product, $(SRC_TARGET_DIR)/product/virtual_ab_ota.mk) + +# Include GSI keys +$(call inherit-product, $(SRC_TARGET_DIR)/product/gsi_keys.mk) + +# Setup dalvik vm configs +$(call inherit-product, frameworks/native/build/phone-xhdpi-4096-dalvik-heap.mk) + +# Get non-open-source specific aspects +$(call inherit-product, vendor/oneplus/dre/dre-vendor.mk) + +# Set product shipping level +PRODUCT_SHIPPING_API_LEVEL := 30 + +# Additional native libraries +PRODUCT_COPY_FILES += \ + $(LOCAL_PATH)/configs/public.libraries.txt:$(TARGET_COPY_OUT_VENDOR)/etc/public.libraries.txt + +# Overlays +DEVICE_PACKAGE_OVERLAYS += \ + $(LOCAL_PATH)/overlay \ + $(LOCAL_PATH)/overlay-lineage + +PRODUCT_ENFORCE_RRO_TARGETS := * # AAPT PRODUCT_AAPT_CONFIG := normal PRODUCT_AAPT_PREF_CONFIG := xxhdpi # A/B -$(call inherit-product, $(SRC_TARGET_DIR)/product/virtual_ab_ota/launch_with_vendor_ramdisk.mk) - AB_OTA_POSTINSTALL_CONFIG += \ RUN_POSTINSTALL_system=true \ POSTINSTALL_PATH_system=system/bin/otapreopt_script \ @@ -21,74 +60,103 @@ AB_OTA_POSTINSTALL_CONFIG += \ AB_OTA_POSTINSTALL_CONFIG += \ RUN_POSTINSTALL_vendor=true \ POSTINSTALL_PATH_vendor=bin/checkpoint_gc \ - FILESYSTEM_TYPE_vendor=erofs \ + FILESYSTEM_TYPE_vendor=ext4 \ POSTINSTALL_OPTIONAL_vendor=true -AB_OTA_POSTINSTALL_CONFIG += \ - RUN_POSTINSTALL_odm=true \ - POSTINSTALL_PATH_odm=bin/xbl_config_arb_check \ - FILESYSTEM_TYPE_odm=erofs \ - POSTINSTALL_OPTIONAL_odm=false - PRODUCT_PACKAGES += \ checkpoint_gc \ - otapreopt_script \ - xbl_config_arb_check + otapreopt_script + +# ANT+ +PRODUCT_PACKAGES += \ + AntHalService-Soong \ + com.dsi.ant@1.0.vendor + +# Atrace +PRODUCT_PACKAGES += \ + android.hardware.atrace@1.0-service # Audio PRODUCT_PACKAGES += \ android.hardware.audio@6.0-impl \ android.hardware.audio.effect@6.0-impl \ android.hardware.audio.service \ - android.hardware.bluetooth.audio-impl \ + android.hardware.bluetooth.audio@2.0-impl \ android.hardware.soundtrigger@2.3-impl \ + audio.a2dp.default \ audio.bluetooth.default \ audio.primary.holi \ audio.r_submix.default \ audio.usb.default \ + audio_amplifier.holi \ audioadsprpcd \ liba2dpoffload \ + libaudiopreprocessing \ libbatterylistener \ + libbundlewrapper \ + libcirrusspkrprot \ libcomprcapture \ + libdownmix \ + libdynproc \ + libeffectproxy \ libexthwplugin \ libhdmiedid \ libhfp \ + libldnhncr \ libqcompostprocbundle \ libqcomvisualizer \ libqcomvoiceprocessing \ + libreverbwrapper \ libsndmonitor \ libspkrprot \ libssrec \ + libvisualizer \ libvolumelistener \ sound_trigger.primary.holi:32 +# SM8350 audio HAL has SM4350 configurations. AUDIO_HAL_DIR := hardware/qcom-caf/sm8350/audio PRODUCT_COPY_FILES += \ + $(AUDIO_HAL_DIR)/configs/common/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \ + $(AUDIO_HAL_DIR)/configs/common/bluetooth_qti_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_holi/bluetooth_qti_audio_policy_configuration.xml \ + $(AUDIO_HAL_DIR)/configs/common/bluetooth_qti_hearing_aid_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_holi/bluetooth_qti_hearing_aid_audio_policy_configuration.xml \ $(AUDIO_HAL_DIR)/configs/holi/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml \ - $(AUDIO_HAL_DIR)/configs/holi/audio_platform_info_intcodec.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_intcodec.xml \ + $(AUDIO_HAL_DIR)/configs/holi/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \ + $(AUDIO_HAL_DIR)/configs/holi/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/audio_policy_configuration.xml \ $(AUDIO_HAL_DIR)/configs/holi/audio_tuning_mixer.txt:$(TARGET_COPY_OUT_VENDOR)/etc/audio_tuning_mixer.txt \ - $(AUDIO_HAL_DIR)/configs/holi/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_platform_info.xml \ - $(LOCAL_PATH)/configs/audio/audio_io_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_io_policy.conf \ - $(LOCAL_PATH)/configs/audio/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \ - $(LOCAL_PATH)/configs/audio/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \ - $(LOCAL_PATH)/configs/audio/audio_policy_configuration_a2dp_offload_disabled.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/audio_policy_configuration.xml \ - $(LOCAL_PATH)/configs/audio/bluetooth_hearing_aid_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_hearing_aid_audio_policy_configuration.xml \ - $(LOCAL_PATH)/configs/audio/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml \ - $(LOCAL_PATH)/configs/audio/sound_trigger_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths.xml + $(AUDIO_HAL_DIR)/configs/holi/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_platform_info.xml \ + $(LOCAL_PATH)/audio/audio_io_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_io_policy.conf \ + $(LOCAL_PATH)/audio/audio_platform_info_intcodec.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_intcodec.xml \ + $(LOCAL_PATH)/audio/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml \ + $(LOCAL_PATH)/audio/sound_trigger_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths.xml PRODUCT_COPY_FILES += \ + frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_holi/audio_policy_volumes.xml \ frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \ - frameworks/av/services/audiopolicy/config/bluetooth_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_audio_policy_configuration.xml \ + frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_holi/default_volume_tables.xml \ frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \ + frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_holi/r_submix_audio_policy_configuration.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/audio/sku_holi/usb_audio_policy_configuration.xml \ frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.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 \ frameworks/native/data/etc/android.software.midi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.midi.xml +# Authsecret +PRODUCT_PACKAGES += \ + android.hardware.authsecret@1.0.vendor + # Bluetooth +PRODUCT_PACKAGES += \ + android.hardware.bluetooth@1.0.vendor \ + vendor.qti.hardware.bluetooth_audio@2.0.vendor \ + vendor.qti.hardware.btconfigstore@1.0.vendor \ + vendor.qti.hardware.btconfigstore@2.0.vendor + PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.bluetooth.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth.xml \ frameworks/native/data/etc/android.hardware.bluetooth_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth_le.xml @@ -99,13 +167,20 @@ TARGET_SCREEN_WIDTH := 1080 # Boot control PRODUCT_PACKAGES += \ - android.hardware.boot-service.qti \ - android.hardware.boot-service.qti.recovery + android.hardware.boot@1.1-impl-qti \ + android.hardware.boot@1.1-impl-qti.recovery \ + android.hardware.boot@1.1-service \ + bootctrl.holi \ + bootctrl.holi.recovery + +PRODUCT_PACKAGES_DEBUG += \ + bootctl # Camera PRODUCT_PACKAGES += \ android.hardware.camera.provider@2.4-impl \ - android.hardware.camera.provider@2.4-service_64 + android.hardware.camera.provider@2.4-service_64 \ + vendor.qti.hardware.camera.postproc@1.0.vendor PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.camera.flash-autofocus.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.flash-autofocus.xml \ @@ -113,55 +188,90 @@ 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 -# Dalvik -$(call inherit-product, frameworks/native/build/phone-xhdpi-4096-dalvik-heap.mk) +# Common init scripts +PRODUCT_PACKAGES += \ + charger_fstab.qti \ + fstab.qcom \ + ftm_power_config.sh \ + init.class_main.sh \ + init.cust.rc \ + init.kernel.post_boot.sh \ + init.oem.debug.rc \ + init.oem.rc \ + init.oem_ftm.rc \ + init.oem_rf.rc \ + init.qcom.class_core.sh \ + init.qcom.early_boot.sh \ + init.qcom.factory.rc \ + init.qcom.post_boot.sh \ + init.qcom.rc \ + init.qcom.sh \ + init.qcom.usb.rc \ + init.qcom.usb.sh \ + init.qti.chg_policy.sh \ + init.qti.dcvs.sh \ + init.qti.kernel.rc \ + init.qti.kernel.sh \ + init.qti.qcv.rc \ + init.qti.qcv.sh \ + init.stnfc.rc \ + init.stnfc.sh \ + init.recovery.qcom.rc \ + init.target.rc \ + init.uicc.rc \ + ueventd.qcom.rc \ + vendor.oem_ftm.rc \ + vendor.oem_ftm_svc_disable.rc \ + vendor_modprobe.sh -# DebugFS -PRODUCT_SET_DEBUGFS_RESTRICTIONS := true +# Device ID Attestation +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 # Display PRODUCT_PACKAGES += \ + android.hardware.graphics.common-V1-ndk_platform.vendor \ android.hardware.graphics.mapper@3.0-impl-qti-display \ android.hardware.graphics.mapper@4.0-impl-qti-display \ + android.hardware.memtrack@1.0-impl \ + android.hardware.memtrack@1.0-service \ init.qti.display_boot.sh \ + libdisplayconfig.qti \ + libdisplayconfig.qti.vendor \ + libmemutils \ + libqdMetaData \ + libsdmcore \ + libsdmutils \ + libtinyxml \ + memtrack.default \ + vendor.display.config@1.0 \ + vendor.display.config@1.0.vendor \ + vendor.display.config@1.1.vendor \ + vendor.display.config@1.2.vendor \ + vendor.display.config@1.3.vendor \ + vendor.display.config@1.4.vendor \ + vendor.display.config@1.5.vendor \ + vendor.display.config@1.6.vendor \ + vendor.display.config@1.7.vendor \ + vendor.display.config@1.8.vendor \ + vendor.display.config@1.9.vendor \ + vendor.display.config@1.10.vendor \ + vendor.display.config@1.11.vendor \ + vendor.display.config@1.12.vendor \ + vendor.display.config@1.13.vendor \ + vendor.display.config@1.14.vendor \ + vendor.display.config@1.15.vendor \ + vendor.display.config@2.0 \ + vendor.display.config@2.0.vendor \ + vendor.oneplus.hardware.display@1.0.vendor \ vendor.qti.hardware.display.allocator-service \ vendor.qti.hardware.display.composer-service \ - vendor.qti.hardware.memtrack-service + vendor.qti.hardware.display.mapper@1.0.vendor \ + vendor.qti.hardware.display.mapper@1.1.vendor \ + vendor.qti.hardware.display.mapper@2.0.vendor \ + vendor.qti.hardware.display.mapper@3.0.vendor \ + vendor.qti.hardware.display.mapper@4.0.vendor -PRODUCT_COPY_FILES += \ - hardware/qcom-caf/sm8350/display/config/snapdragon_color_libs_config.xml:$(TARGET_COPY_OUT_VENDOR)/etc/snapdragon_color_libs_config.xml - -# Doze -PRODUCT_PACKAGES += \ - OplusDoze \ - OplusDozeResTarget - -# DRM -PRODUCT_PACKAGES += \ - android.hardware.drm-service.clearkey \ - wvmkiller - -# Fastboot -PRODUCT_PACKAGES += \ - android.hardware.fastboot@1.1-impl.custom \ - fastbootd - -# Fingerprint -PRODUCT_PACKAGES += \ - android.hardware.biometrics.fingerprint@2.3-service.oplus - -PRODUCT_COPY_FILES += \ - frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml - -# FM Radio -PRODUCT_PACKAGES += \ - FM2 - -# GPS -PRODUCT_COPY_FILES += \ - frameworks/native/data/etc/android.hardware.location.gps.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.location.gps.xml - -# Graphics 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.compute-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.compute-0.xml \ @@ -169,113 +279,187 @@ PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.vulkan.version-1_1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version-1_1.xml \ frameworks/native/data/etc/android.software.vulkan.deqp.level-2020-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.vulkan.deqp.level.xml +# Doze +PRODUCT_PACKAGES += \ + OnePlusDoze + +# DRM +PRODUCT_PACKAGES += \ + android.hardware.drm@1.3.vendor \ + android.hardware.drm@1.4-service.clearkey + +# fastbootd +PRODUCT_PACKAGES += \ + fastbootd + +# Fingerprint +PRODUCT_PACKAGES += \ + android.hardware.biometrics.fingerprint@2.1-service \ + vendor.oneplus.fingerprint.extension@1.0.vendor + +PRODUCT_COPY_FILES += \ + frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml + +# Gatekeeper +PRODUCT_PACKAGES += \ + android.hardware.gatekeeper@1.0.vendor + +# GPS +PRODUCT_PACKAGES += \ + android.hardware.gnss.measurement_corrections@1.1.vendor \ + android.hardware.gnss.visibility_control@1.0.vendor \ + android.hardware.gnss@2.1.vendor + +PRODUCT_COPY_FILES += \ + $(LOCAL_PATH)/gps/flp.conf:$(TARGET_COPY_OUT_VENDOR)/etc/flp.conf \ + $(LOCAL_PATH)/gps/gnss_antenna_info.conf:$(TARGET_COPY_OUT_VENDOR)/etc/gnss_antenna_info.conf \ + $(LOCAL_PATH)/gps/gps.conf:$(TARGET_COPY_OUT_VENDOR)/etc/gps.conf \ + $(LOCAL_PATH)/gps/izat.conf:$(TARGET_COPY_OUT_VENDOR)/etc/izat.conf \ + $(LOCAL_PATH)/gps/lowi.conf:$(TARGET_COPY_OUT_VENDOR)/etc/lowi.conf \ + $(LOCAL_PATH)/gps/sap.conf:$(TARGET_COPY_OUT_VENDOR)/etc/sap.conf \ + $(LOCAL_PATH)/gps/xtwifi.conf:$(TARGET_COPY_OUT_VENDOR)/etc/xtwifi.conf + +PRODUCT_COPY_FILES += \ + frameworks/native/data/etc/android.hardware.location.gps.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.location.gps.xml + # Health PRODUCT_PACKAGES += \ - android.hardware.health-service.qti + android.hardware.health@2.1-impl \ + android.hardware.health@2.1-service -# Hotword enrollment -PRODUCT_COPY_FILES += \ - $(LOCAL_PATH)/configs/permissions/privapp-permissions-hotword.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/permissions/privapp-permissions-hotword.xml - -# Init +# HIDL PRODUCT_PACKAGES += \ - fstab.qcom \ - fstab.qcom.vendor_ramdisk \ - init.class_main.sh \ - init.oplus.rc \ - init.qcom.early_boot.sh \ - init.qcom.rc \ - init.qcom.recovery.rc \ - init.qcom.sh \ - init.qcom.usb.rc \ - init.qcom.usb.sh \ - init.target.rc \ - ueventd.oplus.rc \ - ueventd.qcom.rc + libhidltransport.vendor \ + libhwbinder.vendor -$(call soong_config_set,libinit,vendor_init_lib,//$(LOCAL_PATH):libinit_oplus) +# HotwordEnrollement app permissions +PRODUCT_COPY_FILES += \ + $(LOCAL_PATH)/configs/privapp-permissions-hotword.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/permissions/privapp-permissions-hotword.xml # IPACM PRODUCT_PACKAGES += \ ipacm \ - IPACM_cfg.xml + IPACM_cfg.xml \ + libipanat \ + liboffloadhal -# Kernel -PRODUCT_ENABLE_UFFD_GC := true - -# Lineage Health +# Keymaster PRODUCT_PACKAGES += \ - vendor.lineage.health-service.default - -$(call soong_config_set,lineage_health,charging_control_charging_path,/sys/class/oplus_chg/battery/mmi_charging_enable) + android.hardware.keymaster@4.1.vendor # LiveDisplay PRODUCT_PACKAGES += \ - vendor.lineage.livedisplay-service.oplus - -$(call soong_config_set_bool,OPLUS_LINEAGE_LIVEDISPLAY_HAL,ENABLE_SE,false) + vendor.lineage.livedisplay@2.1-service.oneplus # Media PRODUCT_COPY_FILES += \ - $(LOCAL_PATH)/configs/media/media_profiles_holi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_vendor.xml + $(LOCAL_PATH)/configs/media_codecs_holi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \ + $(LOCAL_PATH)/configs/media_codecs_holi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_holi.xml \ + $(LOCAL_PATH)/configs/media_codecs_holi_vendor.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_holi_vendor.xml \ + $(LOCAL_PATH)/configs/media_codecs_performance_holi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance.xml \ + $(LOCAL_PATH)/configs/media_codecs_performance_holi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance_holi.xml \ + $(LOCAL_PATH)/configs/media_codecs_performance_holi_vendor.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance_holi_vendor.xml \ + $(LOCAL_PATH)/configs/media_codecs_vendor_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_vendor_audio.xml \ + $(LOCAL_PATH)/configs/media_profiles.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles.xml \ + $(LOCAL_PATH)/configs/media_profiles_holi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_holi.xml \ + $(LOCAL_PATH)/configs/media_profiles_holi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_vendor.xml \ + $(LOCAL_PATH)/configs/media_profiles_V1_0.xml:$(TARGET_COPY_OUT_ODM)/etc/media_profiles_V1_0.xml -$(call soong_config_set_bool,stagefright,target_disable_thumbnail_block_model,true) +PRODUCT_COPY_FILES += \ + frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml \ + frameworks/av/media/libstagefright/data/media_codecs_google_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_c2.xml \ + frameworks/av/media/libstagefright/data/media_codecs_google_c2_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_c2_audio.xml \ + frameworks/av/media/libstagefright/data/media_codecs_google_c2_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_c2_video.xml \ + frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_telephony.xml \ + frameworks/av/media/libstagefright/data/media_codecs_google_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video.xml \ + frameworks/av/media/libstagefright/data/media_codecs_google_video_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video_le.xml + + +PRODUCT_PACKAGES += \ + libavservices_minijail \ + libavservices_minijail.vendor \ + libavservices_minijail_vendor \ + libcodec2_hidl@1.0.vendor + +# Net +PRODUCT_PACKAGES += \ + android.system.net.netd@1.1.vendor \ + netutils-wrapper-1.0 + +# Neural Network +PRODUCT_PACKAGES += \ + android.hardware.neuralnetworks@1.3.vendor # NFC PRODUCT_PACKAGES += \ - android.hardware.nfc-service.st \ + android.hardware.nfc@1.2-service.st \ + android.hardware.secure_element@1.2.vendor \ com.android.nfc_extras \ nfc_nci.st21nfc.default \ + SecureElement \ Tag PRODUCT_COPY_FILES += \ - $(LOCAL_PATH)/configs/nfc/libnfc-hal-st.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-hal-st.conf \ frameworks/native/data/etc/android.hardware.nfc.hce.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hce.xml \ frameworks/native/data/etc/android.hardware.nfc.hcef.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hcef.xml \ frameworks/native/data/etc/android.hardware.nfc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.xml -# Overlays -$(call inherit-product, hardware/oplus/overlay/generic/generic.mk) -$(call inherit-product, hardware/oplus/overlay/qssi/qssi.mk) - -DEVICE_PACKAGE_OVERLAYS += \ - $(LOCAL_PATH)/overlay-lineage - -PRODUCT_ENFORCE_RRO_TARGETS := * +# OMX PRODUCT_PACKAGES += \ - CarrierConfigResCommon \ - FrameworksResTarget \ - Launcher3ResTarget \ - NcmTetheringOverlay \ - OPlusFrameworksResTarget \ - OPlusSettingsProviderResTarget \ - OPlusSettingsResTarget \ - OPlusSystemUIResTarget \ - WifiResTarget + libOmxAacEnc \ + libOmxAmrEnc \ + libOmxCore \ + libOmxEvrcEnc \ + libOmxG711Enc \ + libOmxQcelp13Enc \ + libstagefrighthw -# Partitions +# OnePlus PRODUCT_PACKAGES += \ - vendor_bt_firmware_mountpoint \ - vendor_dsp_mountpoint \ - vendor_firmware_mnt_mountpoint + oneplus-fwk -PRODUCT_USE_DYNAMIC_PARTITIONS := true - -# Perf -PRODUCT_COPY_FILES += \ - $(LOCAL_PATH)/configs/perf/task_profiles.json:$(TARGET_COPY_OUT_VENDOR)/etc/task_profiles.json +PRODUCT_BOOT_JARS += \ + oneplus-fwk # Power PRODUCT_PACKAGES += \ - android.hardware.power-service.lineage-libperfmgr \ - libqti-perfd-client + android.hardware.power-service-qti \ + android.hardware.power@1.2.vendor \ + vendor.qti.hardware.perf@2.0.vendor \ + vendor.qti.hardware.perf@2.1.vendor \ + vendor.qti.hardware.perf@2.2.vendor -PRODUCT_COPY_FILES += \ - $(LOCAL_PATH)/configs/powerhint.json:$(TARGET_COPY_OUT_VENDOR)/etc/powerhint.json +# QMI +PRODUCT_PACKAGES += \ + libjson \ + libqti_vndfwk_detect \ + libqti_vndfwk_detect.vendor \ + libvndfwk_detect_jni.qti \ + libvndfwk_detect_jni.qti.vendor + +# QTI service tracker +PRODUCT_PACKAGES += \ + vendor.qti.hardware.servicetracker@1.0.vendor \ + vendor.qti.hardware.servicetracker@1.1.vendor \ + vendor.qti.hardware.servicetracker@1.2.vendor + +# RIL +PRODUCT_PACKAGES += \ + android.hardware.radio@1.5.vendor \ + android.hardware.radio.config@1.2.vendor \ + android.hardware.radio.deprecated@1.0.vendor \ + libprotobuf-cpp-full \ + librmnetctl \ + libxml2 # Sensors PRODUCT_PACKAGES += \ - android.hardware.sensors-service.multihal \ + android.hardware.sensors@2.0-service.multihal \ + libsensorndkbridge + +# Needed for sensors.ssc.so +PRODUCT_PACKAGES += \ + android.hardware.audio@4.0.vendor PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.sensor.accelerometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.accelerometer.xml \ @@ -288,43 +472,21 @@ PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.sensor.stepcounter.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepcounter.xml \ frameworks/native/data/etc/android.hardware.sensor.stepdetector.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepdetector.xml -# Shipping API -BOARD_SHIPPING_API_LEVEL := 30 -PRODUCT_SHIPPING_API_LEVEL := $(BOARD_SHIPPING_API_LEVEL) - # Soong namespaces PRODUCT_SOONG_NAMESPACES += \ $(LOCAL_PATH) \ - hardware/google/interfaces \ - hardware/google/pixel \ - hardware/oplus \ - hardware/lineage/interfaces/power-libperfmgr \ - hardware/qcom-caf/common/libqti-perfd-client - -# Storage -$(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk) + hardware/oneplus # Telephony PRODUCT_PACKAGES += \ - extphonelib \ - extphonelib-product \ - extphonelib.xml \ - extphonelib_product.xml \ ims-ext-common \ ims_ext_common.xml \ qti-telephony-hidl-wrapper \ - qti-telephony-hidl-wrapper-prd \ qti_telephony_hidl_wrapper.xml \ - qti_telephony_hidl_wrapper_prd.xml \ qti-telephony-utils \ - qti-telephony-utils-prd \ qti_telephony_utils.xml \ - qti_telephony_utils_prd.xml \ telephony-ext -PRODUCT_PACKAGES += \ - qcrilNrDb_vendor - PRODUCT_BOOT_JARS += \ telephony-ext @@ -337,15 +499,13 @@ PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.telephony.ims.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.ims.xml \ frameworks/native/data/etc/android.software.sip.voip.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.sip.voip.xml -$(call inherit-product, hardware/oplus/oplus-fwk/oplus-fwk.mk) - # Thermal PRODUCT_PACKAGES += \ - android.hardware.thermal-service.qti + android.hardware.thermal@2.0-service.qti # Touch PRODUCT_PACKAGES += \ - vendor.lineage.touch-service.oplus + vendor.lineage.touch@1.0-service.oneplus 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 @@ -361,12 +521,7 @@ PRODUCT_PACKAGES_DEBUG += \ # USB PRODUCT_PACKAGES += \ - android.hardware.usb-service.qti \ - android.hardware.usb.gadget-service.qti \ - oplus_usb_compositions.conf - -PRODUCT_SOONG_NAMESPACES += \ - vendor/qcom/opensource/usb/etc + android.hardware.usb@1.3-service-qti PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.usb.accessory.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.accessory.xml \ @@ -376,6 +531,10 @@ PRODUCT_COPY_FILES += \ PRODUCT_PACKAGES += \ vndservicemanager +# Vendor libstdc++ +PRODUCT_PACKAGES += \ + libstdc++.vendor + # Verified Boot PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.software.verified_boot.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.verified_boot.xml @@ -387,35 +546,35 @@ PRODUCT_PACKAGES += \ PRODUCT_COPY_FILES += \ vendor/qcom/opensource/vibrator/excluded-input-devices.xml:$(TARGET_COPY_OUT_VENDOR)/etc/excluded-input-devices.xml -# VINTF -DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE += \ - hardware/oplus/vintf/device_framework_matrix.xml \ - hardware/qcom-caf/common/vendor_framework_compatibility_matrix.xml -DEVICE_MATRIX_FILE := hardware/qcom-caf/common/compatibility_matrix.xml -DEVICE_MANIFEST_FILE := $(LOCAL_PATH)/vintf/manifest.xml - -# WiFi +# Wi-Fi PRODUCT_PACKAGES += \ - android.hardware.wifi-service \ + android.hardware.wifi@1.0-service \ hostapd \ + libwpa_client \ libwifi-hal-ctrl \ libwifi-hal-qcom \ + wifi-mac-generator-dre \ + WifiResCommon \ wpa_supplicant \ wpa_supplicant.conf PRODUCT_COPY_FILES += \ - frameworks/native/data/etc/android.hardware.wifi.aware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.aware.xml \ + $(LOCAL_PATH)/wifi/p2p_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/p2p_supplicant_overlay.conf \ + $(LOCAL_PATH)/wifi/wpa_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant_overlay.conf + +PRODUCT_COPY_FILES += \ 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 \ - frameworks/native/data/etc/android.hardware.wifi.rtt.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.rtt.xml \ frameworks/native/data/etc/android.hardware.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.xml \ - frameworks/native/data/etc/android.software.ipsec_tunnel_migration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.ipsec_tunnel_migration.xml \ frameworks/native/data/etc/android.software.ipsec_tunnels.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.ipsec_tunnels.xml -# WiFi firmware symlinks +# Wi-Fi Display PRODUCT_PACKAGES += \ - firmware_wlan_mac.bin_symlink \ - firmware_WCNSS_qcom_cfg.ini_symlink + libnl \ + libwfdaac_vendor -# Get non-open-source specific aspects -$(call inherit-product, vendor/oneplus/dre/dre-vendor.mk) +PRODUCT_BOOT_JARS += \ + WfdCommon + +PRODUCT_BUILD_SUPER_PARTITION := false +PRODUCT_USE_DYNAMIC_PARTITIONS := true diff --git a/device_framework_matrix.xml b/device_framework_matrix.xml new file mode 100644 index 0000000..dcf935b --- /dev/null +++ b/device_framework_matrix.xml @@ -0,0 +1,218 @@ + + + vendor.aac.hardware.richtap.vibrator + + IRichtapVibrator + default + + + + vendor.dolby.hardware.dms + 2.0 + + IDms + default + + + + vendor.goodix3626.hardware.biometrics.fingerprint + 2.1 + + IGoodixFingerprintDaemon + default + + + + vendor.nxp.eventprocessor + 1.0 + + INxpEseEvtProcessor + default + + + + vendor.nxp.hardware.nfc + 1.0-1 + 2.0 + + INqNfc + default + + + + vendor.nxp.nxpese + 1.0 + + INxpEse + default + + + + vendor.nxp.nxpnfc + 1.0 + + INxpNfc + default + + + + vendor.nxp.nxpnfclegacy + 1.0 + + INxpNfcLegacy + default + + + + vendor.oneplus.engnative.engineer + 1.0 + + IEngineer + default + + + + vendor.oneplus.faceunlock.hal + 1.0 + + IFaceUnlockNativeService + default + + + + vendor.oneplus.fingerprint.extension + 1.0 + + IVendorFingerprintExtensions + default + + + + vendor.oneplus.hardware.CameraMDMHIDL + 1.0 + + IOnePlusCameraMDM + default + + + + vendor.oneplus.hardware.camera + 1.0 + + IOnePlusCameraProvider + default + + + + vendor.oneplus.hardware.cwb + 1.0 + + ICwbService + default + + + + vendor.oneplus.hardware.display + 1.0 + + IOneplusDisplay + default + + + + vendor.oneplus.hardware.drmkey + 1.0 + + IOneplusDrmKey + default + + + + vendor.oneplus.hardware.hdcpkey + 1.0 + + IOneplusHdcpKey + default + + + + vendor.oneplus.hardware.hypnus + 1.0 + + IHypnusUtil + default + + + + vendor.oneplus.hardware.ifaa + 2.0 + + IOneplusIfaa + default + + + + vendor.oneplus.hardware.lmvibrator + 1.0 + + ILinearMotorVibrator + default + + + + vendor.oneplus.hardware.motorcontrol + 1.0 + + IOPMotorControl + default + + + + vendor.oneplus.hardware.param + 1.0 + + IOneplusParam + default + + + + vendor.oneplus.hardware.rpmb + 1.0 + + IOneplusRpmb + default + + + + vendor.oneplus.hardware.wifi + 1.1 + + IOneplusWifi + default + + + + vendor.pixelworks.hardware.display + 1.1 + + IIris + default + + + + vendor.pixelworks.hardware.feature + 1.0 + + IIrisFeature + default + + + + vendor.rongcard.hardware.eid + 1.0 + + IEidDevice + default + + + diff --git a/extract-files.py b/extract-files.py deleted file mode 100755 index d0b5d85..0000000 --- a/extract-files.py +++ /dev/null @@ -1,124 +0,0 @@ -#!/usr/bin/env -S PYTHONPATH=../../../tools/extract-utils python3 -# -# SPDX-FileCopyrightText: 2024 The LineageOS Project -# SPDX-License-Identifier: Apache-2.0 -# - -from extract_utils.fixups_blob import ( - blob_fixup, - blob_fixups_user_type, -) -from extract_utils.fixups_lib import ( - lib_fixups, - lib_fixups_user_type, -) -from extract_utils.main import ( - ExtractUtils, - ExtractUtilsModule, -) - -namespace_imports = [ - 'device/oneplus/dre', - 'hardware/oplus', - 'hardware/qcom-caf/common/libqti-perfd-client', - 'hardware/qcom-caf/sm8350', - 'hardware/qcom-caf/wlan', - 'vendor/qcom/opensource/commonsys-intf/display', - 'vendor/qcom/opensource/commonsys/display', - 'vendor/qcom/opensource/dataservices', - 'vendor/qcom/opensource/display', -] - - -def lib_fixup_vendor_suffix(lib: str, partition: str, *args, **kwargs): - return f'{lib}_vendor' if partition in ['odm', 'vendor'] else None - - -lib_fixups: lib_fixups_user_type = { - **lib_fixups, - ( - 'com.qualcomm.qti.dpm.api@1.0', - 'libmmosal', - 'vendor.qti.diaghal@1.0', - 'vendor.qti.hardware.fm@1.0', - 'vendor.qti.hardware.wifidisplaysession@1.0', - 'vendor.qti.imsrtpservice@3.0', - ): lib_fixup_vendor_suffix, -} - -blob_fixups: blob_fixups_user_type = { - 'odm/etc/init/android.hardware.drm@1.3-service.widevine.rc': blob_fixup() - .regex_replace('writepid /dev/cpuset/foreground/tasks', 'task_profiles ProcessCapacityHigh'), - ('odm/lib/liblvimfs_wrapper.so', 'odm/lib64/libCOppLceTonemapAPI.so', 'odm/lib64/libaps_frame_registration.so'): blob_fixup() - .replace_needed('libstdc++.so', 'libstdc++_vendor.so'), - 'odm/lib64/libarcsoft_portrait_super_night_raw.so': blob_fixup() - .clear_symbol_version('remote_handle_close') - .clear_symbol_version('remote_handle_invoke') - .clear_symbol_version('remote_handle_open') - .clear_symbol_version('remote_handle64_close') - .clear_symbol_version('remote_handle64_invoke') - .clear_symbol_version('remote_handle64_open') - .clear_symbol_version('remote_register_buf_attr') - .clear_symbol_version('remote_register_buf') - .clear_symbol_version('rpcmem_alloc') - .clear_symbol_version('rpcmem_free') - .clear_symbol_version('rpcmem_to_fd'), - 'odm/lib64/libOGLManager.so': blob_fixup() - .clear_symbol_version('AHardwareBuffer_allocate') - .clear_symbol_version('AHardwareBuffer_describe') - .clear_symbol_version('AHardwareBuffer_lock') - .clear_symbol_version('AHardwareBuffer_release') - .clear_symbol_version('AHardwareBuffer_unlock'), - ('odm/lib64/libwvhidl.so','odm/lib64/mediadrm/libwvdrmengine.so'): blob_fixup() - .add_needed('libcrypto_shim.so'), - 'product/etc/sysconfig/com.android.hotwordenrollment.common.util.xml': blob_fixup() - .regex_replace('/my_product', '/product'), - 'system_ext/lib64/libwfdnative.so': blob_fixup() - .add_needed('libinput_shim.so'), - 'vendor/bin/init.kernel.post_boot-blair.sh': blob_fixup() - .patch_file('blob-patches/init-post-boot-blair.patch'), - 'vendor/bin/init.kernel.post_boot-holi.sh': blob_fixup() - .patch_file('blob-patches/init-post-boot-holi.patch'), - 'vendor/etc/init/vendor.qti.media.c2@1.0-service.rc': blob_fixup() - .regex_replace('writepid /dev/cpuset/foreground/tasks', 'task_profiles ProcessCapacityHigh'), - ('vendor/etc/media_codecs.xml','vendor/etc/media_codecs_blair.xml','vendor/etc/media_codecs_blair_lite.xml','vendor/etc/media_codecs_holi.xml'): blob_fixup() - .regex_replace('\n ', '') - .regex_replace('\n ', '') - .regex_replace('\n ', '') - .regex_replace('\n ', '') - .regex_replace('\n ', '') - .regex_replace('\n ', '\n \n '), - 'vendor/etc/media_holi/video_system_specs.json': blob_fixup() - .regex_replace('"max_retry_alloc_output_timeout": 2000,', '"max_retry_alloc_output_timeout": 0,'), - 'vendor/etc/libnfc-nci.conf': blob_fixup() - .regex_replace('NFC_DEBUG_ENABLED=1', 'NFC_DEBUG_ENABLED=0'), - 'vendor/etc/msm_irqbalance.conf': blob_fixup() - .regex_replace('IGNORED_IRQ=19,21,38$', 'IGNORED_IRQ=19,21,38,209,218'), - 'vendor/etc/public.libraries.txt': blob_fixup() - .regex_replace('libqti-perfd-client.so\n', ''), - 'vendor/etc/qdcm_calib_data_nt36672c_tm_fhd_plus_video_mode_dsi_panel.xml': blob_fixup() - .regex_replace('FeatureType="2" Disable="false"', 'FeatureType="2" Disable="true"') - .regex_replace('FeatureType="7" Disable="false"', 'FeatureType="7" Disable="true"') - .regex_replace('FeatureType="8" Disable="false"', 'FeatureType="8" Disable="true"') - .regex_replace('20121_v1_20201113', 'native') - .regex_replace('SRGB', 'sRGB'), - 'vendor/lib64/hw/camera.qcom.so': blob_fixup() - .add_needed('libcamera_metadata_shim.so'), - ( - 'vendor/lib64/libdpps.so', - 'vendor/lib64/libsnapdragoncolor-manager.so', - ): blob_fixup() - .replace_needed('libtinyxml2.so', 'libtinyxml2-v34.so'), -} # fmt: skip - -module = ExtractUtilsModule( - 'dre', - 'oneplus', - blob_fixups=blob_fixups, - lib_fixups=lib_fixups, - namespace_imports=namespace_imports, -) - -if __name__ == '__main__': - utils = ExtractUtils.device(module) - utils.run() diff --git a/extract-files.sh b/extract-files.sh new file mode 100755 index 0000000..e3a5452 --- /dev/null +++ b/extract-files.sh @@ -0,0 +1,72 @@ +#!/bin/bash +# +# Copyright (C) 2016 The CyanogenMod Project +# Copyright (C) 2017-2022 The LineageOS Project +# +# SPDX-License-Identifier: Apache-2.0 +# + +set -e + +DEVICE=dre +VENDOR=oneplus + +# Load extract_utils and do some sanity checks +MY_DIR="${BASH_SOURCE%/*}" +if [[ ! -d "${MY_DIR}" ]]; then MY_DIR="${PWD}"; fi + +ANDROID_ROOT="${MY_DIR}/../../.." + +HELPER="${ANDROID_ROOT}/tools/extract-utils/extract_utils.sh" +if [ ! -f "${HELPER}" ]; then + echo "Unable to find helper script at ${HELPER}" + exit 1 +fi +source "${HELPER}" + +# Default to sanitizing the vendor folder before extraction +CLEAN_VENDOR=true + +KANG= +SECTION= + +while [ "${#}" -gt 0 ]; do + case "${1}" in + -n | --no-cleanup ) + CLEAN_VENDOR=false + ;; + -k | --kang ) + KANG="--kang" + ;; + -s | --section ) + SECTION="${2}"; shift + CLEAN_VENDOR=false + ;; + * ) + SRC="${1}" + ;; + esac + shift +done + +if [ -z "${SRC}" ]; then + SRC="adb" +fi + +function blob_fixup() { + case "${1}" in + system_ext/lib64/libwfdnative.so) + sed -i "s/android.hidl.base@1.0.so/libhidlbase.so\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/" "${2}" + ;; + vendor/lib64/hw/fingerprint.qcom.so) + sed -i "s/goodix\.3626/fingerprint/g" "${2}" + ;; + esac +} + +# Initialize the helper +setup_vendor "${DEVICE}" "${VENDOR}" "${ANDROID_ROOT}" false "${CLEAN_VENDOR}" + +extract "${MY_DIR}/proprietary-files.txt" "${SRC}" "${KANG}" --section "${SECTION}" + +"${MY_DIR}/setup-makefiles.sh" diff --git a/gps/flp.conf b/gps/flp.conf new file mode 100644 index 0000000..65d54d3 --- /dev/null +++ b/gps/flp.conf @@ -0,0 +1,60 @@ +################################### +##### FLP settings ##### +################################### + +################################### +# FLP BATCH SIZE +################################### +# The number of batched locations +# requested to modem. The desired number +# defined below may not be satisfied, as +# the modem can only return the number +# of batched locations that can be allocated, +# which is limited by memory. The default +# batch size defined as 20 as below. +BATCH_SIZE=20 + +################################### +# FLP OUTDOOR TRIP BATCH SIZE +################################### +# The number of batched locations +# requested to modem for outdoor +# trip batching. The desired number +# defined below may not be satisfied, as +# the modem can only return the number +# of batched locations that can be allocated, +# which is limited by memory. The default +# trip batch size defined as 600 as below. +OUTDOOR_TRIP_BATCH_SIZE=600 + +################################### +# FLP BATCHING SESSION TIMEOUT +################################### +# Duration with which batch session timeout +# happens in milliseconds. If not specified +# or set to zero, batching session timeout +# defaults to 20 seconds by the modem. +# BATCH_SESSION_TIMEOUT=20000 + +################################### +# FLP BATCHING ACCURACY +################################### +# Set to one of the defined values below +# to define the accuracy of batching. +# If not specified, accuracy defaults +# to LOW. +# FLP BATCHING ACCURACY values: +# Low accuracy = 0 +# Medium accuracy = 1 +# High accuracy = 2 +ACCURACY=1 + +#################################### +# By default if network fixes are not sensor assisted +# these fixes must be dropped. This parameter adds an exception +# for targets where there is no PDR and we still want to +# report out network fixes +# 0: MUST NOT ALLOW NETWORK FIXES +# 1: ALLOW NETWORK FIXES +#################################### +ALLOW_NETWORK_FIXES = 0 diff --git a/gps/gnss_antenna_info.conf b/gps/gnss_antenna_info.conf new file mode 100644 index 0000000..79a2aef --- /dev/null +++ b/gps/gnss_antenna_info.conf @@ -0,0 +1,134 @@ +################################### +##### ANTENNA INFORMATION ##### +################################### + +################################### +# ANTENNA INFO VECTOR SIZE +################################### +# The number of antenna info +# structures in the vector. Each +# entry in this vector is a structure +# with the following elements: +# +# - CARRIER_FREQUENCY +# - PC_OFFSET +# - PC_VARIATION_CORRECTION +# - PC_VARIATION_CORRECTION_UNC +# - SIGNAL_GAIN_CORRECTION +# - SIGNAL_GAIN_CORRECTION_UNC +# +# Notes: +# CARRIER_FREQUENCY +# The carrier frequency in MHz. +# +# PC = PHASE CENTER +# PC_OFFSET is a structure with six +# elements: x, y, z and their associated uncertainties +# Phase center offset (PCO) is defined with +# respect to the origin of the Android sensor coordinate system, e.g., +# center of primary screen for mobiles +# +# PC_VARIATION_CORRECTION +# 2D vectors representing the phase center variation (PCV) corrections, +# in millimeters, at regularly spaced azimuthal angle (theta) and zenith angle +# (phi). The PCV correction is added to the phase measurement to obtain the +# corrected value. +# The azimuthal angle, theta, is defined with respect to the X axis of the +# Android sensor coordinate system, increasing toward the Y axis. The zenith +# angle, phi, is defined with respect to the Z axis of the Android Sensor +# coordinate system, increasing toward the X-Y plane. +# Each row vector (outer vectors) represents a fixed theta. The first row +# corresponds to a theta angle of 0 degrees. The last row corresponds to a +# theta angle of (360 - deltaTheta) degrees, where deltaTheta is the regular +# spacing between azimuthal angles, i.e., deltaTheta = 360 / (number of rows). +# The columns (inner vectors) represent fixed zenith angles, beginning at 0 +# degrees and ending at 180 degrees. They are separated by deltaPhi, the regular +# spacing between zenith angles, i.e., deltaPhi = 180 / (number of columns - 1). +# +# PC_VARIATION_CORRECTION_UNC +# 2D vectors of 1-sigma uncertainty in millimeters associated with the PCV +# correction values. +# +# SIGNAL_GAIN_CORRECTION +# 2D vectors representing the signal gain corrections at regularly spaced +# azimuthal angle (theta) and zenith angle (phi). The values are calculated or +# measured at the antenna feed point without considering the radio and receiver +# noise figure and path loss contribution, in dBi, i.e., decibel over isotropic +# antenna with the same total power. The signal gain correction is added the +# signal gain measurement to obtain the corrected value. +# The azimuthal angle, theta, is defined with respect to the X axis of the +# Android sensor coordinate system, increasing toward the Y axis. The zenith +# angle, phi, is defined with respect to the Z axis of the Android Sensor +# coordinate system, increasing toward the X-Y plane. +# Each row vector (outer vectors) represents a fixed theta. The first row +# corresponds to a theta angle of 0 degrees. The last row corresponds to a +# theta angle of (360 - deltaTheta) degrees, where deltaTheta is the regular +# spacing between azimuthal angles, i.e., deltaTheta = 360 / (number of rows). +# The columns (inner vectors) represent fixed zenith angles, beginning at 0 +# degrees and ending at 180 degrees. They are separated by deltaPhi, the regular +# spacing between zenith angles, i.e., deltaPhi = 180 / (number of columns - 1). +# +# SIGNAL_GAIN_CORRECTION_UNC +# 2D vectors of 1-sigma uncertainty in dBi associated with the signal +# gain correction values. +# +# The number of rows and columns could be the same for PC variation correction +# and signal gain corrections, or could be different +# If the former then NUMBER_OF_ROWS_ and NUMBER_OF_COLUMNS_ are specified once +# only, if the latter then NUMBER_OF_ROWS_ and NUMBER_OF_COLUMNS_ represent +# the number of rows/columns for PC variation correction and +# NUMBER_OF_ROWS_SGC_ and NUMBER_OF_COLUMNS_SGC_ represent the number of +# rows/columns for signal gain corrections + +ANTENNA_INFO_VECTOR_SIZE = 2 + +CARRIER_FREQUENCY_0 = 1575.42 + +PC_OFFSET_0 = 1.2 0.1 3.4 0.2 5.6 0.3 + +NUMBER_OF_ROWS_0 = 3 +NUMBER_OF_COLUMNS_0 = 4 + +PC_VARIATION_CORRECTION_0_ROW_0 = 11.22 33.44 55.66 77.88 +PC_VARIATION_CORRECTION_0_ROW_1 = 10.2 30.4 50.6 70.8 +PC_VARIATION_CORRECTION_0_ROW_2 = 12.2 34.4 56.6 78.8 + +PC_VARIATION_CORRECTION_UNC_0_ROW_0 = 0.1 0.2 0.3 0.4 +PC_VARIATION_CORRECTION_UNC_0_ROW_1 = 1.1 1.2 1.3 1.4 +PC_VARIATION_CORRECTION_UNC_0_ROW_2 = 2.1 2.2 2.3 2.4 + +SIGNAL_GAIN_CORRECTION_0_ROW_0 = 9.8 8.7 7.6 6.5 +SIGNAL_GAIN_CORRECTION_0_ROW_1 = 5.4 4.3 3.2 2.1 +SIGNAL_GAIN_CORRECTION_0_ROW_2 = 1.3 2.4 3.5 4.6 + +SIGNAL_GAIN_CORRECTION_UNC_0_ROW_0 = 0.11 0.22 0.33 0.44 +SIGNAL_GAIN_CORRECTION_UNC_0_ROW_1 = 0.55 0.66 0.77 0.88 +SIGNAL_GAIN_CORRECTION_UNC_0_ROW_2 = 0.91 0.92 0.93 0.94 + + +CARRIER_FREQUENCY_1 = 1227.6 + +PC_OFFSET_1 = 3.4 0.2 5.6 0.3 1.2 0.1 + +NUMBER_OF_ROWS_1 = 4 +NUMBER_OF_COLUMNS_1 = 2 +NUMBER_OF_ROWS_SGC_1 = 3 +NUMBER_OF_COLUMNS_SGC_1 = 4 + +PC_VARIATION_CORRECTION_1_ROW_0 = 55.66 77.88 +PC_VARIATION_CORRECTION_1_ROW_1 = 11.22 33.44 +PC_VARIATION_CORRECTION_1_ROW_2 = 56.6 78.8 +PC_VARIATION_CORRECTION_1_ROW_3 = 12.2 34.4 + +PC_VARIATION_CORRECTION_UNC_1_ROW_0 = 0.3 0.4 +PC_VARIATION_CORRECTION_UNC_1_ROW_1 = 1.1 1.2 +PC_VARIATION_CORRECTION_UNC_1_ROW_2 = 2.1 2.2 +PC_VARIATION_CORRECTION_UNC_1_ROW_3 = 0.1 0.2 + +SIGNAL_GAIN_CORRECTION_1_ROW_0 = 7.6 6.5 5.4 4.3 +SIGNAL_GAIN_CORRECTION_1_ROW_1 = 1.3 2.4 9.8 8.7 +SIGNAL_GAIN_CORRECTION_1_ROW_2 = 1.4 2.5 3.6 4.7 + +SIGNAL_GAIN_CORRECTION_UNC_1_ROW_0 = 0.91 0.92 0.55 0.66 +SIGNAL_GAIN_CORRECTION_UNC_1_ROW_1 = 0.11 0.22 0.93 0.94 +SIGNAL_GAIN_CORRECTION_UNC_1_ROW_2 = 0.95 0.96 0.33 0.44 diff --git a/gps/gps.conf b/gps/gps.conf new file mode 100644 index 0000000..c5e9dd1 --- /dev/null +++ b/gps/gps.conf @@ -0,0 +1,391 @@ +# Error Estimate +# _SET = 1 +# _CLEAR = 0 +ERR_ESTIMATE=0 + +#NTP server +NTP_SERVER=time.xtracloud.net + +#XTRA CA path +XTRA_CA_PATH=/usr/lib/ssl-1.1/certs + +# DEBUG LEVELS: 0 - none, 1 - Error, 2 - Warning, 3 - Info +# 4 - Debug, 5 - Verbose +# If DEBUG_LEVEL is commented, Android's logging levels will be used +DEBUG_LEVEL = 2 + +# Intermediate position report, 1=enable, 0=disable +INTERMEDIATE_POS=0 + +# supl version 2.0 +SUPL_VER=0x20000 + +# Emergency SUPL, 1=enable, 0=disable +#SUPL_ES=1 + +#Choose PDN for Emergency SUPL +#1 - Use emergency PDN +#0 - Use regular SUPL PDN for Emergency SUPL +#USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL=0 + +#SUPL_MODE is a bit mask set in config.xml per carrier by default. +#If it is uncommented here, this value will overwrite the value from +#config.xml. +#MSA=0X2 +#MSB=0X1 +SUPL_MODE=3 + +# GPS Capabilities bit mask +# SCHEDULING = 0x01 +# MSB = 0x02 +# MSA = 0x04 +# ON_DEMAND_TIME = 0x10 +# default = ON_DEMAND_TIME | MSA | MSB | SCHEDULING +CAPABILITIES=0x17 + +# Accuracy threshold for intermediate positions +# less accurate positions are ignored, 0 for passing all positions +# ACCURACY_THRES=5000 + +################################ +##### AGPS server settings ##### +################################ + +# FOR SUPL SUPPORT, set the following +SUPL_HOST=supl.google.com +SUPL_PORT=7275 + +# FOR MO SUPL SUPPORT, set the following +# MO_SUPL_HOST=supl.host.com or IP +# MO_SUPL_PORT=1234 + +# FOR C2K PDE SUPPORT, set the following +# C2K_HOST=c2k.pde.com or IP +# C2K_PORT=1234 + +# Bitmask of slots that are available +# for write/install to, where 1s indicate writable, +# and the default value is 0 where no slots +# are writable. For example, AGPS_CERT_WRITABLE_MASK +# of b1000001010 makes 3 slots available +# and the remaining 7 slots unwritable. +#AGPS_CERT_WRITABLE_MASK=0 + +#################################### +# LTE Positioning Profile Settings +#################################### +# LPP_PROFILE is a bit mask +# 0: Enable RRLP on LTE(Default) +# 0x1: LPP User Plane +# 0x2: LPP Control Plane +# 0x4: LPP User Plane for NR5G +# 0x8: LPP Control Plane for NR5G +LPP_PROFILE = 3 + +#################################### +#Datum Type +#################################### +# 0: WGS-84 +# 1: PZ-90 +DATUM_TYPE = 0 + +################################ +# EXTRA SETTINGS +################################ +# NMEA provider (1=Modem Processor, 0=Application Processor) +NMEA_PROVIDER=0 + +################################ +# NMEA TAG BLOCK GROUPING +################################ +# NMEA tag block grouping is only applicable to GSA +# Default is disabled +# 0 - disabled +# 1 - enabled +NMEA_TAG_BLOCK_GROUPING_ENABLED = 0 + +# Customized NMEA GGA fix quality that can be used to tell +# whether SENSOR contributed to the fix. +# +# When this configuration item is not enabled (set to any value that is not 1), +# GGA fix quality conforms to NMEA standard spec as below: +# PPP/DGNSS/SBAS correction fix w/ or w/o sensor: 2 +# RTK fixed fix w/ or w/o sensor: 4 +# RTK float fix w/ or w/o sensor: 5 +# SPE fix w/ or w/o sensor: 1 +# Sensor dead reckoning fix: 6 +# +# When this configuration is enabled (set to 1), GGA fix quality +# will be output as below: +# PPP fix w/o sensor: 59, w/ sensor: 69 +# DGNSS/SBAS correction fix w/o sensor: 2, w/ sensor: 62 +# RTK fixed fix w/o sensor: 4, w/ sensor: 64 +# RTK float fix w/o sensor: 5, w/ sensor: 65, +# SPE fix w/o sensor: 1, and w/ sensor: 61 +# Sensor dead reckoning fix: 6 +# +# any value that is not 1 - disabled +# 1 - enabled +CUSTOM_NMEA_GGA_FIX_QUALITY_ENABLED = 0 + +################################ +# NMEA Reporting Rate Config, valid only when NMEA_PROVIDER is set to "0" +################################ +# NMEA Reporting Rate +# Set it to "1HZ" for 1Hz NMEA Reporting +# Set it to "NHZ" for NHz NMEA Reporting +#Default : NHZ (overridden by position update rate if set to lower rates) +NMEA_REPORT_RATE=NHZ + +# Mark if it is a SGLTE target (1=SGLTE, 0=nonSGLTE) +SGLTE_TARGET=0 + +################################################## +# Select Positioning Protocol on A-GLONASS system +################################################## +# 0x1: RRC CPlane +# 0x2: RRLP UPlane +# 0x4: LLP Uplane +A_GLONASS_POS_PROTOCOL_SELECT = 0 + +################################################## +# Select technology for LPPe Control Plane +################################################## +# 0x1: DBH for LPPe CP +# 0x2: WLAN AP Measurements for LPPe CP +# 0x4: SRN AP measurement for CP +# 0x8: Sensor Barometer Measurement LPPe CP +LPPE_CP_TECHNOLOGY = 0xb + +################################################## +# Select technology for LPPe User Plane +################################################## +# 0x1: DBH for LPPe UP +# 0x2: WLAN AP Measurements for LPPe UP +# 0x4: SRN AP measurement for UP +# 0x8: Sensor Barometer Measurement LPPe UP +#LPPE_UP_TECHNOLOGY = 0 + +################################################## +# AGPS_CONFIG_INJECT +################################################## +# enable/disable injection of AGPS configurations: +# SUPL_VER +# SUPL_HOST +# SUPL_PORT +# MO_SUPL_HOST +# MO_SUPL_PORT +# C2K_HOST +# C2K_PORT +# LPP_PROFILE +# A_GLONASS_POS_PROTOCOL_SELECT +# 0: disable +# 1: enable +AGPS_CONFIG_INJECT = 1 + +################################################## +# GNSS settings for automotive use cases +# Configurations in following section are +# specific to automotive use cases, others +# please do not change, keep the default values +################################################## + +# AP Coarse Timestamp Uncertainty +################################################## +# default : 10 +# AP time stamp uncertainty, until GNSS receiver +# is able to acquire better timing information +AP_TIMESTAMP_UNCERTAINTY = 10 + +##################################### +# DR_SYNC Pulse Availability +##################################### +# 0 : DR_SYNC pulse not available (default) +# 1 : DR_SYNC pulse available +# This configuration enables the driver to make use +# of PPS events generated by DR_SYNC pulse +# Standard Linux PPS driver needs to be enabled +DR_SYNC_ENABLED = 0 + +##################################### +# PPS Device name +##################################### +PPS_DEVICENAME = /dev/pps0 + +##################################### +# Ignore PPS at Startup and after long outage +##################################### +IGNORE_PPS_PULSE_COUNT = 1 + +##################################### +# Long GNSS RF outage in seconds +##################################### +GNSS_OUTAGE_DURATION = 10 + +##################################### +# AP Clock Accuracy +##################################### +# Quality of APPS processor clock (in PPM). +# Value specified is used for calculation of +# APPS time stamp uncertainty +AP_CLOCK_PPM = 100 + +##################################### +# MAX ms difference to detect missing pulse +##################################### +# Specifies time threshold in ms to validate any missing PPS pulses +MISSING_PULSE_TIME_DELTA = 900 + +##################################### +# Propagation time uncertainty +##################################### +# This settings enables time uncertainty propagation +# logic incase of missing PPS pulse +PROPAGATION_TIME_UNCERTAINTY = 1 + +####################################### +# APN / IP Type Configuration +# APN and IP Type to use for setting +# up WWAN call. +# Use below values for IP Type: +# v4 = 4 +# v6 = 6 +# v4v6 = 10 +####################################### +# INTERNET_APN = abc.xyz +# INTERNET_IP_TYPE = 4 +# SUPL_APN = abc.xyz +# SUPL_IP_TYPE = 4 + +##################################### +# Modem type +##################################### +# This setting configures modem type +# (external=0 or internal=1) +# comment out the next line to vote +# for the first modem in the list +MODEM_TYPE = 1 + +################################################## +# CONSTRAINED TIME UNCERTAINTY MODE +################################################## +# 0 : disabled (default) +# 1 : enabled +# This setting enables GPS engine to keep its time +# uncertainty below the specified constraint +#CONSTRAINED_TIME_UNCERTAINTY_ENABLED = 0 + +# If constrained time uncertainty mode is enabled, +# this setting specifies the time uncertainty +# threshold that gps engine need to maintain. +# In unit of milli-seconds. +# Default is 0.0 meaning that modem default value +# of time uncertainty threshold will be used. +#CONSTRAINED_TIME_UNCERTAINTY_THRESHOLD = 0.0 + +# If constrained time uncertainty mode is enabled, +# this setting specifies the power budget that +# gps engine is allowed to spend to maintain the time +# uncertainty. +# Default is 0 meaning that GPS engine is not constained +# by power budget and can spend as much power as needed. +# In unit of 0.1 milli watt second. +#CONSTRAINED_TIME_UNCERTAINTY_ENERGY_BUDGET = 0 + +################################################## +# POSITION ASSISTED CLOCK ESTIMATOR +################################################## +# 0 : disabled (default) +# 1 : enabled +# This setting enables GPS engine to estimate clock +# bias and drift when the signal from at least 1 +# SV is available and the UE’s position is known by +# other position engines. +#POSITION_ASSISTED_CLOCK_ESTIMATOR_ENABLED = 0 + +##################################### +# proxyAppPackageName +##################################### +# This is a string that is sent to the framework +# in nfwNotifyCb callback +PROXY_APP_PACKAGE_NAME = com.oneplus.carrierlocation + +##################################### +# CP_MTLR_ES +##################################### +# CP MTLR ES, 1=enable, 0=disable +CP_MTLR_ES=0 + +################################################## +# GNSS_DEPLOYMENT +################################################## +# 0 : Enable QTI GNSS (default) +# 1 : Enable QCSR SS5 +# 2 : Enable PDS API +# This setting use to select between QTI GNSS, +# QCSR SS5 hardware receiver, and PDS API. +# By default QTI GNSS receiver is enabled. +# GNSS_DEPLOYMENT = 0 + +################################################## +## LOG BUFFER CONFIGURATION +################################################## +#LOG_BUFFER_ENABLED, 1=enable, 0=disable +#*_LEVEL_TIME_DEPTH, maximum time depth of level * +#in log buffer, unit is second +#*_LEVEL_MAX_CAPACITY, maximum numbers of level * +#log print sentences in log buffer +LOG_BUFFER_ENABLED = 0 +E_LEVEL_TIME_DEPTH = 600 +E_LEVEL_MAX_CAPACITY = 50 +W_LEVEL_TIME_DEPTH = 500 +W_LEVEL_MAX_CAPACITY = 100 +I_LEVEL_TIME_DEPTH = 400 +I_LEVEL_MAX_CAPACITY = 200 +D_LEVEL_TIME_DEPTH = 30 +D_LEVEL_MAX_CAPACITY = 300 +V_LEVEL_TIME_DEPTH = 200 +V_LEVEL_MAX_CAPACITY = 400 + +################################################## +# Allow buffer diag log packets when diag memory allocation +# fails during boot up time. +################################################## +BUFFER_DIAG_LOGGING = 1 + +####################################### +# NTRIP CLIENT LIBRARY NAME +####################################### +# NTRIP_CLIENT_LIB_NAME = + +################################################## +# Correction Data Framework settings +# Default values: +# CDFW_SOURCE_PRIORITY_1 = INTERNAL_1 RTCM +# CDFW_INJECT_DATA_INTERVAL = 600000 //10 mins +# CDFW_RTCM_MESSAGE_INTERVAL = 1000 //1 second +# +# If multiple sources coexist on a PL, +# the prorioty sequence can be set by the integer number. +# PRIORITY_1 is higher than PRIORITY_2, for example, +# CDFW_SOURCE_PRIORITY_1 = INTERNAL_1 RTCM +# CDFW_SOURCE_PRIORITY_2 = CV2X RTCM +################################################## + +################################################## +# RF LOSS +# The loss in 0.1 dbHz from the C/N0 at the antenna port +# These values must be configured by OEM if not +# supported in QMI LOC message +# There is one entry for each signal type +################################################## +RF_LOSS_GPS = 0 +RF_LOSS_GPS_L5 = 0 +RF_LOSS_GLO_LEFT = 0 +RF_LOSS_GLO_CENTER = 0 +RF_LOSS_GLO_RIGHT = 0 +RF_LOSS_BDS = 0 +RF_LOSS_BDS_B2A = 0 +RF_LOSS_GAL = 0 +RF_LOSS_GAL_E5 = 0 +RF_LOSS_NAVIC = 0 diff --git a/gps/izat.conf b/gps/izat.conf new file mode 100644 index 0000000..e236d24 --- /dev/null +++ b/gps/izat.conf @@ -0,0 +1,277 @@ +######################################### +# Log verbosity control for izat modules +######################################### +# OFF = 0, ERROR = 1, WARNING = 2, INFO = 3, DEBUG = 4, VERBOSE = 5 +IZAT_DEBUG_LEVEL = 2 + +################################################## +# Select WIFI Wait Timeout value in seconds for SUPL +################################################## +WIFI_WAIT_TIMEOUT_SELECT = 0 + +################################################## +# Time interval of injecting SRN scan data to modem +# time in seconds. +# Note: recommended value is between 1-5 sec +################################################## +LPPE_SRN_DATA_SCAN_INJECT_TIME=2 + +################################ +# NLP Settings +################################ +# NLP_MODE 1: OSNLP Only, 2: QNP Only, 3: Combo, 4: QNP preferred +# For Automotive products, please use NLP_MODE = 4 only. +# NLP_TOLERANCE_TIME_FIRST: Time in ms used in Combo mode +# to determine how much Tolerance for first position +# NLP_TOLERANCE_TIME_AFTER: Time in ms used in Combo mode +# to determine how much Tolerance for positions after first +# NLP_THRESHOLD: Sets how many failures needed before +# switching preferred NLP in Combo mode +# NLP_ACCURACY_MULTIPLE: Determines how far off the accuracy +# must be, in multiples, between two NLP location reports to +# be considered much worse accuracy. Used in switching logic +# NLP COMBO MODE USES QNP WITH NO EULA CONSENT: Determines +# whether or not to still send network location requests to +# QNP when the EULA is not consented to by the user. QNP can +# still return ZPP locations or injected locations even +# without EULA consent, but the uncertainty can be high. +# QNP preferred mode prefers QNP when there is EULA consent, +# otherwise OSNLP is used. +NLP_MODE = 1 +NLP_MODE_EMERGENCY = 2 +NLP_TOLERANCE_TIME_FIRST = 5000 +NLP_TOLERANCE_TIME_AFTER = 20000 +NLP_THRESHOLD = 3 +NLP_ACCURACY_MULTIPLE = 2 +NLP_COMBO_MODE_USES_QNP_WITH_NO_EULA_CONSENT = 1 + +######################################### +# NLP PACKAGE SETTINGS +######################################### +# OSNLP_PACKAGE: name of default NLP package +OSNLP_PACKAGE = com.google.android.gms +# REGION_OSNLP_PACKAGE: +# This value will be used as alternative +# for particular region where default NLP is not functional. +#REGION_OSNLP_PACKAGE = + +################################### +# GEOFENCE SERVICES +################################### +# If set to one of the defined values below, it will override +# the responsiveness for geofence services, which implements +# the Proximity Alert API. If not set to a value defined below, +# which is default, it will not override the responsivness. +# The geofence HAL API is unaffected by this value. +# GEOFENCE_SERVICES_RESPONSIVENESS_OVERRIDE Values: +# 1: LOW responsiveness +# 2: MEDIUM responsiveness +# 3: HIGH responsiveness +GEOFENCE_SERVICES_RESPONSIVENESS_OVERRIDE = 0 + +##################################### +#GTP Opt-In app +##################################### + +#GTP privacy policy version url +#https support is required +GTP_PRIVACY_VERSION_URL = https://info.izatcloud.net/privacy/version.html + +#GTP privacy policy version download retry interval +#unit is second. default is 86400 +GTP_PRIVACY_RETRY_INTERVAL = 86400 + +##################################### +# IZAT PREMIUM FEATURE SETTINGS +##################################### +#Possible states of a feature: +#DISABLED +#BASIC +#PREMIUM + +#GTP_MODE valid modes: +# DISABLED +# LEGACY_WWAN +# SDK (WWAN not available for Modems before LocTech 10.0) +# SDK_WIFI (WWAN provided by legacy Modem) +GTP_MODE=DISABLED + +#GTP_WAA valid modes: +# DISABLED +# BASIC +GTP_WAA=DISABLED + +#SAP valid modes: +# DISABLED +# BASIC +# PREMIUM +# PREMIUM_ENV_AIDING +# MODEM_DEFAULT +SAP=PREMIUM + +#FREE_WIFI_SCAN_INJECT valid modes: +#DISABLED +#BASIC +FREE_WIFI_SCAN_INJECT=BASIC + +#SUPL_WIFI valid modes: +#DISABLED +#BASIC +SUPL_WIFI=BASIC + +#WIFI_SUPPLICANT_INFO valid modes: +#DISABLED +#BASIC +WIFI_SUPPLICANT_INFO=BASIC + +##################################### +# Location process launcher settings +##################################### + +# DO NOT MODIFY +# Modifying below attributes without +# caution can have serious implications. + +#Values for PROCESS_STATE: +# ENABLED +# DISABLED + +#Values for LOW_RAM_TARGETS: +# ENABLED +# DISABLED +# Property to enable/disable processes for low ram targets. Uses ro.config.low_ram property +# to identify low ram targets. + +#PROCESS_NAME +# Name of the executable file. + +#FEATURE MASKS: +# GTP-WIFI 0X03 +# GTP-MP-CELL 0xc00 +# GTP-WAA 0x100 +# SAP 0Xc0 +# ODCPI 0x1000 +# FREE_WIFI_SCAN_INJECT 0x2000 +# SUPL_WIFI 0x4000 +# WIFI_SUPPLICANT_INFO 0x8000 + +#Values for PLATFORMS can be: +#1. Any valid values obtained from ro.board.platform separated by single space. For example: msm8960 msm8226 +#2. 'all' or 'all exclude' -> for All platforms +#3. 'all exclude XXXX' -> All platforms exclude XXXX. For example: all exclude msm8937 + +#Values for SOC_IDS can be: +#1. Any valid values obtained from soc_id node separated by single space. For example: 339 386 436 +## soc_id value can be obtained from any one of below node: +## - /sys/devices/soc0/soc_id +## - /sys/devices/system/soc/soc0/id +#2. 'all' or 'all exclude' -> for All soc id's +#3. 'all exclude XXXX' -> All soc id's exclude XXXX. For example: all exclude 339 386 + +#Values for BASEBAND can be: +#1. Any valid values obtained from ro.baseband separated by single space. For example: sglte sglte2 +#2. 'all' or 'all exclude' -> for all basebands +#3. 'all exclude XXXX' -> All basebands exclude XXXX. For example: all exclude sglte +PROCESS_NAME=lowi-server +PROCESS_ARGUMENT= +PROCESS_STATE=ENABLED +PROCESS_GROUPS=gps wifi inet oem_2901 +PREMIUM_FEATURE=0 +IZAT_FEATURE_MASK=0xf303 +PLATFORMS=all +SOC_IDS=all +BASEBAND=all +LOW_RAM_TARGETS=DISABLED +HARDWARE_TYPE=all +VENDOR_ENHANCED_PROCESS=0 + +PROCESS_NAME=xtwifi-inet-agent +PROCESS_ARGUMENT= +PROCESS_STATE=ENABLED +PROCESS_GROUPS=inet gps +PREMIUM_FEATURE=1 +IZAT_FEATURE_MASK=0xc03 +PLATFORMS=all +SOC_IDS=all exclude 386 436 +BASEBAND=all +LOW_RAM_TARGETS=DISABLED +HARDWARE_TYPE=all +VENDOR_ENHANCED_PROCESS=1 + +PROCESS_NAME=xtwifi-client +PROCESS_ARGUMENT= +PROCESS_STATE=ENABLED +PROCESS_GROUPS=wifi inet gps system oem_2904 +PREMIUM_FEATURE=1 +IZAT_FEATURE_MASK=0xd03 +PLATFORMS=all +SOC_IDS=all exclude 386 436 +BASEBAND=all +LOW_RAM_TARGETS=DISABLED +HARDWARE_TYPE=all +VENDOR_ENHANCED_PROCESS=1 + +PROCESS_NAME=slim_daemon +PROCESS_ARGUMENT= +PROCESS_STATE=DISABLED +PROCESS_GROUPS=gps oem_2901 can plugdev diag sensors +PREMIUM_FEATURE=1 +IZAT_FEATURE_MASK=0xf0 +PLATFORMS=all +SOC_IDS=all exclude 386 436 +BASEBAND=all +LOW_RAM_TARGETS=DISABLED +HARDWARE_TYPE=all +VENDOR_ENHANCED_PROCESS=1 + +PROCESS_NAME=xtra-daemon +PROCESS_ARGUMENT= +PROCESS_STATE=ENABLED +PROCESS_GROUPS=inet gps system +PREMIUM_FEATURE=0 +IZAT_FEATURE_MASK=0 +PLATFORMS=all +SOC_IDS=all +BASEBAND=all +LOW_RAM_TARGETS=ENABLED +HARDWARE_TYPE=all +VENDOR_ENHANCED_PROCESS=0 + +######################################## +# Engine Service which host DRE module # +# To enable DRE engine service, change # +# PROCESS_STATE=ENABLED # +######################################## +PROCESS_NAME=engine-service +PROCESS_ARGUMENT=DRE-INT libloc_epDr.so +PROCESS_STATE=DISABLED +PROCESS_GROUPS=gps diag inet qwes oem_2901 system +PREMIUM_FEATURE=0 +IZAT_FEATURE_MASK=0 +PLATFORMS=all +SOC_IDS=all +BASEBAND=all +LOW_RAM_TARGETS=DISABLED +HARDWARE_TYPE=all +VENDOR_ENHANCED_PROCESS=1 + +######################################## +# Engine Service which host PPE module # +# To enable PPE engine service, change # +# PROCESS_STATE=ENABLED # +# and update process arugements # +# with PPE library name # +#PROCESS_ARGUMENT=PPE libepsimulator.so# +######################################## +PROCESS_NAME=engine-service +PROCESS_ARGUMENT=PPE libepsimulator.so +PROCESS_STATE=DISABLED +PROCESS_GROUPS=gps diag inet qwes oem_2901 system +PREMIUM_FEATURE=0 +IZAT_FEATURE_MASK=0 +PLATFORMS=all +SOC_IDS=all +BASEBAND=all +LOW_RAM_TARGETS=DISABLED +HARDWARE_TYPE=all +VENDOR_ENHANCED_PROCESS=1 diff --git a/gps/lowi.conf b/gps/lowi.conf new file mode 100644 index 0000000..6d4de75 --- /dev/null +++ b/gps/lowi.conf @@ -0,0 +1,27 @@ +#*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====* +# +# LOWI Config file - default +# +# GENERAL DESCRIPTION +# This file contains the config params for LOWI +# +# Copyright (c) 2019 Qualcomm Technologies, Inc. +# All Rights Reserved. +# Confidential and Proprietary - Qualcomm Technologies, Inc. +# +# 2012-2013 Qualcomm Atheros, Inc. +# All Rights Reserved. +# Qualcomm Atheros Confidential and Proprietary. +# +# Export of this technology or software is regulated by the U.S. Government. +# Diversion contrary to U.S. law prohibited. +#=============================================================================*/ + +# X86 ONLY - UBUNTU: +# Copy this file in the same directory where the executable is + +# Log level +# EL_LOG_OFF = 0, EL_ERROR = 1, EL_WARNING = 2, EL_INFO = 3, EL_DEBUG = 4, EL_VERBOSE = 5, EL_LOG_ALL = 100 +LOWI_LOG_LEVEL = 2 +LOWI_USE_LOWI_LP = 0 + diff --git a/gps/sap.conf b/gps/sap.conf new file mode 100644 index 0000000..e8d27b7 --- /dev/null +++ b/gps/sap.conf @@ -0,0 +1,179 @@ +################################ +# Sensor Settings +################################ +#The following parameters are optional. +#Internal defaults support MEMS sensors +#native to most handset devices. +#Device specific sensor characterization +#for improved performance is possible as +#described in SAP application notes. +#GYRO_BIAS_RANDOM_WALK= +#ACCEL_RANDOM_WALK_SPECTRAL_DENSITY= +#ANGLE_RANDOM_WALK_SPECTRAL_DENSITY= +#RATE_RANDOM_WALK_SPECTRAL_DENSITY= +#VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY= + +# DEBUG LEVELS: 0 - none, 1 - Error, 2 - Warning, 3 - Info +# 4 - Debug, 5 - Verbose +# If DEBUG_LEVEL is commented, Android's logging levels will be used +DEBUG_LEVEL = 0 +# Sensor Sampling Rate Parameters for Low-Data Rate Filter (should be greater than 0) +# used in loc_eng_reinit +SENSOR_ACCEL_BATCHES_PER_SEC=2 +SENSOR_ACCEL_SAMPLES_PER_BATCH=5 +SENSOR_GYRO_BATCHES_PER_SEC=2 +SENSOR_GYRO_SAMPLES_PER_BATCH=5 +# Sensor Sampling Rate Parameters for High-Data Rate Filter (should be greater than 0) +SENSOR_ACCEL_BATCHES_PER_SEC_HIGH=4 +SENSOR_ACCEL_SAMPLES_PER_BATCH_HIGH=25 +SENSOR_GYRO_BATCHES_PER_SEC_HIGH=4 +SENSOR_GYRO_SAMPLES_PER_BATCH_HIGH=25 + +# Sensor Control Mode (0=AUTO, 1=FORCE_ON, 2=MODEM_DEFAULT) +# used in loc_eng_reinit +SENSOR_CONTROL_MODE=2 + +# Bit mask used to define which sensor algorithms are used. +# Setting each bit has the following definition: +# 0x1 - DISABLE_INS_POSITIONING_FILTER +# 0x0 - ENABLE_INS_POSITIONING_FILTER +SENSOR_ALGORITHM_CONFIG_MASK=0x0 + +#Vehicle Network Provider configuration + +#Service configuration strings +#The number before colon in VN_X items defines version of the format of the rest of the string +#VN_ACCEL_CFG=0:5 +#VN_GYRO_CFG=0:5.5 +#VN_ODOMETRY_CFG=0:2,4.5 + +################################################ +# QDR3 configurations # +################################################ +#VN_SPEED_CFG=1:131,5,8,1,2,3,1,1,9,2,14,2 +#VN_GEAR_CFG=1:422,20,4,0,4,1,9,0,1,2,3,4,5,6,7,8 +VN_SPEED_CFG=1:777,0,0,1,3,1,0.002778,0,40,8,32,8 +VN_GEAR_CFG=1:422,20,4,0,4,1,9,0,1,2,3,4,5,6,7,8 + +################################################ +# QDR2-Gyro configurations # +################################################ +#VN_GYRO_CFG=1:555,0,1,0,0,0,0,-6.5,6.6066,-6.5,-1.00,2,6.607,6.6068,0,0,16,0.0002,0,16,0.0002,0,16,0.0002 +#VN_SPEED_CFG=1:555,0,0,1,2,1,0.01,0,56,8,48,8 +#VN_GEAR_CFG=1:555,16,4,0,1,1,9,0,1,2,3,4,5,6,7,8 + +################################################ +# QDR2-DWT configurations # +################################################ +#VN_SPEED_CFG=1:555,22,1,2,1,1,1,0,8,8,23,1,2,0,1,0,8,8,23,1 +#VN_GEAR_CFG=1:555,12,4,16,14,16,8,1,2,3,4,5,6,7,8 +#VN_DWS_CFG=1:555,0,0,1,3,1,1,0,0,8,0,0,8,8,0,0,16,8,0,0,24,8,0,0 +#VN_GYRO_CFG=1:555,40,16,1.0,40,16,1.0,40,16,1.0 + +##################################################################################### +# VNW service batching configuration strings # +# VNW provider will initialize default type as Time based batching # +# Each service batch value is configured to be 100 # +# VN_ACCEL_CFG_BATCH_VALUE will be treated as time in Ms if VN_CFG_BATCH_TYPE # +# is set to time based batching # +# VN_ACCEL_CFG_BATCH_VALUE will be treated as sample count if VN_CFG_BATCH_TYPE # +# is set to count based batching # +# Uncomment and update batch time /sample count as per selected batching type # +##################################################################################### +# Batching type +# 1 - Time based (default) +# 2 - Count based +VN_CFG_BATCH_TYPE=1 + +#Vehicle Accel batching value, it can either accept time in milli seconds or sample count +#VN_ACCEL_CFG_BATCH_VALUE=100 + +#Vehicle Gyro batching value, it can either accept time in milli seconds or sample count +VN_GYRO_CFG_BATCH_VALUE=50 + +#Vehicle Odo batching value, it can either accept time in milli seconds or sample count +#VN_ODOMETRY_CFG_BATCH_VALUE=100 + +#Vehicle Speed batching value, it can either accept time in milli seconds or sample count +VN_SPEED_CFG_BATCH_VALUE=50 + +#Vehicle Gear batching value, it can either accept time in milli seconds or sample count +VN_GEAR_CFG_BATCH_VALUE=50 + +#Vehicle DWS batching value, it can either accept time in milli seconds or sample count +#VN_DWS_CFG_BATCH_VALUE=100 +#################################################################################### + +#Procesors clock ratio: AP and CAN bus microcontroller +################################################ +# QDR3 configurations # +################################################ +VN_PROC_CLOCK_RATIO=1.0 + +################################################ +# QDR2-DWT OR QDR2-Gyro configurations # +################################################ +#VN_PROC_CLOCK_RATIO = 1.0 + +# Time source used by Sensor HAL +# Setting this value controls accuracy of location sensor services. +# 0 - Unknown +# 1 - CLOCK_BOOTTIME +# 2 - CLOCK_MONOTONIC +# 3 - CLOCK_REALTIME +# 4 - CLOCK_BOOTTIME using Alarm timer interface +NDK_PROVIDER_TIME_SOURCE=1 + +# Sensor Batching Configuration +# 0 - Time based +# 1 - Fixed count based +# 2 - Variable count based +COUNT_BASED_BATCHING=1 +SYNC_ONCE=0 + +# Vehicle Network Data optimization +# Default value: 0 +# Value 0x40000 - Speed(bit 18 eSLIM_SERVICE_VEHICLE_SPEED) +# Value 0x80000 - Speed(bit 19 eSLIM_SERVICE_VEHICLE_DWS) +# Value 0x100000 - Speed(bit 20 eSLIM_SERVICE_VEHICLE_GEAR) +VN_ENABLE_DATA_OPTIMIZATION=0x100000 + +# Vehicle Network Data Routing time interval +# This is applicable only if VN_ENABLE_DATA_OPTIMIZATION value is set +# Default value: 5000 msec +VN_DATA_ROUTING_TIME_INTERVAL_MSEC=3000 + +#Sensor HAL Provider Configuration HAL Library name including path +################################################ +# # +# Configuration for BMI 160 Sensor # +# # +################################################ +#SENSOR_TYPE=2 +#SENSOR_HAL_LIB_PATH=/usr/lib/libbmi160sensors.so.1 + +################################################ +# # +# Configuration for ASM330 Sensor # +# # +################################################ +SENSOR_TYPE=1 +SENSOR_HAL_LIB_PATH=/usr/lib/libasm330sensors.so.1 + + +################################################ +# # +# Configuration for IAM20680 Sensor # +# # +################################################ +#SENSOR_TYPE=3 +#SENSOR_HAL_LIB_PATH=/usr/lib/libiam20680sensors.so.1 + + +################################################ +# # +# Configuration for SMI130 Sensor # +# # +################################################ +#SENSOR_TYPE=4 +#SENSOR_HAL_LIB_PATH=/usr/lib/libsmi130sensors.so.1 diff --git a/gps/xtwifi.conf b/gps/xtwifi.conf new file mode 100644 index 0000000..5d7df9e --- /dev/null +++ b/gps/xtwifi.conf @@ -0,0 +1,78 @@ +#GTP AP Project client core config file +# +#GENERAL DESCRIPTION +#This is used by client core +# +#Copyright (c) 2012-2014 Qualcomm Atheros, Inc. +#All Rights Reserved. +#Qualcomm Atheros Confidential and Proprietary. +# +#Copyright (c) 2017 Qualcomm Technologies, Inc. +#All Rights Reserved. +#Confidential and Proprietary - Qualcomm Technologies, Inc. + +############################################################################## +# non-IOT devices configuration items # +# For non-IOT devices, configure below configuration items # +# according to the app note: 80-NK218-1 and remove the configuration items # +# in section of "IOT devices configuration items". # +############################################################################## + +# ASN URI v2 to be used by some GTP AP modules that +# need to run with ASN URI v2 protocol. +XT_SERVER_ROOT_URL = https://gtp1.izatcloud.net:443/uds/v2 + +# ASN URI v3 to be used by GTP AP modules that +# can support ASN URI v3 protocol. +XT_SERVER_ROOT_URL_V3 = https://gtp1.izatcloud.net:443/uds/v3 + +# size, in bytes, of the cache on device +SIZE_BYTE_TOTAL_CACHE = 5000000 + +############################################################################## +# IOT devices configuration items # +# For IOT devices, configure below configuration items # +# according to the app note and remove the configuration items in section of # +# "non-IOT devices configuration items". # +############################################################################## + +# ASN URI v3 to be used by GTP AP modules that +# can support ASN URI v3 protocol. +# XT_SERVER_ROOT_URL_V3 = https://gtpma1.izatcloud.net:443/uds/v3 + +# 3: Wi-Fi APDB injection via Izat SDK. GTP server is not accessed +# for any GTP requests, instead notification is sent to Izat SDK. +# WiFi crowdsourcing module is disabled. +# 4: Wi-Fi APDB injection via Izat SDK. GTP server is not accessed +# for any GTP requests, instead notification is sent to Izat SDK. +# WiFi crowdsourcing module is active, also accessed via Izat SDK. +# GTP_AP_MODE = 4 + +# 1: MP cell features relies on GTP AP for either download or upload +# 0: MP cell features does not rely on GTP AP +# GTP_AP_NEEDED_BY_MP_CELL = 1 + +############################################################################## +# Configuration items applicable to all devices # +############################################################################## + +# Log verbosity control for most of the GTP WiFi system, including native and +# Java componenets +# OFF = 0, ERROR = 1, WARNING = 2, INFO = 3, DEBUG = 4, VERBOSE = 5, ALL = 100 +DEBUG_GLOBAL_LOG_LEVEL = 2 + +# this is used at the server side to distinguish uploads from different maker/model +# default "Qualcomm" +OEM_ID_IN_REQUEST_TO_SERVER = "Qualcomm" + +# this is used at the server side to distinguish uploads from different maker/model +# default "UNKNOWN" +MODEL_ID_IN_REQUEST_TO_SERVER = "UNKNOWN" + +############################################################################## +# Qualcomm Network Location Provider config # +############################################################################## + +# Accuracy Threshold for NLP position. Position exceeds thsi threshold will be filtered out. +# Default is 25000 meters. +LARGE_ACCURACY_THRESHOLD_TO_FILTER_NLP_POSITION = 25000 diff --git a/gpt-utils/Android.bp b/gpt-utils/Android.bp new file mode 100644 index 0000000..ca01f22 --- /dev/null +++ b/gpt-utils/Android.bp @@ -0,0 +1,41 @@ +// +// Copyright (C) 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. +// + + +cc_library { + name: "libgptutils.oneplus_holi", + vendor: true, + recovery_available: true, + shared_libs: [ + "libcutils", + "liblog", + "libz", + ], + cflags: [ + "-Wall", + "-Werror", + "-D_BSG_FRAMEWORK_KERNEL_HEADERS", + ], + srcs: [ + "gpt-utils.cpp", + "recovery-ufs-bsg.cpp", + ], + owner: "qti", + header_libs: [ + "generated_kernel_headers", + ], + export_include_dirs: ["."], +} diff --git a/gpt-utils/gpt-utils.cpp b/gpt-utils/gpt-utils.cpp new file mode 100644 index 0000000..58fc93a --- /dev/null +++ b/gpt-utils/gpt-utils.cpp @@ -0,0 +1,1519 @@ +/* + * Copyright (c) 2013,2016,2020 The Linux Foundation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of The Linux Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#define _LARGEFILE64_SOURCE /* enable lseek64() */ + +/****************************************************************************** + * INCLUDE SECTION + ******************************************************************************/ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifndef __STDC_FORMAT_MACROS +#define __STDC_FORMAT_MACROS +#endif +#include + + +#define LOG_TAG "gpt-utils" +#include +#include +#include "gpt-utils.h" +#include +#include + + +/****************************************************************************** + * DEFINE SECTION + ******************************************************************************/ +#define BLK_DEV_FILE "/dev/block/mmcblk0" +/* list the names of the backed-up partitions to be swapped */ +/* extension used for the backup partitions - tzbak, abootbak, etc. */ +#define BAK_PTN_NAME_EXT "bak" +#define XBL_PRIMARY "/dev/block/bootdevice/by-name/xbl" +#define XBL_BACKUP "/dev/block/bootdevice/by-name/xblbak" +#define XBL_AB_PRIMARY "/dev/block/bootdevice/by-name/xbl_a" +#define XBL_AB_SECONDARY "/dev/block/bootdevice/by-name/xbl_b" +/* GPT defines */ +#define MAX_LUNS 26 +//This will allow us to get the root lun path from the path to the partition. +//i.e: from /dev/block/sdaXXX get /dev/block/sda. The assumption here is that +//the boot critical luns lie between sda to sdz which is acceptable because +//only user added external disks,etc would lie beyond that limit which do not +//contain partitions that interest us here. +#define PATH_TRUNCATE_LOC (sizeof("/dev/block/sda") - 1) + +//From /dev/block/sda get just sda +#define LUN_NAME_START_LOC (sizeof("/dev/block/") - 1) +#define BOOT_LUN_A_ID 1 +#define BOOT_LUN_B_ID 2 +/****************************************************************************** + * MACROS + ******************************************************************************/ + + +#define GET_4_BYTES(ptr) ((uint32_t) *((uint8_t *)(ptr)) | \ + ((uint32_t) *((uint8_t *)(ptr) + 1) << 8) | \ + ((uint32_t) *((uint8_t *)(ptr) + 2) << 16) | \ + ((uint32_t) *((uint8_t *)(ptr) + 3) << 24)) + +#define GET_8_BYTES(ptr) ((uint64_t) *((uint8_t *)(ptr)) | \ + ((uint64_t) *((uint8_t *)(ptr) + 1) << 8) | \ + ((uint64_t) *((uint8_t *)(ptr) + 2) << 16) | \ + ((uint64_t) *((uint8_t *)(ptr) + 3) << 24) | \ + ((uint64_t) *((uint8_t *)(ptr) + 4) << 32) | \ + ((uint64_t) *((uint8_t *)(ptr) + 5) << 40) | \ + ((uint64_t) *((uint8_t *)(ptr) + 6) << 48) | \ + ((uint64_t) *((uint8_t *)(ptr) + 7) << 56)) + +#define PUT_4_BYTES(ptr, y) *((uint8_t *)(ptr)) = (y) & 0xff; \ + *((uint8_t *)(ptr) + 1) = ((y) >> 8) & 0xff; \ + *((uint8_t *)(ptr) + 2) = ((y) >> 16) & 0xff; \ + *((uint8_t *)(ptr) + 3) = ((y) >> 24) & 0xff; + +/****************************************************************************** + * TYPES + ******************************************************************************/ +using namespace std; +enum gpt_state { + GPT_OK = 0, + GPT_BAD_SIGNATURE, + GPT_BAD_CRC +}; +//List of LUN's containing boot critical images. +//Required in the case of UFS devices +struct update_data { + char lun_list[MAX_LUNS][PATH_MAX]; + uint32_t num_valid_entries; +}; + +int32_t set_boot_lun(char *sg_dev,uint8_t boot_lun_id); +/****************************************************************************** + * FUNCTIONS + ******************************************************************************/ +/** + * ========================================================================== + * + * \brief Read/Write len bytes from/to block dev + * + * \param [in] fd block dev file descriptor (returned from open) + * \param [in] rw RW flag: 0 - read, != 0 - write + * \param [in] offset block dev offset [bytes] - RW start position + * \param [in] buf Pointer to the buffer containing the data + * \param [in] len RW size in bytes. Buf must be at least that big + * + * \return 0 on success + * + * ========================================================================== + */ +static int blk_rw(int fd, int rw, int64_t offset, uint8_t *buf, unsigned len) +{ + int r; + + if (lseek64(fd, offset, SEEK_SET) < 0) { + fprintf(stderr, "block dev lseek64 %" PRIi64 " failed: %s\n", offset, + strerror(errno)); + return -1; + } + + if (rw) + r = write(fd, buf, len); + else + r = read(fd, buf, len); + + if (r < 0) + fprintf(stderr, "block dev %s failed: %s\n", rw ? "write" : "read", + strerror(errno)); + else + r = 0; + + return r; +} + + + +/** + * ========================================================================== + * + * \brief Search within GPT for partition entry with the given name + * or it's backup twin (name-bak). + * + * \param [in] ptn_name Partition name to seek + * \param [in] pentries_start Partition entries array start pointer + * \param [in] pentries_end Partition entries array end pointer + * \param [in] pentry_size Single partition entry size [bytes] + * + * \return First partition entry pointer that matches the name or NULL + * + * ========================================================================== + */ +static uint8_t *gpt_pentry_seek(const char *ptn_name, + const uint8_t *pentries_start, + const uint8_t *pentries_end, + uint32_t pentry_size) +{ + char *pentry_name; + unsigned len = strlen(ptn_name); + unsigned i; + char name8[MAX_GPT_NAME_SIZE] = {0}; // initialize with null + + for (pentry_name = (char *) (pentries_start + PARTITION_NAME_OFFSET); + pentry_name < (char *) pentries_end; + pentry_name += pentry_size) { + + /* Partition names in GPT are UTF-16 - ignoring UTF-16 2nd byte */ + for (i = 0; i < sizeof(name8) / 2; i++) + name8[i] = pentry_name[i * 2]; + name8[i] = '\0'; + + if (!strncmp(ptn_name, name8, len)) { + if (name8[len] == 0 || !strcmp(&name8[len], BAK_PTN_NAME_EXT)) + return (uint8_t *) (pentry_name - PARTITION_NAME_OFFSET); + } + } + + return NULL; +} + + + +/** + * ========================================================================== + * + * \brief Swaps boot chain in GPT partition entries array + * + * \param [in] pentries_start Partition entries array start + * \param [in] pentries_end Partition entries array end + * \param [in] pentry_size Single partition entry size + * + * \return 0 on success, 1 if no backup partitions found + * + * ========================================================================== + */ +static int gpt_boot_chain_swap(const uint8_t *pentries_start, + const uint8_t *pentries_end, + uint32_t pentry_size) +{ + const char ptn_swap_list[][MAX_GPT_NAME_SIZE] = { PTN_SWAP_LIST }; + + int backup_not_found = 1; + unsigned i; + + for (i = 0; i < ARRAY_SIZE(ptn_swap_list); i++) { + uint8_t *ptn_entry; + uint8_t *ptn_bak_entry; + uint8_t ptn_swap[PTN_ENTRY_SIZE]; + //Skip the xbl partition on UFS devices. That is handled + //seperately. + if (gpt_utils_is_ufs_device() && !strncmp(ptn_swap_list[i], + PTN_XBL, + strlen(PTN_XBL))) + continue; + + ptn_entry = gpt_pentry_seek(ptn_swap_list[i], pentries_start, + pentries_end, pentry_size); + if (ptn_entry == NULL) + continue; + + ptn_bak_entry = gpt_pentry_seek(ptn_swap_list[i], + ptn_entry + pentry_size, pentries_end, pentry_size); + if (ptn_bak_entry == NULL) { + fprintf(stderr, "'%s' partition not backup - skip safe update\n", + ptn_swap_list[i]); + continue; + } + + /* swap primary <-> backup partition entries */ + memcpy(ptn_swap, ptn_entry, PTN_ENTRY_SIZE); + memcpy(ptn_entry, ptn_bak_entry, PTN_ENTRY_SIZE); + memcpy(ptn_bak_entry, ptn_swap, PTN_ENTRY_SIZE); + backup_not_found = 0; + } + + return backup_not_found; +} + + + +/** + * ========================================================================== + * + * \brief Sets secondary GPT boot chain + * + * \param [in] fd block dev file descriptor + * \param [in] boot Boot chain to switch to + * + * \return 0 on success + * + * ========================================================================== + */ +static int gpt2_set_boot_chain(int fd, enum boot_chain boot) +{ + int64_t gpt2_header_offset; + uint64_t pentries_start_offset; + uint32_t gpt_header_size; + uint32_t pentry_size; + uint32_t pentries_array_size; + + uint8_t *gpt_header = NULL; + uint8_t *pentries = NULL; + uint32_t crc; + uint32_t crc_zero; + uint32_t blk_size = 0; + int r; + + + crc_zero = crc32(0L, Z_NULL, 0); + if (ioctl(fd, BLKSSZGET, &blk_size) != 0) { + fprintf(stderr, "Failed to get GPT device block size: %s\n", + strerror(errno)); + r = -1; + goto EXIT; + } + gpt_header = (uint8_t*)malloc(blk_size); + if (!gpt_header) { + fprintf(stderr, "Failed to allocate memory to hold GPT block\n"); + r = -1; + goto EXIT; + } + gpt2_header_offset = lseek64(fd, 0, SEEK_END) - blk_size; + if (gpt2_header_offset < 0) { + fprintf(stderr, "Getting secondary GPT header offset failed: %s\n", + strerror(errno)); + r = -1; + goto EXIT; + } + + /* Read primary GPT header from block dev */ + r = blk_rw(fd, 0, blk_size, gpt_header, blk_size); + + if (r) { + fprintf(stderr, "Failed to read primary GPT header from blk dev\n"); + goto EXIT; + } + pentries_start_offset = + GET_8_BYTES(gpt_header + PENTRIES_OFFSET) * blk_size; + pentry_size = GET_4_BYTES(gpt_header + PENTRY_SIZE_OFFSET); + pentries_array_size = + GET_4_BYTES(gpt_header + PARTITION_COUNT_OFFSET) * pentry_size; + + pentries = (uint8_t *) calloc(1, pentries_array_size); + if (pentries == NULL) { + fprintf(stderr, + "Failed to alloc memory for GPT partition entries array\n"); + r = -1; + goto EXIT; + } + /* Read primary GPT partititon entries array from block dev */ + r = blk_rw(fd, 0, pentries_start_offset, pentries, pentries_array_size); + if (r) + goto EXIT; + + crc = crc32(crc_zero, pentries, pentries_array_size); + if (GET_4_BYTES(gpt_header + PARTITION_CRC_OFFSET) != crc) { + fprintf(stderr, "Primary GPT partition entries array CRC invalid\n"); + r = -1; + goto EXIT; + } + + /* Read secondary GPT header from block dev */ + r = blk_rw(fd, 0, gpt2_header_offset, gpt_header, blk_size); + if (r) + goto EXIT; + + gpt_header_size = GET_4_BYTES(gpt_header + HEADER_SIZE_OFFSET); + pentries_start_offset = + GET_8_BYTES(gpt_header + PENTRIES_OFFSET) * blk_size; + + if (boot == BACKUP_BOOT) { + r = gpt_boot_chain_swap(pentries, pentries + pentries_array_size, + pentry_size); + if (r) + goto EXIT; + } + + crc = crc32(crc_zero, pentries, pentries_array_size); + PUT_4_BYTES(gpt_header + PARTITION_CRC_OFFSET, crc); + + /* header CRC is calculated with this field cleared */ + PUT_4_BYTES(gpt_header + HEADER_CRC_OFFSET, 0); + crc = crc32(crc_zero, gpt_header, gpt_header_size); + PUT_4_BYTES(gpt_header + HEADER_CRC_OFFSET, crc); + + /* Write the modified GPT header back to block dev */ + r = blk_rw(fd, 1, gpt2_header_offset, gpt_header, blk_size); + if (!r) + /* Write the modified GPT partititon entries array back to block dev */ + r = blk_rw(fd, 1, pentries_start_offset, pentries, + pentries_array_size); + +EXIT: + if(gpt_header) + free(gpt_header); + if (pentries) + free(pentries); + return r; +} + +/** + * ========================================================================== + * + * \brief Checks GPT state (header signature and CRC) + * + * \param [in] fd block dev file descriptor + * \param [in] gpt GPT header to be checked + * \param [out] state GPT header state + * + * \return 0 on success + * + * ========================================================================== + */ +static int gpt_get_state(int fd, enum gpt_instance gpt, enum gpt_state *state) +{ + int64_t gpt_header_offset; + uint32_t gpt_header_size; + uint8_t *gpt_header = NULL; + uint32_t crc; + uint32_t crc_zero; + uint32_t blk_size = 0; + + *state = GPT_OK; + + crc_zero = crc32(0L, Z_NULL, 0); + if (ioctl(fd, BLKSSZGET, &blk_size) != 0) { + fprintf(stderr, "Failed to get GPT device block size: %s\n", + strerror(errno)); + goto error; + } + gpt_header = (uint8_t*)malloc(blk_size); + if (!gpt_header) { + fprintf(stderr, "gpt_get_state:Failed to alloc memory for header\n"); + goto error; + } + if (gpt == PRIMARY_GPT) + gpt_header_offset = blk_size; + else { + gpt_header_offset = lseek64(fd, 0, SEEK_END) - blk_size; + if (gpt_header_offset < 0) { + fprintf(stderr, "gpt_get_state:Seek to end of GPT part fail\n"); + goto error; + } + } + + if (blk_rw(fd, 0, gpt_header_offset, gpt_header, blk_size)) { + fprintf(stderr, "gpt_get_state: blk_rw failed\n"); + goto error; + } + if (memcmp(gpt_header, GPT_SIGNATURE, sizeof(GPT_SIGNATURE))) + *state = GPT_BAD_SIGNATURE; + gpt_header_size = GET_4_BYTES(gpt_header + HEADER_SIZE_OFFSET); + + crc = GET_4_BYTES(gpt_header + HEADER_CRC_OFFSET); + /* header CRC is calculated with this field cleared */ + PUT_4_BYTES(gpt_header + HEADER_CRC_OFFSET, 0); + if (crc32(crc_zero, gpt_header, gpt_header_size) != crc) + *state = GPT_BAD_CRC; + free(gpt_header); + return 0; +error: + if (gpt_header) + free(gpt_header); + return -1; +} + + + +/** + * ========================================================================== + * + * \brief Sets GPT header state (used to corrupt and fix GPT signature) + * + * \param [in] fd block dev file descriptor + * \param [in] gpt GPT header to be checked + * \param [in] state GPT header state to set (GPT_OK or GPT_BAD_SIGNATURE) + * + * \return 0 on success + * + * ========================================================================== + */ +static int gpt_set_state(int fd, enum gpt_instance gpt, enum gpt_state state) +{ + int64_t gpt_header_offset; + uint32_t gpt_header_size; + uint8_t *gpt_header = NULL; + uint32_t crc; + uint32_t crc_zero; + uint32_t blk_size = 0; + + crc_zero = crc32(0L, Z_NULL, 0); + if (ioctl(fd, BLKSSZGET, &blk_size) != 0) { + fprintf(stderr, "Failed to get GPT device block size: %s\n", + strerror(errno)); + goto error; + } + gpt_header = (uint8_t*)malloc(blk_size); + if (!gpt_header) { + fprintf(stderr, "Failed to alloc memory for gpt header\n"); + goto error; + } + if (gpt == PRIMARY_GPT) + gpt_header_offset = blk_size; + else { + gpt_header_offset = lseek64(fd, 0, SEEK_END) - blk_size; + if (gpt_header_offset < 0) { + fprintf(stderr, "Failed to seek to end of GPT device\n"); + goto error; + } + } + if (blk_rw(fd, 0, gpt_header_offset, gpt_header, blk_size)) { + fprintf(stderr, "Failed to r/w gpt header\n"); + goto error; + } + if (state == GPT_OK) + memcpy(gpt_header, GPT_SIGNATURE, sizeof(GPT_SIGNATURE)); + else if (state == GPT_BAD_SIGNATURE) + *gpt_header = 0; + else { + fprintf(stderr, "gpt_set_state: Invalid state\n"); + goto error; + } + + gpt_header_size = GET_4_BYTES(gpt_header + HEADER_SIZE_OFFSET); + + /* header CRC is calculated with this field cleared */ + PUT_4_BYTES(gpt_header + HEADER_CRC_OFFSET, 0); + crc = crc32(crc_zero, gpt_header, gpt_header_size); + PUT_4_BYTES(gpt_header + HEADER_CRC_OFFSET, crc); + + if (blk_rw(fd, 1, gpt_header_offset, gpt_header, blk_size)) { + fprintf(stderr, "gpt_set_state: blk write failed\n"); + goto error; + } + return 0; +error: + if(gpt_header) + free(gpt_header); + return -1; +} + +int get_scsi_node_from_bootdevice(const char *bootdev_path, + char *sg_node_path, + size_t buf_size) +{ + char sg_dir_path[PATH_MAX] = {0}; + char real_path[PATH_MAX] = {0}; + DIR *scsi_dir = NULL; + struct dirent *de; + int node_found = 0; + if (!bootdev_path || !sg_node_path) { + fprintf(stderr, "%s : invalid argument\n", + __func__); + goto error; + } + if (readlink(bootdev_path, real_path, sizeof(real_path) - 1) < 0) { + fprintf(stderr, "failed to resolve link for %s(%s)\n", + bootdev_path, + strerror(errno)); + goto error; + } + if(strlen(real_path) < PATH_TRUNCATE_LOC + 1){ + fprintf(stderr, "Unrecognized path :%s:\n", + real_path); + goto error; + } + //For the safe side in case there are additional partitions on + //the XBL lun we truncate the name. + real_path[PATH_TRUNCATE_LOC] = '\0'; + if(strlen(real_path) < LUN_NAME_START_LOC + 1){ + fprintf(stderr, "Unrecognized truncated path :%s:\n", + real_path); + goto error; + } + //This will give us /dev/block/sdb/device/scsi_generic + //which contains a file sgY whose name gives us the path + //to /dev/sgY which we return + snprintf(sg_dir_path, sizeof(sg_dir_path) - 1, + "/sys/block/%s/device/scsi_generic", + &real_path[LUN_NAME_START_LOC]); + scsi_dir = opendir(sg_dir_path); + if (!scsi_dir) { + fprintf(stderr, "%s : Failed to open %s(%s)\n", + __func__, + sg_dir_path, + strerror(errno)); + goto error; + } + while((de = readdir(scsi_dir))) { + if (de->d_name[0] == '.') + continue; + else if (!strncmp(de->d_name, "sg", 2)) { + snprintf(sg_node_path, + buf_size -1, + "/dev/%s", + de->d_name); + fprintf(stderr, "%s:scsi generic node is :%s:\n", + __func__, + sg_node_path); + node_found = 1; + break; + } + } + if(!node_found) { + fprintf(stderr,"%s: Unable to locate scsi generic node\n", + __func__); + goto error; + } + closedir(scsi_dir); + return 0; +error: + if (scsi_dir) + closedir(scsi_dir); + return -1; +} + + + +//Swtich betwieen using either the primary or the backup +//boot LUN for boot. This is required since UFS boot partitions +//cannot have a backup GPT which is what we use for failsafe +//updates of the other 'critical' partitions. This function will +//not be invoked for emmc targets and on UFS targets is only required +//to be invoked for XBL. +// +//The algorithm to do this is as follows: +//- Find the real block device(eg: /dev/block/sdb) that corresponds +// to the /dev/block/bootdevice/by-name/xbl(bak) symlink +// +//- Once we have the block device 'node' name(sdb in the above example) +// use this node to to locate the scsi generic device that represents +// it by checking the file /sys/block/sdb/device/scsi_generic/sgY +// +//- Once we locate sgY we call the query ioctl on /dev/sgy to switch +//the boot lun to either LUNA or LUNB +int gpt_utils_set_xbl_boot_partition(enum boot_chain chain) +{ + struct stat st; + ///sys/block/sdX/device/scsi_generic/ + char sg_dev_node[PATH_MAX] = {0}; + uint8_t boot_lun_id = 0; + const char *boot_dev = NULL; + + if (chain == BACKUP_BOOT) { + boot_lun_id = BOOT_LUN_B_ID; + if (!stat(XBL_BACKUP, &st)) + boot_dev = XBL_BACKUP; + else if (!stat(XBL_AB_SECONDARY, &st)) + boot_dev = XBL_AB_SECONDARY; + else { + fprintf(stderr, "%s: Failed to locate secondary xbl\n", + __func__); + goto error; + } + } else if (chain == NORMAL_BOOT) { + boot_lun_id = BOOT_LUN_A_ID; + if (!stat(XBL_PRIMARY, &st)) + boot_dev = XBL_PRIMARY; + else if (!stat(XBL_AB_PRIMARY, &st)) + boot_dev = XBL_AB_PRIMARY; + else { + fprintf(stderr, "%s: Failed to locate primary xbl\n", + __func__); + goto error; + } + } else { + fprintf(stderr, "%s: Invalid boot chain id\n", __func__); + goto error; + } + //We need either both xbl and xblbak or both xbl_a and xbl_b to exist at + //the same time. If not the current configuration is invalid. + if((stat(XBL_PRIMARY, &st) || + stat(XBL_BACKUP, &st)) && + (stat(XBL_AB_PRIMARY, &st) || + stat(XBL_AB_SECONDARY, &st))) { + fprintf(stderr, "%s:primary/secondary XBL prt not found(%s)\n", + __func__, + strerror(errno)); + goto error; + } + fprintf(stderr, "%s: setting %s lun as boot lun\n", + __func__, + boot_dev); + if (get_scsi_node_from_bootdevice(boot_dev, + sg_dev_node, + sizeof(sg_dev_node))) { + fprintf(stderr, "%s: Failed to get scsi node path for xblbak\n", + __func__); + goto error; + } + /* set boot lun using /dev/sg or /dev/ufs-bsg* */ + if (set_boot_lun(sg_dev_node, boot_lun_id)) { + fprintf(stderr, "%s: Failed to set xblbak as boot partition\n", + __func__); + goto error; + } + return 0; +error: + return -1; +} + +int gpt_utils_is_ufs_device() +{ + char bootdevice[PROPERTY_VALUE_MAX] = {0}; + property_get("ro.boot.bootdevice", bootdevice, "N/A"); + if (strlen(bootdevice) < strlen(".ufshc") + 1) + return 0; + return (!strncmp(&bootdevice[strlen(bootdevice) - strlen(".ufshc")], + ".ufshc", + sizeof(".ufshc"))); +} +//dev_path is the path to the block device that contains the GPT image that +//needs to be updated. This would be the device which holds one or more critical +//boot partitions and their backups. In the case of EMMC this function would +//be invoked only once on /dev/block/mmcblk1 since it holds the GPT image +//containing all the partitions For UFS devices it could potentially be +//invoked multiple times, once for each LUN containing critical image(s) and +//their backups +int prepare_partitions(enum boot_update_stage stage, const char *dev_path) +{ + int r = 0; + int fd = -1; + int is_ufs = gpt_utils_is_ufs_device(); + enum gpt_state gpt_prim, gpt_second; + enum boot_update_stage internal_stage; + struct stat xbl_partition_stat; + + if (!dev_path) { + fprintf(stderr, "%s: Invalid dev_path\n", + __func__); + r = -1; + goto EXIT; + } + fd = open(dev_path, O_RDWR); + if (fd < 0) { + fprintf(stderr, "%s: Opening '%s' failed: %s\n", + __func__, + BLK_DEV_FILE, + strerror(errno)); + r = -1; + goto EXIT; + } + r = gpt_get_state(fd, PRIMARY_GPT, &gpt_prim) || + gpt_get_state(fd, SECONDARY_GPT, &gpt_second); + if (r) { + fprintf(stderr, "%s: Getting GPT headers state failed\n", + __func__); + goto EXIT; + } + + /* These 2 combinations are unexpected and unacceptable */ + if (gpt_prim == GPT_BAD_CRC || gpt_second == GPT_BAD_CRC) { + fprintf(stderr, "%s: GPT headers CRC corruption detected, aborting\n", + __func__); + r = -1; + goto EXIT; + } + if (gpt_prim == GPT_BAD_SIGNATURE && gpt_second == GPT_BAD_SIGNATURE) { + fprintf(stderr, "%s: Both GPT headers corrupted, aborting\n", + __func__); + r = -1; + goto EXIT; + } + + /* Check internal update stage according GPT headers' state */ + if (gpt_prim == GPT_OK && gpt_second == GPT_OK) + internal_stage = UPDATE_MAIN; + else if (gpt_prim == GPT_BAD_SIGNATURE) + internal_stage = UPDATE_BACKUP; + else if (gpt_second == GPT_BAD_SIGNATURE) + internal_stage = UPDATE_FINALIZE; + else { + fprintf(stderr, "%s: Abnormal GPTs state: primary (%d), secondary (%d), " + "aborting\n", __func__, gpt_prim, gpt_second); + r = -1; + goto EXIT; + } + + /* Stage already set - ready for update, exitting */ + if ((int) stage == (int) internal_stage - 1) + goto EXIT; + /* Unexpected stage given */ + if (stage != internal_stage) { + r = -1; + goto EXIT; + } + + switch (stage) { + case UPDATE_MAIN: + if (is_ufs) { + if(stat(XBL_PRIMARY, &xbl_partition_stat)|| + stat(XBL_BACKUP, &xbl_partition_stat)){ + //Non fatal error. Just means this target does not + //use XBL but relies on sbl whose update is handled + //by the normal methods. + fprintf(stderr, "%s: xbl part not found(%s).Assuming sbl in use\n", + __func__, + strerror(errno)); + } else { + //Switch the boot lun so that backup boot LUN is used + r = gpt_utils_set_xbl_boot_partition(BACKUP_BOOT); + if(r){ + fprintf(stderr, "%s: Failed to set xbl backup partition as boot\n", + __func__); + goto EXIT; + } + } + } + //Fix up the backup GPT table so that it actually points to + //the backup copy of the boot critical images + fprintf(stderr, "%s: Preparing for primary partition update\n", + __func__); + r = gpt2_set_boot_chain(fd, BACKUP_BOOT); + if (r) { + if (r < 0) + fprintf(stderr, + "%s: Setting secondary GPT to backup boot failed\n", + __func__); + /* No backup partitions - do not corrupt GPT, do not flag error */ + else + r = 0; + goto EXIT; + } + //corrupt the primary GPT so that the backup(which now points to + //the backup boot partitions is used) + r = gpt_set_state(fd, PRIMARY_GPT, GPT_BAD_SIGNATURE); + if (r) { + fprintf(stderr, "%s: Corrupting primary GPT header failed\n", + __func__); + goto EXIT; + } + break; + case UPDATE_BACKUP: + if (is_ufs) { + if(stat(XBL_PRIMARY, &xbl_partition_stat)|| + stat(XBL_BACKUP, &xbl_partition_stat)){ + //Non fatal error. Just means this target does not + //use XBL but relies on sbl whose update is handled + //by the normal methods. + fprintf(stderr, "%s: xbl part not found(%s).Assuming sbl in use\n", + __func__, + strerror(errno)); + } else { + //Switch the boot lun so that backup boot LUN is used + r = gpt_utils_set_xbl_boot_partition(NORMAL_BOOT); + if(r) { + fprintf(stderr, "%s: Failed to set xbl backup partition as boot\n", + __func__); + goto EXIT; + } + } + } + //Fix the primary GPT header so that is used + fprintf(stderr, "%s: Preparing for backup partition update\n", + __func__); + r = gpt_set_state(fd, PRIMARY_GPT, GPT_OK); + if (r) { + fprintf(stderr, "%s: Fixing primary GPT header failed\n", + __func__); + goto EXIT; + } + //Corrupt the scondary GPT header + r = gpt_set_state(fd, SECONDARY_GPT, GPT_BAD_SIGNATURE); + if (r) { + fprintf(stderr, "%s: Corrupting secondary GPT header failed\n", + __func__); + goto EXIT; + } + break; + case UPDATE_FINALIZE: + //Undo the changes we had made in the UPDATE_MAIN stage so that the + //primary/backup GPT headers once again point to the same set of + //partitions + fprintf(stderr, "%s: Finalizing partitions\n", + __func__); + r = gpt2_set_boot_chain(fd, NORMAL_BOOT); + if (r < 0) { + fprintf(stderr, "%s: Setting secondary GPT to normal boot failed\n", + __func__); + goto EXIT; + } + + r = gpt_set_state(fd, SECONDARY_GPT, GPT_OK); + if (r) { + fprintf(stderr, "%s: Fixing secondary GPT header failed\n", + __func__); + goto EXIT; + } + break; + default:; + } + +EXIT: + if (fd >= 0) { + fsync(fd); + close(fd); + } + return r; +} + +int add_lun_to_update_list(char *lun_path, struct update_data *dat) +{ + uint32_t i = 0; + struct stat st; + if (!lun_path || !dat){ + fprintf(stderr, "%s: Invalid data", + __func__); + return -1; + } + if (stat(lun_path, &st)) { + fprintf(stderr, "%s: Unable to access %s. Skipping adding to list", + __func__, + lun_path); + return -1; + } + if (dat->num_valid_entries == 0) { + fprintf(stderr, "%s: Copying %s into lun_list[%d]\n", + __func__, + lun_path, + i); + strlcpy(dat->lun_list[0], lun_path, + PATH_MAX * sizeof(char)); + dat->num_valid_entries = 1; + } else { + for (i = 0; (i < dat->num_valid_entries) && + (dat->num_valid_entries < MAX_LUNS - 1); i++) { + //Check if the current LUN is not already part + //of the lun list + if (!strncmp(lun_path,dat->lun_list[i], + strlen(dat->lun_list[i]))) { + //LUN already in list..Return + return 0; + } + } + fprintf(stderr, "%s: Copying %s into lun_list[%d]\n", + __func__, + lun_path, + dat->num_valid_entries); + //Add LUN path lun list + strlcpy(dat->lun_list[dat->num_valid_entries], lun_path, + PATH_MAX * sizeof(char)); + dat->num_valid_entries++; + } + return 0; +} + +int prepare_boot_update(enum boot_update_stage stage) +{ + int is_ufs = gpt_utils_is_ufs_device(); + struct stat ufs_dir_stat; + struct update_data data; + int rcode = 0; + uint32_t i = 0; + int is_error = 0; + const char ptn_swap_list[][MAX_GPT_NAME_SIZE] = { PTN_SWAP_LIST }; + //Holds /dev/block/bootdevice/by-name/*bak entry + char buf[PATH_MAX] = {0}; + //Holds the resolved path of the symlink stored in buf + char real_path[PATH_MAX] = {0}; + + if (!is_ufs) { + //emmc device. Just pass in path to mmcblk0 + return prepare_partitions(stage, BLK_DEV_FILE); + } else { + //Now we need to find the list of LUNs over + //which the boot critical images are spread + //and set them up for failsafe updates.To do + //this we find out where the symlinks for the + //each of the paths under + ///dev/block/bootdevice/by-name/PTN_SWAP_LIST + //actually point to. + fprintf(stderr, "%s: Running on a UFS device\n", + __func__); + memset(&data, '\0', sizeof(struct update_data)); + for (i=0; i < ARRAY_SIZE(ptn_swap_list); i++) { + //XBL on UFS does not follow the convention + //of being loaded based on well known GUID'S. + //We take care of switching the UFS boot LUN + //explicitly later on. + if (!strncmp(ptn_swap_list[i], + PTN_XBL, + strlen(PTN_XBL))) + continue; + snprintf(buf, sizeof(buf), + "%s/%sbak", + BOOT_DEV_DIR, + ptn_swap_list[i]); + if (stat(buf, &ufs_dir_stat)) { + continue; + } + if (readlink(buf, real_path, sizeof(real_path) - 1) < 0) + { + fprintf(stderr, "%s: readlink error. Skipping %s", + __func__, + strerror(errno)); + } else { + if(strlen(real_path) < PATH_TRUNCATE_LOC + 1){ + fprintf(stderr, "Unknown path.Skipping :%s:\n", + real_path); + } else { + real_path[PATH_TRUNCATE_LOC] = '\0'; + add_lun_to_update_list(real_path, &data); + } + } + memset(buf, '\0', sizeof(buf)); + memset(real_path, '\0', sizeof(real_path)); + } + for (i=0; i < data.num_valid_entries; i++) { + fprintf(stderr, "%s: Preparing %s for update stage %d\n", + __func__, + data.lun_list[i], + stage); + rcode = prepare_partitions(stage, data.lun_list[i]); + if (rcode != 0) + { + fprintf(stderr, "%s: Failed to prepare %s.Continuing..\n", + __func__, + data.lun_list[i]); + is_error = 1; + } + } + } + if (is_error) + return -1; + return 0; +} + +//Given a parttion name(eg: rpm) get the path to the block device that +//represents the GPT disk the partition resides on. In the case of emmc it +//would be the default emmc dev(/dev/block/mmcblk0). In the case of UFS we look +//through the /dev/block/bootdevice/by-name/ tree for partname, and resolve +//the path to the LUN from there. +static int get_dev_path_from_partition_name(const char *partname, + char *buf, + size_t buflen) +{ + struct stat st; + char path[PATH_MAX] = {0}; + if (!partname || !buf || buflen < ((PATH_TRUNCATE_LOC) + 1)) { + ALOGE("%s: Invalid argument", __func__); + goto error; + } + if (gpt_utils_is_ufs_device()) { + //Need to find the lun that holds partition partname + snprintf(path, sizeof(path), + "%s/%s", + BOOT_DEV_DIR, + partname); + if (stat(path, &st)) { + goto error; + } + if (readlink(path, buf, buflen) < 0) + { + goto error; + } else { + buf[PATH_TRUNCATE_LOC] = '\0'; + } + } else { + snprintf(buf, buflen, BLK_DEV_FILE); + } + return 0; + +error: + return -1; +} + +int gpt_utils_get_partition_map(vector& ptn_list, + map>& partition_map) { + char devpath[PATH_MAX] = {'\0'}; + map>::iterator it; + if (ptn_list.size() < 1) { + fprintf(stderr, "%s: Invalid ptn list\n", __func__); + goto error; + } + //Go through the passed in list + for (uint32_t i = 0; i < ptn_list.size(); i++) + { + //Key in the map is the path to the device that holds the + //partition + if (get_dev_path_from_partition_name(ptn_list[i].c_str(), + devpath, + sizeof(devpath))) { + //Not necessarily an error. The partition may just + //not be present. + continue; + } + string path = devpath; + it = partition_map.find(path); + if (it != partition_map.end()) { + it->second.push_back(ptn_list[i]); + } else { + vector str_vec; + str_vec.push_back( ptn_list[i]); + partition_map.insert(pair> + (path, str_vec)); + } + memset(devpath, '\0', sizeof(devpath)); + } + return 0; +error: + return -1; +} + +//Get the block size of the disk represented by decsriptor fd +static uint32_t gpt_get_block_size(int fd) +{ + uint32_t block_size = 0; + if (fd < 0) { + ALOGE("%s: invalid descriptor", + __func__); + goto error; + } + if (ioctl(fd, BLKSSZGET, &block_size) != 0) { + ALOGE("%s: Failed to get GPT dev block size : %s", + __func__, + strerror(errno)); + goto error; + } + return block_size; +error: + return 0; +} + +//Write the GPT header present in the passed in buffer back to the +//disk represented by fd +static int gpt_set_header(uint8_t *gpt_header, int fd, + enum gpt_instance instance) +{ + uint32_t block_size = 0; + off64_t gpt_header_offset = 0; + if (!gpt_header || fd < 0) { + ALOGE("%s: Invalid arguments", + __func__); + goto error; + } + block_size = gpt_get_block_size(fd); + if (block_size == 0) { + ALOGE("%s: Failed to get block size", __func__); + goto error; + } + if (instance == PRIMARY_GPT) + gpt_header_offset = block_size; + else + gpt_header_offset = lseek64(fd, 0, SEEK_END) - block_size; + if (gpt_header_offset <= 0) { + ALOGE("%s: Failed to get gpt header offset",__func__); + goto error; + } + if (blk_rw(fd, 1, gpt_header_offset, gpt_header, block_size)) { + ALOGE("%s: Failed to write back GPT header", __func__); + goto error; + } + return 0; +error: + return -1; +} + +//Read out the GPT header for the disk that contains the partition partname +static uint8_t* gpt_get_header(const char *partname, enum gpt_instance instance) +{ + uint8_t* hdr = NULL; + char devpath[PATH_MAX] = {0}; + int64_t hdr_offset = 0; + uint32_t block_size = 0; + int fd = -1; + if (!partname) { + ALOGE("%s: Invalid partition name", __func__); + goto error; + } + if (get_dev_path_from_partition_name(partname, devpath, sizeof(devpath)) + != 0) { + ALOGE("%s: Failed to resolve path for %s", + __func__, + partname); + goto error; + } + fd = open(devpath, O_RDWR); + if (fd < 0) { + ALOGE("%s: Failed to open %s : %s", + __func__, + devpath, + strerror(errno)); + goto error; + } + block_size = gpt_get_block_size(fd); + if (block_size == 0) + { + ALOGE("%s: Failed to get gpt block size for %s", + __func__, + partname); + goto error; + } + + hdr = (uint8_t*)malloc(block_size); + if (!hdr) { + ALOGE("%s: Failed to allocate memory for gpt header", + __func__); + } + if (instance == PRIMARY_GPT) + hdr_offset = block_size; + else { + hdr_offset = lseek64(fd, 0, SEEK_END) - block_size; + } + if (hdr_offset < 0) { + ALOGE("%s: Failed to get gpt header offset", + __func__); + goto error; + } + if (blk_rw(fd, 0, hdr_offset, hdr, block_size)) { + ALOGE("%s: Failed to read GPT header from device", + __func__); + goto error; + } + close(fd); + return hdr; +error: + if (fd >= 0) + close(fd); + if (hdr) + free(hdr); + return NULL; +} + +//Returns the partition entry array based on the +//passed in buffer which contains the gpt header. +//The fd here is the descriptor for the 'disk' which +//holds the partition +static uint8_t* gpt_get_pentry_arr(uint8_t *hdr, int fd) +{ + uint64_t pentries_start = 0; + uint32_t pentry_size = 0; + uint32_t block_size = 0; + uint32_t pentries_arr_size = 0; + uint8_t *pentry_arr = NULL; + int rc = 0; + if (!hdr) { + ALOGE("%s: Invalid header", __func__); + goto error; + } + if (fd < 0) { + ALOGE("%s: Invalid fd", __func__); + goto error; + } + block_size = gpt_get_block_size(fd); + if (!block_size) { + ALOGE("%s: Failed to get gpt block size for", + __func__); + goto error; + } + pentries_start = GET_8_BYTES(hdr + PENTRIES_OFFSET) * block_size; + pentry_size = GET_4_BYTES(hdr + PENTRY_SIZE_OFFSET); + pentries_arr_size = + GET_4_BYTES(hdr + PARTITION_COUNT_OFFSET) * pentry_size; + pentry_arr = (uint8_t*)calloc(1, pentries_arr_size); + if (!pentry_arr) { + ALOGE("%s: Failed to allocate memory for partition array", + __func__); + goto error; + } + rc = blk_rw(fd, 0, + pentries_start, + pentry_arr, + pentries_arr_size); + if (rc) { + ALOGE("%s: Failed to read partition entry array", + __func__); + goto error; + } + return pentry_arr; +error: + if (pentry_arr) + free(pentry_arr); + return NULL; +} + +static int gpt_set_pentry_arr(uint8_t *hdr, int fd, uint8_t* arr) +{ + uint32_t block_size = 0; + uint64_t pentries_start = 0; + uint32_t pentry_size = 0; + uint32_t pentries_arr_size = 0; + int rc = 0; + if (!hdr || fd < 0 || !arr) { + ALOGE("%s: Invalid argument", __func__); + goto error; + } + block_size = gpt_get_block_size(fd); + if (!block_size) { + ALOGE("%s: Failed to get gpt block size for", + __func__); + goto error; + } + pentries_start = GET_8_BYTES(hdr + PENTRIES_OFFSET) * block_size; + pentry_size = GET_4_BYTES(hdr + PENTRY_SIZE_OFFSET); + pentries_arr_size = + GET_4_BYTES(hdr + PARTITION_COUNT_OFFSET) * pentry_size; + rc = blk_rw(fd, 1, + pentries_start, + arr, + pentries_arr_size); + if (rc) { + ALOGE("%s: Failed to read partition entry array", + __func__); + goto error; + } + return 0; +error: + return -1; +} + + + +//Allocate a handle used by calls to the "gpt_disk" api's +struct gpt_disk * gpt_disk_alloc() +{ + struct gpt_disk *disk; + disk = (struct gpt_disk *)malloc(sizeof(struct gpt_disk)); + if (!disk) { + ALOGE("%s: Failed to allocate memory", __func__); + goto end; + } + memset(disk, 0, sizeof(struct gpt_disk)); +end: + return disk; +} + +//Free previously allocated/initialized handle +void gpt_disk_free(struct gpt_disk *disk) +{ + if (!disk) + return; + if (disk->hdr) + free(disk->hdr); + if (disk->hdr_bak) + free(disk->hdr_bak); + if (disk->pentry_arr) + free(disk->pentry_arr); + if (disk->pentry_arr_bak) + free(disk->pentry_arr_bak); + free(disk); + return; +} + +//fills up the passed in gpt_disk struct with information about the +//disk represented by path dev. Returns 0 on success and -1 on error. +int gpt_disk_get_disk_info(const char *dev, struct gpt_disk *dsk) +{ + + struct gpt_disk *disk = NULL; + int fd = -1; + uint32_t gpt_header_size = 0; + uint32_t crc_zero; + + crc_zero = crc32(0L, Z_NULL, 0); + if (!dsk || !dev) { + ALOGE("%s: Invalid arguments", __func__); + goto error; + } + disk = dsk; + disk->hdr = gpt_get_header(dev, PRIMARY_GPT); + if (!disk->hdr) { + ALOGE("%s: Failed to get primary header", __func__); + goto error; + } + gpt_header_size = GET_4_BYTES(disk->hdr + HEADER_SIZE_OFFSET); + disk->hdr_crc = crc32(crc_zero, disk->hdr, gpt_header_size); + disk->hdr_bak = gpt_get_header(dev, SECONDARY_GPT); + if (!disk->hdr_bak) { + ALOGE("%s: Failed to get backup header", __func__); + goto error; + } + disk->hdr_bak_crc = crc32(crc_zero, disk->hdr_bak, gpt_header_size); + + //Descriptor for the block device. We will use this for further + //modifications to the partition table + if (get_dev_path_from_partition_name(dev, + disk->devpath, + sizeof(disk->devpath)) != 0) { + ALOGE("%s: Failed to resolve path for %s", + __func__, + dev); + goto error; + } + fd = open(disk->devpath, O_RDWR); + if (fd < 0) { + ALOGE("%s: Failed to open %s: %s", + __func__, + disk->devpath, + strerror(errno)); + goto error; + } + disk->pentry_arr = gpt_get_pentry_arr(disk->hdr, fd); + if (!disk->pentry_arr) { + ALOGE("%s: Failed to obtain partition entry array", + __func__); + goto error; + } + disk->pentry_arr_bak = gpt_get_pentry_arr(disk->hdr_bak, fd); + if (!disk->pentry_arr_bak) { + ALOGE("%s: Failed to obtain backup partition entry array", + __func__); + goto error; + } + disk->pentry_size = GET_4_BYTES(disk->hdr + PENTRY_SIZE_OFFSET); + disk->pentry_arr_size = + GET_4_BYTES(disk->hdr + PARTITION_COUNT_OFFSET) * + disk->pentry_size; + disk->pentry_arr_crc = GET_4_BYTES(disk->hdr + PARTITION_CRC_OFFSET); + disk->pentry_arr_bak_crc = GET_4_BYTES(disk->hdr_bak + + PARTITION_CRC_OFFSET); + disk->block_size = gpt_get_block_size(fd); + close(fd); + disk->is_initialized = GPT_DISK_INIT_MAGIC; + return 0; +error: + if (fd >= 0) + close(fd); + return -1; +} + +//Get pointer to partition entry from a allocated gpt_disk structure +uint8_t* gpt_disk_get_pentry(struct gpt_disk *disk, + const char *partname, + enum gpt_instance instance) +{ + uint8_t *ptn_arr = NULL; + if (!disk || !partname || disk->is_initialized != GPT_DISK_INIT_MAGIC) { + ALOGE("%s: Invalid argument",__func__); + goto error; + } + ptn_arr = (instance == PRIMARY_GPT) ? + disk->pentry_arr : disk->pentry_arr_bak; + return (gpt_pentry_seek(partname, ptn_arr, + ptn_arr + disk->pentry_arr_size , + disk->pentry_size)); +error: + return NULL; +} + +//Update CRC values for the various components of the gpt_disk +//structure. This function should be called after any of the fields +//have been updated before the structure contents are written back to +//disk. +int gpt_disk_update_crc(struct gpt_disk *disk) +{ + uint32_t gpt_header_size = 0; + uint32_t crc_zero; + crc_zero = crc32(0L, Z_NULL, 0); + if (!disk || (disk->is_initialized != GPT_DISK_INIT_MAGIC)) { + ALOGE("%s: invalid argument", __func__); + goto error; + } + //Recalculate the CRC of the primary partiton array + disk->pentry_arr_crc = crc32(crc_zero, + disk->pentry_arr, + disk->pentry_arr_size); + //Recalculate the CRC of the backup partition array + disk->pentry_arr_bak_crc = crc32(crc_zero, + disk->pentry_arr_bak, + disk->pentry_arr_size); + //Update the partition CRC value in the primary GPT header + PUT_4_BYTES(disk->hdr + PARTITION_CRC_OFFSET, disk->pentry_arr_crc); + //Update the partition CRC value in the backup GPT header + PUT_4_BYTES(disk->hdr_bak + PARTITION_CRC_OFFSET, + disk->pentry_arr_bak_crc); + //Update the CRC value of the primary header + gpt_header_size = GET_4_BYTES(disk->hdr + HEADER_SIZE_OFFSET); + //Header CRC is calculated with its own CRC field set to 0 + PUT_4_BYTES(disk->hdr + HEADER_CRC_OFFSET, 0); + PUT_4_BYTES(disk->hdr_bak + HEADER_CRC_OFFSET, 0); + disk->hdr_crc = crc32(crc_zero, disk->hdr, gpt_header_size); + disk->hdr_bak_crc = crc32(crc_zero, disk->hdr_bak, gpt_header_size); + PUT_4_BYTES(disk->hdr + HEADER_CRC_OFFSET, disk->hdr_crc); + PUT_4_BYTES(disk->hdr_bak + HEADER_CRC_OFFSET, disk->hdr_bak_crc); + return 0; +error: + return -1; +} + +//Write the contents of struct gpt_disk back to the actual disk +int gpt_disk_commit(struct gpt_disk *disk) +{ + int fd = -1; + if (!disk || (disk->is_initialized != GPT_DISK_INIT_MAGIC)){ + ALOGE("%s: Invalid args", __func__); + goto error; + } + fd = open(disk->devpath, O_RDWR); + if (fd < 0) { + ALOGE("%s: Failed to open %s: %s", + __func__, + disk->devpath, + strerror(errno)); + goto error; + } + //Write the primary header + if(gpt_set_header(disk->hdr, fd, PRIMARY_GPT) != 0) { + ALOGE("%s: Failed to update primary GPT header", + __func__); + goto error; + } + //Write back the primary partition array + if (gpt_set_pentry_arr(disk->hdr, fd, disk->pentry_arr)) { + ALOGE("%s: Failed to write primary GPT partition arr", + __func__); + goto error; + } + //Write back the secondary header + if(gpt_set_header(disk->hdr_bak, fd, SECONDARY_GPT) != 0) { + ALOGE("%s: Failed to update secondary GPT header", + __func__); + goto error; + } + //Write back the secondary partition array + if (gpt_set_pentry_arr(disk->hdr_bak, fd, disk->pentry_arr_bak)) { + ALOGE("%s: Failed to write secondary GPT partition arr", + __func__); + goto error; + } + close(fd); + return 0; +error: + if (fd >= 0) + close(fd); + return -1; +} diff --git a/gpt-utils/gpt-utils.h b/gpt-utils/gpt-utils.h new file mode 100644 index 0000000..6c833c8 --- /dev/null +++ b/gpt-utils/gpt-utils.h @@ -0,0 +1,193 @@ +/* + * Copyright (c) 2013,2016,2020 The Linux Foundation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of The Linux Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __GPT_UTILS_H__ +#define __GPT_UTILS_H__ +#include +#include +#include +#ifdef __cplusplus +extern "C" { +#endif +#include +#include +/****************************************************************************** + * GPT HEADER DEFINES + ******************************************************************************/ +#define GPT_SIGNATURE "EFI PART" +#define HEADER_SIZE_OFFSET 12 +#define HEADER_CRC_OFFSET 16 +#define PRIMARY_HEADER_OFFSET 24 +#define BACKUP_HEADER_OFFSET 32 +#define FIRST_USABLE_LBA_OFFSET 40 +#define LAST_USABLE_LBA_OFFSET 48 +#define PENTRIES_OFFSET 72 +#define PARTITION_COUNT_OFFSET 80 +#define PENTRY_SIZE_OFFSET 84 +#define PARTITION_CRC_OFFSET 88 + +#define TYPE_GUID_OFFSET 0 +#define TYPE_GUID_SIZE 16 +#define PTN_ENTRY_SIZE 128 +#define UNIQUE_GUID_OFFSET 16 +#define FIRST_LBA_OFFSET 32 +#define LAST_LBA_OFFSET 40 +#define ATTRIBUTE_FLAG_OFFSET 48 +#define PARTITION_NAME_OFFSET 56 +#define MAX_GPT_NAME_SIZE 72 + +/****************************************************************************** + * AB RELATED DEFINES + ******************************************************************************/ +//Bit 48 onwords in the attribute field are the ones where we are allowed to +//store our AB attributes. +#define AB_FLAG_OFFSET (ATTRIBUTE_FLAG_OFFSET + 6) +#define GPT_DISK_INIT_MAGIC 0xABCD +#define AB_PARTITION_ATTR_SLOT_ACTIVE (0x1<<2) +#define AB_PARTITION_ATTR_BOOT_SUCCESSFUL (0x1<<6) +#define AB_PARTITION_ATTR_UNBOOTABLE (0x1<<7) +#define AB_SLOT_ACTIVE_VAL 0x3F +#define AB_SLOT_INACTIVE_VAL 0x0 +#define AB_SLOT_ACTIVE 1 +#define AB_SLOT_INACTIVE 0 +#define AB_SLOT_A_SUFFIX "_a" +#define AB_SLOT_B_SUFFIX "_b" +#define PTN_XBL "xbl" +#define PTN_XBL_CFG "xbl_config" +#define PTN_SWAP_LIST PTN_XBL, PTN_XBL_CFG, "sbl1", "rpm", "tz", "aboot", "abl", "hyp", "lksecapp", "keymaster", "cmnlib", "cmnlib32", "cmnlib64", "pmic", "apdp", "devcfg", "hosd", "keystore", "msadp", "mdtp", "mdtpsecapp", "dsp", "aop", "qupfw", "vbmeta", "dtbo", "imagefv", "ImageFv", "multiimgoem", "multiimgqti", "uefisecapp", "vm-bootsys", "shrm", "cpucp" +#define AB_PTN_LIST PTN_SWAP_LIST, "boot", "vendor_boot", "system", "vendor", "odm", "modem", "bluetooth" +#define BOOT_DEV_DIR "/dev/block/bootdevice/by-name" + +/****************************************************************************** + * HELPER MACROS + ******************************************************************************/ +#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) +/****************************************************************************** + * TYPES + ******************************************************************************/ +enum boot_update_stage { + UPDATE_MAIN = 1, + UPDATE_BACKUP, + UPDATE_FINALIZE +}; + +enum gpt_instance { + PRIMARY_GPT = 0, + SECONDARY_GPT +}; + +enum boot_chain { + NORMAL_BOOT = 0, + BACKUP_BOOT +}; + +struct gpt_disk { + //GPT primary header + uint8_t *hdr; + //primary header crc + uint32_t hdr_crc; + //GPT backup header + uint8_t *hdr_bak; + //backup header crc + uint32_t hdr_bak_crc; + //Partition entries array + uint8_t *pentry_arr; + //Partition entries array for backup table + uint8_t *pentry_arr_bak; + //Size of the pentry array + uint32_t pentry_arr_size; + //Size of each element in the pentry array + uint32_t pentry_size; + //CRC of the partition entry array + uint32_t pentry_arr_crc; + //CRC of the backup partition entry array + uint32_t pentry_arr_bak_crc; + //Path to block dev representing the disk + char devpath[PATH_MAX]; + //Block size of disk + uint32_t block_size; + uint32_t is_initialized; +}; + +/****************************************************************************** + * FUNCTION PROTOTYPES + ******************************************************************************/ +int prepare_boot_update(enum boot_update_stage stage); +//GPT disk methods +struct gpt_disk* gpt_disk_alloc(); +//Free previously allocated gpt_disk struct +void gpt_disk_free(struct gpt_disk *disk); +//Get the details of the disk holding the partition whose name +//is passed in via dev +int gpt_disk_get_disk_info(const char *dev, struct gpt_disk *disk); + +//Get pointer to partition entry from a allocated gpt_disk structure +uint8_t* gpt_disk_get_pentry(struct gpt_disk *disk, + const char *partname, + enum gpt_instance instance); + +//Update the crc fields of the modified disk structure +int gpt_disk_update_crc(struct gpt_disk *disk); + +//Write the contents of struct gpt_disk back to the actual disk +int gpt_disk_commit(struct gpt_disk *disk); + +//Return if the current device is UFS based or not +int gpt_utils_is_ufs_device(); + +//Swtich betwieen using either the primary or the backup +//boot LUN for boot. This is required since UFS boot partitions +//cannot have a backup GPT which is what we use for failsafe +//updates of the other 'critical' partitions. This function will +//not be invoked for emmc targets and on UFS targets is only required +//to be invoked for XBL. +// +//The algorithm to do this is as follows: +//- Find the real block device(eg: /dev/block/sdb) that corresponds +// to the /dev/block/bootdevice/by-name/xbl(bak) symlink +// +//- Once we have the block device 'node' name(sdb in the above example) +// use this node to to locate the scsi generic device that represents +// it by checking the file /sys/block/sdb/device/scsi_generic/sgY +// +//- Once we locate sgY we call the query ioctl on /dev/sgy to switch +//the boot lun to either LUNA or LUNB +int gpt_utils_set_xbl_boot_partition(enum boot_chain chain); + +//Given a vector of partition names as a input and a reference to a map, +//populate the map to indicate which physical disk each of the partitions +//sits on. The key in the map is the path to the block device where the +//partiton lies and the value is a vector of strings indicating which of +//the passed in partiton names sits on that device. +int gpt_utils_get_partition_map(std::vector& partition_list, + std::map>& partition_map); +#ifdef __cplusplus +} +#endif +#endif /* __GPT_UTILS_H__ */ diff --git a/gpt-utils/recovery-ufs-bsg.cpp b/gpt-utils/recovery-ufs-bsg.cpp new file mode 100644 index 0000000..4249aa6 --- /dev/null +++ b/gpt-utils/recovery-ufs-bsg.cpp @@ -0,0 +1,255 @@ +/* + * Copyright (c) 2020 The Linux Foundation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of The Linux Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + +#define LOG_TAG "recovery_ufs" + +#include "recovery-ufs-bsg.h" + +#ifndef _BSG_FRAMEWORK_KERNEL_HEADERS +#ifndef _GENERIC_KERNEL_HEADERS +#include +#include +#endif +#endif + +//Size of the buffer that needs to be passed to the UFS ioctl +#define UFS_ATTR_DATA_SIZE 32 + +#ifdef _BSG_FRAMEWORK_KERNEL_HEADERS +static int get_ufs_bsg_dev(void) +{ + DIR *dir; + struct dirent *ent; + int ret = -ENODEV; + + if ((dir = opendir ("/dev")) != NULL) { + /* read all the files and directories within directory */ + while ((ent = readdir(dir)) != NULL) { + if (!strcmp(ent->d_name, "ufs-bsg") || + !strcmp(ent->d_name, "ufs-bsg0")) { + snprintf(ufs_bsg_dev, FNAME_SZ, "/dev/%s", ent->d_name); + ret = 0; + break; + } + } + if (ret) + ALOGE("could not find the ufs-bsg dev\n"); + closedir (dir); + } else { + /* could not open directory */ + ALOGE("could not open /dev (error no: %d)\n", errno); + ret = -EINVAL; + } + + return ret; +} + +int ufs_bsg_dev_open(void) +{ + int ret; + if (!fd_ufs_bsg) { + fd_ufs_bsg = open(ufs_bsg_dev, O_RDWR); + ret = errno; + if (fd_ufs_bsg < 0) { + ALOGE("Unable to open %s (error no: %d)", + ufs_bsg_dev, errno); + fd_ufs_bsg = 0; + return ret; + } + } + return 0; +} + +void ufs_bsg_dev_close(void) +{ + if (fd_ufs_bsg) { + close(fd_ufs_bsg); + fd_ufs_bsg = 0; + } +} + +static int ufs_bsg_ioctl(int fd, struct ufs_bsg_request *req, + struct ufs_bsg_reply *rsp, __u8 *buf, __u32 buf_len, + enum bsg_ioctl_dir dir) +{ + int ret; + struct sg_io_v4 sg_io{}; + + sg_io.guard = 'Q'; + sg_io.protocol = BSG_PROTOCOL_SCSI; + sg_io.subprotocol = BSG_SUB_PROTOCOL_SCSI_TRANSPORT; + sg_io.request_len = sizeof(*req); + sg_io.request = (__u64)req; + sg_io.response = (__u64)rsp; + sg_io.max_response_len = sizeof(*rsp); + if (dir == BSG_IOCTL_DIR_FROM_DEV) { + sg_io.din_xfer_len = buf_len; + sg_io.din_xferp = (__u64)(buf); + } else { + sg_io.dout_xfer_len = buf_len; + sg_io.dout_xferp = (__u64)(buf); + } + + ret = ioctl(fd, SG_IO, &sg_io); + if (ret) + ALOGE("%s: Error from sg_io ioctl (return value: %d, error no: %d, reply result from LLD: %d\n)", + __func__, ret, errno, rsp->result); + + if (sg_io.info || rsp->result) { + ALOGE("%s: Error from sg_io info (check sg info: device_status: 0x%x, transport_status: 0x%x, driver_status: 0x%x, reply result from LLD: %d\n)", + __func__, sg_io.device_status, sg_io.transport_status, + sg_io.driver_status, rsp->result); + ret = -EAGAIN; + } + + return ret; +} + +static void compose_ufs_bsg_query_req(struct ufs_bsg_request *req, __u8 func, + __u8 opcode, __u8 idn, __u8 index, __u8 sel, + __u16 length) +{ + struct utp_upiu_header *hdr = &req->upiu_req.header; + struct utp_upiu_query *qr = &req->upiu_req.qr; + + req->msgcode = UTP_UPIU_QUERY_REQ; + hdr->dword_0 = DWORD(UTP_UPIU_QUERY_REQ, 0, 0, 0); + hdr->dword_1 = DWORD(0, func, 0, 0); + hdr->dword_2 = DWORD(0, 0, length >> 8, (__u8)length); + qr->opcode = opcode; + qr->idn = idn; + qr->index = index; + qr->selector = sel; + qr->length = htobe16(length); +} + + +static int ufs_query_attr(int fd, __u32 value, + __u8 func, __u8 opcode, __u8 idn, + __u8 index, __u8 sel) +{ + struct ufs_bsg_request req{}; + struct ufs_bsg_reply rsp{}; + enum bsg_ioctl_dir dir = BSG_IOCTL_DIR_FROM_DEV; + int ret = 0; + + if (opcode == QUERY_REQ_OP_WRITE_DESC || opcode == QUERY_REQ_OP_WRITE_ATTR) + dir = BSG_IOCTL_DIR_TO_DEV; + + req.upiu_req.qr.value = htobe32(value); + + compose_ufs_bsg_query_req(&req, func, opcode, idn, index, sel, 0); + + ret = ufs_bsg_ioctl(fd, &req, &rsp, 0, 0, dir); + if (ret) + ALOGE("%s: Error from ufs_bsg_ioctl (return value: %d, error no: %d\n)", + __func__, ret, errno); + + return ret; +} + +int32_t set_boot_lun(char *sg_dev __unused,uint8_t lun_id) +{ + int32_t ret; + __u32 boot_lun_id = lun_id; + + ret = get_ufs_bsg_dev(); + if (ret) + return ret; + ALOGV("Found the ufs bsg dev: %s\n", ufs_bsg_dev); + + ret = ufs_bsg_dev_open(); + if (ret) + return ret; + ALOGV("Opened ufs bsg dev: %s\n", ufs_bsg_dev); + + ret = ufs_query_attr(fd_ufs_bsg, boot_lun_id, QUERY_REQ_FUNC_STD_WRITE, + QUERY_REQ_OP_WRITE_ATTR, QUERY_ATTR_IDN_BOOT_LU_EN, 0, 0); + if (ret) { + ALOGE("Error requesting ufs attr idn %d via query ioctl (return value: %d, error no: %d)", + QUERY_ATTR_IDN_BOOT_LU_EN, ret, errno); + goto out; + } +out: + ufs_bsg_dev_close(); + return ret; +} +#endif + +#ifndef _BSG_FRAMEWORK_KERNEL_HEADERS +int32_t set_boot_lun(char *sg_dev, uint8_t boot_lun_id) +{ +#ifndef _GENERIC_KERNEL_HEADERS + int fd = -1; + int rc; + struct ufs_ioctl_query_data *data = NULL; + size_t ioctl_data_size = sizeof(struct ufs_ioctl_query_data) + UFS_ATTR_DATA_SIZE; + + data = (struct ufs_ioctl_query_data*)malloc(ioctl_data_size); + if (!data) { + fprintf(stderr, "%s: Failed to alloc query data struct\n", + __func__); + goto error; + } + memset(data, 0, ioctl_data_size); + data->opcode = UPIU_QUERY_OPCODE_WRITE_ATTR; + data->idn = QUERY_ATTR_IDN_BOOT_LU_EN; + data->buf_size = UFS_ATTR_DATA_SIZE; + data->buffer[0] = boot_lun_id; + fd = open(sg_dev, O_RDWR); + if (fd < 0) { + fprintf(stderr, "%s: Failed to open %s(%s)\n", + __func__, + sg_dev, + strerror(errno)); + goto error; + } + rc = ioctl(fd, UFS_IOCTL_QUERY, data); + if (rc) { + fprintf(stderr, "%s: UFS query ioctl failed(%s)\n", + __func__, + strerror(errno)); + goto error; + } + close(fd); + free(data); + return 0; +error: + if (fd >= 0) + close(fd); + if (data) + free(data); + return -1; +#else + return 0; +#endif +} +#endif + diff --git a/gpt-utils/recovery-ufs-bsg.h b/gpt-utils/recovery-ufs-bsg.h new file mode 100644 index 0000000..fafea5f --- /dev/null +++ b/gpt-utils/recovery-ufs-bsg.h @@ -0,0 +1,131 @@ +#ifndef __RECOVERY_UFS_BSG_H__ +#define __RECOVERY_UFS_BSG_H__ + +/* + * Copyright (c) 2020 The Linux Foundation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of The Linux Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef ANDROID +#include "cutils/log.h" +#endif + +#ifdef OE +#include +#define LOGI(...) syslog(LOG_NOTICE, "INFO:" __VA_ARGS__) +#define LOGV(...) syslog(LOG_NOTICE,"VERB:" __VA_ARGS__) +#define LOGD(...) syslog(LOG_DEBUG,"DBG:" __VA_ARGS__) +#define LOGE(...) syslog(LOG_ERR,"ERR:" __VA_ARGS__) +#define LOGW(...) syslog(LOG_WARNING,"WRN:" __VA_ARGS__) +#define strlcat(d,s,l) snprintf(d+strlen(d),l,"%s",s) +#endif + + + +#define FNAME_SZ 64 + +#define SG_IO 0x2285 + +#define DWORD(b3, b2, b1, b0) htobe32((b3 << 24) | (b2 << 16) |\ + (b1 << 8) | b0) + +/* UFS BSG device nodes */ +char ufs_bsg_dev[FNAME_SZ] = "/dev/ufs-bsg"; + +int fd_ufs_bsg; + +int32_t set_ufs_lun(uint8_t lun_id); + +#ifdef _BSG_FRAMEWORK_KERNEL_HEADERS +/* UPIU Transaction Codes */ +enum { + UTP_UPIU_NOP_OUT = 0x00, + UTP_UPIU_COMMAND = 0x01, + UTP_UPIU_DATA_OUT = 0x02, + UTP_UPIU_TASK_REQ = 0x04, + UTP_UPIU_QUERY_REQ = 0x16, +}; + +/* UPIU Query Function field */ +enum { + QUERY_REQ_FUNC_STD_READ = 0x01, + QUERY_REQ_FUNC_STD_WRITE = 0x81, +}; + +enum query_req_opcode { + QUERY_REQ_OP_READ_DESC = 0x1, + QUERY_REQ_OP_WRITE_DESC = 0x2, + QUERY_REQ_OP_READ_ATTR = 0x3, + QUERY_REQ_OP_WRITE_ATTR = 0x4, + QUERY_REQ_OP_READ_FLAG = 0x5, + QUERY_REQ_OP_SET_FLAG = 0x6, + QUERY_REQ_OP_CLEAR_FLAG = 0x7, + QUERY_REQ_OP_TOGGLE_FLAG = 0x8, +}; + +enum query_desc_idn { + QUERY_DESC_IDN_DEVICE = 0x0, + QUERY_DESC_IDN_UNIT = 0x2, + QUERY_DESC_IDN_GEOMETRY = 0x7, +}; + +enum query_desc_size { + QUERY_DESC_SIZE_DEVICE = 0x40, + QUERY_DESC_SIZE_GEOMETRY = 0x48, + QUERY_DESC_SIZE_UNIT = 0x23, +}; + +enum bsg_ioctl_dir { + BSG_IOCTL_DIR_TO_DEV, + BSG_IOCTL_DIR_FROM_DEV, +}; + +enum query_attr_idn { + QUERY_ATTR_IDN_BOOT_LU_EN = 0x00, + QUERY_ATTR_IDN_RESERVED = 0x01, + QUERY_ATTR_IDN_POWER_MODE = 0x02, + QUERY_ATTR_IDN_ACTIVE_ICC_LVL = 0x03, +}; +#endif /* _BSG_FRAMEWORK_KERNEL_HEADERS */ + +#endif /* __RECOVERY_UFS_BSG_H__ */ diff --git a/gpt-utils/sparse_crc32.cpp b/gpt-utils/sparse_crc32.cpp new file mode 100644 index 0000000..267322c --- /dev/null +++ b/gpt-utils/sparse_crc32.cpp @@ -0,0 +1,97 @@ +/*- + * COPYRIGHT (C) 1986 Gary S. Brown. You may use this program, or + * code or tables extracted from it, as desired without restriction. + */ + +/* + * First, the polynomial itself and its table of feedback terms. The + * polynomial is + * X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+X^0 + * + * Note that we take it "backwards" and put the highest-order term in + * the lowest-order bit. The X^32 term is "implied"; the LSB is the + * X^31 term, etc. The X^0 term (usually shown as "+1") results in + * the MSB being 1 + * + * Note that the usual hardware shift register implementation, which + * is what we're using (we're merely optimizing it by doing eight-bit + * chunks at a time) shifts bits into the lowest-order term. In our + * implementation, that means shifting towards the right. Why do we + * do it this way? Because the calculated CRC must be transmitted in + * order from highest-order term to lowest-order term. UARTs transmit + * characters in order from LSB to MSB. By storing the CRC this way + * we hand it to the UART in the order low-byte to high-byte; the UART + * sends each low-bit to hight-bit; and the result is transmission bit + * by bit from highest- to lowest-order term without requiring any bit + * shuffling on our part. Reception works similarly + * + * The feedback terms table consists of 256, 32-bit entries. Notes + * + * The table can be generated at runtime if desired; code to do so + * is shown later. It might not be obvious, but the feedback + * terms simply represent the results of eight shift/xor opera + * tions for all combinations of data and CRC register values + * + * The values must be right-shifted by eight bits by the "updcrc + * logic; the shift must be unsigned (bring in zeroes). On some + * hardware you could probably optimize the shift in assembler by + * using byte-swap instructions + * polynomial $edb88320 + * + * + * CRC32 code derived from work by Gary S. Brown. + */ + +/* Code taken from FreeBSD 8 */ +#include +#include + +static uint32_t crc32_tab[] = { + 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3, + 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, + 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, + 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5, + 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, + 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, + 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f, + 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, + 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, + 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, + 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, + 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, + 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, + 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, + 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, + 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, + 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, + 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, + 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7, + 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, + 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, + 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79, + 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, + 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, + 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, + 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, + 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, + 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, + 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, + 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, + 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf, + 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d}; + +/* + * A function that calculates the CRC-32 based on the table above is + * given below for documentation purposes. An equivalent implementation + * of this function that's actually used in the kernel can be found + * in sys/libkern.h, where it can be inlined. + */ + +uint32_t sparse_crc32(uint32_t crc_in, const void* buf, size_t size) { + const uint8_t* p = reinterpret_cast(buf); + uint32_t crc; + + crc = crc_in ^ ~0U; + while (size--) crc = crc32_tab[(crc ^ *p++) & 0xFF] ^ (crc >> 8); + return crc ^ ~0U; +} diff --git a/gpt-utils/sparse_crc32.h b/gpt-utils/sparse_crc32.h new file mode 100644 index 0000000..2702c4f --- /dev/null +++ b/gpt-utils/sparse_crc32.h @@ -0,0 +1,24 @@ +/* + * 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. + */ + +#ifndef _LIBSPARSE_SPARSE_CRC32_H_ +#define _LIBSPARSE_SPARSE_CRC32_H_ + +#include + +uint32_t sparse_crc32(uint32_t crc, const void* buf, size_t size); + +#endif diff --git a/init/Android.bp b/init/Android.bp deleted file mode 100644 index 6358f9e..0000000 --- a/init/Android.bp +++ /dev/null @@ -1,78 +0,0 @@ -// -// Copyright (C) 2022 The LineageOS Project -// SPDX-License-Identifier: Apache-2.0 -// - -cc_library_static { - name: "libinit_oplus", - recovery_available: true, - shared_libs: ["libbase"], - srcs: ["init_oplus.cpp"], -} - -prebuilt_etc { - name: "fstab.qcom", - src: "fstab.qcom", - vendor: true, - vendor_ramdisk_available: true, -} - -prebuilt_etc { - name: "init.oplus.rc", - src: "init.oplus.rc", - sub_dir: "init", - device_specific: true, -} - -prebuilt_etc { - name: "init.qcom.rc", - src: "init.qcom.rc", - sub_dir: "init/hw", - vendor: true, -} - -prebuilt_etc { - name: "init.qcom.recovery.rc", - src: "init.qcom.recovery.rc", - sub_dir: "init", - recovery: true, -} - -prebuilt_etc { - name: "init.target.rc", - src: "init.target.rc", - sub_dir: "init/hw", - vendor: true, -} - -prebuilt_etc { - name: "ueventd.oplus.rc", - filename: "ueventd.rc", - src: "ueventd.oplus.rc", - device_specific: true, -} - -prebuilt_etc { - name: "ueventd.qcom.rc", - filename: "ueventd.rc", - src: "ueventd.qcom.rc", - vendor: true, -} - -sh_binary { - name: "init.class_main.sh", - src: "init.class_main.sh", - vendor: true, -} - -sh_binary { - name: "init.qcom.early_boot.sh", - src: "init.qcom.early_boot.sh", - vendor: true, -} - -sh_binary { - name: "init.qcom.sh", - src: "init.qcom.sh", - vendor: true, -} diff --git a/init/init.oplus.rc b/init/init.oplus.rc deleted file mode 100644 index 5d5069f..0000000 --- a/init/init.oplus.rc +++ /dev/null @@ -1,61 +0,0 @@ -# -# Copyright (C) 2022-2024 The LineageOS Project -# -# SPDX-License-Identifier: Apache-2.0 -# - -on fs - # Update touchpanel firmware in case we ship newer firmware in /odm - write /proc/touchpanel/tp_fw_update 0 - -on early-boot - # SSR - write /sys/bus/msm_subsys/devices/subsys0/restart_level RELATED - write /sys/bus/msm_subsys/devices/subsys1/restart_level RELATED - write /sys/bus/msm_subsys/devices/subsys2/restart_level RELATED - write /sys/bus/msm_subsys/devices/subsys3/restart_level RELATED - write /sys/bus/msm_subsys/devices/subsys4/restart_level RELATED - write /sys/bus/msm_subsys/devices/subsys5/restart_level RELATED - write /sys/bus/msm_subsys/devices/subsys6/restart_level RELATED - write /sys/bus/msm_subsys/devices/subsys7/restart_level RELATED - write /sys/bus/msm_subsys/devices/subsys8/restart_level RELATED - write /sys/bus/msm_subsys/devices/subsys9/restart_level RELATED - write /sys/bus/msm_subsys/devices/subsys10/restart_level RELATED - write /sys/bus/msm_subsys/devices/subsys11/restart_level RELATED - -on boot - # Display - chown system system /dev/oplus_display - chown system system /sys/kernel/oplus_display/dimlayer_bl_en - chown system system /sys/kernel/oplus_display/dynamic_osc_clock - chown system system /sys/kernel/oplus_display/hbm - chown system system /sys/kernel/oplus_display/notify_fppress - chown system system /sys/kernel/oplus_display/panel_serial_number - - # Sensors - chown system system /sys/devices/platform/soc/soc:sensor_fb/adsp_notify - -on property:ro.boot.prjname=* - # Display - setprop ro.separate.soft ${ro.boot.prjname} - -on property:sys.boot_completed=1 - # Display - copy /vendor/etc/Oppo_QC_LTM_Commercial_SM8250_2020_01_15.pfm /mnt/vendor/persist/data/pfm/licenses/1000-1000-no-exp-1186717196.pfm - chmod 0600 /mnt/vendor/persist/data/pfm/licenses/1000-1000-no-exp-1186717196.pfm - chown system system /mnt/vendor/persist/data/pfm/licenses/1000-1000-no-exp-1186717196.pfm - # Enable PowerHAL hint processing - setprop vendor.powerhal.init 1 - -on property:vendor.post_boot.parsed=1 - # IRQ Tuning - # IRQ 243: msm_drm - # IRQ 240: kgsl_3d0_irq - write /proc/irq/243/smp_affinity_list 2 - write /proc/irq/240/smp_affinity_list 1 - -service oplus_sensor_fb /odm/bin/oplus_sensor_fb - user system - group system - class late_start - oneshot diff --git a/init/init_oplus.cpp b/init/init_oplus.cpp deleted file mode 100644 index d0855b8..0000000 --- a/init/init_oplus.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (C) 2022 The LineageOS Project - * SPDX-License-Identifier: Apache-2.0 - */ - -#include -#include - -#define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_ -#include - -using android::base::GetProperty; - -constexpr const char* BUILD_DESCRIPTION = "OnePlusN200TMO-user 12 SKQ1.210216.001 R.205d7fc_1-735f72 release-keys"; -constexpr const char* BUILD_FINGERPRINT = "OnePlus/OnePlusN200TMO/OnePlusN200TMO:12/SKQ1.210216.001/R.205d7fc_1-735f72:user/release-keys"; - -constexpr const char* RO_PROP_SOURCES[] = { - nullptr, - "bootimage.", - "odm.", - "odm_dlkm.", - "product.", - "system.", - "system_dlkm.", - "system_ext.", - "vendor.", - "vendor_dlkm.", -}; - -/* - * SetProperty does not allow updating read only properties and as a result - * does not work for our use case. Write "OverrideProperty" to do practically - * the same thing as "SetProperty" without this restriction. - */ -void OverrideProperty(const char* name, const char* value) { - size_t valuelen = strlen(value); - - prop_info* pi = (prop_info*)__system_property_find(name); - if (pi != nullptr) { - __system_property_update(pi, value, valuelen); - } else { - __system_property_add(name, strlen(name), value, valuelen); - } -} - -void OverrideCarrierProperties() { - const auto ro_prop_override = [](const char* source, const char* prop, const char* value, - bool product) { - std::string prop_name = "ro."; - - if (product) prop_name += "product."; - if (source != nullptr) prop_name += source; - if (!product) prop_name += "build."; - prop_name += prop; - - OverrideProperty(prop_name.c_str(), value); - }; - - for (const auto& source : RO_PROP_SOURCES) { - ro_prop_override(source, "model", "DE2118", true); - ro_prop_override(source, "device", "OnePlusN200TMO", true); - ro_prop_override(source, "fingerprint", BUILD_FINGERPRINT, false); - } - ro_prop_override(nullptr, "product", "OnePlusN200TMO", false); - ro_prop_override(nullptr, "description", BUILD_DESCRIPTION, false); -} - -/* - * Only for read-only properties. Properties that can be wrote to more - * than once should be set in a typical init script (e.g. init.oplus.hw.rc) - * after the original property has been set. - */ -void vendor_load_properties() { - //auto device = GetProperty("ro.product.product.device", ""); - auto prj_codename = GetProperty("ro.boot.project_codename", ""); - - // T-Mobile (dre8t) or Metro by T-Mobile (dre8m) - if (prj_codename != "dre9") - OverrideCarrierProperties(); -} diff --git a/init/ueventd.oplus.rc b/init/ueventd.oplus.rc deleted file mode 100644 index e059192..0000000 --- a/init/ueventd.oplus.rc +++ /dev/null @@ -1,17 +0,0 @@ -# -# Copyright (C) 2022-2023 The LineageOS Project -# -# SPDX-License-Identifier: Apache-2.0 -# - -# Charger -/sys/class/oplus_chg/* mmi_charging_enable 0660 system system - -# NFC -/dev/st21nfc 0660 nfc nfc - -# Reserve -/dev/block/bootdevice/by-name/oplusreserve1 0660 root system - -# WiFi -firmware_directories /odm/etc/wifi/ diff --git a/lineage.dependencies b/lineage.dependencies index ab2b304..18a16e7 100644 --- a/lineage.dependencies +++ b/lineage.dependencies @@ -1,7 +1,7 @@ [ { - "repository": "android_hardware_oplus", - "target_path": "hardware/oplus" + "repository": "android_hardware_oneplus", + "target_path": "hardware/oneplus" }, { "repository": "android_kernel_oneplus_sm4350", diff --git a/bliss_dre.mk b/lineage_dre.mk similarity index 63% rename from bliss_dre.mk rename to lineage_dre.mk index 1b3b1bf..9ac72af 100644 --- a/bliss_dre.mk +++ b/lineage_dre.mk @@ -1,4 +1,6 @@ -# Copyright (C) 2021-2023 The LineageOS Project +# +# Copyright (C) 2021-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 @@ -10,20 +12,19 @@ # 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. -# Copyright (C) 2019-Current A-Team Digital Solutions +# # Inherit from those products. Most specific first. $(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk) -TARGET_SUPPORTS_OMX_SERVICE := false $(call inherit-product, $(SRC_TARGET_DIR)/product/full_base_telephony.mk) # Inherit from dre device $(call inherit-product, device/oneplus/dre/device.mk) -# Inherit some common Bliss stuff. -$(call inherit-product, vendor/bliss/config/common_full_phone.mk) +# Inherit some common Lineage stuff. +$(call inherit-product, vendor/lineage/config/common_full_phone.mk) -PRODUCT_NAME := bliss_dre +PRODUCT_NAME := lineage_dre PRODUCT_DEVICE := dre PRODUCT_MANUFACTURER := OnePlus PRODUCT_BRAND := OnePlus @@ -32,9 +33,8 @@ PRODUCT_MODEL := DE2117 PRODUCT_GMS_CLIENTID_BASE := android-oneplus PRODUCT_BUILD_PROP_OVERRIDES += \ - BuildDesc="OnePlusN200-user 12 SKQ1.210216.001 R.205d809_1-735849 release-keys" \ - BuildFingerprint=OnePlus/OnePlusN200/OnePlusN200:12/SKQ1.210216.001/R.205d809_1-735849:user/release-keys \ - DeviceName=OnePlusN200 \ - DeviceProduct=OnePlusN200 \ - SystemDevice=OnePlusN200 \ - SystemName=OnePlusN200 + PRIVATE_BUILD_DESC="OnePlusN200-user 11 release-keys" \ + TARGET_DEVICE=OnePlusN200 \ + TARGET_PRODUCT=OnePlusN200 + +BUILD_FINGERPRINT := OnePlus/OnePlusN200/OnePlusN200:11/RKQ1.201217.002/2203021418:user/release-keys diff --git a/vintf/manifest.xml b/manifest.xml similarity index 69% rename from vintf/manifest.xml rename to manifest.xml index 88b9cc3..01e9d76 100644 --- a/vintf/manifest.xml +++ b/manifest.xml @@ -1,4 +1,5 @@ - + + android.hardware.audio hwbinder @@ -26,6 +27,15 @@ default + + android.hardware.bluetooth.audio + hwbinder + 2.0 + + IBluetoothAudioProvidersFactory + default + + android.hardware.camera.provider hwbinder @@ -59,11 +69,52 @@ default + + android.hardware.media.c2 + hwbinder + 1.0 + + IComponentStore + default + software + + + + android.hardware.media.omx + hwbinder + 1.0 + + IOmx + default + + + IOmxStore + default + + + + android.hardware.memtrack + hwbinder + 1.0 + + IMemtrack + default + + + + android.hardware.nfc + hwbinder + 1.2 + + INfc + default + + android.hardware.radio hwbinder - @1.5::IRadio/slot1 @1.2::ISap/slot1 + @1.5::IRadio/slot1 android.hardware.radio.config @@ -95,7 +146,7 @@ android.hardware.tetheroffload.control hwbinder - 1.1 + 1.0 IOffloadControl default @@ -137,6 +188,123 @@ com.qualcomm.qti.uceservice + + vendor.goodix3626.hardware.biometrics.fingerprint + hwbinder + 2.1 + + IGoodixFingerprintDaemon + default + + + + vendor.oneplus.engnative.engineer + hwbinder + 1.0 + + IEngineer + default + + + + vendor.oneplus.faceunlock.hal + hwbinder + 1.0 + + IFaceUnlockNativeService + default + + + + vendor.oneplus.fingerprint.extension + hwbinder + 1.0 + + IVendorFingerprintExtensions + default + + + + vendor.oneplus.hardware.CameraMDMHIDL + hwbinder + 1.0 + + IOnePlusCameraMDM + default + + + + vendor.oneplus.hardware.camera + hwbinder + 1.0 + + IOnePlusCameraProvider + default + + + + vendor.oneplus.hardware.display + hwbinder + 1.0 + + IOneplusDisplay + default + + + + vendor.oneplus.hardware.drmkey + hwbinder + 1.0 + + IOneplusDrmKey + default + + + + vendor.oneplus.hardware.hypnus + hwbinder + 1.0 + + IHypnusUtil + default + + + + vendor.oneplus.hardware.ifaa + hwbinder + 2.0 + + IOneplusIfaa + default + + + + vendor.oneplus.hardware.param + hwbinder + 1.0 + + IOneplusParam + default + + + + vendor.oneplus.hardware.rpmb + hwbinder + 1.0 + + IOneplusRpmb + default + + + + vendor.oneplus.hardware.wifi + hwbinder + 1.1 + + IOneplusWifi + default + + vendor.qti.data.factory hwbinder @@ -146,6 +314,15 @@ default + + vendor.qti.esepowermanager + hwbinder + 1.1 + + IEsePowerManager + default + + vendor.qti.hardware.alarm hwbinder @@ -217,8 +394,8 @@ IDataConnection slot1 - - + + vendor.qti.hardware.data.iwlan hwbinder 1.0 @@ -273,12 +450,12 @@ - vendor.qti.hardware.mwqemadapter + vendor.qti.hardware.perf hwbinder - 1.0 + 2.2 - IMwqemAdapter - MwqemAdapter + IPerf + default @@ -324,7 +501,7 @@ vendor.qti.hardware.radio.ims hwbinder - 1.7 + 1.6 IImsRadio imsradio0 @@ -339,6 +516,15 @@ deviceinfo + + vendor.qti.hardware.radio.lpa + hwbinder + 1.1 + + IUimLpa + UimLpa0 + + vendor.qti.hardware.radio.qcrilhook hwbinder @@ -360,7 +546,7 @@ vendor.qti.hardware.radio.qtiradio hwbinder - 2.7 + 2.5 IQtiRadio slot1 @@ -463,7 +649,6 @@ vendor.qti.ims.factory hwbinder 1.1 - 2.2 IImsFactory default @@ -478,4 +663,23 @@ imsrtpservice + + vendor.qti.qspmhal + hwbinder + 1.0 + + IQspmhal + default + + + + vendor.rongcard.hardware.eid + hwbinder + 1.0 + + IEidDevice + default + + @1.0::IEidDevice/default + diff --git a/modules.load b/modules.load index d2d3b49..715e234 100644 --- a/modules.load +++ b/modules.load @@ -1,33 +1,46 @@ -swr_dlkm.ko -native_dlkm.ko -wcd937x_slave_dlkm.ko -btpower.ko -q6_pdr_dlkm.ko -va_macro_dlkm.ko -q6_notifier_dlkm.ko -apr_dlkm.ko -snd_event_dlkm.ko -machine_dlkm.ko -wcd938x_dlkm.ko -wcd_core_dlkm.ko -wcd937x_dlkm.ko -adsp_loader_dlkm.ko -q6_dlkm.ko sia81xx_dlkm.ko -mbhc_dlkm.ko -swr_ctrl_dlkm.ko +va_macro_dlkm.ko rdbg.ko -camera.ko -pinctrl_lpi_dlkm.ko -rx_macro_dlkm.ko -wcd938x_slave_dlkm.ko -wcd9xxx_dlkm.ko -tx_macro_dlkm.ko -bt_fm_slim.ko wsa881x_analog_dlkm.ko -bolero_cdc_dlkm.ko -stub_dlkm.ko +bootloader_log.ko +native_dlkm.ko +swr_ctrl_dlkm.ko +sim_holder_detect.ko +adsp_loader_dlkm.ko +wcd938x_dlkm.ko +snd_event_dlkm.ko +swr_dlkm.ko +q6_dlkm.ko +gf_spi_driver.ko +machine_dlkm.ko +camera.ko +wcd937x_dlkm.ko +project_info.ko +wcd938x_slave_dlkm.ko +wcd_core_dlkm.ko platform_dlkm.ko +st21nfc.ko +op_rf_cable_monitor.ko +tri_key.ko +aw8697.ko +op_cmdline.ko +tx_macro_dlkm.ko +q6_notifier_dlkm.ko +mbhc_dlkm.ko +btpower.ko +apr_dlkm.ko +wcd9xxx_dlkm.ko +rx_macro_dlkm.ko +fpc1020_platform_tee.ko +bt_fm_slim.ko +wcd937x_slave_dlkm.ko +q6_pdr_dlkm.ko +aw87xxx_dlkm.ko +bolero_cdc_dlkm.ko +oem_aboard.ko +pinctrl_lpi_dlkm.ko +stub_dlkm.ko +fingerprint_detect.ko wlan.ko rmnet_core.ko rmnet_ctl.ko diff --git a/modules.load.recovery b/modules.load.recovery new file mode 100644 index 0000000..89371e7 --- /dev/null +++ b/modules.load.recovery @@ -0,0 +1,4 @@ +fingerprint_detect.ko +gf_spi_driver.ko +op_cmdline.ko +project_info.ko diff --git a/odm.prop b/odm.prop index 9953643..fab6c31 100644 --- a/odm.prop +++ b/odm.prop @@ -1,31 +1,2 @@ # Audio -persist.vendor.audio.fluence.voicerec=true -persist.vendor.audio_hal.dsp_bit_width_enforce_mode=24 -persist.vendor.audio.spv4.enable=false -persist.vendor.audio.vbat.enabled=false -ro.config.media_vol_steps=30 -ro.config.vc_call_vol_steps=9 -ro.vendor.audio.sdk.fluencetype=fluence ro.vendor.qti.va_odm.support=1 - -# Bluetooth -persist.vendor.bluetooth.modem_nv_support=true - -# Display -vendor.display.primary_mixer_stages=9 - -# Media -ro.odm.build.media_performance_class=30 -vendor.media.vpp.enable=0 -vendor.media.vpp.osie.enable=0 -vendor.media.vpp.sr.enable=0 - -# Radio -persist.vendor.radio.force_on_dc=true -persist.vendor.radio.stack_id_1=1 -ro.sys.reserve.integrate=true -ro.vendor.oplus.radio.project=2 -ro.vendor.oplus.radio.sar_regionmark=FCC - -# SVN -ro.build.version.svn=34 diff --git a/overlay-lineage/packages/apps/Settings/res/values/lineage_config.xml b/overlay-lineage/hardware/oneplus/doze/res/values/config.xml similarity index 78% rename from overlay-lineage/packages/apps/Settings/res/values/lineage_config.xml rename to overlay-lineage/hardware/oneplus/doze/res/values/config.xml index d212f66..1fcf008 100644 --- a/overlay-lineage/packages/apps/Settings/res/values/lineage_config.xml +++ b/overlay-lineage/hardware/oneplus/doze/res/values/config.xml @@ -1,8 +1,8 @@ - - true + + oneplus.sensor.op_motion_detect diff --git a/overlay-lineage/lineage-sdk/lineage/res/res/values/config.xml b/overlay-lineage/lineage-sdk/lineage/res/res/values/config.xml index 2734d6b..39b4468 100644 --- a/overlay-lineage/lineage-sdk/lineage/res/res/values/config.xml +++ b/overlay-lineage/lineage-sdk/lineage/res/res/values/config.xml @@ -2,23 +2,62 @@ true + 100 true + + 64 + + + 64 + true restart - restart_systemui restart_recovery restart_bootloader restart_fastboot - + diff --git a/overlay-lineage/lineage-sdk/packages/LineageSettingsProvider/res/values/defaults.xml b/overlay-lineage/lineage-sdk/packages/LineageSettingsProvider/res/values/defaults.xml index a8f6407..07152fc 100644 --- a/overlay-lineage/lineage-sdk/packages/LineageSettingsProvider/res/values/defaults.xml +++ b/overlay-lineage/lineage-sdk/packages/LineageSettingsProvider/res/values/defaults.xml @@ -1,13 +1,21 @@ true - - - 1 diff --git a/overlay-lineage/packages/apps/Aperture/app/src/main/res/values/config.xml b/overlay-lineage/packages/apps/Aperture/app/src/main/res/values/config.xml deleted file mode 100644 index 59b9d98..0000000 --- a/overlay-lineage/packages/apps/Aperture/app/src/main/res/values/config.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - true - - - - 4 - - diff --git a/overlay-lineage/packages/apps/Dialer/java/com/android/dialer/callrecord/res/values/config.xml b/overlay-lineage/packages/apps/Dialer/java/com/android/dialer/callrecord/res/values/config.xml new file mode 100644 index 0000000..da46c31 --- /dev/null +++ b/overlay-lineage/packages/apps/Dialer/java/com/android/dialer/callrecord/res/values/config.xml @@ -0,0 +1,20 @@ + + + + true + 4 + diff --git a/overlay/CarrierConfigResCommon/Android.bp b/overlay/CarrierConfigResCommon/Android.bp deleted file mode 100644 index 7963a53..0000000 --- a/overlay/CarrierConfigResCommon/Android.bp +++ /dev/null @@ -1,10 +0,0 @@ -// -// Copyright (C) 2022 The LineageOS Project -// SPDX-License-Identifier: Apache-2.0 -// - -runtime_resource_overlay { - name: "CarrierConfigResCommon", - aaptflags: ["--keep-raw-values"], - product_specific: true, -} diff --git a/overlay/CarrierConfigResCommon/AndroidManifest.xml b/overlay/CarrierConfigResCommon/AndroidManifest.xml deleted file mode 100644 index 5935539..0000000 --- a/overlay/CarrierConfigResCommon/AndroidManifest.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - diff --git a/overlay/CarrierConfigResCommon/res/xml/vendor.xml b/overlay/CarrierConfigResCommon/res/xml/vendor.xml deleted file mode 100644 index 76bd25e..0000000 --- a/overlay/CarrierConfigResCommon/res/xml/vendor.xml +++ /dev/null @@ -1,5397 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - com.example.android.locationattribution - - - - - - - - connected_mmwave:5GUWB,connected:5g,not_restricted:None,restricted:None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IPV4V6 - IPV4V6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IPV4V6 - IPV4V6 - - - - - - - - - - - - - - - - - - - IPV4V6 - IPV4V6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - IPV4V6 - IPV4V6 - - - - - - - - - - - - - - - - - - - - - - - China Mobile - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IPV4V6 - IPV4V6 - - - - - - China Unicom - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IPV4V6 - IPV4V6 - - - - - - - - - - - - - - - - - - - - - - - China Mobile - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IPV4V6 - IPV4V6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IPV4V6 - IPV4V6 - - - - - - - - - - - - IPV4V6 - IPV4V6 - - - - - - - - - - - - - - - - - - - - - - - - IPV4V6 - IPV4V6 - - - - - - China Unicom - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IPV4V6 - IPV4V6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IPV4V6 - IPV4V6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IPV4V6 - IPV4V6 - - - - - - China Unicom - - - - - - - - - - - - - - - - - - - - - - IPV4V6 - IPV4V6 - - - - - - - - - - - - - - - - - IPV4V6 - IPV4V6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IPV4V6 - IPV4V6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 31654501233 - - - 888 - - - 2211 - - - 2211 - - - 1210 - - - - - - - - - - - - - - - - - - - - - - - - - - - - +6483083210 - - - - - - - - - - OnePlus---[P]---[V] - - - - - - - - - - - - - - Verizon - - - 3 - - - - - - - - - - - - - - - OnePlus---[P]---[V] - - - - - - - - - Verizon - - 3 - - - - - - - - - - OnePlus---[P]---[V] - - :qandadiv - - - - - - - - - - - Verizon - - 3 - - - - - - - - - - - - - OnePlus---[P]---[V] - - - - - - - - - - - Verizon - - 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 121 - - - - - - - - - - - - - - - +447953222222 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 30047 - - vvm_type_omtp - - - - - - - - - - - - - - - - - - - +64284808808 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Mobile Vikings WiFi Calling - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +48790200200 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - WiFi Calling - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *100 - - - *555 - - - *289 - - - - - - - - - - - - - - - *123 - - - - - - - *80 - - - - - - - - - - - - - - - - - - - - - *100 - - - - - - - - - - - - - - - - - - - - - - *80 - - - *90 - - - - - - - - - - - - - - - - *80 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 600 - - - *77 - - - - - - - *86 - - - *86 - - - - - - - *86 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OPPO_[M]_[S] - - - - - - - - - - - - - - - - - OPPO_[M]_[S] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Telstra OPPO [M] [A] [S]_[D] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OPPO_[M]_[A]_[S]_[D] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OPPO_[M]_[S] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - com.google.android.ims - - - - - - - - - - OPPO_[M]_[S] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - com.google.android.ims - - - OPPO_[M]_[S] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - com.google.android.ims - OPPO_[M]_[S] - - - - - - - - - - - - - - - - - - - - - - - - - OPPO_[M]_[S] - - - - - - - - - - - - - - - - - - - - - - - - - - - - OPPO_[M]_[S] - com.google.android.ims - - - - - - - - - - - - - - - - - - - - - - - - - - - - com.google.android.ims - - OPPO [M] [S] - - - - - - - - - - - OPPO_[M]_[S] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OPPO_[M]_[S] - - - - - - - - - - - - OPPO_[M]_[S] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OPPO_[M]_[S] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OPPO_[M]_[S]_[D] - - - - - - - - - - - - - - - - - - - - - - OPPO_[M]_[S] - - - - - - - - - - - - - - - - - - - - - - - - - - OPPO_[M]_[S] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OPPO_[M]_[S] - - - - - - - - - - - - - - - - - - - - - - - - - - - - OPPO_[M]_[S] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OPPO_[M]_[S] - - - - - - - - - - - - - - - - --> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OPPO_[M]_[S]_[D] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OPPO_[M]_[S] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OPPO_[M]_[S]_[D] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OPPO_[M]_[S]_[D] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OPPO_[M]_[S]_[D] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OPPO_[M]_[S] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OPPO [M] - - - - - - - - - - [I]_OPPO_[M] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - TMO - - rscp - - - - - T-Mobile - - - - - - - - - - Sprint - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Verizon - - - 3 - - - - - - - - - - - - - - - - OnePlus---[P]---[V] - - - - - - - - - - - - - - - - - - - com.google.android.ims - - - - - - - - - - - - - - - - - diff --git a/overlay/FrameworksResTarget/Android.bp b/overlay/FrameworksResTarget/Android.bp deleted file mode 100644 index bf003fa..0000000 --- a/overlay/FrameworksResTarget/Android.bp +++ /dev/null @@ -1,9 +0,0 @@ -// -// Copyright (C) 2022 The LineageOS Project -// SPDX-License-Identifier: Apache-2.0 -// - -runtime_resource_overlay { - name: "FrameworksResTarget", - vendor: true, -} diff --git a/overlay/FrameworksResTarget/AndroidManifest.xml b/overlay/FrameworksResTarget/AndroidManifest.xml deleted file mode 100644 index b146007..0000000 --- a/overlay/FrameworksResTarget/AndroidManifest.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - diff --git a/overlay/FrameworksResTarget/res/values/config.xml b/overlay/FrameworksResTarget/res/values/config.xml deleted file mode 100644 index fd05997..0000000 --- a/overlay/FrameworksResTarget/res/values/config.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - true - - - true - - - true - - - vendor.qti.iwlan - - - vendor.qti.iwlan - - - vendor.qti.iwlan - - - - /system/framework/arm64/boot-framework.oat - /system/framework/arm/boot-framework.oat - /apex/com.android.art/javalib/arm64/boot-core-libart.oat - /apex/com.android.art/javalib/arm/boot-core-libart.oat - /apex/com.android.art/javalib/arm64/boot-okhttp.oat - /apex/com.android.art/javalib/arm/boot-okhttp.oat - /apex/com.android.art/javalib/arm64/boot.vdex - /apex/com.android.art/javalib/arm/boot.vdex - /apex/com.android.art/javalib/arm64/boot-core-libart.vdex - /apex/com.android.art/javalib/arm/boot-core-libart.vdex - /apex/com.android.art/javalib/arm64/boot-core-libart.art - /apex/com.android.art/javalib/arm/boot-core-libart.art - /system/framework/framework-res.apk - /system/lib64/libhwui.so - /system/lib/libhwui.so - /system/framework/boot-framework.vdex - /system/framework/oat/arm64/services.vdex - /system/framework/oat/arm64/services.odex - /apex/com.android.art/javalib/arm64/boot.oat - /apex/com.android.art/javalib/arm/boot.oat - /system/framework/telephony-common.jar - /system/framework/arm64/boot-telephony-common.art - /system/lib64/libsurfaceflinger.so - /apex/com.android.art/javalib/core-oj.jar - /apex/com.android.art/javalib/core-libart.jar - - - - - 0:2:15 - - - diff --git a/overlay/Launcher3ResTarget/Android.bp b/overlay/Launcher3ResTarget/Android.bp deleted file mode 100644 index f7d3242..0000000 --- a/overlay/Launcher3ResTarget/Android.bp +++ /dev/null @@ -1,9 +0,0 @@ -// -// Copyright (C) 2022 The LineageOS Project -// SPDX-License-Identifier: Apache-2.0 -// - -runtime_resource_overlay { - name: "Launcher3ResTarget", - product_specific: true, -} diff --git a/overlay/Launcher3ResTarget/AndroidManifest.xml b/overlay/Launcher3ResTarget/AndroidManifest.xml deleted file mode 100644 index 55363cc..0000000 --- a/overlay/Launcher3ResTarget/AndroidManifest.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - diff --git a/overlay/Launcher3ResTarget/res/values/config.xml b/overlay/Launcher3ResTarget/res/values/config.xml deleted file mode 100644 index c693b9e..0000000 --- a/overlay/Launcher3ResTarget/res/values/config.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - 11 - 15dp - - diff --git a/overlay/OPlusFrameworksResTarget/Android.bp b/overlay/OPlusFrameworksResTarget/Android.bp deleted file mode 100644 index 23cfce2..0000000 --- a/overlay/OPlusFrameworksResTarget/Android.bp +++ /dev/null @@ -1,9 +0,0 @@ -// -// Copyright (C) 2022 The LineageOS Project -// SPDX-License-Identifier: Apache-2.0 -// - -runtime_resource_overlay { - name: "OPlusFrameworksResTarget", - device_specific: true, -} diff --git a/overlay/OPlusFrameworksResTarget/AndroidManifest.xml b/overlay/OPlusFrameworksResTarget/AndroidManifest.xml deleted file mode 100644 index c7dd537..0000000 --- a/overlay/OPlusFrameworksResTarget/AndroidManifest.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - diff --git a/overlay/OPlusFrameworksResTarget/res/values-mcc310-mnc590/config.xml b/overlay/OPlusFrameworksResTarget/res/values-mcc310-mnc590/config.xml deleted file mode 100644 index 0e0533a..0000000 --- a/overlay/OPlusFrameworksResTarget/res/values-mcc310-mnc590/config.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - odopg1917 - - - http://uaprof.vtext.com/oneplus/odopg1917/odopg1917.xml - - diff --git a/overlay/OPlusFrameworksResTarget/res/values-mcc310-mnc890/config.xml b/overlay/OPlusFrameworksResTarget/res/values-mcc310-mnc890/config.xml deleted file mode 100644 index 0e0533a..0000000 --- a/overlay/OPlusFrameworksResTarget/res/values-mcc310-mnc890/config.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - odopg1917 - - - http://uaprof.vtext.com/oneplus/odopg1917/odopg1917.xml - - diff --git a/overlay/OPlusFrameworksResTarget/res/values-mcc311-mnc270/config.xml b/overlay/OPlusFrameworksResTarget/res/values-mcc311-mnc270/config.xml deleted file mode 100644 index 0e0533a..0000000 --- a/overlay/OPlusFrameworksResTarget/res/values-mcc311-mnc270/config.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - odopg1917 - - - http://uaprof.vtext.com/oneplus/odopg1917/odopg1917.xml - - diff --git a/overlay/OPlusFrameworksResTarget/res/values-mcc311-mnc480/config.xml b/overlay/OPlusFrameworksResTarget/res/values-mcc311-mnc480/config.xml deleted file mode 100644 index 0e0533a..0000000 --- a/overlay/OPlusFrameworksResTarget/res/values-mcc311-mnc480/config.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - odopg1917 - - - http://uaprof.vtext.com/oneplus/odopg1917/odopg1917.xml - - diff --git a/overlay/OPlusFrameworksResTarget/res/values-mcc312-mnc770/config.xml b/overlay/OPlusFrameworksResTarget/res/values-mcc312-mnc770/config.xml deleted file mode 100644 index 0e0533a..0000000 --- a/overlay/OPlusFrameworksResTarget/res/values-mcc312-mnc770/config.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - odopg1917 - - - http://uaprof.vtext.com/oneplus/odopg1917/odopg1917.xml - - diff --git a/overlay/OPlusSettingsProviderResTarget/Android.bp b/overlay/OPlusSettingsProviderResTarget/Android.bp deleted file mode 100644 index 73617c8..0000000 --- a/overlay/OPlusSettingsProviderResTarget/Android.bp +++ /dev/null @@ -1,9 +0,0 @@ -// -// Copyright (C) 2022 The LineageOS Project -// SPDX-License-Identifier: Apache-2.0 -// - -runtime_resource_overlay { - name: "OPlusSettingsProviderResTarget", - device_specific: true, -} diff --git a/overlay/OPlusSettingsProviderResTarget/AndroidManifest.xml b/overlay/OPlusSettingsProviderResTarget/AndroidManifest.xml deleted file mode 100644 index b1b461e..0000000 --- a/overlay/OPlusSettingsProviderResTarget/AndroidManifest.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - diff --git a/overlay/OPlusSettingsProviderResTarget/res/values/defaults.xml b/overlay/OPlusSettingsProviderResTarget/res/values/defaults.xml deleted file mode 100644 index 433faf6..0000000 --- a/overlay/OPlusSettingsProviderResTarget/res/values/defaults.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - OnePlus Nord N200 - - diff --git a/overlay/OPlusSettingsResTarget/Android.bp b/overlay/OPlusSettingsResTarget/Android.bp deleted file mode 100644 index 4ae65c5..0000000 --- a/overlay/OPlusSettingsResTarget/Android.bp +++ /dev/null @@ -1,9 +0,0 @@ -// -// Copyright (C) 2022 The LineageOS Project -// SPDX-License-Identifier: Apache-2.0 -// - -runtime_resource_overlay { - name: "OPlusSettingsResTarget", - device_specific: true, -} diff --git a/overlay/OPlusSettingsResTarget/AndroidManifest.xml b/overlay/OPlusSettingsResTarget/AndroidManifest.xml deleted file mode 100644 index 71dc0aa..0000000 --- a/overlay/OPlusSettingsResTarget/AndroidManifest.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - diff --git a/overlay/OPlusSettingsResTarget/res/values/config.xml b/overlay/OPlusSettingsResTarget/res/values/config.xml deleted file mode 100644 index 368b7b1..0000000 --- a/overlay/OPlusSettingsResTarget/res/values/config.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - 254 - - - true - - diff --git a/overlay/OPlusSystemUIResTarget/Android.bp b/overlay/OPlusSystemUIResTarget/Android.bp deleted file mode 100644 index 0b502e3..0000000 --- a/overlay/OPlusSystemUIResTarget/Android.bp +++ /dev/null @@ -1,9 +0,0 @@ -// -// Copyright (C) 2022 The LineageOS Project -// SPDX-License-Identifier: Apache-2.0 -// - -runtime_resource_overlay { - name: "OPlusSystemUIResTarget", - device_specific: true, -} diff --git a/overlay/OPlusSystemUIResTarget/AndroidManifest.xml b/overlay/OPlusSystemUIResTarget/AndroidManifest.xml deleted file mode 100644 index 4de1645..0000000 --- a/overlay/OPlusSystemUIResTarget/AndroidManifest.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - diff --git a/overlay/OplusDozeResTarget/Android.bp b/overlay/OplusDozeResTarget/Android.bp deleted file mode 100644 index 6410eb8..0000000 --- a/overlay/OplusDozeResTarget/Android.bp +++ /dev/null @@ -1,9 +0,0 @@ -// -// SPDX-FileCopyrightText: The LineageOS Project -// SPDX-License-Identifier: Apache-2.0 -// - -runtime_resource_overlay { - name: "OplusDozeResTarget", - system_ext_specific: true, -} diff --git a/overlay/OplusDozeResTarget/AndroidManifest.xml b/overlay/OplusDozeResTarget/AndroidManifest.xml deleted file mode 100644 index 84aae14..0000000 --- a/overlay/OplusDozeResTarget/AndroidManifest.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - diff --git a/overlay/OplusDozeResTarget/res/values/config.xml b/overlay/OplusDozeResTarget/res/values/config.xml deleted file mode 100644 index 50c067b..0000000 --- a/overlay/OplusDozeResTarget/res/values/config.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - android.sensor.tilt_detector - - - 0.0 - diff --git a/overlay/WifiResTarget/Android.bp b/overlay/WifiResTarget/Android.bp deleted file mode 100644 index dc78d25..0000000 --- a/overlay/WifiResTarget/Android.bp +++ /dev/null @@ -1,9 +0,0 @@ -// -// Copyright (C) 2022 The LineageOS Project -// SPDX-License-Identifier: Apache-2.0 -// - -runtime_resource_overlay { - name: "WifiResTarget", - vendor: true, -} diff --git a/overlay/WifiResTarget/AndroidManifest.xml b/overlay/WifiResTarget/AndroidManifest.xml deleted file mode 100644 index c635152..0000000 --- a/overlay/WifiResTarget/AndroidManifest.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - diff --git a/overlay/WifiResTarget/res/values/config.xml b/overlay/WifiResTarget/res/values/config.xml deleted file mode 100644 index d0d6fe1..0000000 --- a/overlay/WifiResTarget/res/values/config.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - true - - - true - - - true - - - true - - diff --git a/overlay/OPlusFrameworksResTarget/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml similarity index 60% rename from overlay/OPlusFrameworksResTarget/res/values/config.xml rename to overlay/frameworks/base/core/res/res/values/config.xml index 9a5f3f2..dc4bb81 100644 --- a/overlay/OPlusFrameworksResTarget/res/values/config.xml +++ b/overlay/frameworks/base/core/res/res/values/config.xml @@ -1,10 +1,22 @@ - - + + + + true @@ -365,20 +377,89 @@ --> true + + true + + + + true + true + + Android-Mms/2.0 + + + http://www.google.com/oha/rdf/ua-profile-kila.xml + + + + + + + wifi,1,1,1,-1,true + mobile,0,0,0,-1,true + mobile_mms,2,0,4,60000,true + mobile_supl,3,0,2,60000,true + mobile_dun,4,0,2,60000,true + mobile_hipri,5,0,3,60000,true + mobile_fota,10,0,2,60000,true + mobile_ims,11,0,2,60000,true + mobile_cbs,12,0,2,60000,true + bluetooth,7,7,2,-1,true + mobile_emergency,15,0,5,-1,true + ethernet,9,9,9,-1,true + + + + + + "1,1" + "0,1" + "7,1" + + + + true + + + true + true - - true - - - 6291456 - true - - true + - true + Note that doze dreams are not subject to the same start conditions as ordinary dreams. + Doze dreams will run whenever the power manager is in a dozing state. --> + com.android.systemui/com.android.systemui.doze.DozeService + + + true + + + true + + + false + + + true - false + true - - 0 + + 17 + + + + 5gnr:2097152,6291456,16777216,512000,2097152,8388608 + lte:2097152,4194304,8388608,262144,524288,1048576 + lte_ca:4096,6291456,12582912,4096,1048576,2097152 + umts:4094,87380,1220608,4096,16384,1220608 + hspa:4094,87380,1220608,4096,16384,1220608 + hsupa:4094,87380,1220608,4096,16384,1220608 + hsdpa:4094,87380,1220608,4096,16384,1220608 + hspap:4094,87380,1220608,4096,16384,1220608 + edge:4093,26280,35040,4096,16384,35040 + gprs:4092,8760,11680,4096,8760,11680 + evdo:4094,87380,524288,4096,16384,262144 + + + + true + + + true + + + true + + + vendor.qti.iwlan + + + vendor.qti.iwlan + + + vendor.qti.iwlan + + + true + + + false + + + true + + + true + + + true + + + 680 + + + 6 + + + 28 + + + 36 + + + 3700 @@ -429,13 +611,60 @@ 80 - - - 0 - 1 - 2 + + + 80 + + + "/system/framework/framework.jar" + "/system/framework/services.jar" + "/apex/com.android.art/javalib/core-oj.jar" + "/apex/com.android.art/javalib/core-libart.jar" + "/apex/com.android.media/javalib/updatable-media.jar" + "/system_ext/priv-app/SystemUI/SystemUI.apk" + "/system/bin/surfaceflinger" + + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + + 0:2:15 + + true @@ -453,69 +682,19 @@ 115 - - - "/system/framework/framework.jar" - "/system/framework/services.jar" - "/apex/com.android.art/javalib/core-oj.jar" - "/apex/com.android.art/javalib/core-libart.jar" - "/system_ext/priv-app/SystemUI/SystemUI.apk" - "/system/bin/surfaceflinger" - "/vendor/lib64/libcamxexternalformatutils.so" - "/vendor/lib64/libipebpsstriping.so" - "/vendor/lib64/libCB.so" - "/vendor/lib64/libgsl.so" - - - - false - - - true - - - true - - - - gsm,11 - utran,11 - cdma1x,1 - hrpd,3 - ehrpd,12 - eutran,11 - nfc,1 - - - - 18 - - - -1650 - - - false + + 0 + + 90 diff --git a/overlay/OPlusFrameworksResTarget/res/values/dimens.xml b/overlay/frameworks/base/core/res/res/values/dimens.xml similarity index 100% rename from overlay/OPlusFrameworksResTarget/res/values/dimens.xml rename to overlay/frameworks/base/core/res/res/values/dimens.xml diff --git a/overlay/OPlusFrameworksResTarget/res/xml/power_profile.xml b/overlay/frameworks/base/core/res/res/xml/power_profile.xml similarity index 96% rename from overlay/OPlusFrameworksResTarget/res/xml/power_profile.xml rename to overlay/frameworks/base/core/res/res/xml/power_profile.xml index 72240e1..9b3b9aa 100644 --- a/overlay/OPlusFrameworksResTarget/res/xml/power_profile.xml +++ b/overlay/frameworks/base/core/res/res/xml/power_profile.xml @@ -2,8 +2,8 @@ 0 35 - 100 - 330 + 100 + 330 25.6 1.7 1.8 @@ -37,7 +37,7 @@ 800 - 6 + 4 2 @@ -107,4 +107,4 @@ - + \ No newline at end of file diff --git a/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml new file mode 100644 index 0000000..1f32bc7 --- /dev/null +++ b/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml @@ -0,0 +1,26 @@ + + + + + + true + + + OnePlus Nord N200 + diff --git a/overlay/OPlusSystemUIResTarget/res/drawable/rounded_corner_bottom.xml b/overlay/frameworks/base/packages/SystemUI/res/drawable/rounded_corner_bottom.xml similarity index 100% rename from overlay/OPlusSystemUIResTarget/res/drawable/rounded_corner_bottom.xml rename to overlay/frameworks/base/packages/SystemUI/res/drawable/rounded_corner_bottom.xml diff --git a/overlay/OPlusSystemUIResTarget/res/drawable/rounded_corner_top.xml b/overlay/frameworks/base/packages/SystemUI/res/drawable/rounded_corner_top.xml similarity index 100% rename from overlay/OPlusSystemUIResTarget/res/drawable/rounded_corner_top.xml rename to overlay/frameworks/base/packages/SystemUI/res/drawable/rounded_corner_top.xml diff --git a/overlay/OPlusSystemUIResTarget/res/values-land/dimens.xml b/overlay/frameworks/base/packages/SystemUI/res/values-land/dimens.xml similarity index 100% rename from overlay/OPlusSystemUIResTarget/res/values-land/dimens.xml rename to overlay/frameworks/base/packages/SystemUI/res/values-land/dimens.xml diff --git a/overlay/frameworks/base/packages/SystemUI/res/values-sw372dp/dimens.xml b/overlay/frameworks/base/packages/SystemUI/res/values-sw372dp/dimens.xml new file mode 100644 index 0000000..1292c64 --- /dev/null +++ b/overlay/frameworks/base/packages/SystemUI/res/values-sw372dp/dimens.xml @@ -0,0 +1,20 @@ + + + + 4dp + diff --git a/overlay/OPlusSystemUIResTarget/res/values/config.xml b/overlay/frameworks/base/packages/SystemUI/res/values/config.xml similarity index 82% rename from overlay/OPlusSystemUIResTarget/res/values/config.xml rename to overlay/frameworks/base/packages/SystemUI/res/values/config.xml index 869244b..c0229b2 100644 --- a/overlay/OPlusSystemUIResTarget/res/values/config.xml +++ b/overlay/frameworks/base/packages/SystemUI/res/values/config.xml @@ -20,10 +20,9 @@ + + true + true - - - true diff --git a/overlay/OPlusSystemUIResTarget/res/values/dimens.xml b/overlay/frameworks/base/packages/SystemUI/res/values/dimens.xml similarity index 96% rename from overlay/OPlusSystemUIResTarget/res/values/dimens.xml rename to overlay/frameworks/base/packages/SystemUI/res/values/dimens.xml index dfadffc..f9dbb90 100644 --- a/overlay/OPlusSystemUIResTarget/res/values/dimens.xml +++ b/overlay/frameworks/base/packages/SystemUI/res/values/dimens.xml @@ -37,6 +37,8 @@ @dimen/status_bar_padding_end + 300px + 930px - - - 17dp diff --git a/overlay/packages/apps/CarrierConfig/res/xml/vendor.xml b/overlay/packages/apps/CarrierConfig/res/xml/vendor.xml new file mode 100644 index 0000000..16ceff4 --- /dev/null +++ b/overlay/packages/apps/CarrierConfig/res/xml/vendor.xml @@ -0,0 +1,2099 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IPV4V6 + IPV4V6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IPV4V6 + IPV4V6 + + + + + + + + + + + + + + + + + + + IPV4V6 + IPV4V6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + IPV4V6 + IPV4V6 + + + + + + + + + + + + + + + + + + + + + + + China Mobile + + + + + + + + + + + + + + + + + + + + + + + IPV4V6 + IPV4V6 + + + + + China Unicom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IPV4V6 + IPV4V6 + + + + + + + + + + + + + + + + + + + + + + + China Mobile + + + + + + + + + + + + + + + + + + + + + + + + IPV4V6 + IPV4V6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + IPV4V6 + IPV4V6 + + + + + + + + + IPV4V6 + IPV4V6 + + + + + + + + + + + + + + + + + + + + + IPV4V6 + IPV4V6 + + + + + China Unicom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IPV4V6 + IPV4V6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IPV4V6 + IPV4V6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IPV4V6 + IPV4V6 + + + + + China Unicom + + + + + + + + + + + + + + + + + IPV4V6 + IPV4V6 + + + + + + + + + + + + + + + + + IPV4V6 + IPV4V6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IPV4V6 + IPV4V6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/overlay/packages/apps/Settings/res/values/config.xml b/overlay/packages/apps/Settings/res/values/config.xml new file mode 100644 index 0000000..d99d769 --- /dev/null +++ b/overlay/packages/apps/Settings/res/values/config.xml @@ -0,0 +1,21 @@ + + + + + + + true + diff --git a/overlay/packages/apps/Settings/res/values/dimens.xml b/overlay/packages/apps/Settings/res/values/dimens.xml new file mode 100644 index 0000000..b2d1025 --- /dev/null +++ b/overlay/packages/apps/Settings/res/values/dimens.xml @@ -0,0 +1,21 @@ + + + + + + 8dp + 80% + diff --git a/overlay/packages/services/Telephony/res/values/config.xml b/overlay/packages/services/Telephony/res/values/config.xml new file mode 100644 index 0000000..7a10cc8 --- /dev/null +++ b/overlay/packages/services/Telephony/res/values/config.xml @@ -0,0 +1,36 @@ + + + + + + + + + true + + + true + + + org.codeaurora.ims + + + org.codeaurora.ims + diff --git a/product.prop b/product.prop deleted file mode 100644 index 3b1dffa..0000000 --- a/product.prop +++ /dev/null @@ -1,15 +0,0 @@ -# Audio -af.fast_track_multiplier=1 -audio.deep_buffer.media=true -audio.offload.min.duration.secs=30 -audio.offload.video=true -ro.af.client_heap_size_kbyte=7168 - -# eBPF -ro.bpf.kver_override=5.10.239 - -# GMS -ro.opa.device_model_id=ga-oplus-skill-os121-211011 - -# IMS -persist.vendor.rcs.singlereg.feature=1 diff --git a/proprietary-files.txt b/proprietary-files.txt index ad1ef77..4294973 100644 --- a/proprietary-files.txt +++ b/proprietary-files.txt @@ -1,19 +1,36 @@ ## All proprietary files from this list, unless pinned and noted otherwise, -## are from CPH2467_14.0.0.1320(EX01). +## are from OnePlus Nord N200 (11.0.6.0.DE17AA). OTAs to extract from can be found here: +## https://www.oneplus.com/support/softwareupgrade/details?code=PM1630638351161 -# ACDB - from DE2117_11.C.37 -odm/etc/acdbdata/Audio_Parameter_Version.txt|5ca7048cb6c53d0af7193467e2e12ddd19d71fa9 -odm/etc/acdbdata/Bluetooth_cal.acdb|3a151ca12899db9278c6795a9be0e03f4339367b -odm/etc/acdbdata/General_cal.acdb|220a94d8de69f19a2368c6db3ec2a4b533fb61df -odm/etc/acdbdata/Global_cal.acdb|8cca2bc30c44da7637e53b655670429cf823fb81 -odm/etc/acdbdata/Handset_cal.acdb|0f05e2babc16d8f6d9c29b57509029104c49fd87 -odm/etc/acdbdata/Hdmi_cal.acdb|fb11f4035f9d68e1fad73e68578768dfb5a005d9 -odm/etc/acdbdata/Headset_cal.acdb|a54f1e7964a582f6d657488eec8e29d51eb8679f -odm/etc/acdbdata/Speaker_cal.acdb|e11b2ac4b8710924cccc662e128c0ca84b549433 -vendor/etc/acdbdata/nn_ns_models/fai__2.0.0_0.1__3.0.0_0.0__eai_1.00.pmd|247fa73e3b22ac1d8b98a601a9583bfd1e113879 -vendor/etc/acdbdata/nn_ns_models/fai__2.2.0_0.1__3.0.0_0.0__eai_1.00.pmd|92885cbda7ebaba86f07cc6974ba9a17cfac78f8 -vendor/etc/acdbdata/nn_vad_models/fai_3.0.0_0.0_eai_1.00.pmd|b761b7b9d0b2e782ec557b0c333cc3efa924db4f -vendor/etc/acdbdata/adsp_avs_config.acdb;SYMLINK=odm/etc/acdbdata/adsp_avs_config.acdb|43fde53eaafb40ac88e5c7e2e17dd534f84d5efd +# ACDB +odm/etc/acdbdata/acdb_version +odm/etc/acdbdata/Bluetooth_cal.acdb +odm/etc/acdbdata/General_cal.acdb +odm/etc/acdbdata/Global_cal.acdb +odm/etc/acdbdata/Handset_cal.acdb +odm/etc/acdbdata/Hdmi_cal.acdb +odm/etc/acdbdata/Headset_cal.acdb +odm/etc/acdbdata/Speaker_cal.acdb +vendor/etc/acdbdata/adsp_avs_config.acdb +vendor/etc/acdbdata/MTP/holi-mtpsku1-snd-card/MTP_SKU1_Bluetooth_cal.acdb +vendor/etc/acdbdata/MTP/holi-mtpsku1-snd-card/MTP_SKU1_General_cal.acdb +vendor/etc/acdbdata/MTP/holi-mtpsku1-snd-card/MTP_SKU1_Global_cal.acdb +vendor/etc/acdbdata/MTP/holi-mtpsku1-snd-card/MTP_SKU1_Handset_cal.acdb +vendor/etc/acdbdata/MTP/holi-mtpsku1-snd-card/MTP_SKU1_Hdmi_cal.acdb +vendor/etc/acdbdata/MTP/holi-mtpsku1-snd-card/MTP_SKU1_Headset_cal.acdb +vendor/etc/acdbdata/MTP/holi-mtpsku1-snd-card/MTP_SKU1_Speaker_cal.acdb +vendor/etc/acdbdata/MTP/holi-mtpsku1-snd-card/MTP_SKU1_workspaceFile.qwsp +vendor/etc/acdbdata/MTP/MTP_Bluetooth_cal.acdb +vendor/etc/acdbdata/MTP/MTP_General_cal.acdb +vendor/etc/acdbdata/MTP/MTP_Global_cal.acdb +vendor/etc/acdbdata/MTP/MTP_Handset_cal.acdb +vendor/etc/acdbdata/MTP/MTP_Hdmi_cal.acdb +vendor/etc/acdbdata/MTP/MTP_Headset_cal.acdb +vendor/etc/acdbdata/MTP/MTP_Speaker_cal.acdb +vendor/etc/acdbdata/MTP/MTP_workspaceFile.qwsp +vendor/etc/acdbdata/nn_ns_models/fai__2.0.0_0.1__3.0.0_0.0__eai_1.00.pmd +vendor/etc/acdbdata/nn_ns_models/fai__2.2.0_0.1__3.0.0_0.0__eai_1.00.pmd +vendor/etc/acdbdata/nn_vad_models/fai_3.0.0_0.0_eai_1.00.pmd # ADSP vendor/bin/adsprpcd @@ -28,57 +45,43 @@ vendor/lib64/libloadalgo_stub.so vendor/lib64/vendor.qti.hardware.dsp@1.0.so # ADSP modules -odm/lib/rfsa/adsp/capi_v2_aptX_CLHDAD_Encoder.so -odm/lib/rfsa/adsp/libarcsoft_dualcam_refocus_skel.so -odm/lib/rfsa/adsp/libarcsoft_hdrplus_hvx_skel.so -odm/lib/rfsa/adsp/libarcsoft_portraitsn_hvx_skel.so -odm/lib/rfsa/adsp/libarcsoft_portraitSN_hvx_skel.so -odm/lib/rfsa/adsp/libcalculator_skel.so -odm/lib/rfsa/adsp/libhdr_skel.so -odm/lib/rfsa/adsp/libhvxFaceBeautyPre_skel.so -odm/lib/rfsa/adsp/libktvdrc.so -odm/lib/rfsa/adsp/libktveffect.so -odm/lib/rfsa/adsp/libktveq.so -odm/lib/rfsa/adsp/libktvns.so -odm/lib/rfsa/adsp/libktvpitchshift.so -odm/lib/rfsa/adsp/libktvreverb.so -odm/lib/rfsa/adsp/libktvvolume.so -odm/lib/rfsa/adsp/libsnpe_dsp_domains_skel.so -odm/lib/rfsa/adsp/libsnpe_dsp_skel.so -odm/lib/rfsa/adsp/libsnpe_dsp_v65_domains_v2_skel.so -odm/lib/rfsa/adsp/libsnpe_dsp_v66_domains_v2_skel.so -odm/lib/rfsa/adsp/libsnpe_dsp_v68_domains_v3_skel.so -odm/lib/rfsa/adsp/libvdblurless_4.6.10T_skel.so -odm/lib/rfsa/adsp/libvdblurless_skel.so -odm/lib/rfsa/adsp/libVDHexagonBlurless_v2_skel.so -odm/lib/rfsa/adsp/libvdsuperphoto_skel.so -vendor/lib/rfsa/adsp/bm2n06.bin -vendor/lib/rfsa/adsp/bm2n08.bin -vendor/lib/rfsa/adsp/bm2n12.bin -vendor/lib/rfsa/adsp/bm2n13.bin -vendor/lib/rfsa/adsp/bm2n14.bin -vendor/lib/rfsa/adsp/bm2n15.bin +vendor/lib/rfsa/adsp/capi_v2_aptX_CLHDAD_Encoder.so +vendor/lib/rfsa/adsp/capi_v2_aptX_CLHDAD_Speech_Decoder.so +vendor/lib/rfsa/adsp/dirac_resource.dar vendor/lib/rfsa/adsp/libadsp_jpege_skel.so vendor/lib/rfsa/adsp/libapps_mem_heap.so +vendor/lib/rfsa/adsp/libarcsoft_dualcam_refocus_skel.so vendor/lib/rfsa/adsp/libbitml_nsp_skel.so -vendor/lib/rfsa/adsp/libbitml_nsp_v2_skel.so +vendor/lib/rfsa/adsp/libcalculator_skel.so vendor/lib/rfsa/adsp/libcamera_nn_skel.so +vendor/lib/rfsa/adsp/libdirac-capiv2.so vendor/lib/rfsa/adsp/libdspCV_skel.so vendor/lib/rfsa/adsp/libdsp_streamer_binning.so vendor/lib/rfsa/adsp/libfastcvadsp.so vendor/lib/rfsa/adsp/libfastcvdsp_skel.so -vendor/lib/rfsa/adsp/libhdr_skel.so;MODULE_SUFFIX=_vendor +vendor/lib/rfsa/adsp/libhexagon_nn_skel.so +vendor/lib/rfsa/adsp/libhvxFaceBeautyPre_skel.so vendor/lib/rfsa/adsp/libmctfengine_skel.so vendor/lib/rfsa/adsp/libscveObjectSegmentation_skel.so vendor/lib/rfsa/adsp/libscveT2T_skel.so -vendor/lib/rfsa/adsp/libsns_device_mode_skel.so;SYMLINK=vendor/lib64/rfsa/adsp/libsns_device_mode_skel.so -vendor/lib/rfsa/adsp/libsns_low_lat_stream_skel.so;SYMLINK=vendor/lib64/rfsa/adsp/libsns_low_lat_stream_skel.so +vendor/lib/rfsa/adsp/libsnpe_dsp_v65_domains_v2_skel.so +vendor/lib/rfsa/adsp/libsnpe_dsp_v66_domains_v2_skel.so +vendor/lib/rfsa/adsp/libsnpe_dsp_v68_domains_v3_skel.so +vendor/lib/rfsa/adsp/libsns_device_mode_skel.so +vendor/lib/rfsa/adsp/libsns_low_lat_stream_skel.so +vendor/lib/rfsa/adsp/libvdblurless_4.6.10M_skel.so +vendor/lib/rfsa/adsp/libVDHexagonBlurless_v2_skel.so +vendor/lib64/rfsa/adsp/libsns_device_mode_skel.so +vendor/lib64/rfsa/adsp/libsns_low_lat_stream_skel.so -# ANT+ - from LE2125_14.0.0.720(EX01) -vendor/lib64/hw/com.dsi.ant@1.0-impl.so|ab5ad99ff48dac2cbe87e8c2847161bc302d1923 +# ANT+ +system_ext/lib/com.qualcomm.qti.ant@1.0.so +system_ext/lib64/com.qualcomm.qti.ant@1.0.so +vendor/lib64/hw/com.dsi.ant@1.0-impl.so # Audio libraries vendor/lib/soundfx/libasphere.so +vendor/lib/soundfx/libhaptic_effect.so vendor/lib/soundfx/libqcbassboost.so vendor/lib/soundfx/libqcreverb.so vendor/lib/soundfx/libqcvirt.so @@ -90,694 +93,349 @@ vendor/lib/libadiertac.so vendor/lib/libadm.so vendor/lib/libadsprpc.so vendor/lib/libaudcal.so -vendor/lib/libaudio_log_utils.so -vendor/lib/libaudioparsers.so -vendor/lib/libhdmipassthru.so vendor/lib/libqtigef.so vendor/lib64/libadsprpc.so -# Audio LVIMFS -odm/lib/lib_lvacfs.so -odm/lib/liblvacfs_wrapper.so +# Bluetooth +vendor/bin/hw/android.hardware.bluetooth@1.0-service-qti +vendor/etc/init/android.hardware.bluetooth@1.0-service-qti.rc +vendor/lib64/hw/android.hardware.bluetooth@1.0-impl-qti.so +vendor/lib64/libbtnv.so +vendor/lib64/libsoc_helper.so -# Audio LVIMFS - from DE2117_11.C.37 -odm/etc/lvimfs_params/LVACFS_Configuration.txt|024b3814ee9d35b2954c253ae1a25311d4724902 -odm/etc/lvimfs_params/LVIMFS_Calibration_2mic.dat|ae8a5e7c7ee1a036ebf19a93d0e4e6ad804421ed -odm/etc/lvimfs_params/LVIMFS_Parameter_ID1_MIC_Normal.txt|b3ba0a1e4330ab2c06ed91935775d73410f95e75 -odm/etc/lvimfs_params/LVIMFS_Parameter_ID2_MIC_APP1.txt|9c4c252c1d3b8e0d408436493e23456c5d1cac02 -odm/etc/lvimfs_params/LVIMFS_Parameter_ID3_MIC_APP2.txt|49a5e51773d6e914760bc63e120b8dccc665e3fc -odm/etc/lvimfs_params/LVIMFS_Parameter_ID4_MIC_Cam.txt|51755c45956e874f16cf32864997b37fb8118ae0 -odm/etc/lvimfs_params/LVIMFS_Parameter_ID5_MIC_Conference.txt|86cec8aefc159025764de1c973f355b18f28f99d -odm/etc/lvimfs_params/LVIMFS_Parameter_ID6_MIC_Fast.txt|79ae2eeca0a57e6bec03b89ad5643f59f4bb4c81 -odm/etc/lvimfs_params/LVIMFS_Parameter_ID7_MIC_Interview.txt|80da5955012e93d6c50678a42afc6338957ccd85 -odm/etc/lvimfs_params/LVIMFS_Parameter_ID8_MIC_Unprocess.txt|9f6c9bf974df7bb44569f0c907ffdf12278d9ff4 -odm/etc/lvimfs_params/LVIMFS_Parameter_ID9_MIC_Voice.txt|58d97be976f0af53c8e917bbc183c97e880c0ef6 -odm/etc/lvimfs_params/LVIMFS_Parameter_ID10_MIC_VR.txt|58d97be976f0af53c8e917bbc183c97e880c0ef6 -odm/etc/lvimfs_params/LVIMFS_Parameter_ID11_HE.txt|cf5511dfe48fa689b264f6acb243b472ab77f952 -odm/etc/lvimfs_params/LVIMFS_Parameter_ID12_HE_APP1.txt|9f20523bd98f93113e5638593bac65102d128cf5 -odm/etc/lvimfs_params/LVIMFS_Parameter_ID13_HE_APP2.txt|127971b4a69960ad59dae3a7fb2142d0a698ef15 -odm/etc/lvimfs_params/LVIMFS_Parameter_ID14_HE_Cam.txt|2801ccb5a315e020ae88d279517310c64ebd3555 -odm/etc/lvimfs_params/LVIMFS_Parameter_ID15_HE_Conference.txt|a9f52a40c3cc5d9e69e4e7d01cbe31848b6baa13 -odm/etc/lvimfs_params/LVIMFS_Parameter_ID16_HE_Fast.txt|80d912cc493fcdcae4df2812b86d7e600f44b9ce -odm/etc/lvimfs_params/LVIMFS_Parameter_ID17_HE_Interview.txt|77b9bcdd3d03341b8c789a1fc46686988d77d232 -odm/etc/lvimfs_params/LVIMFS_Parameter_ID18_HE_Unprocess.txt|ce88b46719190c7605ab3300d2d88121f7709c47 -odm/etc/lvimfs_params/LVIMFS_Parameter_ID19_HE_Voice.txt|cf5511dfe48fa689b264f6acb243b472ab77f952 -odm/etc/lvimfs_params/LVIMFS_Parameter_ID20_HE_VR.txt|17d73bdbe846e10e221f24ebf4266b070a9ba29d -odm/etc/lvimfs_params/LVIMFS_Parameter_ID21_USB_Normal.txt|d71c71902cd0690fc427c151351c063a61065f87 -odm/etc/lvimfs_params/LVIMFS_Parameter_ID22_USB_APP1.txt|4afab240183e10e0dfabe44c68d3f96286046233 -odm/etc/lvimfs_params/LVIMFS_Parameter_ID23_BT_Normal.txt|4afab240183e10e0dfabe44c68d3f96286046233 -odm/etc/lvimfs_params/LVIMFS_Parameter_ID24_BT_APP1.txt|d06f245cc25a70b556100af2d38638d0251feb0e -odm/lib/liblvimfs.so|51955be664d0d88044d212c9f1f96924eeb816f7 -odm/lib/liblvimfs_wrapper.so|d099f079a134900932db8fb2417b4e98e14ea05d|6a77ce24d662e1169e57951cb8a849ea75c8ee3d +# Bluetooth (A2DP) +vendor/lib/hw/audio.bluetooth_qti.default.so +vendor/lib/hw/vendor.qti.hardware.bluetooth_audio@2.0-impl.so +vendor/lib/hw/vendor.qti.hardware.bluetooth_sar@1.1-impl.so +vendor/lib/hw/vendor.qti.hardware.btconfigstore@1.0-impl.so +vendor/lib/hw/vendor.qti.hardware.btconfigstore@2.0-impl.so +vendor/lib/btaudio_offload_if.so +vendor/lib/libbluetooth_audio_session_qti.so +vendor/lib/vendor.qti.hardware.bluetooth_sar@1.0.so +vendor/lib/vendor.qti.hardware.bluetooth_sar@1.1.so +vendor/lib64/hw/audio.bluetooth_qti.default.so +vendor/lib64/hw/vendor.qti.hardware.bluetooth_audio@2.0-impl.so +vendor/lib64/hw/vendor.qti.hardware.bluetooth_sar@1.1-impl.so +vendor/lib64/hw/vendor.qti.hardware.btconfigstore@1.0-impl.so +vendor/lib64/hw/vendor.qti.hardware.btconfigstore@2.0-impl.so +vendor/lib64/btaudio_offload_if.so +vendor/lib64/libbluetooth_audio_session_qti.so +vendor/lib64/vendor.qti.hardware.bluetooth_sar@1.0.so +vendor/lib64/vendor.qti.hardware.bluetooth_sar@1.1.so -# Bluetooth - from LE2125_14.0.0.720(EX01) -vendor/bin/hw/android.hardware.bluetooth@1.0-service-qti|801aeb458a8d7fbbf56599981ae0c3a1bcf9d32a -vendor/etc/init/android.hardware.bluetooth@1.0-service-qti.rc|ebf60c17d1fbd737c6f6b043241e2ce18b3fcaa1 -vendor/lib/hw/android.hardware.bluetooth@1.0-impl-qti.so|ecaad4f00669bfd54f3a41c2a1186cfc5600edd6 -vendor/lib/libbtnv.so|e642f7a5d0bd59a8409209486b37658d5e757721 -vendor/lib/libsoc_helper.so|a80d8e4e2740cbfb369270581475b5921ced5077 -vendor/lib64/hw/android.hardware.bluetooth@1.0-impl-qti.so|65cbc32456db100cf4babc418424fa5b3d581e8e -vendor/lib64/libbtnv.so|84bbe7a0911631d0394f87e8739f719db866e025 -vendor/lib64/libsoc_helper.so|1a76b2e9151c6bf3a0576999b4ca9fa2e65da6ed +# Bluetooth (aptX) - from crosshatch - RQ1A.201205.003 +system_ext/lib64/libaptX_encoder.so|df1c89d7af1bb35808d5fe3496b04ba066c10cbc +system_ext/lib64/libaptXHD_encoder.so|e13fa70c97caaa24d061678bdee608eb8850a69e -# Bluetooth (A2DP) - from LE2125_14.0.0.720(EX01) -odm/lib/libbluetooth_audio_extend_factory_client.so|f387bd64693acd5192ebe767bb31fac78b34499d -odm/lib/vendor.oplus.hardware.bluetooth_audio_extend@2.1.so|7696aa748c0ae5bb4e200c100cc705f9fc2c7180 -odm/lib64/libbluetooth_audio_extend_factory_client.so|2363d96d4724c5c50c71944d3ab0faba46a660d3 -odm/lib64/vendor.oplus.hardware.bluetooth_audio_extend@2.1.so|68b29714755a494f7ceeea5302a8f3fa17423224 -vendor/lib/hw/vendor.qti.hardware.bluetooth_audio@2.0-impl.so|27316a4a9725437bdb1df0116f78fe73b6bbbf17 -vendor/lib/hw/vendor.qti.hardware.bluetooth_audio@2.1-impl.so|e0ac4deeda6ec32ebd929ded4fa144508393c000 -vendor/lib/hw/vendor.qti.hardware.bluetooth_sar@1.1-impl.so|2443909c9c1489a254a45bc47ca41dd5b935d08f -vendor/lib/hw/vendor.qti.hardware.btconfigstore@1.0-impl.so|4279398476187e4eaee25b17cc724bd300f79ce5 -vendor/lib/hw/vendor.qti.hardware.btconfigstore@2.0-impl.so|26924b6fcfa37beaf7a3cea26a088fef3dc78265 -vendor/lib/btaudio_offload_if.so|4423b604489b2127980ec0ca5c8a7d5998f73d97 -vendor/lib/libbluetooth_audio_session_qti.so|562967862bd5b19394c43c032796d77d9c5b2269 -vendor/lib/libbluetooth_audio_session_qti_2_1.so|c6069aa7798ae32adba88b7436b17bf44202ca75 -vendor/lib/vendor.qti.hardware.bluetooth_sar@1.0.so|33801f28c861c1c8556fa5daad26323e48a9c529 -vendor/lib/vendor.qti.hardware.bluetooth_sar@1.1.so|7b7135e7947366d0028410bdb5ffa57cdbe58ef6 -vendor/lib64/hw/vendor.qti.hardware.bluetooth_audio@2.0-impl.so|1def0ab01bb2647d7bece252211886cf6d3f74fd -vendor/lib64/hw/vendor.qti.hardware.bluetooth_audio@2.1-impl.so|4a8963453c6a41d1a0c65f2316da6814493e14c0 -vendor/lib64/hw/vendor.qti.hardware.bluetooth_sar@1.1-impl.so|dcdd0a74362b64e54278b5fb9cb903e9e91c0af3 -vendor/lib64/hw/vendor.qti.hardware.btconfigstore@1.0-impl.so|374f62d697c3a1af3293962e97c852c5d1f87e57 -vendor/lib64/hw/vendor.qti.hardware.btconfigstore@2.0-impl.so|4b26be5a786078ba7176233d4c0957f55ff65952 -vendor/lib64/btaudio_offload_if.so|95aea246c9dc2583b0cc37648f8515249a3aa9cb -vendor/lib64/libbluetooth_audio_session_qti.so|0023b876ea15948911954abcc3840b8503d4e847 -vendor/lib64/libbluetooth_audio_session_qti_2_1.so|934500aa31fa1d88f72ce29f62f1370d1d7fca4c -vendor/lib64/vendor.qti.hardware.bluetooth_sar@1.0.so|6b49865f15b9f2ae1f049623018db08a0bdbc03a -vendor/lib64/vendor.qti.hardware.bluetooth_sar@1.1.so|16af46f837b2b617dcf146ac478d08ea1a9800d1 - -# Camera - from DE2117_11.C.37 -odm/etc/camera/asd/class.dlc|0303c404d43f8aca151551cdf779fabb55738a84 -odm/etc/camera/asd/detect.dlc|9a8c7dfa78b6cf8bc9f116f234b47c4384f1500a -odm/etc/camera/ashdr/ncf_pack.ncf|1758fb709a0375c754c2e6f3a34c8093538956f7 -odm/etc/camera/cfr_bin/CFR_OPlus_EF017_UW_snapshot.bin|d76b20f42c9e030ec72ac81ed50777f5589b5242 -odm/etc/camera/config/camera_unit_config|40d2ce3b1ad40d4a6eaa24f9daa37daff1884725 -odm/etc/camera/config/hi846|6fe70e0489e84fdb9a794927df636e79f65cd910 -odm/etc/camera/config/imx471|357c1cb5579e3a9dc22b54388afac9bdfe5af558 -odm/etc/camera/config/odin_jk_ov02b10_macro|322636383a66e6eb59df7b10c8e805d3c02d9d19 -odm/etc/camera/config/odin_qt_ov13b10_rear|c89a509d6e4e869cd45268be62ab817b73d295d3 -odm/etc/camera/config/odin_qt_ov48b_wide|f5f7537c53da190bae87944704add252c30cc3dd -odm/etc/camera/config/odin_qt_s5kgm1st_wide|3738d77ba11a859035ae3c1bc95ca9a1037f4d04 -odm/etc/camera/config/odin_st_gc02k0_macro|c60c35a0886dc821fc393827ba7ea46b44d00f15 -odm/etc/camera/config/odin_st_hi846_uw|25cc387a125701bd76f3918be1382fdda1446d58 -odm/etc/camera/config/odin_tsp_ov8856_front|dbf1b8ad5bf996a3aafead8ac918fbfaa998dc58 -odm/etc/camera/config/oplus_camera_algo_switch_config|996fc6fca856b21a4eda4d36cb32561f06d115ff -odm/etc/camera/config/oplus_camera_aps_config|2dbb65f8387d1c83884bab3637b7f022bae7de55 -odm/etc/camera/config/oplus_camera_config|b7a0eb6ed6f3a2abc2ccecfbdee84da20694bc68 -odm/etc/camera/config/sy_imx471|0f07d3deafe817c02675126d1ee3208259287970 -odm/etc/camera/config/video_beauty_default_config|ef6dc95f6b8b21f356a866fb6b8b584ac2fb970c -odm/etc/camera/darksight/darksight_main.bin|050f73f28e0e1484acb5b9011272c98046b510ae -odm/etc/camera/darksight/darksight_ultrawide.bin|2d499ca8aaf85da9815f32c0daee5bc7caf0356a -odm/etc/camera/fb_model/000.png|219637b27bdfc08b7d4c9acf2c8041620f6e9e45 -odm/etc/camera/fb_model/000_pre.bin|a326a9639d8308b9a3ec0468bc1921bf812d8364 -odm/etc/camera/fb_model/001.png|d22ad35754e5e05cdffa2e8a0f6fca275e5af63d -odm/etc/camera/fb_model/001_pre.bin|7dd534cca54c618f2f2e9a038df046a4eea2905c -odm/etc/camera/fb_model/002.png|13196abcb75957573a035e958dfab8fa0f3d1ae6 -odm/etc/camera/fb_model/002_pre.bin|b5c1d444277c7118da8d180c1cc17f94fae81a16 -odm/etc/camera/fb_model/003.png|86c7a2fc0bf77c84d58e7f7cf30447e0211cf5aa -odm/etc/camera/fb_model/003_pre.bin|294811387d49cb984c0f6466605878dfc8d4d0cd -odm/etc/camera/fb_model/010.png|ec62f4c7f3fba7eb6a423432027a3ebfa1c90901 -odm/etc/camera/fb_model/010_pre.bin|8df840a6b39923bf796e85befe72a21d102416e8 -odm/etc/camera/fb_model/011.png|1ef2813100faab4dc11ac669fdac9a6bbc2c20c5 -odm/etc/camera/fb_model/011_pre.bin|03a62483d995aa83f244f136622f32713b34231d -odm/etc/camera/fb_model/012.png|9c4d770b074a34d1176fefc991d039fd51b7d9d3 -odm/etc/camera/fb_model/012_pre.bin|ea67b9a8ec4d6bec989ccb773a094742ad32d726 -odm/etc/camera/fb_model/013.png|6275f7ddd84ad2f71c440a927fa4a8a2a42753d0 -odm/etc/camera/fb_model/100.png|b38d0917b6e4acfb415bf0926b355c6f1587f537 -odm/etc/camera/fb_model/100_pre.bin|8b40743976abeb6ccc5f5d6237b8081e60a52945 -odm/etc/camera/fb_model/101.png|466a0528afb45118a7dbc5fb79ea41e771743482 -odm/etc/camera/fb_model/101_pre.bin|52c17c16722c297ee936d743719028bf390dbbd7 -odm/etc/camera/fb_model/102.png|2853a8373ac086ee439f8a2e2e72f3f044ebd666 -odm/etc/camera/fb_model/102_pre.bin|2f24d6c50e59b037ea7e42384372204d9458cf9b -odm/etc/camera/fb_model/103.png|7a88cdd65ad5452f775e122772db43febd59d263 -odm/etc/camera/fb_model/103_pre.bin|1283c04d3e16de10c74733b7de709070f3838e1b -odm/etc/camera/fb_model/110.png|95ca7a519d69fa0804be0f30720a52c9588115b3 -odm/etc/camera/fb_model/110_pre.bin|eacfffc01f68693dfc19a47e76949a127532e57e -odm/etc/camera/fb_model/111.png|3257f1110964eb2cbbb572a50c6c5ca96355552f -odm/etc/camera/fb_model/111_pre.bin|afcbc5d7aaa3f57311ba85f618edcf7951b7254c -odm/etc/camera/fb_model/112.png|29f0fb7ef51953b9c810d6266d847148af3257fb -odm/etc/camera/fb_model/112_pre.bin|e53300cfd6c3fbcab37a34ee450e9df84313bce7 -odm/etc/camera/fb_model/113.png|6275f7ddd84ad2f71c440a927fa4a8a2a42753d0 -odm/etc/camera/fb_model/200.png|0de6587e38322d11718d392fa14328bcca139964 -odm/etc/camera/fb_model/200_pre.bin|971aae38ab3ce5013004e50f661c05b99689d757 -odm/etc/camera/fb_model/201.png|a33cae031433bdac73d226c856d179056f2b775e -odm/etc/camera/fb_model/201_pre.bin|598a9bd59ee27ca7d5586b25c5d118871370a317 -odm/etc/camera/fb_model/202.png|6275f7ddd84ad2f71c440a927fa4a8a2a42753d0 -odm/etc/camera/fb_model/202_pre.bin|f3edf19b7fd88731844a7d1a456eb2d1942c361e -odm/etc/camera/fb_model/203.png|6df03df13c17ad53b1462222b1c0f3fdde641c33 -odm/etc/camera/fb_model/203_pre.bin|c7956044c6473ed72c20d9b7192199d3720c510f -odm/etc/camera/fb_model/210.png|fe6bd027a66e92c63103d2e111f9692bab648964 -odm/etc/camera/fb_model/210_pre.bin|0618b8338eada16a0610ea242e0e9e7066cacc37 -odm/etc/camera/fb_model/211.png|ea15579b2669ab3f2e980571572fc1d70a4921ff -odm/etc/camera/fb_model/211_pre.bin|03a62483d995aa83f244f136622f32713b34231d -odm/etc/camera/fb_model/212.png|6275f7ddd84ad2f71c440a927fa4a8a2a42753d0 -odm/etc/camera/fb_model/212_pre.bin|f3edf19b7fd88731844a7d1a456eb2d1942c361e -odm/etc/camera/fb_model/213.png|6275f7ddd84ad2f71c440a927fa4a8a2a42753d0 -odm/etc/camera/fb_model/eyeBright.png|7efa081de8858570d0b50edf23d755fa0fc265c5 -odm/etc/camera/fb_model/skinLUTs00.bin|00e91e5272c941ad6f9a9f212ecabee07a42bdce -odm/etc/camera/fb_model/skinLUTs01.bin|6a85c350bd26be564feb332cbb64e84316604f10 -odm/etc/camera/fb_model/skinLUTs02.bin|964cc7dad7682fdbd04c13590f374e8da7e53073 -odm/etc/camera/fb_model/skinLUTs03.bin|7cf2b4fb94e0af8e1567e3a6233bc3860801c720 -odm/etc/camera/fb_model/skinLUTs10.bin|b0935258d83e911ffe0a085838509138aa56124f -odm/etc/camera/fb_model/skinLUTs11.bin|b0935258d83e911ffe0a085838509138aa56124f -odm/etc/camera/fb_model/skinLUTs12.bin|a2132fb97a40c5b9e67ae9f0b934d55c5434e007 -odm/etc/camera/fb_model/skinLUTs13.bin|6518888c35358d2c8b8a2a092dba1d4dc5fb08e3 -odm/etc/camera/fb_model/skinLUTs_yuv16_00.bin|e2c05a96c2e5fe2ddf04c543612b1af767d3f94e -odm/etc/camera/fb_model/skinLUTs_yuv16_01.bin|e2c05a96c2e5fe2ddf04c543612b1af767d3f94e -odm/etc/camera/fb_model/skinLUTs_yuv16_02.bin|c27b314e308d969be7ebaae4fb96105b5b3fd123 -odm/etc/camera/fb_model/skinLUTs_yuv16_03.bin|09441ed14978ccd7e0b0928594de88607e136c05 -odm/etc/camera/fb_model/skinLUTs_yuv16_10.bin|beb65238a43003b8a21b84f49c3ded052c7d976d -odm/etc/camera/fb_model/skinLUTs_yuv16_11.bin|beb65238a43003b8a21b84f49c3ded052c7d976d -odm/etc/camera/fb_model/skinLUTs_yuv16_12.bin|1767c6313b7a44633403cded0e65c90fe53db271 -odm/etc/camera/fb_model/skinLUTs_yuv16_13.bin|b7d9d60d3d5ade856e2e124cc95bcfbddbed5eda -odm/etc/camera/fb_model/skinmask.bin|c08e1250c9011f78a48fcc37dacb77ae33a066da -odm/etc/camera/fb_model/skinmask.png|27178381ac57cb45f4184851c80fde44edcf55ed -odm/etc/camera/filters_lut/B1VLf4peM|07a93b313b9ccf02b15d51fd7de9997f7e8b5288 -odm/etc/camera/filters_lut/B1aMqioxf|7a69adbb2b98871edc607931ba30d31057c6500d -odm/etc/camera/filters_lut/B1nmcmWbG|e23a9ef9efa78cf2eb3b9b40c872767a4072bce7 -odm/etc/camera/filters_lut/B1si_XbZz|4c33ed51f0e7ec31135bef1b12450eb7c7b60953 -odm/etc/camera/filters_lut/B612Pretty.cube.rgb.bin|fa99968b62894d7502d24740d7d957ec28052dba -odm/etc/camera/filters_lut/BJJAwoigM|38402dac9f93256240d102fc1b575431b1e3a440 -odm/etc/camera/filters_lut/BJyKIwqxz|8884d51a71406949866ad7fb94fc566c1de36949 -odm/etc/camera/filters_lut/BeautyplusMellow-5.CUBE.rgb.bin|ac8441563fe21bf93dd94fb18866a1c4b86b6a4e -odm/etc/camera/filters_lut/ByW7g4bbf|7818dda29cf25fbd92c9e25dadfc9a27767b66f7 -odm/etc/camera/filters_lut/ByYo3If|36a4df720cd45c807e4007e89c38cca6a6b25269 -odm/etc/camera/filters_lut/BycYf7WWz|3e5bfab8dcb7a6c2981f13203da03d7dc45faee2 -odm/etc/camera/filters_lut/DL_D_G4.cube.rgb.bin|d3f488455bb636662afc9e1319f25627cd4f6c9a -odm/etc/camera/filters_lut/DL_L_B6.cube.rgb.bin|61ebf73b4a2ae5a2c1671bd09f1f677d6031f55a -odm/etc/camera/filters_lut/EyxRbD2UCe|f3a4f3037fa598eb1049aefebb35d25b30198eec -odm/etc/camera/filters_lut/FaceappGrayscale.cube.rgb.bin|094fe3f2c773652f5d7624ec2af31de5bc3d3095 -odm/etc/camera/filters_lut/InsClarendon.cube.rgb.bin|344e8a3727edf4bb39688fd73ff71910f6933d43 -odm/etc/camera/filters_lut/InsJuno.cube.rgb.bin|d4ba9663fa8698b18a1e8098beb2f538b440bd00 -odm/etc/camera/filters_lut/InsValencia-2.cube.rgb.bin|3041badd4a2d44f3a065bb2ca5ec9ffdf3849180 -odm/etc/camera/filters_lut/OPLUSR0604.cube.rgb.bin|8af8add6f4d49b994dc35625d671ae1a84e8c3c1 -odm/etc/camera/filters_lut/PP1-soft-2.6.CUBE.rgb.bin|e5a0e568db269e98b457d0285815d087e1a27ce6 -odm/etc/camera/filters_lut/PP2-pop-4.1.CUBE.rgb.bin|2e4d17f90831574f1bbb19dca907f760943f9c2d -odm/etc/camera/filters_lut/PP3-mono-3.3.CUBE.rgb.bin|ce25d3e8c5158811bdf15091d88b6a964bb87018 -odm/etc/camera/filters_lut/SJ3mbr6ef|85367441facb4426cdfb408e55eba16e71c9b47d -odm/etc/camera/filters_lut/SkpZ8ebbz|0236d7e8fd1a415d0f375893d17b8c13580db182 -odm/etc/camera/filters_lut/SnapseedBright.cube.rgb.bin|ab4338e5cdd168311bde06199e414241274996c0 -odm/etc/camera/filters_lut/SweetSnapAlice-3.CUBE.rgb.bin|d347df59c2268197cbd57ae7dfef4d7b38f0b208 -odm/etc/camera/filters_lut/Sy4uLSTgf|0d5d26568e0ef735c895a501e7a0f533663c840f -odm/etc/camera/filters_lut/Syt2KeZZf|53907ac2af5e706c824aa684c8a6b0c23fb3e8ca -odm/etc/camera/filters_lut/V01-landscape-2.6.CUBE.rgb.bin|8e208aa9f1045ae03d14a76421c2536a6b2b2478 -odm/etc/camera/filters_lut/V02-portrait-2.5.CUBE.rgb.bin|84887122a400332277da47fc3c7b562b1e07b52d -odm/etc/camera/filters_lut/V03-food-2.0.CUBE.rgb.bin|318f5b3ff478068d6b1181e019a6a6059d984962 -odm/etc/camera/filters_lut/V04-night-1.3.CUBE.rgb.bin|6578cd7037ec05e005c03d3956765d2de7f3dfe0 -odm/etc/camera/filters_lut/V05-mono-3.3.CUBE.rgb.bin|ce25d3e8c5158811bdf15091d88b6a964bb87018 -odm/etc/camera/filters_lut/YoucamAdorable80.cube.rgb.bin|781469e613b9ab7ec7b20206efd9e370a0e8aeb2 -odm/etc/camera/filters_lut/b-w-P8.CUBE.rgb.bin|8de4b52d30d5297c89d8cfb086c5d6b2fe1d9e23 -odm/etc/camera/filters_lut/black_gold.bin|7a2e6de6c1c402e073c4a3ac2905161b077e7a6c -odm/etc/camera/filters_lut/bowu-2.1.cube.rgb.bin|2f239d00763dd16b6e39031189569d44bb2b8c6a -odm/etc/camera/filters_lut/bright_coloured.bin|967d8e813f0776c9576a27abdcac5517c7b143f4 -odm/etc/camera/filters_lut/calm-V5.CUBE.rgb.bin|45c206c1af9e36e9d70f644c70da4e28db347c42 -odm/etc/camera/filters_lut/candy-P7.CUBE.rgb.bin|214b9e610c3b9977ea3c613ee70b2ae6eadeb336 -odm/etc/camera/filters_lut/cyberpunk-kitsch-3.1.CUBE.rgb.bin|2d6cb484fd9f111f8010f261aa6f63d20c3695e2 -odm/etc/camera/filters_lut/cyberpunk-neoMilitarism-2.4-final.CUBE.rgb.bin|d05a8f708994838779ac8336a101522a70c30fae -odm/etc/camera/filters_lut/default|19b5bfbede80bf0b68296b502a11b6678abd9ba2 -odm/etc/camera/filters_lut/delight-P3.CUBE.rgb.bin|4f9bf428d2f3f8871395fcbceee64a13174e0024 -odm/etc/camera/filters_lut/delight-V1.CUBE.rgb.bin|4f9bf428d2f3f8871395fcbceee64a13174e0024 -odm/etc/camera/filters_lut/drjw1994.bin|b6a507a727b3e9282d4e9ecc789af8c6553ad4c0 -odm/etc/camera/filters_lut/drjw2010.bin|1f6f99dd12f86a1694fb65dea8319713bf654083 -odm/etc/camera/filters_lut/f_bin_hideaki|b30474d5e5b02941af1154a000e7c2fe81b034c4 -odm/etc/camera/filters_lut/f_candy_water_weak.cube.rgb.bin|3f7f9d30eaeef1352c1279b3eb0b8319c919fcc5 -odm/etc/camera/filters_lut/f_contrast_gray_face_dark|670f8f97cb7d8c9fae4f49d832e59de3b5d5436d -odm/etc/camera/filters_lut/f_fuji_strong.cube.rgb.bin|ca2411cf901e4242f8002e55b001c5016acd12e4 -odm/etc/camera/filters_lut/f_japan_strong.cube.rgb.bin|2aefd391d91a6d58b5aac7429b3e4b1ff66d1da9 -odm/etc/camera/filters_lut/farewell-V7.CUBE.rgb.bin|e590fe9a960b70784df776551e9245d1d80978a3 -odm/etc/camera/filters_lut/interstellar_space.bin|991800e841c0cc50a19ced876784579e13479512 -odm/etc/camera/filters_lut/jiari-2.0.cube.rgb.bin|4e83e9f3ae43a739f97422e334d95bb1c8234fd0 -odm/etc/camera/filters_lut/lvtu-2.0.cube.rgb.bin|09abc20fb19013df6abca72df8315079ad29cfe7 -odm/etc/camera/filters_lut/meiwei-2.2.cube.rgb.bin|d76d1b9563b7f7eaaf6767eb53f34913b7ecedab -odm/etc/camera/filters_lut/mellow-V3.CUBE.rgb.bin|aa27e8329d60d40413406ed91bb1fbc0b0e44a0c -odm/etc/camera/filters_lut/misty-P5.CUBE.rgb.bin|ce156a627e1eaecb88c390bf6f215ed55defc15d -odm/etc/camera/filters_lut/misty-V4.CUBE.rgb.bin|ce156a627e1eaecb88c390bf6f215ed55defc15d -odm/etc/camera/filters_lut/natural-P1.CUBE.rgb.bin|81d162ad4b0ec937019505e560fb89efc36b187d -odm/etc/camera/filters_lut/neon-2020.cube.rgb.bin|9b173568decfe4dcbf5ffdbed24e6901f2bc3291 -odm/etc/camera/filters_lut/oplus-black-gold.cube.rgb.bin|d053dfb4c515f3d915c3e4d33c26322d0119b7d3 -odm/etc/camera/filters_lut/oplus-cyberpunk.cube.rgb.bin|0e2dbcdfab82b63722dfa754c9e741feffac9d9b -odm/etc/camera/filters_lut/oplus-nightcity.cube.rgb.bin|d05a8f708994838779ac8336a101522a70c30fae -odm/etc/camera/filters_lut/oplus-r-black-gold-1.1-RGB.CUBE.rgb.bin|62ffb06f6d595ce997e6d052ae9afd7f3c895f6a -odm/etc/camera/filters_lut/oplus-r-cyberpunk-RGB.CUBE.rgb.bin|c78007ba9e98cdf59d48e2e267d01df4fa39991c -odm/etc/camera/filters_lut/oplus-r-infra-RGB.CUBE.rgb.bin|1168370263756effe2f86d3c9ffd390495517fce -odm/etc/camera/filters_lut/oplus-yellow-blue.cube.rgb.bin|69194a080945b3c0a424b1853b6f68e960bdb05d -odm/etc/camera/filters_lut/oplus_SAREK_III.cube.rgb.bin|1056c39a39e413a2a7039331140d4a8c4598a71b -odm/etc/camera/filters_lut/oplus_VAEROY_III.cube.rgb.bin|f41fba0fa8480f72d9846301f70a053231c5173b -odm/etc/camera/filters_lut/oplus_YLLAAS.cube.rgb.bin|99ad355afbaa3192bf60c84c65f31056c9a8da9b -odm/etc/camera/filters_lut/oplus_r4.cube.rgb.bin|414e1f7704f0dd2a05694cd7efcdfcc662849d2a -odm/etc/camera/filters_lut/oplus_r5.cube.rgb.bin|cf0d0368854ab79566eb05786b3e1425ca22664a -odm/etc/camera/filters_lut/oplus_r6.cube.rgb.bin|d81470dfa79e37532c442600aa0506ea27c57576 -odm/etc/camera/filters_lut/oplus_video_filter_black_and_white|870ab4e427fe6a91ad9108bc350915b32ef639d0 -odm/etc/camera/filters_lut/oplus_video_filter_highlight|420b1886de6e2ab5151c584f42c8e914aa4291e0 -odm/etc/camera/filters_lut/oplus_video_filter_ins|5225081190619a78f234a2998b161c83da4154f3 -odm/etc/camera/filters_lut/oplus_video_filter_natal|b147a2021ec5f5d51d23b1a0ad0956437c7da4e8 -odm/etc/camera/filters_lut/oplus_video_filter_olympus|2018db3d5daf1fa428d0fabda8ede0ca6098ce07 -odm/etc/camera/filters_lut/oplus_video_filter_plain|e3703458ff1e435127995dd71e2fbb698f5615cd -odm/etc/camera/filters_lut/oplus_video_filter_show|600a00455400eca7a1ba4574efdaad07e9a4d25a -odm/etc/camera/filters_lut/oplus_video_filter_solar|075c3e088fa9a5a64051549ddb7ab3d4fb8abe03 -odm/etc/camera/filters_lut/oplus_video_filter_strong|246319f4e53ca7d03b653d26ef4b28b8c039f2df -odm/etc/camera/filters_lut/oplus_video_filter_west|569919b3d8e0c2d79247bc28e984c03756468986 -odm/etc/camera/filters_lut/oppo_video_filter_black_and_white|870ab4e427fe6a91ad9108bc350915b32ef639d0 -odm/etc/camera/filters_lut/oppo_video_filter_highlight|420b1886de6e2ab5151c584f42c8e914aa4291e0 -odm/etc/camera/filters_lut/oppo_video_filter_ins|5225081190619a78f234a2998b161c83da4154f3 -odm/etc/camera/filters_lut/oppo_video_filter_natal|b147a2021ec5f5d51d23b1a0ad0956437c7da4e8 -odm/etc/camera/filters_lut/oppo_video_filter_olympus|2018db3d5daf1fa428d0fabda8ede0ca6098ce07 -odm/etc/camera/filters_lut/oppo_video_filter_plain|e3703458ff1e435127995dd71e2fbb698f5615cd -odm/etc/camera/filters_lut/oppo_video_filter_show|600a00455400eca7a1ba4574efdaad07e9a4d25a -odm/etc/camera/filters_lut/oppo_video_filter_solar|075c3e088fa9a5a64051549ddb7ab3d4fb8abe03 -odm/etc/camera/filters_lut/oppo_video_filter_strong|246319f4e53ca7d03b653d26ef4b28b8c039f2df -odm/etc/camera/filters_lut/oppo_video_filter_west|569919b3d8e0c2d79247bc28e984c03756468986 -odm/etc/camera/filters_lut/p4_1.cube.rgb.bin|ffca0056046beb608810561d71b06cdc343b7ded -odm/etc/camera/filters_lut/p4_2.cube.rgb.bin|1b4e3f17e6ec246441df1c2012f72045b8a15ab4 -odm/etc/camera/filters_lut/p4_3.cube.rgb.bin|77256d7273159f9f8b78de5a9e3cd014fb843ed2 -odm/etc/camera/filters_lut/p4_4.cube.rgb.bin|4eba6b9f4fca419c8bcd97327a8f41211fe14a38 -odm/etc/camera/filters_lut/qiuri-2.0.cube.rgb.bin|9b201f97573c677cf7317a8e4536a229e507e962 -odm/etc/camera/filters_lut/r1JaFSZZG|0fba962d7da6db87f14f71a2f9e2c55c37fab0fb -odm/etc/camera/filters_lut/r1PrfoolG|f21c1f4ac076ff2d0ac84f63caf24e25c68eef71 -odm/etc/camera/filters_lut/rJ5g5vPWG|cf0d0368854ab79566eb05786b3e1425ca22664a -odm/etc/camera/filters_lut/rJxJtmaez|37036374520b67bd518ed43e504b8d1e70496db9 -odm/etc/camera/filters_lut/red-red.cube.rgb.bin|d87f1e6eeea9d46683dd7d145b9853e4347bf014 -odm/etc/camera/filters_lut/rkMhq4ZWf|453ab586ab05de59e3063189942e3b7126e8fe3c -odm/etc/camera/filters_lut/rkx5u4Zbf|59ea467054ac9039a4a3a6c4991718a8583f8939 -odm/etc/camera/filters_lut/senlin-2.0.cube.rgb.bin|d1fba438285f7b127ff57f3226be475821b658f1 -odm/etc/camera/filters_lut/serene-P9.CUBE.rgb.bin|dcb3652d35c9c81ab1b5d4cc065a97539d07af0d -odm/etc/camera/filters_lut/sky-blue.cube.rgb.bin|430b7f802fd7ddcca2559239f3a0abff1d0192b8 -odm/etc/camera/filters_lut/sweet-P2.CUBE.rgb.bin|8e225eac95d326d67afc1eadc443f402a2602593 -odm/etc/camera/filters_lut/sweet-V2.CUBE.rgb.bin|81d162ad4b0ec937019505e560fb89efc36b187d -odm/etc/camera/filters_lut/tree-green.cube.rgb.bin|33ade442b39c4720f49e4fecdf335ab5c7f9e4f8 -odm/etc/camera/filters_lut/type_fuji_acros|dfff7bcc189461dcb248e60e0e4f9c467ddba1b9 -odm/etc/camera/filters_lut/type_fuji_astia|4c4310f26058485ca233ec99f8b44a5d75b26c52 -odm/etc/camera/filters_lut/type_fuji_chrome|c926656d08da47865e35b4a2ca43a0c3f242a98e -odm/etc/camera/filters_lut/type_fuji_provia|0d69d9b0beb13386f2f11951bbcc93a81422162e -odm/etc/camera/filters_lut/type_fuji_velvia|53eccbf2bd4bde8125277f41dd80c96b7f5aca61 -odm/etc/camera/filters_lut/yuanqi-2.2s.cube.rgb.bin|e48ea1ba90adddf90906afd80a18410490b38181 -odm/etc/camera/filters_res/film_grain_small.bin|b98855ca8ca85c4ed736f0f02484622da2574343 -odm/etc/camera/filters_res/lut_all_points.png|1c3f2d6bab41f8f54ce948872588c4a718c43ac4 -odm/etc/camera/filters_res/overlay_p4_3_weak.png|d17b9bf407e2bfc9e727429672adfe681fc03670 -odm/etc/camera/model/DocDetectV15.xbin|ff40cbe1cc82fe484764029c4a42386f32c8fe51 -odm/etc/camera/pf/PerfectColorSet/default/colorLut0|c30a24d4e310333275f81f3530974234cdf9e39b -odm/etc/camera/pf/PerfectColorSet/default/colorLut1|606b05d424617e44224896a26b387c1a1fdad6cd -odm/etc/camera/pf/PerfectColorSet/default/colorLut10|05f22d45979cb84ce6f13091067c872b787dea48 -odm/etc/camera/pf/PerfectColorSet/default/colorLut11|4d4ece37eee7b8094ed7860d34a3ef5ec856e0ab -odm/etc/camera/pf/PerfectColorSet/default/colorLut12|5ff7475eb1f286fe5be2287205751bb1540dfcad -odm/etc/camera/pf/PerfectColorSet/default/colorLut13|12f2b10f6f2dd4236908129750c600c968cc4014 -odm/etc/camera/pf/PerfectColorSet/default/colorLut14|e03aa36de8edf8d88547e7aa64ba788e7a0ae514 -odm/etc/camera/pf/PerfectColorSet/default/colorLut15|a54d13f8dc7842f37f3e8e865ede674495f58dc2 -odm/etc/camera/pf/PerfectColorSet/default/colorLut16|a54d13f8dc7842f37f3e8e865ede674495f58dc2 -odm/etc/camera/pf/PerfectColorSet/default/colorLut17|f680e1d00652179ed823fc2116aba77924449882 -odm/etc/camera/pf/PerfectColorSet/default/colorLut18|851b9d1b43dae348005c800956325701add713f5 -odm/etc/camera/pf/PerfectColorSet/default/colorLut2|367ff571a74f71473c29a69249cb29f91499c12a -odm/etc/camera/pf/PerfectColorSet/default/colorLut3|f874058616a94ba6920f7e07f4fc8c02371f4e41 -odm/etc/camera/pf/PerfectColorSet/default/colorLut4|465e60a3e589a21e2c7e9cff3e462953dc4476e6 -odm/etc/camera/pf/PerfectColorSet/default/colorLut5|465e60a3e589a21e2c7e9cff3e462953dc4476e6 -odm/etc/camera/pf/PerfectColorSet/default/colorLut6|7c8290279fee25e4e812a74be1151a002c2466f5 -odm/etc/camera/pf/PerfectColorSet/default/colorLut7|db3cf565daa94177f0eed3d2915bc8eea656fd4a -odm/etc/camera/pf/PerfectColorSet/default/colorLut8|b2bc2debb3bc519e478dc4ded2a87cc0aab13ed0 -odm/etc/camera/pf/PerfectColorSet/default/colorLut9|f680e1d00652179ed823fc2116aba77924449882 -odm/etc/camera/pf/PerfectColorSet/default/curveLut0|a4c65b33d6040be6bd2d2d0768db840458f76474 -odm/etc/camera/pf/PerfectColorSet/default/curveLut1|ff01d83a3fab101d1973e29fae8590c2b4a0696a -odm/etc/camera/pf/PerfectColorSet/default/curveLut10|c514d5c7dc3ea4132d3c6cec9983d75211cc7c40 -odm/etc/camera/pf/PerfectColorSet/default/curveLut11|72f37bd4430cdee024dc9435001935c4fa3c0173 -odm/etc/camera/pf/PerfectColorSet/default/curveLut12|ff01d83a3fab101d1973e29fae8590c2b4a0696a -odm/etc/camera/pf/PerfectColorSet/default/curveLut13|9131be886ba4745f8389ac7a3877ccbca2fcceb6 -odm/etc/camera/pf/PerfectColorSet/default/curveLut14|66461d16dcd3ffa6525c73bee50ab5ae60aa33ff -odm/etc/camera/pf/PerfectColorSet/default/curveLut15|cec78b5f357413fe0a12646816c7c2cda26e426b -odm/etc/camera/pf/PerfectColorSet/default/curveLut16|cec78b5f357413fe0a12646816c7c2cda26e426b -odm/etc/camera/pf/PerfectColorSet/default/curveLut17|d6d6b10f952f245b736c15bfa6e9e3f2e8ab06b6 -odm/etc/camera/pf/PerfectColorSet/default/curveLut18|ff01d83a3fab101d1973e29fae8590c2b4a0696a -odm/etc/camera/pf/PerfectColorSet/default/curveLut2|a4c65b33d6040be6bd2d2d0768db840458f76474 -odm/etc/camera/pf/PerfectColorSet/default/curveLut3|ff01d83a3fab101d1973e29fae8590c2b4a0696a -odm/etc/camera/pf/PerfectColorSet/default/curveLut4|72f37bd4430cdee024dc9435001935c4fa3c0173 -odm/etc/camera/pf/PerfectColorSet/default/curveLut5|72f37bd4430cdee024dc9435001935c4fa3c0173 -odm/etc/camera/pf/PerfectColorSet/default/curveLut6|72f37bd4430cdee024dc9435001935c4fa3c0173 -odm/etc/camera/pf/PerfectColorSet/default/curveLut7|9131be886ba4745f8389ac7a3877ccbca2fcceb6 -odm/etc/camera/pf/PerfectColorSet/default/curveLut8|5c488f32ec88627c8fbc36cefba258463f79e7c3 -odm/etc/camera/pf/PerfectColorSet/default/curveLut9|5c488f32ec88627c8fbc36cefba258463f79e7c3 -odm/etc/camera/pf/PerfectColorSet/default/frameSet.ini|c4122ad1051545e0c5b4caa3ba7836c11ea701ae -odm/etc/camera/pf/PerfectColorSet/default/param0.ini|1dbb12fc16a7606e5b5cde814ce779d294105ffe -odm/etc/camera/pf/PerfectColorSet/default/param1.ini|ede2799d8f32e516e05a98e81a96404c67c4d283 -odm/etc/camera/pf/PerfectColorSet/default/param10.ini|d8d00f41a3f00f91ea099b680f8b5a14b49bfb12 -odm/etc/camera/pf/PerfectColorSet/default/param11.ini|d8d00f41a3f00f91ea099b680f8b5a14b49bfb12 -odm/etc/camera/pf/PerfectColorSet/default/param12.ini|bbe05f607e33b514f7d9ca1256cf1df4908a9797 -odm/etc/camera/pf/PerfectColorSet/default/param13.ini|0e3cda58f9c9c6c766981a22087ef943bb393535 -odm/etc/camera/pf/PerfectColorSet/default/param14.ini|d8d00f41a3f00f91ea099b680f8b5a14b49bfb12 -odm/etc/camera/pf/PerfectColorSet/default/param15.ini|d8d00f41a3f00f91ea099b680f8b5a14b49bfb12 -odm/etc/camera/pf/PerfectColorSet/default/param16.ini|d8d00f41a3f00f91ea099b680f8b5a14b49bfb12 -odm/etc/camera/pf/PerfectColorSet/default/param17.ini|d8d00f41a3f00f91ea099b680f8b5a14b49bfb12 -odm/etc/camera/pf/PerfectColorSet/default/param18.ini|0e3cda58f9c9c6c766981a22087ef943bb393535 -odm/etc/camera/pf/PerfectColorSet/default/param2.ini|bbe05f607e33b514f7d9ca1256cf1df4908a9797 -odm/etc/camera/pf/PerfectColorSet/default/param3.ini|0e3cda58f9c9c6c766981a22087ef943bb393535 -odm/etc/camera/pf/PerfectColorSet/default/param4.ini|843fd19158dd7c803e73fef20d5f1762116e017d -odm/etc/camera/pf/PerfectColorSet/default/param5.ini|843fd19158dd7c803e73fef20d5f1762116e017d -odm/etc/camera/pf/PerfectColorSet/default/param6.ini|843fd19158dd7c803e73fef20d5f1762116e017d -odm/etc/camera/pf/PerfectColorSet/default/param7.ini|0e3cda58f9c9c6c766981a22087ef943bb393535 -odm/etc/camera/pf/PerfectColorSet/default/param8.ini|d8d00f41a3f00f91ea099b680f8b5a14b49bfb12 -odm/etc/camera/pf/PerfectColorSet/default/param9.ini|d8d00f41a3f00f91ea099b680f8b5a14b49bfb12 -odm/etc/camera/pf/PerfectColorSet/default/photoSet.ini|bc6fd50c52e811db218de0c3130750990d030c5c -odm/etc/camera/pf/PerfectColorSet/default/platformSet.ini|da1a551f22119d1a648f15327c51e638c4a999d5 -odm/etc/camera/pf/PerfectColorSet/default/sceneList.txt|b21a48524fecea7f516bfcbf93941526625b6675 -odm/etc/camera/pf/PerfectColorSet/normal/colorLut0|c30a24d4e310333275f81f3530974234cdf9e39b -odm/etc/camera/pf/PerfectColorSet/normal/colorLut1|606b05d424617e44224896a26b387c1a1fdad6cd -odm/etc/camera/pf/PerfectColorSet/normal/colorLut10|05f22d45979cb84ce6f13091067c872b787dea48 -odm/etc/camera/pf/PerfectColorSet/normal/colorLut11|4d4ece37eee7b8094ed7860d34a3ef5ec856e0ab -odm/etc/camera/pf/PerfectColorSet/normal/colorLut12|5ff7475eb1f286fe5be2287205751bb1540dfcad -odm/etc/camera/pf/PerfectColorSet/normal/colorLut13|12f2b10f6f2dd4236908129750c600c968cc4014 -odm/etc/camera/pf/PerfectColorSet/normal/colorLut14|e03aa36de8edf8d88547e7aa64ba788e7a0ae514 -odm/etc/camera/pf/PerfectColorSet/normal/colorLut15|a54d13f8dc7842f37f3e8e865ede674495f58dc2 -odm/etc/camera/pf/PerfectColorSet/normal/colorLut16|a54d13f8dc7842f37f3e8e865ede674495f58dc2 -odm/etc/camera/pf/PerfectColorSet/normal/colorLut17|f680e1d00652179ed823fc2116aba77924449882 -odm/etc/camera/pf/PerfectColorSet/normal/colorLut18|851b9d1b43dae348005c800956325701add713f5 -odm/etc/camera/pf/PerfectColorSet/normal/colorLut2|367ff571a74f71473c29a69249cb29f91499c12a -odm/etc/camera/pf/PerfectColorSet/normal/colorLut3|f874058616a94ba6920f7e07f4fc8c02371f4e41 -odm/etc/camera/pf/PerfectColorSet/normal/colorLut4|465e60a3e589a21e2c7e9cff3e462953dc4476e6 -odm/etc/camera/pf/PerfectColorSet/normal/colorLut5|465e60a3e589a21e2c7e9cff3e462953dc4476e6 -odm/etc/camera/pf/PerfectColorSet/normal/colorLut6|7c8290279fee25e4e812a74be1151a002c2466f5 -odm/etc/camera/pf/PerfectColorSet/normal/colorLut7|db3cf565daa94177f0eed3d2915bc8eea656fd4a -odm/etc/camera/pf/PerfectColorSet/normal/colorLut8|b2bc2debb3bc519e478dc4ded2a87cc0aab13ed0 -odm/etc/camera/pf/PerfectColorSet/normal/colorLut9|f680e1d00652179ed823fc2116aba77924449882 -odm/etc/camera/pf/PerfectColorSet/normal/curveLut0|a4c65b33d6040be6bd2d2d0768db840458f76474 -odm/etc/camera/pf/PerfectColorSet/normal/curveLut1|ff01d83a3fab101d1973e29fae8590c2b4a0696a -odm/etc/camera/pf/PerfectColorSet/normal/curveLut10|c514d5c7dc3ea4132d3c6cec9983d75211cc7c40 -odm/etc/camera/pf/PerfectColorSet/normal/curveLut11|72f37bd4430cdee024dc9435001935c4fa3c0173 -odm/etc/camera/pf/PerfectColorSet/normal/curveLut12|ff01d83a3fab101d1973e29fae8590c2b4a0696a -odm/etc/camera/pf/PerfectColorSet/normal/curveLut13|9131be886ba4745f8389ac7a3877ccbca2fcceb6 -odm/etc/camera/pf/PerfectColorSet/normal/curveLut14|66461d16dcd3ffa6525c73bee50ab5ae60aa33ff -odm/etc/camera/pf/PerfectColorSet/normal/curveLut15|cec78b5f357413fe0a12646816c7c2cda26e426b -odm/etc/camera/pf/PerfectColorSet/normal/curveLut16|cec78b5f357413fe0a12646816c7c2cda26e426b -odm/etc/camera/pf/PerfectColorSet/normal/curveLut17|d6d6b10f952f245b736c15bfa6e9e3f2e8ab06b6 -odm/etc/camera/pf/PerfectColorSet/normal/curveLut18|ff01d83a3fab101d1973e29fae8590c2b4a0696a -odm/etc/camera/pf/PerfectColorSet/normal/curveLut2|a4c65b33d6040be6bd2d2d0768db840458f76474 -odm/etc/camera/pf/PerfectColorSet/normal/curveLut3|ff01d83a3fab101d1973e29fae8590c2b4a0696a -odm/etc/camera/pf/PerfectColorSet/normal/curveLut4|72f37bd4430cdee024dc9435001935c4fa3c0173 -odm/etc/camera/pf/PerfectColorSet/normal/curveLut5|72f37bd4430cdee024dc9435001935c4fa3c0173 -odm/etc/camera/pf/PerfectColorSet/normal/curveLut6|72f37bd4430cdee024dc9435001935c4fa3c0173 -odm/etc/camera/pf/PerfectColorSet/normal/curveLut7|9131be886ba4745f8389ac7a3877ccbca2fcceb6 -odm/etc/camera/pf/PerfectColorSet/normal/curveLut8|5c488f32ec88627c8fbc36cefba258463f79e7c3 -odm/etc/camera/pf/PerfectColorSet/normal/curveLut9|5c488f32ec88627c8fbc36cefba258463f79e7c3 -odm/etc/camera/pf/PerfectColorSet/normal/frameSet.ini|7add308a87d12485ac045d761df63154f57a7be7 -odm/etc/camera/pf/PerfectColorSet/normal/param0.ini|1dbb12fc16a7606e5b5cde814ce779d294105ffe -odm/etc/camera/pf/PerfectColorSet/normal/param1.ini|ede2799d8f32e516e05a98e81a96404c67c4d283 -odm/etc/camera/pf/PerfectColorSet/normal/param10.ini|d8d00f41a3f00f91ea099b680f8b5a14b49bfb12 -odm/etc/camera/pf/PerfectColorSet/normal/param11.ini|d8d00f41a3f00f91ea099b680f8b5a14b49bfb12 -odm/etc/camera/pf/PerfectColorSet/normal/param12.ini|bbe05f607e33b514f7d9ca1256cf1df4908a9797 -odm/etc/camera/pf/PerfectColorSet/normal/param13.ini|0e3cda58f9c9c6c766981a22087ef943bb393535 -odm/etc/camera/pf/PerfectColorSet/normal/param14.ini|d8d00f41a3f00f91ea099b680f8b5a14b49bfb12 -odm/etc/camera/pf/PerfectColorSet/normal/param15.ini|d8d00f41a3f00f91ea099b680f8b5a14b49bfb12 -odm/etc/camera/pf/PerfectColorSet/normal/param16.ini|d8d00f41a3f00f91ea099b680f8b5a14b49bfb12 -odm/etc/camera/pf/PerfectColorSet/normal/param17.ini|d8d00f41a3f00f91ea099b680f8b5a14b49bfb12 -odm/etc/camera/pf/PerfectColorSet/normal/param18.ini|0e3cda58f9c9c6c766981a22087ef943bb393535 -odm/etc/camera/pf/PerfectColorSet/normal/param2.ini|bbe05f607e33b514f7d9ca1256cf1df4908a9797 -odm/etc/camera/pf/PerfectColorSet/normal/param3.ini|0e3cda58f9c9c6c766981a22087ef943bb393535 -odm/etc/camera/pf/PerfectColorSet/normal/param4.ini|843fd19158dd7c803e73fef20d5f1762116e017d -odm/etc/camera/pf/PerfectColorSet/normal/param5.ini|843fd19158dd7c803e73fef20d5f1762116e017d -odm/etc/camera/pf/PerfectColorSet/normal/param6.ini|843fd19158dd7c803e73fef20d5f1762116e017d -odm/etc/camera/pf/PerfectColorSet/normal/param7.ini|0e3cda58f9c9c6c766981a22087ef943bb393535 -odm/etc/camera/pf/PerfectColorSet/normal/param8.ini|d8d00f41a3f00f91ea099b680f8b5a14b49bfb12 -odm/etc/camera/pf/PerfectColorSet/normal/param9.ini|d8d00f41a3f00f91ea099b680f8b5a14b49bfb12 -odm/etc/camera/pf/PerfectColorSet/normal/photoSet.ini|d474dca6b8b0a06d28c94efb8b4ebe16d8043e19 -odm/etc/camera/pf/PerfectColorSet/normal/platformSet.ini|41746d838c7326b5f998e2e5bde89537902510de -odm/etc/camera/pf/PerfectColorSet/normal/sceneList.txt|b21a48524fecea7f516bfcbf93941526625b6675 -odm/etc/camera/pfb_bin/PreAddSRBinary.bin|949ac2e944e50780ca2a02b8a8a72e44ceb2a6ae -odm/etc/camera/pfb_bin/PreCalVarBinary.bin|a8f649f0bd5012c72a26a41abbcddf23c67382a6 -odm/etc/camera/pfb_bin/PreCalcSRBinary.bin|a4b7e04184ca1c04a5848a02337878a47760c3a1 -odm/etc/camera/pfb_bin/PreDepouchBinary.bin|8c2b95f0059413cfb6fec5ef5a7c0272db848bb0 -odm/etc/camera/pfb_bin/PreEyeMeanBinary.bin|e3a463b154a7fdc9495a1c38bd5acb68767915b5 -odm/etc/camera/pfb_bin/PreHighPassBinary.bin|6cd8d1f3b436ee7e082b1b595b97a70d8303fdfb -odm/etc/camera/pfb_bin/PreHighPassPreBinary.bin|5324543f0d6550e9d3485d2328b90c60bbc67abd -odm/etc/camera/pfb_bin/PreHoriFilterBinary.bin|ae5da9980f5e35747a1652d14c23ad04907611b7 -odm/etc/camera/pfb_bin/PreMakeupBinary.bin|888c90cb248c8a7efade2ad5c195c158fdf1e856 -odm/etc/camera/pfb_bin/PreMakeupMultiFaceBinary.bin|3c255908e5ec3a0c93dc0298efde9af9b7213e40 -odm/etc/camera/pfb_bin/PreMakeupSingleFaceBinary.bin|5a9e1922530fe46f5aeafdcf22db29c84676d5d1 -odm/etc/camera/pfb_bin/PreMixImageBinary.bin|61e07df71e2880631f8f8c5f557732b6aeecdd4c -odm/etc/camera/pfb_bin/PreMorphBinary.bin|dd4e07fdf17482156c490d7075004c7fe0606877 -odm/etc/camera/pfb_bin/PreOnlywhitenBinary.bin|c38ba9ee3daab0faa1b3b2c3ac1008d09ef056b0 -odm/etc/camera/pfb_bin/PreSkintuneBinary.bin|5e1115401ae7df2bf33edfa5bdb9de71e7a5cfa3 -odm/etc/camera/pfb_bin/PreSkintuneMRTBinary.bin|66b679fa19d4b09d80cbde59271858982f129b88 -odm/etc/camera/pfb_bin/PreSurfaceBlurBinary.bin|2bcca638b1f6dbd72156144507584fd82c752263 -odm/etc/camera/pfb_bin/PreVertFilterBinary.bin|fd58454514973017f09b2448e7e20b76c423049f -odm/etc/camera/pfb_bin/PreVertSurBinary.bin|ff9780dcd756fc3bdb591349d5478d8b7d19c817 -odm/etc/camera/pfb_bin/ThirdPartyPreHoriFilterBinary.bin|c3011c11bf627e66ebc10a13751c2cfdba3bb21c -odm/etc/camera/pfb_bin/ThirdPartyPreMorphBinary.bin|3c72943b39298256f6011d79e927e504994c4753 -odm/etc/camera/pfb_bin/ThirdPartyPreOnlywhitenBinary.bin|6865c2254cb0ce5b9154eae7d42417e1668ad38d -odm/etc/camera/pfb_bin/ThirdPartyPreSkintuneBinary.bin|c834e69a336ac127c94b19cab2ccb8c6b67743bd -odm/etc/camera/pfb_bin/ThirdPartyPreSkintuneMRTBinary.bin|cf12a6251b4153d9edfc68db4db6fbd349a6fd96 -odm/etc/camera/pfb_bin/ThirdPartyPreVertFilterBinary.bin|14d4e1282138b825c8e1ee6e41cc2820b8e37229 -odm/etc/camera/pfb_bin/ThirdPartyPreVertSurBinary.bin|cf6ac5618c2844fb49662f533cb6fe0ade68a540 -odm/etc/camera/singleblur/dbl_small_481.model|56ad6ad74c54632b7aaf60c0a727d0288e721fce -odm/etc/camera/sticker/material/animoji/data.zip|e26f389fe389e17f4577ae1698c183848dc79949 -odm/etc/camera/sticker/material/animoji/snowleopard_v_0_0_0_9.zip|aebb9673f46d009573f787c6815764ace68c2df0 -odm/etc/camera/sticker/M_SenseME_Action_5.2.12.model|a9b3a9a8a2d59c438de87137e8d5943eef915d8a -odm/etc/camera/tonemap/curve_lut_0|a4c65b33d6040be6bd2d2d0768db840458f76474 -odm/etc/camera/tonemap/curve_lut_1|ff01d83a3fab101d1973e29fae8590c2b4a0696a -odm/etc/camera/tonemap/curve_lut_10|cec78b5f357413fe0a12646816c7c2cda26e426b -odm/etc/camera/tonemap/curve_lut_2|72f37bd4430cdee024dc9435001935c4fa3c0173 -odm/etc/camera/tonemap/curve_lut_3|9131be886ba4745f8389ac7a3877ccbca2fcceb6 -odm/etc/camera/tonemap/curve_lut_4|d6d6b10f952f245b736c15bfa6e9e3f2e8ab06b6 -odm/etc/camera/tonemap/curve_lut_5|c514d5c7dc3ea4132d3c6cec9983d75211cc7c40 -odm/etc/camera/tonemap/curve_lut_6|72f37bd4430cdee024dc9435001935c4fa3c0173 -odm/etc/camera/tonemap/curve_lut_7|ff01d83a3fab101d1973e29fae8590c2b4a0696a -odm/etc/camera/tonemap/curve_lut_8|9131be886ba4745f8389ac7a3877ccbca2fcceb6 -odm/etc/camera/tonemap/curve_lut_9|66461d16dcd3ffa6525c73bee50ab5ae60aa33ff -odm/etc/camera/tonemap/list.txt|cdbc0f1bcc646da7a23f5db9325922a5db155b73 -odm/etc/camera/tonemap/s_curve_lut|48d1df744e0bfaa1187ade0d1ed563a4cc91fe76 -odm/etc/camera/tonemap/tonemap_lut_0|4c66bfad2f99de8a2765b75517f76a4f7b29e586 -odm/etc/camera/tonemap/tonemap_lut_1|f44c5f81eed91f16fd3498f01533f79334f76b83 -odm/etc/camera/tonemap/tonemap_lut_10|50a0d9795d3762adc9d16a25ded0199eaeab775d -odm/etc/camera/tonemap/tonemap_lut_2|82d6da9239b45c7634b2df3d1c37a4467a2cf005 -odm/etc/camera/tonemap/tonemap_lut_3|ac662974e035d1d6b1c1ae06457310340aaca417 -odm/etc/camera/tonemap/tonemap_lut_4|03ea5710cb3137c5c30c4941c25a37cc3f6bf5f7 -odm/etc/camera/tonemap/tonemap_lut_5|0168d4b6a03b50067cc2915e6cde732cbd0a5078 -odm/etc/camera/tonemap/tonemap_lut_6|285d2345fc48c30e63225c827601061a29defb30 -odm/etc/camera/tonemap/tonemap_lut_7|ca6098e12166e3830fe30d9788be10a283755e4b -odm/etc/camera/tonemap/tonemap_lut_8|8a25c8bf43bad6c4ab8928959dbc80d3ffdffde2 -odm/etc/camera/tonemap/tonemap_lut_9|e7eebd43c4d3d5d399ea531aea23f787cc97becb -odm/etc/camera/CameraHWConfiguration.config|180a80884df367af1d42e0e464032b204d1cc255 -odm/etc/camera/anc_cl_kernel.cache|4d1a22fe06fd7367c0516f3fa9a97f498b7b578b -odm/etc/camera/arcsoft_distortionParams.bin|c6fde672b8190597e929bb4274caea7a6ffeea40 -odm/etc/camera/camera_engmode.xml|ca69300b83ccaf15780443b17014402919265658 -odm/etc/camera/dualcal_golden.bin|f32e9090ab514cfdc3e8fc73201eea9d3e465e0a -odm/etc/camera/eis_camera.vcfg|97ae6ab9952635a4c9d00322894ac4cf0952f720 -odm/etc/camera/fb_default|6993d03659a5b07f4468214e38bf4c943719662b -odm/etc/camera/fwk_config.json|0a0f509db9549b8bc1542f7a6e3b123373aa66d4 -odm/etc/camera/gasryuv_1.2_wp.model|690e6c00fd300a7ea024aa971b66ac663767a6fa -odm/etc/camera/model_fdc.data|4bcb462b7176e0369b1066419f740661bbde4335 -odm/etc/camera/settings_fdc.txt|4cc7747262e957daaa02f58a8eb92511d06bc97d -odm/lib/libc++_shared.so|1ec35a25d92cfc44994d696c2c1f623106888687 -odm/lib64/camera/com.qti.sensor.odin_hlt_gc02m1b_mono.so|531a8791a11eae17a77dc82566efdf04b6488dbc -odm/lib64/camera/com.qti.sensor.odin_jk_ov02b10_macro.so|89af9e955614b12cf7c23b39c91087a6a16f8445 -odm/lib64/camera/com.qti.sensor.odin_qt_ov13b10_rear.so|2dd35323648886f4638136a9bc1086773dd17888 -odm/lib64/camera/com.qti.sensor.sy_imx471.so|e9e302001979748a4b54e4d30884354a34ad2657 -odm/lib64/camera/com.qti.sensormodule.odin_hlt_gc02m1b_mono.bin|50e24648c77a3c59f64ab974707a152e5f268aae -odm/lib64/camera/com.qti.sensormodule.odin_jk_ov02b10_macro.bin|a597e6ba850fa6e2ad144dfa5b9bb21300c9e465 -odm/lib64/camera/com.qti.sensormodule.odin_qt_ov13b10_rear.bin|7485d793f9f33dbde31444f5891d8e511a7d97a8 -odm/lib64/camera/com.qti.sensormodule.sy_imx471.bin|816ce5a9eaabc655e3287812bc5d75dc8a8425db -odm/lib64/camera/com.qti.tuned.gc02m1b.bin|9d91000971d043d7171d60ae2979c334928bb43d -odm/lib64/camera/com.qti.tuned.imx471.bin|1157952fab315e05d10c129af6f7231c884eea9e -odm/lib64/camera/com.qti.tuned.ov02b10.bin|2dcf838d90ee37251571f0980431facab2b8fada -odm/lib64/camera/com.qti.tuned.qt_ov13b10.bin|874d752800726ee8942caaf2223c7659a4a9f494 -odm/lib64/libAlgoInterface.so|a03a90a5ee43704fb4bb65915b064f2fb58ae26a -odm/lib64/libAlgoProcess.so|0ebc4353c53e27ece08631074c63f2996279a06a -odm/lib64/libCOppLceTonemapAPI.so|30129dcefe6fa848e210d2c9d284ec67dc613b83|6995a9556108eefe9209a2d47f915beecd9a24e7 -odm/lib64/libDeVIS.so|c067c019df4b9f4151313fdf1f24d9ba477e0114 -odm/lib64/libEIS.so|119e4f32c3424836f59a62983b60d138df2e39d1 -odm/lib64/libFaceBeautyCap.so|720ae75918db88660c6dac05a4c7c0f91139fdc9 -odm/lib64/libFaceBeautyPre.so|e2d94b9e20f9802c7b3630f2a65642945e1af242 -odm/lib64/libOGLManager.so|c2c3a4fc7f3a514b7bf2c63ec6ed9f794376ac5e|c5dff2ed7063de0a9ed01343acf2d8de32b889bc -odm/lib64/libOPLUS_SCPortrait.so;FIX_SONAME|76cbba3cacab9af53beee375224d8024531261c4|4fd18a78235353de7df80b047295ce3b4b130e75 -odm/lib64/libPerfectColor.so|02072122a368d8ebf18371a2d3a080ef29dcff52 -odm/lib64/libPerfectlyClearCrux.so|aee168fa44e8ef142f6cc3bac389d53e060568e1 -odm/lib64/libPerfectlyClearCruxOpt.so|bb51740007c9836de2a55e5104c4105b2cc0c1c6 -odm/lib64/libPolarrRender.so|2b530a815aa98b2c1c14cbcf67eaa08d23f2bb9e -odm/lib64/libSNPE.so|c0d6987626b5c55c022bc9e7c6505c307e6ca3d9 -odm/lib64/libSNPE_G.so|11ba8cf9522ff49013cad25b229e2687fd1e0b3b -odm/lib64/libVDBayerHDR.so|a0231ba3447d18e96194ac2255b3403e62d9791d -odm/lib64/libVDBlurless.so;FIX_SONAME|a00b4509c6ee9de384eb335685128b6fb3a3976f|d4137bd39e5cdcf617253e1319d40add0f8561a0 -odm/lib64/libVDBlurlessAPI_v2.so|797efde1250fbc07e3c9df52737322e587331141 -odm/lib64/libVDDualCameraBlurlessAPI.so|abd719fdb46f4120b3dcaf6987967be09bbd6831 -odm/lib64/libVDExternal.so|3e25f17714469a6a8652124ce01a945eb9c8855d -odm/lib64/libVDPostureDetection.so|77eca3ecb91c104b8816d30c98f2561c0477a4e4 -odm/lib64/libVDSuperPhotoAPI.so|2ebdd701a4ab8efc3383ee5c835adb40b77cdf5c -odm/lib64/libVDUpScale.so|67226b02386fdea7d1d503b2f0d2ad8c66638f7c -odm/lib64/libWaterMark.so|9c2e8e8891398a643662b135659fbe1ec76024de -odm/lib64/libWaterMode.so|5c3de056b4c4fd3cfc1f87db00e40d27ca1fd963 -odm/lib64/lib_rectify.so|79fe02097a656aa208ac75e29afc2fba3c942a05 -odm/lib64/libaps_frame_registration.so|ae277a0d501e3d5f725fb971714d360b0f2477ab|6b325fe8b992a47ce431167ff26fb2d25b00684a -odm/lib64/libapsdarksight.so;FIX_SONAME|b6e68a7c29766f6282cc44c76d3120ee0335c2f9|a8731350907c978569b0aa9f5ed881f899deb448 -odm/lib64/libapsexif.so|601e9b84e5f93e2345fe0ddf8fec0b6bcb29bbed -odm/lib64/libapsjpeg.so|8c60c67b4cb396db2ff4371a500823a1e6561387 -odm/lib64/libarcsoft_distortion_correction.so|5102a34a42da747971f2070f49b06a0d7ba6ba61 -odm/lib64/libarcsoft_dualcam_bokeh_api.so|a29a7f821c756444ce693c34190b04c191b9da8e -odm/lib64/libarcsoft_dualcam_refocus_left.so|f6ae4f3d1652fc37b19cb4ab10032a7f740033ff -odm/lib64/libarcsoft_dualcam_refocus_preview.so|226f44e3dc38506395cd61782c4dd506a3679a76 -odm/lib64/libarcsoft_dualcam_refocus_uw.so|915dcde06a6f218d227c8b2d0f3612e07fdff05a -odm/lib64/libarcsoft_hdr_couple_api.so|3ed63cd3268ebe3325e84de50dbebb3bee085a7c -odm/lib64/libarcsoft_hdr_denoise_api.so|c770156ede7abc16c7e97bb063d643e1abe4c91e -odm/lib64/libarcsoft_hdrplus_hvx_stub.so|7caf41c3fe693bf5ab04e0845f8d8bc2596ef097 -odm/lib64/libarcsoft_high_dynamic_range.so|14a20bb81e16fad16f6729ac918677900d0f5c74 -odm/lib64/libarcsoft_high_dynamic_range_couple.so|0746fdfb3d710aecffac9d811ab0bcaf2295b4a9 -odm/lib64/libarcsoft_lensstaindetection.so|87673d5563a7e0461d021de733d07e28454fc2de -odm/lib64/libarcsoft_low_light_hdr.so|47f61166412a6f4ef8402f16a1d8e79a9146e000 -odm/lib64/libarcsoft_portraitSN_hvx_stub.so|7703a304111a49a8948da28eb07fcd01fe39f7e2 -odm/lib64/libarcsoft_portrait_super_night_raw.so|ba6a0f3d89e675f9cd13dc7a5243631e89cc06d4|e21490541ec524386f3effb07cc144ec00495acd -odm/lib64/libarcsoft_portraitsupernight.so|f66e169657999dcb8b422829ed2db73e35f55103 -odm/lib64/libarcsoft_scbokeh_video.so|5d2dafc3588e88f1ee8a2437346de3bd543ce989 -odm/lib64/libarcsoft_smart_denoise.so|df9e6f5192d13a215db971f5e954945f03323785 -odm/lib64/libarcsoft_super_night_raw.so|762355fe1a720c7a46defaf358ca4dce5a1b66b4 -odm/lib64/libarcsoft_supernight.so|f5653861b79d9a5f2191db951136f9c94ddf5e97 -odm/lib64/libc++_shared.so|d5ba162c9b3165804df81d3260b7dcf32a1a46be -odm/lib64/libhta.so|509462940cb6e09dc0b4551791f8346fc2e3f4e1 -odm/lib64/libhwconfigurationutil.so|65621b4a1baa6a4b682c6f7c41a0b2d27a6d9cc4 -odm/lib64/libhyperlapse.so|b40cf7a0dedd0088c552bd55ba4ac247b74755ae -odm/lib64/libml_util.so|9a6bfec008853042c1801aa87f501d9da4bde2e5 -odm/lib64/libmpbase.so|0bded0d4b202799bb5584c4a0415050a64c5abab -odm/lib64/libormshalclient.so|8cb4479c3358c9f271014b2bf5b31d53b3f9877e -odm/lib64/libsnpe_dsp_domains_v2.so|7907c89ee8f26ef339b1b87543c3227e14b25d49 -odm/lib64/libsnpe_dsp_domains_v3.so|f5471baacbcbefcda072e6dd70610f5eed2f7142 -odm/lib64/libsnpe_loader.so|f01cc1327b9f7b305fff9c346d337828885c8625 -odm/lib64/libsnpeml.so|880b4eae70646d75e0567ad48ef28d5aa7721261 -odm/lib64/libstblur_api.so|8e6485de17b20981394f80abf0230b1925aa9023 -odm/lib64/libstblur_capture_api.so|650367383b458cc8396308a2208274531c810178 -odm/lib64/libstface_fd_api.so|6575436e71e0391b9571bb8b9c98b580b22529eb -odm/lib64/libsymphony-cpu.so|521e63af19b3fd51b12bb48f95b3f58a90068cc2 -odm/lib64/libwatermark_photo.so|1e217096f6932806c9e08a9233a14217a52e8718 -odm/lib64/vendor.oplus.hardware.orms@1.0.so|b2ca234e8094fe21d0b033dae36d204c6df7af69 -vendor/etc/camera/M_Attribute_AG_BMW_1.1.0.model.hardcode|7609ec9780a75b6adde762df763be8c68e4d2ce6 -vendor/etc/camera/M_Attribute_Gender_Age_1.0.model.hardcode|265ee47baa0e26226916265596aff65849cfefef -vendor/lib/libcamxexternalformatutils.so|b9dfd9a6b24707811ff4d6aa9aa75abfee1c8c1e -vendor/lib64/camera/components/com.qti.camx.chiiqutils.so|378c231d11b499e0dddf37cafb5324141a22f733 -vendor/lib64/camera/components/com.qti.eisv2.so|9d9ec2592c4e9e662016881f618de5995483bc6c -vendor/lib64/camera/components/com.qti.eisv3.so|cf0f6368f6b52de094a342ae63e8f4f9da8dc54b -vendor/lib64/camera/components/com.qti.hvx.addconstant.so|925b8b8caef36bee88a4e6d219e6350fd0c9996f -vendor/lib64/camera/components/com.qti.hvx.binning.so|6dd388faa7ada1a1f41d2848a219019116488fe3 -vendor/lib64/camera/components/com.qti.node.customhwnode.so|41c9f5a69d5c3d8afc0248c8aad742a4617e0821 -vendor/lib64/camera/components/com.qti.node.depth.so|4066a07a099be43515944d698dd54aa779050743 -vendor/lib64/camera/components/com.qti.node.dewarp.so|a32b68d30590c567dc3c6af65a105c8bba3daea6 -vendor/lib64/camera/components/com.qti.node.dummyrtb.so|a53eb31c6cb381f1ecd4e8aa210462ac26c3a06d -vendor/lib64/camera/components/com.qti.node.dummysat.so|7c396855acb9e8848e5f492c0339b9fa40033a4c -vendor/lib64/camera/components/com.qti.node.eisv2.so|8446a82caceff592c66cc6da435ea6665603a365 -vendor/lib64/camera/components/com.qti.node.eisv3.so|508872218723a0c85ae17c0de92578afb77561ce -vendor/lib64/camera/components/com.qti.node.fcv.so|e45d19d46b048ae7ea4d465412b93ac0a3496570 -vendor/lib64/camera/components/com.qti.node.formatconversion.so|d583b3d902a05b044b15f4526a22486417e9b131 -vendor/lib64/camera/components/com.qti.node.gpu.so|c443ac5e5f538d03b32958619045bc86269c3fb1 -vendor/lib64/camera/components/com.qti.node.memcpy.so|5696a06014902437fffef5681717357ef059a670 -vendor/lib64/camera/components/com.qti.node.ml.so|8cd3507a72f5b46842e2dd4a00027f0be24638ee -vendor/lib64/camera/components/com.qti.node.remosaic.so|c32adbeaf71476489c2f75545dfecb6104735ee7 -vendor/lib64/camera/components/com.qti.node.stich.so|691ddbaaa57843fb8b35b5aa894cc03412c81d85 -vendor/lib64/camera/components/com.qti.node.swaidenoiser.so|c753b9725d01bf30d4fd962a6c2b1a44c3a04b1f -vendor/lib64/camera/components/com.qti.node.swbestats.so|5d728cdfe55520e4fc6ad6b2db7ebd466335f25a -vendor/lib64/camera/components/com.qti.node.swcac.so|b0cfae6274e9d352169c57f4c10651f38d924bf6 -vendor/lib64/camera/components/com.qti.node.swlsc.so|4422229dd06e86a8db35daed8be1167cab43a912 -vendor/lib64/camera/components/com.qti.node.swmctf.so|e7b7e7c3711ecfdcb9b6baaabd5c2cee74b7d68b -vendor/lib64/camera/components/com.qti.node.swmfnr.so|1b189247328d980d5f4d3cc7e463fe31511654b6 -vendor/lib64/camera/components/com.qti.node.swpdpc.so|058ae86117c2d89c661fe4a5df5a6cabf6d1904b -vendor/lib64/camera/components/com.qti.node.swpreprocess.so|fc78ac52c49d133bdf3a664c98695c3075300ec3 -vendor/lib64/camera/components/com.qti.node.swregistration.so|c3a044a8f4b62bf9640cd3fbf6336322946ad48c -vendor/lib64/camera/components/com.qti.stats.aec.so|2f7fb397ee4689b79b768f0b210615998fb411c3 -vendor/lib64/camera/components/com.qti.stats.aecwrapper.so|047dafcbf3cb855a4ee6751c06ae4a2652c25d79 -vendor/lib64/camera/components/com.qti.stats.aecxcore.so|89c5fad53fdc4f0b3ebe4dd3362032cd5525212f -vendor/lib64/camera/components/com.qti.stats.af.so|960ba3571943fdc9fca347e27cea4f7937307bb2 -vendor/lib64/camera/components/com.qti.stats.afd.so|d023dd37e2a0acbd19048f42d31033db2415416e -vendor/lib64/camera/components/com.qti.stats.afwrapper.so|a039c7bb41adf20db9867532398564da96db3a41 -vendor/lib64/camera/components/com.qti.stats.asd.so|589ec0d2de1cd9c47e95deb4645a6cda01655c61 -vendor/lib64/camera/components/com.qti.stats.awb.so|59ba5ad8e9807beaed3a00c57f0bbaeafed0f57e -vendor/lib64/camera/components/com.qti.stats.awbwrapper.so|f49e136bffffed16f613fbde0228b73e45cc6215 -vendor/lib64/camera/components/com.qti.stats.cnndriver.so|3128c575c0a8c52aa42df7d4c0c60f7740059571 -vendor/lib64/camera/components/com.qti.stats.haf.so|7a543be75f4239092ca0b0c70c3d6e9fe5a76bc5 -vendor/lib64/camera/components/com.qti.stats.hafoverride.so|0f7d1c851751f4283d53d19404cbf4f80c4a03a8 -vendor/lib64/camera/components/com.qti.stats.pdlib.so|bf1b3f725a7aa233fa671419d4ea57ac6dc3b309 -vendor/lib64/camera/components/com.qti.stats.pdlibsony.so|373928bd31edbd620e53b5dfba37068b86d632c3 -vendor/lib64/camera/components/com.qti.stats.pdlibwrapper.so|19dde86984c8a0cec9d1f3db62282e5ddc8eb3e9 -vendor/lib64/camera/components/com.qti.stats.tracker.so|a9fa50c17e335da2b039e0a4708499ed3485bfb3 -vendor/lib64/camera/components/com.qtistatic.stats.aec.so|3403baaa5357733ec640f3fd25e258c40996d845 -vendor/lib64/camera/components/com.qtistatic.stats.af.so|b7671c14c2e65505acfc0b21884d97e59608808e -vendor/lib64/camera/components/com.qtistatic.stats.awb.so|c76e994f6198b828d97464fb68170cebf46e5252 -vendor/lib64/camera/components/com.qtistatic.stats.pdlib.so|be48eb8183f84ca53173c921baa66976f95482d8 -vendor/lib64/camera/components/libdepthmapwrapper_secure.so|0712281e292791f8813bb83f47f9f418b0463ef9 -vendor/lib64/camera/fdconfigpreview.bin|caf04e55d04ba717c8618faa125c1708efe44c1a -vendor/lib64/camera/fdconfigpreviewlite.bin|e95052671b9eec7ff53b665482b7b85b7dac0c62 -vendor/lib64/camera/fdconfigvideo.bin|c3303efadaa16495aee7e508a07f9000a435e8a2 -vendor/lib64/camera/fdconfigvideolite.bin|2d4648c313fa28fb83272f39ad64fd3bd0ff826d -vendor/lib64/hw/camera.qcom.so|cc31f6e349cad62cbd3e067fc38547c90e685d4f|8d27e06ac937c1bb49f1910b828068ac74e5c3c3 -vendor/lib64/hw/com.qti.chi.override.so|9637ffe7bfaa2799b7cf86973f3e7d8fbfa3344b -vendor/lib64/com.qti.chiusecaseselector.so|a35b657ea98415d110fb95c5b15066bb58dbdc34 -vendor/lib64/com.qti.feature2.anchorsync.so|d17bc4f703021706c98d5418cb20eb5b707f6cc1 -vendor/lib64/com.qti.feature2.demux.so|d35be36b8f793c0db5f748681633c11d155dd8b8 -vendor/lib64/com.qti.feature2.derivedoffline.so|88bade4b26ddc36211d71345f36532f8ff000424 -vendor/lib64/com.qti.feature2.frameselect.so|a65ed980d7855fc5422f5553cf1f3309851d14ed -vendor/lib64/com.qti.feature2.fusion.so|b4a400620b372670dae5b9469c051ee5c70e9d48 -vendor/lib64/com.qti.feature2.generic.so|c3767970f0c19fddb51d3197a440c22688e2d055 -vendor/lib64/com.qti.feature2.gs.cedros.so|7a4751c20028109414be7b3d062feae06d919c8d -vendor/lib64/com.qti.feature2.gs.kamorta.so|099cc1b33811eab18c92e353a495cd6c7a738887 -vendor/lib64/com.qti.feature2.gs.kodiak.so|9319eb376c67ceb1af3b694f7b68f14710d26908 -vendor/lib64/com.qti.feature2.gs.mannar.so|04908c0620848b1fc6dbdb00597b8b617c79776d -vendor/lib64/com.qti.feature2.gs.sdm865.so|a7fe5b8c666ef276efde3d70123410c1dc154986 -vendor/lib64/com.qti.feature2.gs.sm8350.so|ce3e28dfb61c45cde595648e55dbc2d15bbb8584 -vendor/lib64/com.qti.feature2.hdr.so|adbbb1731ea3f38c5165385a087bec9fdbfc4963 -vendor/lib64/com.qti.feature2.mcreprocrt.so|4559cf262474034dafe2d6acc1bcc101ee9d0d49 -vendor/lib64/com.qti.feature2.memcpy.so|9013a28adccb2dbd4439b237e8b08cc285796134 -vendor/lib64/com.qti.feature2.mfsr.so|8adb878619a3e447b98f504a833bdd15fd0d1e46 -vendor/lib64/com.qti.feature2.ml.so|a7784ea3ee137d9476e0e4c8968b062f1b5d9d7d -vendor/lib64/com.qti.feature2.mux.so|16492b1d07fcb23d7312f977e5450475a3511ef7 -vendor/lib64/com.qti.feature2.qcfa.so|18a567a29f3d508f39674a89f0e90993d0c80652 -vendor/lib64/com.qti.feature2.rawhdr.so|d2015cbf139d76d97087c88c08b94b1bf5f15a82 -vendor/lib64/com.qti.feature2.realtimeserializer.so|8b352061ecf3f7c10037bc6289dddee3ee57f03e -vendor/lib64/com.qti.feature2.rt.so|dc12483d467459ae4051297ba7e6146880b1136e -vendor/lib64/com.qti.feature2.rtmcx.so|cf60e1f164d147e018f31403fa7b53c728b7be52 -vendor/lib64/com.qti.feature2.serializer.so|2bc51b2a4b0ee3745469bad6d46a5bc575019cd8 -vendor/lib64/com.qti.feature2.statsregeneration.so|d18fb4edf002f30036c453d8179a4e5eeadbcbac -vendor/lib64/com.qti.feature2.stub.so|0fcff1fa75faae44d729c23067d505fe72aabc75 -vendor/lib64/com.qti.feature2.swmf.so|3ecd1ae76efc1e449102796f65eaa5a52fcdd7e0 -vendor/lib64/com.qti.settings.mannar.so|43f4f7c007d3b0a191a38c34da8d8343b8339411 -vendor/lib64/com.qti.stats.common.so|72bfddaaee97b64e1283e4c8fea4147c34ff4605 -vendor/lib64/com.qualcomm.mcx.distortionmapper.so|cb4e21304cd35cd293e6e70744e44be2460b2ada -vendor/lib64/com.qualcomm.mcx.linearmapper.so|82ba5b9baacce2ee942ed9118efd369ec529ce2a -vendor/lib64/com.qualcomm.mcx.policy.mfl.so|4de712246d2c2414b5710823911edd2d8f171017 -vendor/lib64/com.qualcomm.qti.mcx.usecase.extension.so|9c9b1454707f56b9bd629ce3f482cad442a3ab2c -vendor/lib64/libSonyIMX471RmscLibrary.so|eee34c1f29a14e542d906e36712436c1d877023d -vendor/lib64/libaidenoiser.so|425521468f0a5b440e6bf4197ec6251e9fa2f6a6 -vendor/lib64/libbitmlengine.so|495ecaedc87fbc639619225eab09d79d3ae2764f -vendor/lib64/libcamera_nn_stub.so|532001484fc848b9813d9fd9aac07e6cc265a38d -vendor/lib64/libcamerapostproc.so|ef502835c23f674103f672471369e3478df20a2a -vendor/lib64/libcamxexternalformatutils.so|169a14a6524d1d1b387a1329455001fc5f7c6625 -vendor/lib64/libcamxfacialfeatures.so|c4c73ee7cebc66100ed502df7d3dc7b125e30c0c -vendor/lib64/libcamxfdalgo.so|a75e33ffaadbe838056ad01470b7c21de17fea0e -vendor/lib64/libcamxfdengine.so|0812f5d395d982a6ab19dcf53751684d5406560f -vendor/lib64/libcamxifestriping.so|ffc0b6954d725b44f4173434371a63912bd6494b -vendor/lib64/libcamximageformatutils.so|c2443e3a85ddbfd1af4bcc46df15a33434759607 -vendor/lib64/libcamxqsatalgo.so|21b9881369f92dad697dd2698a0b089e9f41e781 -vendor/lib64/libcamxstatscore.so|c8294aa5317cab66a2bfa786aecff08d726510f7 -vendor/lib64/libcamxswispiqmodule.so|8e4421edbbece0447d06d73f4238ef14bdd9dfe2 -vendor/lib64/libcamxswprocessalgo.so|b36350ba2880aaaf8a8fd3446944eb0d5ef6bca5 -vendor/lib64/libcamxtintlessalgo.so|d05f07943e1fb7c70d85133cad4c4eeeabb40d38 -vendor/lib64/libchilog.so|a25ff86fe105b225c177915530d5e87cc72db80f -vendor/lib64/libcom.qti.chinodeutils.so|3da25bdd6522868d2781a44ffa7f8cb066a6dcb4 -vendor/lib64/libcvface_api.so|242c6653a4431c2f7ad5546e18b1df092750c9ed -vendor/lib64/libipebpsstriping.so|a5239d680297225690c317def678b26bd1dbcdae -vendor/lib64/libjpege.so|f7491279778f6b5bc55e4760ac9cf565b790b64d -vendor/lib64/libmctfengine_stub.so|2bb82a899acca1997658b85d2a34dd082431cace -vendor/lib64/libmidasserviceintf.so|c98856d48b3e8730aba65583775f56405addba13 -vendor/lib64/libmmcamera_bestats.so|14804b224fff0d6f66a68d1444a8a334e44d281a -vendor/lib64/libmmcamera_cac3.so|2cbc9bb177ad463bfb2fc7d4e8ca395534e67e91 -vendor/lib64/libmmcamera_faceproc.so|e96b400c33efa56f7c0d01b642ca1cf277b380ac -vendor/lib64/libmmcamera_faceproc2.so|20c36bb50f34e407863d6c0ede174aeff87acd32 -vendor/lib64/libmmcamera_lscv35.so|03171d55f2802d28619488fc8f06ab6c1dbdbf5a -vendor/lib64/libmmcamera_mfnr.so|815d5d25548dcb01ed20f976712671ee57e4923e -vendor/lib64/libmmcamera_mfnr_t4.so|7cdbb3bc2d38d21391ac2fab49eb3ee1ac4e111f -vendor/lib64/libmmcamera_pdpc.so|32529b4f130cd9988154ff6ff628e5f3ef4845cc -vendor/lib64/libnanopb.so|2cb742ac49ef82551c061aab6758b8b19a557409 -vendor/lib64/libofflinedump.so|b2cfbe19f7537b789f254bace38bb700ebbba36a -vendor/lib64/libofflinelog.so|6946dfc55d6d05ba67b6f23078045612493618ad -vendor/lib64/libopencv.so|3290c7e4b89dbcd895d20b1c56313e5f2ec31d34 -vendor/lib64/libopestriping.so|d8606c7e91e622f659642f69a4f55651437a0a45 -vendor/lib64/libos.so|0b19c0d59a1c0e4e6a7a624d17b9f8d7b744238a -vendor/lib64/libqll10.so|81357eefbb42a77a9843035a0797ac6ba0d7ba78 -vendor/lib64/libqllengine.so|7080d8c165b281256fa998f2dfd76931db29f293 -vendor/lib64/libswregistrationalgo.so|ac2d549854f31e7dea3ceddf25d1ee12b6210121 -vendor/lib64/libsynx.so|685190192da44081f2098a3178ec2f633b1e407e -vendor/lib64/libtfestriping.so|2f19ddb0bf6c68381973a28aaa5b3a7d766ff9c6 -vendor/lib64/libthreadutils.so|878a15983cad41932b47b83b0a98c9d0c093bd92 -vendor/lib64/vendor.oplus.hardware.cammidasservice@1.0.so|76c31ae9d6012e78170c33b74642d4b5ff98b369 -vendor/lib64/vendor.qti.hardware.camera.postproc@1.0-service-impl.so|12a7667d09c0729ceaf630aaa135194ce94f01e1 +# Camera +odm/lib64/libhwconfigurationutil.so +vendor/bin/hw/vendor.oneplus.hardware.camera@1.0-service +vendor/bin/hw/vendor.oneplus.hardware.CameraMDMHIDL@1.0-service +vendor/etc/camera/filters_lut/B1aMqioxf +vendor/etc/camera/filters_lut/B1nmcmWbG +vendor/etc/camera/filters_lut/B1si_XbZz +vendor/etc/camera/filters_lut/B1VLf4peM +vendor/etc/camera/filters_lut/BJJAwoigM +vendor/etc/camera/filters_lut/BJyKIwqxz +vendor/etc/camera/filters_lut/black_gold.bin +vendor/etc/camera/filters_lut/bowu-2.1.cube.rgb.bin +vendor/etc/camera/filters_lut/bright_coloured.bin +vendor/etc/camera/filters_lut/BycYf7WWz +vendor/etc/camera/filters_lut/ByW7g4bbf +vendor/etc/camera/filters_lut/ByYo3If +vendor/etc/camera/filters_lut/default +vendor/etc/camera/filters_lut/EyxRbD2UCe +vendor/etc/camera/filters_lut/f_bin_hideaki +vendor/etc/camera/filters_lut/f_candy_water_weak.cube.rgb.bin +vendor/etc/camera/filters_lut/f_contrast_gray_face_dark +vendor/etc/camera/filters_lut/f_fuji_strong.cube.rgb.bin +vendor/etc/camera/filters_lut/f_japan_strong.cube.rgb.bin +vendor/etc/camera/filters_lut/interstellar_space.bin +vendor/etc/camera/filters_lut/jiari-2.0.cube.rgb.bin +vendor/etc/camera/filters_lut/lvtu-2.0.cube.rgb.bin +vendor/etc/camera/filters_lut/meiwei-2.2.cube.rgb.bin +vendor/etc/camera/filters_lut/neon-2020.cube.rgb.bin +vendor/etc/camera/filters_lut/oppo_video_filter_black_and_white +vendor/etc/camera/filters_lut/oppo_video_filter_highlight +vendor/etc/camera/filters_lut/oppo_video_filter_ins +vendor/etc/camera/filters_lut/oppo_video_filter_natal +vendor/etc/camera/filters_lut/oppo_video_filter_olympus +vendor/etc/camera/filters_lut/oppo_video_filter_plain +vendor/etc/camera/filters_lut/oppo_video_filter_show +vendor/etc/camera/filters_lut/oppo_video_filter_solar +vendor/etc/camera/filters_lut/oppo_video_filter_strong +vendor/etc/camera/filters_lut/oppo_video_filter_west +vendor/etc/camera/filters_lut/p4_1.cube.rgb.bin +vendor/etc/camera/filters_lut/p4_2.cube.rgb.bin +vendor/etc/camera/filters_lut/p4_3.cube.rgb.bin +vendor/etc/camera/filters_lut/p4_4.cube.rgb.bin +vendor/etc/camera/filters_lut/qiuri-2.0.cube.rgb.bin +vendor/etc/camera/filters_lut/r1JaFSZZG +vendor/etc/camera/filters_lut/r1PrfoolG +vendor/etc/camera/filters_lut/realme-black-gold-1.1-RGB.CUBE.rgb.bin +vendor/etc/camera/filters_lut/realme-cyberpunk-RGB.CUBE.rgb.bin +vendor/etc/camera/filters_lut/realme-infra-RGB.CUBE.rgb.bin +vendor/etc/camera/filters_lut/red-red.cube.rgb.bin +vendor/etc/camera/filters_lut/rJ5g5vPWG +vendor/etc/camera/filters_lut/rJxJtmaez +vendor/etc/camera/filters_lut/rkMhq4ZWf +vendor/etc/camera/filters_lut/rkx5u4Zbf +vendor/etc/camera/filters_lut/senlin-2.0.cube.rgb.bin +vendor/etc/camera/filters_lut/SJ3mbr6ef +vendor/etc/camera/filters_lut/SkpZ8ebbz +vendor/etc/camera/filters_lut/sky-blue.cube.rgb.bin +vendor/etc/camera/filters_lut/Sy4uLSTgf +vendor/etc/camera/filters_lut/Syt2KeZZf +vendor/etc/camera/filters_lut/tree-green.cube.rgb.bin +vendor/etc/camera/filters_lut/yuanqi-2.2s.cube.rgb.bin +vendor/etc/camera/filters_res/film_grain_small.bin +vendor/etc/camera/filters_res/lut_all_points.png +vendor/etc/camera/filters_res/overlay_p4_3_weak.png +vendor/etc/camera/PerfectColorSet/default/colorLut0 +vendor/etc/camera/PerfectColorSet/default/colorLut1 +vendor/etc/camera/PerfectColorSet/default/colorLut10 +vendor/etc/camera/PerfectColorSet/default/colorLut11 +vendor/etc/camera/PerfectColorSet/default/colorLut12 +vendor/etc/camera/PerfectColorSet/default/colorLut13 +vendor/etc/camera/PerfectColorSet/default/colorLut14 +vendor/etc/camera/PerfectColorSet/default/colorLut15 +vendor/etc/camera/PerfectColorSet/default/colorLut16 +vendor/etc/camera/PerfectColorSet/default/colorLut17 +vendor/etc/camera/PerfectColorSet/default/colorLut18 +vendor/etc/camera/PerfectColorSet/default/colorLut2 +vendor/etc/camera/PerfectColorSet/default/colorLut3 +vendor/etc/camera/PerfectColorSet/default/colorLut4 +vendor/etc/camera/PerfectColorSet/default/colorLut5 +vendor/etc/camera/PerfectColorSet/default/colorLut6 +vendor/etc/camera/PerfectColorSet/default/colorLut7 +vendor/etc/camera/PerfectColorSet/default/colorLut8 +vendor/etc/camera/PerfectColorSet/default/colorLut9 +vendor/etc/camera/PerfectColorSet/default/curveLut0 +vendor/etc/camera/PerfectColorSet/default/curveLut1 +vendor/etc/camera/PerfectColorSet/default/curveLut10 +vendor/etc/camera/PerfectColorSet/default/curveLut11 +vendor/etc/camera/PerfectColorSet/default/curveLut12 +vendor/etc/camera/PerfectColorSet/default/curveLut13 +vendor/etc/camera/PerfectColorSet/default/curveLut14 +vendor/etc/camera/PerfectColorSet/default/curveLut15 +vendor/etc/camera/PerfectColorSet/default/curveLut16 +vendor/etc/camera/PerfectColorSet/default/curveLut17 +vendor/etc/camera/PerfectColorSet/default/curveLut18 +vendor/etc/camera/PerfectColorSet/default/curveLut2 +vendor/etc/camera/PerfectColorSet/default/curveLut3 +vendor/etc/camera/PerfectColorSet/default/curveLut4 +vendor/etc/camera/PerfectColorSet/default/curveLut5 +vendor/etc/camera/PerfectColorSet/default/curveLut6 +vendor/etc/camera/PerfectColorSet/default/curveLut7 +vendor/etc/camera/PerfectColorSet/default/curveLut8 +vendor/etc/camera/PerfectColorSet/default/curveLut9 +vendor/etc/camera/PerfectColorSet/default/frameSet.ini +vendor/etc/camera/PerfectColorSet/default/param0.ini +vendor/etc/camera/PerfectColorSet/default/param10.ini +vendor/etc/camera/PerfectColorSet/default/param11.ini +vendor/etc/camera/PerfectColorSet/default/param12.ini +vendor/etc/camera/PerfectColorSet/default/param13.ini +vendor/etc/camera/PerfectColorSet/default/param14.ini +vendor/etc/camera/PerfectColorSet/default/param15.ini +vendor/etc/camera/PerfectColorSet/default/param16.ini +vendor/etc/camera/PerfectColorSet/default/param17.ini +vendor/etc/camera/PerfectColorSet/default/param18.ini +vendor/etc/camera/PerfectColorSet/default/param1.ini +vendor/etc/camera/PerfectColorSet/default/param2.ini +vendor/etc/camera/PerfectColorSet/default/param3.ini +vendor/etc/camera/PerfectColorSet/default/param4.ini +vendor/etc/camera/PerfectColorSet/default/param5.ini +vendor/etc/camera/PerfectColorSet/default/param6.ini +vendor/etc/camera/PerfectColorSet/default/param7.ini +vendor/etc/camera/PerfectColorSet/default/param8.ini +vendor/etc/camera/PerfectColorSet/default/param9.ini +vendor/etc/camera/PerfectColorSet/default/photoSet.ini +vendor/etc/camera/PerfectColorSet/default/platformSet.ini +vendor/etc/camera/PerfectColorSet/default/sceneList.txt +vendor/etc/camera/singleblur/dbl_small_481.model +vendor/etc/camera/singleblur/license_release.lic +vendor/etc/camera/gasryuv_1.2_wp.model +vendor/etc/camera/M_Attribute_AG_BMW_1.1.0.model.hardcode +vendor/etc/camera/M_Attribute_Gender_Age_1.0.model.hardcode +vendor/etc/init/vendor.oneplus.hardware.camera@1.0-service.rc +vendor/etc/init/vendor.oneplus.hardware.CameraMDMHIDL@1.0-service.rc +vendor/lib/libcamxexternalformatutils.so +vendor/lib64/camera/components/com.qti.camx.chiiqutils.so +vendor/lib64/camera/components/com.qti.eisv2.so +vendor/lib64/camera/components/com.qti.eisv3.so +vendor/lib64/camera/components/com.qti.hvx.addconstant.so +vendor/lib64/camera/components/com.qti.hvx.binning.so +vendor/lib64/camera/components/com.qti.node.customhwnode.so +vendor/lib64/camera/components/com.qti.node.depth.so +vendor/lib64/camera/components/com.qti.node.dewarp.so +vendor/lib64/camera/components/com.qti.node.dummyrtb.so +vendor/lib64/camera/components/com.qti.node.dummysat.so +vendor/lib64/camera/components/com.qti.node.eisv2.so +vendor/lib64/camera/components/com.qti.node.eisv3.so +vendor/lib64/camera/components/com.qti.node.fcv.so +vendor/lib64/camera/components/com.qti.node.formatconversion.so +vendor/lib64/camera/components/com.qti.node.gpu.so +vendor/lib64/camera/components/com.qti.node.memcpy.so +vendor/lib64/camera/components/com.qti.node.ml.so +vendor/lib64/camera/components/com.qti.node.remosaic.so +vendor/lib64/camera/components/com.qti.node.stich.so +vendor/lib64/camera/components/com.qti.node.swaidenoiser.so +vendor/lib64/camera/components/com.qti.node.swbestats.so +vendor/lib64/camera/components/com.qti.node.swcac.so +vendor/lib64/camera/components/com.qti.node.swlsc.so +vendor/lib64/camera/components/com.qti.node.swmctf.so +vendor/lib64/camera/components/com.qti.node.swmfnr.so +vendor/lib64/camera/components/com.qti.node.swpdpc.so +vendor/lib64/camera/components/com.qti.node.swpreprocess.so +vendor/lib64/camera/components/com.qti.node.swregistration.so +vendor/lib64/camera/components/com.qtistatic.stats.aec.so +vendor/lib64/camera/components/com.qtistatic.stats.af.so +vendor/lib64/camera/components/com.qtistatic.stats.awb.so +vendor/lib64/camera/components/com.qtistatic.stats.pdlib.so +vendor/lib64/camera/components/com.qti.stats.aec.so +vendor/lib64/camera/components/com.qti.stats.aecwrapper.so +vendor/lib64/camera/components/com.qti.stats.aecxcore.so +vendor/lib64/camera/components/com.qti.stats.afd.so +vendor/lib64/camera/components/com.qti.stats.af.so +vendor/lib64/camera/components/com.qti.stats.afwrapper.so +vendor/lib64/camera/components/com.qti.stats.asd.so +vendor/lib64/camera/components/com.qti.stats.awb.so +vendor/lib64/camera/components/com.qti.stats.awbwrapper.so +vendor/lib64/camera/components/com.qti.stats.cnndriver.so +vendor/lib64/camera/components/com.qti.stats.hafoverride.so +vendor/lib64/camera/components/com.qti.stats.haf.so +vendor/lib64/camera/components/com.qti.stats.pdlib.so +vendor/lib64/camera/components/com.qti.stats.pdlibsony.so +vendor/lib64/camera/components/com.qti.stats.pdlibwrapper.so +vendor/lib64/camera/components/com.qti.stats.tracker.so +vendor/lib64/camera/components/libdepthmapwrapper_secure.so +vendor/lib64/camera/com.qti.sensor.gc02m1b_mono.so +vendor/lib64/camera/com.qti.sensormodule.gc02m1b_mono.bin +vendor/lib64/camera/com.qti.sensormodule.ov02b10_macro.bin +vendor/lib64/camera/com.qti.sensormodule.sunny_ov13b10.bin +vendor/lib64/camera/com.qti.sensormodule.sy_imx471.bin +vendor/lib64/camera/com.qti.sensor.ov02b10_macro.so +vendor/lib64/camera/com.qti.sensor.ov13b10.so +vendor/lib64/camera/com.qti.sensor.sy_imx471.so +vendor/lib64/camera/com.qti.tuned.default_front.bin +vendor/lib64/camera/com.qti.tuned.default_macro.bin +vendor/lib64/camera/com.qti.tuned.default_mono.bin +vendor/lib64/camera/com.qti.tuned.default_rear.bin +vendor/lib64/hw/camera.qcom.so +vendor/lib64/hw/com.qti.chi.override.so +vendor/lib64/com.qti.chiusecaseselector.so +vendor/lib64/com.qti.feature2.anchorsync.so +vendor/lib64/com.qti.feature2.demux.so +vendor/lib64/com.qti.feature2.derivedoffline.so +vendor/lib64/com.qti.feature2.frameselect.so +vendor/lib64/com.qti.feature2.fusion.so +vendor/lib64/com.qti.feature2.generic.so +vendor/lib64/com.qti.feature2.gs.cedros.so +vendor/lib64/com.qti.feature2.gs.kamorta.so +vendor/lib64/com.qti.feature2.gs.mannar.so +vendor/lib64/com.qti.feature2.gs.sdm865.so +vendor/lib64/com.qti.feature2.gs.sm8350.so +vendor/lib64/com.qti.feature2.hdr.so +vendor/lib64/com.qti.feature2.mcreprocrt.so +vendor/lib64/com.qti.feature2.memcpy.so +vendor/lib64/com.qti.feature2.mfsr.so +vendor/lib64/com.qti.feature2.ml.so +vendor/lib64/com.qti.feature2.mux.so +vendor/lib64/com.qti.feature2.qcfa.so +vendor/lib64/com.qti.feature2.rawhdr.so +vendor/lib64/com.qti.feature2.realtimeserializer.so +vendor/lib64/com.qti.feature2.rt.so +vendor/lib64/com.qti.feature2.rtmcx.so +vendor/lib64/com.qti.feature2.serializer.so +vendor/lib64/com.qti.feature2.statsregeneration.so +vendor/lib64/com.qti.feature2.stub.so +vendor/lib64/com.qti.feature2.swmf.so +vendor/lib64/com.qti.settings.mannar.so +vendor/lib64/com.qti.stats.common.so +vendor/lib64/com.qualcomm.mcx.distortionmapper.so +vendor/lib64/com.qualcomm.mcx.linearmapper.so +vendor/lib64/com.qualcomm.mcx.policy.mfl.so +vendor/lib64/com.qualcomm.qti.mcx.usecase.extension.so +vendor/lib64/libaidenoiser.so +vendor/lib64/libAlgoProcess.so +vendor/lib64/libapsexif.so +vendor/lib64/libapsjpeg.so +vendor/lib64/libarcsoft_calibverify_TriCamera.so +vendor/lib64/libarcsoft_dualcam_bokeh_api.so +vendor/lib64/libarcsoft_dualcam_refocus_left.so +vendor/lib64/libarcsoft_dualcam_refocus_preview.so +vendor/lib64/libarcsoft_dualcam_refocus_uw.so +vendor/lib64/libarcsoft_hdr_couple_api.so +vendor/lib64/libarcsoft_hdr_denoise_api.so +vendor/lib64/libarcsoft_high_dynamic_range.so +vendor/lib64/libarcsoft_high_dynamic_range_couple.so +vendor/lib64/libarcsoft_low_light_hdr.so +vendor/lib64/libarcsoft_portraitsupernight.so +vendor/lib64/libarcsoft_smart_denoise.so +vendor/lib64/libarcsoft_supernight.so +vendor/lib64/libarcsoft_tricam_calibration.so +vendor/lib64/libarcsoft_tricam_verification.so +vendor/lib64/libbitmlengine.so +vendor/lib64/libc++_shared.so +vendor/lib64/libcamera_nn_stub.so +vendor/lib64/libcamerapostproc.so +vendor/lib64/libcamxexternalformatutils.so +vendor/lib64/libcamxfacialfeatures.so +vendor/lib64/libcamxfdalgo.so +vendor/lib64/libcamxfdengine.so +vendor/lib64/libcamxifestriping.so +vendor/lib64/libcamximageformatutils.so +vendor/lib64/libcamxqsatalgo.so +vendor/lib64/libcamxstatscore.so +vendor/lib64/libcamxswispiqmodule.so +vendor/lib64/libcamxswprocessalgo.so +vendor/lib64/libcamxtintlessalgo.so +vendor/lib64/libchilog.so +vendor/lib64/libcom.qti.chinodeutils.so +vendor/lib64/libCOppLceTonemapAPI.so +vendor/lib64/libcvface_api.so +vendor/lib64/libhta.so +vendor/lib64/libipebpsstriping.so +vendor/lib64/libjpege.so +vendor/lib64/libmctfengine_stub.so +vendor/lib64/libmmcamera_bestats.so +vendor/lib64/libmmcamera_cac3.so +vendor/lib64/libmmcamera_faceproc.so +vendor/lib64/libmmcamera_faceproc2.so +vendor/lib64/libmmcamera_lscv35.so +vendor/lib64/libmmcamera_mfnr.so +vendor/lib64/libmmcamera_mfnr_t4.so +vendor/lib64/libmmcamera_pdpc.so +vendor/lib64/libmpbase.so +vendor/lib64/libnanopb.so +vendor/lib64/libofflinedump.so +vendor/lib64/libofflinelog.so +vendor/lib64/libopencv.so +vendor/lib64/libopestriping.so +vendor/lib64/libos.so +vendor/lib64/libPerfectColor.so +vendor/lib64/libPerfectlyClearCruxOpt.so +vendor/lib64/libPolarrRender.so +vendor/lib64/libqll10.so +vendor/lib64/libqllengine.so +vendor/lib64/libSNPE.so +vendor/lib64/libsnpe_dsp_domains_v2.so +vendor/lib64/libsnpe_dsp_domains_v3.so +vendor/lib64/libSonyIMX471RmscLibrary.so +vendor/lib64/libstface_fd_api.so +vendor/lib64/libswregistrationalgo.so +vendor/lib64/libsynx.so +vendor/lib64/libtfestriping.so +vendor/lib64/libthreadutils.so +vendor/lib64/libVDBlurless.so +vendor/lib64/libVDBlurlessAPI_v2.so +vendor/lib64/libVDDualCameraBlurlessAPI.so +vendor/lib64/libVDPostureDetection.so +vendor/lib64/libVDSuperPhotoAPI.so +vendor/lib64/libVDUpScale.so +vendor/lib64/vendor.oneplus.hardware.camera@1.0.so +vendor/lib64/vendor.oneplus.hardware.CameraMDMHIDL@1.0.so +vendor/lib64/vendor.qti.hardware.camera.postproc@1.0-service-impl.so # CDSP vendor/bin/cdsprpcd @@ -798,14 +456,11 @@ vendor/lib64/libsysmon_cdsp_skel.so # Charger vendor/bin/hvdcp_opti -vendor/bin/init.qti.chg_policy.sh vendor/etc/init/vendor.qti.hardware.charger_monitor@1.0-service.rc -vendor/etc/charger_fstab.qti # CNE -vendor/app/CneApp/CneApp.apk;REQUIRED=CneApp.libvndfwk_detect_jni.qti_symlink +-vendor/app/CneApp/CneApp.apk vendor/bin/cnd -vendor/bin/mutualex vendor/etc/cne/wqeclient/ATT/ATT_profile1.xml vendor/etc/cne/wqeclient/ATT/ATT_profile2.xml vendor/etc/cne/wqeclient/ATT/ATT_profile3.xml @@ -833,12 +488,8 @@ vendor/etc/cne/wqeclient/VZW/VZW_profile3.xml vendor/etc/cne/wqeclient/VZW/VZW_profile4.xml vendor/etc/cne/wqeclient/VZW/VZW_profile5.xml vendor/etc/cne/wqeclient/VZW/VZW_profile6.xml -vendor/etc/cne/mwqem.conf -vendor/etc/cne/profileMwqem.xml -vendor/etc/default-permissions/com.qualcomm.qti.cne.xml vendor/etc/init/cnd.rc -vendor/etc/init/mutualex.rc -vendor/lib/libxml.so +vendor/etc/default-permissions/com.qualcomm.qti.cne.xml vendor/lib64/libcne.so vendor/lib64/libcneapiclient.so vendor/lib64/libcneoplookup.so @@ -849,7 +500,7 @@ vendor/lib64/libxml.so vendor/lib64/vendor.qti.data.factory@2.0.so vendor/lib64/vendor.qti.data.factory@2.1.so vendor/lib64/vendor.qti.data.factory@2.2.so -vendor/lib64/vendor.qti.data.factory@2.3.so +vendor/lib64/vendor.qti.data.mwqem@1.0.so vendor/lib64/vendor.qti.data.slm@1.0.so vendor/lib64/vendor.qti.hardware.data.cne.internal.api@1.0.so vendor/lib64/vendor.qti.hardware.data.cne.internal.constants@1.0.so @@ -859,75 +510,83 @@ vendor/lib64/vendor.qti.hardware.data.connection@1.1.so vendor/lib64/vendor.qti.hardware.data.dynamicdds@1.0.so vendor/lib64/vendor.qti.hardware.data.iwlan@1.0.so vendor/lib64/vendor.qti.hardware.data.latency@1.0.so -vendor/lib64/vendor.qti.hardware.data.lce@1.0.so vendor/lib64/vendor.qti.hardware.data.qmi@1.0.so +vendor/lib64/vendor.qti.hardware.mwqemadapter@1.0.so vendor/lib64/vendor.qti.hardware.slmadapter@1.0.so vendor/lib64/vendor.qti.latency@2.0.so -vendor/lib64/vendor.qti.latency@2.1.so # Configstore vendor/bin/hw/vendor.qti.hardware.capabilityconfigstore@1.0-service vendor/etc/init/vendor.qti.hardware.capabilityconfigstore@1.0-service.rc -vendor/lib/hw/vendor.qti.hardware.capabilityconfigstore@1.0-impl.so vendor/lib64/hw/vendor.qti.hardware.capabilityconfigstore@1.0-impl.so +vendor/lib/hw/vendor.qti.hardware.capabilityconfigstore@1.0-impl.so # CVP vendor/lib64/libcvp_common.so vendor/lib64/libcvpcpuRev_skel.so vendor/lib64/vendor.qti.hardware.cvp@1.0.so -# CVP firmware - from DE2117_11.C.37 -vendor/firmware/evass.b01|0ba927944b4ecb3160d10bf1fbdf8c0a24b4135d -vendor/firmware/evass.b02|f9215f6edcdf711ed37d033dcc1af70bdcb358bd -vendor/firmware/evass.b03|817d0f1aa1dd38a187de8ee0b92fa5d27bf2c700 -vendor/firmware/evass.b04|86a5ed4d22759036806d9321f8e509628f64c5b6 -vendor/firmware/evass.b05|46fead36eae934ee058cefa7b5c1e2cd14d18a48 -vendor/firmware/evass.b06|e19854e03b52cc67d7db620f54609b66d1b85f54 -vendor/firmware/evass.b07|0b403b94f400e8f76ac5f5f18f6957318ec2a582 -vendor/firmware/evass.b08|86a5ed4d22759036806d9321f8e509628f64c5b6 -vendor/firmware/evass.b09|9e5dea8617157aa63d483e97ccf6d11b0023ea66 -vendor/firmware/evass.b10|52bc47832701c3ba13aac0fa43988db439b8bd17 -vendor/firmware/evass.b11|da39a3ee5e6b4b0d3255bfef95601890afd80709 -vendor/firmware/evass.b12|da39a3ee5e6b4b0d3255bfef95601890afd80709 -vendor/firmware/evass.b13|da39a3ee5e6b4b0d3255bfef95601890afd80709 -vendor/firmware/evass.b14|da39a3ee5e6b4b0d3255bfef95601890afd80709 -vendor/firmware/evass.b15|da39a3ee5e6b4b0d3255bfef95601890afd80709 -vendor/firmware/evass.b16|da39a3ee5e6b4b0d3255bfef95601890afd80709 -vendor/firmware/evass.b17|da39a3ee5e6b4b0d3255bfef95601890afd80709 -vendor/firmware/evass.b18|da39a3ee5e6b4b0d3255bfef95601890afd80709 -vendor/firmware/evass.b19|1ceaf73df40e531df3bfb26b4fb7cd95fb7bff1d -vendor/firmware/evass.mbn|5fff4b07130a609d8aa76d0af48bfcdabe56ec1e -vendor/firmware/evass.mdt|50a2938df0fe52344d95fc2d14414a2922c6decc +# CVP firmware +vendor/firmware/evass.b01 +vendor/firmware/evass.b02 +vendor/firmware/evass.b03 +vendor/firmware/evass.b04 +vendor/firmware/evass.b05 +vendor/firmware/evass.b06 +vendor/firmware/evass.b07 +vendor/firmware/evass.b08 +vendor/firmware/evass.b09 +vendor/firmware/evass.b10 +vendor/firmware/evass.b11 +vendor/firmware/evass.b12 +vendor/firmware/evass.b13 +vendor/firmware/evass.b14 +vendor/firmware/evass.b15 +vendor/firmware/evass.b16 +vendor/firmware/evass.b17 +vendor/firmware/evass.b18 +vendor/firmware/evass.b19 +vendor/firmware/evass.mbn +vendor/firmware/evass.mdt # Diag system_ext/lib/vendor.qti.diaghal@1.0.so system_ext/lib64/vendor.qti.diaghal@1.0.so +vendor/bin/diag-router +vendor/etc/init/vendor.qti.diag.rc +vendor/lib/vendor.qti.diaghal@1.0.so +vendor/lib64/vendor.qti.diaghal@1.0.so -# Display (Features) -vendor/bin/feature_enabler_client -vendor/etc/init/feature_enabler_client.rc -vendor/etc/Oppo_QC_LTM_Commercial_SM8250_2020_01_15.pfm +# Display +vendor/bin/hw/vendor.oneplus.hardware.display@1.0-service +vendor/etc/init/vendor.oneplus.hardware.display@1.0-service.rc # Display (HDR) vendor/lib64/libhdr_tm.so # Display (HWC) +vendor/bin/hw/vendor.qti.hardware.display.composer-service vendor/bin/qdcmss vendor/etc/init/qdcmss.rc +vendor/etc/snapdragon_color_libs_config.xml +vendor/lib64/libdisplayconfig.qti.so vendor/lib64/libdpps.so vendor/lib64/libqdcm-mode-parser.so +vendor/lib64/libsdmcore.so +vendor/lib64/libsdmutils.so vendor/lib64/libsnapdragoncolor-manager.so vendor/lib64/libsnapdragoncolor-qdcm.so # Display (SDM) +vendor/etc/display/advanced_sf_offsets.xml vendor/etc/display/DPU660.xml vendor/etc/display/DPU670.xml vendor/etc/display/DPU7__.xml -vendor/etc/display/advanced_sf_offsets.xml vendor/lib64/libdisplayqos.so vendor/lib64/libdisplayskuutils.so vendor/lib64/libqseed3.so vendor/lib64/librcmask.so +vendor/lib64/libsdedrm.so vendor/lib64/libsdm-color.so vendor/lib64/libsdm-colormgr-algo.so vendor/lib64/libsdm-diag.so @@ -952,27 +611,27 @@ vendor/lib64/vendor.display.color@1.5.so vendor/lib64/vendor.display.postproc@1.0.so # DPM +system/framework/tcmclient.jar system_ext/bin/dpmd -system_ext/bin/tcmd system_ext/etc/dpm/dpm.conf system_ext/etc/init/dpmd.rc -system_ext/etc/init/tcmd.rc system_ext/etc/permissions/com.qti.dpmframework.xml system_ext/etc/permissions/dpmapi.xml -system_ext/etc/seccomp_policy/tcmd.policy system_ext/framework/com.qti.dpmframework.jar system_ext/framework/dpmapi.jar +system_ext/lib/com.qualcomm.qti.dpm.api@1.0.so +system_ext/lib/libdpmctmgr.so +system_ext/lib/libdpmfdmgr.so +system_ext/lib/libdpmframework.so +system_ext/lib/libdpmtcm.so system_ext/lib64/com.qualcomm.qti.dpm.api@1.0.so system_ext/lib64/libdpmctmgr.so system_ext/lib64/libdpmfdmgr.so system_ext/lib64/libdpmframework.so system_ext/lib64/libdpmtcm.so -system_ext/lib64/vendor.qti.hardware.dpmaidlservice-V1-ndk.so -system_ext/lib64/vendor.qti.hardware.dpmservice@1.0.so -system_ext/priv-app/dpmserviceapp/dpmserviceapp.apk vendor/bin/dpmQmiMgr vendor/etc/init/dpmQmiMgr.rc -vendor/lib64/com.qualcomm.qti.dpm.api@1.0.so;MODULE_SUFFIX=_vendor +vendor/lib64/com.qualcomm.qti.dpm.api@1.0.so vendor/lib64/libdpmqmihal.so # DRM @@ -980,50 +639,43 @@ vendor/bin/hw/vendor.qti.hardware.qseecom@1.0-service vendor/bin/qseecomd vendor/etc/init/qseecomd.rc vendor/etc/init/vendor.qti.hardware.qseecom@1.0-service.rc -vendor/etc/gpfspath_oem_config.xml vendor/lib64/hw/vendor.qti.hardware.qseecom@1.0-impl.so -vendor/lib64/libGPreqcancel.so -vendor/lib64/libGPreqcancel_svc.so -vendor/lib64/libQSEEComAPI.so -vendor/lib64/libSecureUILib.so -vendor/lib64/libStDrvInt.so vendor/lib64/libcpion.so vendor/lib64/libdrmfs.so vendor/lib64/libdrmtime.so +vendor/lib64/libGPreqcancel.so +vendor/lib64/libGPreqcancel_svc.so vendor/lib64/libops.so vendor/lib64/libqisl.so +vendor/lib64/libQSEEComAPI.so vendor/lib64/librpmb.so -vendor/lib64/libsecureui.so vendor/lib64/libsecureui_svcsock.so vendor/lib64/libssd.so vendor/lib64/libtzdrmgenprov.so vendor/lib64/vendor.qti.hardware.qseecom@1.0.so -# Fingerprint - from DE2117_11.C.37 -odm/bin/hw/vendor.oplus.hardware.biometrics.fingerprint@2.1-service|8ae1f13680191151058b40c69fa0f6f4ad593c86 -odm/bin/init.oplus.fingerprints.sh|950befd6f64d4055bf47ab066a0a1e0080e6191e -odm/etc/init/vendor.oplus.hardware.biometrics.fingerprint@2.1-service.rc|e4dc71dbcf48df8e4a5fbf9a14048698046cbe0b -odm/etc/vintf/manifest/manifest_oplus_fingerprint.xml|78ca4f56ed1f5dd48c186718718fd9513629851e -odm/lib64/hw/fingerprint.goodix_G3.default.so|06259ab73ecb36ced83da0880a7dce513f6b7182 -odm/lib64/anc.hal.so|43f05e06b2f1b2b7887dc16c62a01eff6d2b0333 -odm/lib64/libgf_hal_G3.so|dbffbab96f50494b290fa2ae0dc1d7368c58af22 -odm/vendor/firmware/goodixfp.b00|b82a938f6f1ca22d66e5a74a78d2076f5acd546c -odm/vendor/firmware/goodixfp.b01|b18dbcb1834968e7a5a7be54c49927c69b32c3e0 -odm/vendor/firmware/goodixfp.b02|c48132cb6151e1db16a303d2ab2cc6345b2b2d9b -odm/vendor/firmware/goodixfp.b03|22d8c1d6bd01d3767afc5fd11ed4075389757913 -odm/vendor/firmware/goodixfp.b04|eed1f8095bc7c2939d641b0f2fddecff30997a5b -odm/vendor/firmware/goodixfp.b05|ac45c20a9376e4fe66b9ec19677b6c43edd31983 -odm/vendor/firmware/goodixfp.b06|6e23da6647e1a117b827aaa32271199b42293ccb -odm/vendor/firmware/goodixfp.b07|450bf7245b6a2e2c4ab5d92b64badd472ba3cbb0 -odm/vendor/firmware/goodixfp.mdt|c6caa1def77190e216fa2ed6eb7bfae9cd7f8e53 -vendor/lib64/vendor.oplus.hardware.commondcs@1.0.so:odm/lib64/vendor.oplus.hardware.commondcs@1.0.so|02e67cac1e468ee300148d87cfa3be39958047dd +# ESE +vendor/bin/hw/vendor.qti.esepowermanager@1.1-service +vendor/etc/init/vendor.qti.esepowermanager@1.1-service.rc +vendor/lib64/hw/vendor.qti.esepowermanager@1.1-impl.so +vendor/lib64/vendor.qti.esepowermanager@1.0.so +vendor/lib64/vendor.qti.esepowermanager@1.1.so -# FM - from LE2125_14.0.0.720(EX01) -system_ext/lib64/fm_helium.so|f67fc530027c32455d5b06984b14854641689712 -system_ext/lib64/libfm-hci.so|3ce381e1902bdf5dcbd60e22e601f29398cb8d97 -system_ext/lib64/vendor.qti.hardware.fm@1.0.so|1fae109f511f0dc7de8261dcaeef71f232486684 -vendor/lib64/hw/vendor.qti.hardware.fm@1.0-impl.so|6819718ea5f2d00c5da8ad215c4d11fd794e6a0e -vendor/lib64/vendor.qti.hardware.fm@1.0.so;MODULE_SUFFIX=_vendor|8bb6c293e00c49fc69378815b872b7ed0b67189b +# Feature enabler client +vendor/bin/feature_enabler_client +vendor/etc/init/feature_enabler_client.rc + +# Fingerprint +vendor/lib64/hw/goodix.3626.holi.so:vendor/lib64/hw/fingerprint.qcom.so +vendor/lib64/fp_hal_extension.so +vendor/lib64/libgf_ca.so +vendor/lib64/libgf_hal.so +vendor/lib64/libgoodixhwfingerprint.so +vendor/lib64/vendor.goodix3626.hardware.biometrics.fingerprint@2.1.so + +# FM +vendor/lib64/hw/vendor.qti.hardware.fm@1.0-impl.so +vendor/lib64/vendor.qti.hardware.fm@1.0.so # Gatekeeper vendor/bin/hw/android.hardware.gatekeeper@1.0-service-qti @@ -1031,69 +683,62 @@ vendor/etc/init/android.hardware.gatekeeper@1.0-service-qti.rc vendor/lib64/hw/android.hardware.gatekeeper@1.0-impl-qti.so # Graphics (Adreno) -vendor/gpu/kbc/sequence_manifest.bin -vendor/gpu/kbc/unified_kbcs_32.bin -vendor/gpu/kbc/unified_kbcs_64.bin -vendor/gpu/kbc/unified_ksqs.bin vendor/lib/egl/eglSubDriverAndroid.so -vendor/lib/egl/libEGL_adreno.so;SYMLINK=vendor/lib/libEGL_adreno.so +vendor/lib/egl/libEGL_adreno.so vendor/lib/egl/libGLESv1_CM_adreno.so -vendor/lib/egl/libGLESv2_adreno.so;SYMLINK=vendor/lib/libGLESv2_adreno.so -vendor/lib/egl/libq3dtools_adreno.so;SYMLINK=vendor/lib/libq3dtools_adreno.so +vendor/lib/egl/libGLESv2_adreno.so +vendor/lib/egl/libq3dtools_adreno.so vendor/lib/egl/libq3dtools_esx.so -vendor/lib/libC2D2.so -vendor/lib/libCB.so -vendor/lib/libOpenCL.so vendor/lib/libadreno_app_profiles.so vendor/lib/libadreno_utils.so +vendor/lib/libC2D2.so vendor/lib/libc2d30_bltlib.so +vendor/lib/libCB.so +vendor/lib/libgpudataproducer.so vendor/lib/libgsl.so -vendor/lib/libkcl.so -vendor/lib/libkernelmanager.so vendor/lib/libllvm-glnext.so vendor/lib/libllvm-qcom.so +vendor/lib/libOpenCL.so +vendor/lib/libVkLayer_q3dtools.so vendor/lib64/egl/eglSubDriverAndroid.so -vendor/lib64/egl/libEGL_adreno.so;SYMLINK=vendor/lib64/libEGL_adreno.so +vendor/lib64/egl/libEGL_adreno.so vendor/lib64/egl/libGLESv1_CM_adreno.so -vendor/lib64/egl/libGLESv2_adreno.so;SYMLINK=vendor/lib64/libGLESv2_adreno.so -vendor/lib64/egl/libq3dtools_adreno.so;SYMLINK=vendor/lib64/libq3dtools_adreno.so +vendor/lib64/egl/libGLESv2_adreno.so +vendor/lib64/egl/libq3dtools_adreno.so vendor/lib64/egl/libq3dtools_esx.so -vendor/lib64/libC2D2.so -vendor/lib64/libCB.so -vendor/lib64/libOpenCL.so vendor/lib64/libadreno_app_profiles.so vendor/lib64/libadreno_utils.so +vendor/lib64/libC2D2.so vendor/lib64/libc2d30_bltlib.so +vendor/lib64/libCB.so +vendor/lib64/libgpudataproducer.so vendor/lib64/libgsl.so -vendor/lib64/libkcl.so -vendor/lib64/libkernelmanager.so vendor/lib64/libllvm-glnext.so vendor/lib64/libllvm-qcom.so +vendor/lib64/libOpenCL.so +vendor/lib64/libVkLayer_q3dtools.so -# Graphics (Adreno firmware) - from DE2117_11.C.37 -vendor/firmware/a615_zap.b00|55c1a14a5699d05f796a982448711159f8208951 -vendor/firmware/a615_zap.b01|a753f53c8c7715aa0269b080a24c3c6ff0a59694 -vendor/firmware/a615_zap.b02|4ae54047f9629f2470a5d58f3940c5eb51298b96 -vendor/firmware/a615_zap.elf|0d65f06baa2de5c9d22c57c5c1470e9fa9a4da11 -vendor/firmware/a615_zap.mdt|29777fb920fc871c04e4a0ac0ba07a853d386161 -vendor/firmware/a619_gmu.bin|0c211ef8a3246d649a4ae52a926d128b61e3c264 -vendor/firmware/a630_sqe.fw|3be171586a5600b8a0253a0e267d1eb96cd82290 -vendor/firmware/a660_gmu.bin|7e23fae9ac6dfaf0219280c83e0086b8e97082b1 -vendor/firmware/a660_sqe.fw|8e6becfbcff6ff6e64b5edb6f135cc6f656d4ee1 -vendor/firmware/a660_zap.b00|f8df59bf1c76d6cceb152cfd58142af4e0cdabb5 -vendor/firmware/a660_zap.b01|e89ce22bac10956f19dbe5e257219f27059387a5 -vendor/firmware/a660_zap.b02|bcbdf56fca034c66a9e44242587ed25a1ffe2abe -vendor/firmware/a660_zap.elf|7a5dbfa688fa17801845e090f56cc4d6f3a4e8da -vendor/firmware/a660_zap.mdt|0b56b4d50e23a289558b4ade01f041b3e78515c4 +# Graphics (Adreno firmware) +vendor/firmware/a615_zap.b00 +vendor/firmware/a615_zap.b01 +vendor/firmware/a615_zap.b02 +vendor/firmware/a615_zap.elf +vendor/firmware/a615_zap.mdt +vendor/firmware/a619_gmu.bin +vendor/firmware/a630_sqe.fw +vendor/firmware/a660_gmu.bin +vendor/firmware/a660_sqe.fw +vendor/firmware/a660_zap.b00 +vendor/firmware/a660_zap.b01 +vendor/firmware/a660_zap.b02 +vendor/firmware/a660_zap.elf +vendor/firmware/a660_zap.mdt # Graphics (Vulkan) vendor/lib/hw/vulkan.adreno.so vendor/lib64/hw/vulkan.adreno.so # GNSS -odm/etc/izat.conf -odm/etc/sap.conf -vendor/app/CACertService/CACertService.apk vendor/bin/hw/android.hardware.gnss@2.1-service-qti vendor/bin/loc_launcher vendor/bin/lowi-server @@ -1103,28 +748,13 @@ vendor/bin/xtra-daemon vendor/bin/xtwifi-client vendor/bin/xtwifi-inet-agent vendor/etc/init/android.hardware.gnss@2.1-service-qti.rc -vendor/etc/seccomp_policy/gnss@2.0-base.policy -vendor/etc/seccomp_policy/gnss@2.0-xtra-daemon.policy -vendor/etc/seccomp_policy/gnss@2.0-xtwifi-client.policy -vendor/etc/seccomp_policy/gnss@2.0-xtwifi-inet-agent.policy -vendor/etc/vintf/manifest/android.hardware.gnss@2.1-service-qti.xml -vendor/etc/vintf/manifest/vendor.qti.gnss@4.0-service.xml -vendor/etc/apdr.conf +-vendor/etc/vintf/manifest/android.hardware.gnss@2.1-service-qti.xml +-vendor/etc/vintf/manifest/vendor.qti.gnss@4.0-service.xml vendor/etc/cacert_location.pem -vendor/etc/flp.conf -vendor/etc/gnss_antenna_info.conf -vendor/etc/gps.conf -vendor/etc/izat.conf -vendor/etc/lowi.conf -vendor/etc/sap.conf vendor/etc/xtra_root_cert.pem -vendor/etc/xtwifi.conf vendor/lib64/hw/android.hardware.gnss@2.1-impl-qti.so vendor/lib64/hw/vendor.qti.gnss@4.0-impl.so vendor/lib64/libaoa.so -vendor/lib64/libasn1cper.so -vendor/lib64/libasn1crt.so -vendor/lib64/libasn1crtx.so vendor/lib64/libbatching.so vendor/lib64/libcacertclient.so vendor/lib64/libdataitems.so @@ -1161,50 +791,27 @@ vendor/lib64/vendor.qti.gnss@2.1.so vendor/lib64/vendor.qti.gnss@3.0.so vendor/lib64/vendor.qti.gnss@4.0-service.so vendor/lib64/vendor.qti.gnss@4.0.so -vendor/lib64/vendor.qti.hardware.cacert@1.0.so -# Hotword Enrollment -my_product/etc/sysconfig/com.android.hotwordenrollment.common.util.xml:product/etc/sysconfig/com.android.hotwordenrollment.common.util.xml -my_product/framework/com.android.hotwordenrollment.common.util.jar:product/framework/com.android.hotwordenrollment.common.util.jar -my_product/priv-app/HotwordEnrollmentOKGoogleHEXAGON.apk:product/priv-app/HotwordEnrollmentOKGoogleHEXAGON/HotwordEnrollmentOKGoogleHEXAGON.apk -my_product/priv-app/HotwordEnrollmentXGoogleHEXAGON.apk:product/priv-app/HotwordEnrollmentXGoogleHEXAGON/HotwordEnrollmentXGoogleHEXAGON.apk +# HotwordEnrollment +-product/priv-app/HotwordEnrollmentOKGoogleHEXAGON/HotwordEnrollmentOKGoogleHEXAGON.apk +-product/priv-app/HotwordEnrollmentXGoogleHEXAGON/HotwordEnrollmentXGoogleHEXAGON.apk +system_ext/etc/permissions/com.android.hotwordenrollment.common.util.xml +system_ext/framework/com.android.hotwordenrollment.common.util.jar # IMS -system_ext/app/ImsRcsService/ImsRcsService.apk -system_ext/etc/permissions/telephony_system-ext_privapp-permissions-qti.xml -system_ext/etc/permissions/vendor.qti.ims.rcsservice.xml -system_ext/etc/sysconfig/qti_telephony_system_packages_config.xml -system_ext/etc/sysconfig/qti_whitelist_system_ext.xml -system_ext/framework/oplus-ims-ext.jar -system_ext/framework/vendor.qti.ims.connection-V1.0-java.jar -system_ext/framework/vendor.qti.ims.connectionaidlservice-V1-java.jar -system_ext/framework/vendor.qti.ims.factory-V2.0-java.jar -system_ext/framework/vendor.qti.ims.factory-V2.1-java.jar -system_ext/framework/vendor.qti.ims.factory-V2.2-java.jar -system_ext/framework/vendor.qti.ims.factoryaidlservice-V1-java.jar -system_ext/framework/vendor.qti.ims.rcssip-V1.0-java.jar -system_ext/framework/vendor.qti.ims.rcssip-V1.1-java.jar -system_ext/framework/vendor.qti.ims.rcssip-V1.2-java.jar -system_ext/framework/vendor.qti.ims.rcssipaidlservice-V1-java.jar -system_ext/framework/vendor.qti.ims.rcsuce-V1.0-java.jar -system_ext/framework/vendor.qti.ims.rcsuce-V1.1-java.jar -system_ext/framework/vendor.qti.ims.rcsuce-V1.2-java.jar -system_ext/framework/vendor.qti.ims.rcsuceaidlservice-V1-java.jar +-system_ext/priv-app/ims/ims.apk system_ext/lib64/lib-imsvideocodec.so system_ext/lib64/lib-imsvt.so system_ext/lib64/lib-imsvtextutils.so system_ext/lib64/lib-imsvtutils.so system_ext/lib64/libdiag_system.so -system_ext/lib64/libimscamera_jni.so;SYMLINK=system_ext/priv-app/ims/lib/arm64/libimscamera_jni.so -system_ext/lib64/libimsmedia_jni.so;SYMLINK=system_ext/priv-app/ims/lib/arm64/libimsmedia_jni.so -system_ext/lib64/vendor.qti.ImsRtpService-V1-ndk.so +system_ext/lib64/libimscamera_jni.so +system_ext/lib64/libimsmedia_jni.so system_ext/lib64/vendor.qti.imsrtpservice@3.0.so -system_ext/lib64/vendor.qti.imsrtpservice@3.1.so -system_ext/priv-app/ims/ims.apk -vendor/bin/ims_rtp_daemon vendor/bin/imsdaemon -vendor/etc/init/ims_rtp_daemon.rc +vendor/bin/ims_rtp_daemon vendor/etc/init/imsdaemon.rc +vendor/etc/init/ims_rtp_daemon.rc vendor/etc/seccomp_policy/imsrtp.policy vendor/lib64/com.qualcomm.qti.imscmservice@1.0.so vendor/lib64/com.qualcomm.qti.imscmservice@2.0.so @@ -1213,11 +820,11 @@ vendor/lib64/com.qualcomm.qti.imscmservice@2.2.so vendor/lib64/com.qualcomm.qti.uceservice@2.0.so vendor/lib64/com.qualcomm.qti.uceservice@2.1.so vendor/lib64/com.qualcomm.qti.uceservice@2.2.so -vendor/lib64/com.qualcomm.qti.uceservice@2.3.so vendor/lib64/lib-imscommon.so vendor/lib64/lib-imsdpl.so vendor/lib64/lib-imsqimf.so vendor/lib64/lib-imsrcsservice.so +vendor/lib64/lib-imsSDP.so vendor/lib64/lib-imsservice.so vendor/lib64/lib-imsvtcore.so vendor/lib64/lib-imsxml.so @@ -1225,8 +832,6 @@ vendor/lib64/lib-rtpcommon.so vendor/lib64/lib-rtpcore.so vendor/lib64/lib-rtpsl.so vendor/lib64/librcc.so -vendor/lib64/vendor.qti.data.mwqem@1.0.so -vendor/lib64/vendor.qti.hardware.mwqemadapter@1.0.so vendor/lib64/vendor.qti.hardware.radio.ims@1.0.so vendor/lib64/vendor.qti.hardware.radio.ims@1.1.so vendor/lib64/vendor.qti.hardware.radio.ims@1.2.so @@ -1234,55 +839,38 @@ vendor/lib64/vendor.qti.hardware.radio.ims@1.3.so vendor/lib64/vendor.qti.hardware.radio.ims@1.4.so vendor/lib64/vendor.qti.hardware.radio.ims@1.5.so vendor/lib64/vendor.qti.hardware.radio.ims@1.6.so -vendor/lib64/vendor.qti.hardware.radio.ims@1.7.so vendor/lib64/vendor.qti.ims.callcapability@1.0.so vendor/lib64/vendor.qti.ims.callinfo@1.0.so -vendor/lib64/vendor.qti.ims.configservice@1.0.so -vendor/lib64/vendor.qti.ims.configservice@1.1.so -vendor/lib64/vendor.qti.ims.connection@1.0.so vendor/lib64/vendor.qti.ims.factory@1.0.so vendor/lib64/vendor.qti.ims.factory@1.1.so -vendor/lib64/vendor.qti.ims.factory@2.0.so -vendor/lib64/vendor.qti.ims.factory@2.1.so -vendor/lib64/vendor.qti.ims.factory@2.2.so vendor/lib64/vendor.qti.ims.rcsconfig@1.0.so vendor/lib64/vendor.qti.ims.rcsconfig@1.1.so vendor/lib64/vendor.qti.ims.rcsconfig@2.0.so vendor/lib64/vendor.qti.ims.rcsconfig@2.1.so -vendor/lib64/vendor.qti.ims.rcssip@1.0.so -vendor/lib64/vendor.qti.ims.rcssip@1.1.so -vendor/lib64/vendor.qti.ims.rcssip@1.2.so -vendor/lib64/vendor.qti.ims.rcsuce@1.0.so -vendor/lib64/vendor.qti.ims.rcsuce@1.1.so -vendor/lib64/vendor.qti.ims.rcsuce@1.2.so vendor/lib64/vendor.qti.imsrtpservice@3.0-service-Impl.so -vendor/lib64/vendor.qti.imsrtpservice@3.0.so;MODULE_SUFFIX=_vendor +vendor/lib64/vendor.qti.imsrtpservice@3.0.so + +# IO prefetcher +vendor/bin/hw/vendor.qti.hardware.iop@2.0-service +vendor/etc/init/vendor.qti.hardware.iop@2.0-service.rc +vendor/lib64/libqti-iopd-client.so +vendor/lib64/libqti-iopd.so +vendor/lib64/vendor.qti.hardware.iop@1.0.so +vendor/lib64/vendor.qti.hardware.iop@2.0.so # IPA firmware vendor/etc/init/ipa_fws.rc - -# IPA firmware - from DE2117_11.C.37 -vendor/firmware/ipa_fws.b00|eb24330c9d96f1b75ae07968484734e4c2a59c75 -vendor/firmware/ipa_fws.b01|c659c8afaaa27145c7d499564eee364028c73664 -vendor/firmware/ipa_fws.b02|cd418e2434a5698bf7a2f8844171f1b2ddd4b57a -vendor/firmware/ipa_fws.b03|c07cfef57f8f694b4cee41e78700614efbedf2bc -vendor/firmware/ipa_fws.b04|7aa0ec649f20af523f21c6e19014987f86f18dff -vendor/firmware/ipa_fws.elf|9103334c1cc07d320cc4d80f912e0c2129dafbf2 -vendor/firmware/ipa_fws.mdt|59d3f76009592e29a4883fd3659b7fa9e853d4ae +vendor/firmware/ipa_fws.b00 +vendor/firmware/ipa_fws.b01 +vendor/firmware/ipa_fws.b02 +vendor/firmware/ipa_fws.b03 +vendor/firmware/ipa_fws.b04 +vendor/firmware/ipa_fws.elf +vendor/firmware/ipa_fws.mdt # IRQ balance vendor/bin/msm_irqbalance - -# IRQ balance - from DE2117_11.C.37 -vendor/etc/msm_irqbalance.conf|1c1c2c568953546f67ce24c497ca5bd58a581cf8|298dc27a89520ed92b3c99ef0f95209e4b77279b - -# Kernel - from Fogos U1UGS34.23-110-2-1 -vendor/bin/init.kernel.post_boot-blair.sh|cd5ce1032fc750f545adea3b67066853e81d020c|7e187ca6573ce0815daac9d8a79e0f6d1142209f -vendor/bin/init.kernel.post_boot-holi.sh|85a6a76b21db596bf06180a83a7b6369af773293|da69f675aa706fd6c13d17892157bf471cdf5d9a -vendor/bin/init.kernel.post_boot.sh|a6b39a91a61c92a42dff1f8565f37917c60827f4 -vendor/bin/init.qti.kernel.sh|1c17e31a8edfc0b188802d280af9a85038f96b60 -vendor/bin/vendor_modprobe.sh|d6f572abb7aba5c12077607ec18c221388b86394 -vendor/etc/init/hw/init.qti.kernel.rc|91245b402447c148f770abe09c416c05c6757a21 +vendor/etc/msm_irqbalance.conf # Keymaster vendor/bin/hw/android.hardware.keymaster@4.1-service-qti @@ -1293,6 +881,7 @@ vendor/lib64/libkeymasterutils.so vendor/lib64/libqtikeymaster4.so # Listen +vendor/lib/libadpcmdec.so vendor/lib/libcapiv2svacnn.so vendor/lib/libcapiv2svarnn.so vendor/lib/libcapiv2vop.so @@ -1302,35 +891,20 @@ vendor/lib/libgcs-osal.so vendor/lib/libgcs.so vendor/lib/liblistensoundmodel2.so vendor/lib/libmulawdec.so +vendor/lib/libsmwrapper.so # Media -odm/etc/media_profiles_V1_0.xml +system_ext/lib/libmmosal.so +system_ext/lib/libmmparser_lite.so system_ext/lib64/libmmosal.so -system_ext/lib64/libmmparser_lite.so vendor/bin/hw/vendor.qti.media.c2@1.0-service vendor/bin/init.qti.media.sh vendor/etc/init/init.qti.media.rc vendor/etc/init/vendor.qti.media.c2@1.0-service.rc -vendor/etc/media_blair/video_system_specs.json -vendor/etc/media_blair_lite/video_system_specs.json vendor/etc/media_holi/video_system_specs.json -vendor/etc/media_codecs.xml -vendor/etc/media_codecs_blair.xml -vendor/etc/media_codecs_blair_lite.xml -vendor/etc/media_codecs_holi.xml -vendor/etc/media_codecs_performance.xml -vendor/etc/media_codecs_performance_blair.xml -vendor/etc/media_codecs_performance_blair_lite.xml -vendor/etc/media_codecs_performance_holi.xml -vendor/etc/media_profiles.xml -vendor/etc/media_profiles_V1_0.xml -vendor/etc/media_profiles_blair.xml -vendor/etc/media_profiles_blair_lite.xml -vendor/etc/media_profiles_holi.xml vendor/etc/video_system_specs.json vendor/etc/seccomp_policy/codec2.vendor.base-arm.policy vendor/etc/seccomp_policy/codec2.vendor.ext-arm.policy -vendor/etc/vintf/manifest/c2_manifest_vendor.xml vendor/lib/libqcodec2_base.so vendor/lib/libqcodec2_basecodec.so vendor/lib/libqcodec2_core.so @@ -1338,29 +912,125 @@ vendor/lib/libqcodec2_hooks.so vendor/lib/libqcodec2_platform.so vendor/lib/libqcodec2_utils.so vendor/lib/libqcodec2_v4l2codec.so -vendor/lib64/libmmosal.so;MODULE_SUFFIX=_vendor +vendor/lib64/libmmosal.so -# Native public libraries -vendor/etc/public.libraries.txt +# Neural networks +vendor/bin/hw/android.hardware.neuralnetworks@1.3-service-qti +vendor/etc/init/android.hardware.neuralnetworks@1.3-service-qti.rc +-vendor/etc/vintf/manifest/android.hardware.neuralnetworks@1.3-service-qti.xml +vendor/lib64/unnhal-acc-common.so +vendor/lib64/unnhal-acc-gpu.so -# NFC - from DE2117_11.C.37 -odm/etc/nfc/libnfc-nci.conf_20818:vendor/etc/libnfc-nci.conf|ec1d66cb7fb1a03a99270f9b893de7ee586f7972|af0df368c0edd9272ec1265f7144d4b09e20c41b -odm/etc/nfc/libnfc-st21h_conf.txt_20818:vendor/etc/libnfc-st21h_conf.txt|f69535ba7cc30b8fc7f30d7db895233c77430ace -odm/etc/nfc/nfc_conf_ref|d3f90262a5762117e519dd55361b8d7742bfb764 -odm/etc/nfc/nfc_fw_ref|525f3232cbf9ef8d26e89fcc6bc42b9eee03f92c -odm/etc/nfc/st21nfc_fw.bin_st21h:vendor/firmware/st21nfc_fw.bin|3375e15716e356a2580e4c8828833f442669e586 -odm/etc/nfc/st21nfc_fw7.bin_st21h:vendor/firmware/st21nfc_fw7.bin|e857d4139163e8a16ae9d0b616e731d3441deda4 +# NFC +vendor/bin/STFlashTool +vendor/etc/libese-nxp.conf +vendor/etc/libnfc-hal-st.conf +vendor/etc/libnfc-nci.conf -# PASR -vendor/lib64/vendor.qti.memory.pasrmanager@1.0.so -vendor/lib64/vendor.qti.memory.pasrmanager@1.1.so +# NFC configs +vendor/etc/libnfc-mtp-SN100.conf +vendor/etc/libnfc-mtp-SN100_38_4MHZ.conf + +# NFC firmware +vendor/lib/libsn100u_fw.so +vendor/firmware/st21nfc_fw.bin +vendor/firmware/st21nfc_fw7.bin + +# ODM feature list +odm/etc/odm_feature_list + +# OMX +vendor/lib/libAlacSwDec.so +vendor/lib/libApeSwDec.so +vendor/lib/libdsd2pcm.so +vendor/lib/libFlacSwDec.so +vendor/lib/libOmxAacDec.so +vendor/lib/libOmxAlacDec.so +vendor/lib/libOmxAlacDecSw.so +vendor/lib/libOmxAmrDec.so +vendor/lib/libOmxAmrwbplusDec.so +vendor/lib/libOmxApeDec.so +vendor/lib/libOmxApeDecSw.so +vendor/lib/libOmxDsdDec.so +vendor/lib/libOmxEvrcDec.so +vendor/lib/libOmxG711Dec.so +vendor/lib/libOmxMpeghDecSw.so +vendor/lib/libOmxMpeghEncSw.so +vendor/lib/libOmxQcelp13Dec.so +vendor/lib/libOmxVideoDSMode.so +vendor/lib/libOmxWmaDec.so +vendor/lib64/libAlacSwDec.so +vendor/lib64/libApeSwDec.so +vendor/lib64/libFlacSwDec.so +vendor/lib64/libOmxAacDec.so +vendor/lib64/libOmxAlacDec.so +vendor/lib64/libOmxAlacDecSw.so +vendor/lib64/libOmxAmrDec.so +vendor/lib64/libOmxAmrwbplusDec.so +vendor/lib64/libOmxApeDec.so +vendor/lib64/libOmxApeDecSw.so +vendor/lib64/libOmxEvrcDec.so +vendor/lib64/libOmxG711Dec.so +vendor/lib64/libOmxMpeghEncSw.so +vendor/lib64/libOmxQcelp13Dec.so +vendor/lib64/libOmxWmaDec.so + +# OPFeature +vendor/bin/opf-service +vendor/etc/init/init.opf.rc # Peripheral manager vendor/bin/pm-proxy vendor/bin/pm-service vendor/lib64/libperipheral_client.so +# Perf +vendor/bin/hw/vendor.qti.hardware.perf@2.2-service +vendor/etc/init/vendor.qti.hardware.perf@2.2-service.rc +vendor/etc/perf/commonresourceconfigs.xml +vendor/etc/perf/perfboostsconfig.xml +vendor/etc/perf/perfconfigstore.xml +vendor/etc/perf/targetconfig.xml +vendor/etc/perf/targetresourceconfigs.xml +vendor/etc/powerhint.xml +vendor/lib/libperfconfig.so +vendor/lib/libperfgluelayer.so +vendor/lib/libperfioctl.so +vendor/lib/libqti-perfd-client.so +vendor/lib/libqti-perfd.so +vendor/lib/libqti-util.so +vendor/lib/libqti-utils.so +vendor/lib64/liblearningmodule.so +vendor/lib64/libmeters.so +vendor/lib64/libperfconfig.so +vendor/lib64/libperfgluelayer.so +vendor/lib64/libperfioctl.so +vendor/lib64/libqti-perfd-client.so +vendor/lib64/libqti-perfd.so +vendor/lib64/libqti-util.so +vendor/lib64/libqti-utils.so + +# Perf LM +vendor/etc/lm/prekill/prekill_2GB.data +vendor/etc/lm/prekill/prekill_4GB.data +vendor/etc/lm/prekill/prekill_6GB.data +vendor/etc/lm/AdaptLaunchFeature.xml +vendor/etc/lm/AppClassifierFeature.xml +vendor/etc/lm/GameOptimizationFeature.xml +vendor/etc/lm/PreKillFeature.xml +vendor/etc/lm/sPLHFeature.xml +vendor/lib64/libadaptlaunch.so +vendor/lib64/libappclassifier.so +vendor/lib64/libgameoptfeature.so +vendor/lib64/liblmutils-ns.so +vendor/lib64/libmemperfd.so +vendor/lib64/libmeters-ns.so +vendor/lib64/libprekill.so +vendor/lib64/libsplh.so + # Power-off alarm +-product/app/PowerOffAlarm/PowerOffAlarm.apk|b0e06d00af3ecf65284788169a5333c2f56a1823 +system_ext/framework/vendor.qti.hardware.alarm-V1.0-java.jar vendor/bin/hw/vendor.qti.hardware.alarm@1.0-service vendor/bin/power_off_alarm vendor/etc/init/vendor.qti.hardware.alarm@1.0-service.rc @@ -1386,6 +1056,7 @@ vendor/lib/libdiag.so vendor/lib/libdsi_netctrl.so vendor/lib/libdsutils.so vendor/lib/libidl.so +vendor/lib/libqcci_legacy.so vendor/lib/libqcmaputils.so vendor/lib/libqdi.so vendor/lib/libqdp.so @@ -1396,12 +1067,12 @@ vendor/lib/libqmi_client_qmux.so vendor/lib/libqmi_common_so.so vendor/lib/libqmi_csi.so vendor/lib/libqmi_encdec.so -vendor/lib/libqmi_legacy.so vendor/lib/libqmiservices.so vendor/lib64/libdiag.so vendor/lib64/libdsi_netctrl.so vendor/lib64/libdsutils.so vendor/lib64/libidl.so +vendor/lib64/libqcci_legacy.so vendor/lib64/libqcmaputils.so vendor/lib64/libqdi.so vendor/lib64/libqdp.so @@ -1412,88 +1083,74 @@ vendor/lib64/libqmi_client_qmux.so vendor/lib64/libqmi_common_so.so vendor/lib64/libqmi_csi.so vendor/lib64/libqmi_encdec.so -vendor/lib64/libqmi_legacy.so vendor/lib64/libqmiservices.so # QSPM vendor/bin/vendor.qti.qspmhal@1.0-service vendor/etc/init/vendor.qti.qspmhal@1.0-service.rc vendor/etc/seccomp_policy/qspm.policy -vendor/lib/vendor.qti.qspmhal@1.0-impl.so -vendor/lib/vendor.qti.qspmhal@1.0.so vendor/lib64/vendor.qti.qspmhal@1.0-impl.so vendor/lib64/vendor.qti.qspmhal@1.0.so # QTI service tracker vendor/bin/hw/vendor.qti.hardware.servicetracker@1.2-service vendor/etc/init/vendor.qti.hardware.servicetracker@1.2-service.rc -vendor/etc/vintf/manifest/vendor.qti.hardware.servicetracker@1.2-service.xml +-vendor/etc/vintf/manifest/vendor.qti.hardware.servicetracker@1.2-service.xml vendor/lib64/hw/vendor.qti.hardware.servicetracker@1.2-impl.so # RIL -odm/lib64/vendor.oplus.hardware.appradio@1.0.so -odm/lib64/vendor.oplus.hardware.ims@1.0.so -odm/lib64/vendor.oplus.hardware.radio@1.0.so -system_ext/app/QtiTelephonyService/QtiTelephonyService.apk +-system/framework/qcnvitems.jar +-system_ext/app/QtiTelephonyService/QtiTelephonyService.apk system_ext/etc/permissions/qcrilhook.xml system_ext/etc/permissions/qti_libpermissions.xml system_ext/etc/permissions/qti_permissions.xml +system_ext/etc/permissions/telephonyservice.xml system_ext/framework/qcrilhook.jar -system_ext/priv-app/qcrilmsgtunnel/qcrilmsgtunnel.apk -vendor/app/IWlanService/IWlanService.apk +-system_ext/priv-app/qcrilmsgtunnel/qcrilmsgtunnel.apk +-vendor/app/IWlanService/IWlanService.apk vendor/bin/hw/qcrilNrd +vendor/bin/hw/vendor.oneplus.hardware.param@1.0-service vendor/bin/adpl +vendor/bin/ATFWD-daemon vendor/bin/ks vendor/bin/netmgrd vendor/bin/pd-mapper vendor/bin/port-bridge +vendor/bin/qrtr-cfg +vendor/bin/qrtr-lookup vendor/bin/qrtr-ns vendor/bin/qti vendor/bin/rmt_storage -vendor/bin/shsusrd vendor/bin/ssgqmigd vendor/bin/ssgtzd vendor/bin/tftp_server vendor/etc/data/dsi_config.xml vendor/etc/data/netmgr_config.xml +vendor/etc/ssg/ta_config.json +vendor/etc/ssg/tz_whitelist.json vendor/etc/init/dataadpl.rc vendor/etc/init/dataqti.rc vendor/etc/init/init-qcril-data.rc vendor/etc/init/netmgrd.rc vendor/etc/init/port-bridge.rc vendor/etc/init/qcrilNrd.rc -vendor/etc/init/shsusrd.rc vendor/etc/init/ssgtzd.rc +vendor/etc/init/vendor.oneplus.hardware.param@1.0-service.rc vendor/etc/init/vendor.qti.rmt_storage.rc vendor/etc/init/vendor.qti.tftp.rc -vendor/etc/qcril_database/upgrade/config/10.0_config.sql;FILEGROUP=proprietary_rildb_config_sql_files -vendor/etc/qcril_database/upgrade/config/11.0_config.sql;FILEGROUP=proprietary_rildb_config_sql_files -vendor/etc/qcril_database/upgrade/config/12.0_config.sql;FILEGROUP=proprietary_rildb_config_sql_files -vendor/etc/qcril_database/upgrade/config/13.0_config.sql;FILEGROUP=proprietary_rildb_config_sql_files -vendor/etc/qcril_database/upgrade/config/14.0_config.sql;FILEGROUP=proprietary_rildb_config_sql_files -vendor/etc/qcril_database/upgrade/config/6.0_config.sql;FILEGROUP=proprietary_rildb_config_sql_files -vendor/etc/qcril_database/upgrade/config/7.0_config.sql;FILEGROUP=proprietary_rildb_config_sql_files -vendor/etc/qcril_database/upgrade/config/8.0_config.sql;FILEGROUP=proprietary_rildb_config_sql_files -vendor/etc/qcril_database/upgrade/config/9.0_config.sql;FILEGROUP=proprietary_rildb_config_sql_files -vendor/etc/qcril_database/upgrade/other/0_initial_qcrilnr.sql;FILEGROUP=proprietary_rildb_other_sql_files -vendor/etc/qcril_database/upgrade/other/10_version_update_ecc_table.sql;FILEGROUP=proprietary_rildb_other_sql_files -vendor/etc/qcril_database/upgrade/other/11_version_update_ecc_table.sql;FILEGROUP=proprietary_rildb_other_sql_files -vendor/etc/qcril_database/upgrade/other/12_version_update_ecc_table.sql;FILEGROUP=proprietary_rildb_other_sql_files -vendor/etc/qcril_database/upgrade/other/1_version_intro_qcrilnr.sql;FILEGROUP=proprietary_rildb_other_sql_files -vendor/etc/qcril_database/upgrade/other/2_version_add_wps_config_qcrilnr.sql;FILEGROUP=proprietary_rildb_other_sql_files -vendor/etc/qcril_database/upgrade/other/3_version_update_wps_config_qcrilnr.sql;FILEGROUP=proprietary_rildb_other_sql_files -vendor/etc/qcril_database/upgrade/other/4_version_update_ecc_table_qcrilnr.sql;FILEGROUP=proprietary_rildb_other_sql_files -vendor/etc/qcril_database/upgrade/other/5_version_update_ecc_table_qcrilnr.sql;FILEGROUP=proprietary_rildb_other_sql_files -vendor/etc/qcril_database/upgrade/other/6_version_change_property_table_qcrilnr.sql;FILEGROUP=proprietary_rildb_other_sql_files -vendor/etc/qcril_database/upgrade/other/7_version_update_ecc_table_qcrilnr.sql;FILEGROUP=proprietary_rildb_other_sql_files -vendor/etc/qcril_database/upgrade/other/8_version_update_ecc_table.sql;FILEGROUP=proprietary_rildb_other_sql_files -vendor/etc/qcril_database/upgrade/other/9_version_update_ecc_table.sql;FILEGROUP=proprietary_rildb_other_sql_files +vendor/etc/qcril_database/qcrilNr.db +vendor/etc/qcril_database/upgrade/config/6.0_config.sql +vendor/etc/qcril_database/upgrade/config/7.0_config.sql +vendor/etc/qcril_database/upgrade/other/0_initial_qcrilnr.sql +vendor/etc/qcril_database/upgrade/other/1_version_intro_qcrilnr.sql +vendor/etc/qcril_database/upgrade/other/2_version_add_wps_config_qcrilnr.sql +vendor/etc/qcril_database/upgrade/other/3_version_update_wps_config_qcrilnr.sql +vendor/etc/qcril_database/upgrade/other/4_version_update_ecc_table_qcrilnr.sql +vendor/etc/qcril_database/upgrade/other/5_version_update_ecc_table_qcrilnr.sql +vendor/etc/qcril_database/upgrade/other/6_version_change_property_table_qcrilnr.sql +vendor/etc/qcril_database/upgrade/other/7_version_update_ecc_table_qcrilnr.sql +vendor/etc/seccomp_policy/atfwd@2.0.policy vendor/etc/seccomp_policy/qcrilnr@2.0.policy -vendor/etc/ssg/ta_config.json -vendor/etc/ssg/tz_whitelist.json -vendor/lib/libconfigdb.so -vendor/lib/libmdmdetect.so -vendor/lib/libnetmgr.so vendor/lib64/deviceInfoServiceModuleNr.so vendor/lib64/libconfigdb.so vendor/lib64/liblqe.so @@ -1504,33 +1161,37 @@ vendor/lib64/libnetmgr_common.so vendor/lib64/libnetmgr_nr_fusion.so vendor/lib64/libnetmgr_rmnet_ext.so vendor/lib64/libnlnetmgr.so +vendor/lib64/libopf.so +vendor/lib64/libparam_vendor.so vendor/lib64/libpdmapper.so vendor/lib64/libpdnotifier.so vendor/lib64/libqcbor.so +vendor/lib64/libqcrildatactl.so vendor/lib64/libqcrilNr.so vendor/lib64/libqcrilNrFramework.so vendor/lib64/libqcrilNrLogger.so vendor/lib64/libqcrilNrQtiBus.so vendor/lib64/libqcrilNrQtiMutex.so -vendor/lib64/libqcrildatactl.so vendor/lib64/libqrtr.so vendor/lib64/libqrtrclient.so vendor/lib64/libqsocket.so vendor/lib64/libril-db.so vendor/lib64/libril-qc-ltedirectdisc.so vendor/lib64/libril-qc-radioconfig.so +vendor/lib64/libril-qcril-hook-oem.so vendor/lib64/librilqmimiscservices.so vendor/lib64/librilqmiservices.so vendor/lib64/libsystem_health_mon.so -vendor/lib64/qcrilMarshal.so vendor/lib64/qcrild_libqcrilnrutils.so +vendor/lib64/qcrilMarshal.so vendor/lib64/qtiril-utils.so vendor/lib64/qtiwakelock.so +vendor/lib64/vendor.oneplus.hardware.param@1.0.so vendor/lib64/vendor.qti.hardware.radio.am@1.0.so +vendor/lib64/vendor.qti.hardware.radio.atcmdfwd@1.0.so vendor/lib64/vendor.qti.hardware.radio.internal.deviceinfo@1.0.so vendor/lib64/vendor.qti.hardware.radio.lpa@1.0.so vendor/lib64/vendor.qti.hardware.radio.lpa@1.1.so -vendor/lib64/vendor.qti.hardware.radio.lpa@1.2.so vendor/lib64/vendor.qti.hardware.radio.qcrilhook@1.0.so vendor/lib64/vendor.qti.hardware.radio.qtiradio@1.0.so vendor/lib64/vendor.qti.hardware.radio.qtiradio@2.0.so @@ -1539,8 +1200,6 @@ vendor/lib64/vendor.qti.hardware.radio.qtiradio@2.2.so vendor/lib64/vendor.qti.hardware.radio.qtiradio@2.3.so vendor/lib64/vendor.qti.hardware.radio.qtiradio@2.4.so vendor/lib64/vendor.qti.hardware.radio.qtiradio@2.5.so -vendor/lib64/vendor.qti.hardware.radio.qtiradio@2.6.so -vendor/lib64/vendor.qti.hardware.radio.qtiradio@2.7.so vendor/lib64/vendor.qti.hardware.radio.uim@1.0.so vendor/lib64/vendor.qti.hardware.radio.uim@1.1.so vendor/lib64/vendor.qti.hardware.radio.uim@1.2.so @@ -1549,22 +1208,7 @@ vendor/lib64/vendor.qti.hardware.radio.uim_remote_client@1.1.so vendor/lib64/vendor.qti.hardware.radio.uim_remote_client@1.2.so vendor/lib64/vendor.qti.hardware.radio.uim_remote_server@1.0.so -# Sensors - from DE2117_11.C.37 -odm/etc/sensor/config/alsps.json|637ccbc1d44b97e52c25cf89c38eb23add3e7cfc -odm/etc/sensor/config/holi_alsps.json|373fcdf0c181fc4857766172a85907a1b5a42867 -odm/etc/sensor/config/holi_bmi26x_0.json|9b32a305c4d9e6b64e7c31bac128adcda83c2ff8 -odm/etc/sensor/config/holi_bmp380.json|c51bb798045fa1a0096aba4dda13112656d94eee -odm/etc/sensor/config/holi_lps22hb.json|548fcebf0ee7643d9c5da91ec5bef93c7f86b5af -odm/etc/sensor/config/holi_lsm6ds3c_0.json|fee2715461da218fa03aa5c0be0da4a6a2e7e390 -odm/etc/sensor/config/holi_mmc56x3x_0.json|6443e3b9585405e58c84b25962634b885c251acd -odm/etc/sensor/config/holi_sx932x.json|6b639662418307e2f9bc3786d32177877c5c2108 -odm/etc/sensor/config/holi_sx932x_down.json|0e1c9f24dbeceece0e27c0936e969d01e1775fff -odm/etc/sensor/sensor_config.json|399d44fdecf04893db2196ad8d3b8ae31585f2b7 -odm/etc/sensor.cfg|207b9d69dfba90c8a331ad58992f1475b66ba0eb - # Sensors -odm/bin/oplus_sensor_fb -odm/lib64/liboplus_service.so vendor/bin/hw/vendor.qti.hardware.sensorscalibrate@1.0-service vendor/bin/init.qcom.sensors.sh vendor/bin/sensors.qti @@ -1574,16 +1218,26 @@ vendor/etc/init/vendor.qti.hardware.sensorscalibrate@1.0-service.rc vendor/etc/init/vendor.sensors.qti.rc vendor/etc/init/vendor.sensors.sscrpcd.rc vendor/etc/permissions/vendor-qti-hardware-sensorscalibrate.xml +vendor/etc/sensors/config/alsps.json vendor/etc/sensors/config/holi_ak991x_0.json +vendor/etc/sensors/config/holi_alsps.json +vendor/etc/sensors/config/holi_bmi26x_0.json +vendor/etc/sensors/config/holi_bmp380.json vendor/etc/sensors/config/holi_bu52053nvx_0.json vendor/etc/sensors/config/holi_default_sensors.json vendor/etc/sensors/config/holi_dynamic_sensors.json vendor/etc/sensors/config/holi_icp101xx_0.json +vendor/etc/sensors/config/holi_lps22hb.json +vendor/etc/sensors/config/holi_lps22hh_0.json +vendor/etc/sensors/config/holi_lsm6ds3c_0.json vendor/etc/sensors/config/holi_lsm6dst_0.json +vendor/etc/sensors/config/holi_mmc56x3x_0.json vendor/etc/sensors/config/holi_power_0.json vendor/etc/sensors/config/holi_qrd_ak991x_0.json vendor/etc/sensors/config/holi_qrd_lsm6dst_0.json vendor/etc/sensors/config/holi_qrd_tmd2725.json +vendor/etc/sensors/config/holi_sx932x_down.json +vendor/etc/sensors/config/holi_sx932x.json vendor/etc/sensors/config/holi_tmd2725.json vendor/etc/sensors/config/sns_amd.json vendor/etc/sensors/config/sns_amd_sw_disabled.json @@ -1599,7 +1253,6 @@ vendor/etc/sensors/config/sns_cm.json vendor/etc/sensors/config/sns_dae.json vendor/etc/sensors/config/sns_device_orient.json vendor/etc/sensors/config/sns_diag_filter.json -vendor/etc/sensors/config/sns_direct_channel.json vendor/etc/sensors/config/sns_distance_bound.json vendor/etc/sensors/config/sns_dpc.json vendor/etc/sensors/config/sns_facing.json @@ -1620,68 +1273,71 @@ vendor/etc/sensors/config/sns_tilt_sw_disabled.json vendor/etc/sensors/config/sns_tilt_sw_enabled.json vendor/etc/sensors/config/sns_tilt_to_wake.json vendor/etc/sensors/config/sns_wrist_pedo.json -vendor/etc/sensors/config/strait_ak991x_0.json -vendor/etc/sensors/config/strait_bu52053nvx_0.json -vendor/etc/sensors/config/strait_default_sensors.json -vendor/etc/sensors/config/strait_dynamic_sensors.json -vendor/etc/sensors/config/strait_icp101xx_0.json -vendor/etc/sensors/config/strait_lsm6dst_0.json -vendor/etc/sensors/config/strait_power_0.json -vendor/etc/sensors/config/strait_qrd_ak991x_0.json -vendor/etc/sensors/config/strait_qrd_lsm6dst_0.json -vendor/etc/sensors/config/strait_qrd_tmd2725.json -vendor/etc/sensors/config/strait_tmd2725.json vendor/etc/sensors/proto/descriptor.proto vendor/etc/sensors/proto/nanopb.proto -vendor/etc/sensors/proto/sns_accel.proto +vendor/etc/sensors/proto/qti_gravity.proto vendor/etc/sensors/proto/sns_accel_cal.proto +vendor/etc/sensors/proto/sns_accel.proto vendor/etc/sensors/proto/sns_activity_recognition.proto vendor/etc/sensors/proto/sns_ambient_light.proto vendor/etc/sensors/proto/sns_ambient_temperature.proto vendor/etc/sensors/proto/sns_amd.proto vendor/etc/sensors/proto/sns_aont.proto +vendor/etc/sensors/proto/sns_async_com_port.proto vendor/etc/sensors/proto/sns_basic_gestures.proto vendor/etc/sensors/proto/sns_bring_to_ear.proto vendor/etc/sensors/proto/sns_cal.proto +vendor/etc/sensors/proto/sns_ccd_ttw.proto +vendor/etc/sensors/proto/sns_ccd_walk.proto vendor/etc/sensors/proto/sns_client.proto vendor/etc/sensors/proto/sns_cmc.proto +vendor/etc/sensors/proto/sns_cmd.proto +vendor/etc/sensors/proto/sns_dae.proto +vendor/etc/sensors/proto/sns_data_acquisition_engine.proto vendor/etc/sensors/proto/sns_da_test.proto vendor/etc/sensors/proto/sns_device_mode.proto vendor/etc/sensors/proto/sns_device_orient.proto vendor/etc/sensors/proto/sns_diag.proto vendor/etc/sensors/proto/sns_diag_sensor.proto vendor/etc/sensors/proto/sns_direct_channel.proto +vendor/etc/sensors/proto/sns_distance_bound.proto vendor/etc/sensors/proto/sns_dpc.proto vendor/etc/sensors/proto/sns_ext_svc.proto vendor/etc/sensors/proto/sns_facing.proto vendor/etc/sensors/proto/sns_fmv.proto vendor/etc/sensors/proto/sns_formatter.proto -vendor/etc/sensors/proto/sns_formatter_notify.proto vendor/etc/sensors/proto/sns_fw.proto vendor/etc/sensors/proto/sns_game_rv.proto vendor/etc/sensors/proto/sns_geomag_rv.proto vendor/etc/sensors/proto/sns_gravity.proto -vendor/etc/sensors/proto/sns_gyro.proto vendor/etc/sensors/proto/sns_gyro_cal.proto +vendor/etc/sensors/proto/sns_gyro.proto vendor/etc/sensors/proto/sns_gyro_rot_matrix.proto vendor/etc/sensors/proto/sns_hall.proto vendor/etc/sensors/proto/sns_heart_beat.proto vendor/etc/sensors/proto/sns_heart_rate.proto vendor/etc/sensors/proto/sns_hinge_angle.proto vendor/etc/sensors/proto/sns_humidity.proto -vendor/etc/sensors/proto/sns_mag.proto +vendor/etc/sensors/proto/sns_interrupt.proto vendor/etc/sensors/proto/sns_mag_cal.proto +vendor/etc/sensors/proto/sns_mag.proto +vendor/etc/sensors/proto/sns_mcmd.proto +vendor/etc/sensors/proto/sns_motion_detect.proto +vendor/etc/sensors/proto/sns_multishake.proto vendor/etc/sensors/proto/sns_oem1.proto vendor/etc/sensors/proto/sns_offbody_detect.proto +vendor/etc/sensors/proto/sns_op_motion_detect.proto vendor/etc/sensors/proto/sns_pedometer.proto vendor/etc/sensors/proto/sns_pedometer_wrist.proto vendor/etc/sensors/proto/sns_physical_sensor_test.proto +vendor/etc/sensors/proto/sns_pocket.proto vendor/etc/sensors/proto/sns_pose_6dof.proto vendor/etc/sensors/proto/sns_ppg.proto vendor/etc/sensors/proto/sns_pressure.proto vendor/etc/sensors/proto/sns_proximity.proto vendor/etc/sensors/proto/sns_psmd.proto vendor/etc/sensors/proto/sns_registry.proto +vendor/etc/sensors/proto/sns_remote_proc_state.proto vendor/etc/sensors/proto/sns_resampler.proto vendor/etc/sensors/proto/sns_rgb.proto vendor/etc/sensors/proto/sns_rmd.proto @@ -1689,8 +1345,11 @@ vendor/etc/sensors/proto/sns_rotv.proto vendor/etc/sensors/proto/sns_sar.proto vendor/etc/sensors/proto/sns_sensor_temperature.proto vendor/etc/sensors/proto/sns_sig_motion.proto -vendor/etc/sensors/proto/sns_std.proto +vendor/etc/sensors/proto/sns_signal_sensor.proto +vendor/etc/sensors/proto/sns_sim_legacy.proto +vendor/etc/sensors/proto/sns_sim.proto vendor/etc/sensors/proto/sns_std_event_gated_sensor.proto +vendor/etc/sensors/proto/sns_std.proto vendor/etc/sensors/proto/sns_std_sensor.proto vendor/etc/sensors/proto/sns_std_type.proto vendor/etc/sensors/proto/sns_step_detect.proto @@ -1699,6 +1358,7 @@ vendor/etc/sensors/proto/sns_thermopile.proto vendor/etc/sensors/proto/sns_threshold.proto vendor/etc/sensors/proto/sns_tilt.proto vendor/etc/sensors/proto/sns_tilt_to_wake.proto +vendor/etc/sensors/proto/sns_timer.proto vendor/etc/sensors/proto/sns_ultra_violet.proto vendor/etc/sensors/proto/sns_wrist_tilt_gesture.proto vendor/etc/sensors/hals.conf @@ -1718,7 +1378,7 @@ vendor/lib64/vendor.qti.hardware.sensorscalibrate@1.0.so # Snapdragon Computer Vision Engine vendor/lib/libfastcvdsp_stub.so -vendor/lib/libfastcvopt.so +-vendor/lib/libfastcvopt.so vendor/lib/libscveCommon.so vendor/lib/libscveCommon_stub.so vendor/lib/libscveObjectSegmentation.so @@ -1726,7 +1386,7 @@ vendor/lib/libscveObjectSegmentation_stub.so vendor/lib/libscveObjectTracker.so vendor/lib/libscveObjectTracker_stub.so vendor/lib64/libfastcvdsp_stub.so -vendor/lib64/libfastcvopt.so +-vendor/lib64/libfastcvopt.so vendor/lib64/libscveCommon.so vendor/lib64/libscveCommon_stub.so vendor/lib64/libscveObjectSegmentation.so @@ -1742,29 +1402,20 @@ vendor/lib64/vendor.qti.hardware.soter@1.0.so # Thermal engine vendor/bin/thermal-engine -vendor/etc/init/init_thermal-engine.rc vendor/etc/thermal-engine.conf -vendor/lib/libthermalclient.so -vendor/lib64/libthermalclient.so +-vendor/lib/libthermalclient.so +-vendor/lib64/libthermalclient.so # Time services -vendor/app/TimeService/TimeService.apk +-vendor/app/TimeService/TimeService.apk vendor/bin/time_daemon vendor/etc/init/init.time_daemon.rc vendor/lib64/libtime_genoff.so -# Touchscreen firmware - from DE2117_11.C.37 -odm/firmware/tp/133144/FW_NF_ILI7807S_TIANMA.img;SYMLINK=odm/firmware/tp/133180/FW_NF_ILI7807S_TIANMA.img|57128b45ffd464032b07b5bb34b70b760014ac28 -odm/firmware/tp/133144/FW_NF_ILI7807S_TIANMA_FAE.img;SYMLINK=odm/firmware/tp/133180/FW_NF_ILI7807S_TIANMA_FAE.img|a892bebde4c7e5bd1cf1b3925ca8cedba69c401b -odm/firmware/tp/133144/FW_NF_NT36672C_DSJM.img;SYMLINK=odm/firmware/tp/133180/FW_NF_NT36672C_DSJM.img|8f9770d361f9db1f99cc6a00dad189e54a269329 -odm/firmware/tp/133144/FW_NF_NT36672C_DSJM_FAE.img;SYMLINK=odm/firmware/tp/133180/FW_NF_NT36672C_DSJM_FAE.img|bcec89af4c6a3f5d93f41c9522db1adf828eedd1 -odm/firmware/tp/133144/FW_NF_NT36672C_DSJM_TEST.bin;SYMLINK=odm/firmware/tp/133180/FW_NF_NT36672C_DSJM_TEST.bin|251543cda1adf0237adc324ee3bf566abfae6f4c -odm/firmware/tp/133144/FW_NF_NT36672C_TIANMA.img;SYMLINK=odm/firmware/tp/133180/FW_NF_NT36672C_TIANMA.img|f191bb5f958e72270a99eae768c4a495ecc6915f -odm/firmware/tp/133144/FW_NF_NT36672C_TIANMA_FAE.img;SYMLINK=odm/firmware/tp/133180/FW_NF_NT36672C_TIANMA_FAE.img|de808ee5bce21e8dd230aea480a45d5a4f58701b -odm/firmware/tp/133144/FW_NF_NT36672C_TIANMA_TEST.bin;SYMLINK=odm/firmware/tp/133180/FW_NF_NT36672C_TIANMA_TEST.bin|8241bb846f9ba408c1b43719acd08c440213d55a -odm/firmware/tp/133144/LIMIT_NF_ILI7807S_TIANMA.img;SYMLINK=odm/firmware/tp/133180/LIMIT_NF_ILI7807S_TIANMA.img|f96221079feac750ffbf69014efd4beb7fcec23d -odm/firmware/tp/133144/LIMIT_NF_NT36672C_DSJM.img;SYMLINK=odm/firmware/tp/133180/LIMIT_NF_NT36672C_DSJM.img|a890add4044670b3b7ca4eb95c8bcf8d95e56734 -odm/firmware/tp/133144/LIMIT_NF_NT36672C_TIANMA.img;SYMLINK=odm/firmware/tp/133180/LIMIT_NF_NT36672C_TIANMA.img|2063ed914d8a918e15dc62cf0af2df8942f22079 +# Touchscreen firmware +vendor/firmware/tp/20818/FW_NF_NT36672C_TIANMA.img +vendor/firmware/tp/20818/FW_NF_NT36672C_TIANMA_TEST.bin +vendor/firmware/tp/20818/LIMIT_NF_NT36672C_TIANMA.img # Trusted Execution Environment connector vendor/bin/hw/vendor.qti.hardware.qteeconnector@1.0-service @@ -1772,7 +1423,6 @@ vendor/etc/init/vendor.qti.hardware.qteeconnector@1.0-service.rc vendor/lib64/hw/vendor.qti.hardware.qteeconnector@1.0-impl.so vendor/lib64/libGPQTEEC_vendor.so vendor/lib64/libGPTEE_vendor.so -vendor/lib64/libQTEEConnector_listener.so vendor/lib64/libQTEEConnector_vendor.so vendor/lib64/vendor.qti.hardware.qteeconnector@1.0.so @@ -1781,82 +1431,104 @@ vendor/bin/hw/vendor.qti.hardware.tui_comm@1.0-service-qti vendor/etc/init/vendor.qti.hardware.tui_comm@1.0-service-qti.rc vendor/lib64/vendor.qti.hardware.tui_comm@1.0.so +# Vibrator firmware +vendor/firmware/aw87xxx_pid_5a_fm_0.bin +vendor/firmware/aw87xxx_pid_5a_music_0.bin +vendor/firmware/aw87xxx_pid_5a_off_0.bin +vendor/firmware/aw87xxx_pid_5a_rcv_0.bin +vendor/firmware/aw87xxx_pid_5a_voice_0.bin +vendor/firmware/aw87xxx_vmax_0.bin + # VPP +vendor/lib/vendor.qti.hardware.vpp@1.1.so +vendor/lib/vendor.qti.hardware.vpp@1.2.so +vendor/lib/vendor.qti.hardware.vpp@1.3.so +vendor/lib/vendor.qti.hardware.vpp@2.0.so vendor/lib64/vendor.qti.hardware.vpp@1.1.so vendor/lib64/vendor.qti.hardware.vpp@1.2.so vendor/lib64/vendor.qti.hardware.vpp@1.3.so vendor/lib64/vendor.qti.hardware.vpp@2.0.so -# VPU firmware - from DE2117_11.C.37 -vendor/firmware/vpu20_4v.b01|18d7f096d032f45d2735e49b1753c6ea71c975ac -vendor/firmware/vpu20_4v.b02|f98b37380cc5d3b72541f5ad19d4eb465540e1eb -vendor/firmware/vpu20_4v.b03|7772b18b16e520641e8051fd6284384e9b0e1939 -vendor/firmware/vpu20_4v.b04|3fa13fcee15cc831c0c831ebf01edacc5f0f2bf2 -vendor/firmware/vpu20_4v.b05|f726e7fa233485e02ef6172833d51353627aa81d -vendor/firmware/vpu20_4v.b06|e19854e03b52cc67d7db620f54609b66d1b85f54 -vendor/firmware/vpu20_4v.b07|0b403b94f400e8f76ac5f5f18f6957318ec2a582 -vendor/firmware/vpu20_4v.b08|86a5ed4d22759036806d9321f8e509628f64c5b6 -vendor/firmware/vpu20_4v.b09|39ae290288cab6a550f346eb1f404f9bebe908a7 -vendor/firmware/vpu20_4v.b10|7c1bc6e568d5bdd45b74ca340f590e5eeb0ee62d -vendor/firmware/vpu20_4v.b11|da39a3ee5e6b4b0d3255bfef95601890afd80709 -vendor/firmware/vpu20_4v.b12|da39a3ee5e6b4b0d3255bfef95601890afd80709 -vendor/firmware/vpu20_4v.b13|da39a3ee5e6b4b0d3255bfef95601890afd80709 -vendor/firmware/vpu20_4v.b14|da39a3ee5e6b4b0d3255bfef95601890afd80709 -vendor/firmware/vpu20_4v.b15|da39a3ee5e6b4b0d3255bfef95601890afd80709 -vendor/firmware/vpu20_4v.b16|da39a3ee5e6b4b0d3255bfef95601890afd80709 -vendor/firmware/vpu20_4v.b17|da39a3ee5e6b4b0d3255bfef95601890afd80709 -vendor/firmware/vpu20_4v.b18|da39a3ee5e6b4b0d3255bfef95601890afd80709 -vendor/firmware/vpu20_4v.b19|c1756e0567d10a1173f481cd367ff4637b2dd77f -vendor/firmware/vpu20_4v.mbn|2908604891c8444b5224a2c31e5e7d6e9ea81bf4 -vendor/firmware/vpu20_4v.mdt|d790954d379cf802f464a760f9e76880ef209a94 -vendor/firmware/vpu20_4v_unsigned.mbn|135bbafec880648519a57818f6dcd7d154c97907 +# VPU firmware +vendor/firmware/vpu20_4v.b01 +vendor/firmware/vpu20_4v.b02 +vendor/firmware/vpu20_4v.b03 +vendor/firmware/vpu20_4v.b04 +vendor/firmware/vpu20_4v.b05 +vendor/firmware/vpu20_4v.b06 +vendor/firmware/vpu20_4v.b07 +vendor/firmware/vpu20_4v.b08 +vendor/firmware/vpu20_4v.b09 +vendor/firmware/vpu20_4v.b10 +vendor/firmware/vpu20_4v.b11 +vendor/firmware/vpu20_4v.b12 +vendor/firmware/vpu20_4v.b13 +vendor/firmware/vpu20_4v.b14 +vendor/firmware/vpu20_4v.b15 +vendor/firmware/vpu20_4v.b16 +vendor/firmware/vpu20_4v.b17 +vendor/firmware/vpu20_4v.b18 +vendor/firmware/vpu20_4v.b19 +vendor/firmware/vpu20_4v.mbn +vendor/firmware/vpu20_4v.mdt +vendor/firmware/vpu20_4v_unsigned.mbn # Widevine DRM -odm/bin/hw/android.hardware.drm@1.3-service.widevine -odm/etc/init/android.hardware.drm@1.3-service.widevine.rc -odm/etc/vintf/manifest/manifest_android.hardware.drm@1.3-service.widevine.xml -odm/lib64/mediadrm/libwvdrmengine.so -odm/lib64/liboemcrypto.so -odm/lib64/libwvhidl.so +vendor/bin/hw/android.hardware.drm@1.3-service.widevine +vendor/etc/init/android.hardware.drm@1.3-service.widevine.rc +-vendor/etc/vintf/manifest/manifest_android.hardware.drm@1.3-service.widevine.xml +vendor/lib64/mediadrm/libwvdrmengine.so vendor/lib64/libtrustedapploader.so +vendor/lib64/libwvhidl.so # WiFi -odm/vendor/etc/wifi/WCNSS_qcom_cfg.ini -odm/etc/wifi/regdb.bin vendor/bin/cnss-daemon -vendor/etc/wifi/p2p_supplicant_overlay.conf -vendor/etc/wifi/wpa_supplicant_overlay.conf +vendor/etc/wifi/WCNSS_qcom_cfg.ini -# WiFi Display (system) - from dada OS2.0.217.0.WOCMIXM -system/framework/WfdCommon.jar;BOOT_JAR|76fab5ed43206989057284fa26e8b894f1da102f -system_ext/bin/wfdservice64:system_ext/bin/wfdservice|34851904d02d11d3cfebbc7b8745a9444ba3e7c5 -system_ext/etc/init/wfdservice.rc|907def8565d8f91f531ca7dfad880af05d540b0c -system_ext/etc/permissions/wfd-system-ext-privapp-permissions-qti.xml|6669d5ee462c981663b8ac573d84d334e4eed96c -system_ext/etc/seccomp_policy/wfdservice64.policy|1e331272649395423b11c575892e0bdc9433b820 -system_ext/lib64/libmmrtpdecoder.so|8b143c0b004a2f5ab8d7911dd463de0ceea794e7 -system_ext/lib64/libmmrtpencoder.so|eef3f64e6c2892fc0c87e176f5a83f7fe07761d3 -system_ext/lib64/libwfdavenhancements.so|8c968c6930e44901ef8c6abd6356f2308600d90e -system_ext/lib64/libwfdclient.so|2d1bf9b010ecfb8532eaf6a12c8bf60f9e8ffe08 -system_ext/lib64/libwfdcommonutils.so|3ae375016a9551e51f26710e8b07d20eeef2b76f -system_ext/lib64/libwfdconfigutils.so|4d8200cc4c455f54fcbce927f5cabeb7b591f5d0 -system_ext/lib64/libwfddisplayconfig.so|27f5d6e284edf05cc7776e5be010912973000ab9 -system_ext/lib64/libwfdmminterface.so|8d3d493fef797aef2feaab4e09e50250ddf5dc9a -system_ext/lib64/libwfdmmsink.so|4569ce9941eb5d06db599146ed80b8a32d7cd97f -system_ext/lib64/libwfdmmsrc_system.so|0cc970954800566baddbf760b153b027940180f5 -system_ext/lib64/libwfdnative.so;SYMLINK=system_ext/priv-app/WfdService/lib/arm64/libwfdnative.so|9513bbbd813dd05fb063d3c9e72640a1bc9156c2|f2918bbd8e4c691299e840863e8cb502a47bb773 -system_ext/lib64/libwfdrtsp.so|1ab4fc5b75d25f551df3593d5856e6f7893a4176 -system_ext/lib64/libwfdservice.so|af0e31f17ed997a5d8bad64cdad486be28cb9f07 -system_ext/lib64/libwfdsinksm.so|cc899b719fa11d844c65908d7fdc18600451324d -system_ext/lib64/libwfduibcinterface.so|432d54b072d8f1c80409b6e11f4f833ca9576937 -system_ext/lib64/libwfduibcsink.so|d12b05bbcefdff6addc2c31567a656b7540d7489 -system_ext/lib64/libwfduibcsinkinterface.so|a41b4d1fa4307a247b1f059a5b5cdf7f6a645db3 -system_ext/lib64/libwfduibcsrc.so|5be7d282be9ab45297bd030f8e37a45f48aa8677 -system_ext/lib64/libwfduibcsrcinterface.so|0e32acc87c8518e8ebb44f6ef341a2e278e1e7c2 -system_ext/lib64/vendor.qti.hardware.wifidisplaysession@1.0.so|2b2563450ad6a8d46d5648b97f63f87c5d9983ca -system_ext/lib64/vendor.qti.hardware.wifidisplaysession_aidl-V1-ndk.so|58cd9358df40aa16ddf0e603b736c58588623b9e -system_ext/priv-app/WfdService/WfdService.apk|b8a1d9f83804d274fab6e09e0607082801207f60 - -# WiFi Display (vendor) +# WiFi Display +-system/framework/WfdCommon.jar +system_ext/bin/wfdservice +system_ext/etc/init/wfdservice.rc +system_ext/etc/seccomp_policy/wfdservice.policy +system_ext/etc/wfdconfigsink.xml +system_ext/lib/com.qualcomm.qti.wifidisplayhal@1.0.so +system_ext/lib/libmmrtpdecoder.so +system_ext/lib/libmmrtpencoder.so +system_ext/lib/libwfdavenhancements.so +system_ext/lib/libwfdclient.so +system_ext/lib/libwfdcommonutils.so +system_ext/lib/libwfdconfigutils.so +system_ext/lib/libwfddisplayconfig.so +system_ext/lib/libwfdmminterface.so +system_ext/lib/libwfdmmsink.so +system_ext/lib/libwfdmmsrc_system.so +system_ext/lib/libwfdrtsp.so +system_ext/lib/libwfdservice.so +system_ext/lib/libwfdsinksm.so +system_ext/lib/libwfduibcinterface.so +system_ext/lib/libwfduibcsink.so +system_ext/lib/libwfduibcsinkinterface.so +system_ext/lib/libwfduibcsrc.so +system_ext/lib/libwfduibcsrcinterface.so +system_ext/lib/vendor.qti.hardware.wifidisplaysession@1.0.so +system_ext/lib64/libmmparser_lite.so +system_ext/lib64/libmmrtpdecoder.so +system_ext/lib64/libmmrtpencoder.so +system_ext/lib64/libwfdclient.so +system_ext/lib64/libwfdcommonutils.so +system_ext/lib64/libwfdconfigutils.so +system_ext/lib64/libwfddisplayconfig.so +system_ext/lib64/libwfdmminterface.so +system_ext/lib64/libwfdmmsink.so +system_ext/lib64/libwfdnative.so +system_ext/lib64/libwfdrtsp.so +system_ext/lib64/libwfdsinksm.so +system_ext/lib64/libwfduibcinterface.so +system_ext/lib64/libwfduibcsink.so +system_ext/lib64/libwfduibcsinkinterface.so +system_ext/lib64/libwfduibcsrc.so +system_ext/lib64/libwfduibcsrcinterface.so +-system_ext/priv-app/WfdService/WfdService.apk vendor/bin/wfdhdcphalservice vendor/bin/wfdvndservice vendor/bin/wifidisplayhalservice @@ -1869,7 +1541,7 @@ vendor/etc/seccomp_policy/wifidisplayhalservice.policy vendor/etc/wfdconfig.xml vendor/lib/libFileMux_proprietary.so vendor/lib/libmm-hdcpmgr.so -vendor/lib/libmmosal.so;MODULE_SUFFIX=_vendor +vendor/lib/libmmosal.so vendor/lib/libmmrtpdecoder_proprietary.so vendor/lib/libmmrtpencoder_proprietary.so vendor/lib/libwfdcodecv4l2_proprietary.so @@ -1892,5 +1564,5 @@ vendor/lib/libwfduibcsinkinterface_proprietary.so vendor/lib/libwfduibcsrc_proprietary.so vendor/lib/libwfduibcsrcinterface_proprietary.so vendor/lib/libwfdutils_proprietary.so -vendor/lib/vendor.qti.hardware.wifidisplaysession@1.0.so;MODULE_SUFFIX=_vendor +vendor/lib/vendor.qti.hardware.wifidisplaysession@1.0.so vendor/lib/vendor.qti.hardware.wifidisplaysessionl@1.0-halimpl.so diff --git a/qcril-database/Android.bp b/qcril-database/Android.bp deleted file mode 100644 index 9db5fc7..0000000 --- a/qcril-database/Android.bp +++ /dev/null @@ -1,37 +0,0 @@ -// -// SPDX-FileCopyrightText: 2025 The LineageOS Project -// SPDX-License-Identifier: Apache-2.0 -// - -filegroup { - name: "rildb_config_sql_files", - srcs: [ - "config/14.1_config.sql", - ], -} - -genrule { - name: "qcril_config_database", - enabled: true, - srcs: [ - "//vendor/oneplus/dre:proprietary_rildb_other_sql_files", - "//vendor/oneplus/dre:proprietary_rildb_config_sql_files", - ":rildb_config_sql_files", - ], - tools: [ - "generate_qcril_db", - ], - cmd: "$(location generate_qcril_db) $(out) $(in)", - out: ["qcrilNr.db"], -} - -prebuilt_etc { - name: "qcrilNrDb_vendor", - filename: "qcrilNr.db", - src: ":qcril_config_database", - relative_install_path: "qcril_database", - vendor: true, - required: [ - "14.1_config.sql", - ], -} diff --git a/qcril-database/config/14.1_config.sql b/qcril-database/config/14.1_config.sql deleted file mode 100644 index 21b1532..0000000 --- a/qcril-database/config/14.1_config.sql +++ /dev/null @@ -1,8 +0,0 @@ -/* - Copyright (C) 2025 The LineageOS Project - SPDX-License-Identifier: Apache-2.0 -*/ - -CREATE TABLE IF NOT EXISTS qcril_properties_table (property TEXT PRIMARY KEY NOT NULL, def_val TEXT, value TEXT); -INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES('qcrildb_version',14.1); -UPDATE qcril_properties_table SET def_val="0" WHERE property="persist.vendor.radio.poweron_opt"; diff --git a/qcril-database/config/Android.bp b/qcril-database/config/Android.bp deleted file mode 100644 index 341bc01..0000000 --- a/qcril-database/config/Android.bp +++ /dev/null @@ -1,11 +0,0 @@ -// -// SPDX-FileCopyrightText: 2025 The LineageOS Project -// SPDX-License-Identifier: Apache-2.0 -// - -prebuilt_etc { - name: "14.1_config.sql", - src: "14.1_config.sql", - relative_install_path: "qcril_database/upgrade/config", - vendor: true, -} diff --git a/rootdir/Android.mk b/rootdir/Android.mk new file mode 100644 index 0000000..c8812c7 --- /dev/null +++ b/rootdir/Android.mk @@ -0,0 +1,269 @@ +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) +LOCAL_MODULE := charger_fstab.qti +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := etc/charger_fstab.qti +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC) +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := fstab.qcom +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := etc/fstab.qcom +LOCAL_REQUIRED_MODULES := fstab.qcom.first_stage_ramdisk +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC) +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := fstab.qcom.first_stage_ramdisk +LOCAL_MODULE_STEM := fstab.qcom +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := etc/fstab.qcom +LOCAL_MODULE_PATH := $(TARGET_VENDOR_RAMDISK_OUT)/first_stage_ramdisk +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := init.class_main.sh +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := bin/init.class_main.sh +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES) +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := init.kernel.post_boot.sh +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := bin/init.kernel.post_boot.sh +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES) +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := init.qcom.class_core.sh +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := bin/init.qcom.class_core.sh +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES) +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := init.qcom.early_boot.sh +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := bin/init.qcom.early_boot.sh +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES) +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := init.qcom.post_boot.sh +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := bin/init.qcom.post_boot.sh +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES) +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := init.qcom.sh +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := bin/init.qcom.sh +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES) +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := init.qcom.usb.sh +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := bin/init.qcom.usb.sh +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES) +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := init.qti.chg_policy.sh +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := bin/init.qti.chg_policy.sh +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES) +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := init.qti.dcvs.sh +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := bin/init.qti.dcvs.sh +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES) +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := init.qti.kernel.sh +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := bin/init.qti.kernel.sh +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES) +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := init.qti.qcv.sh +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := bin/init.qti.qcv.sh +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES) +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := vendor_modprobe.sh +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := bin/vendor_modprobe.sh +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES) +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := ftm_power_config.sh +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := etc/ftm_power_config.sh +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := init.cust.rc +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := etc/init.cust.rc +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := init.oem.debug.rc +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := etc/init.oem.debug.rc +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := init.oem_ftm.rc +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := etc/init.oem_ftm.rc +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := init.oem_rf.rc +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := etc/init.oem_rf.rc +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := init.oem.rc +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := etc/init.oem.rc +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := init.qcom.factory.rc +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := etc/init.qcom.factory.rc +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := init.qcom.rc +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := etc/init.qcom.rc +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := init.qcom.usb.rc +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := etc/init.qcom.usb.rc +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := init.qti.kernel.rc +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := etc/init.qti.kernel.rc +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := init.qti.qcv.rc +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := etc/init.qti.qcv.rc +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := init.recovery.qcom.rc +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := etc/init.recovery.qcom.rc +LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT) +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := init.stnfc.rc +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := etc/init.stnfc.rc +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := init.target.rc +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := etc/init.target.rc +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := init.uicc.rc +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := etc/init.uicc.rc +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := vendor.oem_ftm.rc +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := etc/vendor.oem_ftm.rc +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := vendor.oem_ftm_svc_disable.rc +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := etc/vendor.oem_ftm_svc_disable.rc +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := ueventd.qcom.rc +LOCAL_MODULE_STEM := ueventd.rc +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := ueventd.rc +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR) +include $(BUILD_PREBUILT) diff --git a/init/init.class_main.sh b/rootdir/bin/init.class_main.sh similarity index 100% rename from init/init.class_main.sh rename to rootdir/bin/init.class_main.sh diff --git a/rootdir/bin/init.kernel.post_boot.sh b/rootdir/bin/init.kernel.post_boot.sh new file mode 100755 index 0000000..15a7094 --- /dev/null +++ b/rootdir/bin/init.kernel.post_boot.sh @@ -0,0 +1,449 @@ +#============================================================================= +# Copyright (c) 2020 Qualcomm Technologies, Inc. +# All Rights Reserved. +# Confidential and Proprietary - Qualcomm Technologies, Inc. +# +# Copyright (c) 2012-2013, 2016-2020, The Linux Foundation. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of The Linux Foundation nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +#============================================================================= + +function configure_zram_parameters() { + postboot_running=$(getprop vendor.sys.memplus.postboot 0) + if [ $postboot_running == 3 ];then + return + fi + + MemTotalStr=`cat /proc/meminfo | grep MemTotal` + MemTotal=${MemTotalStr:16:8} + + # Zram disk - 75% for < 2GB devices . + # For >2GB devices, size = 50% of RAM size. Limit the size to 4GB. + + let RamSizeGB="( $MemTotal / 1048576 ) + 1" + diskSizeUnit=M + if [ $RamSizeGB -le 2 ]; then + let zRamSizeMB="( $RamSizeGB * 1024 ) * 3 / 4" + else + let zRamSizeMB="( $RamSizeGB * 1024 ) / 2" + fi + + # use MB avoid 32 bit overflow + if [ $zRamSizeMB -gt 4096 ]; then + let zRamSizeMB=4096 + fi + + if [ -f /sys/block/zram0/disksize ]; then + if [ -f /sys/block/zram0/use_dedup ]; then + echo 1 > /sys/block/zram0/use_dedup + fi + echo "$zRamSizeMB""$diskSizeUnit" > /sys/block/zram0/disksize + + # ZRAM may use more memory than it saves if SLAB_STORE_USER + # debug option is enabled. + if [ -e /sys/kernel/slab/zs_handle ]; then + echo 0 > /sys/kernel/slab/zs_handle/store_user + fi + if [ -e /sys/kernel/slab/zspage ]; then + echo 0 > /sys/kernel/slab/zspage/store_user + fi + + mkswap /dev/block/zram0 + swapon /dev/block/zram0 -p 32758 + fi +} + +function configure_read_ahead_kb_values() { + MemTotalStr=`cat /proc/meminfo | grep MemTotal` + MemTotal=${MemTotalStr:16:8} + + dmpts=$(ls /sys/block/*/queue/read_ahead_kb | grep -e dm -e mmc) + + # Set 128 for <= 4GB & + # set 512 for > 4GB targets. + if [ $MemTotal -le 4194304 ]; then + ra_kb=128 + else + ra_kb=512 + fi + if [ -f /sys/block/mmcblk0/bdi/read_ahead_kb ]; then + echo $ra_kb > /sys/block/mmcblk0/bdi/read_ahead_kb + fi + if [ -f /sys/block/mmcblk0rpmb/bdi/read_ahead_kb ]; then + echo $ra_kb > /sys/block/mmcblk0rpmb/bdi/read_ahead_kb + fi + for dm in $dmpts; do + echo $ra_kb > $dm + done +} + +# huangwen.chen@OPTI, 2020/05/14, add for zram writeback + function configure_zram_writeback() { + # get backing storage size, unit: MB + backing_dev_size=$(getprop persist.vendor.zwriteback.backing_dev_size 2048) + case $backing_dev_size in + [1-9]) + ;; + [1-9][0-9]*) + ;; + *) + backing_dev_size=2048 + ;; + esac + + dump_switch=$(getprop persist.vendor.zwriteback.backup) + wb_file="/data/vendor/swap/zram_wb" + if [[ -f $wb_file && $dump_switch == 1 ]];then + rm -f "/data/vendor/swap/zram_wb.old" + mv $wb_file "/data/vendor/swap/zram_wb.old" + fi + # create backing storage + # check if dd command success + ret=$(dd if=/dev/zero of=/data/vendor/swap/zram_wb bs=1m count=$backing_dev_size 2>&1) + if [ $? -ne 0 ];then + rm -f /data/vendor/swap/zram_wb + echo "memplus $ret" > /dev/kmsg + return 1 + fi + + # check if attaching file success + losetup -f + loop_device=$(losetup -f -s /data/vendor/swap/zram_wb 2>&1) + if [ $? -ne 0 ];then + rm -f /data/vendor/swap/zram_wb + echo "memplus $loop_device" > /dev/kmsg + return 1 + fi + echo $loop_device > /sys/block/zram0/backing_dev + + mem_limit=$(getprop persist.vendor.zwriteback.mem_limit) + case $mem_limit in + [1-9]) + mem_limit="${mem_limit}M" + ;; + [1-9][0-9]*) + mem_limit="${mem_limit}M" + ;; + *) + mem_limit="1G" + ;; + esac + echo $mem_limit > /sys/block/zram0/mem_limit + } + + # bin.zhong@ASTI, 2019/10/12, add for memplus + function configure_memplus_parameters() { + bootmode=`getprop ro.vendor.factory.mode` + if [ "$bootmode" == "ftm" ] || [ "$bootmode" == "wlan" ] || [ "$bootmode" == "rf" ];then + return + fi + if [ ! $memplus_post_config ];then + return + fi + setprop vendor.sys.memplus.postboot 1 + memplus=`getprop persist.vendor.memplus.enable` + case "$memplus" in + "0") + # diable swapspace + rm /data/vendor/swap/swapfile + echo "memplus swapoff start" > /dev/kmsg + ret=$(swapoff /dev/block/zram0 2>&1) + if [ $? -ne 0 ];then + echo "memplus $ret" > /dev/kmsg + return + fi + echo "memplus swapoff done" > /dev/kmsg + ;; + "1") + # enable memplus + rm /data/vendor/swap/swapfile + # reset zram swapspace + # huangwen.chen@OPTI, 2020/07/10 check if swapoff success + echo "memplus swapoff start" > /dev/kmsg + ret=$(swapoff /dev/block/zram0 2>&1) + if [ $? -ne 0 ];then + echo "memplus $ret" > /dev/kmsg + return + fi + echo "memplus swapoff done" > /dev/kmsg + echo 1 > /sys/block/zram0/reset + + # huangwen.chen@OPTI, 2020/05/21 set zram disksize by property + disksize=$(getprop persist.vendor.zwriteback.disksize 2048) + case $disksize in + [1-9]) + disksize="${disksize}M" + ;; + [1-9][0-9]*) + disksize="${disksize}M" + ;; + *) + disksize="2100M" + ;; + esac + + # huangwen.chen@OPTI, 2020/05/14 add for zram writeback + # check if ZRAM_WRITEBACK_CONFIG enable + writeback_file="/sys/block/zram0/writeback" + zwriteback=$(getprop persist.vendor.zwriteback.enable 0) + if [[ -f $writeback_file && $zwriteback == 1 ]];then + configure_zram_writeback + # check if configure_zram_writeback success + if [ $? -ne 0 ];then + echo 0 > /sys/block/zram0/mem_limit + fi + else + rm -f /data/vendor/swap/zram_wb + disksize="2100M" + echo 0 > /sys/block/zram0/mem_limit + fi + echo $disksize > /sys/block/zram0/disksize + + mkswap /dev/block/zram0 + echo "memplus swapon start" > /dev/kmsg + swapon /dev/block/zram0 -p 32758 + if [ $? -eq 0 ]; then + echo 1 > /sys/module/memplus_core/parameters/memory_plus_enabled + fi + echo "memplus swapon done" > /dev/kmsg + ;; + *) + #enable kswapd + rm /data/vendor/swap/swapfile + # reset zram swapspace + # huangwen.chen@OPTI, 2020/07/10 check if swapoff success + echo "memplus swapoff start" > /dev/kmsg + ret=$(swapoff /dev/block/zram0 2>&1) + if [ $? -ne 0 ];then + echo "memplus $ret" > /dev/kmsg + return + fi + echo "memplus swapoff done" > /dev/kmsg + echo 1 > /sys/block/zram0/reset + echo zstd > /sys/block/zram0/comp_algorithm + # huangwen.chen@OPTI, 2020/05/21 set zram disksize by property + disksize=$(getprop persist.vendor.zwriteback.disksize 2048) + case $disksize in + [1-9]) + disksize="${disksize}M" + ;; + [1-9][0-9]*) + disksize="${disksize}M" + ;; + *) + disksize="2100M" + ;; + esac + # huangwen.chen@OPTI, 2020/05/14 add for zram writeback + # check if ZRAM_WRITEBACK_CONFIG enable + writeback_file="/sys/block/zram0/writeback" + zwriteback=$(getprop persist.vendor.zwriteback.enable 0) + if [[ -f $writeback_file && $zwriteback == 1 ]];then + configure_zram_writeback + if [ $? -ne 0 ];then + echo 0 > /sys/block/zram0/mem_limit + fi + else + rm -f /data/vendor/swap/zram_wb + disksize="2100M" + echo 0 > /sys/block/zram0/mem_limit + fi + echo $disksize > /sys/block/zram0/disksize + + mkswap /dev/block/zram0 + echo "memplus swapon start" > /dev/kmsg + swapon /dev/block/zram0 -p 32758 + if [ $? -eq 0 ]; then + echo 0 > /sys/module/memplus_core/parameters/memory_plus_enabled + fi + echo "memplus swapon done" > /dev/kmsg + ;; + esac + setprop vendor.sys.memplus.postboot 2 + } + +function configure_memory_parameters() { + # Set Memory parameters. + + # Set swappiness to 180 for all targets + echo 180 > /proc/sys/vm/swappiness + echo 0 > /proc/sys/vm/direct_swappiness + + # Disable wsf for all targets beacause we are using efk. + # wsf Range : 1..1000 So set to bare minimum value 1. + echo 1 > /proc/sys/vm/watermark_scale_factor + configure_zram_parameters + configure_read_ahead_kb_values + echo 0 > /proc/sys/vm/page-cluster + + #Spawn 2 kswapd threads which can help in fast reclaiming of pages + echo 2 > /proc/sys/vm/kswapd_threads +} + +# Core control parameters for silver +echo 0 0 0 0 1 1 > /sys/devices/system/cpu/cpu0/core_ctl/not_preferred +echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus +echo 60 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres +echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres +echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms +echo 8 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres + +# Enable Core control for Silver +echo 1 > /sys/devices/system/cpu/cpu0/core_ctl/enable + +# Disable Core control on gold +echo 0 > /sys/devices/system/cpu/cpu6/core_ctl/enable + +# Setting b.L scheduler parameters +echo 65 > /proc/sys/kernel/sched_downmigrate +echo 71 > /proc/sys/kernel/sched_upmigrate +echo 85 > /proc/sys/kernel/sched_group_downmigrate +echo 100 > /proc/sys/kernel/sched_group_upmigrate +echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks +echo 0 > /proc/sys/kernel/sched_coloc_busy_hysteresis_enable_cpus +echo 0 > /proc/sys/kernel/sched_busy_hysteresis_enable_cpus +echo 5 > /proc/sys/kernel/sched_ravg_window_nr_ticks + +# disable unfiltering +echo 20000000 > /proc/sys/kernel/sched_task_unfilter_period + +# cpuset parameters +echo 0-5 > /dev/cpuset/background/cpus +echo 0-5 > /dev/cpuset/system-background/cpus + +# Turn off scheduler boost at the end +echo 0 > /proc/sys/kernel/sched_boost + +# configure governor settings for silver cluster +echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor +echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us +echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/up_rate_limit_us +echo 1190400 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq +echo 576000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq + +# configure governor settings for gold cluster +echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy6/scaling_governor +echo 0 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/down_rate_limit_us +echo 0 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/up_rate_limit_us +echo 1248000 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/hispeed_freq +echo 768000 > /sys/devices/system/cpu/cpufreq/policy6/scaling_min_freq + +# Colocation V3 settings +echo 680000 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/rtg_boost_freq +echo 0 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/rtg_boost_freq +echo 51 > /proc/sys/kernel/sched_min_task_util_for_boost +echo 35 > /proc/sys/kernel/sched_min_task_util_for_colocation + +# sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable. +echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost +echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost +echo 85 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/hispeed_load + +# configure input boost settings +echo "0:1804800" > /sys/devices/system/cpu/cpu_boost/input_boost_freq +echo 120 > /sys/devices/system/cpu/cpu_boost/input_boost_ms + +# Enable bus-dcvs +for device in /sys/devices/platform/soc +do + for cpubw in $device/*cpu-cpu-ddr-bw/devfreq/*cpu-cpu-ddr-bw + do + cat $cpubw/available_frequencies | cut -d " " -f 1 > $cpubw/min_freq + echo "bw_hwmon" > $cpubw/governor + echo "1144 1720 2086 2929 3879 5931 6881 8137" > $cpubw/bw_hwmon/mbps_zones + echo 4 > $cpubw/bw_hwmon/sample_ms + echo 68 > $cpubw/bw_hwmon/io_percent + echo 20 > $cpubw/bw_hwmon/hist_memory + echo 0 > $cpubw/bw_hwmon/hyst_length + echo 80 > $cpubw/bw_hwmon/down_thres + echo 0 > $cpubw/bw_hwmon/guard_band_mbps + echo 250 > $cpubw/bw_hwmon/up_scale + echo 1600 > $cpubw/bw_hwmon/idle_mbps + echo 40 > $cpubw/polling_interval + done + + # configure compute settings for silver latfloor + for latfloor in $device/*cpu0-cpu*latfloor/devfreq/*cpu0-cpu*latfloor + do + cat $latfloor/available_frequencies | cut -d " " -f 1 > $latfloor/min_freq + echo 8 > $latfloor/polling_interval + done + + # configure compute settings for gold latfloor + for latfloor in $device/*cpu6-cpu*latfloor/devfreq/*cpu6-cpu*latfloor + do + cat $latfloor/available_frequencies | cut -d " " -f 1 > $latfloor/min_freq + echo 8 > $latfloor/polling_interval + done + + # configure mem_latency settings for DDR scaling + for memlat in $device/*lat/devfreq/*lat + do + cat $memlat/available_frequencies | cut -d " " -f 1 > $memlat/min_freq + echo 8 > $memlat/polling_interval + echo 400 > $memlat/mem_latency/ratio_ceil + done + + #Gold CPU6 L3 ratio ceil + for l3gold in $device/*cpu6-cpu-l3-lat/devfreq/*cpu6-cpu-l3-lat + do + echo 4000 > $l3gold/mem_latency/ratio_ceil + echo 25000 > $l3gold/mem_latency/wb_filter_ratio + echo 60 > $l3gold/mem_latency/wb_pct_thres + done + + #Gold CPU7 L3 ratio ceil + for l3gold in $device/*cpu7-cpu-l3-lat/devfreq/*cpu7-cpu-l3-lat + do + echo 4000 > $l3gold/mem_latency/ratio_ceil + echo 25000 > $l3gold/mem_latency/wb_filter_ratio + echo 60 > $l3gold/mem_latency/wb_pct_thres + done + +done + +echo N > /sys/module/lpm_levels/parameters/sleep_disabled + +configure_memory_parameters + +# bin.zhong@ASTI, 2019/10/12, add for memplus +memplus_post_config=1 +# huangwen.chen@OPTI, 2020/07/10, excute on first boot. +postboot_running=$(getprop vendor.sys.memplus.postboot 0) +if [ $postboot_running != 3 ];then + configure_memplus_parameters +fi + +setprop vendor.post_boot.parsed 1 + + # UFS add component info +UFS_PN=`cat /sys/devices/platform/soc/4804000.ufshc/string_descriptors/product_name` +UFS_VENDOR=`cat /sys/devices/platform/soc/4804000.ufshc/string_descriptors/manufacturer_name` +UFS_VERSION=`cat /sys/devices/platform/soc/4804000.ufshc/string_descriptors/product_revision` +UFS_INFO="UFS "`echo ${UFS_PN} | tr -d "\r"`" "`echo ${UFS_VENDOR} | tr -d "\r"`" "`echo ${UFS_VERSION} | tr -d "\r"` +echo ${UFS_INFO}> /sys/project_info/add_component +#liochen@SYSTEM, 2020/11/02, Add for enable ufs performance +#echo 0 > /sys/class/scsi_host/host0/../../../clkscale_enable diff --git a/rootdir/bin/init.qcom.class_core.sh b/rootdir/bin/init.qcom.class_core.sh new file mode 100755 index 0000000..8f8265d --- /dev/null +++ b/rootdir/bin/init.qcom.class_core.sh @@ -0,0 +1,216 @@ +#!/vendor/bin/sh + +# Copyright (c) 2012-2013, The Linux Foundation. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of The Linux Foundation nor +# the names of its contributors may be used to endorse or promote +# products derived from this software without specific prior written +# permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +# Set platform variables +target=`getprop ro.board.platform` +if [ -f /sys/devices/soc0/hw_platform ]; then + soc_hwplatform=`cat /sys/devices/soc0/hw_platform` 2> /dev/null +else + soc_hwplatform=`cat /sys/devices/system/soc/soc0/hw_platform` 2> /dev/null +fi +if [ -f /sys/devices/soc0/soc_id ]; then + soc_hwid=`cat /sys/devices/soc0/soc_id` 2> /dev/null +else + soc_hwid=`cat /sys/devices/system/soc/soc0/id` 2> /dev/null +fi +if [ -f /sys/devices/soc0/platform_version ]; then + soc_hwver=`cat /sys/devices/soc0/platform_version` 2> /dev/null +else + soc_hwver=`cat /sys/devices/system/soc/soc0/platform_version` 2> /dev/null +fi + + +# Dynamic Memory Managment (DMM) provides a sys file system to the userspace +# that can be used to plug in/out memory that has been configured as unstable. +# This unstable memory can be in Active or In-Active State. +# Each of which the userspace can request by writing to a sys file. +# +# ro.dev.dmm = 1; Indicates that DMM is enabled in the Android User Space. This +# property is set in the Android system properties file. +# +# If ro.dev.dmm.dpd.start_address is set here then the target has a memory +# configuration that supports DynamicMemoryManagement. +init_DMM() +{ + block=-1 + + case "$target" in + "msm7630_surf" | "msm7630_1x" | "msm7630_fusion" | "msm8960") + ;; + *) + return + ;; + esac + + mem="/sys/devices/system/memory" + op=`cat $mem/movable_start_bytes` + case "$op" in + "0") + log -p i -t DMM DMM Disabled. movable_start_bytes not set: $op + ;; + + "$mem/movable_start_bytes: No such file or directory ") + log -p i -t DMM DMM Disabled. movable_start_bytes does not exist: $op + ;; + + *) + log -p i -t DMM DMM available. movable_start_bytes at $op + movable_start_bytes=0x`cat $mem/movable_start_bytes` + block_size_bytes=0x`cat $mem/block_size_bytes` + block=$((#${movable_start_bytes}/${block_size_bytes})) + + chown -h system.system $mem/memory$block/state + chown -h system.system $mem/probe + chown -h system.system $mem/active + chown -h system.system $mem/remove + + case "$target" in + "msm7630_surf" | "msm7630_1x" | "msm7630_fusion") + echo $movable_start_bytes > $mem/probe + case "$?" in + "0") + log -p i -t DMM $movable_start_bytes to physical hotplug succeeded. + ;; + *) + log -p e -t DMM $movable_start_bytes to physical hotplug failed. + return + ;; + esac + + echo online > $mem/memory$block/state + case "$?" in + "0") + log -p i -t DMM \'echo online\' to logical hotplug succeeded. + ;; + *) + log -p e -t DMM \'echo online\' to logical hotplug failed. + return + ;; + esac + ;; + esac + + setprop ro.dev.dmm.dpd.start_address $movable_start_bytes + setprop ro.dev.dmm.dpd.block $block + ;; + esac + + case "$target" in + "msm8960") + return + ;; + esac + + # For 7X30 targets: + # ro.dev.dmm.dpd.start_address is set when the target has a 2x256Mb memory + # configuration. This is also used to indicate that the target is capable of + # setting EBI-1 to Deep Power Down or Self Refresh. + op=`cat $mem/low_power_memory_start_bytes` + case "$op" in + "0") + log -p i -t DMM Self-Refresh-Only Disabled. low_power_memory_start_bytes not set:$op + ;; + "$mem/low_power_memory_start_bytes No such file or directory ") + log -p i -t DMM Self-Refresh-Only Disabled. low_power_memory_start_bytes does not exist:$op + ;; + *) + log -p i -t DMM Self-Refresh-Only available. low_power_memory_start_bytes at $op + ;; + esac +} + +# +# For controlling console and shell on console on 8960 - perist.serial.enable 8960 +# On other target use default ro.debuggable property. +# +serial=`getprop persist.serial.enable` +dserial=`getprop ro.debuggable` +case "$target" in + "msm8960") + case "$serial" in + "0") + echo 0 > /sys/devices/platform/msm_serial_hsl.0/console + ;; + "1") + echo 1 > /sys/devices/platform/msm_serial_hsl.0/console + start console + ;; + *) + case "$dserial" in + "1") + start console + ;; + esac + ;; + esac + ;; + + "msm8610" | "msm8974" | "msm8226") + case "$serial" in + "0") + echo 0 > /sys/devices/f991f000.serial/console + ;; + "1") + echo 1 > /sys/devices/f991f000.serial/console + start console + ;; + *) + case "$dserial" in + "1") + start console + ;; + esac + ;; + esac + ;; + *) + case "$dserial" in + "1") + start console + ;; + esac + ;; +esac + +case "$target" in + "msm7630_surf" | "msm7630_1x" | "msm7630_fusion") + insmod /system/lib/modules/ss_mfcinit.ko + insmod /system/lib/modules/ss_vencoder.ko + insmod /system/lib/modules/ss_vdecoder.ko + chmod -h 0666 /dev/ss_mfc_reg + chmod -h 0666 /dev/ss_vdec + chmod -h 0666 /dev/ss_venc + + init_DMM + ;; + + "msm8960") + init_DMM + ;; +esac diff --git a/init/init.qcom.early_boot.sh b/rootdir/bin/init.qcom.early_boot.sh similarity index 94% rename from init/init.qcom.early_boot.sh rename to rootdir/bin/init.qcom.early_boot.sh index ad8f106..e6bb800 100755 --- a/init/init.qcom.early_boot.sh +++ b/rootdir/bin/init.qcom.early_boot.sh @@ -1,6 +1,6 @@ #! /vendor/bin/sh -# Copyright (c) 2012-2013,2016,2018-2021 The Linux Foundation. All rights reserved. +# Copyright (c) 2012-2013,2016,2018-2020 The Linux Foundation. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: @@ -255,9 +255,6 @@ case "$target" in # 196610 is decimal for 0x30002 to report version 3.2 case "$soc_hwid" in 294|295|296|297|298|313|353|354|363|364) - # Disable adsprpcd_sensorspd daemon - setprop vendor.fastrpc.disable.adsprpcd_sensorspd.daemon 1 - setprop vendor.opengles.version 196610 if [ $soc_hwid = 354 ] then @@ -270,8 +267,6 @@ case "$target" in setprop vendor.opengles.version 196608 setprop persist.graphics.vulkan.disable true setprop vendor.gralloc.disable_ahardware_buffer 1 - # Disable adsprpcd_sensorspd daemon - setprop vendor.fastrpc.disable.adsprpcd_sensorspd.daemon 1 ;; *) setprop vendor.opengles.version 196608 @@ -370,7 +365,9 @@ case "$target" in setprop vendor.display.enhance_idle_time 1 setprop vendor.netflix.bsp_rev "" ;; - 518) + *) + # default case is for bengal + setprop vendor.netflix.bsp_rev "Q6115-31409-1" ;; esac ;; @@ -423,23 +420,15 @@ case "$target" in setprop vendor.media.target_variant "_holi" ;; esac -case "$target" in - "msm8937") - case "$soc_hwid" in - 386|354|353|303) - # enable qrtr-ns service for kernel 4.14 or above - KernelVersionStr=`cat /proc/sys/kernel/osrelease` - KernelVersionS=${KernelVersionStr:2:2} - KernelVersionA=${KernelVersionStr:0:1} - KernelVersionB=${KernelVersionS%.*} - if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 14 ]; then - setprop init.svc.vendor.qrtrns.enable 1 - fi - ;; - esac - ;; - esac +baseband=`getprop ro.baseband` +#enable atfwd daemon all targets except sda, apq, qcs +case "$baseband" in + "apq" | "sda" | "qcs" ) + setprop persist.vendor.radio.atfwd.start false;; + *) + setprop persist.vendor.radio.atfwd.start true;; +esac #set default lcd density #Since lcd density has read only @@ -484,14 +473,6 @@ case "$product" in *) ;; esac - -case "$product" in - "msmnile_gvmgh") - setprop vendor.display.lcd_density 160 - ;; - *) - ;; -esac # Setup display nodes & permissions # HDMI can be fb1 or fb2 # Loop through the sysfs nodes and determine diff --git a/rootdir/bin/init.qcom.post_boot.sh b/rootdir/bin/init.qcom.post_boot.sh new file mode 100755 index 0000000..e6dedd0 --- /dev/null +++ b/rootdir/bin/init.qcom.post_boot.sh @@ -0,0 +1,5788 @@ +#! /vendor/bin/sh + +# Copyright (c) 2012-2013, 2016-2020, The Linux Foundation. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of The Linux Foundation nor +# the names of its contributors may be used to endorse or promote +# products derived from this software without specific prior written +# permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +function 8953_sched_dcvs_eas() +{ + #governor settings + echo 1 > /sys/devices/system/cpu/cpu0/online + echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpufreq/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpufreq/schedutil/down_rate_limit_us + #set the hispeed_freq + echo 1401600 > /sys/devices/system/cpu/cpufreq/schedutil/hispeed_freq + #default value for hispeed_load is 90, for 8953 and sdm450 it should be 85 + echo 85 > /sys/devices/system/cpu/cpufreq/schedutil/hispeed_load +} + +function 8917_sched_dcvs_eas() +{ + #governor settings + echo 1 > /sys/devices/system/cpu/cpu0/online + echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpufreq/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpufreq/schedutil/down_rate_limit_us + #set the hispeed_freq + echo 1094400 > /sys/devices/system/cpu/cpufreq/schedutil/hispeed_freq + #default value for hispeed_load is 90, for 8917 it should be 85 + echo 85 > /sys/devices/system/cpu/cpufreq/schedutil/hispeed_load +} + +function 8937_sched_dcvs_eas() +{ + # enable governor for perf cluster + echo 1 > /sys/devices/system/cpu/cpu0/online + echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us + #set the hispeed_freq + echo 1094400 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq + #default value for hispeed_load is 90, for 8937 it should be 85 + echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load + ## enable governor for power cluster + echo 1 > /sys/devices/system/cpu/cpu4/online + echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/down_rate_limit_us + #set the hispeed_freq + echo 768000 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq + #default value for hispeed_load is 90, for 8937 it should be 85 + echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_load + +} + +function configure_automotive_sku_parameters() { + + echo 1036800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + echo 1056000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq + echo 1171200 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_min_freq + echo 1785600 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq + echo 902400000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/min_freq + echo 902400000 > /sys/class/devfreq/soc\:qcom,cpu4-cpu-l3-lat/min_freq + echo 902400000 > /sys/class/devfreq/soc\:qcom,cpu7-cpu-l3-lat/min_freq + echo 1612800000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/max_freq + echo 1612800000 > /sys/class/devfreq/soc\:qcom,cpu4-cpu-l3-lat/max_freq + echo 1612800000 > /sys/class/devfreq/soc\:qcom,cpu7-cpu-l3-lat/max_freq +#read feature id from nvram +reg_val=`cat /sys/devices/platform/soc/780130.qfprom/qfprom0/nvmem | od -An -t d4` +feature_id=$(((reg_val >> 20) & 0xFF)) +log -t BOOT -p i "feature id '$feature_id'" +if [ $feature_id == 0 ]; then + echo " SKU Configured : SA8155P" + echo 2131200 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq + echo 2419200 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq + echo 0 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel +elif [ $feature_id == 1 ]; then + echo "SKU Configured : SA8150P" + echo 1920000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq + echo 2227200 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq + echo 3 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel +else + echo "unknown feature_id value" $feature_id +fi +} + +function configure_sku_parameters() { + +#read feature id from nvram +reg_val=`cat /sys/devices/platform/soc/780130.qfprom/qfprom0/nvmem | od -An -t d4` +feature_id=$(((reg_val >> 20) & 0xFF)) +log -t BOOT -p i "feature id '$feature_id'" +if [ $feature_id == 6 ]; then + echo " SKU Configured : SA6145" + echo 748800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + echo 748800 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq + echo 748800 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq + echo 748800 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq + echo 748800 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq + echo 748800 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_min_freq + echo 1017600 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq + echo 1017600 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_min_freq + echo 748800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq + echo 748800 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq + echo 748800 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq + echo 748800 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq + echo 748800 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq + echo 748800 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_max_freq + echo 1017600 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq + echo 1017600 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq + echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/min_freq + echo 1017600000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/max_freq + echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu6-cpu-l3-lat/min_freq + echo 1017600000 > /sys/class/devfreq/soc\:qcom,cpu6-cpu-l3-lat/max_freq + echo 3 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel + echo {class:ddr, res:capped, val: 1016} > /sys/kernel/debug/aop_send_message + setprop vendor.sku_identified 1 + setprop vendor.sku_name "SA6145" +elif [ $feature_id == 5 ]; then + echo "SKU Configured : SA6150" + echo 748800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + echo 748800 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq + echo 748800 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq + echo 748800 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq + echo 748800 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq + echo 748800 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_min_freq + echo 1017600 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq + echo 1017600 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_min_freq + echo 998400 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq + echo 998400 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq + echo 998400 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq + echo 998400 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq + echo 998400 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq + echo 998400 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_max_freq + echo 1708800 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq + echo 1708800 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq + echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/min_freq + echo 1363200000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/max_freq + echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu6-cpu-l3-lat/min_freq + echo 1363200000 > /sys/class/devfreq/soc\:qcom,cpu6-cpu-l3-lat/max_freq + echo 2 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel + echo {class:ddr, res:capped, val: 1333} > /sys/kernel/debug/aop_send_message + setprop vendor.sku_identified 1 + setprop vendor.sku_name "SA6150" +elif [ $feature_id == 4 ] || [ $feature_id == 3 ]; then + echo "SKU Configured : SA6155" + echo 748800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + echo 748800 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq + echo 748800 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq + echo 748800 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq + echo 748800 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq + echo 748800 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_min_freq + echo 1017600 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq + echo 1017600 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_min_freq + echo 1593600 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq + echo 1593600 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq + echo 1593600 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq + echo 1593600 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq + echo 1593600 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq + echo 1593600 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_max_freq + echo 1900800 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq + echo 1900800 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq + echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/min_freq + echo 1363200000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/max_freq + echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu6-cpu-l3-lat/min_freq + echo 1363200000 > /sys/class/devfreq/soc\:qcom,cpu6-cpu-l3-lat/max_freq + echo 0 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel + echo {class:ddr, res:capped, val: 1555} > /sys/kernel/debug/aop_send_message + setprop vendor.sku_identified 1 + setprop vendor.sku_name "SA6155" +else + echo "SKU Configured : SA6155" + echo 748800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + echo 748800 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq + echo 748800 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq + echo 748800 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq + echo 748800 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq + echo 748800 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_min_freq + echo 1017600 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq + echo 1017600 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_min_freq + echo 1593600 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq + echo 1593600 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq + echo 1593600 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq + echo 1593600 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq + echo 1593600 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq + echo 1593600 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_max_freq + echo 1900800 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq + echo 1900800 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq + echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/min_freq + echo 1363200000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/max_freq + echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu6-cpu-l3-lat/min_freq + echo 1363200000 > /sys/class/devfreq/soc\:qcom,cpu6-cpu-l3-lat/max_freq + echo 0 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel + echo {class:ddr, res:capped, val: 1555} > /sys/kernel/debug/aop_send_message + setprop vendor.sku_identified 1 + setprop vendor.sku_name "SA6155" +fi +} + +function 8953_sched_dcvs_hmp() +{ + #scheduler settings + echo 3 > /proc/sys/kernel/sched_window_stats_policy + echo 3 > /proc/sys/kernel/sched_ravg_hist_size + #task packing settings + echo 0 > /sys/devices/system/cpu/cpu0/sched_static_cpu_pwr_cost + echo 0 > /sys/devices/system/cpu/cpu1/sched_static_cpu_pwr_cost + echo 0 > /sys/devices/system/cpu/cpu2/sched_static_cpu_pwr_cost + echo 0 > /sys/devices/system/cpu/cpu3/sched_static_cpu_pwr_cost + echo 0 > /sys/devices/system/cpu/cpu4/sched_static_cpu_pwr_cost + echo 0 > /sys/devices/system/cpu/cpu5/sched_static_cpu_pwr_cost + echo 0 > /sys/devices/system/cpu/cpu6/sched_static_cpu_pwr_cost + echo 0 > /sys/devices/system/cpu/cpu7/sched_static_cpu_pwr_cost + # spill load is set to 100% by default in the kernel + echo 3 > /proc/sys/kernel/sched_spill_nr_run + # Apply inter-cluster load balancer restrictions + echo 1 > /proc/sys/kernel/sched_restrict_cluster_spill + # set sync wakee policy tunable + echo 1 > /proc/sys/kernel/sched_prefer_sync_wakee_to_waker + + #governor settings + echo 1 > /sys/devices/system/cpu/cpu0/online + echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo "19000 1401600:39000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay + echo 85 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load + echo 20000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate + echo 1401600 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq + echo 0 > /sys/devices/system/cpu/cpufreq/interactive/io_is_busy + echo "85 1401600:80" > /sys/devices/system/cpu/cpufreq/interactive/target_loads + echo 39000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time + echo 40000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor + echo 19 > /proc/sys/kernel/sched_upmigrate_min_nice + # Enable sched guided freq control + echo 1 > /sys/devices/system/cpu/cpufreq/interactive/use_sched_load + echo 1 > /sys/devices/system/cpu/cpufreq/interactive/use_migration_notif + echo 200000 > /proc/sys/kernel/sched_freq_inc_notify + echo 200000 > /proc/sys/kernel/sched_freq_dec_notify + +} + +function 8917_sched_dcvs_hmp() +{ + # HMP scheduler settings + echo 3 > /proc/sys/kernel/sched_window_stats_policy + echo 3 > /proc/sys/kernel/sched_ravg_hist_size + echo 1 > /proc/sys/kernel/sched_restrict_tasks_spread + # HMP Task packing settings + echo 20 > /proc/sys/kernel/sched_small_task + echo 30 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_load + echo 30 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_load + echo 30 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_load + echo 30 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_load + + echo 3 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_nr_run + + echo 0 > /sys/devices/system/cpu/cpu0/sched_prefer_idle + echo 0 > /sys/devices/system/cpu/cpu1/sched_prefer_idle + echo 0 > /sys/devices/system/cpu/cpu2/sched_prefer_idle + echo 0 > /sys/devices/system/cpu/cpu3/sched_prefer_idle + + echo 1 > /sys/devices/system/cpu/cpu0/online + echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo "19000 1094400:39000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay + echo 85 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load + echo 20000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate + echo 1094400 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq + echo 0 > /sys/devices/system/cpu/cpufreq/interactive/io_is_busy + echo "1 960000:85 1094400:90" > /sys/devices/system/cpu/cpufreq/interactive/target_loads + echo 40000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time + echo 40000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor + + # Enable sched guided freq control + echo 1 > /sys/devices/system/cpu/cpufreq/interactive/use_sched_load + echo 1 > /sys/devices/system/cpu/cpufreq/interactive/use_migration_notif + echo 50000 > /proc/sys/kernel/sched_freq_inc_notify + echo 50000 > /proc/sys/kernel/sched_freq_dec_notify +} + +function 8937_sched_dcvs_hmp() +{ + # HMP scheduler settings + echo 3 > /proc/sys/kernel/sched_window_stats_policy + echo 3 > /proc/sys/kernel/sched_ravg_hist_size + # HMP Task packing settings + echo 20 > /proc/sys/kernel/sched_small_task + echo 30 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_load + echo 30 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_load + echo 30 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_load + echo 30 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_load + echo 30 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_load + echo 30 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_load + echo 30 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_load + echo 30 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_load + + echo 3 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_nr_run + + echo 0 > /sys/devices/system/cpu/cpu0/sched_prefer_idle + echo 0 > /sys/devices/system/cpu/cpu1/sched_prefer_idle + echo 0 > /sys/devices/system/cpu/cpu2/sched_prefer_idle + echo 0 > /sys/devices/system/cpu/cpu3/sched_prefer_idle + echo 0 > /sys/devices/system/cpu/cpu4/sched_prefer_idle + echo 0 > /sys/devices/system/cpu/cpu5/sched_prefer_idle + echo 0 > /sys/devices/system/cpu/cpu6/sched_prefer_idle + echo 0 > /sys/devices/system/cpu/cpu7/sched_prefer_idle + # enable governor for perf cluster + echo 1 > /sys/devices/system/cpu/cpu0/online + echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo "19000 1094400:39000" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay + echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load + echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate + echo 1094400 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy + echo "1 960000:85 1094400:90 1344000:80" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads + echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time + echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/sampling_down_factor + + # enable governor for power cluster + echo 1 > /sys/devices/system/cpu/cpu4/online + echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + echo 39000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay + echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load + echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate + echo 768000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq + echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy + echo "1 768000:90" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads + echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time + echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/sampling_down_factor + + # Enable sched guided freq control + echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load + echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif + echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load + echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif + echo 50000 > /proc/sys/kernel/sched_freq_inc_notify + echo 50000 > /proc/sys/kernel/sched_freq_dec_notify + +} + +function sdm660_sched_interactive_dcvs() { + + echo 0 > /proc/sys/kernel/sched_select_prev_cpu_us + echo 400000 > /proc/sys/kernel/sched_freq_inc_notify + echo 400000 > /proc/sys/kernel/sched_freq_dec_notify + echo 5 > /proc/sys/kernel/sched_spill_nr_run + echo 1 > /proc/sys/kernel/sched_restrict_cluster_spill + echo 100000 > /proc/sys/kernel/sched_short_burst_ns + echo 1 > /proc/sys/kernel/sched_prefer_sync_wakee_to_waker + echo 20 > /proc/sys/kernel/sched_small_wakee_task_load + + # disable thermal bcl hotplug to switch governor + echo 0 > /sys/module/msm_thermal/core_control/enabled + + # online CPU0 + echo 1 > /sys/devices/system/cpu/cpu0/online + # configure governor settings for little cluster + echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load + echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif + echo "19000 1401600:39000" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay + echo 90 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load + echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate + echo 1401600 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy + echo "85 1747200:95" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads + echo 39000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis + echo 633600 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/ignore_hispeed_on_notif + echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/fast_ramp_down + # online CPU4 + echo 1 > /sys/devices/system/cpu/cpu4/online + # configure governor settings for big cluster + echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load + echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif + echo "19000 1401600:39000" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay + echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load + echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate + echo 1401600 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq + echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy + echo "85 1401600:90 2150400:95" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads + echo 39000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time + echo 59000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/max_freq_hysteresis + echo 1113600 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq + echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/ignore_hispeed_on_notif + echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/fast_ramp_down + + # bring all cores online + echo 1 > /sys/devices/system/cpu/cpu0/online + echo 1 > /sys/devices/system/cpu/cpu1/online + echo 1 > /sys/devices/system/cpu/cpu2/online + echo 1 > /sys/devices/system/cpu/cpu3/online + echo 1 > /sys/devices/system/cpu/cpu4/online + echo 1 > /sys/devices/system/cpu/cpu5/online + echo 1 > /sys/devices/system/cpu/cpu6/online + echo 1 > /sys/devices/system/cpu/cpu7/online + + # configure LPM + echo N > /sys/module/lpm_levels/system/pwr/cpu0/ret/idle_enabled + echo N > /sys/module/lpm_levels/system/pwr/cpu1/ret/idle_enabled + echo N > /sys/module/lpm_levels/system/pwr/cpu2/ret/idle_enabled + echo N > /sys/module/lpm_levels/system/pwr/cpu3/ret/idle_enabled + echo N > /sys/module/lpm_levels/system/perf/cpu4/ret/idle_enabled + echo N > /sys/module/lpm_levels/system/perf/cpu5/ret/idle_enabled + echo N > /sys/module/lpm_levels/system/perf/cpu6/ret/idle_enabled + echo N > /sys/module/lpm_levels/system/perf/cpu7/ret/idle_enabled + echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-dynret/idle_enabled + echo N > /sys/module/lpm_levels/system/perf/perf-l2-dynret/idle_enabled + echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-ret/idle_enabled + echo N > /sys/module/lpm_levels/system/perf/perf-l2-ret/idle_enabled + + # re-enable thermal and BCL hotplug + echo 1 > /sys/module/msm_thermal/core_control/enabled + + # Enable bus-dcvs + for cpubw in /sys/class/devfreq/*qcom,cpubw* + do + echo "bw_hwmon" > $cpubw/governor + echo 50 > $cpubw/polling_interval + echo 762 > $cpubw/min_freq + echo "1525 3143 5859 7759 9887 10327 11863 13763" > $cpubw/bw_hwmon/mbps_zones + echo 4 > $cpubw/bw_hwmon/sample_ms + echo 85 > $cpubw/bw_hwmon/io_percent + echo 100 > $cpubw/bw_hwmon/decay_rate + echo 50 > $cpubw/bw_hwmon/bw_step + echo 20 > $cpubw/bw_hwmon/hist_memory + echo 0 > $cpubw/bw_hwmon/hyst_length + echo 80 > $cpubw/bw_hwmon/down_thres + echo 0 > $cpubw/bw_hwmon/low_power_ceil_mbps + echo 34 > $cpubw/bw_hwmon/low_power_io_percent + echo 20 > $cpubw/bw_hwmon/low_power_delay + echo 0 > $cpubw/bw_hwmon/guard_band_mbps + echo 250 > $cpubw/bw_hwmon/up_scale + echo 1600 > $cpubw/bw_hwmon/idle_mbps + done + + for memlat in /sys/class/devfreq/*qcom,memlat-cpu* + do + echo "mem_latency" > $memlat/governor + echo 10 > $memlat/polling_interval + echo 400 > $memlat/mem_latency/ratio_ceil + done + echo "cpufreq" > /sys/class/devfreq/soc:qcom,mincpubw/governor +} + +function sdm660_sched_schedutil_dcvs() { + + if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then + # configure governor settings for little cluster + echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor + echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us + echo 1401600 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq + echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl + echo 633600 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq + echo 902400 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/rtg_boost_freq + + # configure governor settings for big cluster + echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor + echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/down_rate_limit_us + echo 1401600 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/hispeed_freq + echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/pl + echo 1113600 > /sys/devices/system/cpu/cpufreq/policy4/scaling_min_freq + echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/rtg_boost_freq + else + # configure governor settings for little cluster + echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us + echo 1401600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq + + # configure governor settings for big cluster + echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/down_rate_limit_us + echo 1401600 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq + fi + + echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks + + #if the kernel version >=4.19,set input_boost_freq accordingly + if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then + echo "0:1401600" > /sys/devices/system/cpu/cpu_boost/input_boost_freq + echo 40 > /sys/devices/system/cpu/cpu_boost/input_boost_ms + else + echo "0:1401600" > /sys/module/cpu_boost/parameters/input_boost_freq + echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms + fi + + # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable. + echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu4/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu5/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost + echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load + echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_load + + # Enable bus-dcvs + for device in /sys/devices/platform/soc + do + for cpubw in $device/*cpu-cpu-ddr-bw/devfreq/*cpu-cpu-ddr-bw + do + echo "bw_hwmon" > $cpubw/governor + echo 50 > $cpubw/polling_interval + echo 762 > $cpubw/min_freq + echo "1525 3143 5859 7759 9887 10327 11863 13763" > $cpubw/bw_hwmon/mbps_zones + echo 4 > $cpubw/bw_hwmon/sample_ms + echo 85 > $cpubw/bw_hwmon/io_percent + echo 100 > $cpubw/bw_hwmon/decay_rate + echo 50 > $cpubw/bw_hwmon/bw_step + echo 20 > $cpubw/bw_hwmon/hist_memory + echo 0 > $cpubw/bw_hwmon/hyst_length + echo 80 > $cpubw/bw_hwmon/down_thres + echo 0 > $cpubw/bw_hwmon/guard_band_mbps + echo 250 > $cpubw/bw_hwmon/up_scale + echo 1600 > $cpubw/bw_hwmon/idle_mbps + done + + if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -le 14 ]; then + for memlat in $device/*cpu*-lat/devfreq/*cpu*-lat + do + echo "mem_latency" > $memlat/governor + echo 10 > $memlat/polling_interval + echo 400 > $memlat/mem_latency/ratio_ceil + done + + for latfloor in $device/*cpu*-ddr-latfloor*/devfreq/*cpu-ddr-latfloor* + do + echo "compute" > $latfloor/governor + echo 10 > $latfloor/polling_interval + done + fi + done + + if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then + # memlat specific settings are moved to seperate file under + # device/target specific folder + setprop vendor.dcvs.prop 1 + fi + +} + +target=`getprop ro.board.platform` + +KernelVersionStr=`cat /proc/sys/kernel/osrelease` +KernelVersionS=${KernelVersionStr:2:2} +KernelVersionA=${KernelVersionStr:0:1} +KernelVersionB=${KernelVersionS%.*} + +function configure_zram_parameters() { + MemTotalStr=`cat /proc/meminfo | grep MemTotal` + MemTotal=${MemTotalStr:16:8} + + low_ram=`getprop ro.config.low_ram` + + # Zram disk - 75% for Go devices. + # For 512MB Go device, size = 384MB, set same for Non-Go. + # For 1GB Go device, size = 768MB, set same for Non-Go. + # For 2GB Go device, size = 1536MB, set same for Non-Go. + # For >2GB Non-Go devices, size = 50% of RAM size. Limit the size to 4GB. + # And enable lz4 zram compression for Go targets. + + let RamSizeGB="( $MemTotal / 1048576 ) + 1" + diskSizeUnit=M + if [ $RamSizeGB -le 2 ]; then + let zRamSizeMB="( $RamSizeGB * 1024 ) * 3 / 4" + else + let zRamSizeMB="( $RamSizeGB * 1024 ) / 2" + fi + + # use MB avoid 32 bit overflow + if [ $zRamSizeMB -gt 4096 ]; then + let zRamSizeMB=4096 + fi + + if [ "$low_ram" == "true" ]; then + echo lz4 > /sys/block/zram0/comp_algorithm + fi + + if [ -f /sys/block/zram0/disksize ]; then + if [ -f /sys/block/zram0/use_dedup ]; then + echo 1 > /sys/block/zram0/use_dedup + fi + echo "$zRamSizeMB""$diskSizeUnit" > /sys/block/zram0/disksize + + # ZRAM may use more memory than it saves if SLAB_STORE_USER + # debug option is enabled. + if [ -e /sys/kernel/slab/zs_handle ]; then + echo 0 > /sys/kernel/slab/zs_handle/store_user + fi + if [ -e /sys/kernel/slab/zspage ]; then + echo 0 > /sys/kernel/slab/zspage/store_user + fi + + #mkswap /dev/block/zram0 + #swapon /dev/block/zram0 -p 32758 + fi +} + +function configure_read_ahead_kb_values() { + MemTotalStr=`cat /proc/meminfo | grep MemTotal` + MemTotal=${MemTotalStr:16:8} + + dmpts=$(ls /sys/block/*/queue/read_ahead_kb | grep -e dm -e mmc) + + # Set 128 for <= 3GB & + # set 512 for >= 4GB targets. + if [ $MemTotal -le 3145728 ]; then + echo 128 > /sys/block/mmcblk0/bdi/read_ahead_kb + echo 128 > /sys/block/mmcblk0rpmb/bdi/read_ahead_kb + for dm in $dmpts; do + echo 128 > $dm + done + else + echo 512 > /sys/block/mmcblk0/bdi/read_ahead_kb + echo 512 > /sys/block/mmcblk0rpmb/bdi/read_ahead_kb + for dm in $dmpts; do + echo 512 > $dm + done + fi +} + +function disable_core_ctl() { + if [ -f /sys/devices/system/cpu/cpu0/core_ctl/enable ]; then + echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable + else + echo 1 > /sys/devices/system/cpu/cpu0/core_ctl/disable + fi +} + +function enable_swap() { + MemTotalStr=`cat /proc/meminfo | grep MemTotal` + MemTotal=${MemTotalStr:16:8} + + SWAP_ENABLE_THRESHOLD=1048576 + swap_enable=`getprop ro.vendor.qti.config.swap` + + # Enable swap initially only for 1 GB targets + if [ "$MemTotal" -le "$SWAP_ENABLE_THRESHOLD" ] && [ "$swap_enable" == "true" ]; then + # Static swiftness + echo 1 > /proc/sys/vm/swap_ratio_enable + echo 70 > /proc/sys/vm/swap_ratio + + # Swap disk - 200MB size + if [ ! -f /data/vendor/swap/swapfile ]; then + dd if=/dev/zero of=/data/vendor/swap/swapfile bs=1m count=200 + fi + mkswap /data/vendor/swap/swapfile + swapon /data/vendor/swap/swapfile -p 32758 + fi +} + +function configure_memory_parameters() { + # Set Memory parameters. + # + # Set per_process_reclaim tuning parameters + # All targets will use vmpressure range 50-70, + # All targets will use 512 pages swap size. + # + # Set Low memory killer minfree parameters + # 32 bit Non-Go, all memory configurations will use 15K series + # 32 bit Go, all memory configurations will use uLMK + Memcg + # 64 bit will use Google default LMK series. + # + # Set ALMK parameters (usually above the highest minfree values) + # vmpressure_file_min threshold is always set slightly higher + # than LMK minfree's last bin value for all targets. It is calculated as + # vmpressure_file_min = (last bin - second last bin ) + last bin + # + # Set allocstall_threshold to 0 for all targets. + # + +ProductName=`getprop ro.product.name` +low_ram=`getprop ro.config.low_ram` + +if [ "$ProductName" == "msmnile" ] || [ "$ProductName" == "kona" ] || [ "$ProductName" == "sdmshrike_au" ]; then + # Enable ZRAM + configure_zram_parameters + configure_read_ahead_kb_values + echo 0 > /proc/sys/vm/page-cluster + echo 100 > /proc/sys/vm/swappiness +else + arch_type=`uname -m` + + # Set parameters for 32-bit Go targets. + if [ "$low_ram" == "true" ]; then + # Disable KLMK, ALMK, PPR & Core Control for Go devices + echo 0 > /sys/module/lowmemorykiller/parameters/enable_lmk + echo 0 > /sys/module/lowmemorykiller/parameters/enable_adaptive_lmk + echo 0 > /sys/module/process_reclaim/parameters/enable_process_reclaim + disable_core_ctl + # Enable oom_reaper for Go devices + if [ -f /proc/sys/vm/reap_mem_on_sigkill ]; then + echo 1 > /proc/sys/vm/reap_mem_on_sigkill + fi + else + + # Read adj series and set adj threshold for PPR and ALMK. + # This is required since adj values change from framework to framework. + adj_series=`cat /sys/module/lowmemorykiller/parameters/adj` + adj_1="${adj_series#*,}" + set_almk_ppr_adj="${adj_1%%,*}" + + # PPR and ALMK should not act on HOME adj and below. + # Normalized ADJ for HOME is 6. Hence multiply by 6 + # ADJ score represented as INT in LMK params, actual score can be in decimal + # Hence add 6 considering a worst case of 0.9 conversion to INT (0.9*6). + # For uLMK + Memcg, this will be set as 6 since adj is zero. + set_almk_ppr_adj=$(((set_almk_ppr_adj * 6) + 6)) + echo $set_almk_ppr_adj > /sys/module/lowmemorykiller/parameters/adj_max_shift + + # Calculate vmpressure_file_min as below & set for 64 bit: + # vmpressure_file_min = last_lmk_bin + (last_lmk_bin - last_but_one_lmk_bin) + if [ "$arch_type" == "aarch64" ]; then + minfree_series=`cat /sys/module/lowmemorykiller/parameters/minfree` + minfree_1="${minfree_series#*,}" ; rem_minfree_1="${minfree_1%%,*}" + minfree_2="${minfree_1#*,}" ; rem_minfree_2="${minfree_2%%,*}" + minfree_3="${minfree_2#*,}" ; rem_minfree_3="${minfree_3%%,*}" + minfree_4="${minfree_3#*,}" ; rem_minfree_4="${minfree_4%%,*}" + minfree_5="${minfree_4#*,}" + + vmpres_file_min=$((minfree_5 + (minfree_5 - rem_minfree_4))) + echo $vmpres_file_min > /sys/module/lowmemorykiller/parameters/vmpressure_file_min + else + # Set LMK series, vmpressure_file_min for 32 bit non-go targets. + # Disable Core Control, enable KLMK for non-go 8909. + if [ "$ProductName" == "msm8909" ]; then + disable_core_ctl + echo 1 > /sys/module/lowmemorykiller/parameters/enable_lmk + fi + echo "15360,19200,23040,26880,34415,43737" > /sys/module/lowmemorykiller/parameters/minfree + echo 53059 > /sys/module/lowmemorykiller/parameters/vmpressure_file_min + fi + + # Enable adaptive LMK for all targets & + # use Google default LMK series for all 64-bit targets >=2GB. + echo 1 > /sys/module/lowmemorykiller/parameters/enable_adaptive_lmk + + # Enable oom_reaper + if [ -f /sys/module/lowmemorykiller/parameters/oom_reaper ]; then + echo 1 > /sys/module/lowmemorykiller/parameters/oom_reaper + fi + + if [[ "$ProductName" != "bengal"* ]]; then + #bengal has appcompaction enabled. So not needed + # Set PPR parameters for other targets + if [ -f /sys/devices/soc0/soc_id ]; then + soc_id=`cat /sys/devices/soc0/soc_id` + else + soc_id=`cat /sys/devices/system/soc/soc0/id` + fi + + case "$soc_id" in + # Do not set PPR parameters for premium targets + # sdm845 - 321, 341 + # msm8998 - 292, 319 + # msm8996 - 246, 291, 305, 312 + "321" | "341" | "292" | "319" | "246" | "291" | "305" | "312") + ;; + *) + #Set PPR parameters for all other targets. + echo $set_almk_ppr_adj > /sys/module/process_reclaim/parameters/min_score_adj + echo 1 > /sys/module/process_reclaim/parameters/enable_process_reclaim + echo 50 > /sys/module/process_reclaim/parameters/pressure_min + echo 70 > /sys/module/process_reclaim/parameters/pressure_max + echo 30 > /sys/module/process_reclaim/parameters/swap_opt_eff + echo 512 > /sys/module/process_reclaim/parameters/per_swap_size + ;; + esac + fi + fi + + if [[ "$ProductName" == "bengal"* ]]; then + #Set PPR nomap parameters for bengal targets + echo 1 > /sys/module/process_reclaim/parameters/enable_process_reclaim + echo 50 > /sys/module/process_reclaim/parameters/pressure_min + echo 70 > /sys/module/process_reclaim/parameters/pressure_max + echo 30 > /sys/module/process_reclaim/parameters/swap_opt_eff + echo 0 > /sys/module/process_reclaim/parameters/per_swap_size + echo 7680 > /sys/module/process_reclaim/parameters/tsk_nomap_swap_sz + fi + + # Set allocstall_threshold to 0 for all targets. + # Set swappiness to 100 for all targets + echo 0 > /sys/module/vmpressure/parameters/allocstall_threshold + echo 100 > /proc/sys/vm/swappiness + + # Disable wsf for all targets beacause we are using efk. + # wsf Range : 1..1000 So set to bare minimum value 1. + echo 1 > /proc/sys/vm/watermark_scale_factor + + configure_zram_parameters + + configure_read_ahead_kb_values + + enable_swap +fi +} + +function enable_memory_features() +{ + MemTotalStr=`cat /proc/meminfo | grep MemTotal` + MemTotal=${MemTotalStr:16:8} + + if [ $MemTotal -le 2097152 ]; then + #Enable B service adj transition for 2GB or less memory + setprop ro.vendor.qti.sys.fw.bservice_enable true + setprop ro.vendor.qti.sys.fw.bservice_limit 5 + setprop ro.vendor.qti.sys.fw.bservice_age 5000 + + #Enable Delay Service Restart + setprop ro.vendor.qti.am.reschedule_service true + fi +} + +function start_hbtp() +{ + # Start the Host based Touch processing but not in the power off mode. + bootmode=`getprop ro.bootmode` + if [ "charger" != $bootmode ]; then + start vendor.hbtp + fi +} + +case "$target" in + "msm7201a_ffa" | "msm7201a_surf" | "msm7627_ffa" | "msm7627_6x" | "msm7627a" | "msm7627_surf" | \ + "qsd8250_surf" | "qsd8250_ffa" | "msm7630_surf" | "msm7630_1x" | "msm7630_fusion" | "qsd8650a_st1x") + echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold + ;; +esac + +case "$target" in + "msm7201a_ffa" | "msm7201a_surf") + echo 500000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate + ;; +esac + +case "$target" in + "msm7630_surf" | "msm7630_1x" | "msm7630_fusion") + echo 75000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate + echo 1 > /sys/module/pm2/parameters/idle_sleep_mode + ;; +esac + +case "$target" in + "msm7201a_ffa" | "msm7201a_surf" | "msm7627_ffa" | "msm7627_6x" | "msm7627_surf" | "msm7630_surf" | "msm7630_1x" | "msm7630_fusion" | "msm7627a" ) + echo 245760 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + ;; +esac + +case "$target" in + "msm8660") + echo 1 > /sys/module/rpm_resources/enable_low_power/L2_cache + echo 1 > /sys/module/rpm_resources/enable_low_power/pxo + echo 2 > /sys/module/rpm_resources/enable_low_power/vdd_dig + echo 2 > /sys/module/rpm_resources/enable_low_power/vdd_mem + echo 1 > /sys/module/rpm_resources/enable_low_power/rpm_cpu + echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled + echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo "ondemand" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate + echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold + echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy + echo 4 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor + echo 384000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + echo 384000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq + chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq + chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + chown -h system /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq + chown -h system /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq + chown -h root.system /sys/devices/system/cpu/mfreq + chmod -h 220 /sys/devices/system/cpu/mfreq + chown -h root.system /sys/devices/system/cpu/cpu1/online + chmod -h 664 /sys/devices/system/cpu/cpu1/online + ;; +esac + +case "$target" in + "msm8960") + echo 1 > /sys/module/rpm_resources/enable_low_power/L2_cache + echo 1 > /sys/module/rpm_resources/enable_low_power/pxo + echo 1 > /sys/module/rpm_resources/enable_low_power/vdd_dig + echo 1 > /sys/module/rpm_resources/enable_low_power/vdd_mem + echo 1 > /sys/module/msm_pm/modes/cpu0/retention/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled + echo 0 > /sys/module/msm_thermal/core_control/enabled + echo 1 > /sys/devices/system/cpu/cpu1/online + echo 1 > /sys/devices/system/cpu/cpu2/online + echo 1 > /sys/devices/system/cpu/cpu3/online + echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo "ondemand" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + echo "ondemand" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + echo "ondemand" > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate + echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold + echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy + echo 4 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor + echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential + echo 70 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core + echo 3 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential_multi_core + echo 918000 > /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq + echo 1026000 > /sys/devices/system/cpu/cpufreq/ondemand/sync_freq + echo 80 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load + chown -h system /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate + chown -h system /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor + chown -h system /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy + echo 384000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + echo 384000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq + echo 384000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq + echo 384000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq + chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq + chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + chown -h system /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq + chown -h system /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq + chown -h system /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq + chown -h system /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq + chown -h system /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq + chown -h system /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq + echo 1 > /sys/module/msm_thermal/core_control/enabled + chown -h root.system /sys/devices/system/cpu/mfreq + chmod -h 220 /sys/devices/system/cpu/mfreq + chown -h root.system /sys/devices/system/cpu/cpu1/online + chown -h root.system /sys/devices/system/cpu/cpu2/online + chown -h root.system /sys/devices/system/cpu/cpu3/online + chmod -h 664 /sys/devices/system/cpu/cpu1/online + chmod -h 664 /sys/devices/system/cpu/cpu2/online + chmod -h 664 /sys/devices/system/cpu/cpu3/online + # set DCVS parameters for CPU + echo 40000 > /sys/module/msm_dcvs/cores/cpu0/slack_time_max_us + echo 40000 > /sys/module/msm_dcvs/cores/cpu0/slack_time_min_us + echo 100000 > /sys/module/msm_dcvs/cores/cpu0/em_win_size_min_us + echo 500000 > /sys/module/msm_dcvs/cores/cpu0/em_win_size_max_us + echo 0 > /sys/module/msm_dcvs/cores/cpu0/slack_mode_dynamic + echo 1000000 > /sys/module/msm_dcvs/cores/cpu0/disable_pc_threshold + echo 25000 > /sys/module/msm_dcvs/cores/cpu1/slack_time_max_us + echo 25000 > /sys/module/msm_dcvs/cores/cpu1/slack_time_min_us + echo 100000 > /sys/module/msm_dcvs/cores/cpu1/em_win_size_min_us + echo 500000 > /sys/module/msm_dcvs/cores/cpu1/em_win_size_max_us + echo 0 > /sys/module/msm_dcvs/cores/cpu1/slack_mode_dynamic + echo 1000000 > /sys/module/msm_dcvs/cores/cpu1/disable_pc_threshold + echo 25000 > /sys/module/msm_dcvs/cores/cpu2/slack_time_max_us + echo 25000 > /sys/module/msm_dcvs/cores/cpu2/slack_time_min_us + echo 100000 > /sys/module/msm_dcvs/cores/cpu2/em_win_size_min_us + echo 500000 > /sys/module/msm_dcvs/cores/cpu2/em_win_size_max_us + echo 0 > /sys/module/msm_dcvs/cores/cpu2/slack_mode_dynamic + echo 1000000 > /sys/module/msm_dcvs/cores/cpu2/disable_pc_threshold + echo 25000 > /sys/module/msm_dcvs/cores/cpu3/slack_time_max_us + echo 25000 > /sys/module/msm_dcvs/cores/cpu3/slack_time_min_us + echo 100000 > /sys/module/msm_dcvs/cores/cpu3/em_win_size_min_us + echo 500000 > /sys/module/msm_dcvs/cores/cpu3/em_win_size_max_us + echo 0 > /sys/module/msm_dcvs/cores/cpu3/slack_mode_dynamic + echo 1000000 > /sys/module/msm_dcvs/cores/cpu3/disable_pc_threshold + # set DCVS parameters for GPU + echo 20000 > /sys/module/msm_dcvs/cores/gpu0/slack_time_max_us + echo 20000 > /sys/module/msm_dcvs/cores/gpu0/slack_time_min_us + echo 0 > /sys/module/msm_dcvs/cores/gpu0/slack_mode_dynamic + # set msm_mpdecision parameters + echo 45000 > /sys/module/msm_mpdecision/slack_time_max_us + echo 15000 > /sys/module/msm_mpdecision/slack_time_min_us + echo 100000 > /sys/module/msm_mpdecision/em_win_size_min_us + echo 1000000 > /sys/module/msm_mpdecision/em_win_size_max_us + echo 3 > /sys/module/msm_mpdecision/online_util_pct_min + echo 25 > /sys/module/msm_mpdecision/online_util_pct_max + echo 97 > /sys/module/msm_mpdecision/em_max_util_pct + echo 2 > /sys/module/msm_mpdecision/rq_avg_poll_ms + echo 10 > /sys/module/msm_mpdecision/mp_em_rounding_point_min + echo 85 > /sys/module/msm_mpdecision/mp_em_rounding_point_max + echo 50 > /sys/module/msm_mpdecision/iowait_threshold_pct + #set permissions for the nodes needed by display on/off hook + chown -h system /sys/module/msm_dcvs/cores/cpu0/slack_time_max_us + chown -h system /sys/module/msm_dcvs/cores/cpu0/slack_time_min_us + chown -h system /sys/module/msm_mpdecision/slack_time_max_us + chown -h system /sys/module/msm_mpdecision/slack_time_min_us + chmod -h 664 /sys/module/msm_dcvs/cores/cpu0/slack_time_max_us + chmod -h 664 /sys/module/msm_dcvs/cores/cpu0/slack_time_min_us + chmod -h 664 /sys/module/msm_mpdecision/slack_time_max_us + chmod -h 664 /sys/module/msm_mpdecision/slack_time_min_us + if [ -f /sys/devices/soc0/soc_id ]; then + soc_id=`cat /sys/devices/soc0/soc_id` + else + soc_id=`cat /sys/devices/system/soc/soc0/id` + fi + case "$soc_id" in + "130") + echo 230 > /sys/class/gpio/export + echo 228 > /sys/class/gpio/export + echo 229 > /sys/class/gpio/export + echo "in" > /sys/class/gpio/gpio230/direction + echo "rising" > /sys/class/gpio/gpio230/edge + echo "in" > /sys/class/gpio/gpio228/direction + echo "rising" > /sys/class/gpio/gpio228/edge + echo "in" > /sys/class/gpio/gpio229/direction + echo "rising" > /sys/class/gpio/gpio229/edge + echo 253 > /sys/class/gpio/export + echo 254 > /sys/class/gpio/export + echo 257 > /sys/class/gpio/export + echo 258 > /sys/class/gpio/export + echo 259 > /sys/class/gpio/export + echo "out" > /sys/class/gpio/gpio253/direction + echo "out" > /sys/class/gpio/gpio254/direction + echo "out" > /sys/class/gpio/gpio257/direction + echo "out" > /sys/class/gpio/gpio258/direction + echo "out" > /sys/class/gpio/gpio259/direction + chown -h media /sys/class/gpio/gpio253/value + chown -h media /sys/class/gpio/gpio254/value + chown -h media /sys/class/gpio/gpio257/value + chown -h media /sys/class/gpio/gpio258/value + chown -h media /sys/class/gpio/gpio259/value + chown -h media /sys/class/gpio/gpio253/direction + chown -h media /sys/class/gpio/gpio254/direction + chown -h media /sys/class/gpio/gpio257/direction + chown -h media /sys/class/gpio/gpio258/direction + chown -h media /sys/class/gpio/gpio259/direction + echo 0 > /sys/module/rpm_resources/enable_low_power/vdd_dig + echo 0 > /sys/module/rpm_resources/enable_low_power/vdd_mem + ;; + esac + ;; +esac + +case "$target" in + "msm8974") + echo 4 > /sys/module/lpm_levels/enable_low_power/l2 + echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu0/retention/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu1/retention/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu2/retention/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu3/retention/idle_enabled + echo 0 > /sys/module/msm_thermal/core_control/enabled + echo 1 > /sys/devices/system/cpu/cpu1/online + echo 1 > /sys/devices/system/cpu/cpu2/online + echo 1 > /sys/devices/system/cpu/cpu3/online + if [ -f /sys/devices/soc0/soc_id ]; then + soc_id=`cat /sys/devices/soc0/soc_id` + else + soc_id=`cat /sys/devices/system/soc/soc0/id` + fi + case "$soc_id" in + "208" | "211" | "214" | "217" | "209" | "212" | "215" | "218" | "194" | "210" | "213" | "216") + for devfreq_gov in /sys/class/devfreq/qcom,cpubw*/governor + do + echo "cpubw_hwmon" > $devfreq_gov + done + echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo "interactive" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + echo "interactive" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + echo "interactive" > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + echo "20000 1400000:40000 1700000:20000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay + echo 90 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load + echo 1190400 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq + echo 1 > /sys/devices/system/cpu/cpufreq/interactive/io_is_busy + echo "85 1500000:90 1800000:70" > /sys/devices/system/cpu/cpufreq/interactive/target_loads + echo 40000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time + echo 20 > /sys/module/cpu_boost/parameters/boost_ms + echo 1728000 > /sys/module/cpu_boost/parameters/sync_threshold + echo 100000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor + echo 1497600 > /sys/module/cpu_boost/parameters/input_boost_freq + echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms + ;; + *) + echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo "ondemand" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + echo "ondemand" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + echo "ondemand" > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate + echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold + echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy + echo 2 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor + echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential + echo 70 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core + echo 3 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential_multi_core + echo 960000 > /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq + echo 960000 > /sys/devices/system/cpu/cpufreq/ondemand/sync_freq + echo 1190400 > /sys/devices/system/cpu/cpufreq/ondemand/input_boost + echo 80 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load + ;; + esac + echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + echo 300000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq + echo 300000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq + echo 300000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq + chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq + chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + echo 1 > /sys/module/msm_thermal/core_control/enabled + chown -h root.system /sys/devices/system/cpu/mfreq + chmod -h 220 /sys/devices/system/cpu/mfreq + chown -h root.system /sys/devices/system/cpu/cpu1/online + chown -h root.system /sys/devices/system/cpu/cpu2/online + chown -h root.system /sys/devices/system/cpu/cpu3/online + chmod -h 664 /sys/devices/system/cpu/cpu1/online + chmod -h 664 /sys/devices/system/cpu/cpu2/online + chmod -h 664 /sys/devices/system/cpu/cpu3/online + echo 1 > /dev/cpuctl/apps/cpu.notify_on_migrate + ;; +esac + +case "$target" in + "msm8916") + if [ -f /sys/devices/soc0/soc_id ]; then + soc_id=`cat /sys/devices/soc0/soc_id` + else + soc_id=`cat /sys/devices/system/soc/soc0/id` + fi + case "$soc_id" in + "206") + echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled + echo 1 > /sys/devices/system/cpu/cpu1/online + echo 1 > /sys/devices/system/cpu/cpu2/online + echo 1 > /sys/devices/system/cpu/cpu3/online + echo 2 > /sys/class/net/rmnet0/queues/rx-0/rps_cpus + ;; + "247" | "248" | "249" | "250") + echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled + echo 1 > /sys/devices/system/cpu/cpu1/online + echo 1 > /sys/devices/system/cpu/cpu2/online + echo 1 > /sys/devices/system/cpu/cpu3/online + ;; + "239" | "241" | "263") + if [ -f /sys/devices/soc0/revision ]; then + revision=`cat /sys/devices/soc0/revision` + else + revision=`cat /sys/devices/system/soc/soc0/revision` + fi + echo 10 > /sys/class/net/rmnet0/queues/rx-0/rps_cpus + if [ -f /sys/devices/soc0/platform_subtype_id ]; then + platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id` + fi + if [ -f /sys/devices/soc0/hw_platform ]; then + hw_platform=`cat /sys/devices/soc0/hw_platform` + fi + case "$soc_id" in + "239") + case "$hw_platform" in + "Surf") + case "$platform_subtype_id" in + "1" | "2") + start_hbtp + ;; + esac + ;; + "MTP") + case "$platform_subtype_id" in + "3") + start_hbtp + ;; + esac + ;; + esac + ;; + esac + ;; + "268" | "269" | "270" | "271") + echo 10 > /sys/class/net/rmnet0/queues/rx-0/rps_cpus + ;; + "233" | "240" | "242") + echo 1 > /sys/devices/system/cpu/cpu1/online + echo 1 > /sys/devices/system/cpu/cpu2/online + echo 1 > /sys/devices/system/cpu/cpu3/online + ;; + esac + ;; +esac + +case "$target" in + "msm8226") + echo 4 > /sys/module/lpm_levels/enable_low_power/l2 + echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/idle_enabled + echo 1 > /sys/devices/system/cpu/cpu1/online + echo 1 > /sys/devices/system/cpu/cpu2/online + echo 1 > /sys/devices/system/cpu/cpu3/online + echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate + echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold + echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy + echo 2 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor + echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential + echo 70 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core + echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential_multi_core + echo 787200 > /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq + echo 300000 > /sys/devices/system/cpu/cpufreq/ondemand/sync_freq + echo 80 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load + echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq + chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + chown -h root.system /sys/devices/system/cpu/cpu1/online + chown -h root.system /sys/devices/system/cpu/cpu2/online + chown -h root.system /sys/devices/system/cpu/cpu3/online + chmod -h 664 /sys/devices/system/cpu/cpu1/online + chmod -h 664 /sys/devices/system/cpu/cpu2/online + chmod -h 664 /sys/devices/system/cpu/cpu3/online + ;; +esac + +case "$target" in + "msm8610") + echo 4 > /sys/module/lpm_levels/enable_low_power/l2 + echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/idle_enabled + echo 1 > /sys/devices/system/cpu/cpu1/online + echo 1 > /sys/devices/system/cpu/cpu2/online + echo 1 > /sys/devices/system/cpu/cpu3/online + echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate + echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold + echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy + echo 2 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor + echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential + echo 70 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core + echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential_multi_core + echo 787200 > /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq + echo 300000 > /sys/devices/system/cpu/cpufreq/ondemand/sync_freq + echo 80 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load + echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + setprop ro.qualcomm.perf.min_freq 7 + echo 1 > /sys/kernel/mm/ksm/deferred_timer + chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq + chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + chown -h root.system /sys/devices/system/cpu/cpu1/online + chown -h root.system /sys/devices/system/cpu/cpu2/online + chown -h root.system /sys/devices/system/cpu/cpu3/online + chmod -h 664 /sys/devices/system/cpu/cpu1/online + chmod -h 664 /sys/devices/system/cpu/cpu2/online + chmod -h 664 /sys/devices/system/cpu/cpu3/online + ;; +esac + +case "$target" in + "msm8916") + + if [ -f /sys/devices/soc0/soc_id ]; then + soc_id=`cat /sys/devices/soc0/soc_id` + else + soc_id=`cat /sys/devices/system/soc/soc0/id` + fi + + # HMP scheduler settings for 8916, 8936, 8939, 8929 + echo 3 > /proc/sys/kernel/sched_window_stats_policy + echo 3 > /proc/sys/kernel/sched_ravg_hist_size + + # Apply governor settings for 8916 + case "$soc_id" in + "206" | "247" | "248" | "249" | "250") + + # HMP scheduler load tracking settings + echo 3 > /proc/sys/kernel/sched_ravg_hist_size + + # HMP Task packing settings for 8916 + echo 20 > /proc/sys/kernel/sched_small_task + echo 30 > /proc/sys/kernel/sched_mostly_idle_load + echo 3 > /proc/sys/kernel/sched_mostly_idle_nr_run + + # disable thermal core_control to update scaling_min_freq + echo 0 > /sys/module/msm_thermal/core_control/enabled + echo 1 > /sys/devices/system/cpu/cpu0/online + echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + # enable thermal core_control now + echo 1 > /sys/module/msm_thermal/core_control/enabled + + echo "25000 1094400:50000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay + echo 90 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load + echo 30000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate + echo 998400 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq + echo 0 > /sys/devices/system/cpu/cpufreq/interactive/io_is_busy + echo "1 800000:85 998400:90 1094400:80" > /sys/devices/system/cpu/cpufreq/interactive/target_loads + echo 50000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time + echo 50000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor + + # Bring up all cores online + echo 1 > /sys/devices/system/cpu/cpu1/online + echo 1 > /sys/devices/system/cpu/cpu2/online + echo 1 > /sys/devices/system/cpu/cpu3/online + echo 1 > /sys/devices/system/cpu/cpu4/online + ;; + esac + + # Apply governor settings for 8936 + case "$soc_id" in + "233" | "240" | "242") + + # HMP scheduler load tracking settings + echo 3 > /proc/sys/kernel/sched_ravg_hist_size + + # HMP Task packing settings for 8936 + echo 50 > /proc/sys/kernel/sched_small_task + echo 50 > /proc/sys/kernel/sched_mostly_idle_load + echo 10 > /proc/sys/kernel/sched_mostly_idle_nr_run + + # disable thermal core_control to update scaling_min_freq, interactive gov + echo 0 > /sys/module/msm_thermal/core_control/enabled + echo 1 > /sys/devices/system/cpu/cpu0/online + echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + # enable thermal core_control now + echo 1 > /sys/module/msm_thermal/core_control/enabled + + echo "25000 1113600:50000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay + echo 90 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load + echo 30000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate + echo 960000 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq + echo 0 > /sys/devices/system/cpu/cpufreq/interactive/io_is_busy + echo "1 800000:85 1113600:90 1267200:80" > /sys/devices/system/cpu/cpufreq/interactive/target_loads + echo 50000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time + echo 50000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor + + # Bring up all cores online + echo 1 > /sys/devices/system/cpu/cpu1/online + echo 1 > /sys/devices/system/cpu/cpu2/online + echo 1 > /sys/devices/system/cpu/cpu3/online + echo 1 > /sys/devices/system/cpu/cpu4/online + + # Enable low power modes + echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled + + for gpu_bimc_io_percent in /sys/class/devfreq/*qcom,gpubw*/bw_hwmon/io_percent + do + echo 40 > $gpu_bimc_io_percent + done + ;; + esac + + # Apply governor settings for 8939 + case "$soc_id" in + "239" | "241" | "263" | "268" | "269" | "270" | "271") + + if [ `cat /sys/devices/soc0/revision` != "3.0" ]; then + # Apply 1.0 and 2.0 specific Sched & Governor settings + + # HMP scheduler load tracking settings + echo 5 > /proc/sys/kernel/sched_ravg_hist_size + + # HMP Task packing settings for 8939, 8929 + echo 20 > /proc/sys/kernel/sched_small_task + + for devfreq_gov in /sys/class/devfreq/*qcom,mincpubw*/governor + do + echo "cpufreq" > $devfreq_gov + done + + for devfreq_gov in /sys/class/devfreq/*qcom,cpubw*/governor + do + echo "bw_hwmon" > $devfreq_gov + for cpu_io_percent in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/io_percent + do + echo 20 > $cpu_io_percent + done + done + + for gpu_bimc_io_percent in /sys/class/devfreq/*qcom,gpubw*/bw_hwmon/io_percent + do + echo 40 > $gpu_bimc_io_percent + done + # disable thermal core_control to update interactive gov settings + echo 0 > /sys/module/msm_thermal/core_control/enabled + + # enable governor for perf cluster + echo 1 > /sys/devices/system/cpu/cpu0/online + echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo "20000 1113600:50000" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay + echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load + echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate + echo 1113600 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy + echo "1 960000:85 1113600:90 1344000:80" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads + echo 50000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time + echo 50000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/sampling_down_factor + echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + + # enable governor for power cluster + echo 1 > /sys/devices/system/cpu/cpu4/online + echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + echo "25000 800000:50000" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay + echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load + echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate + echo 998400 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq + echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy + echo "1 800000:90" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads + echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time + echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/sampling_down_factor + echo 800000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq + + # enable thermal core_control now + echo 1 > /sys/module/msm_thermal/core_control/enabled + + # Bring up all cores online + echo 1 > /sys/devices/system/cpu/cpu1/online + echo 1 > /sys/devices/system/cpu/cpu2/online + echo 1 > /sys/devices/system/cpu/cpu3/online + echo 1 > /sys/devices/system/cpu/cpu4/online + echo 1 > /sys/devices/system/cpu/cpu5/online + echo 1 > /sys/devices/system/cpu/cpu6/online + echo 1 > /sys/devices/system/cpu/cpu7/online + + # Enable low power modes + echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled + + # HMP scheduler (big.Little cluster related) settings + echo 75 > /proc/sys/kernel/sched_upmigrate + echo 60 > /proc/sys/kernel/sched_downmigrate + + # cpu idle load threshold + echo 30 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_load + echo 30 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_load + echo 30 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_load + echo 30 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_load + echo 30 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_load + echo 30 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_load + echo 30 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_load + echo 30 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_load + + # cpu idle nr run threshold + echo 3 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_nr_run + + else + # Apply 3.0 specific Sched & Governor settings + # HMP scheduler settings for 8939 V3.0 + echo 3 > /proc/sys/kernel/sched_window_stats_policy + echo 3 > /proc/sys/kernel/sched_ravg_hist_size + echo 20000000 > /proc/sys/kernel/sched_ravg_window + + # HMP Task packing settings for 8939 V3.0 + echo 20 > /proc/sys/kernel/sched_small_task + echo 30 > /proc/sys/kernel/sched_mostly_idle_load + echo 3 > /proc/sys/kernel/sched_mostly_idle_nr_run + + echo 0 > /sys/devices/system/cpu/cpu0/sched_prefer_idle + echo 0 > /sys/devices/system/cpu/cpu1/sched_prefer_idle + echo 0 > /sys/devices/system/cpu/cpu2/sched_prefer_idle + echo 0 > /sys/devices/system/cpu/cpu3/sched_prefer_idle + echo 0 > /sys/devices/system/cpu/cpu4/sched_prefer_idle + echo 0 > /sys/devices/system/cpu/cpu5/sched_prefer_idle + echo 0 > /sys/devices/system/cpu/cpu6/sched_prefer_idle + echo 0 > /sys/devices/system/cpu/cpu7/sched_prefer_idle + + for devfreq_gov in /sys/class/devfreq/*qcom,mincpubw*/governor + do + echo "cpufreq" > $devfreq_gov + done + + for devfreq_gov in /sys/class/devfreq/*qcom,cpubw*/governor + do + echo "bw_hwmon" > $devfreq_gov + for cpu_io_percent in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/io_percent + do + echo 20 > $cpu_io_percent + done + done + + for gpu_bimc_io_percent in /sys/class/devfreq/*qcom,gpubw*/bw_hwmon/io_percent + do + echo 40 > $gpu_bimc_io_percent + done + # disable thermal core_control to update interactive gov settings + echo 0 > /sys/module/msm_thermal/core_control/enabled + + # enable governor for perf cluster + echo 1 > /sys/devices/system/cpu/cpu0/online + echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo "19000 1113600:39000" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay + echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load + echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate + echo 1113600 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy + echo "1 960000:85 1113600:90 1344000:80" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads + echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time + echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/sampling_down_factor + echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + + # enable governor for power cluster + echo 1 > /sys/devices/system/cpu/cpu4/online + echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + echo 39000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay + echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load + echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate + echo 800000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq + echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy + echo "1 800000:90" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads + echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time + echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/sampling_down_factor + echo 800000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq + + # enable thermal core_control now + echo 1 > /sys/module/msm_thermal/core_control/enabled + + # Bring up all cores online + echo 1 > /sys/devices/system/cpu/cpu1/online + echo 1 > /sys/devices/system/cpu/cpu2/online + echo 1 > /sys/devices/system/cpu/cpu3/online + echo 1 > /sys/devices/system/cpu/cpu5/online + echo 1 > /sys/devices/system/cpu/cpu6/online + echo 1 > /sys/devices/system/cpu/cpu7/online + + # Enable low power modes + echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled + + # HMP scheduler (big.Little cluster related) settings + echo 93 > /proc/sys/kernel/sched_upmigrate + echo 83 > /proc/sys/kernel/sched_downmigrate + + # Enable sched guided freq control + echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load + echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif + echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load + echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif + echo 50000 > /proc/sys/kernel/sched_freq_inc_notify + echo 50000 > /proc/sys/kernel/sched_freq_dec_notify + + # Enable core control +# insmod /system/lib/modules/core_ctl.ko + echo 2 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus + echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/max_cpus + echo 68 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres + echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres + echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms + case "$revision" in + "3.0") + # Enable dynamic clock gatin + echo 1 > /sys/module/lpm_levels/lpm_workarounds/dynamic_clock_gating + ;; + esac + fi + ;; + esac + # Set Memory parameters + configure_memory_parameters + ;; +esac + +case "$target" in + "msm8952") + + if [ -f /sys/devices/soc0/soc_id ]; then + soc_id=`cat /sys/devices/soc0/soc_id` + else + soc_id=`cat /sys/devices/system/soc/soc0/id` + fi + case "$soc_id" in + "264" | "289") + # Apply Scheduler and Governor settings for 8952 + + # HMP scheduler settings + echo 3 > /proc/sys/kernel/sched_window_stats_policy + echo 3 > /proc/sys/kernel/sched_ravg_hist_size + echo 20000000 > /proc/sys/kernel/sched_ravg_window + + # HMP Task packing settings + echo 20 > /proc/sys/kernel/sched_small_task + echo 30 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_load + echo 30 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_load + echo 30 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_load + echo 30 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_load + echo 30 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_load + echo 30 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_load + echo 30 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_load + echo 30 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_load + + echo 3 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_nr_run + + echo 0 > /sys/devices/system/cpu/cpu0/sched_prefer_idle + echo 0 > /sys/devices/system/cpu/cpu1/sched_prefer_idle + echo 0 > /sys/devices/system/cpu/cpu2/sched_prefer_idle + echo 0 > /sys/devices/system/cpu/cpu3/sched_prefer_idle + echo 0 > /sys/devices/system/cpu/cpu4/sched_prefer_idle + echo 0 > /sys/devices/system/cpu/cpu5/sched_prefer_idle + echo 0 > /sys/devices/system/cpu/cpu6/sched_prefer_idle + echo 0 > /sys/devices/system/cpu/cpu7/sched_prefer_idle + + echo 0 > /proc/sys/kernel/sched_boost + + for devfreq_gov in /sys/class/devfreq/*qcom,mincpubw*/governor + do + echo "cpufreq" > $devfreq_gov + done + + for devfreq_gov in /sys/class/devfreq/*qcom,cpubw*/governor + do + echo "bw_hwmon" > $devfreq_gov + for cpu_io_percent in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/io_percent + do + echo 20 > $cpu_io_percent + done + for cpu_guard_band in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/guard_band_mbps + do + echo 30 > $cpu_guard_band + done + done + + for gpu_bimc_io_percent in /sys/class/devfreq/qcom,gpubw*/bw_hwmon/io_percent + do + echo 40 > $gpu_bimc_io_percent + done + # disable thermal & BCL core_control to update interactive gov settings + echo 0 > /sys/module/msm_thermal/core_control/enabled + for mode in /sys/devices/soc.0/qcom,bcl.*/mode + do + echo -n disable > $mode + done + for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask + do + bcl_hotplug_mask=`cat $hotplug_mask` + echo 0 > $hotplug_mask + done + for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask + do + bcl_soc_hotplug_mask=`cat $hotplug_soc_mask` + echo 0 > $hotplug_soc_mask + done + for mode in /sys/devices/soc.0/qcom,bcl.*/mode + do + echo -n enable > $mode + done + + # enable governor for perf cluster + echo 1 > /sys/devices/system/cpu/cpu0/online + echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo "19000 1113600:39000" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay + echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load + echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate + echo 1113600 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy + echo "1 960000:85 1113600:90 1344000:80" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads + echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time + echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/sampling_down_factor + echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + + # enable governor for power cluster + echo 1 > /sys/devices/system/cpu/cpu4/online + echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + echo 39000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay + echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load + echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate + echo 806400 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq + echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy + echo "1 806400:90" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads + echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time + echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/sampling_down_factor + echo 806400 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq + + # Bring up all cores online + echo 1 > /sys/devices/system/cpu/cpu1/online + echo 1 > /sys/devices/system/cpu/cpu2/online + echo 1 > /sys/devices/system/cpu/cpu3/online + echo 1 > /sys/devices/system/cpu/cpu4/online + echo 1 > /sys/devices/system/cpu/cpu5/online + echo 1 > /sys/devices/system/cpu/cpu6/online + echo 1 > /sys/devices/system/cpu/cpu7/online + + # Enable Low power modes + echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled + + # HMP scheduler (big.Little cluster related) settings + echo 93 > /proc/sys/kernel/sched_upmigrate + echo 83 > /proc/sys/kernel/sched_downmigrate + + # Enable sched guided freq control + echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load + echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif + echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load + echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif + echo 50000 > /proc/sys/kernel/sched_freq_inc_notify + echo 50000 > /proc/sys/kernel/sched_freq_dec_notify + + # Enable core control + echo 2 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus + echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/max_cpus + echo 68 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres + echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres + echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms + echo 1 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster + + # re-enable thermal & BCL core_control now + echo 1 > /sys/module/msm_thermal/core_control/enabled + for mode in /sys/devices/soc.0/qcom,bcl.*/mode + do + echo -n disable > $mode + done + for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask + do + echo $bcl_hotplug_mask > $hotplug_mask + done + for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask + do + echo $bcl_soc_hotplug_mask > $hotplug_soc_mask + done + for mode in /sys/devices/soc.0/qcom,bcl.*/mode + do + echo -n enable > $mode + done + + # Enable dynamic clock gating + echo 1 > /sys/module/lpm_levels/lpm_workarounds/dynamic_clock_gating + # Enable timer migration to little cluster + echo 1 > /proc/sys/kernel/power_aware_timer_migration + + # Set Memory parameters + configure_memory_parameters + + ;; + *) + panel=`cat /sys/class/graphics/fb0/modes` + if [ "${panel:5:1}" == "x" ]; then + panel=${panel:2:3} + else + panel=${panel:2:4} + fi + + # Apply Scheduler and Governor settings for 8976 + # SoC IDs are 266, 274, 277, 278 + + # HMP scheduler (big.Little cluster related) settings + echo 95 > /proc/sys/kernel/sched_upmigrate + echo 85 > /proc/sys/kernel/sched_downmigrate + + echo 2 > /proc/sys/kernel/sched_window_stats_policy + echo 5 > /proc/sys/kernel/sched_ravg_hist_size + + echo 3 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_nr_run + + for devfreq_gov in /sys/class/devfreq/*qcom,mincpubw*/governor + do + echo "cpufreq" > $devfreq_gov + done + + for devfreq_gov in /sys/class/devfreq/*qcom,cpubw*/governor + do + echo "bw_hwmon" > $devfreq_gov + for cpu_io_percent in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/io_percent + do + echo 20 > $cpu_io_percent + done + for cpu_guard_band in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/guard_band_mbps + do + echo 30 > $cpu_guard_band + done + done + + for gpu_bimc_io_percent in /sys/class/devfreq/qcom,gpubw*/bw_hwmon/io_percent + do + echo 40 > $gpu_bimc_io_percent + done + # disable thermal & BCL core_control to update interactive gov settings + echo 0 > /sys/module/msm_thermal/core_control/enabled + for mode in /sys/devices/soc.0/qcom,bcl.*/mode + do + echo -n disable > $mode + done + for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask + do + bcl_hotplug_mask=`cat $hotplug_mask` + echo 0 > $hotplug_mask + done + for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask + do + bcl_soc_hotplug_mask=`cat $hotplug_soc_mask` + echo 0 > $hotplug_soc_mask + done + for mode in /sys/devices/soc.0/qcom,bcl.*/mode + do + echo -n enable > $mode + done + + # enable governor for power cluster + echo 1 > /sys/devices/system/cpu/cpu0/online + echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 80 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load + echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy + echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time + echo 691200 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + + # enable governor for perf cluster + echo 1 > /sys/devices/system/cpu/cpu4/online + echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load + echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate + echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy + echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time + echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/sampling_down_factor + echo 883200 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq + echo 60000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/max_freq_hysteresis + + if [ $panel -gt 1080 ]; then + #set texture cache size for resolution greater than 1080p + setprop ro.hwui.texture_cache_size 72 + fi + + echo 59000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay + echo 1305600 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq + echo "1 691200:80" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads + echo 1382400 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq + echo "19000 1382400:39000" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay + echo "85 1382400:90 1747200:80" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads + # HMP Task packing settings for 8976 + echo 30 > /proc/sys/kernel/sched_small_task + echo 20 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_load + echo 20 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_load + echo 20 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_load + echo 20 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_load + echo 20 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_load + echo 20 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_load + echo 20 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_load + echo 20 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_load + + echo 0 > /proc/sys/kernel/sched_boost + + # Bring up all cores online + echo 1 > /sys/devices/system/cpu/cpu1/online + echo 1 > /sys/devices/system/cpu/cpu2/online + echo 1 > /sys/devices/system/cpu/cpu3/online + echo 1 > /sys/devices/system/cpu/cpu4/online + echo 1 > /sys/devices/system/cpu/cpu5/online + echo 1 > /sys/devices/system/cpu/cpu6/online + echo 1 > /sys/devices/system/cpu/cpu7/online + + #Disable CPU retention modes for 32bit builds + ProductName=`getprop ro.product.name` + if [ "$ProductName" == "msm8952_32" ] || [ "$ProductName" == "msm8952_32_LMT" ]; then + echo N > /sys/module/lpm_levels/system/a72/cpu4/retention/idle_enabled + echo N > /sys/module/lpm_levels/system/a72/cpu5/retention/idle_enabled + echo N > /sys/module/lpm_levels/system/a72/cpu6/retention/idle_enabled + echo N > /sys/module/lpm_levels/system/a72/cpu7/retention/idle_enabled + fi + + if [ `cat /sys/devices/soc0/revision` == "1.0" ]; then + # Disable l2-pc and l2-gdhs low power modes + echo N > /sys/module/lpm_levels/system/a53/a53-l2-gdhs/idle_enabled + echo N > /sys/module/lpm_levels/system/a72/a72-l2-gdhs/idle_enabled + echo N > /sys/module/lpm_levels/system/a53/a53-l2-pc/idle_enabled + echo N > /sys/module/lpm_levels/system/a72/a72-l2-pc/idle_enabled + fi + + # Enable LPM Prediction + echo 1 > /sys/module/lpm_levels/parameters/lpm_prediction + + # Enable Low power modes + echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled + # Disable L2 GDHS on 8976 + echo N > /sys/module/lpm_levels/system/a53/a53-l2-gdhs/idle_enabled + echo N > /sys/module/lpm_levels/system/a72/a72-l2-gdhs/idle_enabled + + # Enable sched guided freq control + echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load + echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif + echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load + echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif + echo 50000 > /proc/sys/kernel/sched_freq_inc_notify + echo 50000 > /proc/sys/kernel/sched_freq_dec_notify + + # Enable core control + #for 8976 + echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus + echo 4 > /sys/devices/system/cpu/cpu4/core_ctl/max_cpus + echo 68 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres + echo 40 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres + echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms + echo 1 > /sys/devices/system/cpu/cpu4/core_ctl/is_big_cluster + + # re-enable thermal & BCL core_control now + echo 1 > /sys/module/msm_thermal/core_control/enabled + for mode in /sys/devices/soc.0/qcom,bcl.*/mode + do + echo -n disable > $mode + done + for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask + do + echo $bcl_hotplug_mask > $hotplug_mask + done + for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask + do + echo $bcl_soc_hotplug_mask > $hotplug_soc_mask + done + for mode in /sys/devices/soc.0/qcom,bcl.*/mode + do + echo -n enable > $mode + done + + # Enable timer migration to little cluster + echo 1 > /proc/sys/kernel/power_aware_timer_migration + + case "$soc_id" in + "277" | "278") + # Start energy-awareness for 8976 + start energy-awareness + ;; + esac + + #enable sched colocation and colocation inheritance + echo 130 > /proc/sys/kernel/sched_grp_upmigrate + echo 110 > /proc/sys/kernel/sched_grp_downmigrate + echo 1 > /proc/sys/kernel/sched_enable_thread_grouping + + # Set Memory parameters + configure_memory_parameters + + ;; + esac + #Enable Memory Features + enable_memory_features + restorecon -R /sys/devices/system/cpu + ;; +esac + +case "$target" in + "msm8953") + + if [ -f /sys/devices/soc0/soc_id ]; then + soc_id=`cat /sys/devices/soc0/soc_id` + else + soc_id=`cat /sys/devices/system/soc/soc0/id` + fi + + if [ -f /sys/devices/soc0/hw_platform ]; then + hw_platform=`cat /sys/devices/soc0/hw_platform` + else + hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform` + fi + + if [ -f /sys/devices/soc0/platform_subtype_id ]; then + platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id` + fi + + echo 0 > /proc/sys/kernel/sched_boost + + case "$soc_id" in + "293" | "304" | "338" | "351") + + # Start Host based Touch processing + case "$hw_platform" in + "MTP" | "Surf" | "RCM" ) + #if this directory is present, it means that a + #1200p panel is connected to the device. + dir="/sys/bus/i2c/devices/3-0038" + if [ ! -d "$dir" ]; then + start_hbtp + fi + ;; + esac + + if [ $soc_id -eq "338" ]; then + case "$hw_platform" in + "QRD" ) + if [ $platform_subtype_id -eq "1" ]; then + start_hbtp + fi + ;; + esac + fi + + #init task load, restrict wakeups to preferred cluster + echo 15 > /proc/sys/kernel/sched_init_task_load + + for devfreq_gov in /sys/class/devfreq/qcom,mincpubw*/governor + do + echo "cpufreq" > $devfreq_gov + done + + for devfreq_gov in /sys/class/devfreq/soc:qcom,cpubw/governor + do + echo "bw_hwmon" > $devfreq_gov + for cpu_io_percent in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/io_percent + do + echo 34 > $cpu_io_percent + done + for cpu_guard_band in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/guard_band_mbps + do + echo 0 > $cpu_guard_band + done + for cpu_hist_memory in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/hist_memory + do + echo 20 > $cpu_hist_memory + done + for cpu_hyst_length in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/hyst_length + do + echo 10 > $cpu_hyst_length + done + for cpu_idle_mbps in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/idle_mbps + do + echo 1600 > $cpu_idle_mbps + done + for cpu_low_power_delay in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/low_power_delay + do + echo 20 > $cpu_low_power_delay + done + for cpu_low_power_io_percent in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/low_power_io_percent + do + echo 34 > $cpu_low_power_io_percent + done + for cpu_mbps_zones in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/mbps_zones + do + echo "1611 3221 5859 6445 7104" > $cpu_mbps_zones + done + for cpu_sample_ms in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/sample_ms + do + echo 4 > $cpu_sample_ms + done + for cpu_up_scale in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/up_scale + do + echo 250 > $cpu_up_scale + done + for cpu_min_freq in /sys/class/devfreq/soc:qcom,cpubw/min_freq + do + echo 1611 > $cpu_min_freq + done + done + + for gpu_bimc_io_percent in /sys/class/devfreq/soc:qcom,gpubw/bw_hwmon/io_percent + do + echo 40 > $gpu_bimc_io_percent + done + + # disable thermal & BCL core_control to update interactive gov settings + echo 0 > /sys/module/msm_thermal/core_control/enabled + for mode in /sys/devices/soc.0/qcom,bcl.*/mode + do + echo -n disable > $mode + done + for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask + do + bcl_hotplug_mask=`cat $hotplug_mask` + echo 0 > $hotplug_mask + done + for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask + do + bcl_soc_hotplug_mask=`cat $hotplug_soc_mask` + echo 0 > $hotplug_soc_mask + done + for mode in /sys/devices/soc.0/qcom,bcl.*/mode + do + echo -n enable > $mode + done + + #if the kernel version >=4.9,use the schedutil governor + if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 9 ]; then + 8953_sched_dcvs_eas + else + 8953_sched_dcvs_hmp + fi + echo 652800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + + # Bring up all cores online + echo 1 > /sys/devices/system/cpu/cpu1/online + echo 1 > /sys/devices/system/cpu/cpu2/online + echo 1 > /sys/devices/system/cpu/cpu3/online + echo 1 > /sys/devices/system/cpu/cpu4/online + echo 1 > /sys/devices/system/cpu/cpu5/online + echo 1 > /sys/devices/system/cpu/cpu6/online + echo 1 > /sys/devices/system/cpu/cpu7/online + + # Enable low power modes + echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled + + # re-enable thermal & BCL core_control now + echo 1 > /sys/module/msm_thermal/core_control/enabled + for mode in /sys/devices/soc.0/qcom,bcl.*/mode + do + echo -n disable > $mode + done + for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask + do + echo $bcl_hotplug_mask > $hotplug_mask + done + for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask + do + echo $bcl_soc_hotplug_mask > $hotplug_soc_mask + done + for mode in /sys/devices/soc.0/qcom,bcl.*/mode + do + echo -n enable > $mode + done + + # SMP scheduler + echo 85 > /proc/sys/kernel/sched_upmigrate + echo 85 > /proc/sys/kernel/sched_downmigrate + + # Set Memory parameters + configure_memory_parameters + ;; + esac + case "$soc_id" in + "349" | "350") + + # Start Host based Touch processing + case "$hw_platform" in + "MTP" | "Surf" | "RCM" | "QRD" ) + start_hbtp + ;; + esac + + for devfreq_gov in /sys/class/devfreq/qcom,mincpubw*/governor + do + echo "cpufreq" > $devfreq_gov + done + for cpubw in /sys/class/devfreq/*qcom,cpubw* + do + echo "bw_hwmon" > $cpubw/governor + echo 50 > $cpubw/polling_interval + echo "1611 3221 5859 6445 7104" > $cpubw/bw_hwmon/mbps_zones + echo 4 > $cpubw/bw_hwmon/sample_ms + echo 34 > $cpubw/bw_hwmon/io_percent + echo 20 > $cpubw/bw_hwmon/hist_memory + echo 80 > $cpubw/bw_hwmon/down_thres + echo 0 > $cpubw/bw_hwmon/hyst_length + echo 0 > $cpubw/bw_hwmon/guard_band_mbps + echo 250 > $cpubw/bw_hwmon/up_scale + echo 1600 > $cpubw/bw_hwmon/idle_mbps + done + + # Configure DCC module to capture critical register contents when device crashes + for DCC_PATH in /sys/bus/platform/devices/*.dcc* + do + echo 0 > $DCC_PATH/enable + echo cap > $DCC_PATH/func_type + echo sram > $DCC_PATH/data_sink + echo 1 > $DCC_PATH/config_reset + + # Register specifies APC CPR closed-loop settled voltage for current voltage corner + echo 0xb1d2c18 1 > $DCC_PATH/config + + # Register specifies SW programmed open-loop voltage for current voltage corner + echo 0xb1d2900 1 > $DCC_PATH/config + + # Register specifies APM switch settings and APM FSM state + echo 0xb1112b0 1 > $DCC_PATH/config + + # Register specifies CPR mode change state and also #online cores input to CPR HW + echo 0xb018798 1 > $DCC_PATH/config + + echo 1 > $DCC_PATH/enable + done + + # disable thermal & BCL core_control to update interactive gov settings + echo 0 > /sys/module/msm_thermal/core_control/enabled + for mode in /sys/devices/soc.0/qcom,bcl.*/mode + do + echo -n disable > $mode + done + for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask + do + bcl_hotplug_mask=`cat $hotplug_mask` + echo 0 > $hotplug_mask + done + for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask + do + bcl_soc_hotplug_mask=`cat $hotplug_soc_mask` + echo 0 > $hotplug_soc_mask + done + for mode in /sys/devices/soc.0/qcom,bcl.*/mode + do + echo -n enable > $mode + done + + # configure governor settings for little cluster + echo 1 > /sys/devices/system/cpu/cpu0/online + echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us + echo 1363200 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq + #default value for hispeed_load is 90, for sdm632 it should be 85 + echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load + # sched_load_boost as -6 is equivalent to target load as 85. + echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost + + # configure governor settings for big cluster + echo 1 > /sys/devices/system/cpu/cpu4/online + echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/down_rate_limit_us + echo 1401600 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq + #default value for hispeed_load is 90, for sdm632 it should be 85 + echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_load + # sched_load_boost as -6 is equivalent to target load as 85. + echo -6 > /sys/devices/system/cpu/cpu4/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu5/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost + + echo 614400 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + echo 633600 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq + + # cpuset settings + echo 0-3 > /dev/cpuset/background/cpus + echo 0-3 > /dev/cpuset/system-background/cpus + # choose idle CPU for top app tasks + echo 1 > /dev/stune/top-app/schedtune.prefer_idle + + # re-enable thermal & BCL core_control now + echo 1 > /sys/module/msm_thermal/core_control/enabled + for mode in /sys/devices/soc.0/qcom,bcl.*/mode + do + echo -n disable > $mode + done + for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask + do + echo $bcl_hotplug_mask > $hotplug_mask + done + for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask + do + echo $bcl_soc_hotplug_mask > $hotplug_soc_mask + done + for mode in /sys/devices/soc.0/qcom,bcl.*/mode + do + echo -n enable > $mode + done + + # Disable Core control + echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable + echo 0 > /sys/devices/system/cpu/cpu4/core_ctl/enable + + # Bring up all cores online + echo 1 > /sys/devices/system/cpu/cpu1/online + echo 1 > /sys/devices/system/cpu/cpu2/online + echo 1 > /sys/devices/system/cpu/cpu3/online + echo 1 > /sys/devices/system/cpu/cpu4/online + echo 1 > /sys/devices/system/cpu/cpu5/online + echo 1 > /sys/devices/system/cpu/cpu6/online + echo 1 > /sys/devices/system/cpu/cpu7/online + + # Enable low power modes + echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled + + # Set Memory parameters + configure_memory_parameters + + # Setting b.L scheduler parameters + echo 76 > /proc/sys/kernel/sched_downmigrate + echo 86 > /proc/sys/kernel/sched_upmigrate + echo 80 > /proc/sys/kernel/sched_group_downmigrate + echo 90 > /proc/sys/kernel/sched_group_upmigrate + echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks + + # Enable min frequency adjustment for big cluster + if [ -f /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_cluster ]; then + echo "4-7" > /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_cluster + fi + echo 1 > /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_adjust + + ;; + esac + ;; +esac + +case "$target" in + "msm8937") + + if [ -f /sys/devices/soc0/soc_id ]; then + soc_id=`cat /sys/devices/soc0/soc_id` + else + soc_id=`cat /sys/devices/system/soc/soc0/id` + fi + + if [ -f /sys/devices/soc0/hw_platform ]; then + hw_platform=`cat /sys/devices/soc0/hw_platform` + else + hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform` + fi + if [ -f /sys/devices/soc0/platform_subtype_id ]; then + platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id` + fi + + # Socid 386 = Pukeena + case "$soc_id" in + "303" | "307" | "308" | "309" | "320" | "386" | "436") + + # Start Host based Touch processing + case "$hw_platform" in + "MTP" ) + start_hbtp + ;; + esac + + case "$hw_platform" in + "Surf" | "RCM" ) + if [ $platform_subtype_id -ne "4" ]; then + start_hbtp + fi + ;; + esac + # Apply Scheduler and Governor settings for 8917 / 8920 + + echo 20000000 > /proc/sys/kernel/sched_ravg_window + + #disable sched_boost in 8917 + echo 0 > /proc/sys/kernel/sched_boost + + # core_ctl is not needed for 8917. Disable it. + disable_core_ctl + + for devfreq_gov in /sys/class/devfreq/qcom,mincpubw*/governor + do + echo "cpufreq" > $devfreq_gov + done + + for devfreq_gov in /sys/class/devfreq/soc:qcom,cpubw/governor + do + echo "bw_hwmon" > $devfreq_gov + for cpu_io_percent in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/io_percent + do + echo 20 > $cpu_io_percent + done + for cpu_guard_band in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/guard_band_mbps + do + echo 30 > $cpu_guard_band + done + done + + for gpu_bimc_io_percent in /sys/class/devfreq/soc:qcom,gpubw/bw_hwmon/io_percent + do + echo 40 > $gpu_bimc_io_percent + done + + # disable thermal core_control to update interactive gov settings + echo 0 > /sys/module/msm_thermal/core_control/enabled + + if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 9 ]; then + 8917_sched_dcvs_eas + else + 8917_sched_dcvs_hmp + fi + echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + # re-enable thermal core_control now + echo 1 > /sys/module/msm_thermal/core_control/enabled + + # Disable L2-GDHS low power modes + echo N > /sys/module/lpm_levels/perf/perf-l2-gdhs/idle_enabled + echo N > /sys/module/lpm_levels/perf/perf-l2-gdhs/suspend_enabled + + # Bring up all cores online + echo 1 > /sys/devices/system/cpu/cpu1/online + echo 1 > /sys/devices/system/cpu/cpu2/online + echo 1 > /sys/devices/system/cpu/cpu3/online + + # Enable low power modes + echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled + + # Set rps mask + echo 2 > /sys/class/net/rmnet0/queues/rx-0/rps_cpus + + # Enable dynamic clock gating + echo 1 > /sys/module/lpm_levels/lpm_workarounds/dynamic_clock_gating + # Enable timer migration to little cluster + echo 1 > /proc/sys/kernel/power_aware_timer_migration + # Set Memory parameters + configure_memory_parameters + ;; + *) + ;; + esac + + case "$soc_id" in + "294" | "295" | "313" ) + + # Start Host based Touch processing + case "$hw_platform" in + "MTP" | "Surf" | "RCM" ) + start_hbtp + ;; + esac + + # Apply Scheduler and Governor settings for 8937/8940 + + # HMP scheduler settings + echo 3 > /proc/sys/kernel/sched_window_stats_policy + echo 3 > /proc/sys/kernel/sched_ravg_hist_size + echo 20000000 > /proc/sys/kernel/sched_ravg_window + + #disable sched_boost in 8937 + echo 0 > /proc/sys/kernel/sched_boost + + for devfreq_gov in /sys/class/devfreq/qcom,mincpubw*/governor + do + echo "cpufreq" > $devfreq_gov + done + + for devfreq_gov in /sys/class/devfreq/soc:qcom,cpubw/governor + do + echo "bw_hwmon" > $devfreq_gov + for cpu_io_percent in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/io_percent + do + echo 20 > $cpu_io_percent + done + for cpu_guard_band in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/guard_band_mbps + do + echo 30 > $cpu_guard_band + done + done + + for gpu_bimc_io_percent in /sys/class/devfreq/soc:qcom,gpubw/bw_hwmon/io_percent + do + echo 40 > $gpu_bimc_io_percent + done + + # disable thermal core_control to update interactive gov and core_ctl settings + echo 0 > /sys/module/msm_thermal/core_control/enabled + + if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 9 ]; then + 8937_sched_dcvs_eas + else + 8937_sched_dcvs_hmp + fi + echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + echo 768000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq + # Disable L2-GDHS low power modes + echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-gdhs/idle_enabled + echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-gdhs/suspend_enabled + echo N > /sys/module/lpm_levels/system/perf/perf-l2-gdhs/idle_enabled + echo N > /sys/module/lpm_levels/system/perf/perf-l2-gdhs/suspend_enabled + + # Bring up all cores online + echo 1 > /sys/devices/system/cpu/cpu1/online + echo 1 > /sys/devices/system/cpu/cpu2/online + echo 1 > /sys/devices/system/cpu/cpu3/online + echo 1 > /sys/devices/system/cpu/cpu4/online + echo 1 > /sys/devices/system/cpu/cpu5/online + echo 1 > /sys/devices/system/cpu/cpu6/online + echo 1 > /sys/devices/system/cpu/cpu7/online + + # Enable low power modes + echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled + + # HMP scheduler (big.Little cluster related) settings + echo 93 > /proc/sys/kernel/sched_upmigrate + echo 83 > /proc/sys/kernel/sched_downmigrate + + # Enable core control + echo 2 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus + echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/max_cpus + echo 68 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres + echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres + echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms + echo 1 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster + + # re-enable thermal core_control + echo 1 > /sys/module/msm_thermal/core_control/enabled + + # Enable dynamic clock gating + echo 1 > /sys/module/lpm_levels/lpm_workarounds/dynamic_clock_gating + # Enable timer migration to little cluster + echo 1 > /proc/sys/kernel/power_aware_timer_migration + # Set Memory parameters + configure_memory_parameters + ;; + *) + + ;; + esac + + case "$soc_id" in + "354" | "364" | "353" | "363" ) + + # Start Host based Touch processing + case "$hw_platform" in + "MTP" | "Surf" | "RCM" | "QRD" ) + start_hbtp + ;; + esac + + # Apply settings for sdm429/sda429/sdm439/sda439 + + for cpubw in /sys/class/devfreq/*qcom,mincpubw* + do + echo "cpufreq" > $cpubw/governor + done + + for cpubw in /sys/class/devfreq/*qcom,cpubw* + do + echo "bw_hwmon" > $cpubw/governor + echo 20 > $cpubw/bw_hwmon/io_percent + echo 30 > $cpubw/bw_hwmon/guard_band_mbps + done + + for gpu_bimc_io_percent in /sys/class/devfreq/soc:qcom,gpubw/bw_hwmon/io_percent + do + echo 40 > $gpu_bimc_io_percent + done + + case "$soc_id" in + "353" | "363" ) + # Apply settings for sdm439/sda439 + # configure schedutil governor settings + # enable governor for perf cluster + echo 1 > /sys/devices/system/cpu/cpu0/online + echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us + + #set the hispeed_freq + echo 1497600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq + echo 80 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load + echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + # sched_load_boost as -6 is equivalent to target load as 85. + echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost + + ## enable governor for power cluster + echo 1 > /sys/devices/system/cpu/cpu4/online + echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/down_rate_limit_us + + #set the hispeed_freq + echo 998400 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq + echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_load + echo 768000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq + # sched_load_boost as -6 is equivalent to target load as 85. + echo -6 > /sys/devices/system/cpu/cpu4/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu5/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost + + # EAS scheduler (big.Little cluster related) settings + echo 93 > /proc/sys/kernel/sched_upmigrate + echo 83 > /proc/sys/kernel/sched_downmigrate + echo 140 > /proc/sys/kernel/sched_group_upmigrate + echo 120 > /proc/sys/kernel/sched_group_downmigrate + + # cpuset settings + #echo 0-3 > /dev/cpuset/background/cpus + #echo 0-3 > /dev/cpuset/system-background/cpus + + # Bring up all cores online + echo 1 > /sys/devices/system/cpu/cpu1/online + echo 1 > /sys/devices/system/cpu/cpu2/online + echo 1 > /sys/devices/system/cpu/cpu3/online + echo 1 > /sys/devices/system/cpu/cpu4/online + echo 1 > /sys/devices/system/cpu/cpu5/online + echo 1 > /sys/devices/system/cpu/cpu6/online + echo 1 > /sys/devices/system/cpu/cpu7/online + + # Enable core control + echo 2 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus + echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/max_cpus + echo 68 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres + echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres + echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms + echo 1 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster + echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres + + # Big cluster min frequency adjust settings + if [ -f /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_cluster ]; then + echo "0-3" > /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_cluster + fi + echo 1305600 > /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_floor + ;; + *) + # Apply settings for sdm429/sda429 + # configure schedutil governor settings + echo 1 > /sys/devices/system/cpu/cpu0/online + echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us + + #set the hispeed_freq + echo 1305600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq + echo 80 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load + echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + # sched_load_boost as -6 is equivalent to target load as 85. + echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost + + # Bring up all cores online + echo 1 > /sys/devices/system/cpu/cpu1/online + echo 1 > /sys/devices/system/cpu/cpu2/online + echo 1 > /sys/devices/system/cpu/cpu3/online + ;; + esac + + # Set Memory parameters + configure_memory_parameters + + #disable sched_boost + echo 0 > /proc/sys/kernel/sched_boost + + # Disable L2-GDHS low power modes + echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-gdhs/idle_enabled + echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-gdhs/suspend_enabled + echo N > /sys/module/lpm_levels/system/perf/perf-l2-gdhs/idle_enabled + echo N > /sys/module/lpm_levels/system/perf/perf-l2-gdhs/suspend_enabled + + # Enable low power modes + echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled + + case "$soc_id" in + "353" | "363" ) + echo 1 > /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_adjust + ;; + esac + ;; + esac + + case "$soc_id" in + "386" | "436") + + # Start Host based Touch processing + case "$hw_platform" in + "QRD" ) + start_hbtp + ;; + esac + ;; + esac + ;; +esac + +case "$target" in + "sdm660") + + # Set the default IRQ affinity to the primary cluster. When a + # CPU is isolated/hotplugged, the IRQ affinity is adjusted + # to one of the CPU from the default IRQ affinity mask. + echo f > /proc/irq/default_smp_affinity + + if [ -f /sys/devices/soc0/soc_id ]; then + soc_id=`cat /sys/devices/soc0/soc_id` + else + soc_id=`cat /sys/devices/system/soc/soc0/id` + fi + + if [ -f /sys/devices/soc0/hw_platform ]; then + hw_platform=`cat /sys/devices/soc0/hw_platform` + else + hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform` + fi + + panel=`cat /sys/class/graphics/fb0/modes` + if [ "${panel:5:1}" == "x" ]; then + panel=${panel:2:3} + else + panel=${panel:2:4} + fi + + if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -le 14 ]; then + if [ $panel -gt 1080 ]; then + echo 2 > /proc/sys/kernel/sched_window_stats_policy + echo 5 > /proc/sys/kernel/sched_ravg_hist_size + else + echo 3 > /proc/sys/kernel/sched_window_stats_policy + echo 3 > /proc/sys/kernel/sched_ravg_hist_size + fi + fi + #Apply settings for sdm660, sdm636,sda636 + case "$soc_id" in + "317" | "324" | "325" | "326" | "345" | "346" ) + + echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus + echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres + echo 30 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres + echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms + echo 1 > /sys/devices/system/cpu/cpu4/core_ctl/is_big_cluster + echo 4 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres + + # Setting b.L scheduler parameters + echo 96 > /proc/sys/kernel/sched_upmigrate + echo 90 > /proc/sys/kernel/sched_downmigrate + echo 140 > /proc/sys/kernel/sched_group_upmigrate + echo 120 > /proc/sys/kernel/sched_group_downmigrate + + # cpuset settings + echo 0-3 > /dev/cpuset/background/cpus + echo 0-3 > /dev/cpuset/system-background/cpus + + #if the kernel version >=4.14,use the schedutil governor + if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 14 ]; then + sdm660_sched_schedutil_dcvs + else + sdm660_sched_interactive_dcvs + fi + + # Set Memory parameters + configure_memory_parameters + + # enable LPM + echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled + + # Start cdsprpcd only for sdm660 and disable for sdm630 + start vendor.cdsprpcd + + # Start Host based Touch processing + case "$hw_platform" in + "MTP" | "Surf" | "RCM" | "QRD" ) + start_hbtp + ;; + esac + ;; + esac + #Apply settings for sdm630 and Tahaa + case "$soc_id" in + "318" | "327" | "385" ) + + # Start Host based Touch processing + case "$hw_platform" in + "MTP" | "Surf" | "RCM" | "QRD" ) + start_hbtp + ;; + esac + + # Disable cdsprpcd daemon for sdm630 + setprop vendor.fastrpc.disable.cdsprpcd.daemon 1 + + # Setting b.L scheduler parameters + echo 85 > /proc/sys/kernel/sched_upmigrate + echo 85 > /proc/sys/kernel/sched_downmigrate + echo 900 > /proc/sys/kernel/sched_group_upmigrate + echo 900 > /proc/sys/kernel/sched_group_downmigrate + echo 0 > /proc/sys/kernel/sched_select_prev_cpu_us + echo 400000 > /proc/sys/kernel/sched_freq_inc_notify + echo 400000 > /proc/sys/kernel/sched_freq_dec_notify + echo 3 > /proc/sys/kernel/sched_spill_nr_run + + #init task load, restrict wakeups to preferred cluster + echo 15 > /proc/sys/kernel/sched_init_task_load + echo 1 > /proc/sys/kernel/sched_restrict_cluster_spill + echo 50000 > /proc/sys/kernel/sched_short_burst_ns + + # cpuset settings + echo 0-3 > /dev/cpuset/background/cpus + echo 0-3 > /dev/cpuset/system-background/cpus + + # disable thermal bcl hotplug to switch governor + echo 0 > /sys/module/msm_thermal/core_control/enabled + for mode in /sys/devices/soc.0/qcom,bcl.*/mode + do + echo -n disable > $mode + done + for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask + do + bcl_hotplug_mask=`cat $hotplug_mask` + echo 0 > $hotplug_mask + done + for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask + do + bcl_soc_hotplug_mask=`cat $hotplug_soc_mask` + echo 0 > $hotplug_soc_mask + done + for mode in /sys/devices/soc.0/qcom,bcl.*/mode + do + echo -n enable > $mode + done + + # online CPU0 + echo 1 > /sys/devices/system/cpu/cpu0/online + # configure governor settings for Big cluster(CPU0 to CPU3) + echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load + echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif + echo "19000 1344000:39000" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay + echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load + echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate + echo 1344000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy + echo "85 1344000:80" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads + echo 39000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis + echo 787200 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/ignore_hispeed_on_notif + + # online CPU4 + echo 1 > /sys/devices/system/cpu/cpu4/online + # configure governor settings for Little cluster(CPU4 to CPU7) + echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load + echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif + echo "19000 1094400:39000" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay + echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load + echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate + echo 1094400 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq + echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy + echo "85 1094400:80" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads + echo 39000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time + echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/max_freq_hysteresis + echo 614400 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq + echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/ignore_hispeed_on_notif + + # bring all cores online + echo 1 > /sys/devices/system/cpu/cpu0/online + echo 1 > /sys/devices/system/cpu/cpu1/online + echo 1 > /sys/devices/system/cpu/cpu2/online + echo 1 > /sys/devices/system/cpu/cpu3/online + echo 1 > /sys/devices/system/cpu/cpu4/online + echo 1 > /sys/devices/system/cpu/cpu5/online + echo 1 > /sys/devices/system/cpu/cpu6/online + echo 1 > /sys/devices/system/cpu/cpu7/online + + # configure LPM + echo N > /sys/module/lpm_levels/system/perf/cpu0/ret/idle_enabled + echo N > /sys/module/lpm_levels/system/perf/cpu1/ret/idle_enabled + echo N > /sys/module/lpm_levels/system/perf/cpu2/ret/idle_enabled + echo N > /sys/module/lpm_levels/system/perf/cpu3/ret/idle_enabled + echo N > /sys/module/lpm_levels/system/pwr/cpu4/ret/idle_enabled + echo N > /sys/module/lpm_levels/system/pwr/cpu5/ret/idle_enabled + echo N > /sys/module/lpm_levels/system/pwr/cpu6/ret/idle_enabled + echo N > /sys/module/lpm_levels/system/pwr/cpu7/ret/idle_enabled + echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-dynret/idle_enabled + echo N > /sys/module/lpm_levels/system/perf/perf-l2-dynret/idle_enabled + # enable LPM + echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled + + # re-enable thermal and BCL hotplug + echo 1 > /sys/module/msm_thermal/core_control/enabled + for mode in /sys/devices/soc.0/qcom,bcl.*/mode + do + echo -n disable > $mode + done + for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask + do + echo $bcl_hotplug_mask > $hotplug_mask + done + for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask + do + echo $bcl_soc_hotplug_mask > $hotplug_soc_mask + done + for mode in /sys/devices/soc.0/qcom,bcl.*/mode + do + echo -n enable > $mode + done + + # Set Memory parameters + configure_memory_parameters + + # Enable bus-dcvs + for cpubw in /sys/class/devfreq/*qcom,cpubw* + do + echo "bw_hwmon" > $cpubw/governor + echo 50 > $cpubw/polling_interval + echo 762 > $cpubw/min_freq + echo "1525 3143 4173 5195 5859 7759 9887 10327" > $cpubw/bw_hwmon/mbps_zones + echo 4 > $cpubw/bw_hwmon/sample_ms + echo 85 > $cpubw/bw_hwmon/io_percent + echo 20 > $cpubw/bw_hwmon/hist_memory + echo 0 > $cpubw/bw_hwmon/hyst_length + echo 100 > $cpubw/bw_hwmon/decay_rate + echo 50 > $cpubw/bw_hwmon/bw_step + echo 80 > $cpubw/bw_hwmon/down_thres + echo 0 > $cpubw/bw_hwmon/low_power_ceil_mbps + echo 50 > $cpubw/bw_hwmon/low_power_io_percent + echo 20 > $cpubw/bw_hwmon/low_power_delay + echo 0 > $cpubw/bw_hwmon/guard_band_mbps + echo 250 > $cpubw/bw_hwmon/up_scale + echo 1600 > $cpubw/bw_hwmon/idle_mbps + done + + for memlat in /sys/class/devfreq/*qcom,memlat-cpu* + do + echo "mem_latency" > $memlat/governor + echo 10 > $memlat/polling_interval + echo 400 > $memlat/mem_latency/ratio_ceil + done + + echo "cpufreq" > /sys/class/devfreq/soc:qcom,mincpubw/governor + ;; + esac + ;; +esac + +case "$target" in + "sdm710") + + #Apply settings for sdm710 + # Set the default IRQ affinity to the silver cluster. When a + # CPU is isolated/hotplugged, the IRQ affinity is adjusted + # to one of the CPU from the default IRQ affinity mask. + echo 3f > /proc/irq/default_smp_affinity + + if [ -f /sys/devices/soc0/soc_id ]; then + soc_id=`cat /sys/devices/soc0/soc_id` + else + soc_id=`cat /sys/devices/system/soc/soc0/id` + fi + + if [ -f /sys/devices/soc0/hw_platform ]; then + hw_platform=`cat /sys/devices/soc0/hw_platform` + else + hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform` + fi + + case "$soc_id" in + "336" | "337" | "347" | "360" | "393" ) + + # Start Host based Touch processing + case "$hw_platform" in + "MTP" | "Surf" | "RCM" | "QRD" ) + start_hbtp + ;; + esac + + # Core control parameters on silver + echo 0 0 0 0 1 1 > /sys/devices/system/cpu/cpu0/core_ctl/not_preferred + echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus + echo 60 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres + echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres + echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms + echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster + echo 8 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres + + # Setting b.L scheduler parameters + echo 96 > /proc/sys/kernel/sched_upmigrate + echo 90 > /proc/sys/kernel/sched_downmigrate + echo 140 > /proc/sys/kernel/sched_group_upmigrate + echo 120 > /proc/sys/kernel/sched_group_downmigrate + echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks + + # configure governor settings for little cluster + echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rate_limit_us + echo 1209600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq + echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + + # configure governor settings for big cluster + echo "schedutil" > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/rate_limit_us + echo 1344000 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_freq + echo 652800 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq + + # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable. + echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost + echo 85 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_load + + echo "0:1209600" > /sys/module/cpu_boost/parameters/input_boost_freq + echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms + + # Set Memory parameters + configure_memory_parameters + + # Enable bus-dcvs + for cpubw in /sys/class/devfreq/*qcom,cpubw* + do + echo "bw_hwmon" > $cpubw/governor + echo 50 > $cpubw/polling_interval + echo "1144 1720 2086 2929 3879 5931 6881" > $cpubw/bw_hwmon/mbps_zones + echo 4 > $cpubw/bw_hwmon/sample_ms + echo 68 > $cpubw/bw_hwmon/io_percent + echo 20 > $cpubw/bw_hwmon/hist_memory + echo 0 > $cpubw/bw_hwmon/hyst_length + echo 80 > $cpubw/bw_hwmon/down_thres + echo 0 > $cpubw/bw_hwmon/guard_band_mbps + echo 250 > $cpubw/bw_hwmon/up_scale + echo 1600 > $cpubw/bw_hwmon/idle_mbps + done + + #Enable mem_latency governor for DDR scaling + for memlat in /sys/class/devfreq/*qcom,memlat-cpu* + do + echo "mem_latency" > $memlat/governor + echo 10 > $memlat/polling_interval + echo 400 > $memlat/mem_latency/ratio_ceil + done + + #Enable mem_latency governor for L3 scaling + for memlat in /sys/class/devfreq/*qcom,l3-cpu* + do + echo "mem_latency" > $memlat/governor + echo 10 > $memlat/polling_interval + echo 400 > $memlat/mem_latency/ratio_ceil + done + + #Enable userspace governor for L3 cdsp nodes + for l3cdsp in /sys/class/devfreq/*qcom,l3-cdsp* + do + echo "userspace" > $l3cdsp/governor + chown -h system $l3cdsp/userspace/set_freq + done + + echo "cpufreq" > /sys/class/devfreq/soc:qcom,mincpubw/governor + + # Disable CPU Retention + echo N > /sys/module/lpm_levels/L3/cpu0/ret/idle_enabled + echo N > /sys/module/lpm_levels/L3/cpu1/ret/idle_enabled + echo N > /sys/module/lpm_levels/L3/cpu2/ret/idle_enabled + echo N > /sys/module/lpm_levels/L3/cpu3/ret/idle_enabled + echo N > /sys/module/lpm_levels/L3/cpu4/ret/idle_enabled + echo N > /sys/module/lpm_levels/L3/cpu5/ret/idle_enabled + echo N > /sys/module/lpm_levels/L3/cpu6/ret/idle_enabled + echo N > /sys/module/lpm_levels/L3/cpu7/ret/idle_enabled + + # cpuset parameters + echo 0-5 > /dev/cpuset/background/cpus + echo 0-5 > /dev/cpuset/system-background/cpus + + # Turn off scheduler boost at the end + echo 0 > /proc/sys/kernel/sched_boost + + # Turn on sleep modes. + echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled + ;; + esac + ;; +esac + +case "$target" in + "trinket") + + if [ -f /sys/devices/soc0/soc_id ]; then + soc_id=`cat /sys/devices/soc0/soc_id` + else + soc_id=`cat /sys/devices/system/soc/soc0/id` + fi + + case "$soc_id" in + "394" ) + + # Core control parameters on big + echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus + echo 40 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres + echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres + echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms + echo 1 > /sys/devices/system/cpu/cpu4/core_ctl/is_big_cluster + echo 4 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres + + # Setting b.L scheduler parameters + echo 67 > /proc/sys/kernel/sched_downmigrate + echo 77 > /proc/sys/kernel/sched_upmigrate + echo 85 > /proc/sys/kernel/sched_group_downmigrate + echo 100 > /proc/sys/kernel/sched_group_upmigrate + + # cpuset settings + echo 0-3 > /dev/cpuset/background/cpus + echo 0-3 > /dev/cpuset/system-background/cpus + + + # configure governor settings for little cluster + echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us + echo 1305600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq + echo 614400 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + + # configure governor settings for big cluster + echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us + echo 1401600 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq + echo 1056000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq + + echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks + + # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable. + echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu4/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu5/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost + echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load + echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_load + + # Set Memory parameters + configure_memory_parameters + + # Enable bus-dcvs + ddr_type=`od -An -tx /proc/device-tree/memory/ddr_device_type` + ddr_type4="07" + ddr_type3="05" + + for device in /sys/devices/platform/soc + do + for cpubw in $device/*cpu-cpu-ddr-bw/devfreq/*cpu-cpu-ddr-bw + do + echo "bw_hwmon" > $cpubw/governor + echo 762 > $cpubw/min_freq + if [ ${ddr_type:4:2} == $ddr_type4 ]; then + # LPDDR4 + echo "2288 3440 4173 5195 5859 7759 10322 11863 13763" > $cpubw/bw_hwmon/mbps_zones + echo 85 > $cpubw/bw_hwmon/io_percent + fi + if [ ${ddr_type:4:2} == $ddr_type3 ]; then + # LPDDR3 + echo "1525 3440 5195 5859 7102" > $cpubw/bw_hwmon/mbps_zones + echo 34 > $cpubw/bw_hwmon/io_percent + fi + echo 4 > $cpubw/bw_hwmon/sample_ms + echo 90 > $cpubw/bw_hwmon/decay_rate + echo 190 > $cpubw/bw_hwmon/bw_step + echo 20 > $cpubw/bw_hwmon/hist_memory + echo 0 > $cpubw/bw_hwmon/hyst_length + echo 80 > $cpubw/bw_hwmon/down_thres + echo 0 > $cpubw/bw_hwmon/guard_band_mbps + echo 250 > $cpubw/bw_hwmon/up_scale + echo 1600 > $cpubw/bw_hwmon/idle_mbps + echo 50 > $cpubw/polling_interval + done + + done + + # memlat specific settings are moved to seperate file under + # device/target specific folder + setprop vendor.dcvs.prop 1 + + # colcoation v3 disabled + echo 0 > /proc/sys/kernel/sched_min_task_util_for_boost + echo 0 > /proc/sys/kernel/sched_min_task_util_for_colocation + echo 0 > /proc/sys/kernel/sched_little_cluster_coloc_fmin_khz + + # Turn off scheduler boost at the end + echo 0 > /proc/sys/kernel/sched_boost + + # Turn on sleep modes. + echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled + + ;; + esac + ;; +esac + +case "$target" in + "sm6150") + + #Apply settings for sm6150 + # Set the default IRQ affinity to the silver cluster. When a + # CPU is isolated/hotplugged, the IRQ affinity is adjusted + # to one of the CPU from the default IRQ affinity mask. + echo 3f > /proc/irq/default_smp_affinity + + if [ -f /sys/devices/soc0/soc_id ]; then + soc_id=`cat /sys/devices/soc0/soc_id` + else + soc_id=`cat /sys/devices/system/soc/soc0/id` + fi + + case "$soc_id" in + "355" | "369" | "377" | "380" | "384" ) + target_type=`getprop ro.hardware.type` + if [ "$target_type" == "automotive" ]; then + # update frequencies + configure_sku_parameters + sku_identified=`getprop vendor.sku_identified` + else + sku_identified=0 + fi + + # Core control parameters on silver + echo 0 0 0 0 1 1 > /sys/devices/system/cpu/cpu0/core_ctl/not_preferred + echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus + echo 60 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres + echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres + echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms + echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster + echo 8 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres + echo 0 > /sys/devices/system/cpu/cpu6/core_ctl/enable + + + # Setting b.L scheduler parameters + # default sched up and down migrate values are 90 and 85 + echo 65 > /proc/sys/kernel/sched_downmigrate + echo 71 > /proc/sys/kernel/sched_upmigrate + # default sched up and down migrate values are 100 and 95 + echo 85 > /proc/sys/kernel/sched_group_downmigrate + echo 100 > /proc/sys/kernel/sched_group_upmigrate + echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks + + # colocation v3 settings + echo 740000 > /proc/sys/kernel/sched_little_cluster_coloc_fmin_khz + + + # configure governor settings for little cluster + echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us + echo 1209600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq + if [ $sku_identified != 1 ]; then + echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + fi + + # configure governor settings for big cluster + echo "schedutil" > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/down_rate_limit_us + echo 1209600 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_freq + if [ $sku_identified != 1 ]; then + echo 768000 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq + fi + + # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable. + echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost + echo 85 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_load + + echo "0:1209600" > /sys/module/cpu_boost/parameters/input_boost_freq + echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms + + # Set Memory parameters + configure_memory_parameters + + # Enable bus-dcvs + for device in /sys/devices/platform/soc + do + for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw + do + echo "bw_hwmon" > $cpubw/governor + echo "2288 4577 7110 9155 12298 14236" > $cpubw/bw_hwmon/mbps_zones + echo 4 > $cpubw/bw_hwmon/sample_ms + echo 68 > $cpubw/bw_hwmon/io_percent + echo 20 > $cpubw/bw_hwmon/hist_memory + echo 0 > $cpubw/bw_hwmon/hyst_length + echo 80 > $cpubw/bw_hwmon/down_thres + echo 0 > $cpubw/bw_hwmon/guard_band_mbps + echo 250 > $cpubw/bw_hwmon/up_scale + echo 1600 > $cpubw/bw_hwmon/idle_mbps + echo 50 > $cpubw/polling_interval + done + + for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw + do + echo "bw_hwmon" > $llccbw/governor + echo "1144 1720 2086 2929 3879 5931 6881" > $llccbw/bw_hwmon/mbps_zones + echo 4 > $llccbw/bw_hwmon/sample_ms + echo 68 > $llccbw/bw_hwmon/io_percent + echo 20 > $llccbw/bw_hwmon/hist_memory + echo 0 > $llccbw/bw_hwmon/hyst_length + echo 80 > $llccbw/bw_hwmon/down_thres + echo 0 > $llccbw/bw_hwmon/guard_band_mbps + echo 250 > $llccbw/bw_hwmon/up_scale + echo 1600 > $llccbw/bw_hwmon/idle_mbps + echo 40 > $llccbw/polling_interval + done + done + + # memlat specific settings are moved to seperate file under + # device/target specific folder + setprop vendor.dcvs.prop 1 + + # cpuset parameters + echo 0-5 > /dev/cpuset/background/cpus + echo 0-5 > /dev/cpuset/system-background/cpus + + # Turn off scheduler boost at the end + echo 0 > /proc/sys/kernel/sched_boost + + # Turn on sleep modes. + echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled + ;; + esac + + #Apply settings for moorea + case "$soc_id" in + "365" | "366" ) + + # Core control parameters on silver + echo 0 0 0 0 1 1 > /sys/devices/system/cpu/cpu0/core_ctl/not_preferred + echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus + echo 60 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres + echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres + echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms + echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster + echo 8 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres + echo 0 > /sys/devices/system/cpu/cpu6/core_ctl/enable + + # Setting b.L scheduler parameters + # default sched up and down migrate values are 71 and 65 + echo 65 > /proc/sys/kernel/sched_downmigrate + echo 71 > /proc/sys/kernel/sched_upmigrate + # default sched up and down migrate values are 100 and 95 + echo 85 > /proc/sys/kernel/sched_group_downmigrate + echo 100 > /proc/sys/kernel/sched_group_upmigrate + echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks + + #colocation v3 settings + echo 740000 > /proc/sys/kernel/sched_little_cluster_coloc_fmin_khz + + # configure governor settings for little cluster + echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us + echo 1248000 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq + echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + + # configure governor settings for big cluster + echo "schedutil" > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/down_rate_limit_us + echo 1324600 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_freq + echo 652800 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq + + # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable. + echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost + echo 85 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_load + + echo "0:1248000" > /sys/module/cpu_boost/parameters/input_boost_freq + echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms + + # Set Memory parameters + configure_memory_parameters + + # Enable bus-dcvs + for device in /sys/devices/platform/soc + do + for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw + do + echo "bw_hwmon" > $cpubw/governor + echo "2288 4577 7110 9155 12298 14236" > $cpubw/bw_hwmon/mbps_zones + echo 4 > $cpubw/bw_hwmon/sample_ms + echo 68 > $cpubw/bw_hwmon/io_percent + echo 20 > $cpubw/bw_hwmon/hist_memory + echo 0 > $cpubw/bw_hwmon/hyst_length + echo 80 > $cpubw/bw_hwmon/down_thres + echo 0 > $cpubw/bw_hwmon/guard_band_mbps + echo 250 > $cpubw/bw_hwmon/up_scale + echo 1600 > $cpubw/bw_hwmon/idle_mbps + echo 50 > $cpubw/polling_interval + done + + for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw + do + echo "bw_hwmon" > $llccbw/governor + echo "1144 1720 2086 2929 3879 5931 6881" > $llccbw/bw_hwmon/mbps_zones + echo 4 > $llccbw/bw_hwmon/sample_ms + echo 68 > $llccbw/bw_hwmon/io_percent + echo 20 > $llccbw/bw_hwmon/hist_memory + echo 0 > $llccbw/bw_hwmon/hyst_length + echo 80 > $llccbw/bw_hwmon/down_thres + echo 0 > $llccbw/bw_hwmon/guard_band_mbps + echo 250 > $llccbw/bw_hwmon/up_scale + echo 1600 > $llccbw/bw_hwmon/idle_mbps + echo 40 > $llccbw/polling_interval + done + + for npubw in $device/*npu-npu-ddr-bw/devfreq/*npu-npu-ddr-bw + do + echo 1 > /sys/devices/virtual/npu/msm_npu/pwr + echo "bw_hwmon" > $npubw/governor + echo "1144 1720 2086 2929 3879 5931 6881" > $npubw/bw_hwmon/mbps_zones + echo 4 > $npubw/bw_hwmon/sample_ms + echo 80 > $npubw/bw_hwmon/io_percent + echo 20 > $npubw/bw_hwmon/hist_memory + echo 10 > $npubw/bw_hwmon/hyst_length + echo 30 > $npubw/bw_hwmon/down_thres + echo 0 > $npubw/bw_hwmon/guard_band_mbps + echo 250 > $npubw/bw_hwmon/up_scale + echo 0 > $npubw/bw_hwmon/idle_mbps + echo 40 > $npubw/polling_interval + echo 0 > /sys/devices/virtual/npu/msm_npu/pwr + done + done + + # memlat specific settings are moved to seperate file under + # device/target specific folder + setprop vendor.dcvs.prop 1 + + # cpuset parameters + echo 0-5 > /dev/cpuset/background/cpus + echo 0-5 > /dev/cpuset/system-background/cpus + + # Turn off scheduler boost at the end + echo 0 > /proc/sys/kernel/sched_boost + + # Turn on sleep modes. + echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled + ;; + esac + + ;; +esac + + +case "$target" in + "lito") + + #Apply settings for lito + if [ -f /sys/devices/soc0/soc_id ]; then + soc_id=`cat /sys/devices/soc0/soc_id` + fi + + case "$soc_id" in + "400" | "440" | "476" ) + # Core control parameters on silver + echo 0 0 0 0 1 1 > /sys/devices/system/cpu/cpu0/core_ctl/not_preferred + echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus + echo 60 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres + echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres + echo 8 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres + echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms + + # Disable Core control on gold, prime + echo 0 > /sys/devices/system/cpu/cpu6/core_ctl/enable + echo 0 > /sys/devices/system/cpu/cpu7/core_ctl/enable + + # Setting b.L scheduler parameters + echo 65 85 > /proc/sys/kernel/sched_downmigrate + echo 71 95 > /proc/sys/kernel/sched_upmigrate + echo 85 > /proc/sys/kernel/sched_group_downmigrate + echo 100 > /proc/sys/kernel/sched_group_upmigrate + echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks + echo 0 > /proc/sys/kernel/sched_coloc_busy_hyst_ns + echo 0 > /proc/sys/kernel/sched_coloc_busy_hysteresis_enable_cpus + echo 0 > /proc/sys/kernel/sched_coloc_busy_hyst_max_ms + + # disable unfiltering + echo 20000000 > /proc/sys/kernel/sched_task_unfilter_period + echo 1 > /proc/sys/kernel/sched_task_unfilter_nr_windows + + # configure governor settings for silver cluster + echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor + echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us + echo 1228800 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq + echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl + echo 576000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq + echo 650000 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/rtg_boost_freq + + # configure governor settings for gold cluster + echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy6/scaling_governor + echo 0 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/down_rate_limit_us + echo 1228800 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/hispeed_freq + echo 85 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_load + echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost + echo 0 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/pl + echo 672000 > /sys/devices/system/cpu/cpufreq/policy6/scaling_min_freq + echo 0 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/rtg_boost_freq + + # configure governor settings for gold+ cluster + echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy7/scaling_governor + echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/down_rate_limit_us + echo 1228800 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/hispeed_freq + echo 85 > /sys/devices/system/cpu/cpu7/cpufreq/schedutil/hispeed_load + echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost + echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/pl + echo 672000 > /sys/devices/system/cpu/cpufreq/policy7/scaling_min_freq + echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/rtg_boost_freq + + # colocation v3 settings + echo 51 > /proc/sys/kernel/sched_min_task_util_for_boost + echo 35 > /proc/sys/kernel/sched_min_task_util_for_colocation + + # Enable conservative pl + echo 1 > /proc/sys/kernel/sched_conservative_pl + + echo "0:1228800" > /sys/devices/system/cpu/cpu_boost/input_boost_freq + echo 120 > /sys/devices/system/cpu/cpu_boost/input_boost_ms + + # Set Memory parameters + configure_memory_parameters + + if [ `cat /sys/devices/soc0/revision` == "2.0" ]; then + # r2.0 related changes + echo "0:1075200" > /sys/devices/system/cpu/cpu_boost/input_boost_freq + echo 610000 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/rtg_boost_freq + echo 1075200 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq + echo 1152000 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/hispeed_freq + echo 1401600 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/hispeed_freq + echo 614400 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq + echo 652800 > /sys/devices/system/cpu/cpufreq/policy6/scaling_min_freq + echo 806400 > /sys/devices/system/cpu/cpufreq/policy7/scaling_min_freq + echo 83 > /proc/sys/kernel/sched_asym_cap_sibling_freq_match_pct + fi + + # Enable bus-dcvs + for device in /sys/devices/platform/soc + do + for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw + do + echo "bw_hwmon" > $cpubw/governor + echo "2288 4577 7110 9155 12298 14236 16265" > $cpubw/bw_hwmon/mbps_zones + echo 4 > $cpubw/bw_hwmon/sample_ms + echo 68 > $cpubw/bw_hwmon/io_percent + echo 20 > $cpubw/bw_hwmon/hist_memory + echo 0 > $cpubw/bw_hwmon/hyst_length + echo 80 > $cpubw/bw_hwmon/down_thres + echo 0 > $cpubw/bw_hwmon/guard_band_mbps + echo 250 > $cpubw/bw_hwmon/up_scale + echo 1600 > $cpubw/bw_hwmon/idle_mbps + echo 50 > $cpubw/polling_interval + done + + for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw + do + echo "bw_hwmon" > $llccbw/governor + echo "1144 1720 2086 2929 3879 5931 6881 7980" > $llccbw/bw_hwmon/mbps_zones + echo 4 > $llccbw/bw_hwmon/sample_ms + echo 68 > $llccbw/bw_hwmon/io_percent + echo 20 > $llccbw/bw_hwmon/hist_memory + echo 0 > $llccbw/bw_hwmon/hyst_length + echo 80 > $llccbw/bw_hwmon/down_thres + echo 0 > $llccbw/bw_hwmon/guard_band_mbps + echo 250 > $llccbw/bw_hwmon/up_scale + echo 1600 > $llccbw/bw_hwmon/idle_mbps + echo 50 > $llccbw/polling_interval + done + + for npubw in $device/*npu*-ddr-bw/devfreq/*npu*-ddr-bw + do + echo 1 > /sys/devices/virtual/npu/msm_npu/pwr + echo "bw_hwmon" > $npubw/governor + echo "1144 1720 2086 2929 3879 5931 6881 7980" > $npubw/bw_hwmon/mbps_zones + echo 4 > $npubw/bw_hwmon/sample_ms + echo 80 > $npubw/bw_hwmon/io_percent + echo 20 > $npubw/bw_hwmon/hist_memory + echo 10 > $npubw/bw_hwmon/hyst_length + echo 30 > $npubw/bw_hwmon/down_thres + echo 0 > $npubw/bw_hwmon/guard_band_mbps + echo 250 > $npubw/bw_hwmon/up_scale + echo 0 > $npubw/bw_hwmon/idle_mbps + echo 40 > $npubw/polling_interval + echo 0 > /sys/devices/virtual/npu/msm_npu/pwr + done + + for npullccbw in $device/*npu*-llcc-bw/devfreq/*npu*-llcc-bw + do + echo 1 > /sys/devices/virtual/npu/msm_npu/pwr + echo "bw_hwmon" > $npullccbw/governor + echo "2288 4577 7110 9155 12298 14236 16265" > $npullccbw/bw_hwmon/mbps_zones + echo 4 > $npullccbw/bw_hwmon/sample_ms + echo 100 > $npullccbw/bw_hwmon/io_percent + echo 20 > $npullccbw/bw_hwmon/hist_memory + echo 10 > $npullccbw/bw_hwmon/hyst_length + echo 30 > $npullccbw/bw_hwmon/down_thres + echo 0 > $npullccbw/bw_hwmon/guard_band_mbps + echo 250 > $npullccbw/bw_hwmon/up_scale + echo 40 > $npullccbw/polling_interval + echo 0 > /sys/devices/virtual/npu/msm_npu/pwr + done + done + # memlat specific settings are moved to seperate file under + # device/target specific folder + setprop vendor.dcvs.prop 0 + setprop vendor.dcvs.prop 1 + + # cpuset parameters + echo 0-5 > /dev/cpuset/background/cpus + echo 0-5 > /dev/cpuset/system-background/cpus + + # Turn off scheduler boost at the end + echo 0 > /proc/sys/kernel/sched_boost + + # Turn on sleep modes + echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled + ;; + esac + + #Apply settings for lagoon + case "$soc_id" in + "434" | "459" ) + + # Core control parameters on silver + echo 0 0 0 0 1 1 > /sys/devices/system/cpu/cpu0/core_ctl/not_preferred + echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus + echo 60 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres + echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres + echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms + echo 8 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres + + # Disable Core control on gold + echo 0 > /sys/devices/system/cpu/cpu6/core_ctl/enable + + + # disable unfiltering + echo 20000000 > /proc/sys/kernel/sched_task_unfilter_period + + # Setting b.L scheduler parameters + # default sched up and down migrate values are 95 and 85 + echo 65 > /proc/sys/kernel/sched_downmigrate + echo 71 > /proc/sys/kernel/sched_upmigrate + + # default sched up and down migrate values are 100 and 95 + echo 85 > /proc/sys/kernel/sched_group_downmigrate + echo 100 > /proc/sys/kernel/sched_group_upmigrate + echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks + echo 0 > /proc/sys/kernel/sched_coloc_busy_hyst_ns + echo 0 > /proc/sys/kernel/sched_coloc_busy_hysteresis_enable_cpus + echo 0 > /proc/sys/kernel/sched_coloc_busy_hyst_max_ms + + # configure governor settings for little cluster + echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us + echo 1248000 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq + echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + + # configure governor settings for big cluster + echo "schedutil" > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/down_rate_limit_us + echo 1248000 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_freq + echo 652800 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq + + #colocation v3 settings + echo 740000 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/rtg_boost_freq + echo 0 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/rtg_boost_freq + echo 51 > /proc/sys/kernel/sched_min_task_util_for_boost + + # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable. + echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost + echo 85 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_load + + # Enable conservative pl + echo 1 > /proc/sys/kernel/sched_conservative_pl + + echo "0:1248000" > /sys/devices/system/cpu/cpu_boost/input_boost_freq + echo 120 > /sys/devices/system/cpu/cpu_boost/input_boost_ms + + # Set Memory parameters + configure_memory_parameters + + # Enable bus-dcvs + for device in /sys/devices/platform/soc + do + for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw + do + echo "bw_hwmon" > $cpubw/governor + echo "2288 4577 7110 9155 12298 14236" > $cpubw/bw_hwmon/mbps_zones + echo 4 > $cpubw/bw_hwmon/sample_ms + echo 68 > $cpubw/bw_hwmon/io_percent + echo 20 > $cpubw/bw_hwmon/hist_memory + echo 0 > $cpubw/bw_hwmon/hyst_length + echo 80 > $cpubw/bw_hwmon/down_thres + echo 0 > $cpubw/bw_hwmon/guard_band_mbps + echo 250 > $cpubw/bw_hwmon/up_scale + echo 1600 > $cpubw/bw_hwmon/idle_mbps + echo 50 > $cpubw/polling_interval + done + + for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw + do + echo "bw_hwmon" > $llccbw/governor + echo "1144 1720 2086 2929 3879 5931 6881 8137" > $llccbw/bw_hwmon/mbps_zones + echo 4 > $llccbw/bw_hwmon/sample_ms + echo 68 > $llccbw/bw_hwmon/io_percent + echo 20 > $llccbw/bw_hwmon/hist_memory + echo 0 > $llccbw/bw_hwmon/hyst_length + echo 80 > $llccbw/bw_hwmon/down_thres + echo 0 > $llccbw/bw_hwmon/guard_band_mbps + echo 250 > $llccbw/bw_hwmon/up_scale + echo 1600 > $llccbw/bw_hwmon/idle_mbps + echo 40 > $llccbw/polling_interval + done + + for npubw in $device/*npu*-ddr-bw/devfreq/*npu*-ddr-bw + do + echo 1 > /sys/devices/virtual/npu/msm_npu/pwr + echo "bw_hwmon" > $npubw/governor + echo "1144 1720 2086 2929 3879 5931 6881 7980" > $npubw/bw_hwmon/mbps_zones + echo 4 > $npubw/bw_hwmon/sample_ms + echo 80 > $npubw/bw_hwmon/io_percent + echo 20 > $npubw/bw_hwmon/hist_memory + echo 10 > $npubw/bw_hwmon/hyst_length + echo 30 > $npubw/bw_hwmon/down_thres + echo 0 > $npubw/bw_hwmon/guard_band_mbps + echo 250 > $npubw/bw_hwmon/up_scale + echo 0 > $npubw/bw_hwmon/idle_mbps + echo 40 > $npubw/polling_interval + echo 0 > /sys/devices/virtual/npu/msm_npu/pwr + done + + for npullccbw in $device/*npu*-llcc-bw/devfreq/*npu*-llcc-bw + do + echo 1 > /sys/devices/virtual/npu/msm_npu/pwr + echo "bw_hwmon" > $npullccbw/governor + echo "2288 4577 7110 9155 12298 14236 16265" > $npullccbw/bw_hwmon/mbps_zones + echo 4 > $npullccbw/bw_hwmon/sample_ms + echo 100 > $npullccbw/bw_hwmon/io_percent + echo 20 > $npullccbw/bw_hwmon/hist_memory + echo 10 > $npullccbw/bw_hwmon/hyst_length + echo 30 > $npullccbw/bw_hwmon/down_thres + echo 0 > $npullccbw/bw_hwmon/guard_band_mbps + echo 250 > $npullccbw/bw_hwmon/up_scale + echo 40 > $npullccbw/polling_interval + echo 0 > /sys/devices/virtual/npu/msm_npu/pwr + done + done + # memlat specific settings are moved to seperate file under + # device/target specific folder + setprop vendor.dcvs.prop 1 + + # cpuset parameters + echo 0-5 > /dev/cpuset/background/cpus + echo 0-5 > /dev/cpuset/system-background/cpus + + # Turn off scheduler boost at the end + echo 0 > /proc/sys/kernel/sched_boost + + # Turn off sleep modes + echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled + ;; + esac +esac + +case "$target" in + "bengal") + + if [ -f /sys/devices/soc0/soc_id ]; then + soc_id=`cat /sys/devices/soc0/soc_id` + else + soc_id=`cat /sys/devices/system/soc/soc0/id` + fi + + case "$soc_id" in + "417" | "420" | "444" | "445" | "469" | "470" ) + + # Core control is temporarily disabled till bring up + echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable + echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus + # Core control parameters on big + echo 40 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres + echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres + echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms + echo 4 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres + + # Setting b.L scheduler parameters + echo 67 > /proc/sys/kernel/sched_downmigrate + echo 77 > /proc/sys/kernel/sched_upmigrate + echo 85 > /proc/sys/kernel/sched_group_downmigrate + echo 100 > /proc/sys/kernel/sched_group_upmigrate + + # cpuset settings + echo 0-3 > /dev/cpuset/background/cpus + echo 0-3 > /dev/cpuset/system-background/cpus + + + # configure governor settings for little cluster + echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us + echo 1305600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq + echo 614400 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rtg_boost_freq + + # configure governor settings for big cluster + echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/down_rate_limit_us + echo 1401600 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq + echo 1056000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq + echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/rtg_boost_freq + + echo "0:1017600" > /sys/devices/system/cpu/cpu_boost/input_boost_freq + echo 80 > /sys/devices/system/cpu/cpu_boost/input_boost_ms + + echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks + + # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable. + echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu4/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu5/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost + echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load + echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_load + + # Set Memory parameters + configure_memory_parameters + + # Enable bus-dcvs + ddr_type=`od -An -tx /proc/device-tree/memory/ddr_device_type` + ddr_type4="07" + ddr_type3="05" + + for device in /sys/devices/platform/soc + do + for cpubw in $device/*cpu-cpu-ddr-bw/devfreq/*cpu-cpu-ddr-bw + do + echo "bw_hwmon" > $cpubw/governor + echo 50 > $cpubw/polling_interval + echo 762 > $cpubw/min_freq + if [ ${ddr_type:4:2} == $ddr_type4 ]; then + # LPDDR4 + echo "2288 3440 4173 5195 5859 7759 10322 11863 13763" > $cpubw/bw_hwmon/mbps_zones + echo 85 > $cpubw/bw_hwmon/io_percent + fi + if [ ${ddr_type:4:2} == $ddr_type3 ]; then + # LPDDR3 + echo "1525 3440 5195 5859 7102" > $cpubw/bw_hwmon/mbps_zones + echo 34 > $cpubw/bw_hwmon/io_percent + fi + echo 4 > $cpubw/bw_hwmon/sample_ms + echo 90 > $cpubw/bw_hwmon/decay_rate + echo 190 > $cpubw/bw_hwmon/bw_step + echo 20 > $cpubw/bw_hwmon/hist_memory + echo 0 > $cpubw/bw_hwmon/hyst_length + echo 80 > $cpubw/bw_hwmon/down_thres + echo 0 > $cpubw/bw_hwmon/guard_band_mbps + echo 250 > $cpubw/bw_hwmon/up_scale + echo 1600 > $cpubw/bw_hwmon/idle_mbps + done + + done + # memlat specific settings are moved to seperate file under + # device/target specific folder + setprop vendor.dcvs.prop 1 + + # colcoation v3 disabled + echo 0 > /proc/sys/kernel/sched_min_task_util_for_boost + echo 0 > /proc/sys/kernel/sched_min_task_util_for_colocation + + # Turn off scheduler boost at the end + echo 0 > /proc/sys/kernel/sched_boost + + # Turn on sleep modes + echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled + + ;; + esac + + # Scuba perf/power tunings + case "$soc_id" in + "441" | "473" | "474" ) + + # Quad-core device. disable core_ctl + echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable + + # Configure schedutil governor settings + echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us + echo 1305600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq + echo 614400 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rtg_boost_freq + + # sched_load_boost as -6 is equivalent to target load as 85. + echo 0 > /proc/sys/kernel/sched_boost + echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost + echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load + + # Set Memory parameters + configure_memory_parameters + + # Enable bus-dcvs + ddr_type=`od -An -tx /proc/device-tree/memory/ddr_device_type` + ddr_type4="07" + ddr_type3="05" + + for device in /sys/devices/platform/soc + do + for cpubw in $device/*cpu-cpu-ddr-bw/devfreq/*cpu-cpu-ddr-bw + do + echo "bw_hwmon" > $cpubw/governor + echo 50 > $cpubw/polling_interval + echo 762 > $cpubw/min_freq + if [ ${ddr_type:4:2} == $ddr_type4 ]; then + # LPDDR4 + echo "2288 3440 4173 5195 5859 7759 10322 11863 13763" > $cpubw/bw_hwmon/mbps_zones + echo 85 > $cpubw/bw_hwmon/io_percent + fi + if [ ${ddr_type:4:2} == $ddr_type3 ]; then + # LPDDR3 + echo "1525 3440 5195 5859 7102" > $cpubw/bw_hwmon/mbps_zones + echo 34 > $cpubw/bw_hwmon/io_percent + fi + echo 4 > $cpubw/bw_hwmon/sample_ms + echo 90 > $cpubw/bw_hwmon/decay_rate + echo 190 > $cpubw/bw_hwmon/bw_step + echo 20 > $cpubw/bw_hwmon/hist_memory + echo 0 > $cpubw/bw_hwmon/hyst_length + echo 80 > $cpubw/bw_hwmon/down_thres + echo 0 > $cpubw/bw_hwmon/guard_band_mbps + echo 250 > $cpubw/bw_hwmon/up_scale + echo 1600 > $cpubw/bw_hwmon/idle_mbps + done + + for memlat in $device/*cpu*-lat/devfreq/*cpu*-lat + do + echo "mem_latency" > $memlat/governor + echo 10 > $memlat/polling_interval + echo 400 > $memlat/mem_latency/ratio_ceil + done + + for latfloor in $device/*cpu*-ddr-latfloor*/devfreq/*cpu-ddr-latfloor* + do + echo "compute" > $latfloor/governor + echo 10 > $latfloor/polling_interval + done + done + + # Disable low power modes. Enable it after LPM stable + echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled + ;; + esac + + ;; +esac + + +#Apply settings for atoll +case "$target" in + "atoll") + + # Core control parameters on silver + echo 0 0 0 0 1 1 > /sys/devices/system/cpu/cpu0/core_ctl/not_preferred + echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus + echo 60 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres + echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres + echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms + echo 8 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres + echo 0 > /sys/devices/system/cpu/cpu6/core_ctl/enable + + # Setting b.L scheduler parameters + # default sched up and down migrate values are 95 and 85 + echo 65 > /proc/sys/kernel/sched_downmigrate + echo 71 > /proc/sys/kernel/sched_upmigrate + # default sched up and down migrate values are 100 and 95 + echo 85 > /proc/sys/kernel/sched_group_downmigrate + echo 100 > /proc/sys/kernel/sched_group_upmigrate + echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks + + #colocation v3 settings + echo 740000 > /proc/sys/kernel/sched_little_cluster_coloc_fmin_khz + + # configure governor settings for little cluster + echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us + echo 1248000 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq + echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + + # configure governor settings for big cluster + echo "schedutil" > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/down_rate_limit_us + echo 1267200 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_freq + echo 652800 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq + + # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable. + echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost + echo 85 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_load + + echo "0:1248000" > /sys/module/cpu_boost/parameters/input_boost_freq + echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms + + # Set Memory parameters + configure_memory_parameters + + # Enable bus-dcvs + for device in /sys/devices/platform/soc + do + for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw + do + echo "bw_hwmon" > $cpubw/governor + echo "2288 4577 7110 9155 12298 14236" > $cpubw/bw_hwmon/mbps_zones + echo 4 > $cpubw/bw_hwmon/sample_ms + echo 68 > $cpubw/bw_hwmon/io_percent + echo 20 > $cpubw/bw_hwmon/hist_memory + echo 0 > $cpubw/bw_hwmon/hyst_length + echo 80 > $cpubw/bw_hwmon/down_thres + echo 0 > $cpubw/bw_hwmon/guard_band_mbps + echo 250 > $cpubw/bw_hwmon/up_scale + echo 1600 > $cpubw/bw_hwmon/idle_mbps + echo 50 > $cpubw/polling_interval + done + + for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw + do + echo "bw_hwmon" > $llccbw/governor + echo "1144 1720 2086 2929 3879 5931 6881 8137" > $llccbw/bw_hwmon/mbps_zones + echo 4 > $llccbw/bw_hwmon/sample_ms + echo 68 > $llccbw/bw_hwmon/io_percent + echo 20 > $llccbw/bw_hwmon/hist_memory + echo 0 > $llccbw/bw_hwmon/hyst_length + echo 80 > $llccbw/bw_hwmon/down_thres + echo 0 > $llccbw/bw_hwmon/guard_band_mbps + echo 250 > $llccbw/bw_hwmon/up_scale + echo 1600 > $llccbw/bw_hwmon/idle_mbps + echo 40 > $llccbw/polling_interval + done + + for npubw in $device/*npu*-npu-ddr-bw/devfreq/*npu*-npu-ddr-bw + do + echo 1 > /sys/devices/virtual/npu/msm_npu/pwr + echo "bw_hwmon" > $npubw/governor + echo "1144 1720 2086 2929 3879 5931 6881 8137" > $npubw/bw_hwmon/mbps_zones + echo 4 > $npubw/bw_hwmon/sample_ms + echo 80 > $npubw/bw_hwmon/io_percent + echo 20 > $npubw/bw_hwmon/hist_memory + echo 10 > $npubw/bw_hwmon/hyst_length + echo 30 > $npubw/bw_hwmon/down_thres + echo 0 > $npubw/bw_hwmon/guard_band_mbps + echo 250 > $npubw/bw_hwmon/up_scale + echo 0 > $npubw/bw_hwmon/idle_mbps + echo 40 > $npubw/polling_interval + echo 0 > /sys/devices/virtual/npu/msm_npu/pwr + done + + done + + # memlat specific settings are moved to seperate file under + # device/target specific folder + setprop vendor.dcvs.prop 1 + + # cpuset parameters + echo 0-5 > /dev/cpuset/background/cpus + echo 0-5 > /dev/cpuset/system-background/cpus + + # Turn off scheduler boost at the end + echo 0 > /proc/sys/kernel/sched_boost + + # Turn on sleep modes + echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled + ;; +esac + + +case "$target" in + "qcs605") + + #Apply settings for qcs605 + # Set the default IRQ affinity to the silver cluster. When a + # CPU is isolated/hotplugged, the IRQ affinity is adjusted + # to one of the CPU from the default IRQ affinity mask. + echo 3f > /proc/irq/default_smp_affinity + + if [ -f /sys/devices/soc0/soc_id ]; then + soc_id=`cat /sys/devices/soc0/soc_id` + else + soc_id=`cat /sys/devices/system/soc/soc0/id` + fi + + if [ -f /sys/devices/soc0/hw_platform ]; then + hw_platform=`cat /sys/devices/soc0/hw_platform` + else + hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform` + fi + + if [ -f /sys/devices/soc0/platform_subtype_id ]; then + platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id` + fi + + case "$soc_id" in + "347" ) + + # Start Host based Touch processing + case "$hw_platform" in + "Surf" | "RCM" | "QRD" ) + start_hbtp + ;; + "MTP" ) + if [ $platform_subtype_id != 5 ]; then + start_hbtp + fi + ;; + esac + + # Core control parameters on silver + echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus + echo 60 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres + echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres + echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms + echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster + echo 8 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres + + # Setting b.L scheduler parameters + echo 96 > /proc/sys/kernel/sched_upmigrate + echo 90 > /proc/sys/kernel/sched_downmigrate + echo 140 > /proc/sys/kernel/sched_group_upmigrate + echo 120 > /proc/sys/kernel/sched_group_downmigrate + + # configure governor settings for little cluster + echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rate_limit_us + echo 1209600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq + echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + + # configure governor settings for big cluster + echo "schedutil" > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/rate_limit_us + echo 1344000 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_freq + echo 825600 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq + + echo "0:1209600" > /sys/module/cpu_boost/parameters/input_boost_freq + echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms + + # Enable bus-dcvs + for cpubw in /sys/class/devfreq/*qcom,cpubw* + do + echo "bw_hwmon" > $cpubw/governor + echo 50 > $cpubw/polling_interval + echo "1144 1720 2086 2929 3879 5931 6881" > $cpubw/bw_hwmon/mbps_zones + echo 4 > $cpubw/bw_hwmon/sample_ms + echo 68 > $cpubw/bw_hwmon/io_percent + echo 20 > $cpubw/bw_hwmon/hist_memory + echo 0 > $cpubw/bw_hwmon/hyst_length + echo 80 > $cpubw/bw_hwmon/down_thres + echo 0 > $cpubw/bw_hwmon/low_power_ceil_mbps + echo 68 > $cpubw/bw_hwmon/low_power_io_percent + echo 20 > $cpubw/bw_hwmon/low_power_delay + echo 0 > $cpubw/bw_hwmon/guard_band_mbps + echo 250 > $cpubw/bw_hwmon/up_scale + echo 1600 > $cpubw/bw_hwmon/idle_mbps + done + + #Enable mem_latency governor for DDR scaling + for memlat in /sys/class/devfreq/*qcom,memlat-cpu* + do + echo "mem_latency" > $memlat/governor + echo 10 > $memlat/polling_interval + echo 400 > $memlat/mem_latency/ratio_ceil + done + + #Enable mem_latency governor for L3 scaling + for memlat in /sys/class/devfreq/*qcom,l3-cpu* + do + echo "mem_latency" > $memlat/governor + echo 10 > $memlat/polling_interval + echo 400 > $memlat/mem_latency/ratio_ceil + done + + echo "cpufreq" > /sys/class/devfreq/soc:qcom,mincpubw/governor + + # cpuset parameters + echo 0-5 > /dev/cpuset/background/cpus + echo 0-5 > /dev/cpuset/system-background/cpus + + # Turn off scheduler boost at the end + echo 0 > /proc/sys/kernel/sched_boost + + # Turn on sleep modes. + echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled + echo 100 > /proc/sys/vm/swappiness + ;; + esac + ;; +esac + +case "$target" in + "apq8084") + echo 4 > /sys/module/lpm_levels/enable_low_power/l2 + echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu0/retention/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu1/retention/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu2/retention/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu3/retention/idle_enabled + echo 0 > /sys/module/msm_thermal/core_control/enabled + echo 1 > /sys/devices/system/cpu/cpu1/online + echo 1 > /sys/devices/system/cpu/cpu2/online + echo 1 > /sys/devices/system/cpu/cpu3/online + for devfreq_gov in /sys/class/devfreq/qcom,cpubw*/governor + do + echo "cpubw_hwmon" > $devfreq_gov + done + echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo "interactive" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + echo "interactive" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + echo "interactive" > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + echo "20000 1400000:40000 1700000:20000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay + echo 90 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load + echo 1497600 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq + echo "85 1500000:90 1800000:70" > /sys/devices/system/cpu/cpufreq/interactive/target_loads + echo 40000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time + echo 20 > /sys/module/cpu_boost/parameters/boost_ms + echo 1728000 > /sys/module/cpu_boost/parameters/sync_threshold + echo 100000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor + echo 1497600 > /sys/module/cpu_boost/parameters/input_boost_freq + echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms + echo 1 > /dev/cpuctl/apps/cpu.notify_on_migrate + echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + echo 300000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq + echo 300000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq + echo 300000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq + echo 1 > /sys/module/msm_thermal/core_control/enabled + chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq + chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + chown -h root.system /sys/devices/system/cpu/mfreq + chmod -h 220 /sys/devices/system/cpu/mfreq + chown -h root.system /sys/devices/system/cpu/cpu1/online + chown -h root.system /sys/devices/system/cpu/cpu2/online + chown -h root.system /sys/devices/system/cpu/cpu3/online + chmod -h 664 /sys/devices/system/cpu/cpu1/online + chmod -h 664 /sys/devices/system/cpu/cpu2/online + chmod -h 664 /sys/devices/system/cpu/cpu3/online + ;; +esac + +case "$target" in + "mpq8092") + echo 4 > /sys/module/lpm_levels/enable_low_power/l2 + echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled + echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu0/retention/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu1/retention/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu2/retention/idle_enabled + echo 1 > /sys/module/msm_pm/modes/cpu3/retention/idle_enabled + echo 0 > /sys/module/msm_thermal/core_control/enabled + echo 1 > /sys/devices/system/cpu/cpu1/online + echo 1 > /sys/devices/system/cpu/cpu2/online + echo 1 > /sys/devices/system/cpu/cpu3/online + echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo "ondemand" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + echo "ondemand" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + echo "ondemand" > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate + echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold + echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy + echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + echo 300000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq + echo 300000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq + echo 300000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq + echo 1 > /sys/module/msm_thermal/core_control/enabled + chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq + chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + chown -h root.system /sys/devices/system/cpu/mfreq + chmod -h 220 /sys/devices/system/cpu/mfreq + chown -h root.system /sys/devices/system/cpu/cpu1/online + chown -h root.system /sys/devices/system/cpu/cpu2/online + chown -h root.system /sys/devices/system/cpu/cpu3/online + chmod -h 664 /sys/devices/system/cpu/cpu1/online + chmod -h 664 /sys/devices/system/cpu/cpu2/online + chmod -h 664 /sys/devices/system/cpu/cpu3/online + ;; +esac + +case "$target" in + "msm8992") + # disable thermal bcl hotplug to switch governor + echo 0 > /sys/module/msm_thermal/core_control/enabled + echo -n disable > /sys/devices/soc.*/qcom,bcl.*/mode + bcl_hotplug_mask=`cat /sys/devices/soc.*/qcom,bcl.*/hotplug_mask` + echo 0 > /sys/devices/soc.*/qcom,bcl.*/hotplug_mask + echo -n enable > /sys/devices/soc.*/qcom,bcl.*/mode + echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled + # configure governor settings for little cluster + echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load + echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif + echo 19000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay + echo 90 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load + echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate + echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq + echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy + echo 80 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads + echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time + echo 80000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis + echo 384000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + # online CPU4 + echo 1 > /sys/devices/system/cpu/cpu4/online + # configure governor settings for big cluster + echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load + echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif + echo 19000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay + echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load + echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate + echo 1536000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq + echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy + echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads + echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time + echo 80000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/max_freq_hysteresis + echo 384000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq + # re-enable thermal and BCL hotplug + echo 1 > /sys/module/msm_thermal/core_control/enabled + echo -n disable > /sys/devices/soc.*/qcom,bcl.*/mode + echo $bcl_hotplug_mask > /sys/devices/soc.*/qcom,bcl.*/hotplug_mask + echo $bcl_soc_hotplug_mask > /sys/devices/soc.*/qcom,bcl.*/hotplug_soc_mask + echo -n enable > /sys/devices/soc.*/qcom,bcl.*/mode + # plugin remaining A57s + echo 1 > /sys/devices/system/cpu/cpu5/online + # input boost configuration + echo 0:1248000 > /sys/module/cpu_boost/parameters/input_boost_freq + echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms + # Enable task migration fixups in the scheduler + echo 1 > /proc/sys/kernel/sched_migration_fixup + for devfreq_gov in /sys/class/devfreq/qcom,cpubw*/governor + do + echo "bw_hwmon" > $devfreq_gov + done + #enable rps static configuration + echo 8 > /sys/class/net/rmnet_ipa0/queues/rx-0/rps_cpus + echo 30 > /proc/sys/kernel/sched_small_task + ;; +esac + +case "$target" in + "msm8994") + # ensure at most one A57 is online when thermal hotplug is disabled + echo 0 > /sys/devices/system/cpu/cpu5/online + echo 0 > /sys/devices/system/cpu/cpu6/online + echo 0 > /sys/devices/system/cpu/cpu7/online + # in case CPU4 is online, limit its frequency + echo 960000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq + # Limit A57 max freq from msm_perf module in case CPU 4 is offline + echo "4:960000 5:960000 6:960000 7:960000" > /sys/module/msm_performance/parameters/cpu_max_freq + # disable thermal bcl hotplug to switch governor + echo 0 > /sys/module/msm_thermal/core_control/enabled + for mode in /sys/devices/soc.0/qcom,bcl.*/mode + do + echo -n disable > $mode + done + for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask + do + bcl_hotplug_mask=`cat $hotplug_mask` + echo 0 > $hotplug_mask + done + for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask + do + bcl_soc_hotplug_mask=`cat $hotplug_soc_mask` + echo 0 > $hotplug_soc_mask + done + for mode in /sys/devices/soc.0/qcom,bcl.*/mode + do + echo -n enable > $mode + done + # configure governor settings for little cluster + echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load + echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif + echo 19000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay + echo 90 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load + echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate + echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq + echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy + echo 80 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads + echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time + echo 80000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis + echo 384000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + # online CPU4 + echo 1 > /sys/devices/system/cpu/cpu4/online + # Best effort limiting for first time boot if msm_performance module is absent + echo 960000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq + # configure governor settings for big cluster + echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load + echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif + echo "19000 1400000:39000 1700000:19000" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay + echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load + echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate + echo 1248000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq + echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy + echo "85 1500000:90 1800000:70" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads + echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time + echo 80000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/max_freq_hysteresis + echo 384000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq + # restore A57's max + cat /sys/devices/system/cpu/cpu4/cpufreq/cpuinfo_max_freq > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq + # re-enable thermal and BCL hotplug + echo 1 > /sys/module/msm_thermal/core_control/enabled + for mode in /sys/devices/soc.0/qcom,bcl.*/mode + do + echo -n disable > $mode + done + for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask + do + echo $bcl_hotplug_mask > $hotplug_mask + done + for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask + do + echo $bcl_soc_hotplug_mask > $hotplug_soc_mask + done + for mode in /sys/devices/soc.0/qcom,bcl.*/mode + do + echo -n enable > $mode + done + # plugin remaining A57s + echo 1 > /sys/devices/system/cpu/cpu5/online + echo 1 > /sys/devices/system/cpu/cpu6/online + echo 1 > /sys/devices/system/cpu/cpu7/online + echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled + # Restore CPU 4 max freq from msm_performance + echo "4:4294967295 5:4294967295 6:4294967295 7:4294967295" > /sys/module/msm_performance/parameters/cpu_max_freq + # input boost configuration + echo 0:1344000 > /sys/module/cpu_boost/parameters/input_boost_freq + echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms + # Setting b.L scheduler parameters + echo 1 > /proc/sys/kernel/sched_migration_fixup + echo 30 > /proc/sys/kernel/sched_small_task + echo 20 > /proc/sys/kernel/sched_mostly_idle_load + echo 3 > /proc/sys/kernel/sched_mostly_idle_nr_run + echo 99 > /proc/sys/kernel/sched_upmigrate + echo 85 > /proc/sys/kernel/sched_downmigrate + echo 400000 > /proc/sys/kernel/sched_freq_inc_notify + echo 400000 > /proc/sys/kernel/sched_freq_dec_notify + #enable rps static configuration + echo 8 > /sys/class/net/rmnet_ipa0/queues/rx-0/rps_cpus + for devfreq_gov in /sys/class/devfreq/qcom,cpubw*/governor + do + echo "bw_hwmon" > $devfreq_gov + done + ;; +esac + +case "$target" in + "msm8996") + # disable thermal bcl hotplug to switch governor + echo 0 > /sys/module/msm_thermal/core_control/enabled + echo -n disable > /sys/devices/soc/soc:qcom,bcl/mode + bcl_hotplug_mask=`cat /sys/devices/soc/soc:qcom,bcl/hotplug_mask` + echo 0 > /sys/devices/soc/soc:qcom,bcl/hotplug_mask + bcl_soc_hotplug_mask=`cat /sys/devices/soc/soc:qcom,bcl/hotplug_soc_mask` + echo 0 > /sys/devices/soc/soc:qcom,bcl/hotplug_soc_mask + echo -n enable > /sys/devices/soc/soc:qcom,bcl/mode + # set sync wakee policy tunable + echo 1 > /proc/sys/kernel/sched_prefer_sync_wakee_to_waker + # configure governor settings for little cluster + echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load + echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif + echo 19000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay + echo 90 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load + echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate + echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq + echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy + echo 80 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads + echo 19000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time + echo 79000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis + echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/ignore_hispeed_on_notif + # online CPU2 + echo 1 > /sys/devices/system/cpu/cpu2/online + # configure governor settings for big cluster + echo "interactive" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + echo 1 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/use_sched_load + echo 1 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/use_migration_notif + echo "19000 1400000:39000 1700000:19000 2100000:79000" > /sys/devices/system/cpu/cpu2/cpufreq/interactive/above_hispeed_delay + echo 90 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/go_hispeed_load + echo 20000 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/timer_rate + echo 1248000 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/hispeed_freq + echo 1 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/io_is_busy + echo "85 1500000:90 1800000:70 2100000:95" > /sys/devices/system/cpu/cpu2/cpufreq/interactive/target_loads + echo 19000 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/min_sample_time + echo 79000 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/max_freq_hysteresis + echo 300000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq + echo 1 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/ignore_hispeed_on_notif + # re-enable thermal and BCL hotplug + echo 1 > /sys/module/msm_thermal/core_control/enabled + echo -n disable > /sys/devices/soc/soc:qcom,bcl/mode + echo $bcl_hotplug_mask > /sys/devices/soc/soc:qcom,bcl/hotplug_mask + echo $bcl_soc_hotplug_mask > /sys/devices/soc/soc:qcom,bcl/hotplug_soc_mask + echo -n enable > /sys/devices/soc/soc:qcom,bcl/mode + # input boost configuration + echo "0:1324800 2:1324800" > /sys/module/cpu_boost/parameters/input_boost_freq + echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms + # Setting b.L scheduler parameters + echo 0 > /proc/sys/kernel/sched_boost + echo 1 > /proc/sys/kernel/sched_migration_fixup + echo 45 > /proc/sys/kernel/sched_downmigrate + echo 45 > /proc/sys/kernel/sched_upmigrate + echo 400000 > /proc/sys/kernel/sched_freq_inc_notify + echo 400000 > /proc/sys/kernel/sched_freq_dec_notify + echo 3 > /proc/sys/kernel/sched_spill_nr_run + echo 100 > /proc/sys/kernel/sched_init_task_load + # Enable bus-dcvs + for cpubw in /sys/class/devfreq/*qcom,cpubw* + do + echo "bw_hwmon" > $cpubw/governor + echo 50 > $cpubw/polling_interval + echo 1525 > $cpubw/min_freq + echo "1525 5195 11863 13763" > $cpubw/bw_hwmon/mbps_zones + echo 4 > $cpubw/bw_hwmon/sample_ms + echo 34 > $cpubw/bw_hwmon/io_percent + echo 20 > $cpubw/bw_hwmon/hist_memory + echo 10 > $cpubw/bw_hwmon/hyst_length + echo 0 > $cpubw/bw_hwmon/low_power_ceil_mbps + echo 34 > $cpubw/bw_hwmon/low_power_io_percent + echo 20 > $cpubw/bw_hwmon/low_power_delay + echo 0 > $cpubw/bw_hwmon/guard_band_mbps + echo 250 > $cpubw/bw_hwmon/up_scale + echo 1600 > $cpubw/bw_hwmon/idle_mbps + done + + for memlat in /sys/class/devfreq/*qcom,memlat-cpu* + do + echo "mem_latency" > $memlat/governor + echo 10 > $memlat/polling_interval + done + echo "cpufreq" > /sys/class/devfreq/soc:qcom,mincpubw/governor + + soc_revision=`cat /sys/devices/soc0/revision` + if [ "$soc_revision" == "2.0" ]; then + #Disable suspend for v2.0 + echo pwr_dbg > /sys/power/wake_lock + elif [ "$soc_revision" == "2.1" ]; then + # Enable C4.D4.E4.M3 LPM modes + # Disable D3 state + echo 0 > /sys/module/lpm_levels/system/pwr/pwr-l2-gdhs/idle_enabled + echo 0 > /sys/module/lpm_levels/system/perf/perf-l2-gdhs/idle_enabled + # Disable DEF-FPC mode + echo N > /sys/module/lpm_levels/system/pwr/cpu0/fpc-def/idle_enabled + echo N > /sys/module/lpm_levels/system/pwr/cpu1/fpc-def/idle_enabled + echo N > /sys/module/lpm_levels/system/perf/cpu2/fpc-def/idle_enabled + echo N > /sys/module/lpm_levels/system/perf/cpu3/fpc-def/idle_enabled + else + # Enable all LPMs by default + # This will enable C4, D4, D3, E4 and M3 LPMs + echo N > /sys/module/lpm_levels/parameters/sleep_disabled + fi + echo N > /sys/module/lpm_levels/parameters/sleep_disabled + # Starting io prefetcher service + start iop + + # Set Memory parameters + configure_memory_parameters + ;; +esac + +case "$target" in + "sdm845") + + # Set the default IRQ affinity to the silver cluster. When a + # CPU is isolated/hotplugged, the IRQ affinity is adjusted + # to one of the CPU from the default IRQ affinity mask. + echo f > /proc/irq/default_smp_affinity + + if [ -f /sys/devices/soc0/soc_id ]; then + soc_id=`cat /sys/devices/soc0/soc_id` + else + soc_id=`cat /sys/devices/system/soc/soc0/id` + fi + + if [ -f /sys/devices/soc0/hw_platform ]; then + hw_platform=`cat /sys/devices/soc0/hw_platform` + fi + + if [ -f /sys/devices/soc0/platform_subtype_id ]; then + platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id` + fi + + case "$soc_id" in + "321" | "341") + # Start Host based Touch processing + case "$hw_platform" in + "QRD" ) + case "$platform_subtype_id" in + "32") #QVR845 do nothing + ;; + *) + start_hbtp + ;; + esac + ;; + *) + start_hbtp + ;; + esac + ;; + esac + # Core control parameters + echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus + echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres + echo 30 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres + echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms + echo 1 > /sys/devices/system/cpu/cpu4/core_ctl/is_big_cluster + echo 4 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres + + # Setting b.L scheduler parameters + echo 95 > /proc/sys/kernel/sched_upmigrate + echo 85 > /proc/sys/kernel/sched_downmigrate + echo 100 > /proc/sys/kernel/sched_group_upmigrate + echo 95 > /proc/sys/kernel/sched_group_downmigrate + echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks + + # configure governor settings for little cluster + echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rate_limit_us + echo 1209600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq + echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/pl + echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + + # configure governor settings for big cluster + echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/rate_limit_us + echo 1574400 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq + echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/pl + echo "0:1324800" > /sys/module/cpu_boost/parameters/input_boost_freq + echo 120 > /sys/module/cpu_boost/parameters/input_boost_ms + # Limit the min frequency to 825MHz + echo 825000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq + + # Enable oom_reaper + echo 1 > /sys/module/lowmemorykiller/parameters/oom_reaper + + # Enable bus-dcvs + for cpubw in /sys/class/devfreq/*qcom,cpubw* + do + echo "bw_hwmon" > $cpubw/governor + echo 50 > $cpubw/polling_interval + echo "2288 4577 6500 8132 9155 10681" > $cpubw/bw_hwmon/mbps_zones + echo 4 > $cpubw/bw_hwmon/sample_ms + echo 50 > $cpubw/bw_hwmon/io_percent + echo 20 > $cpubw/bw_hwmon/hist_memory + echo 10 > $cpubw/bw_hwmon/hyst_length + echo 0 > $cpubw/bw_hwmon/guard_band_mbps + echo 250 > $cpubw/bw_hwmon/up_scale + echo 1600 > $cpubw/bw_hwmon/idle_mbps + done + + for llccbw in /sys/class/devfreq/*qcom,llccbw* + do + echo "bw_hwmon" > $llccbw/governor + echo 50 > $llccbw/polling_interval + echo "1720 2929 3879 5931 6881" > $llccbw/bw_hwmon/mbps_zones + echo 4 > $llccbw/bw_hwmon/sample_ms + echo 80 > $llccbw/bw_hwmon/io_percent + echo 20 > $llccbw/bw_hwmon/hist_memory + echo 10 > $llccbw/bw_hwmon/hyst_length + echo 0 > $llccbw/bw_hwmon/guard_band_mbps + echo 250 > $llccbw/bw_hwmon/up_scale + echo 1600 > $llccbw/bw_hwmon/idle_mbps + done + + #Enable mem_latency governor for DDR scaling + for memlat in /sys/class/devfreq/*qcom,memlat-cpu* + do + echo "mem_latency" > $memlat/governor + echo 10 > $memlat/polling_interval + echo 400 > $memlat/mem_latency/ratio_ceil + done + + #Enable mem_latency governor for L3 scaling + for memlat in /sys/class/devfreq/*qcom,l3-cpu* + do + echo "mem_latency" > $memlat/governor + echo 10 > $memlat/polling_interval + echo 400 > $memlat/mem_latency/ratio_ceil + done + + #Enable userspace governor for L3 cdsp nodes + for l3cdsp in /sys/class/devfreq/*qcom,l3-cdsp* + do + echo "userspace" > $l3cdsp/governor + chown -h system $l3cdsp/userspace/set_freq + done + + #Gold L3 ratio ceil + echo 4000 > /sys/class/devfreq/soc:qcom,l3-cpu4/mem_latency/ratio_ceil + + echo "compute" > /sys/class/devfreq/soc:qcom,mincpubw/governor + echo 10 > /sys/class/devfreq/soc:qcom,mincpubw/polling_interval + + # cpuset parameters + echo 0-3 > /dev/cpuset/background/cpus + echo 0-3 > /dev/cpuset/system-background/cpus + + # Turn off scheduler boost at the end + echo 0 > /proc/sys/kernel/sched_boost + # Disable CPU Retention + echo N > /sys/module/lpm_levels/L3/cpu0/ret/idle_enabled + echo N > /sys/module/lpm_levels/L3/cpu1/ret/idle_enabled + echo N > /sys/module/lpm_levels/L3/cpu2/ret/idle_enabled + echo N > /sys/module/lpm_levels/L3/cpu3/ret/idle_enabled + echo N > /sys/module/lpm_levels/L3/cpu4/ret/idle_enabled + echo N > /sys/module/lpm_levels/L3/cpu5/ret/idle_enabled + echo N > /sys/module/lpm_levels/L3/cpu6/ret/idle_enabled + echo N > /sys/module/lpm_levels/L3/cpu7/ret/idle_enabled + echo N > /sys/module/lpm_levels/L3/l3-dyn-ret/idle_enabled + # Turn on sleep modes. + echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled + echo 100 > /proc/sys/vm/swappiness + echo 120 > /proc/sys/vm/watermark_scale_factor + ;; +esac + +case "$target" in + "msmnile") + # Core control parameters for gold + echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus + echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres + echo 30 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres + echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms + echo 3 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres + + # Core control parameters for gold+ + echo 0 > /sys/devices/system/cpu/cpu7/core_ctl/min_cpus + echo 60 > /sys/devices/system/cpu/cpu7/core_ctl/busy_up_thres + echo 30 > /sys/devices/system/cpu/cpu7/core_ctl/busy_down_thres + echo 100 > /sys/devices/system/cpu/cpu7/core_ctl/offline_delay_ms + echo 1 > /sys/devices/system/cpu/cpu7/core_ctl/task_thres + # Controls how many more tasks should be eligible to run on gold CPUs + # w.r.t number of gold CPUs available to trigger assist (max number of + # tasks eligible to run on previous cluster minus number of CPUs in + # the previous cluster). + # + # Setting to 1 by default which means there should be at least + # 4 tasks eligible to run on gold cluster (tasks running on gold cores + # plus misfit tasks on silver cores) to trigger assitance from gold+. + echo 1 > /sys/devices/system/cpu/cpu7/core_ctl/nr_prev_assist_thresh + + # Disable Core control on silver + echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable + + # Setting b.L scheduler parameters + echo 95 95 > /proc/sys/kernel/sched_upmigrate + echo 85 85 > /proc/sys/kernel/sched_downmigrate + echo 100 > /proc/sys/kernel/sched_group_upmigrate + echo 10 > /proc/sys/kernel/sched_group_downmigrate + echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks + + # cpuset parameters + echo 0-3 > /dev/cpuset/background/cpus + echo 0-3 > /dev/cpuset/system-background/cpus + + # Turn off scheduler boost at the end + echo 0 > /proc/sys/kernel/sched_boost + + # configure governor settings for silver cluster + echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor + echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us + echo 1209600 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq + echo 576000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq + echo 1 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl + + # configure governor settings for gold cluster + echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor + echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us + echo 1612800 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/hispeed_freq + echo 1 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/pl + + # configure governor settings for gold+ cluster + echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy7/scaling_governor + echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us + echo 1612800 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/hispeed_freq + echo 1 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/pl + + # configure input boost settings + echo "0:1324800" > /sys/module/cpu_boost/parameters/input_boost_freq + echo 120 > /sys/module/cpu_boost/parameters/input_boost_ms + + # Disable wsf, beacause we are using efk. + # wsf Range : 1..1000 So set to bare minimum value 1. + echo 1 > /proc/sys/vm/watermark_scale_factor + + echo 0-3 > /dev/cpuset/background/cpus + echo 0-3 > /dev/cpuset/system-background/cpus + + # Enable oom_reaper + if [ -f /sys/module/lowmemorykiller/parameters/oom_reaper ]; then + echo 1 > /sys/module/lowmemorykiller/parameters/oom_reaper + else + echo 1 > /proc/sys/vm/reap_mem_on_sigkill + fi + + # Enable bus-dcvs + for device in /sys/devices/platform/soc + do + for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw + do + echo "bw_hwmon" > $cpubw/governor + echo "2288 4577 7110 9155 12298 14236 15258" > $cpubw/bw_hwmon/mbps_zones + echo 4 > $cpubw/bw_hwmon/sample_ms + echo 50 > $cpubw/bw_hwmon/io_percent + echo 20 > $cpubw/bw_hwmon/hist_memory + echo 10 > $cpubw/bw_hwmon/hyst_length + echo 30 > $cpubw/bw_hwmon/down_thres + echo 0 > $cpubw/bw_hwmon/guard_band_mbps + echo 250 > $cpubw/bw_hwmon/up_scale + echo 1600 > $cpubw/bw_hwmon/idle_mbps + echo 14236 > $cpubw/max_freq + echo 40 > $cpubw/polling_interval + done + + for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw + do + echo "bw_hwmon" > $llccbw/governor + echo "1720 2929 3879 5931 6881 7980" > $llccbw/bw_hwmon/mbps_zones + echo 4 > $llccbw/bw_hwmon/sample_ms + echo 80 > $llccbw/bw_hwmon/io_percent + echo 20 > $llccbw/bw_hwmon/hist_memory + echo 10 > $llccbw/bw_hwmon/hyst_length + echo 30 > $llccbw/bw_hwmon/down_thres + echo 0 > $llccbw/bw_hwmon/guard_band_mbps + echo 250 > $llccbw/bw_hwmon/up_scale + echo 1600 > $llccbw/bw_hwmon/idle_mbps + echo 6881 > $llccbw/max_freq + echo 40 > $llccbw/polling_interval + done + + for npubw in $device/*npu-npu-ddr-bw/devfreq/*npu-npu-ddr-bw + do + echo 1 > /sys/devices/virtual/npu/msm_npu/pwr + echo "bw_hwmon" > $npubw/governor + echo "1720 2929 3879 5931 6881 7980" > $npubw/bw_hwmon/mbps_zones + echo 4 > $npubw/bw_hwmon/sample_ms + echo 80 > $npubw/bw_hwmon/io_percent + echo 20 > $npubw/bw_hwmon/hist_memory + echo 6 > $npubw/bw_hwmon/hyst_length + echo 30 > $npubw/bw_hwmon/down_thres + echo 0 > $npubw/bw_hwmon/guard_band_mbps + echo 250 > $npubw/bw_hwmon/up_scale + echo 0 > $npubw/bw_hwmon/idle_mbps + echo 40 > $npubw/polling_interval + echo 0 > /sys/devices/virtual/npu/msm_npu/pwr + done + done + + # memlat specific settings are moved to seperate file under + # device/target specific folder + setprop vendor.dcvs.prop 1 + + if [ -f /sys/devices/soc0/hw_platform ]; then + hw_platform=`cat /sys/devices/soc0/hw_platform` + else + hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform` + fi + + if [ -f /sys/devices/soc0/platform_subtype_id ]; then + platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id` + fi + + case "$hw_platform" in + "MTP" | "Surf" | "RCM" ) + # Start Host based Touch processing + case "$platform_subtype_id" in + "0" | "1" | "2" | "3" | "4") + start_hbtp + ;; + esac + ;; + "HDK" ) + if [ -d /sys/kernel/hbtpsensor ] ; then + start_hbtp + fi + ;; + esac + + echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled + configure_memory_parameters + target_type=`getprop ro.hardware.type` + if [ "$target_type" == "automotive" ]; then + # update frequencies + configure_automotive_sku_parameters + fi + + ;; +esac + +case "$target" in + "sdmshrike") + # Core control parameters for gold + echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus + echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres + echo 30 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres + echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms + echo 3 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres + + # Core control parameters for gold+ + echo 0 > /sys/devices/system/cpu/cpu7/core_ctl/min_cpus + echo 60 > /sys/devices/system/cpu/cpu7/core_ctl/busy_up_thres + echo 30 > /sys/devices/system/cpu/cpu7/core_ctl/busy_down_thres + echo 100 > /sys/devices/system/cpu/cpu7/core_ctl/offline_delay_ms + echo 1 > /sys/devices/system/cpu/cpu7/core_ctl/task_thres + # Controls how many more tasks should be eligible to run on gold CPUs + # w.r.t number of gold CPUs available to trigger assist (max number of + # tasks eligible to run on previous cluster minus number of CPUs in + # the previous cluster). + # + # Setting to 1 by default which means there should be at least + # 4 tasks eligible to run on gold cluster (tasks running on gold cores + # plus misfit tasks on silver cores) to trigger assitance from gold+. + echo 1 > /sys/devices/system/cpu/cpu7/core_ctl/nr_prev_assist_thresh + + # Disable Core control on silver + echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable + + # Setting b.L scheduler parameters + echo 95 95 > /proc/sys/kernel/sched_upmigrate + echo 85 85 > /proc/sys/kernel/sched_downmigrate + echo 100 > /proc/sys/kernel/sched_group_upmigrate + echo 10 > /proc/sys/kernel/sched_group_downmigrate + echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks + + # cpuset parameters + echo 0-3 > /dev/cpuset/background/cpus + echo 0-3 > /dev/cpuset/system-background/cpus + + # Turn off scheduler boost at the end + echo 0 > /proc/sys/kernel/sched_boost + + # configure governor settings for silver cluster + echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor + echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us + echo 1209600 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq + echo 576000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq + echo 1 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl + + # configure governor settings for gold cluster + echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor + echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/down_rate_limit_us + echo 1612800 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/hispeed_freq + echo 1 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/pl + + # configure governor settings for gold+ cluster + echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy7/scaling_governor + echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/down_rate_limit_us + echo 1612800 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/hispeed_freq + echo 1 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/pl + + # configure input boost settings + echo "0:1324800" > /sys/module/cpu_boost/parameters/input_boost_freq + echo 120 > /sys/module/cpu_boost/parameters/input_boost_ms + + # Disable wsf, beacause we are using efk. + # wsf Range : 1..1000 So set to bare minimum value 1. + echo 1 > /proc/sys/vm/watermark_scale_factor + + echo 0-3 > /dev/cpuset/background/cpus + echo 0-3 > /dev/cpuset/system-background/cpus + + # Enable oom_reaper + if [ -f /sys/module/lowmemorykiller/parameters/oom_reaper ]; then + echo 1 > /sys/module/lowmemorykiller/parameters/oom_reaper + else + echo 1 > /proc/sys/vm/reap_mem_on_sigkill + fi + + # Enable bus-dcvs + for device in /sys/devices/platform/soc + do + for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw + do + echo "bw_hwmon" > $cpubw/governor + echo 40 > $cpubw/polling_interval + echo "2288 4577 7110 9155 12298 14236 15258" > $cpubw/bw_hwmon/mbps_zones + echo 4 > $cpubw/bw_hwmon/sample_ms + echo 50 > $cpubw/bw_hwmon/io_percent + echo 20 > $cpubw/bw_hwmon/hist_memory + echo 10 > $cpubw/bw_hwmon/hyst_length + echo 30 > $cpubw/bw_hwmon/down_thres + echo 0 > $cpubw/bw_hwmon/guard_band_mbps + echo 250 > $cpubw/bw_hwmon/up_scale + echo 1600 > $cpubw/bw_hwmon/idle_mbps + echo 14236 > $cpubw/max_freq + done + + for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw + do + echo "bw_hwmon" > $llccbw/governor + echo 40 > $llccbw/polling_interval + echo "1720 2929 3879 5931 6881 7980" > $llccbw/bw_hwmon/mbps_zones + echo 4 > $llccbw/bw_hwmon/sample_ms + echo 80 > $llccbw/bw_hwmon/io_percent + echo 20 > $llccbw/bw_hwmon/hist_memory + echo 10 > $llccbw/bw_hwmon/hyst_length + echo 30 > $llccbw/bw_hwmon/down_thres + echo 0 > $llccbw/bw_hwmon/guard_band_mbps + echo 250 > $llccbw/bw_hwmon/up_scale + echo 1600 > $llccbw/bw_hwmon/idle_mbps + echo 6881 > $llccbw/max_freq + done + + for npubw in $device/*npu-npu-ddr-bw/devfreq/*npu-npu-ddr-bw + do + echo 1 > /sys/devices/virtual/npu/msm_npu/pwr + echo "bw_hwmon" > $npubw/governor + echo 40 > $npubw/polling_interval + echo "1720 2929 3879 5931 6881 7980" > $npubw/bw_hwmon/mbps_zones + echo 4 > $npubw/bw_hwmon/sample_ms + echo 80 > $npubw/bw_hwmon/io_percent + echo 20 > $npubw/bw_hwmon/hist_memory + echo 6 > $npubw/bw_hwmon/hyst_length + echo 30 > $npubw/bw_hwmon/down_thres + echo 0 > $npubw/bw_hwmon/guard_band_mbps + echo 250 > $npubw/bw_hwmon/up_scale + echo 0 > $npubw/bw_hwmon/idle_mbps + echo 0 > /sys/devices/virtual/npu/msm_npu/pwr + done + + #Enable mem_latency governor for L3, LLCC, and DDR scaling + for memlat in $device/*cpu*-lat/devfreq/*cpu*-lat + do + echo "mem_latency" > $memlat/governor + echo 10 > $memlat/polling_interval + echo 400 > $memlat/mem_latency/ratio_ceil + done + + #Enable userspace governor for L3 cdsp nodes + for l3cdsp in $device/*cdsp-cdsp-l3-lat/devfreq/*cdsp-cdsp-l3-lat + do + echo "cdspl3" > $l3cdsp/governor + done + + #Enable compute governor for gold latfloor + for latfloor in $device/*cpu-ddr-latfloor*/devfreq/*cpu-ddr-latfloor* + do + echo "compute" > $latfloor/governor + echo 10 > $latfloor/polling_interval + done + + #Gold L3 ratio ceil + for l3gold in $device/*cpu4-cpu-l3-lat/devfreq/*cpu4-cpu-l3-lat + do + echo 4000 > $l3gold/mem_latency/ratio_ceil + done + + #Prime L3 ratio ceil + for l3prime in $device/*cpu7-cpu-l3-lat/devfreq/*cpu7-cpu-l3-lat + do + echo 20000 > $l3prime/mem_latency/ratio_ceil + done + done + + if [ -f /sys/devices/soc0/hw_platform ]; then + hw_platform=`cat /sys/devices/soc0/hw_platform` + else + hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform` + fi + + if [ -f /sys/devices/soc0/platform_subtype_id ]; then + platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id` + fi + + case "$hw_platform" in + "MTP" | "Surf" | "RCM" ) + # Start Host based Touch processing + case "$platform_subtype_id" in + "0" | "1") + start_hbtp + ;; + esac + ;; + "HDK" ) + if [ -d /sys/kernel/hbtpsensor ] ; then + start_hbtp + fi + ;; + esac + + #Setting the min and max supported frequencies + reg_val=`cat /sys/devices/platform/soc/780130.qfprom/qfprom0/nvmem | od -An -t d4` + feature_id=$(((reg_val >> 20) & 0xFF)) + + #Setting the min supported frequencies + echo 1113600 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + echo 1171200 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq + echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/min_freq + echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu4-cpu-l3-lat/min_freq + echo 1651200000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/max_freq + echo 1651200000 > /sys/class/devfreq/soc\:qcom,cpu4-cpu-l3-lat/max_freq + #setting min gpu freq to 392 MHz + echo 4 > /sys/class/kgsl/kgsl-3d0/min_pwrlevel + if [ $feature_id == 0 ]; then + echo "feature_id is 0 for SA8195AA" + + #setting max cpu freq to 2.496GHz + echo 2496000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq + #setting max gpu freq to 530 MHz + echo 3 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel + echo {class:ddr, res:capped, val: 1804} > /sys/kernel/debug/aop_send_message + elif [ $feature_id == 1 ] || [ $feature_id == 2 ]; then + echo "feature_id is 1 for external SA8195AB" + echo "feature_id is 2 for internal SA8195AB" + + #setting max cpu freq to 2.496GHz + echo 2496000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq + #setting max gpu freq to 670 MHz + echo 0 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel + echo {class:ddr, res:capped, val: 2092} > /sys/kernel/debug/aop_send_message + elif [ $feature_id == 3 ]; then + echo "feature_id is 3 for external SA8195AC" + else + echo "unknown feature_id value" $feature_id + fi + + echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled + configure_memory_parameters + ;; +esac + +case "$target" in + "kona") + rev=`cat /sys/devices/soc0/revision` + ddr_type=`od -An -tx /proc/device-tree/memory/ddr_device_type` + ddr_type4="07" + ddr_type5="08" + + # Core control parameters for gold + echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus + echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres + echo 30 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres + echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms + echo 3 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres + + # Core control parameters for gold+ + echo 0 > /sys/devices/system/cpu/cpu7/core_ctl/min_cpus + echo 60 > /sys/devices/system/cpu/cpu7/core_ctl/busy_up_thres + echo 30 > /sys/devices/system/cpu/cpu7/core_ctl/busy_down_thres + echo 100 > /sys/devices/system/cpu/cpu7/core_ctl/offline_delay_ms + echo 1 > /sys/devices/system/cpu/cpu7/core_ctl/task_thres + # Controls how many more tasks should be eligible to run on gold CPUs + # w.r.t number of gold CPUs available to trigger assist (max number of + # tasks eligible to run on previous cluster minus number of CPUs in + # the previous cluster). + # + # Setting to 1 by default which means there should be at least + # 4 tasks eligible to run on gold cluster (tasks running on gold cores + # plus misfit tasks on silver cores) to trigger assitance from gold+. + echo 1 > /sys/devices/system/cpu/cpu7/core_ctl/nr_prev_assist_thresh + + # Disable Core control on silver + echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable + + # Setting b.L scheduler parameters + echo 95 95 > /proc/sys/kernel/sched_upmigrate + echo 85 85 > /proc/sys/kernel/sched_downmigrate + echo 100 > /proc/sys/kernel/sched_group_upmigrate + echo 85 > /proc/sys/kernel/sched_group_downmigrate + echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks + echo 400000000 > /proc/sys/kernel/sched_coloc_downmigrate_ns + + # cpuset parameters + echo 0-3 > /dev/cpuset/background/cpus + echo 0-3 > /dev/cpuset/system-background/cpus + + # Turn off scheduler boost at the end + echo 0 > /proc/sys/kernel/sched_boost + + # configure governor settings for silver cluster + echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor + echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/up_rate_limit_us + if [ $rev == "2.0" ] || [ $rev == "2.1" ]; then + echo 1248000 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq + else + echo 1228800 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq + fi + echo 691200 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq + echo 1 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl + + # configure input boost settings + echo "0:1324800" > /sys/devices/system/cpu/cpu_boost/input_boost_freq + echo 120 > /sys/devices/system/cpu/cpu_boost/input_boost_ms + + # configure governor settings for gold cluster + echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor + echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/down_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/up_rate_limit_us + echo 1574400 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/hispeed_freq + echo 1 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/pl + + # configure governor settings for gold+ cluster + echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy7/scaling_governor + echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/down_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/up_rate_limit_us + if [ $rev == "2.0" ] || [ $rev == "2.1" ]; then + echo 1632000 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/hispeed_freq + else + echo 1612800 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/hispeed_freq + fi + echo 1 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/pl + + # Enable bus-dcvs + for device in /sys/devices/platform/soc + do + for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw + do + echo "bw_hwmon" > $cpubw/governor + echo "4577 7110 9155 12298 14236 15258" > $cpubw/bw_hwmon/mbps_zones + echo 4 > $cpubw/bw_hwmon/sample_ms + echo 50 > $cpubw/bw_hwmon/io_percent + echo 20 > $cpubw/bw_hwmon/hist_memory + echo 10 > $cpubw/bw_hwmon/hyst_length + echo 30 > $cpubw/bw_hwmon/down_thres + echo 0 > $cpubw/bw_hwmon/guard_band_mbps + echo 250 > $cpubw/bw_hwmon/up_scale + echo 1600 > $cpubw/bw_hwmon/idle_mbps + echo 14236 > $cpubw/max_freq + echo 40 > $cpubw/polling_interval + done + + for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw + do + echo "bw_hwmon" > $llccbw/governor + if [ ${ddr_type:4:2} == $ddr_type4 ]; then + echo "1720 2086 2929 3879 5161 5931 6881 7980" > $llccbw/bw_hwmon/mbps_zones + elif [ ${ddr_type:4:2} == $ddr_type5 ]; then + echo "1720 2086 2929 3879 5931 6881 7980 10437" > $llccbw/bw_hwmon/mbps_zones + fi + echo 4 > $llccbw/bw_hwmon/sample_ms + echo 80 > $llccbw/bw_hwmon/io_percent + echo 20 > $llccbw/bw_hwmon/hist_memory + echo 10 > $llccbw/bw_hwmon/hyst_length + echo 30 > $llccbw/bw_hwmon/down_thres + echo 0 > $llccbw/bw_hwmon/guard_band_mbps + echo 250 > $llccbw/bw_hwmon/up_scale + echo 1600 > $llccbw/bw_hwmon/idle_mbps + echo 6881 > $llccbw/max_freq + echo 40 > $llccbw/polling_interval + done + + for npubw in $device/*npu*-ddr-bw/devfreq/*npu*-ddr-bw + do + echo 1 > /sys/devices/virtual/npu/msm_npu/pwr + echo "bw_hwmon" > $npubw/governor + if [ ${ddr_type:4:2} == $ddr_type4 ]; then + echo "1720 2086 2929 3879 5931 6881 7980" > $npubw/bw_hwmon/mbps_zones + elif [ ${ddr_type:4:2} == $ddr_type5 ]; then + echo "1720 2086 2929 3879 5931 6881 7980 10437" > $npubw/bw_hwmon/mbps_zones + fi + echo 4 > $npubw/bw_hwmon/sample_ms + echo 160 > $npubw/bw_hwmon/io_percent + echo 20 > $npubw/bw_hwmon/hist_memory + echo 10 > $npubw/bw_hwmon/hyst_length + echo 30 > $npubw/bw_hwmon/down_thres + echo 0 > $npubw/bw_hwmon/guard_band_mbps + echo 250 > $npubw/bw_hwmon/up_scale + echo 1600 > $npubw/bw_hwmon/idle_mbps + echo 40 > $npubw/polling_interval + echo 0 > /sys/devices/virtual/npu/msm_npu/pwr + done + + for npullccbw in $device/*npu*-llcc-bw/devfreq/*npu*-llcc-bw + do + echo 1 > /sys/devices/virtual/npu/msm_npu/pwr + echo "bw_hwmon" > $npullccbw/governor + echo "4577 7110 9155 12298 14236 15258" > $npullccbw/bw_hwmon/mbps_zones + echo 4 > $npullccbw/bw_hwmon/sample_ms + echo 160 > $npullccbw/bw_hwmon/io_percent + echo 20 > $npullccbw/bw_hwmon/hist_memory + echo 10 > $npullccbw/bw_hwmon/hyst_length + echo 30 > $npullccbw/bw_hwmon/down_thres + echo 0 > $npullccbw/bw_hwmon/guard_band_mbps + echo 250 > $npullccbw/bw_hwmon/up_scale + echo 1600 > $npullccbw/bw_hwmon/idle_mbps + echo 40 > $npullccbw/polling_interval + echo 0 > /sys/devices/virtual/npu/msm_npu/pwr + done + done + # memlat specific settings are moved to seperate file under + # device/target specific folder + setprop vendor.dcvs.prop 0 + setprop vendor.dcvs.prop 1 + echo N > /sys/module/lpm_levels/parameters/sleep_disabled + configure_memory_parameters + ;; +esac + +case "$target" in + "msm8998" | "apq8098_latv") + + echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus + echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres + echo 30 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres + echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms + echo 1 > /sys/devices/system/cpu/cpu4/core_ctl/is_big_cluster + echo 4 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres + + # Setting b.L scheduler parameters + echo 1 > /proc/sys/kernel/sched_migration_fixup + echo 95 > /proc/sys/kernel/sched_upmigrate + echo 90 > /proc/sys/kernel/sched_downmigrate + echo 100 > /proc/sys/kernel/sched_group_upmigrate + echo 95 > /proc/sys/kernel/sched_group_downmigrate + echo 0 > /proc/sys/kernel/sched_select_prev_cpu_us + echo 400000 > /proc/sys/kernel/sched_freq_inc_notify + echo 400000 > /proc/sys/kernel/sched_freq_dec_notify + echo 5 > /proc/sys/kernel/sched_spill_nr_run + echo 1 > /proc/sys/kernel/sched_restrict_cluster_spill + echo 1 > /proc/sys/kernel/sched_prefer_sync_wakee_to_waker + start iop + + # disable thermal bcl hotplug to switch governor + echo 0 > /sys/module/msm_thermal/core_control/enabled + + # online CPU0 + echo 1 > /sys/devices/system/cpu/cpu0/online + # configure governor settings for little cluster + echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load + echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif + echo 19000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay + echo 90 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load + echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate + echo 1248000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq + echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy + echo "83 1804800:95" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads + echo 19000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time + echo 79000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis + echo 518400 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/ignore_hispeed_on_notif + # online CPU4 + echo 1 > /sys/devices/system/cpu/cpu4/online + # configure governor settings for big cluster + echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load + echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif + echo 19000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay + echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load + echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate + echo 1574400 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq + echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy + echo "83 1939200:90 2016000:95" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads + echo 19000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time + echo 79000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/max_freq_hysteresis + echo 806400 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq + echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/ignore_hispeed_on_notif + + # re-enable thermal and BCL hotplug + echo 1 > /sys/module/msm_thermal/core_control/enabled + + # Enable input boost configuration + echo "0:1324800" > /sys/module/cpu_boost/parameters/input_boost_freq + echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms + # Enable bus-dcvs + for cpubw in /sys/class/devfreq/*qcom,cpubw* + do + echo "bw_hwmon" > $cpubw/governor + echo 50 > $cpubw/polling_interval + echo 1525 > $cpubw/min_freq + echo "3143 5859 11863 13763" > $cpubw/bw_hwmon/mbps_zones + echo 4 > $cpubw/bw_hwmon/sample_ms + echo 34 > $cpubw/bw_hwmon/io_percent + echo 20 > $cpubw/bw_hwmon/hist_memory + echo 10 > $cpubw/bw_hwmon/hyst_length + echo 0 > $cpubw/bw_hwmon/low_power_ceil_mbps + echo 34 > $cpubw/bw_hwmon/low_power_io_percent + echo 20 > $cpubw/bw_hwmon/low_power_delay + echo 0 > $cpubw/bw_hwmon/guard_band_mbps + echo 250 > $cpubw/bw_hwmon/up_scale + echo 1600 > $cpubw/bw_hwmon/idle_mbps + done + + for memlat in /sys/class/devfreq/*qcom,memlat-cpu* + do + echo "mem_latency" > $memlat/governor + echo 10 > $memlat/polling_interval + echo 400 > $memlat/mem_latency/ratio_ceil + done + echo "cpufreq" > /sys/class/devfreq/soc:qcom,mincpubw/governor + if [ -f /sys/devices/soc0/soc_id ]; then + soc_id=`cat /sys/devices/soc0/soc_id` + else + soc_id=`cat /sys/devices/system/soc/soc0/id` + fi + + if [ -f /sys/devices/soc0/hw_platform ]; then + hw_platform=`cat /sys/devices/soc0/hw_platform` + else + hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform` + fi + + if [ -f /sys/devices/soc0/platform_version ]; then + platform_version=`cat /sys/devices/soc0/platform_version` + platform_major_version=$((10#${platform_version}>>16)) + fi + + if [ -f /sys/devices/soc0/platform_subtype_id ]; then + platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id` + fi + + case "$soc_id" in + "292") #msm8998 apq8098_latv + # Start Host based Touch processing + case "$hw_platform" in + "QRD") + case "$platform_subtype_id" in + "0") + start_hbtp + ;; + "16") + if [ $platform_major_version -lt 6 ]; then + start_hbtp + fi + ;; + esac + + ;; + esac + ;; + esac + + echo N > /sys/module/lpm_levels/system/pwr/cpu0/ret/idle_enabled + echo N > /sys/module/lpm_levels/system/pwr/cpu1/ret/idle_enabled + echo N > /sys/module/lpm_levels/system/pwr/cpu2/ret/idle_enabled + echo N > /sys/module/lpm_levels/system/pwr/cpu3/ret/idle_enabled + echo N > /sys/module/lpm_levels/system/perf/cpu4/ret/idle_enabled + echo N > /sys/module/lpm_levels/system/perf/cpu5/ret/idle_enabled + echo N > /sys/module/lpm_levels/system/perf/cpu6/ret/idle_enabled + echo N > /sys/module/lpm_levels/system/perf/cpu7/ret/idle_enabled + echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-dynret/idle_enabled + echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-ret/idle_enabled + echo N > /sys/module/lpm_levels/system/perf/perf-l2-dynret/idle_enabled + echo N > /sys/module/lpm_levels/system/perf/perf-l2-ret/idle_enabled + echo N > /sys/module/lpm_levels/parameters/sleep_disabled + + echo 0-3 > /dev/cpuset/background/cpus + echo 0-3 > /dev/cpuset/system-background/cpus + echo 0 > /proc/sys/kernel/sched_boost + + # Set Memory parameters + configure_memory_parameters + ;; +esac + +case "$target" in + "msm8909") + + if [ -f /sys/devices/soc0/soc_id ]; then + soc_id=`cat /sys/devices/soc0/soc_id` + else + soc_id=`cat /sys/devices/system/soc/soc0/id` + fi + + # HMP scheduler settings for 8909 similiar to 8917 + echo 3 > /proc/sys/kernel/sched_window_stats_policy + echo 3 > /proc/sys/kernel/sched_ravg_hist_size + + echo 1 > /proc/sys/kernel/sched_restrict_tasks_spread + + echo 20 > /proc/sys/kernel/sched_small_task + echo 30 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_load + echo 30 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_load + echo 30 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_load + echo 30 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_load + + echo 3 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_nr_run + echo 3 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_nr_run + + echo 0 > /sys/devices/system/cpu/cpu0/sched_prefer_idle + echo 0 > /sys/devices/system/cpu/cpu1/sched_prefer_idle + echo 0 > /sys/devices/system/cpu/cpu2/sched_prefer_idle + echo 0 > /sys/devices/system/cpu/cpu3/sched_prefer_idle + + # Apply governor settings for 8909 + + # disable thermal core_control to update scaling_min_freq + echo 0 > /sys/module/msm_thermal/core_control/enabled + echo 1 > /sys/devices/system/cpu/cpu0/online + echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + # enable thermal core_control now + echo 1 > /sys/module/msm_thermal/core_control/enabled + + echo "29000 1094400:49000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay + echo 90 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load + echo 30000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate + echo 998400 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq + echo 0 > /sys/devices/system/cpu/cpufreq/interactive/io_is_busy + echo "1 800000:85 998400:90 1094400:80" > /sys/devices/system/cpu/cpufreq/interactive/target_loads + echo 50000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time + echo 50000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor + + # Bring up all cores online + echo 1 > /sys/devices/system/cpu/cpu1/online + echo 1 > /sys/devices/system/cpu/cpu2/online + echo 1 > /sys/devices/system/cpu/cpu3/online + echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled + + for devfreq_gov in /sys/class/devfreq/*qcom,cpubw*/governor + do + echo "bw_hwmon" > $devfreq_gov + for cpu_bimc_bw_step in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/bw_step + do + echo 60 > $cpu_bimc_bw_step + done + for cpu_guard_band_mbps in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/guard_band_mbps + do + echo 30 > $cpu_guard_band_mbps + done + done + + for gpu_bimc_io_percent in /sys/class/devfreq/*qcom,gpubw*/bw_hwmon/io_percent + do + echo 40 > $gpu_bimc_io_percent + done + for gpu_bimc_bw_step in /sys/class/devfreq/*qcom,gpubw*/bw_hwmon/bw_step + do + echo 60 > $gpu_bimc_bw_step + done + for gpu_bimc_guard_band_mbps in /sys/class/devfreq/*qcom,gpubw*/bw_hwmon/guard_band_mbps + do + echo 30 > $gpu_bimc_guard_band_mbps + done + + # Set Memory parameters + configure_memory_parameters + restorecon -R /sys/devices/system/cpu + ;; +esac + +case "$target" in + "msm7627_ffa" | "msm7627_surf" | "msm7627_6x") + echo 25000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate + ;; +esac + +case "$target" in + "qsd8250_surf" | "qsd8250_ffa" | "qsd8650a_st1x") + echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate + ;; +esac + +case "$target" in + "qsd8650a_st1x") + mount -t debugfs none /sys/kernel/debug + ;; +esac + +chown -h system /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate +chown -h system /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor +chown -h system /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy + +emmc_boot=`getprop vendor.boot.emmc` +case "$emmc_boot" + in "true") + chown -h system /sys/devices/platform/rs300000a7.65536/force_sync + chown -h system /sys/devices/platform/rs300000a7.65536/sync_sts + chown -h system /sys/devices/platform/rs300100a7.65536/force_sync + chown -h system /sys/devices/platform/rs300100a7.65536/sync_sts + ;; +esac + +case "$target" in + "msm8960" | "msm8660" | "msm7630_surf") + echo 10 > /sys/devices/platform/msm_sdcc.3/idle_timeout + ;; + "msm7627a") + echo 10 > /sys/devices/platform/msm_sdcc.1/idle_timeout + ;; +esac + +# Post-setup services +case "$target" in + "msm8660" | "msm8960" | "msm8226" | "msm8610" | "mpq8092" ) + start mpdecision + ;; + "msm8974") + start mpdecision + echo 512 > /sys/block/mmcblk0/bdi/read_ahead_kb + ;; + "msm8909" | "msm8916" | "msm8937" | "msm8952" | "msm8953" | "msm8994" | "msm8992" | "msm8996" | "msm8998" | "sdm660" | "apq8098_latv" | "sdm845" | "sdm710" | "msmnile" | "msmsteppe" | "sm6150" | "kona" | "lito" | "trinket" | "atoll" | "bengal" | "sdmshrike") + setprop vendor.post_boot.parsed 1 + ;; + "apq8084") + rm /data/system/perfd/default_values + start mpdecision + echo 512 > /sys/block/mmcblk0/bdi/read_ahead_kb + echo 512 > /sys/block/sda/bdi/read_ahead_kb + echo 512 > /sys/block/sdb/bdi/read_ahead_kb + echo 512 > /sys/block/sdc/bdi/read_ahead_kb + echo 512 > /sys/block/sdd/bdi/read_ahead_kb + echo 512 > /sys/block/sde/bdi/read_ahead_kb + echo 512 > /sys/block/sdf/bdi/read_ahead_kb + echo 512 > /sys/block/sdg/bdi/read_ahead_kb + echo 512 > /sys/block/sdh/bdi/read_ahead_kb + ;; + "msm7627a") + if [ -f /sys/devices/soc0/soc_id ]; then + soc_id=`cat /sys/devices/soc0/soc_id` + else + soc_id=`cat /sys/devices/system/soc/soc0/id` + fi + case "$soc_id" in + "127" | "128" | "129") + start mpdecision + ;; + esac + ;; +esac + +# Enable Power modes and set the CPU Freq Sampling rates +case "$target" in + "msm7627a") + start qosmgrd + echo 1 > /sys/module/pm2/modes/cpu0/standalone_power_collapse/idle_enabled + echo 1 > /sys/module/pm2/modes/cpu1/standalone_power_collapse/idle_enabled + echo 1 > /sys/module/pm2/modes/cpu0/standalone_power_collapse/suspend_enabled + echo 1 > /sys/module/pm2/modes/cpu1/standalone_power_collapse/suspend_enabled + #SuspendPC: + echo 1 > /sys/module/pm2/modes/cpu0/power_collapse/suspend_enabled + #IdlePC: + echo 1 > /sys/module/pm2/modes/cpu0/power_collapse/idle_enabled + echo 25000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate + ;; +esac + +# Change adj level and min_free_kbytes setting for lowmemory killer to kick in +case "$target" in + "msm7627a") + echo 0,1,2,4,9,12 > /sys/module/lowmemorykiller/parameters/adj + echo 5120 > /proc/sys/vm/min_free_kbytes + ;; +esac + +# Install AdrenoTest.apk if not already installed +if [ -f /data/prebuilt/AdrenoTest.apk ]; then + if [ ! -d /data/data/com.qualcomm.adrenotest ]; then + pm install /data/prebuilt/AdrenoTest.apk + fi +fi + +# Install SWE_Browser.apk if not already installed +if [ -f /data/prebuilt/SWE_AndroidBrowser.apk ]; then + if [ ! -d /data/data/com.android.swe.browser ]; then + pm install /data/prebuilt/SWE_AndroidBrowser.apk + fi +fi + +# Change adj level and min_free_kbytes setting for lowmemory killer to kick in +case "$target" in + "msm8660") + start qosmgrd + echo 0,1,2,4,9,12 > /sys/module/lowmemorykiller/parameters/adj + echo 5120 > /proc/sys/vm/min_free_kbytes + ;; +esac +# Let kernel know our image version/variant/crm_version +if [ -f /sys/devices/soc0/select_image ]; then + image_version="10:" + image_version+=`getprop ro.build.id` + image_version+=":" + image_version+=`getprop ro.build.version.incremental` + image_variant=`getprop ro.product.name` + image_variant+="-" + image_variant+=`getprop ro.build.type` + oem_version=`getprop ro.build.version.codename` + echo 10 > /sys/devices/soc0/select_image + echo $image_version > /sys/devices/soc0/image_version + echo $image_variant > /sys/devices/soc0/image_variant + echo $oem_version > /sys/devices/soc0/image_crm_version +fi + +# Change console log level as per console config property +console_config=`getprop persist.vendor.console.silent.config` +case "$console_config" in + "1") + echo "Enable console config to $console_config" + echo 0 > /proc/sys/kernel/printk + ;; + *) + echo "Enable console config to $console_config" + ;; +esac + +# Parse misc partition path and set property +misc_link=$(ls -l /dev/block/bootdevice/by-name/misc) +real_path=${misc_link##*>} +setprop persist.vendor.mmi.misc_dev_path $real_path diff --git a/init/init.qcom.sh b/rootdir/bin/init.qcom.sh similarity index 100% rename from init/init.qcom.sh rename to rootdir/bin/init.qcom.sh diff --git a/rootdir/bin/init.qcom.usb.sh b/rootdir/bin/init.qcom.usb.sh new file mode 100755 index 0000000..aa20859 --- /dev/null +++ b/rootdir/bin/init.qcom.usb.sh @@ -0,0 +1,238 @@ +#!/vendor/bin/sh +# Copyright (c) 2012-2018, 2020 The Linux Foundation. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of The Linux Foundation nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# + +# Set platform variables +soc_hwplatform=`cat /sys/devices/soc0/hw_platform 2> /dev/null` +soc_machine=`cat /sys/devices/soc0/machine 2> /dev/null` +soc_machine=${soc_machine:0:2} +soc_id=`cat /sys/devices/soc0/soc_id 2> /dev/null` + +# +# Check ESOC for external modem +# +# Note: currently only a single MDM/SDX is supported +# +esoc_name=`cat /sys/bus/esoc/devices/esoc0/esoc_name 2> /dev/null` + +target=`getprop ro.board.platform` + +# +# Override USB default composition +# +# If USB persist config not set, set default configuration +if [ "$(getprop persist.vendor.usb.config)" == "" -a "$(getprop ro.build.type)" != "user" -a \ + "$(getprop init.svc.vendor.usb-gadget-hal-1-0)" != "running" ]; then + if [ "$esoc_name" != "" ]; then + setprop persist.vendor.usb.config diag,diag_mdm,qdss,qdss_mdm,serial_cdev,dpl,rmnet,adb + else + case "$(getprop ro.baseband)" in + "apq") + setprop persist.vendor.usb.config diag,adb + ;; + *) + case "$soc_hwplatform" in + "Dragon" | "SBC") + setprop persist.vendor.usb.config diag,adb + ;; + *) + case "$soc_machine" in + "SA") + setprop persist.vendor.usb.config diag,adb + ;; + *) + case "$target" in + "msm8996") + setprop persist.vendor.usb.config diag,serial_cdev,serial_tty,rmnet_ipa,mass_storage,adb + ;; + "msm8909") + setprop persist.vendor.usb.config diag,serial_smd,rmnet_qti_bam,adb + ;; + "msm8937") + if [ -d /config/usb_gadget ]; then + setprop persist.vendor.usb.config diag,serial_cdev,rmnet,dpl,adb + else + case "$soc_id" in + "313" | "320") + setprop persist.vendor.usb.config diag,serial_smd,rmnet_ipa,adb + ;; + *) + setprop persist.vendor.usb.config diag,serial_smd,rmnet_qti_bam,adb + ;; + esac + fi + ;; + "msm8953") + if [ -d /config/usb_gadget ]; then + setprop persist.vendor.usb.config diag,serial_cdev,rmnet,dpl,adb + else + setprop persist.vendor.usb.config diag,serial_smd,rmnet_ipa,adb + fi + ;; + "msm8998" | "sdm660" | "apq8098_latv") + setprop persist.vendor.usb.config diag,serial_cdev,rmnet,adb + ;; + "sdm845" | "sdm710") + setprop persist.vendor.usb.config diag,serial_cdev,rmnet,dpl,adb + ;; + "msmnile" | "sm6150" | "trinket" | "lito" | "atoll" | "bengal" | "lahaina" | "holi") + setprop persist.vendor.usb.config diag,serial_cdev,rmnet,dpl,qdss,adb + ;; + *) + setprop persist.vendor.usb.config diag,adb + ;; + esac + ;; + esac + ;; + esac + ;; + esac + fi +fi + +# This check is needed for GKI 1.0 targets where QDSS is not available +if [ "$(getprop persist.vendor.usb.config)" == "diag,serial_cdev,rmnet,dpl,qdss,adb" -a \ + ! -d /config/usb_gadget/g1/functions/qdss.qdss ]; then + setprop persist.vendor.usb.config diag,serial_cdev,rmnet,dpl,adb +fi + +# Start peripheral mode on primary USB controllers for Automotive platforms +case "$soc_machine" in + "SA") + if [ -f /sys/bus/platform/devices/a600000.ssusb/mode ]; then + default_mode=`cat /sys/bus/platform/devices/a600000.ssusb/mode` + case "$default_mode" in + "none") + echo peripheral > /sys/bus/platform/devices/a600000.ssusb/mode + ;; + esac + fi + ;; +esac + +# check configfs is mounted or not +if [ -d /config/usb_gadget ]; then + # Chip-serial is used for unique MSM identification in Product string + msm_serial=`cat /sys/devices/soc0/serial_number`; + msm_serial_hex=`printf %08X $msm_serial` + machine_type=`cat /sys/devices/soc0/machine` + setprop vendor.usb.product_string "$machine_type-$soc_hwplatform _SN:$msm_serial_hex" + + # ADB requires valid iSerialNumber; if ro.serialno is missing, use dummy + serialnumber=`cat /config/usb_gadget/g1/strings/0x409/serialnumber 2> /dev/null` + if [ "$serialnumber" == "" ]; then + serialno=1234567 + echo $serialno > /config/usb_gadget/g1/strings/0x409/serialnumber + fi + setprop vendor.usb.configfs 1 +fi + +# +# Initialize RNDIS Diag option. If unset, set it to 'none'. +# +diag_extra=`getprop persist.vendor.usb.config.extra` +if [ "$diag_extra" == "" ]; then + setprop persist.vendor.usb.config.extra none +fi + +# enable rps cpus on msm8937 target +setprop vendor.usb.rps_mask 0 +case "$soc_id" in + "294" | "295" | "353" | "354") + setprop vendor.usb.rps_mask 40 + ;; +esac + +# +# Initialize UVC conifguration. +# +if [ -d /config/usb_gadget/g1/functions/uvc.0 ]; then + cd /config/usb_gadget/g1/functions/uvc.0 + + echo 3072 > streaming_maxpacket + echo 1 > streaming_maxburst + mkdir control/header/h + ln -s control/header/h control/class/fs/ + ln -s control/header/h control/class/ss + + mkdir -p streaming/uncompressed/u/360p + echo "666666\n1000000\n5000000\n" > streaming/uncompressed/u/360p/dwFrameInterval + + mkdir -p streaming/uncompressed/u/720p + echo 1280 > streaming/uncompressed/u/720p/wWidth + echo 720 > streaming/uncompressed/u/720p/wWidth + echo 29491200 > streaming/uncompressed/u/720p/dwMinBitRate + echo 29491200 > streaming/uncompressed/u/720p/dwMaxBitRate + echo 1843200 > streaming/uncompressed/u/720p/dwMaxVideoFrameBufferSize + echo 5000000 > streaming/uncompressed/u/720p/dwDefaultFrameInterval + echo "5000000\n" > streaming/uncompressed/u/720p/dwFrameInterval + + mkdir -p streaming/mjpeg/m/360p + echo "666666\n1000000\n5000000\n" > streaming/mjpeg/m/360p/dwFrameInterval + + mkdir -p streaming/mjpeg/m/720p + echo 1280 > streaming/mjpeg/m/720p/wWidth + echo 720 > streaming/mjpeg/m/720p/wWidth + echo 29491200 > streaming/mjpeg/m/720p/dwMinBitRate + echo 29491200 > streaming/mjpeg/m/720p/dwMaxBitRate + echo 1843200 > streaming/mjpeg/m/720p/dwMaxVideoFrameBufferSize + echo 5000000 > streaming/mjpeg/m/720p/dwDefaultFrameInterval + echo "5000000\n" > streaming/mjpeg/m/720p/dwFrameInterval + + echo 0x04 > /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bmaControls + + mkdir -p streaming/h264/h/960p + echo 1920 > streaming/h264/h/960p/wWidth + echo 960 > streaming/h264/h/960p/wWidth + echo 40 > streaming/h264/h/960p/bLevelIDC + echo "333667\n" > streaming/h264/h/960p/dwFrameInterval + + mkdir -p streaming/h264/h/1920p + echo "333667\n" > streaming/h264/h/1920p/dwFrameInterval + + mkdir streaming/header/h + ln -s streaming/uncompressed/u streaming/header/h + ln -s streaming/mjpeg/m streaming/header/h + ln -s streaming/h264/h streaming/header/h + ln -s streaming/header/h streaming/class/fs/ + ln -s streaming/header/h streaming/class/hs/ + ln -s streaming/header/h streaming/class/ss/ +fi + +#Enable diag and adb for FTM +boot_mode=`getprop ro.boot.ftm_mode` +echo "boot_mode: $boot_mode" > /dev/kmsg +case "$boot_mode" in + "ftm_rf" | "ftm_wlan" | "ftm_at") + setprop persist.vendor.usb.config diag,adb + setprop persist.sys.usb.config diag,adb + setprop sys.usb.config diag,adb + echo "AFTER boot_mode: diag,adb" > /dev/kmsg +esac diff --git a/rootdir/bin/init.qti.chg_policy.sh b/rootdir/bin/init.qti.chg_policy.sh new file mode 100755 index 0000000..99187ab --- /dev/null +++ b/rootdir/bin/init.qti.chg_policy.sh @@ -0,0 +1,48 @@ +#! /vendor/bin/sh + +# +# Copyright (c) 2019-2020 Qualcomm Technologies, Inc. +# All Rights Reserved. +# Confidential and Proprietary - Qualcomm Technologies, Inc. +# +# Copyright (c) 2019 The Linux Foundation. All rights reserved. +# + +export PATH=/vendor/bin + +soc_id=`getprop ro.vendor.qti.soc_id` +if [ "$soc_id" -eq 415 ] || [ "$soc_id" -eq 439 ] || [ "$soc_id" -eq 450 ] || [ "$soc_id" -eq 475 ]; then + setprop persist.vendor.hvdcp_opti.start 2 + exit 0 +fi + +if [ "$soc_id" -eq 441 ] || [ "$soc_id" -eq 471 ]; then + #Scuba does not support usb-pd or charge pumps + find /sys/class/power_supply/battery/ -type f -maxdepth 1 | xargs chown system.system + find /sys/class/power_supply/bms/ -type f -maxdepth 1 | xargs chown system.system + find /sys/class/power_supply/main/ -type f -maxdepth 1 | xargs chown system.system + find /sys/class/power_supply/usb/ -type f -maxdepth 1 | xargs chown system.system +else + find /sys/class/power_supply/battery/ -type f -maxdepth 1 | xargs chown system.system + find /sys/class/power_supply/bms/ -type f -maxdepth 1 | xargs chown system.system + find /sys/class/power_supply/main/ -type f -maxdepth 1 | xargs chown system.system + find /sys/class/power_supply/usb/ -type f -maxdepth 1 | xargs chown system.system + find /sys/class/power_supply/charge_pump_master/ -type f -maxdepth 1 | xargs chown system.system + find /sys/class/power_supply/pc_port/ -type f -maxdepth 1 | xargs chown system.system + find /sys/class/power_supply/dc/ -type f -maxdepth 1 | xargs chown system.system + find /sys/class/power_supply/parallel/ -type f -maxdepth 1 | xargs chown system.system + find /sys/class/usbpd/usbpd0/ -type f -maxdepth 1 | xargs chown system.system + find /sys/class/qc-vdm/ -type f -maxdepth 1 | xargs chown system.system + find /sys/class/charge_pump/ -type f -maxdepth 1 | xargs chown system.system + find /sys/class/qcom-battery/ -type f -maxdepth 1 | xargs chown system.system + + for i in 0 1 2 3 4 5 6 7 8 9 + do + devname=`cat /sys/bus/iio/devices/iio:device$i/name` + if [[ "$devname" == *smb* ]] || [[ "$devname" == *qg* ]] || [[ "$devname" == *div2_cp* ]]; then + find /sys/bus/iio/devices/iio:device$i/ -type f -maxdepth 1 | xargs chown system.system + fi + done +fi + +setprop persist.vendor.hvdcp_opti.start 1 diff --git a/rootdir/bin/init.qti.dcvs.sh b/rootdir/bin/init.qti.dcvs.sh new file mode 100755 index 0000000..0f3309b --- /dev/null +++ b/rootdir/bin/init.qti.dcvs.sh @@ -0,0 +1,77 @@ +#! /vendor/bin/sh +# +# Copyright (c) 2020, The Linux Foundation. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of The Linux Foundation nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + for device in /sys/devices/platform/soc + do + for memlat in $device/*qcom,devfreq-l3/*cpu*-lat/devfreq/*cpu*-lat + do + echo "mem_latency" > $memlat/governor + echo 8 > $memlat/polling_interval + echo 400 > $memlat/mem_latency/ratio_ceil + done + + #Enable mem_latency governor for LLCC and DDR scaling + for memlat in $device/*cpu*-lat/devfreq/*cpu*-lat + do + echo "mem_latency" > $memlat/governor + echo 8 > $memlat/polling_interval + echo 400 > $memlat/mem_latency/ratio_ceil + done + + #Enable compute governor for gold latfloor + for latfloor in $device/*cpu-ddr-latfloor*/devfreq/*cpu-ddr-latfloor* + do + echo "compute" > $latfloor/governor + echo 8 > $latfloor/polling_interval + done + + for qoslat in $device/*qoslat/devfreq/*qoslat + do + echo "mem_latency" > $qoslat/governor + echo 10 > $qoslat/polling_interval + echo 50 > $qoslat/mem_latency/ratio_ceil + done + + for l3cdsp in $device/*qcom,devfreq-l3/*cdsp-l3-lat/devfreq/*cdsp-l3-lat + do + echo "cdspl3" > $l3cdsp/governor + done + + #Gold L3 ratio ceil + for l3gold in $device/*qcom,devfreq-l3/*cpu4-cpu-l3-lat/devfreq/*cpu4-cpu-l3-lat + do + echo 4000 > $l3gold/mem_latency/ratio_ceil + done + + #Prime L3 ratio ceil + for l3prime in $device/*qcom,devfreq-l3/*cpu7-cpu-l3-lat/devfreq/*cpu7-cpu-l3-lat + do + echo 20000 > $l3prime/mem_latency/ratio_ceil + done + done; diff --git a/init/init.qcom.recovery.rc b/rootdir/bin/init.qti.kernel.sh old mode 100644 new mode 100755 similarity index 68% rename from init/init.qcom.recovery.rc rename to rootdir/bin/init.qti.kernel.sh index c0fa50d..642794d --- a/init/init.qcom.recovery.rc +++ b/rootdir/bin/init.qti.kernel.sh @@ -1,4 +1,10 @@ -# Copyright (c) 2017-2018,2020 The Linux Foundation. All rights reserved. +#! /vendor/bin/sh +#============================================================================= +# Copyright (c) 2019-2020 Qualcomm Technologies, Inc. +# All Rights Reserved. +# Confidential and Proprietary - Qualcomm Technologies, Inc. +# +# Copyright (c) 2009-2012, 2014-2019, The Linux Foundation. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: @@ -23,16 +29,20 @@ # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# +#============================================================================= -on init - write /sys/class/backlight/panel0-backlight/brightness 200 - setprop sys.usb.configfs 1 +verify_pasr_support() +{ + if [ -d /sys/kernel/mem-offline ]; then + setprop vendor.pasr.enabled true + fi +} -on property:ro.boot.usbcontroller=* - setprop sys.usb.controller ${ro.boot.usbcontroller} - write /sys/class/udc/${ro.boot.usbcontroller}/device/../mode peripheral - -on fs - wait /dev/block/platform/soc/${ro.boot.bootdevice} - symlink /dev/block/platform/soc/${ro.boot.bootdevice} /dev/block/bootdevice +start_msm_irqbalance() +{ + if [ -f /vendor/bin/msm_irqbalance ]; then + start vendor.msm_irqbalance + fi +} +start_msm_irqbalance +verify_pasr_support diff --git a/rootdir/bin/init.qti.qcv.sh b/rootdir/bin/init.qti.qcv.sh new file mode 100755 index 0000000..6e4e315 --- /dev/null +++ b/rootdir/bin/init.qti.qcv.sh @@ -0,0 +1,20 @@ +#! /vendor/bin/sh +#============================================================================= +# Copyright (c) 2020 Qualcomm Technologies, Inc. +# All Rights Reserved. +# Confidential and Proprietary - Qualcomm Technologies, Inc. +#============================================================================= + +soc_id=`cat /sys/devices/soc0/soc_id` 2> /dev/null + +# Store soc_id in ro.vendor.qti.soc_id +setprop ro.vendor.qti.soc_id $soc_id + +# For chipsets in QCV family, convert soc_id to soc_name +# and store it in ro.vendor.qti.soc_name. +if [ "$soc_id" -eq 415 ] || [ "$soc_id" -eq 439 ] || [ "$soc_id" -eq 456 ] || + [ "$soc_id" -eq 501 ] || [ "$soc_id" -eq 502 ]; then + setprop ro.vendor.qti.soc_name lahaina +elif [ "$soc_id" -eq 450 ]; then + setprop ro.vendor.qti.soc_name shima +fi diff --git a/rootdir/bin/vendor_modprobe.sh b/rootdir/bin/vendor_modprobe.sh new file mode 100755 index 0000000..5586bbe --- /dev/null +++ b/rootdir/bin/vendor_modprobe.sh @@ -0,0 +1,43 @@ +#! /vendor/bin/sh +#============================================================================= +# Copyright (c) 2019-2020 Qualcomm Technologies, Inc. +# All Rights Reserved. +# Confidential and Proprietary - Qualcomm Technologies, Inc. +#============================================================================= + +#default to /vendor/lib/modules +MODULES_PATH="/vendor/lib/modules/" +GKI_MOD_PATH="/vendor/lib/modules/5.4-gki" + +MODPROBE="/vendor/bin/modprobe" +MODULES=`${MODPROBE} -d ${MODULES_PATH} -l` + +# insmod op_cmdline before other modules +CMD_LINE=`cat /proc/cmdline` +${MODPROBE} -a -b -d ${MODULES_PATH} op_cmdline.ko op_cmdline="\"${CMD_LINE}\"" +${MODPROBE} -a -b -d ${GKI_MOD_PATH} op_cmdline.ko op_cmdline="\"${CMD_LINE}\"" + +# Find the first non-blacklisted module and try +# inserting it. If insertion fails the module is not +# compatible with the current kernel. Change the modules +# directory to gki. +for MODULE in ${MODULES}; do + cat ${MODULES_PATH}/modules.blocklist | grep $MODULE + if [ $? -ne 0 ]; then + break + fi +done + +${MODPROBE} -a -b -d ${MODULES_PATH} ${MODULE} +if [ $? -ne 0 ];then + MODULES_PATH=$GKI_MOD_PATH + MODULES=`${MODPROBE} -d ${MODULES_PATH} -l` +fi + +# Iterate over module list and modprobe them in background. +for MODULE in ${MODULES}; do + ${MODPROBE} -a -b -d ${MODULES_PATH} ${MODULE} & +done + +# Wait until all the modprobes are finished +wait diff --git a/rootdir/etc/charger_fstab.qti b/rootdir/etc/charger_fstab.qti new file mode 100644 index 0000000..87dd4a9 --- /dev/null +++ b/rootdir/etc/charger_fstab.qti @@ -0,0 +1,33 @@ +# Copyright (c) 2019 - 2020, The Linux Foundation. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of The Linux Foundation nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# Android fstab file. +# The filesystem that contains the filesystem checker binary (typically /system) cannot +# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK + +# +/dev/block/bootdevice/by-name/modem /vendor/firmware_mnt vfat ro,shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337,context=u:object_r:firmware_file:s0 wait,slotselect diff --git a/init/fstab.qcom b/rootdir/etc/fstab.qcom similarity index 90% rename from init/fstab.qcom rename to rootdir/etc/fstab.qcom index dbc85d3..8ce7314 100644 --- a/init/fstab.qcom +++ b/rootdir/etc/fstab.qcom @@ -38,14 +38,15 @@ system /system ext4 ro,barrier=1,discard wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,avb_keys=/avb/q-gsi.avbpubkey:/avb/r-gsi.avbpubkey:/avb/s-gsi.avbpubkey system_ext /system_ext ext4 ro,barrier=1,discard wait,slotselect,avb=vbmeta_system,logical,first_stage_mount product /product ext4 ro,barrier=1,discard wait,slotselect,avb=vbmeta_system,logical,first_stage_mount -vendor /vendor erofs ro wait,slotselect,avb,logical,first_stage_mount -vendor_dlkm /vendor_dlkm erofs ro wait,slotselect,avb,logical,first_stage_mount -odm /odm erofs ro wait,slotselect,avb,logical,first_stage_mount -/dev/block/by-name/metadata /metadata ext4 noatime,nosuid,nodev,discard,data=journal,commit=1 wait,check,formattable,first_stage_mount +vendor /vendor ext4 ro,barrier=1,discard wait,slotselect,avb,logical,first_stage_mount +vendor_dlkm /vendor_dlkm ext4 ro,barrier=1,discard wait,slotselect,avb,logical,first_stage_mount +odm /odm ext4 ro,barrier=1,discard wait,slotselect,avb,logical,first_stage_mount +/dev/block/bootdevice/by-name/opluslog /mnt/vendor/op2 ext4 noatime,nosuid,nodev,barrier=1,data=ordered wait,check +/dev/block/by-name/metadata /metadata ext4 noatime,nosuid,nodev,discard wait,check,formattable,first_stage_mount /dev/block/bootdevice/by-name/persist /mnt/vendor/persist ext4 noatime,nosuid,nodev,barrier=1 wait /dev/block/bootdevice/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,inlinecrypt,reserve_root=32768,resgid=1065,fsync_mode=nobarrier latemount,wait,check,formattable,fileencryption=aes-256-xts:aes-256-cts:v2+inlinecrypt_optimized+wrappedkey_v0,keydirectory=/metadata/vold/metadata_encryption,metadata_encryption=aes-256-xts:wrappedkey_v0,quota,reservedsize=128M,checkpoint=fs /dev/block/bootdevice/by-name/misc /misc emmc defaults defaults -/devices/platform/soc/4784000.sdhci/mmc_host* /storage/sdcard1 auto nosuid,nodev wait,voldmanaged=sdcard1:auto +/devices/platform/soc/4784000.sdhci/mmc_host* /storage/sdcard1 vfat nosuid,nodev wait,voldmanaged=sdcard1:auto /devices/platform/soc/*.ssusb/*.dwc3/xhci-hcd.*.auto* /storage/usbotg vfat nosuid,nodev wait,voldmanaged=usbotg:auto /dev/block/bootdevice/by-name/modem /vendor/firmware_mnt vfat ro,shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337,context=u:object_r:firmware_file:s0 wait,slotselect /dev/block/bootdevice/by-name/dsp /vendor/dsp ext4 ro,nosuid,nodev,barrier=1 wait,slotselect diff --git a/rootdir/etc/ftm_power_config.sh b/rootdir/etc/ftm_power_config.sh new file mode 100644 index 0000000..45230b4 --- /dev/null +++ b/rootdir/etc/ftm_power_config.sh @@ -0,0 +1,53 @@ +#!/system/bin/sh +echo "ftm_power_config start" >> /dev/kmsg +bootmode=`getprop ro.vendor.factory.mode` +target=`getprop ro.board.platform` +/vendor/bin/sh /vendor/bin/init.qcom.post_boot.sh + +echo s2idle > /sys/power/mem_sleep + +sleep 5 +echo 0 > /sys/devices/system/cpu/cpu4/online +echo 0 > /sys/devices/system/cpu/cpu5/online +echo 0 > /sys/devices/system/cpu/cpu6/online +echo 0 > /sys/devices/system/cpu/cpu7/online + +sleep 10 +echo 0 > /sys/devices/system/cpu/cpu3/online +echo 0 > /sys/devices/system/cpu/cpu2/online + +if [ "$target" == "lito" ]; then + echo 614400 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq + echo 1075200 > /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq +else + echo 518400 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq + echo 883200 > /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq +fi + +echo "ftm_power_config ftrace config start" >> /dev/kmsg +echo 0 > /sys/kernel/debug/tracing/tracing_on +echo "" > /sys/kernel/debug/tracing/set_event +echo "" > /sys/kernel/debug/tracing/trace +echo power:cpu_idle power:cpu_frequency power:cpu_frequency_switch_start msm_low_power:* sched:sched_switch sched:sched_wakeup sched:sched_wakeup_new sched:sched_enq_deq_task >> /sys/kernel/debug/tracing/set_event +echo power:memlat_dev_update power:memlat_dev_meas msm_bus:bus_update_request msm_bus:* power:bw_hwmon_update power:bw_hwmon_meas >> /sys/kernel/debug/tracing/set_event +echo power:bw_hwmon_meas power:bw_hwmon_update>> /sys/kernel/debug/tracing/set_event +echo clk:clk_set_rate clk:clk_enable clk:clk_disable >> /sys/kernel/debug/tracing/set_event +echo power:clock_set_rate power:clock_enable power:clock_disable msm_bus:bus_update_request >> /sys/kernel/debug/tracing/set_event +echo cpufreq_interactive:cpufreq_interactive_target cpufreq_interactive:cpufreq_interactive_setspeed >> /sys/kernel/debug/tracing/set_event +echo irq:* >> /sys/kernel/debug/tracing/set_event +echo mdss:mdp_mixer_update mdss:mdp_sspp_change mdss:mdp_commit >> /sys/kernel/debug/tracing/set_event +echo workqueue:* >> /sys/kernel/debug/tracing/set_event +echo kgsl:kgsl_pwrlevel kgsl:kgsl_buslevel kgsl:kgsl_pwr_set_state >> /sys/kernel/debug/tracing/set_event +echo regulator:regulator_set_voltage_complete regulator:regulator_disable_complete regulator:regulator_enable_complete >> /sys/kernel/debug/tracing/set_event +echo thermal:* >> /sys/kernel/debug/tracing/set_event +cat /sys/kernel/debug/tracing/set_event +echo 40000 > /sys/kernel/debug/tracing/buffer_size_kb +cat /sys/kernel/debug/tracing/buffer_size_kb + +sleep 5 +echo "ftm_power_config capture ftrace start" >> /dev/kmsg +echo 0 > /sys/kernel/debug/tracing/tracing_on && cat /sys/kernel/debug/tracing/trace > /data/local/trace.txt && echo 0 > /sys/kernel/debug/tracing/tracing_on && echo "" > /sys/kernel/debug/tracing/trace && sleep 1 && echo 1 > /sys/kernel/debug/tracing/tracing_on && sleep 40 && echo 0 > /sys/kernel/debug/tracing/tracing_on && cat /sys/kernel/debug/tracing/trace > /mnt/vendor/op2/trace.txt& + +echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled +baseband=`getprop ro.baseband` +echo "ftm_power_config done baseband=$baseband" >> /dev/kmsg diff --git a/rootdir/etc/init.cust.rc b/rootdir/etc/init.cust.rc new file mode 100644 index 0000000..c0a12a1 --- /dev/null +++ b/rootdir/etc/init.cust.rc @@ -0,0 +1,2 @@ +on property:ro.boot.product.hardware.sku=9 + setprop persist.radio.multisim.config ssss diff --git a/rootdir/etc/init.oem.debug.rc b/rootdir/etc/init.oem.debug.rc new file mode 100644 index 0000000..875cc27 --- /dev/null +++ b/rootdir/etc/init.oem.debug.rc @@ -0,0 +1,79 @@ +################################################################################## +### VENDOR_EDIT, OEM All rights reserved. +### +### File: - init.oem.debug.rc +### +### ------------------------------- Revision History: ---------------------------- +### +### ------------------------------------------------------------------------------ +################################################################################## + + +################################## Trigger Point Begin ########################################### +on late-init + write /proc/sys/kernel/hung_task_timeout_secs 60 + write /proc/sys/kernel/hung_task_selective_monitoring 0 + +on property:persist.vendor.enable.powerkey.dump=1 + write /sys/module/qpnp_power_on/parameters/long_pwr_dump_enabled 1 + +on property:persist.vendor.enable.powerkey.dump=0 + write /sys/module/qpnp_power_on/parameters/long_pwr_dump_enabled 0 + +on property:vendor.sys.oem.long_pwr_dump=1 + write /sys/module/qpnp_power_on/parameters/pwr_dump_enabled 1 + +on property:vendor.sys.oem.long_pwr_dump=0 + write /sys/module/qpnp_power_on/parameters/pwr_dump_enabled 0 + +on property:vendor.sys.oem.long_debug_suspend=1 + write /d/clk/debug_suspend 1 + +on property:vendor.sys.oem.long_debug_suspend=0 + write /d/clk/debug_suspend 0 + +on property:persist.vendor.oem.dump=1 && property:persist.vendor.oem.ssrdump=0 + write /sys/module/msm_poweroff/parameters/download_mode 1 + write /sys/kernel/dload/dload_mode full + write /sys/kernel/dload/emmc_dload 0 + write /proc/otrace_on 7978 + write /proc/restart_level_all 1 + write /proc/sys/kernel/printk "4 6 1 7" + setprop persist.vendor.oem.pmsg.enable 1 + +on property:persist.vendor.oem.dump=0 && property:persist.vendor.oem.ssrdump=0 + write /sys/module/msm_poweroff/parameters/download_mode 1 + write /sys/kernel/dload/dload_mode mini + write /sys/kernel/dload/emmc_dload 1 + write /proc/otrace_on 0 + write /proc/restart_level_all 0 + write /proc/sys/kernel/printk "1 6 1 7" + setprop persist.vendor.oem.pmsg.enable 0 + +on property:persist.vendor.oem.dump=0 && property:persist.vendor.oem.ssrdump=1 + write /sys/module/msm_poweroff/parameters/download_mode 1 + write /sys/kernel/dload/dload_mode full + write /sys/kernel/dload/emmc_dload 0 + write /proc/otrace_on 7978 + write /proc/restart_level_all 0 + write /proc/sys/kernel/printk "4 6 1 7" + setprop persist.vendor.oem.pmsg.enable 0 + + +on property:persist.vendor.oem.twice.modemdump=1 + write /sys/kernel/dload/oem_modemdump twice + +on property:persist.vendor.oem.twice.modemdump=0 + write /sys/kernel/dload/oem_modemdump fusion + +on property:vendor.oem.enroll.index=* + exec_background - root root -- /system_ext/bin/oem_on_gatekeeper_change.sh enroll + exec_background - root root -- /system_ext/bin/oem_back_up_sec.sh enroll + +on property:vendor.oem.verify.pass.index=* + exec_background - root root -- /system_ext/bin/oem_on_gatekeeper_change.sh pass + exec_background - root root -- /system_ext/bin/oem_back_up_sec.sh pass + +on property:vendor.oem.verify.fail.index=* + exec_background - root root -- /system_ext/bin/oem_on_gatekeeper_change.sh fail + exec_background - root root -- /system_ext/bin/oem_back_up_sec.sh fail diff --git a/rootdir/etc/init.oem.rc b/rootdir/etc/init.oem.rc new file mode 100644 index 0000000..f8e0755 --- /dev/null +++ b/rootdir/etc/init.oem.rc @@ -0,0 +1,1193 @@ +################################################################################# +### VENDOR_EDIT, OEM All rights reserved. +### +### File: - init.oem.rc +### Author: jiangyonggao +### all oem triger & init are here +### ------------------------------- Revision History: ---------------------------- +### +### ------------------------------------------------------------------------------ +### jiangyg@PM 2013-10-21 Create this file +################################################################################## +#Load WLAN driver + +import /vendor/etc/init/hw/init.cust.rc +#ethan.peng@Connectivity,2020/12/29,close uicc since orange +import /vendor/etc/init/hw/init.uicc.rc + +on property:wlan.driver.status=ok + start load_wlan_driver + +service load_wlan_driver /vendor/bin/sh /vendor/bin/load_wlan_driver + class main + disabled + oneshot + +on charger + setprop persist.vendor.oem.dump 0 + setprop persist.vendor.oem.ssrdump 0 + start oemlogkit + +#@bsp, 2019/08/22 Add dash charging +service dashd /vendor/bin/dashd + class core + seclabel u:r:dashd:s0 + group root system + +#bsp, 2020/01/04 Add wireless charge +service wlchgd /vendor/bin/wlchgd + class main + disabled + seclabel u:r:wlchgd:s0 + group root system + +on fs + mount ext4 /dev/block/bootdevice/by-name/op1 /mnt/vendor/op1 ro barrier=1 discard context=u:object_r:op1_file:s0 + #yankelong add + chown system system /sys/class/leds/vibrator/haptic_audio_ai_input + chown system system /sys/class/leds/vibrator/haptic_audio_tp_input + chown system system /sys/class/leds/vibrator/haptic_audio_tp_size + chown audioserver audioserver /sys/class/leds/vibrator/register + chown system system /sys/class/leds/vibrator/vmax_mv + chmod 660 /sys/class/leds/vibrator/vmax_mv + chmod 660 /sys/class/leds/vibrator/rtp + chmod 660 /sys/class/leds/vibrator/haptic_audio_tp_time + chmod 644 /sys/class/leds/vibrator/haptic_osc_data + chmod 660 /sys/class/leds/vibrator/ram_test + chmod 644 /sys/class/leds/vibrator/ram_update + chmod 644 /sys/class/leds/vibrator/f0_cali_data + chown system system /sys/class/leds/vibrator/activate + chown system system /sys/class/leds/vibrator/brightness + chown system system /sys/class/leds/vibrator/duration + chown system system /sys/class/leds/vibrator/state + chown system system /sys/class/leds/vibrator/rf_hz + chown system system /sys/class/leds/vibrator/lra_resistance + chown system system /sys/class/leds/vibrator/gain + chown system system /sys/class/leds/vibrator/vmax + chown system system /sys/class/leds/vibrator/index + chown system system /sys/class/leds/vibrator/activate_mode + chown system system /sys/class/leds/vibrator/seq + chown system audio /sys/class/leds/vibrator/rtp + chown system audio /sys/class/leds/vibrator/haptic_audio_tp_time + chown system system /sys/class/leds/vibrator/loop + chown system system /sys/class/leds/vibrator/ignore_store + chown system system /sys/class/leds/vibrator/osc_cali + chown system system /sys/class/leds/vibrator/haptic_osc_data + chown system system /sys/class/leds/vibrator/ram_test + chown system system /sys/class/leds/vibrator/ram_update + chown system system /sys/class/leds/vibrator/f0_cali_data +#ifdef VENDOR_EDIT +# /* 20200330 david shih */ + chown system system /sys/module/proc/parameters/dbg_buf +#endif + chown system system /sys/class/leds/vibrator/cali + chown system system /sys/module/lpm_levels/parameters/sleep_disabled + restorecon /sys/class/leds/vibrator/activate + restorecon /sys/class/leds/vibrator/brightness + restorecon /sys/class/leds/vibrator/duration + restorecon /sys/class/leds/vibrator/state +#change ownership and premission for awinic haptic shock with music + chown audioserver audioserver /dev/awinic_haptic + chown audioserver audioserver /sys/class/leds/vibrator/haptic_audio + chown audioserver audioserver /sys/class/leds/vibrator/gun_type + chown audioserver audioserver /sys/class/leds/vibrator/bullet_nr + chmod 777 /sys/class/leds/vibrator/gun_type + chmod 777 /sys/class/leds/vibrator/bullet_nr + chmod 777 /sys/class/leds/vibrator/register +# /* add for aging apk to set node */ + chown system system /sys/class/power_supply/battery/is_aging_test + chown system system /sys/class/power_supply/battery/dump_reg + +#add for tri_state_key + chown system system /sys/bus/platform/devices/soc/soc\:tri_state_key/hall_data_calib + chown system system /sys/bus/platform/devices/soc/soc\:tri_state_key/hall_set_value + +#add for tp firmware update + write /sys/devices/platform/soc/a94000.i2c/i2c-4/4-004b/tp_fw_update 0 + write /sys/devices/platform/soc/a94000.i2c/i2c-4/4-0048/tp_fw_update 0 + write /sys/devices/platform/soc/984000.i2c/i2c-4/4-005d/tp_fw_update 0 + write /sys/devices/platform/soc/984000.i2c/i2c-4/4-0048/tp_fw_update 0 + write /sys/devices/platform/soc/a94000.i2c/i2c-4/4-005d/tp_fw_update 0 + write /sys/devices/platform/soc/880000.i2c/i2c-0/0-0038/tp_fw_update 0 + write /sys/devices/platform/soc/880000.spi/spi_master/spi0/spi0.0/tp_fw_update 0 +#add for n200 + write /sys/devices/platform/soc/4a80000.spi/spi_master/spi0/spi0.0/tp_fw_update 0 + +#add for tp debug log & to set node gesture_enable + chown system system /proc/touchpanel/tp_debug_log + chown system system /proc/touchpanel/gesture_enable + chown system system /proc/touchpanel/gesture_switch + chown system system /proc/touchpanel/tpedge_limit_enable + chown system system /proc/touchpanel/tp_switch_dead_zone + chown system system /proc/touchpanel/tp_switch_corner_dead_l_zone + chown system system /proc/touchpanel/tp_switch_corner_dead_p_zone + chown system system /proc/touchpanel/touch_apk + chown system system /proc/touchpanel/get_device_temperature + chown system system /proc/touchpanel/get_ic_firmware_version +# /* add for wireless charge */ + chown system system /proc/wireless/enable_tx + chown system system /proc/wireless/enable_rx + chown system system /proc/wireless/epp_or_bpp + chown system system /proc/wireless/current_out + chown system system /proc/wireless/rx_voltage + chown system system /proc/wireless/charge_pump_en + chown system system /proc/wireless/deviated + chown system system /proc/wireless/quiet_mode + chown system system /proc/wireless/fast_skin_threld + + chown system system /proc/enhance_dash + +#gerry.ding@bsp, add for s2 reset config + chown system system /proc/s2_reset_config + chown system system /proc/pmicWd + +# rayboo.lin@bsp, 2020/09/09 add for simCard holder detect + chmod 0666 /proc/simholder/sim_holder_detect + chown system system /proc/simholder/sim_holder_detect + + +#uma.mahesh@Imaging 2020/4/8 add for factory item + chown system system /sys/class/leds/led:torch_0/brightness + chmod 666 /sys/class/leds/led:torch_0/brightness + chown system system /sys/class/leds/led:torch_1/brightness + chmod 666 /sys/class/leds/led:torch_1/brightness + chown system system /sys/class/leds/led:switch_0/brightness + chmod 666 /sys/class/leds/led:switch_0/brightness + chown system system /sys/class/leds/led:switch_1/brightness + chmod 666 /sys/class/leds/led:switch_1/brightness + chown system system /sys/class/leds/led:switch_2/brightness + chmod 666 /sys/class/leds/led:switch_2/brightness + chown system system /sys/class/leds/led:torch_2/brightness + chmod 666 /sys/class/leds/led:torch_2/brightness + chown system system /sys/class/leds/led:switch_3/brightness + chmod 666 /sys/class/leds/led:switch_3/brightness + mkdir /mnt/vendor/persist/camera 0777 system system +#add for laser + chown system system /dev/stmvl53l1_ranging + chmod 0666 /dev/stmvl53l1_ranging + start vl53l1_daemon_main +#add for ams-tof + chown system system /sys/kernel/tof_control/app0/capture + chmod 666 /sys/kernel/tof_control/app0/capture + chown system system /sys/kernel/tof_control/app0/app0_get_fac_calib + chmod 666 /sys/kernel/tof_control/app0/app0_get_fac_calib + chown system system /sys/kernel/tof_control/app0/app0_get_distance + chmod 666 /sys/kernel/tof_control/app0/app0_get_distance + chown system system /sys/kernel/tof_control/app0/app0_read_peak_crosstalk + chmod 666 /sys/kernel/tof_control/app0/app0_read_peak_crosstalk + chown system system /sys/kernel/tof_control/app0/period + chmod 666 /sys/kernel/tof_control/app0/period + chown system system /sys/kernel/tof_control/app0/iterations + chmod 666 /sys/kernel/tof_control/app0/iterations + chown system system /sys/kernel/tof_control/app0/alg_setting + chmod 666 /sys/kernel/tof_control/app0/alg_setting + chown system system /sys/kernel/tof_control/app0/app0_clk_iterations + chmod 666 /sys/kernel/tof_control/app0/app0_clk_iterations + chown system system /sys/kernel/tof_control/chip_enable + chmod 666 /sys/kernel/tof_control/chip_enable + chown system system /sys/kernel/tof_control/app0/app0_clk_trim_set + chmod 666 /sys/kernel/tof_control/app0/app0_clk_trim_set + chown system system /sys/kernel/tof_control/app0/app0_apply_fac_calib + chmod 666 /sys/kernel/tof_control/app0/app0_apply_fac_calib + chown system system /sys/kernel/tof_control/driver_debug + chmod 666 /sys/kernel/tof_control/driver_debug +#add for ois debug + chown system system /sys/kernel/ois_control/dump_registers + chmod 666 /sys/kernel/ois_control/dump_registers + + +# Power@bsp, 2020/2/27, add for thermal + chown system system /dev/msm_thermal + chown system system /dev/skin_thermal + chown system system /dev/modem_skin_thermal + chown system system /dev/mmw0_thermal + chown system system /dev/mmw1_thermal + chown system system /dev/mmw2_thermal + chmod 0664 /dev/msm_thermal + chmod 0664 /dev/skin_thermal + chmod 0664 /dev/modem_skin_thermal + chmod 0664 /dev/mmw0_thermal + chmod 0664 /dev/mmw1_thermal + chmod 0664 /dev/mmw2_thermal + +#ifdef VENDOR_EDIT +#if OP_FEATURE_MM_ADSP_MINIDUMP == 1 +# zhangrun@MM, 2020/09/12, implement to collect adsp minidump + chmod 664 /dev/ramdump_adsp +#endif + +#ifdef VENDOR_EDIT +# BSP add for display 2020/04/17 @Leo_BSP + chmod 0666 /sys/class/drm/card0-DSI-1/hbm + chmod 0666 /sys/class/drm/card0-DSI-1/hbm_brightness + chmod 0666 /sys/class/backlight/panel0-backlight/brightness +#endif +# display add 2018/10/19 @lichao_display + chmod 0666 /sys/class/drm/card0-DSI-1/SRGB + chmod 0666 /sys/class/drm/card0-DSI-1/DCI_P3 + chmod 0666 /sys/class/drm/card0-DSI-1/aod + chmod 0666 /sys/class/drm/card0-DSI-1/night_mode + chmod 0666 /sys/class/drm/card0-DSI-1/panel_serial_number + chmod 0666 /sys/class/drm/card0-DSI-1/cabc + chmod 0666 /sys/class/drm/card0-DSI-1/oplus_shutdownflag + chmod 0666 /sys/class/drm/card0-DSI-1/oneplus_mode + chmod 0666 /sys/class/drm/card0-DSI-1/adaption_mode + chmod 0666 /sys/class/drm/card0-DSI-1/notify_fppress + chmod 0666 /sys/class/drm/card0-DSI-1/dim_alpha + chmod 0666 /sys/class/drm/card0-DSI-1/notify_dim + chmod 0666 /sys/class/drm/card0-DSI-1/force_screenfp + chmod 0666 /sys/class/drm/card0-DSI-1/native_display_p3_mode + chmod 0666 /sys/class/drm/card0-DSI-1/native_display_wide_color_mode + chmod 0666 /sys/class/drm/card0-DSI-1/native_display_srgb_color_mode + chmod 0666 /sys/devices/platform/soc/soc:qcom,dsi-display-primary/dynamic_dsi_clock + chown radio radio /sys/devices/platform/soc/soc:qcom,dsi-display-primary/dynamic_dsi_clock + chown radio radio /proc/force_reset + chmod 0666 /sys/class/drm/card0-DSI-1/native_display_loading_effect_mode + chmod 0666 /sys/class/drm/card0-DSI-1/native_display_customer_srgb_mode + chmod 0666 /sys/class/drm/card0-DSI-1/native_display_customer_p3_mode + chmod 0666 /sys/class/drm/card0-DSI-1/dimlayer_bl_en + chmod 0666 /sys/class/drm/card0-DSI-1/dither_en + chmod 0666 /sys/class/drm/card0-DSI-1/oplus_msd_aod + + chmod 0666 /sys/class/drm/card0-DSI-1/osc_mode + chown radio radio /sys/class/drm/card0-DSI-1/osc_mode + +# ken.lin@ASTI, 2019/6/21, add for fsc + chown system system /sys/module/fsc/parameters/enable + chmod 0664 /sys/module/fsc/parameters/enable + +on boot +#ifdef VENDOR_EDIT + chmod 0666 /dev/goodix_fp + chmod 0660 /sys/devices/platform/soc/soc:fingerprint_detect/sensor_version + chown system system /sys/devices/platform/soc/soc:fingerprint_detect/sensor_version + chmod 0666 /proc/touchpanel/touch_hold + chown system system /proc/touchpanel/touch_hold + chmod 0664 sys/devices/platform/soc/soc:goodix_fp/screen_state + chown system system sys/devices/platform/soc/soc:goodix_fp/screen_state + chmod 0666 /dev/qseecom + + # access permission for egis + chown system system /dev/esfp0 + chmod 0666 /dev/esfp0 + # access permission for egis navigation + chmod 0666 /sys/devices/platform/egis_input/navigation_event + chmod 0666 /sys/devices/platform/egis_input/navigation_enable + chown system system /sys/devices/platform/egis_input/navigation_event + chown system system /sys/devices/platform/egis_input/navigation_enable +#endif + setprop ro.nfc.port "I2C" + chmod 0666 /dev/pn553 + chown nfc nfc /dev/pn553 + chmod 0666 /dev/p73 + chown secure_element secure_element /dev/p73 +#Leo@BSP 2020/04/17 add for qsee_log tz_log + chmod 0666 /proc/tzdbg/qsee_log + chmod 0666 /proc/tzdbg/log +#Norman@Connectivity 2020/04/24 add for default country code + setprop ro.boot.wificountrycode 00 + +#martin.li@BSP, 2019/12/03,support for EngineeringMode tool start + chown system system /proc/rf_cable_config + chown system system /proc/rf_factory_mode +#martin.li@BSP, 2019/12/03,support for EngineeringMode tool end +#ifdef VENDOR_EDIT +#Set TCP MTU probing to automatic + write /proc/sys/net/ipv4/tcp_mtu_probing 1 +#endif /*VENDOR_EDIT*/ + +#ifdef VENDOR_EDIT +#tempest.chen@BSP 2020/12/07 add for light sensor and ultrasound proximity + chmod 666 /dev/input/event1 + chmod 666 /dev/input/event2 + chmod 666 /dev/input/event8 + chmod 666 /dev/input/event10 +#endif /*VENDOR_EDIT*/ + +#ifdef VENDOR_EDIT +#niku.huang@SYSTEM, 2020/12/30, Add for enable round corner + setprop vendor.display.disable_rounded_corner 0 +#endif /*VENDOR_EDIT*/ + +on init + setprop vendor.boot.verifiedbootstate ${ro.boot.verifiedbootstate} + setprop vendor.boot.hw_version ${ro.boot.hw_version} + + #@bsp, 2019/08/22 Add dash charging + chown system system /dev/dash + chmod 0664 /dev/dash + #restorecon /dev/dash + chown system system /dev/wlchg + chmod 0664 /dev/wlchg + #restorecon /dev/wlchg + +on post-fs +#ifdef VENDOR_EDIT +#oscar.wei@SYSTEM, 2019/10/02, [AN-604] opdiagnose porting, create folder and binary file. + mkdir /mnt/vendor/persist/OPDiagnose 0770 system system + chmod 660 /mnt/vendor/persist/OPDiagnose/opdiagnosedata + chown system system /mnt/vendor/persist/OPDiagnose/opdiagnosedata +#endif + chmod 0664 /sys/module/qpnp_smb5/parameters/usb_connector_temp + chown system system /sys/module/qpnp_smb5/parameters/usb_connector_temp + chmod 0664 /sys/module/qpnp_smb5/parameters/disable_connector_protect + chown system system /sys/module/qpnp_smb5/parameters/disable_connector_protect + chmod 0664 /sys/module/qpnp_smb5/parameters/usb_interval_temp + chown system system /sys/module/qpnp_smb5/parameters/usb_interval_temp + chmod 0664 /sys/module/qpnp_smb5/parameters/call_on + chown radio radio /sys/module/qpnp_smb5/parameters/call_on + chmod 0666 /sys/module/qpnp_smb5/parameters/video_call_on + chown system system /sys/module/qpnp_smb5/parameters/video_call_on + chown system system /proc/skin_temp_thrd/fastchg_thd + chown system system /proc/skin_temp_thrd/fastchg_lcdoff_thd + chown system system /proc/skin_temp_thrd/norchg_thd + chown system system /proc/skin_temp_thrd/norchg_lcdoff_thd +#ifdef VENDOR_EDIT +#brandon.zeng@Conn,2020/05/08. add for nfc pnscr tool + chown system system /vendor/bin/nfc_trasmit_start.sh + chmod 0777 /vendor/bin/nfc_trasmit_start.sh + chown system system /vendor/bin/nfc_trasmit_stop.sh + chmod 0777 /vendor/bin/nfc_trasmit_stop.sh + chown system system vendor/bin/pnscr + chmod 0777 vendor/bin/pnscr +#endif + +#ifdef VENDOR_EDIT +# /* create a empty file for wifi hal to write mac address */ + mkdir /mnt/vendor/persist/qca6390 0770 wifi wifi + write /mnt/vendor/persist/qca6390/wlan_mac.bin "" + chown wifi wifi /mnt/vendor/persist/qca6390/wlan_mac.bin + copy /vendor/etc/wifi/qca6390/WCNSS_qcom_cfg.ini /mnt/vendor/persist/qca6390/WCNSS_qcom_cfg.ini + chown wifi wifi /mnt/vendor/persist/qca6390/WCNSS_qcom_cfg.ini +# /*create a empty file for wifi single point calibration*/ + mkdir /mnt/vendor/persist/copy 0770 wifi wifi +# /* create a empty file for wifi hal to write qca6490 mac address */ + write /mnt/vendor/persist/wlan_mac.bin "" + chown wifi wifi /mnt/vendor/persist/wlan_mac.bin +# /* Implement the function of forced Chain0/1 insmod WCNSS_qcom_cfg.ini */ + copy /vendor/etc/wifi/WCNSS_qcom_cfg.ini /mnt/vendor/persist/WCNSS_qcom_cfg.ini + chown wifi wifi /mnt/vendor/persist/WCNSS_qcom_cfg.ini +#endif + +#ifdef VENDOR_EDIT +#henry.cao@system, add for engineermode + mkdir /mnt/vendor/persist/engineermode 0777 system system +#endif + chown system system /proc/ship_mode + chown system system /dev/param + +#ifdef VENDOR_EDIT +#create path for NV items + +#ifdef VENDOR_EDIT +#ken.chenxm@SYSTEM, 2019/10/10, add for [OSP-3172] charging optimizated + chown system system /sys/class/power_supply/battery/op_disable_charge + chmod 660 /sys/class/power_supply/battery/op_disable_charge + chown system system /sys/class/power_supply/bms/battery_h + chmod 660 /sys/class/power_supply/bms/battery_h +#brian@BSP, 2021/3/4, add for [IKR-43692] charging optimizated + chown system system /sys/class/power_supply/bms/full_available_capacity + chmod 660 /sys/class/power_supply/bms/full_available_capacity + chown system system /sys/class/power_supply/bms/full_charge_capacity_filtered + chmod 660 /sys/class/power_supply/bms/full_charge_capacity_filtered +#endif +#ifdef VENDOR_EDIT +#randle.liu@optimization, 2020/04/24, [OSP-6116] avoid waking up when wireless charging disconnects + chown system system /sys/class/power_supply/wireless/icon_delay + chmod 660 /sys/class/power_supply/wireless/icon_delay +#endif +#jay.fa@OPTI, 2020/08/12, add for [OPTI-42] hypnus + chown root system /sys/class/thermal/cooling_device0/cur_state + chown root system /sys/class/thermal/cooling_device1/cur_state + chown root system /sys/class/thermal/cooling_device2/cur_state + chown root system /sys/class/kgsl/kgsl-3d0/max_pwrlevel + chown root system /sys/class/kgsl/kgsl-3d0/min_pwrlevel + chown root system /sys/class/thermal/cooling_device14/cur_state + chmod 660 /sys/class/thermal/cooling_device0/cur_state + chmod 660 /sys/class/thermal/cooling_device1/cur_state + chmod 660 /sys/class/thermal/cooling_device2/cur_state + chmod 660 /sys/class/kgsl/kgsl-3d0/max_pwrlevel + chmod 660 /sys/class/kgsl/kgsl-3d0/min_pwrlevel + chmod 660 /sys/class/thermal/cooling_device14/cur_state + +on post-fs-data + mkdir /data/vendor/oemnvitems 0771 radio radio + #brandon.zeng@Conn,2020/08/11. move data path to post-fs-data + mkdir /data/vendor/nfc 0770 nfc nfc + # Ted.Lin@ASTI 2019/06/12 add for CONFIG_HOUSTON + chown system system /sys/module/houston/parameters/fps_boost + chown system system /sys/module/houston/parameters/fps_data_sync + chown system system /sys/module/houston/parameters/perf_ready + chown system system /sys/module/houston/parameters/ais_enable + chown system system /sys/module/houston/parameters/sample_rate_ms + chown system system /sys/module/houston/parameters/ht_enable + chown system system /sys/module/houston/parameters/fps_boost_enable + chown system system /sys/module/houston/parameters/fps_boost_strategy + chown system system /sys/module/houston/parameters/tb_ctl + chown system system /sys/module/houston/parameters/tb_enable + chown system system /sys/module/houston/parameters/reset + chown system system /sys/module/houston/parameters/hwui_boost_enable + chown system system /sys/module/houston/parameters/fuse_boost + chown system system /dev/ht_ctl + chown system system /sys/module/pccore/parameters/params + chown system system /sys/module/tpd/parameters/tpd_enable + chown system system /sys/module/tpd/parameters/tpd_cmds + chown system system /sys/module/tpd/parameters/tpd_id + chown system system /sys/module/tpd/parameters/tpd_dynamic + chown system system /sys/module/fuse/parameters/shortcircuit + chown system system /sys/module/fuse/parameters/sct_mode + # Jacky.Ho@OPTI 2020/09/23 add for [OSP-8617] + chown system system /sys/module/houston/parameters/game_fps_pid + chown system system /sys/module/houston/parameters/game_info + # fps stabilizer + chown system system /sys/module/houston/parameters/efps_max + chown system system /sys/module/houston/parameters/fps_boost_strategy + chown system system /sys/module/houston/parameters/egl_buf + chown system system /sys/module/houston/parameters/ht_online_config_update + + # rock.lin@OPTI [OPTI-191] for power consumption + chown system system /sys/module/cpufreq_bouncing/parameters/enable + chown system system /sys/module/cpufreq_bouncing/parameters/config + + # Jacky.Ho@OPTI 2020/09/30 add for [OPTI-85] + chown system system /sys/module/tpp/parameters/tpp_on + chown system system /sys/module/tpp/parameters/strategy + +# Ted.Lin@ASTI 2019/06/12 add for CONFIG_CONTROL_CENTER + chown system system /dev/cc_ctl + chown system system /proc/cc_ctl + +#endif /* VENDOR_EDIT */ + +# rock.lin@OPTI 2020/06/11 add for CONFIG_RATP + chown system system /sys/module/ratp/parameters/ratp_enable + +#ifdef VENDOR_EDIT +# TomCheng@Core ,2020/06/22, HDCP provision key feature + mkdir /mnt/vendor/persist/hdcp/media_dump 0770 mediaex mediadrm + mkdir /mnt/vendor/persist/hdcp 775 media mediadrm + restorecon /mnt/vendor/persist/hdcp +#endif + +# ifdef VENDOR_EDIT +# denzel.chen@performance, 2020/05/12, add for OPBRITN-3462 + chmod 664 /sys/module/memplus_core/parameters/memory_plus_wake_memex + chown system system /sys/module/memplus_core/parameters/memory_plus_wake_memex +# endif + + # neil.sun@Connectivity, 2020/08/12, add for wifi minidump + mkdir /data/vendor/ramdump/wifi 0770 system system + +#if OP_FEATURE_MM_ADSP_MINIDUMP == 1 +# zhangrun@MM, 2020/09/12, implement to collect adsp minidump + mkdir /data/vendor/ramdump/adsp 0770 system system +# endif + + # kimmy.yang@NETWORK, 20201223, add for SM8350 (SoC) + mkdir /data/vendor/ramdump/modem 0770 system system + +#ifdef VENDOR_EDIT online ISP tuning + mkdir /data/vendor/camera_update 0777 camera camera + write /data/vendor/camera_update/reservetuningbin0 "" + write /data/vendor/camera_update/reservetuningbin1 "" + write /data/vendor/camera_update/reservetuningbin2 "" + write /data/vendor/camera_update/reservetuningbin3 "" + write /data/vendor/camera_update/reservetuningbin4 "" + write /data/vendor/camera_update/reservetuningbin5 "" + write /data/vendor/camera_update/reservetuningbin6 "" + + chmod 0666 /data/vendor/camera_update/reservetuningbin0 + chmod 0666 /data/vendor/camera_update/reservetuningbin1 + chmod 0666 /data/vendor/camera_update/reservetuningbin2 + chmod 0666 /data/vendor/camera_update/reservetuningbin3 + chmod 0666 /data/vendor/camera_update/reservetuningbin4 + chmod 0666 /data/vendor/camera_update/reservetuningbin5 + chmod 0666 /data/vendor/camera_update/reservetuningbin6 +#endif + +# for battery charging off is call_state_change +# jinguozhi@wt.network,20210207,add for battery charging off is call_state_change +on property:persist.sys.chgdisabled=1 + write /sys/class/power_supply/battery/call_mode 1 +on property:persist.sys.chgdisabled=0 + write /sys/class/power_supply/battery/call_mode 0 + +# add for SMT test enters WLAN FTM test in non-signaling +service wififtmserver /vendor/bin/sh vendor/bin/wifi_ftm + class late_start + user root + group root + disabled + oneshot + +# ted.lin@OPTU [OPTI-191] add for qcom boost config +on property:vendor.post_boot.parsed=1 + chown system system /sys/devices/system/cpu/cpu0/cpufreq/schedutil/target_loads + chown system system /sys/devices/system/cpu/cpu4/cpufreq/schedutil/target_loads + chown system system /sys/devices/system/cpu/cpu7/cpufreq/schedutil/target_loads + chown system system /sys/devices/system/cpu/cpu7/core_ctl/busy_up_thres + chown system system /sys/devices/system/cpu/cpu7/core_ctl/busy_down_thres + +on property:vendor.wlan.ftm.up=1 + start wififtmserver + +on property:persist.vendor.oem.wifi.chain=1 + copy /vendor/etc/wifi/WCNSS_qcom_cfg_setchain.ini /mnt/vendor/persist/qca6390/WCNSS_qcom_cfg.ini + copy /vendor/etc/wifi/WCNSS_qcom_cfg_setchain.ini /mnt/vendor/persist/WCNSS_qcom_cfg.ini + start service_setChain +on property:persist.vendor.oem.wifi.chain=2 + copy /vendor/etc/wifi/WCNSS_qcom_cfg_setchain.ini /mnt/vendor/persist/qca6390/WCNSS_qcom_cfg.ini + copy /vendor/etc/wifi/WCNSS_qcom_cfg_setchain.ini /mnt/vendor/persist/WCNSS_qcom_cfg.ini + start service_setChain +on property:persist.vendor.oem.wifi.chain=0 + copy /vendor/etc/wifi/qca6390/WCNSS_qcom_cfg.ini /mnt/vendor/persist/qca6390/WCNSS_qcom_cfg.ini + copy /vendor/etc/wifi/WCNSS_qcom_cfg.ini /mnt/vendor/persist/WCNSS_qcom_cfg.ini + start service_setChain +on property:persist.vendor.oem.wifi.chain=3 + copy /vendor/etc/wifi/WCNSS_qcom_cfg_roam.ini /mnt/vendor/persist/qca6390/WCNSS_qcom_cfg.ini + copy /vendor/etc/wifi/WCNSS_qcom_cfg_roam.ini /mnt/vendor/persist/WCNSS_qcom_cfg.ini +service service_setChain /vendor/bin/sh /vendor/bin/wifi_setChain ${persist.vendor.oem.wifi.chain} + class main + user root + group root system + disabled + oneshot + +on property:persist.vendor.oem.wifi.txenable=1 + start service_wifi_txEnable + +service service_wifi_txEnable /vendor/bin/sh /vendor/bin/wifi_txEnable + class main + user root + group root system + disabled + oneshot + +on init + mkdir /dev/op_cgroup 0750 root system + mount tmpfs none /dev/op_cgroup mode=0750,uid=0,gid=1000 + mkdir /dev/op_cgroup/freezer 0750 root system + mount cgroup none /dev/op_cgroup/freezer freezer + chmod 777 /dev/op_cgroup/freezer +#ifdef VENDOR_EDIT + setprop persist.vendor.mdm_helper.fail_action cold_reset,s3_reset,panic +#endif + +# alex.huang@Connectivity, 2020/04/29, Porting *#8019# function +#ifdef VENDOR_EDIT +service wifisocket-mdm /system_ext/bin/diag_system_socket_log -a 181.157.1.200 -p 2500 -r 10000 -c 2 + user root + group root system oem_2901 + disabled + oneshot + seclabel u:r:logserver:s0 + +service wifisocket-mdm-stop /system_ext/bin/diag_system_socket_log -k + user root + group root system oem_2901 + disabled + oneshot + seclabel u:r:logserver:s0 + +service oemsysd /vendor/bin/oem-system-daemon + class main + user root + group root system oem_2901 + disabled + seclabel u:r:ftmdaemon:s0 + +on property:vendor.service.wifi.socket.mdm.enable=1 + start oemsysd + start wifisocket-mdm + +on property:vendor.service.wifi.socket.mdm.enable=0 + stop oemsysd + start wifisocket-mdm-stop + +service wifisocket /vendor/bin/diag_socket_log -a 181.157.1.200 -p 2500 -r 10000 -c 1 + user root + group root system oem_2901 + disabled + oneshot + +service wifisocket-stop /vendor/bin/diag_socket_log -k + user root + group root system oem_2901 + disabled + oneshot + +on property:vendor.service.wifi.socket.enable=1 + start oemsysd + +on property:vendor.service.wifi.socket.enable=0 + stop oemsysd + +service wifisocket-lahaina /vendor/bin/diag_socket_log -a 181.157.1.200 -p 2500 -r 10000 -c 1 + user root + group root system oem_2901 + disabled + oneshot + +service wifisocket-lahaina-stop /vendor/bin/diag_socket_log -k + user root + group root system oem_2901 + disabled + oneshot + +on property:vendor.service.wifi.socket.lahaina.enable=0 + stop oemsysd + +on property:vendor.service.wifi.socket.lahaina.enable=1 + start oemsysd + +service wifisocket-nord /system_ext/bin/diag_system_socket_log -a 181.157.1.200 -p 2500 -r 10000 -c 1 + user root + group root system oem_2901 + disabled + oneshot + seclabel u:r:logserver:s0 + +service wifisocket-nord-stop /system_ext/bin/diag_system_socket_log -k + user root + group root system oem_2901 + disabled + oneshot + seclabel u:r:logserver:s0 + +on property:vendor.service.wifi.socket.nord.enable=1 + start oemsysd + start wifisocket-nord + +on property:vendor.service.wifi.socket.nord.enable=0 + stop oemsysd + start wifisocket-nord-stop +#endif + +service ftmdaemon /system/vendor/bin/ftmdaemon -n + class late_start + user root + group wifi root system oem_2901 + disabled + oneshot + seclabel u:r:ftmdaemon:s0 + +service wifi_ftm_up /vendor/bin/sh /vendor/bin/wifi_ftm_up + class late_start + user root + group root + disabled + oneshot + +service reload_wlan_driver /vendor/bin/sh /vendor/bin/reload_wlan_driver + class late_start + user root + group root + disabled + oneshot +#ifdef VENDOR_EDIT +#yuquan.fei@Connectivity, 2020/05/06, porting wlan logs functions +service stop_pktlog /system/vendor/bin/stoppktlog + class main + user system + group system wifi inet net_admin sdcard_rw media_rw diag + disabled + oneshot +#endif + +# denzel.chen@performance, 2020/05/12, add for OPBRITN-3462 +# system server cannot write to /proc/sys files, +# and chown/chmod does not work for /proc/sys/ entries. +# So proxy writes through init. +on property:sys.sysctl.watermark_boost_factor=* + write /proc/sys/vm/watermark_boost_factor ${sys.sysctl.watermark_boost_factor} + +#ifdef VENDOR_EDIT +on property:vendor.wlan.ftm.daemon=on + start wifi_ftm_up + start ftmdaemon + +on property:vendor.wlan.ftm.daemon=off + stop ftmdaemon + start reload_wlan_driver + +on property:vendor.wlan.write.con_mode=* + write /sys/module/wlan/parameters/con_mode ${vendor.wlan.write.con_mode} + +#ifdef VENDOR_EDIT +#binson.xu@oneplus.com, 2019/02/17, add for write alikey +service mvalikey /system/bin/cp -rp /sdcard/.lii /mnt/vendor/op2/ + class core + user root + group root + disabled + oneshot + seclabel u:r:vold:s0 + +service rmalikey /system/bin/rm -r /mnt/vendor/op2/.lii + class core + user root + group root + disabled + oneshot + seclabel u:r:vold:s0 + +service chownalikey /system/bin/chown -R system.system /mnt/vendor/op2/.lii + class core + user root + group root + disabled + oneshot + seclabel u:r:vold:s0 + +#len.nie@bsp, 2020/11/04. add for dump fingerprint data +on property:gf.debug.dump_path=* + mkdir /sdcard/Android/data/gf_file 0755 system ext_data_rw + +#endif + +# ken.lin@ASTI, 2019/6/21, add for memplus +service memplus_config /vendor/bin/sh /vendor/etc/vendor.memplus.sh + user root + disabled + oneshot + seclabel u:r:vendor_qti_init_shell:s0 + +on property:persist.vendor.memplus.enable=* + start memplus_config + +on property:persist.sys.memplus.swappiness=* + write /proc/sys/vm/swappiness ${persist.sys.memplus.swappiness} +on property:persist.sys.memplus.direct_swappiness=* + write /proc/sys/vm/direct_swappiness ${persist.sys.memplus.direct_swappiness} + +#ifdef VENDOR_EDIT +#brandon.zeng@Conn,2020/05/08. add for nfc pnscr tool +service nfctransmitstart /vendor/bin/sh /vendor/bin/nfc_trasmit_start.sh + class late_start + user nfc + group nfc + disabled + oneshot + +service nfctransmitstop /vendor/bin/sh /vendor/bin/nfc_trasmit_stop.sh + class late_start + user nfc + group nfc + disabled + oneshot + +on property:vendor.nfc.transmit.start=1 + start nfctransmitstart + +on property:vendor.nfc.transmit.start=0 + stop nfctransmitstart + +on property:vendor.nfc.transmit.stop=1 + start nfctransmitstop + +on property:vendor.nfc.transmit.stop=0 + stop nfctransmitstop +#endif + +#ifdef VENDOR_EDIT +on property:sys.usb.config=diag,adb && property:sys.usb.configfs=1 + start wifitestdiag + +service wifitestdiag /vendor/bin/wifi_diag + class main + user root + group root system oem_2901 + disabled + seclabel u:r:ftmdaemon:s0 +#endif + +#ifdef VENDOR_EDIT +service vl53l1_daemon_main /vendor/bin/vl53l1_daemon_main + class late_start + user system + group system + socket vl53l1_daemon stream 660 system system +#endif + +#oscar.wei@SYSTEM, 2019/10/02, [AN-604] opdiagnose porting : create opdiagnose service +service opdiagnose /system_ext/bin/OPDiagnoseservice + class core + user root + group system + +service opdiagdatacopy /system_ext/bin/OPDiagdataCopy + class core + user root + group system everybody + oneshot + disabled + +on property:vendor.copy.opdiagnose.data=1 + start opdiagdatacopy + +service copy_qxdm_log /system_ext/bin/OPDiagdataCopy -q ${copy.qxdm.log} + class core + user root + group system everybody + oneshot + disabled +#endif + +#ifdef VENDOR_EDIT +#kim@bsp 2019/10/25 add to fix apsd wrong issue when boot with dash connected +on property:sys.boot_completed=1 + write /sys/module/smb5_lib/parameters/sys_boot_complete 1 +#@bsp Add OTG switch +on property:persist.sys.oem.otg_support=true + write /sys/class/power_supply/usb/otg_switch 1 + write /sys/class/oplus_chg/usb/otg_switch 1 +on property:persist.sys.oem.otg_support=false + write /sys/class/power_supply/usb/otg_switch 0 + write /sys/class/oplus_chg/usb/otg_switch 0 +#endif + +#ifdef VENDOR_EDIT +on property:persist.vendor.oem.wechat_cameraon=1 + write /sys/class/oplus_chg/common/camera_on 1 +on property:persist.vendor.oem.wechat_cameraon=0 + write /sys/class/oplus_chg/common/camera_on 0 +#endif + +on property:vendor.sys.op.game=1 + write /proc/sys/kernel/sched_skip_affinity 1 + +on property:vendor.sys.op.game=0 + write /proc/sys/kernel/sched_skip_affinity 0 + +#ifdef VENDOR_EDIT +on property:vendor.wlan.sniffer.enabled=1 + start launch_sniffer + setprop vendor.wlan.sniffer.status 1 + +on property:vendor.wlan.sniffer.enabled=0 + stop launch_sniffer + start terminate_sniffer + +service launch_sniffer /vendor/bin/sh /vendor/bin/launch_sniffer.sh ${vendor.wlan.sniffer.iface} ${vendor.wlan.sniffer.channel} ${vendor.wlan.sniffer.bandwidth} + class main + user root + group root + disabled + oneshot + +service terminate_sniffer /vendor/bin/sh /vendor/bin/terminate_sniffer.sh + class main + user root + group root + disabled + oneshot + +#v-krishna.rao@Connectivity, 2020/12/21 , servce to set iwpriv contention for btwifi coex debugging +on property:persist.vendor.oem.btwificoex.debug=1 + start startiwprivcontention + +on property:persist.vendor.oem.btwificoex.debug=0 + start stopiwprivcontention + +on property:wlan.driver.status=ok && property:persist.vendor.oem.btwificoex.debug=1 + start startiwprivcontention + +service startiwprivcontention /vendor/bin/sh /vendor/bin/startcontention.sh 1 + class main + user root + group root + disabled + oneshot + +service stopiwprivcontention /vendor/bin/sh /vendor/bin/startcontention.sh 0 + class main + user root + group root + disabled + oneshot + +#endif + +#ifdef VENDOR_EDIT +# TomCheng@Core ,2020/06/22, HDCP provision key feature +service mvhdcpkey /system/bin/mv /sdcard/hdcpkey /mnt/vendor/op2/hdcpkey + class core + user root + group root + disabled + oneshot + seclabel u:r:vold:s0 + +service rmhdcpkey /system/bin/rm /mnt/vendor/op2/hdcpkey + class core + user root + group root + disabled + oneshot + seclabel u:r:vold:s0 + +service chmodhdcpkey /system/bin/chmod 777 /mnt/vendor/op2/hdcpkey + class core + user root + group root + disabled + oneshot + seclabel u:r:vold:s0 + +service dphdcp2p2prov /vendor/bin/hdcp2p2prov /mnt/vendor/op2/dphdcp2key /mnt/vendor/op2/DPS_hdcp2 + class core + setenv LD_LIBRARY_PATH /vendor/lib64 + user root + group root + disabled + oneshot + seclabel u:r:vendor_init:s0 + +service verifydphdcp2p2prov /vendor/bin/hdcp2p2prov -verify + class core + setenv LD_LIBRARY_PATH /vendor/lib64 + user root + group root + disabled + oneshot + seclabel u:r:vendor_init:s0 + +service mvdphdcp2key /system/bin/mv /sdcard/dphdcp2key /mnt/vendor/op2/dphdcp2key + class core + user root + group root + disabled + oneshot + seclabel u:r:vold:s0 + +service rmdphdcp2key /system/bin/rm /mnt/vendor/op2/dphdcp2key + class core + user root + group root + disabled + oneshot + seclabel u:r:vold:s0 + +service mvdpshdcp2 /system/bin/mv /sdcard/DPS_hdcp2 /mnt/vendor/op2/DPS_hdcp2 + class core + user root + group root + disabled + oneshot + seclabel u:r:vold:s0 + +service rmdpshdcp2 /system/bin/rm /mnt/vendor/op2/DPS_hdcp2 + class core + user root + group root + disabled + oneshot + seclabel u:r:vold:s0 +#endif + +on property:vendor.sys.op.disable_ufstw=1 + write /sys/devices/platform/soc/1d84000.ufshc/ufstw_lu0/tw_enable 0 + +on property:vendor.sys.op.disable_ufstw=0 + write /sys/devices/platform/soc/1d84000.ufshc/ufstw_lu0/tw_enable 1 + +service filebuilderd /system_ext/bin/filebuilderd + class core + user root + group root system + disabled + oneshot + seclabel u:r:vold:s0 + +on property:sys.boot_completed=1 && property:persist.sys.ufs_hpb_disable=1 + write /sys/devices/platform/soc/1d84000.ufshc/ufshpb_lu0/release 171 + +on property:sys.boot_completed=1 + write /sys/devices/platform/soc/1d84000.ufshc/ufstw_lu0/tw_enable 1 + write /sys/devices/platform/soc/1d84000.ufshc/ufstw_lu0/flush_enable 1 + write /sys/devices/platform/soc/1d84000.ufshc/ufstw_lu0/flush_during_hibern_enter 1 + +# ifdef VENDOR_EDIT +# narci.gu@SYSTEM, 2018/7/23, [AN-709] Add for keymaster key +service KmInstallKeybox19805 /vendor/bin/KmInstallKeybox /mnt/vendor/op2/.lii/keyboxes_ciphered.xml OnePlus8T_Key_Attest_0 true + class core + setenv LD_LIBRARY_PATH /vendor/lib64/hw + user system + group root + disabled + oneshot + seclabel u:r:keybox_oem:s0 + +service KmInstallKeybox20809 /vendor/bin/KmInstallKeybox /mnt/vendor/op2/.lii/keyboxes_ciphered.xml OnePlus8TTMO_Key_Attest_0 true + class core + setenv LD_LIBRARY_PATH /vendor/lib64/hw + user system + group root + disabled + oneshot + seclabel u:r:keybox_oem:s0 + +# ifdef VENDOR_EDIT +# yanamadala.ragini@SYSTEM, 2018/7/23, [AVICII-2558] Add for keymaster key +service KmInstallKeybox20801 /vendor/bin/KmInstallKeybox /mnt/vendor/op2/.lii/keyboxes_ciphered.xml Nord_Key_Attest_00 true + class core + setenv LD_LIBRARY_PATH /vendor/lib64/hw + user system + group root + disabled + oneshot + seclabel u:r:keybox_oem:s0 + +# yanamadala.ragini@SYSTEM, 2020/11/30, [AN-977] Add for keymaster key +service KmInstallKeybox20828 /vendor/bin/KmInstallKeybox /mnt/vendor/op2/.lii/keyboxes_ciphered.xml OnePlus9R_Key_Attest_0 true + class core + setenv LD_LIBRARY_PATH /vendor/lib64/hw + user system + group root + disabled + oneshot + seclabel u:r:keybox_oem:s0 +# endif + +# v-huanouyang@SYSTEM, 2020/10/22 [TFS-20170] Update Google key box for check on Lemonadev +service KmInstallKeyboxLemonadev /vendor/bin/KmInstallKeybox /mnt/vendor/op2/.lii/keyboxes_ciphered.xml OnePlus9VZW_Key_Attest_0 true + class core + setenv LD_LIBRARY_PATH /vendor/lib64/hw + user system + group root + disabled + oneshot + seclabel u:r:keybox_oem:s0 + +# v-huanouyang@SYSTEM, 2020/10/22 [TFS-20170] Update Google key box for check on Lemonadet +service KmInstallKeyboxLemonadet /vendor/bin/KmInstallKeybox /mnt/vendor/op2/.lii/keyboxes_ciphered.xml OnePlus9TMO_Key_Attest_0 true + class core + setenv LD_LIBRARY_PATH /vendor/lib64/hw + user system + group root + disabled + oneshot + seclabel u:r:keybox_oem:s0 + +# v-huanouyang@SYSTEM, 2020/10/22 [TFS-20170] Update Google key box for check on Lemonade +service KmInstallKeyboxLemonade /vendor/bin/KmInstallKeybox /mnt/vendor/op2/.lii/keyboxes_ciphered.xml OnePlus9_Key_Attest_0 true + class core + setenv LD_LIBRARY_PATH /vendor/lib64/hw + user system + group root + disabled + oneshot + seclabel u:r:keybox_oem:s0 + +# v-huanouyang@SYSTEM, 2020/10/22 [TFS-20170] Update Google key box for check on Lemonadep +service KmInstallKeyboxLemonadep /vendor/bin/KmInstallKeybox /mnt/vendor/op2/.lii/keyboxes_ciphered.xml OnePlus9Pro_Key_Attest_0 true + class core + setenv LD_LIBRARY_PATH /vendor/lib64/hw + user system + group root + disabled + oneshot + seclabel u:r:keybox_oem:s0 + +# v-huanouyang@SYSTEM, 2020/10/22 [TFS-20170] Update Google key box for check on Lemonadept +service KmInstallKeyboxLemonadept /vendor/bin/KmInstallKeybox /mnt/vendor/op2/.lii/keyboxes_ciphered.xml OnePlus9ProTMO_Key_Attest_0 true + class core + setenv LD_LIBRARY_PATH /vendor/lib64/hw + user system + group root + disabled + oneshot + seclabel u:r:keybox_oem:s0 + +# braden.liu@SYSTEM, 2021/01/05 Update Google key box for check on Dre +service KmInstallKeyboxDre8t /vendor/bin/KmInstallKeybox /mnt/vendor/op2/.lii/keyboxes_ciphered.xml OnePlusN200TMO_Key_Attest_0 true + class core + setenv LD_LIBRARY_PATH /vendor/lib64/hw + user system + group root + disabled + oneshot + seclabel u:r:keybox_oem:s0 + +# braden.liu@SYSTEM, 2021/01/05 Update Google key box for check on Dre +service KmInstallKeyboxDre8m /vendor/bin/KmInstallKeybox /mnt/vendor/op2/.lii/keyboxes_ciphered.xml OnePlusN200METRO_Key_Attest_0 true + class core + setenv LD_LIBRARY_PATH /vendor/lib64/hw + user system + group root + disabled + oneshot + seclabel u:r:keybox_oem:s0 + +# braden.liu@SYSTEM, 2021/01/05 Update Google key box for check on Dre +service KmInstallKeyboxDre9 /vendor/bin/KmInstallKeybox /mnt/vendor/op2/.lii/keyboxes_ciphered.xml OnePlusN200_Key_Attest_0 true + class core + setenv LD_LIBRARY_PATH /vendor/lib64/hw + user system + group root + disabled + oneshot + seclabel u:r:keybox_oem:s0 + +# dongbin@WT_ODM_SYSTEM, 2021/01/27 Update Google key box for check on ebba +service KmInstallKeybox20813 /vendor/bin/KmInstallKeybox /mnt/vendor/op2/.lii/keyboxes_ciphered.xml OnePlusNordCE_Key_Attest_00 true + class core + setenv LD_LIBRARY_PATH /vendor/lib64/hw + user system + group root + disabled + oneshot + seclabel u:r:keybox_oem:s0 + +service keyboxxml /system/bin/mv /sdcard/.lii /mnt/vendor/op2/ + class core + user root + group root + disabled + oneshot + seclabel u:r:vold:s0 + +service rmkeyboxxml /system/bin/rm -rf /mnt/vendor/op2/.lii + class core + user root + group root + disabled + oneshot + seclabel u:r:vold:s0 + +service chmodkeyboxxmldir /system/bin/chmod 777 -R /mnt/vendor/op2/.lii + class core + user root + group root + disabled + oneshot + seclabel u:r:vold:s0 +# endif + +#alden.zhang@OPTI, 2020/7/18. [OSP-8064], add for IOLIMIT +on property:persist.sys.iolimiter.enable=true + write /proc/iolimit_enable 1 + write /sys/module/oneplus_healthinfo/parameters/ohm_action_ctrl Y + chown system system /sys/module/oneplus_healthinfo + chown system system /sys/module/oneplus_healthinfo/parameters + chown system system /sys/module/oneplus_healthinfo/parameters/ohm_iowait_h_ms + chown system system /sys/module/oneplus_healthinfo/parameters/ohm_iowait_l_ms + chown system system /sys/module/oneplus_healthinfo/parameters/ohm_read_thresh + chown system system /sys/module/oneplus_healthinfo/parameters/ohm_write_thresh + chown system system /sys/module/oneplus_healthinfo/parameters/ohm_sample_time + chown system system /sys/module/oneplus_healthinfo/parameters/ohm_action_ctrl + chown system system /proc/iolimit_enable + +#huangwen.chen#OPTI, 2020/9/16, [OPTI-43], add for zram writeback +on property:persist.vendor.oem.dump=0 + setprop persist.vendor.zwriteback.backup 0 + +on property:persist.vendor.oem.dump=1 + setprop persist.vendor.zwriteback.backup 1 + +#ifdef ODM_WT_EDIT Kai.Cao@ODM_WT.NW.SIM,BILLIE8-6704, 2020/07/13,Support single and dual card solutions +on property:ro.boot.rf_version=0 && property:ro.boot.project_codename=billie8 + setprop persist.radio.multisim.config "ssss" +on property:ro.boot.rf_version=0 && property:ro.boot.project_codename=billie8t + setprop persist.radio.multisim.config "ssss" +#endif diff --git a/rootdir/etc/init.oem_ftm.rc b/rootdir/etc/init.oem_ftm.rc new file mode 100644 index 0000000..0e76a4b --- /dev/null +++ b/rootdir/etc/init.oem_ftm.rc @@ -0,0 +1,5 @@ +#factory load rc + +import /vendor/etc/init/hw/vendor.oem_ftm_svc_disable.rc +import /system/etc/init/hw/init.rc +import /vendor/etc/init/hw/vendor.oem_ftm.rc diff --git a/rootdir/etc/init.oem_rf.rc b/rootdir/etc/init.oem_rf.rc new file mode 100644 index 0000000..681b11f --- /dev/null +++ b/rootdir/etc/init.oem_rf.rc @@ -0,0 +1,11 @@ +#add for SMT test enters WLAN FTM test in non-signaling +service wififtmserver /vendor/bin/sh vendor/bin/wifi_ftm + class late_start + user root + group root + disabled + oneshot + +on property:vendor.wlan.ftm.up=1 + start wififtmserver + diff --git a/rootdir/etc/init.qcom.factory.rc b/rootdir/etc/init.qcom.factory.rc new file mode 100644 index 0000000..1edaa99 --- /dev/null +++ b/rootdir/etc/init.qcom.factory.rc @@ -0,0 +1,258 @@ +# +# Copyright (c) 2009-2016, The Linux Foundation. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of The Linux Foundation nor +# the names of its contributors may be used to endorse or promote +# products derived from this software without specific prior written +# permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +# Define fastmmi +service fastmmi /system_ext/bin/mmi + user root + group root + disabled + +service vendor.mmid /vendor/bin/mmid + user root + group root + disabled + +service mmi_diag /system_ext/bin/mmi_diag + class main + user root + group root oem_2901 + disabled + +on property:vendor.sys.boot_mode=ffbm + write ${persist.vendor.mmi.misc_dev_path} "ffbm-01" + +on property:vendor.sys.boot_mode=qmmi + write ${persist.vendor.mmi.misc_dev_path} "qmmi" + +on property:vendor.sys.boot_mode=normal + write ${persist.vendor.mmi.misc_dev_path} "normal" + +# Creating a scratch storage on /data for factory testing. +on factory-fs && property:ro.bootmode=ffbm-00 + mount tmpfs tmpfs /data + +on factory-fs && property:ro.bootmode=ffbm-01 + mount tmpfs tmpfs /data + +# aligned the usb port with system standard, otherwise if only diag be added +# Then in QMMI mode, the whole Andoid be booted, but due to the ro.bootmode is +# not normal/unknow, then when it apply the default funcs, it will turn to MTP +# which cause the diag/Wwan/modem port all be lost in qmmi mode. Details: +# UsbDeviceManager.java---->getDefaultFunctions and trySetEnabledFunctions +on property:persist.vendor.usb.config=* + setprop persist.sys.usb.qmmi.func ${persist.vendor.usb.config} + +on mmi && property:ro.bootmode=ffbm-00 + # ======================================================== + # This is FFBM only settings. + # ======================================================== + #mkdir for factory data files. + mkdir /mnt/vendor/persist/FTM_AP 0750 system system + + start fastmmi + # start qcom-post-boot to set the misc partition path property value + start qcom-post-boot + start mmi_diag + +on mmi && property:ro.bootmode=ffbm-01 + # ======================================================== + # This is FFBM only settings. + # ======================================================== + #mkdir for factory data files. + mkdir /mnt/vendor/persist/FTM_AP 0750 system system + + start fastmmi + ## start qcom-post-boot to set the misc partition path property value + start qcom-post-boot + start mmi_diag + +on property:persist.vendor.usb.config=* && property:ro.bootmode=ffbm-00 + setprop sys.usb.config ${persist.vendor.usb.config} + +on property:persist.vendor.usb.config=* && property:ro.bootmode=ffbm-01 + setprop sys.usb.config ${persist.vendor.usb.config} + +on property:persist.vendor.usb.config=* && property:ro.bootmode=ffbm-02 + setprop sys.usb.config ${persist.vendor.usb.config} + +on property:persist.vendor.usb.config=* && property:ro.bootmode=qmmi + setprop sys.usb.config ${persist.vendor.usb.config} + +on ffbm + trigger early-fs + trigger factory-fs + trigger fs + trigger post-fs + + # Mount fstab in init.{$device}.rc by mount_all with '--late' parameter + # to only mount entries with 'latemount'. This is needed if '--early' is + # specified in the previous mount_all command on the fs stage. + # With /system mounted and properties form /system + /factory available, + # some services can be started. + trigger late-fs + + # Now we can mount /data. File encryption requires keymaster to decrypt + # /data, which in turn can only be loaded when system properties are present. + trigger post-fs-data + + # Now we can start zygote for devices with file based encryption + trigger zygote-start + + # Load persist properties and override properties (if enabled) from /data. + trigger load_persist_props_action + + # Remove a file to wake up anything waiting for firmware. + trigger firmware_mounts_complete + + trigger early-boot + trigger boot + trigger mmi + + +# ======================================================== +# Start for audio TC +# ======================================================== + +service vendor.audio_tc53 /vendor/bin/mm-audio-ftm -tc 53 + user audio + group audio + disabled + oneshot + + +service vendor.audio_tc51 /vendor/bin/mm-audio-ftm -tc 51 + user audio + group audio + disabled + oneshot + +service vendor.audio_tc56 /vendor/bin/mm-audio-ftm -tc 56 + user audio + group audio + disabled + oneshot + +service vendor.audio_tc222 /vendor/bin/mm-audio-ftm -tc 222 + user audio + group audio + disabled + oneshot + +service vendor.audio_tc228 /vendor/bin/mm-audio-ftm -tc 228 + user audio + group audio + disabled + oneshot + +service vendor.audio_tc229 /vendor/bin/mm-audio-ftm -tc 229 + user audio + group audio + disabled + oneshot + +service vendor.audio_tc230 /vendor/bin/mm-audio-ftm -tc 230 + user audio + group audio + disabled + oneshot + +service vendor.audio_tc225 /vendor/bin/mm-audio-ftm -tc 225 + user audio + group audio + disabled + oneshot + +service vendor.audio_tc246 /vendor/bin/mm-audio-ftm -tc 246 + user audio + group audio + disabled + oneshot + +service vendor.audio_tc247 /vendor/bin/mm-audio-ftm -tc 247 + user audio + group audio + disabled + oneshot + +service vendor.audio_tc250 /vendor/bin/mm-audio-ftm -tc 250 + user audio + group audio + disabled + oneshot + +service vendor.audio_tc251 /vendor/bin/mm-audio-ftm -tc 251 + user audio + group audio + disabled + oneshot + +service vendor.audio_tc252 /vendor/bin/mm-audio-ftm -tc 252 + user audio + group audio + disabled + oneshot + +service vendor.audio_tc253 /vendor/bin/mm-audio-ftm -tc 253 + user audio + group audio + disabled + oneshot + +service vendor.audio_tc11 /vendor/bin/mm-audio-ftm -tc 11 -file /data/vendor/audio/ftm_headset_mic_record.wav + user audio + group audio + disabled + oneshot + +service vendor.audio_tc101 /vendor/bin/mm-audio-ftm -tc 101 -file /data/vendor/audio/ftm_mic1_record.wav + user audio + group audio + disabled + oneshot + +service vendor.audio_tc102 /vendor/bin/mm-audio-ftm -tc 102 -file /data/vendor/audio/ftm_mic2_record.wav + user audio + group audio + disabled + oneshot + +service vendor.audio_tc103 /vendor/bin/mm-audio-ftm -tc 103 -file /data/vendor/audio/ftm_mic3_record.wav + user audio + group audio + disabled + oneshot + +service vendor.audio_tc104 /vendor/bin/mm-audio-ftm -tc 104 -file /data/vendor/audio/ftm_mic4_record.wav + user audio + group audio + disabled + oneshot + +# ======================================================== +# End for audio TC +# ======================================================== diff --git a/init/init.qcom.rc b/rootdir/etc/init.qcom.rc similarity index 81% rename from init/init.qcom.rc rename to rootdir/etc/init.qcom.rc index fb94ed4..f02918d 100644 --- a/init/init.qcom.rc +++ b/rootdir/etc/init.qcom.rc @@ -25,11 +25,21 @@ # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # +#ifdef VENDOR_EDIT +import /vendor/etc/init/hw/init.oem.rc +import /vendor/etc/init/hw/init.oem.debug.rc +#endif VENDOR_EDIT + +#ifdef VENDOR_EDIT +import /vendor/etc/init/hw/init.oem.entry.rc +#endif VENDOR_EDIT + import /vendor/etc/init/hw/init.qti.ufs.rc import /vendor/etc/init/hw/init.qcom.usb.rc import /vendor/etc/init/hw/init.qcom.test.rc import /vendor/etc/init/hw/init.target.rc import /vendor/etc/init/hw/init.qcom.factory.rc +import /vendor/etc/init/hw/init.oem.rc on early-init mount debugfs debugfs /sys/kernel/debug @@ -61,6 +71,8 @@ on early-init chown root system /dev/kmsg chmod 0620 /dev/kmsg + # Load WIGIG platform driver + exec u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -a -d /vendor/lib/modules msm_11ad_proxy on init @@ -73,15 +85,14 @@ on init write /sys/fs/cgroup/memory/bg/memory.swappiness 140 write /sys/fs/cgroup/memory/bg/memory.move_charge_at_immigrate 1 chown root system /sys/fs/cgroup/memory/bg/tasks - write /sys/kernel/icnss/wpss_boot 1 chmod 0660 /sys/fs/cgroup/memory/bg/tasks on post-fs chmod 0755 /sys/kernel/debug/tracing on early-boot - # set RLIMIT_MEMLOCK to 64KB - setrlimit 8 65536 65536 + # set RLIMIT_MEMLOCK to 64MB + setrlimit 8 67108864 67108864 # Allow subsystem (modem etc) debugging write /sys/kernel/boot_adsp/boot 1 write /sys/kernel/boot_cdsp/boot 1 @@ -152,6 +163,9 @@ on boot mkdir /mnt/vendor/persist/iar_db 0770 system system mkdir /mnt/vendor/spunvm 0770 system system + #Create WIGIG socket area + mkdir /dev/socket/wigig 0770 wifi wifi + setprop wifi.interface wlan0 setprop ro.telephony.call_ring.multiple false @@ -172,13 +186,19 @@ on boot # an ack packet comes out of order write /proc/sys/net/netfilter/nf_conntrack_tcp_be_liberal 1 + # Set the console loglevel to < KERN_WARN + # Set the default message loglevel to KERN_INFO + write /proc/sys/kernel/printk "4 6 1 7" + # Allow access for CCID command/response timeout configuration chown system system /sys/module/ccid_bridge/parameters/bulk_msg_timeout # bond0 used by FST Manager chown wifi wifi /sys/class/net/bond0/bonding/queue_id - # Allow access to emmc dload sysfs node + # Allow access to emmc rawdump block partition and dload sysfs node + chown root system /dev/block/bootdevice/by-name/rawdump + chmod 0660 /dev/block/bootdevice/by-name/rawdump chown root system /sys/kernel/dload/emmc_dload chmod 0660 /sys/kernel/dload/emmc_dload chown root system /dev/block/bootdevice/by-name/ramdump @@ -201,6 +221,10 @@ on boot chown system system /sys/class/sensors/apds9930-proximity/enable chown system system /sys/class/sensors/apds9930-proximity/poll_delay + # Allow access to fpc fingerprint device attributes + chmod 0666 /sys/bus/platform/devices/soc/soc:fpc1020/wakeup_enable + chown system system /sys/bus/platform/devices/soc/soc:fpc1020/wakeup_enable + # Create directory used for display # for backward compatibility mkdir /persist/display 0770 system graphics @@ -216,6 +240,24 @@ on boot # limit discard size to 128MB in order to avoid long IO latency write /sys/block/sda/queue/discard_max_bytes 134217728 + # bin.zhong@ASTI, 2019/08/06, Add for OMM + chmod 0750 /dev/memcg + chown system system /dev/memplus + + # allen.lv@ASTI, 2019/10/12, Add for Virtual Memory Defragment + chmod 0660 /dev/fragment_monitor + chown system system /dev/fragment_monitor + + #QDSS + chown root oem_2902 /sys/devices/platform/soc/8048000.tmc/coresight-tmc-etr/block_size + chmod 660 /sys/devices/platform/soc/8048000.tmc/coresight-tmc-etr/block_size + + #enable coresight for diag_mdlog_system over qdss + write /sys/bus/coresight/devices/coresight-tmc-etr/buffer_size 0x2000000 + write /sys/bus/coresight/devices/coresight-tmc-etr/enable_sink 1 + write /sys/bus/coresight/devices/coresight-stm/enable_source 1 + write /sys/bus/coresight/devices/coresight-stm/hwevent_enable 0 + # msm specific files that need to be created on /data on post-fs-data mkdir /data/vendor/misc 01771 system system @@ -226,6 +268,12 @@ on post-fs-data # Create directory used by display clients mkdir /data/vendor/display 0770 system graphics + # Change lm related dirs + mkdir /data/vendor/lm 0700 root root + + # Create directory used by powermodule + mkdir /data/vendor/pwr 0700 root root + # Create directory used by media clients mkdir /data/vendor/media 0770 mediacodec media @@ -253,9 +301,13 @@ on post-fs-data mkdir /data/vendor/wifi/hostapd 0770 wifi wifi mkdir /data/vendor/wifi/hostapd/ctrl 0770 wifi wifi mkdir /data/vendor/wifi/wpa_supplicant 0770 wifi wifi + mkdir /data/vendor/wifi/wigig_hostapd 0770 wifi wifi mkdir /data/vendor/wifi/wpa 0770 wifi wifi mkdir /data/vendor/wifi/wpa/sockets 0770 wifi wifi + # Create the directories used by WiGig Sensing + mkdir /data/vendor/sensing 0770 system wifi + # Create the directories used by CnE subsystem mkdir /data/vendor/connectivity 0771 radio radio chown radio radio /data/vendor/connectivity @@ -300,7 +352,6 @@ on post-fs-data mkdir /dev/socket/location 0770 gps gps mkdir /dev/socket/location/mq 0770 gps gps mkdir /dev/socket/location/xtra 0770 gps gps - mkdir /dev/socket/location/dgnss 0770 gps gps #Create directories for wifihal services mkdir /dev/socket/wifihal 0770 wifi wifi @@ -318,8 +369,16 @@ on post-fs-data mkdir /data/vendor/fm 0770 system system chmod 0770 /data/vendor/fm + #Create PERFD deamon related dirs + mkdir /data/vendor/perfd 0770 root system + chmod 2770 /data/vendor/perfd + rm /data/vendor/perfd/default_values + mkdir /data/vendor/secure_element 0777 system system + #Create IOP deamon related dirs + mkdir /data/vendor/iop 0700 root system + # Mark the copy complete flag to not completed write /data/vendor/radio/copy_complete 0 chown radio radio /data/vendor/radio/copy_complete @@ -371,6 +430,13 @@ service nqnfcinfo /system/vendor/bin/nqnfcinfo user system oneshot +service iop /system/vendor/bin/iop + class main + user root + group root + disabled + socket iop seqpacket 0666 root system + service qcomsysd /system/vendor/bin/qcom-system-daemon class main user root @@ -421,7 +487,7 @@ on property:persist.sys.pil_proxy_timeout=* on property:persist.vendor.ssr.restart_level=* start vendor.ssr_setup -on property:persist.vendor.ssr.enable_ramdumps=1 +on property:persist.vendor.ssr.enable_ramdumps=1 && property:ro.boot.mode=normal write /sys/module/subsystem_restart/parameters/enable_ramdumps 1 mkdir /data/vendor/ramdump_ssr 770 system system start vendor.ss_ramdump @@ -448,6 +514,12 @@ on property:sys.boot_completed=1 #Reinit lmkd to reconfigure lmkd properties setprop lmkd.reinit 1 +on property:persist.vendor.radio.atfwd.start=false + stop vendor.atfwd + +on property:vendor.radio.atfwd.start=false + stop vendor.atfwd + # corefile limit on property:persist.debug.trace=1 mkdir /data/core 0777 root root @@ -503,6 +575,65 @@ service vendor.move_wifi_data /system/bin/move_wifi_data.sh disabled oneshot +service wigignpt /vendor/bin/wigignpt + interface vendor.qti.hardware.wigig.netperftuner@1.0::INetPerfTuner default + class hal + socket wigig/wigignpt stream 660 system wifi + user system + group wifi + capabilities NET_ADMIN + disabled + +on property:persist.vendor.wigig.npt.enable=1 + start wigignpt + +service vendor.sensingdaemon /vendor/bin/sensingdaemon + class hal + socket wigig/sensingdaemon stream 660 system wifi + user system + group wifi + disabled + +service dhcpcd_wlan0 /system/bin/dhcpcd -ABKLG + class late_start + disabled + oneshot + +service dhcpcd_bond0 /system/bin/dhcpcd -ABKLG + class late_start + disabled + oneshot + +service dhcpcd_p2p /system/bin/dhcpcd -ABKLG + class late_start + disabled + oneshot + +service dhcpcd_wigig0 /system/bin/dhcpcd -ABKLG + class late_start + disabled + oneshot + +service iprenew_wlan0 /system/bin/dhcpcd -n + class late_start + disabled + oneshot + +service iprenew_bond0 /system/bin/dhcpcd -n + class late_start + disabled + oneshot + +service iprenew_p2p /system/bin/dhcpcd -n + class late_start + disabled + oneshot + +service iprenew_wigig0 /system/bin/dhcpcd -n + class late_start + disabled + oneshot + service ptt_socket_app /system/vendor/bin/ptt_socket_app -d class main user wifi @@ -536,6 +667,16 @@ on property:sys.shutdown.requested=* write /sys/kernel/shutdown_wlan/shutdown 1 stop cnss-daemon +service dhcpcd_bt-pan /system/bin/dhcpcd -BKLG + class late_start + disabled + oneshot + +service iprenew_bt-pan /system/bin/dhcpcd -n + class late_start + disabled + oneshot + service ssgqmigd /vendor/bin/ssgqmigd class late_start user radio @@ -571,6 +712,13 @@ service qcom-post-boot /vendor/bin/init.qcom.post_boot.sh disabled oneshot +#service qti-testscripts /system/bin/sh /product/etc/init.qcom.testscripts.sh +# class late_start +# user root +# disabled +# oneshot +# seclabel u:r:qti-testscripts:s0 + service wifi-sdio-on /vendor/bin/init.qcom.sdio.sh class late_start group wifi inet @@ -585,6 +733,7 @@ service wifi-crda /vendor/bin/init.crda.sh on property:sys.boot_completed=1 start qcom-post-boot + start qti-testscripts on property:ro.vendor.ril.mbn_copy_completed=1 write /data/vendor/radio/copy_complete 1 @@ -594,6 +743,11 @@ service qvop-daemon /vendor/bin/qvop-daemon user system group system drmrpc +service vendor.atfwd /vendor/bin/ATFWD-daemon + class late_start + user system + group system radio + service hostapd_fst /vendor/bin/hw/hostapd -dd -g /data/vendor/wifi/hostapd/global class main capabilities NET_ADMIN NET_RAW @@ -627,20 +781,48 @@ service profiler_daemon /system/bin/profiler_daemon group root disabled +service charger /system/bin/charger + class charger + user system + group system graphics input + capabilities SYS_BOOT + seclabel u:r:charger:s0 + service vendor.ssr_diag /system/vendor/bin/ssr_diag class late_start user system group system disabled -service diag_mdlog_start /system/vendor/bin/diag_mdlog +# VENDOR_EDIT BruceChenYC, 2020/06/09, need to add -c to clean mask before start command +service diag_mdlog_start /system/vendor/bin/diag_mdlog -q 2 -j 1 -c -u -d -i + class late_start + user shell + group system oem_2901 oem_2902 sdcard_rw sdcard_r media_rw + disabled + oneshot + +service diag_mdlog_stop /system/vendor/bin/diag_mdlog -k class late_start user shell group system oem_2901 sdcard_rw sdcard_r media_rw disabled oneshot -service diag_mdlog_stop /system/vendor/bin/diag_mdlog -k +# VENDOR_EDIT JamesChang, 2020/02/22, KBA-180917030333 +# VENDOR_EDIT BruceChenYC, 2020/06/09, need to add -c to clean mask before start command +# VENDOR_EDIT BruceChenYC, 2020/07/01, In 8350R Kernel 5.4 delete Diag driver Need to use /system/vendor/bin/diag_mdlog. +#service diag_mdlog_system_start /system/bin/diag_mdlog_system -c -u +service diag_mdlog_system_start /system/vendor/bin/diag_mdlog -q 2 -j 1 -c -u -d -i + class late_start + user shell + group system oem_2901 oem_2902 sdcard_rw sdcard_r media_rw + disabled + oneshot + +# VENDOR_EDIT BruceChenYC, 2020/07/01, In 8350R Kernel 5.4 delete Diag driver Need to use /system/vendor/bin/diag_mdlog. +#service diag_mdlog_system_stop /system/bin/diag_mdlog_system -k +service diag_mdlog_system_stop /system/vendor/bin/diag_mdlog -k class late_start user shell group system oem_2901 sdcard_rw sdcard_r media_rw @@ -705,7 +887,7 @@ service esepmdaemon /system/vendor/bin/esepmdaemon user system group nfc -on property:init.svc.vendor.charger=running +on charger setprop persist.sys.usb.config mass_storage start qcom-post-boot @@ -775,24 +957,5 @@ service vendor.audio-hal /vendor/bin/hw/android.hardware.audio.service group audio camera drmrpc inet media mediadrm net_bt net_bt_admin net_bw_acct oem_2901 wakelock capabilities BLOCK_SUSPEND ioprio rt 4 - task_profiles ProcessCapacityHigh HighPerformance + writepid /dev/cpuset/foreground/tasks /dev/stune/foreground/tasks onrestart restart audioserver - -service vendor.qti.hardware.display.composer /vendor/bin/hw/vendor.qti.hardware.display.composer-service - override - class hal animation - user system - group graphics drmrpc - capabilities SYS_NICE - onrestart restart surfaceflinger - socket pps stream 0660 system system - task_profiles ProcessCapacityHigh HighPerformance - -service vendor.qti.hardware.display.allocator /vendor/bin/hw/vendor.qti.hardware.display.allocator-service - override - class hal animation - user system - group graphics drmrpc - capabilities SYS_NICE - onrestart restart surfaceflinger - task_profiles ProcessCapacityHigh HighPerformance diff --git a/rootdir/etc/init.qcom.usb.rc b/rootdir/etc/init.qcom.usb.rc new file mode 100644 index 0000000..57932ba --- /dev/null +++ b/rootdir/etc/init.qcom.usb.rc @@ -0,0 +1,1796 @@ +# Copyright (c) 2011-2016, 2018-2020 The Linux Foundation. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of The Linux Foundation nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +on charger + mkdir /dev/usb-ffs 0770 shell shell + mkdir /dev/usb-ffs/adb 0770 shell shell + mount configfs none /config + mkdir /config/usb_gadget/g1 0770 shell shell + mkdir /config/usb_gadget/g1/strings/0x409 0770 + write /config/usb_gadget/g1/bcdUSB 0x0200 + write /config/usb_gadget/g1/os_desc/use 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} + mkdir /config/usb_gadget/g1/functions/mass_storage.0 + mkdir /config/usb_gadget/g1/functions/ffs.adb + mkdir /config/usb_gadget/g1/configs/b.1 0770 shell shell + mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770 shell shell + write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1 + write /config/usb_gadget/g1/configs/b.1/MaxPower 900 + symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1 + mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000 + exec u:r:vendor_qti_init_shell:s0 -- /vendor/bin/init.qcom.usb.sh + write /config/usb_gadget/g1/strings/0x409/product ${vendor.usb.product_string} + setprop sys.usb.configfs 1 + +on charger && property:ro.boot.type=debug + write /dev/kmsg "debug version, ready to trigger post-fs-data" +# kartar@SYSTEM, 2020/05/08, IKR-260 Enable adb early in charger mode + start apexd + wait_for_prop apexd.status activated + perform_apex_config + setprop sys.usb.config adb + start adbd + write /dev/kmsg "start adbd" + write /config/usb_gadget/g1/idVendor 0x2A70 + write /config/usb_gadget/g1/idProduct 0x4ee7 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb" + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + +on charger && property:ro.boot.type=sdebug + write /dev/kmsg "sdebug version, ready to trigger post-fs-data" +# kartar@SYSTEM, 2020/05/08, IKR-260 Enable adb early in charger mode + start apexd + wait_for_prop apexd.status activated + perform_apex_config + setprop sys.usb.config adb + start adbd + write /dev/kmsg "start adbd" + write /config/usb_gadget/g1/idVendor 0x2A70 + write /config/usb_gadget/g1/idProduct 0x4ee7 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb" + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + +on charger && property:ro.boot.type=auto + write /dev/kmsg "ready to trigger post-fs-data" +# kartar@SYSTEM, 2020/05/08, IKR-260 Enable adb early in charger mode + start apexd + wait_for_prop apexd.status activated + perform_apex_config + setprop sys.usb.config adb + start adbd + write /dev/kmsg "start adbd" + write /config/usb_gadget/g1/idVendor 0x2A70 + write /config/usb_gadget/g1/idProduct 0x4ee7 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb" + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + +on init + exec u:r:vendor-qti-testscripts:s0 -- /vendor/bin/sh /vendor/bin/init.qti.usb.debug.sh + +on boot + write /sys/class/android_usb/android0/iSerial ${ro.serialno} + mount configfs none /config + mkdir /config/usb_gadget/g1 0770 + mkdir /config/usb_gadget/g2 0770 + mkdir /config/usb_gadget/g1/strings/0x409 0770 + mkdir /config/usb_gadget/g2/strings/0x409 0770 + write /config/usb_gadget/g1/bcdUSB 0x0200 + write /config/usb_gadget/g2/bcdUSB 0x0200 + write /config/usb_gadget/g1/os_desc/use 1 + write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno} + write /config/usb_gadget/g2/strings/0x409/serialnumber ${ro.serialno} + write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer} + write /config/usb_gadget/g2/strings/0x409/manufacturer ${ro.product.manufacturer} + mkdir /config/usb_gadget/g1/functions/mass_storage.0 + mkdir /config/usb_gadget/g1/functions/mtp.gs0 + mkdir /config/usb_gadget/g1/functions/ptp.gs1 + mkdir /config/usb_gadget/g1/functions/accessory.gs2 + mkdir /config/usb_gadget/g1/functions/audio_source.gs3 + mkdir /config/usb_gadget/g1/functions/midi.gs5 + mkdir /config/usb_gadget/g1/functions/ffs.adb + mkdir /config/usb_gadget/g1/functions/ffs.diag + mkdir /config/usb_gadget/g1/functions/ffs.diag_mdm + mkdir /config/usb_gadget/g1/functions/ffs.diag_mdm2 + mkdir /config/usb_gadget/g1/functions/diag.diag + mkdir /config/usb_gadget/g1/functions/diag.diag_mdm + mkdir /config/usb_gadget/g1/functions/diag.diag_mdm2 + mkdir /config/usb_gadget/g1/functions/cser.dun.0 + mkdir /config/usb_gadget/g1/functions/cser.nmea.1 + mkdir /config/usb_gadget/g1/functions/cser.dun.2 + mkdir /config/usb_gadget/g1/functions/gsi.rmnet + mkdir /config/usb_gadget/g1/functions/gsi.rndis + mkdir /config/usb_gadget/g1/functions/gsi.dpl + mkdir /config/usb_gadget/g1/functions/qdss.qdss + mkdir /config/usb_gadget/g1/functions/qdss.qdss_mdm + mkdir /config/usb_gadget/g1/functions/rndis_bam.rndis + mkdir /config/usb_gadget/g1/functions/rndis.rndis + mkdir /config/usb_gadget/g1/functions/rmnet_bam.rmnet + mkdir /config/usb_gadget/g1/functions/rmnet_bam.dpl + mkdir /config/usb_gadget/g1/functions/rmnet_bam.rmnet_bam_dmux + mkdir /config/usb_gadget/g1/functions/rmnet_bam.dpl_bam_dmux + mkdir /config/usb_gadget/g1/functions/ncm.0 + mkdir /config/usb_gadget/g1/functions/ccid.ccid + mkdir /config/usb_gadget/g1/functions/uac2.0 + mkdir /config/usb_gadget/g1/functions/uvc.0 + mkdir /config/usb_gadget/g1/configs/b.1 0770 + mkdir /config/usb_gadget/g2/configs/b.1 0770 + mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770 + mkdir /config/usb_gadget/g2/configs/b.1/strings/0x409 0770 + write /config/usb_gadget/g1/configs/b.1/MaxPower 900 + 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/functions/diag.diag/serial ${ro.serialno} + symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1 + mkdir /dev/usb-ffs 0775 shell system + mkdir /dev/usb-ffs/adb 0770 shell system + mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=1000,rmode=0770,fmode=0660 + mkdir /dev/ffs-diag 0770 shell system + mount functionfs diag /dev/ffs-diag uid=2000,gid=1000,rmode=0770,fmode=0660,no_disconnect=1 + mkdir /dev/ffs-diag-1 0770 shell system + mount functionfs diag_mdm /dev/ffs-diag-1 uid=2000,gid=1000,rmode=0770,fmode=0660,no_disconnect=1 + mkdir /dev/ffs-diag-2 0770 shell system + mount functionfs diag_mdm2 /dev/ffs-diag-2 uid=2000,gid=1000,rmode=0770,fmode=0660,no_disconnect=1 + setprop sys.usb.mtp.device_type 3 + exec u:r:vendor_qti_init_shell:s0 -- /vendor/bin/init.qcom.usb.sh + write /config/usb_gadget/g1/strings/0x409/product ${vendor.usb.product_string} + write /config/usb_gadget/g2/strings/0x409/product ${vendor.usb.product_string} + + #setprop sys.usb.config ${persist.vendor.usb.config} + setprop sys.usb.configfs 1 + trigger set_serialnumber + +on set_serialnumber && property:ro.boot.ftm_mode=ftm_rf + write /config/usb_gadget/g1/strings/0x409/serialnumber "0123456789ABCDEF" + write /config/usb_gadget/g2/strings/0x409/serialnumber "0123456789ABCDEF" + + +on boot && property:vendor.usb.use_ffs_mtp=1 + mkdir /config/usb_gadget/g1/functions/ffs.mtp + mkdir /config/usb_gadget/g1/functions/ffs.ptp + mkdir /dev/usb-ffs/mtp 0770 mtp mtp + mount functionfs mtp /dev/usb-ffs/mtp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1 + mkdir /dev/usb-ffs/ptp 0770 mtp mtp + mount functionfs ptp /dev/usb-ffs/ptp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1 + + +#on property:persist.vendor.usb.config=* +# setprop persist.sys.usb.config ${persist.vendor.usb.config} + +on property:vendor.usb.controller=* + setprop sys.usb.controller ${vendor.usb.controller} + setprop sys.usb.configfs 1 + +on boot && property:ro.boot.usbconfigfs=true + setprop sys.usb.configfs 1 + +# +# USB compositions +# +# Following are the triggers to configure various combinations of functions into a USB +# composition. Each correspond to a unique VID/PID. +# + +on property:sys.usb.config=none && property:sys.usb.configfs=1 + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + +on property:sys.usb.config=mass_storage && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "msc" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0xF000 + symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/mass_storage.0 /config/usb_gadget/g1/configs/b.1/f2 + write /config/usb_gadget/g1/functions/mass_storage.0/lun.0/file "/vendor/etc/usb_drivers.iso" + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=mass_storage,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mass_storage,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb_msc" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x9015 + symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/mass_storage.0 /config/usb_gadget/g1/configs/b.1/f3 + write /config/usb_gadget/g1/functions/mass_storage.0/lun.0/file "/vendor/etc/usb_drivers.iso" + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_adb" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x901D + write /config/usb_gadget/g1/functions/diag.diag/pid 0x901d + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x900E + write /config/usb_gadget/g1/functions/diag.diag/pid 0x900e + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,serial_cdev,rmnet,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,serial_cdev,rmnet,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "Default composition" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x9091 + write /config/usb_gadget/g1/functions/diag.diag/pid 0x9091 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.rmnet.inst.name} /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f4 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,serial_cdev,rmnet && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "Default comp without ADB" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x9092 + write /config/usb_gadget/g1/functions/diag.diag/pid 0x9092 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.rmnet.inst.name} /config/usb_gadget/g1/configs/b.1/f3 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,serial_cdev,serial_cdev_nmea,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,serial_cdev,serial_cdev_nmea,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_dun_nmea_adb" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x9020 + write /config/usb_gadget/g1/functions/diag.diag/pid 0x9020 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/cser.nmea.1 /config/usb_gadget/g1/configs/b.1/f4 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:vendor.usb.tethering=true + write /sys/class/net/rndis0/queues/rx-0/rps_cpus ${vendor.usb.rps_mask} + +on property:sys.usb.config=rndis + setprop sys.usb.config rndis,${persist.vendor.usb.config.extra} + +on property:sys.usb.config=rndis,none && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x2A70 + write /config/usb_gadget/g1/idProduct 0xF00E + symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state rndis + +on property:sys.usb.config=rndis,sec && property:sys.usb.configfs=1 + write /config/usb_gadget/g2/configs/b.1/strings/0x409/configuration "rndis" + rm /config/usb_gadget/g2/configs/b.1/f1 + write /config/usb_gadget/g2/idVendor 0x05C6 + write /config/usb_gadget/g2/idProduct 0xF00E + symlink /config/usb_gadget/g2/functions/${vendor.usb.rndis.func.name}.rndis /config/usb_gadget/g2/configs/b.1/f1 + write /config/usb_gadget/g2/UDC ${persist.vendor.usb.controller.secondary} + setprop sys.usb.state rndis + +on property:sys.usb.config=rndis,adb + setprop sys.usb.config rndis,${persist.vendor.usb.config.extra},adb + +on property:sys.usb.config=rndis,none,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,none,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x2A70 + write /config/usb_gadget/g1/idProduct 0x9024 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state rndis,adb + +on property:sys.usb.config=rndis,diag && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_diag" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x902C + symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f2 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state rndis + +on property:sys.usb.config=rndis,diag,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,diag,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_diag_adb" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x902D + symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f3 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state rndis,adb + +on property:sys.usb.config=rndis,serial_cdev && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_dun" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90B3 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state rndis + +on property:sys.usb.config=rndis,serial_cdev,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,serial_cdev,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_dun_adb" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90B4 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f3 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state rndis,adb + +on property:sys.usb.config=rndis,serial_cdev,diag && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_dun_diag" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90B5 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag_mdm /config/usb_gadget/g1/configs/b.1/f4 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} #2018.05.28 modify for CTA/EngineerMode RNDIS test + +on property:sys.usb.config=rndis,serial_cdev,diag,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,serial_cdev,diag,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_dun_diag" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90B6 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag_mdm /config/usb_gadget/g1/configs/b.1/f4 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f5 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} #2018.02.12 modify for CTA RNDIS test + +on property:sys.usb.config=mtp,diag && property:vendor.usb.use_ffs_mtp=0 && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp_diag" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x901B + symlink /config/usb_gadget/g1/functions/mtp.gs0 /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f2 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=mtp,diag && property:vendor.usb.use_ffs_mtp=1 && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ffs-mtp_diag" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x901B + symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f2 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=mtp,diag,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mtp,diag,adb && property:vendor.usb.use_ffs_mtp=0 && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp_diag_adb" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x903A + symlink /config/usb_gadget/g1/functions/mtp.gs0 /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f3 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mtp,diag,adb && property:vendor.usb.use_ffs_mtp=1 && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ffs-mtp_diag_adb" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x903A + symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f3 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,qdss && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_qdss" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x904A + write /config/usb_gadget/g1/functions/diag.diag/pid 0x904a + write /config/usb_gadget/g1/functions/qdss.${vendor.usb.qdss.inst.name}/enable_debug_inface 1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/qdss.${vendor.usb.qdss.inst.name} /config/usb_gadget/g1/configs/b.1/f2 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,qdss,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,qdss,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_qdss_adb" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x9060 + write /config/usb_gadget/g1/functions/diag.diag/pid 0x9060 + write /config/usb_gadget/g1/functions/qdss.${vendor.usb.qdss.inst.name}/enable_debug_inface 1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/qdss.${vendor.usb.qdss.inst.name} /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f3 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,qdss,rmnet && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_qdss_rmnet" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x9083 + write /config/usb_gadget/g1/functions/diag.diag/pid 0x9083 + write /config/usb_gadget/g1/functions/qdss.${vendor.usb.qdss.inst.name}/enable_debug_inface 1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/qdss.${vendor.usb.qdss.inst.name} /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.rmnet.inst.name} /config/usb_gadget/g1/configs/b.1/f3 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,qdss,rmnet,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,qdss,rmnet,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_qdss_rmnet_adb" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x9084 + write /config/usb_gadget/g1/functions/diag.diag/pid 0x9084 + write /config/usb_gadget/g1/functions/qdss.${vendor.usb.qdss.inst.name}/enable_debug_inface 1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/qdss.${vendor.usb.qdss.inst.name} /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.rmnet.inst.name} /config/usb_gadget/g1/configs/b.1/f4 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=rndis,diag,qdss && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_diag_qdss" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x9081 + write /config/usb_gadget/g1/functions/qdss.${vendor.usb.qdss.inst.name}/enable_debug_inface 1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/qdss.${vendor.usb.qdss.inst.name} /config/usb_gadget/g1/configs/b.1/f3 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state rndis + +on property:sys.usb.config=rndis,diag,qdss,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,diag,qdss,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_diag_qdss_adb" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x9082 + write /config/usb_gadget/g1/functions/qdss.${vendor.usb.qdss.inst.name}/enable_debug_inface 1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/qdss.${vendor.usb.qdss.inst.name} /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f4 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state rndis,adb + +on property:sys.usb.config=ncm && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ncm" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0xA4A1 + symlink /config/usb_gadget/g1/functions/ncm.0 /config/usb_gadget/g1/configs/b.1/f1 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=ncm,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=ncm,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ncm_adb" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x908C + symlink /config/usb_gadget/g1/functions/ncm.0 /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,serial_cdev && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_dun" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x9004 + write /config/usb_gadget/g1/functions/diag.diag/pid 0x9004 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,adb,serial_cdev && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,adb,serial_cdev && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_adb_dun" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x901f + write /config/usb_gadget/g1/functions/diag.diag/pid 0x901f + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f3 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,serial_cdev,rmnet,dpl && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_dun_rmnet_dpl" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90b7 + write /config/usb_gadget/g1/functions/diag.diag/pid 0x90b7 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.rmnet.inst.name} /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.dpl.inst.name} /config/usb_gadget/g1/configs/b.1/f4 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,serial_cdev,rmnet,dpl,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,serial_cdev,rmnet,dpl,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_dun_rmnet_dpl_adb" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90b8 + write /config/usb_gadget/g1/functions/diag.diag/pid 0x90b8 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.rmnet.inst.name} /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.dpl.inst.name} /config/usb_gadget/g1/configs/b.1/f4 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f5 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=rndis,diag,dpl && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_diag_dpl" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90bf + symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.dpl.inst.name} /config/usb_gadget/g1/configs/b.1/f3 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state rndis + +on property:sys.usb.config=rndis,diag,dpl,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,diag,dpl,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_diag_dpl_adb" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90c0 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.dpl.inst.name} /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f4 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state rndis,adb + +on property:sys.usb.config=ccid && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ccid" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90CE + symlink /config/usb_gadget/g1/functions/ccid.ccid /config/usb_gadget/g1/configs/b.1/f1 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=ccid,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=ccid,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ccid_adb" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90CF + symlink /config/usb_gadget/g1/functions/ccid.ccid /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=ccid,diag && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ccid_diag" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90D0 + symlink /config/usb_gadget/g1/functions/ccid.ccid /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f2 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=ccid,diag,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=ccid,diag,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ccid_diag_adb" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90D1 + symlink /config/usb_gadget/g1/functions/ccid.ccid /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f3 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,serial_cdev,rmnet,ccid && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_dun_rmnet_ccid" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90D2 + write /config/usb_gadget/g1/functions/diag.diag/pid 0x90d2 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.rmnet.inst.name} /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/ccid.ccid /config/usb_gadget/g1/configs/b.1/f4 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,serial_cdev,rmnet,ccid,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,serial_cdev,rmnet,ccid,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_dun_rmnet_ccid_adb" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90D3 + write /config/usb_gadget/g1/functions/diag.diag/pid 0x90d3 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.rmnet.inst.name} /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/ccid.ccid /config/usb_gadget/g1/configs/b.1/f4 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f5 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,diag_mdm,qdss,qdss_mdm,serial_cdev,serial_cdev_mdm,rmnet && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_diag_mdm,qdss_qdss_mdm_dun_dun_mdm_rmnet" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90D7 + write /config/usb_gadget/g1/functions/diag.diag/pid 0x90d7 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag_mdm /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/qdss.qdss_mdm /config/usb_gadget/g1/configs/b.1/f4 + symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f5 + symlink /config/usb_gadget/g1/functions/cser.dun.2 /config/usb_gadget/g1/configs/b.1/f6 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.rmnet.inst.name} /config/usb_gadget/g1/configs/b.1/f7 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,diag_mdm,qdss,qdss_mdm,serial_cdev,serial_cdev_mdm,rmnet,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,diag_mdm,qdss,qdss_mdm,serial_cdev,serial_cdev_mdm,rmnet,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_diag_mdm,qdss_qdss_mdm_dun_dun_mdm_rmnet_adb" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90D8 + write /config/usb_gadget/g1/functions/diag.diag/pid 0x90d8 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag_mdm /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/qdss.qdss_mdm /config/usb_gadget/g1/configs/b.1/f4 + symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f5 + symlink /config/usb_gadget/g1/functions/cser.dun.2 /config/usb_gadget/g1/configs/b.1/f6 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.rmnet.inst.name} /config/usb_gadget/g1/configs/b.1/f7 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f8 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,diag_mdm,qdss,qdss_mdm,serial_cdev,serial_cdev_mdm,dpl,rmnet && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_diag_mdm,qdss_qdss_mdm_dun_dun_mdm_dpl_rmnet" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90DD + write /config/usb_gadget/g1/functions/diag.diag/pid 0x90dd + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag_mdm /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/qdss.qdss_mdm /config/usb_gadget/g1/configs/b.1/f4 + symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f5 + symlink /config/usb_gadget/g1/functions/cser.dun.2 /config/usb_gadget/g1/configs/b.1/f6 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.dpl.inst.name} /config/usb_gadget/g1/configs/b.1/f7 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.rmnet.inst.name} /config/usb_gadget/g1/configs/b.1/f8 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,diag_mdm,qdss,qdss_mdm,serial_cdev,serial_cdev_mdm,dpl,rmnet,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,diag_mdm,qdss,qdss_mdm,serial_cdev,serial_cdev_mdm,dpl,rmnet,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_diag_mdm,qdss_qdss_mdm_dun_dun_mdm_dpl_rmnet_adb" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90DE + write /config/usb_gadget/g1/functions/diag.diag/pid 0x90de + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag_mdm /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/qdss.qdss_mdm /config/usb_gadget/g1/configs/b.1/f4 + symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f5 + symlink /config/usb_gadget/g1/functions/cser.dun.2 /config/usb_gadget/g1/configs/b.1/f6 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.dpl.inst.name} /config/usb_gadget/g1/configs/b.1/f7 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.rmnet.inst.name} /config/usb_gadget/g1/configs/b.1/f8 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,serial_cdev,rmnet,dpl,qdss && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_dun_rmnet_dpl_qdss" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90DC + write /config/usb_gadget/g1/functions/diag.diag/pid 0x90dc + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.rmnet.inst.name} /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.dpl.inst.name} /config/usb_gadget/g1/configs/b.1/f4 + symlink /config/usb_gadget/g1/functions/qdss.${vendor.usb.qdss.inst.name} /config/usb_gadget/g1/configs/b.1/f5 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,serial_cdev,rmnet,dpl,qdss,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,serial_cdev,rmnet,dpl,qdss,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_dun_rmnet_dpl_qdss_adb" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90DB + write /config/usb_gadget/g1/functions/diag.diag/pid 0x90db + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.rmnet.inst.name} /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.dpl.inst.name} /config/usb_gadget/g1/configs/b.1/f4 + symlink /config/usb_gadget/g1/functions/qdss.${vendor.usb.qdss.inst.name} /config/usb_gadget/g1/configs/b.1/f5 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f6 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,uac2,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,uac2,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_uac2_adb" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90CA + write /config/usb_gadget/g1/functions/diag.diag/pid 0x90ca + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/uac2.0 /config/usb_gadget/g1/configs/b.1/f3 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,uac2 && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_uac2" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x901C + write /config/usb_gadget/g1/functions/diag.diag/pid 0x901c + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/uac2.0 /config/usb_gadget/g1/configs/b.1/f2 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,uvc,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,uvc,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_uvc_adb" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90CB + write /config/usb_gadget/g1/functions/diag.diag/pid 0x90cb + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/uvc.0 /config/usb_gadget/g1/configs/b.1/f3 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,uvc && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_uvc" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90DF + write /config/usb_gadget/g1/functions/diag.diag/pid 0x90df + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/uvc.0 /config/usb_gadget/g1/configs/b.1/f2 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,uac2,uvc,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,uac2,uvc,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_uac2_uvc_adb" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90CC + write /config/usb_gadget/g1/functions/diag.diag/pid 0x90cc + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/uac2.0 /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/uvc.0 /config/usb_gadget/g1/configs/b.1/f4 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,uac2,uvc && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_uac2_uvc" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90E0 + write /config/usb_gadget/g1/functions/diag.diag/pid 0x90e0 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/uac2.0 /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/uvc.0 /config/usb_gadget/g1/configs/b.1/f3 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,diag_mdm,qdss,qdss_mdm,serial_cdev,dpl,rmnet && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_diag_mdm_qdss_qdss_mdm_dun_dpl_rmnet" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90E4 + write /config/usb_gadget/g1/functions/diag.diag/pid 0x90e4 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag_mdm /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/qdss.qdss_mdm /config/usb_gadget/g1/configs/b.1/f4 + symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f5 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.dpl.inst.name} /config/usb_gadget/g1/configs/b.1/f6 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.rmnet.inst.name} /config/usb_gadget/g1/configs/b.1/f7 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,diag_mdm,qdss,qdss_mdm,serial_cdev,dpl,rmnet,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,diag_mdm,qdss,qdss_mdm,serial_cdev,dpl,rmnet,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_diag_mdm_qdss_qdss_mdm_dun_dpl_rmnet_adb" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90E5 + write /config/usb_gadget/g1/functions/diag.diag/pid 0x90e5 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag_mdm /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/qdss.qdss_mdm /config/usb_gadget/g1/configs/b.1/f4 + symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f5 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.dpl.inst.name} /config/usb_gadget/g1/configs/b.1/f6 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.rmnet.inst.name} /config/usb_gadget/g1/configs/b.1/f7 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f8 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,diag,diag_mdm,qdss,qdss_mdm,serial_cdev,dpl && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_diag_diag_mdm_qdss_qdss_mdm_dun_dpl" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90E6 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag_mdm /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f4 + symlink /config/usb_gadget/g1/functions/qdss.qdss_mdm /config/usb_gadget/g1/configs/b.1/f5 + symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f6 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.dpl.inst.name} /config/usb_gadget/g1/configs/b.1/f7 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state rndis + +on property:sys.usb.config=rndis,diag,diag_mdm,qdss,qdss_mdm,serial_cdev,dpl,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,diag,diag_mdm,qdss,qdss_mdm,serial_cdev,dpl,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_diag_diag_mdm_qdss_qdss_mdm_dun_dpl_adb" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90E7 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag_mdm /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f4 + symlink /config/usb_gadget/g1/functions/qdss.qdss_mdm /config/usb_gadget/g1/configs/b.1/f5 + symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f6 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.dpl.inst.name} /config/usb_gadget/g1/configs/b.1/f7 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f8 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state rndis,adb + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,diag,qdss,serial_cdev,dpl && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_diag_qdss_dun_dpl" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90E8 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/qdss.${vendor.usb.qdss.inst.name} /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f4 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.dpl.inst.name} /config/usb_gadget/g1/configs/b.1/f5 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state rndis + +on property:sys.usb.config=rndis,diag,qdss,serial_cdev,dpl,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,diag,qdss,serial_cdev,dpl,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_diag_qdss_dun_dpl_adb" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90E9 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/qdss.${vendor.usb.qdss.inst.name} /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f4 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.dpl.inst.name} /config/usb_gadget/g1/configs/b.1/f5 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f6 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state rndis,adb + +on property:sys.usb.config=diag,diag_mdm,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,diag_mdm,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_diag_mdm_adb" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90D9 + write /config/usb_gadget/g1/functions/diag.diag/pid 0x90d9 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag_mdm /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f3 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,diag_mdm,diag_mdm2,qdss,qdss_mdm,serial_cdev,dpl,rmnet && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_diag_mdm_diag_mdm2_qdss_qdss_mdm_dun_dpl_rmnet" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90F6 + write /config/usb_gadget/g1/functions/diag.diag/pid 0x90f6 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag_mdm /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag_mdm2 /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f4 + symlink /config/usb_gadget/g1/functions/qdss.qdss_mdm /config/usb_gadget/g1/configs/b.1/f5 + symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f6 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.dpl.inst.name} /config/usb_gadget/g1/configs/b.1/f7 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.rmnet.inst.name} /config/usb_gadget/g1/configs/b.1/f8 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,diag_mdm,diag_mdm2,qdss,qdss_mdm,serial_cdev,dpl,rmnet,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,diag_mdm,diag_mdm2,qdss,qdss_mdm,serial_cdev,dpl,rmnet,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_diag_mdm_diag_mdm2_qdss_qdss_mdm_dun_dpl_rmnet_adb" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90F7 + write /config/usb_gadget/g1/functions/diag.diag/pid 0x90f7 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag_mdm /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag_mdm2 /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f4 + symlink /config/usb_gadget/g1/functions/qdss.qdss_mdm /config/usb_gadget/g1/configs/b.1/f5 + symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f6 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.dpl.inst.name} /config/usb_gadget/g1/configs/b.1/f7 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.rmnet.inst.name} /config/usb_gadget/g1/configs/b.1/f8 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,diag,diag_mdm,diag_mdm2,qdss,qdss_mdm,serial_cdev,dpl && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_diag_diag_mdm_diag_mdm2_qdss_qdss_mdm_dun_dpl" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90F8 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag_mdm /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag_mdm2 /config/usb_gadget/g1/configs/b.1/f4 + symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f5 + symlink /config/usb_gadget/g1/functions/qdss.qdss_mdm /config/usb_gadget/g1/configs/b.1/f6 + symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f7 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.dpl.inst.name} /config/usb_gadget/g1/configs/b.1/f8 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state rndis + +on property:sys.usb.config=rndis,diag,diag_mdm,diag_mdm2,qdss,qdss_mdm,serial_cdev,dpl,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,diag,diag_mdm,diag_mdm2,qdss,qdss_mdm,serial_cdev,dpl,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_diag_diag_mdm_diag_mdm2_qdss_qdss_mdm_dun_dpl_adb" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x90F9 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag_mdm /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag_mdm2 /config/usb_gadget/g1/configs/b.1/f4 + symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f5 + symlink /config/usb_gadget/g1/functions/qdss.qdss_mdm /config/usb_gadget/g1/configs/b.1/f6 + symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f7 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.dpl.inst.name} /config/usb_gadget/g1/configs/b.1/f8 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state rndis,adb + +on property:sys.usb.config=diag,diag_mdm,ccid && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_diag_mdm_ccid" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x9045 + write /config/usb_gadget/g1/functions/diag.diag/pid 0x9045 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag_mdm /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/ccid.ccid /config/usb_gadget/g1/configs/b.1/f3 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,diag_mdm,adb,ccid && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,diag_mdm,adb,ccid && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_diag_mdm_adb_ccid" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x9044 + write /config/usb_gadget/g1/functions/diag.diag/pid 0x9044 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag_mdm /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/ccid.ccid /config/usb_gadget/g1/configs/b.1/f4 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,diag_cnss,serial_cdev,rmnet,dpl,qdss,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,diag_cnss,serial_cdev,rmnet,dpl,qdss,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_diag_cnss_dun_rmnet_dpl_qdss_adb" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x9110 + write /config/usb_gadget/g1/functions/diag.diag/pid 0x9110 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag_mdm2 /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.rmnet.inst.name} /config/usb_gadget/g1/configs/b.1/f4 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.dpl.inst.name} /config/usb_gadget/g1/configs/b.1/f5 + symlink /config/usb_gadget/g1/functions/qdss.${vendor.usb.qdss.inst.name} /config/usb_gadget/g1/configs/b.1/f6 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f7 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,diag_cnss,serial_cdev,rmnet,dpl,qdss && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_diag_cnss_dun_rmnet_dpl_qdss" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x9111 + write /config/usb_gadget/g1/functions/diag.diag/pid 0x9111 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag_mdm2 /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.rmnet.inst.name} /config/usb_gadget/g1/configs/b.1/f4 + symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.dpl.inst.name} /config/usb_gadget/g1/configs/b.1/f5 + symlink /config/usb_gadget/g1/functions/qdss.${vendor.usb.qdss.inst.name} /config/usb_gadget/g1/configs/b.1/f6 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/idVendor 0x18d1 + write /config/usb_gadget/g1/idProduct 0x4ee7 + +on property:sys.usb.config=mtp && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/idVendor 0x18d1 + write /config/usb_gadget/g1/idProduct 0x4ee1 + +on property:sys.usb.config=mtp && property:vendor.usb.use_ffs_mtp=1 && property:sys.usb.configfs=1 + symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1 + +on property:sys.usb.config=mtp,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/idVendor 0x18d1 + write /config/usb_gadget/g1/idProduct 0x4ee2 + +on property:sys.usb.config=mtp,adb && property:vendor.usb.use_ffs_mtp=1 && property:sys.usb.configfs=1 + symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 + +on property:sys.usb.config=ptp && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/idVendor 0x18d1 + write /config/usb_gadget/g1/idProduct 0x4ee5 + +on property:sys.usb.config=ptp && property:vendor.usb.use_ffs_mtp=1 && property:sys.usb.configfs=1 + symlink /config/usb_gadget/g1/functions/ffs.ptp /config/usb_gadget/g1/configs/b.1/f1 + +on property:sys.usb.config=ptp,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/idVendor 0x18d1 + write /config/usb_gadget/g1/idProduct 0x4ee6 + +on property:sys.usb.config=ptp,adb && property:vendor.usb.use_ffs_mtp=1 && property:sys.usb.configfs=1 + symlink /config/usb_gadget/g1/functions/ffs.ptp /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 + +on property:sys.usb.config=accessory && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/idVendor 0x18d1 + write /config/usb_gadget/g1/idProduct 0x2d00 + +on property:sys.usb.config=accessory,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/idVendor 0x18d1 + write /config/usb_gadget/g1/idProduct 0x2d01 + +on property:sys.usb.config=audio_source && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/idVendor 0x18d1 + write /config/usb_gadget/g1/idProduct 0x2d02 + +on property:sys.usb.config=audio_source,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/idVendor 0x18d1 + write /config/usb_gadget/g1/idProduct 0x2d03 + +on property:sys.usb.config=accessory,audio_source && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/idVendor 0x18d1 + write /config/usb_gadget/g1/idProduct 0x2d04 + +on property:sys.usb.config=accessory,audio_source,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/idVendor 0x18d1 + write /config/usb_gadget/g1/idProduct 0x2d05 + +on property:sys.usb.config=midi && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/idVendor 0x18d1 + write /config/usb_gadget/g1/idProduct 0x4ee8 + +on property:sys.usb.config=midi,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/idVendor 0x18d1 + write /config/usb_gadget/g1/idProduct 0x4ee9 + +on property:vendor.usb.eud=1 + write /config/usb_gadget/g1/configs/b.1/MaxPower 1 + write /sys/module/eud/parameters/enable 1 + write /sys/kernel/debug/pmic-votable/USB_ICL/force_active 1 + write /sys/kernel/debug/pmic-votable/USB_ICL/force_val 500 + +on property:vendor.usb.eud=0 + write /sys/kernel/debug/pmic-votable/USB_ICL/force_active 0 + write /sys/kernel/debug/pmic-votable/USB_ICL/force_val 0 + write /config/usb_gadget/g1/configs/b.1/MaxPower 0 + write /sys/module/eud/parameters/enable 0 + +#bsp, 2020/07/07 Add for op chg +service oplus_chg_init_sh /vendor/bin/init.oplus_chg.sh + class core + user root + oneshot + disabled + +on boot + start oplus_chg_init_sh + +on charger + start oplus_chg_init_sh + +on property:sys.fastcharger=true + write /sys/class/oplus_chg/usb/chg_enable 1 + +on property:sys.fastcharger=false + write /sys/class/oplus_chg/usb/chg_enable 0 + diff --git a/rootdir/etc/init.qti.kernel.rc b/rootdir/etc/init.qti.kernel.rc new file mode 100644 index 0000000..350d247 --- /dev/null +++ b/rootdir/etc/init.qti.kernel.rc @@ -0,0 +1,174 @@ +#============================================================================= +# Copyright (c) 2019-2020 Qualcomm Technologies, Inc. +# All Rights Reserved. +# Confidential and Proprietary - Qualcomm Technologies, Inc. +# +# Copyright (c) 2009-2012, 2014-2019, The Linux Foundation. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of The Linux Foundation nor +# the names of its contributors may be used to endorse or promote +# products derived from this software without specific prior written +# permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +#============================================================================= +import /vendor/etc/init/hw/init.qti.kernel.test.rc + +on early-init + mount debugfs debugfs /sys/kernel/debug + chmod 0755 /sys/kernel/debug + + # Mount tracefs in /sys/kernel/tracing as CONFIG_DEBUG_FS might be + # disabled and /sys/kernel/debug/tracing might not be available + mount tracefs tracefs /sys/kernel/tracing + chmod 0755 /sys/kernel/tracing + + chown root system /dev/kmsg + chmod 0620 /dev/kmsg + + write /proc/sys/kernel/sched_boost 1 + + write /proc/sys/kernel/firmware_config/force_sysfs_fallback 1 + +on init + # Create cgroup mount point for memory + mkdir /sys/fs/cgroup/memory/bg 0750 root system + write /sys/fs/cgroup/memory/bg/memory.swappiness 140 + write /sys/fs/cgroup/memory/bg/memory.move_charge_at_immigrate 1 + chown root system /sys/fs/cgroup/memory/bg/tasks + chmod 0660 /sys/fs/cgroup/memory/bg/tasks + + # update scheduler tunables + write /dev/cpuctl/foreground/cpu.uclamp.sched_boost_no_override 1 + write /dev/cpuctl/top-app/cpu.uclamp.sched_boost_no_override 1 + write /dev/cpuctl/background/cpu.uclamp.colocate 0 + write /dev/cpuctl/foreground/cpu.uclamp.colocate 0 + write /dev/cpuctl/top-app/cpu.uclamp.colocate 1 + +on post-fs + chmod 0755 /sys/kernel/debug/tracing + + # set aggressive read ahead for dm-0 and dm-1 during boot up + write /sys/block/dm-0/queue/read_ahead_kb 2048 + write /sys/block/dm-1/queue/read_ahead_kb 2048 + write /sys/block/dm-2/queue/read_ahead_kb 2048 + +on early-boot + # Allow subsystem (modem etc) debugging + write /sys/kernel/boot_adsp/boot 1 + write /sys/kernel/boot_cdsp/boot 1 + write /sys/kernel/boot_slpi/boot 1 + write /sys/devices/virtual/cvp/cvp/boot 1 + +on boot + # Set the console loglevel to < KERN_WARN + # Set the default message loglevel to KERN_INFO + write /proc/sys/kernel/printk "4 6 1 7" + + # Allow access to emmc rawdump block partition and dload sysfs node + chown root system /dev/block/bootdevice/by-name/rawdump + chmod 0660 /dev/block/bootdevice/by-name/rawdump + chown root system /sys/kernel/dload/emmc_dload + chmod 0660 /sys/kernel/dload/emmc_dload + chown root system /dev/block/bootdevice/by-name/ramdump + chmod 0660 /dev/block/bootdevice/by-name/ramdump + chown root system /sys/kernel/dload/dload_mode + chmod 0660 /sys/kernel/dload/dload_mode + + # set the io-scheduler to bfq on all mq support devices + write /sys/block/sda/queue/scheduler bfq + write /sys/block/sdb/queue/scheduler bfq + write /sys/block/sdc/queue/scheduler bfq + write /sys/block/sdd/queue/scheduler bfq + write /sys/block/sde/queue/scheduler bfq + write /sys/block/sdf/queue/scheduler bfq + write /sys/block/sdg/queue/scheduler bfq + write /sys/block/sdh/queue/scheduler bfq + write /sys/class/block/mmcblk0/queue/scheduler bfq + write /sys/class/block/mmcblk1/queue/scheduler bfq + + # update io-scheduler tunables + write /sys/block/sda/queue/iosched/slice_idle 0 + write /sys/block/sdb/queue/iosched/slice_idle 0 + write /sys/block/sdc/queue/iosched/slice_idle 0 + write /sys/block/sdd/queue/iosched/slice_idle 0 + write /sys/block/sde/queue/iosched/slice_idle 0 + write /sys/block/sdf/queue/iosched/slice_idle 0 + write /sys/block/sdg/queue/iosched/slice_idle 0 + write /sys/block/sdh/queue/iosched/slice_idle 0 + write /sys/class/block/mmcblk0/queue/iosched/slice_idle 0 + write /sys/class/block/mmcblk1/queue/iosched/slice_idle 0 + +on post-fs-data + # Create directory used for dump collection + mkdir /data/vendor/ssrdump 0770 root system + +on property:persist.sys.ssr.enable_debug=* + write /sys/module/subsys_pil_tz/parameters/enable_debug ${persist.sys.ssr.enable_debug} + +on property:persist.sys.mba_boot_timeout=* + write /sys/module/pil_msa/parameters/pbl_mba_boot_timeout_ms ${persist.sys.mba_boot_timeout} + +on property:persist.sys.modem_auth_timeout=* + write /sys/module/pil_msa/parameters/modem_auth_timeout_ms ${persist.sys.modem_auth_timeout} + +on property:persist.sys.pil_proxy_timeout=* + write /sys/module/peripheral_loader/parameters/proxy_timeout_ms ${persist.sys.pil_proxy_timeout} + +on property:persist.vendor.ssr.enable_ramdumps=1 + write /sys/module/subsystem_restart/parameters/enable_ramdumps 1 + +on property:persist.vendor.ssr.enable_ramdumps=0 + write /sys/module/subsystem_restart/parameters/enable_ramdumps 0 + +on property:persist.vendor.sys.rawdump_copy=1 + write /sys/kernel/dload/emmc_dload 1 + +on property:persist.vendor.sys.rawdump_copy=0 + write /sys/kernel/dload/emmc_dload 0 + +service kernel-boot /vendor/bin/sh /vendor/bin/init.qti.kernel.sh + class core + user root + group root + disabled + oneshot + +service kernel-post-boot /vendor/bin/sh /vendor/bin/init.kernel.post_boot.sh + class core + user root + group root system wakelock graphics + disabled + oneshot + +on property:sys.boot_completed=1 + write /dev/kmsg "Boot completed " + #Reset read ahead for dm-0, dm-1 and dm-2 to 512kb + write /sys/block/dm-0/queue/read_ahead_kb 512 + write /sys/block/dm-1/queue/read_ahead_kb 512 + write /sys/block/dm-2/queue/read_ahead_kb 512 + start kernel-boot + start kernel-post-boot + +service vendor.msm_irqbalance /vendor/bin/msm_irqbalance -f /system/vendor/etc/msm_irqbalance.conf + class core + user root + group root + disabled diff --git a/rootdir/etc/init.qti.qcv.rc b/rootdir/etc/init.qti.qcv.rc new file mode 100644 index 0000000..cd19f40 --- /dev/null +++ b/rootdir/etc/init.qti.qcv.rc @@ -0,0 +1,11 @@ +#! /vendor/etc/init +#============================================================================= +# Copyright (c) 2020 Qualcomm Technologies, Inc. +# All Rights Reserved. +# Confidential and Proprietary - Qualcomm Technologies, Inc. +#============================================================================= + +on early-init + # Set ro.boot.product.vendor.sku to soc_name + exec u:r:vendor_qti_init_shell:s0 -- /vendor/bin/init.qti.qcv.sh + setprop ro.boot.product.vendor.sku ${ro.vendor.qti.soc_name} diff --git a/rootdir/etc/init.recovery.qcom.rc b/rootdir/etc/init.recovery.qcom.rc new file mode 100644 index 0000000..32cfe26 --- /dev/null +++ b/rootdir/etc/init.recovery.qcom.rc @@ -0,0 +1,12 @@ +import /init.recovery.target.rc + +on fs + wait /dev/block/platform/soc/${ro.boot.bootdevice} + symlink /dev/block/platform/soc/${ro.boot.bootdevice} /dev/block/bootdevice + +on init + setprop sys.usb.configfs 1 + +on property:ro.boot.usbcontroller=* + setprop sys.usb.controller ${ro.boot.usbcontroller} + write /sys/class/udc/${ro.boot.usbcontroller}/device/../mode peripheral diff --git a/rootdir/etc/init.stnfc.rc b/rootdir/etc/init.stnfc.rc new file mode 100644 index 0000000..6997a3d --- /dev/null +++ b/rootdir/etc/init.stnfc.rc @@ -0,0 +1,9 @@ + +# This file needs to be executed by vendor_init at boot of the device, +# both in normal and factory mode. + +service stflashtool /vendor/bin/STFlashTool + class late_start + group nfc + user nfc + oneshot diff --git a/init/init.target.rc b/rootdir/etc/init.target.rc similarity index 65% rename from init/init.target.rc rename to rootdir/etc/init.target.rc index dcd5c76..24b945d 100644 --- a/init/init.target.rc +++ b/rootdir/etc/init.target.rc @@ -1,6 +1,5 @@ # Copyright (c) 2019-2020, The Linux Foundation. All rights reserved. -# Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are @@ -30,12 +29,12 @@ # import /vendor/etc/init/hw/init.qti.kernel.rc +# kevin@system, 2020/09/03, add carrier rc +import /vendor/etc/init/hw/init.oem.carrier.rc on early-init exec u:r:vendor_modprobe:s0 -- /vendor/bin/vendor_modprobe.sh - exec u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -a -d /vendor/lib/modules q6_pdr_dlkm q6_notifier_dlkm snd_event_dlkm apr_dlkm adsp_loader_dlkm q6_dlkm native_dlkm pinctrl_lpi_dlkm swr_dlkm platform_dlkm stub_dlkm wcd_core_dlkm wsa881x_analog_dlkm bolero_cdc_dlkm va_macro_dlkm rx_macro_dlkm tx_macro_dlkm bt_fm_slim wcd938x_dlkm wcd938x_slave_dlkm wcd937x_dlkm wcd937x_slave_dlkm machine_dlkm radio-i2c-rtc6226-qca cdsprm - exec u:r:vendor_qti_init_shell:s0 -- /vendor/bin/init.qti.early_init.sh - setprop ro.soc.model ${ro.vendor.qti.soc_model} + exec u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -a -d /vendor/lib/modules q6_pdr_dlkm q6_notifier_dlkm snd_event_dlkm apr_dlkm adsp_loader_dlkm q6_dlkm native_dlkm pinctrl_lpi_dlkm swr_dlkm platform_dlkm stub_dlkm wcd_core_dlkm wsa881x_analog_dlkm bolero_cdc_dlkm va_macro_dlkm rx_macro_dlkm tx_macro_dlkm bt_fm_slim wcd938x_dlkm wcd938x_slave_dlkm wcd937x_dlkm wcd937x_slave_dlkm machine_dlkm radio-i2c-rtc6226-qca mmc_core mmc_block sdhci sdhci-pltfm sdhci-msm cdsprm sia81xx_dlkm aw87xxx_dlkm wait /sys/devices/soc0/soc_id on init @@ -59,6 +58,9 @@ on init chmod 0664 /dev/cpuctl/background/tasks chmod 0664 /dev/cpuctl/top-app/tasks chmod 0664 /dev/cpuctl/rt/tasks + #NFC + #chmod 0660 /dev/st21nfc + #chown nfc nfc /dev/st21nfc write /dev/cpuctl/foreground/cpu.rt_runtime_us 950000 write /dev/cpuctl/background/cpu.rt_runtime_us 950000 write /dev/cpuctl/top-app/cpu.rt_runtime_us 950000 @@ -73,15 +75,30 @@ on early-fs on fs start hwservicemanager +#ifdef VENDOR_EDIT + mkdir /mnt/vendor/op2 0660 system system +#endif /* VENDOR_EDIT */ mount_all --early +#ifdef VENDOR_EDIT + wait /mnt/vendor/op2 + chown system system /mnt/vendor/op2 +#endif /* VENDOR_EDIT */ chown root system /mnt/vendor/persist chmod 0771 /mnt/vendor/persist restorecon_recursive /mnt/vendor/persist mkdir /mnt/vendor/persist/data 0700 system system - mkdir /mnt/vendor/persist/wlan 0700 system system - chmod 0700 /mnt/vendor/persist/wlan + mkdir /mnt/vendor/my_cota 0660 system system + +on post-fs + # set RLIMIT_MEMLOCK to 64MB + setrlimit 8 67108864 67108864 + write /dev/ipa 1 + mkdir /mnt/vendor/op2/recovery 0770 root system on late-fs + wait_for_prop hwservicemanager.ready true + #exec_start wait_for_keymaster + start console mount_all --late on post-fs-data @@ -92,6 +109,14 @@ on early-boot on boot write /dev/cpuset/audio-app/cpus 1-2 + # Add a cpuset for the camera daemon + # We want all cores for camera + mkdir /dev/cpuset/camera-daemon + write /dev/cpuset/camera-daemon/cpus 0-7 + write /dev/cpuset/camera-daemon/mems 0 + chown cameraserver cameraserver /dev/cpuset/camera-daemon + chown cameraserver cameraserver /dev/cpuset/camera-daemon/tasks + chmod 0660 /dev/cpuset/camera-daemon/tasks #USB controller configuration setprop vendor.usb.rndis.func.name "gsi" setprop vendor.usb.rmnet.func.name "gsi" @@ -99,11 +124,21 @@ on boot setprop vendor.usb.dpl.inst.name "dpl" setprop vendor.usb.qdss.inst.name "qdss_mdm" setprop vendor.usb.controller 4e00000.dwc3 - #Load WLAN driver - exec_background u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -a -d /vendor/lib/modules/ qca_cld3_wlan +# v-takey.zheng@SYSTEM, 2020/06/03 Add for oemlogkit camera log + chmod 0666 /sys/module/cam_debug_util/parameters/debug_mdl + +#ifdef VENDOR_EDIT +# Fengfeng.XU@PERFORMANCE, 2020/07/30, Optimize the boot time and run the boot animation on the small core +on boot + write /dev/cpuset/top-app/cpus 0-7 + write /dev/cpuset/foreground/cpus 0-7 + write /dev/cpuset/foreground/boost/cpus 0-7 + write /dev/cpuset/system-background/cpus 0-7 + write /dev/cpuset/background/cpus 0-3 +#endif /* VENDOR_EDIT */ on property:vendor.display.lcd_density=560 - setprop dalvik.vm.heapgrowthlimit 256m + setprop dalvik.vm.heapgrowthlimit 384m on property:vendor.display.lcd_density=640 setprop dalvik.vm.heapgrowthlimit 512m @@ -111,7 +146,29 @@ on property:vendor.display.lcd_density=640 on boot && property:persist.vendor.usb.controller.default=* setprop vendor.usb.controller ${persist.vendor.usb.controller.default} -on property:init.svc.vendor.charger=running +on property:vendor.usb.controller=* + setprop sys.usb.controller ${vendor.usb.controller} + +on charger + mount_all /vendor/etc/charger_fstab.qti --early + write /sys/kernel/boot_adsp/boot 1 + #restart charger after ADSP is out of reset + restart charger + start qcom-post-boot + write /sys/devices/system/cpu/cpufreq/policy0/scaling_governor schedutil + write /sys/devices/system/cpu/cpufreq/policy6/scaling_governor schedutil + write /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq 1324800 + + 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/cpu4/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 + write /sys/module/lpm_levels/parameters/sleep_disabled 0 + stop oemlogkit + start vendor.power_off_alarm setprop sys.usb.controller 4e00000.dwc3 setprop sys.usb.configfs 1 @@ -151,11 +208,14 @@ on property:sys.shutdown.requested=* stop vendor.per_proxy on property:vold.decrypt=trigger_restart_framework - start vendor.cnss_diag +#on property:vold.decrypt=trigger_restart_framework +# start vendor.cnss_diag +#endif /* VENDOR_EDIT */ service vendor.cnss_diag /system/vendor/bin/cnss_diag -q -f -t HELIUM class main user system group system wifi inet sdcard_rw media_rw diag + disabled oneshot diff --git a/rootdir/etc/init.uicc.rc b/rootdir/etc/init.uicc.rc new file mode 100644 index 0000000..1f78370 --- /dev/null +++ b/rootdir/etc/init.uicc.rc @@ -0,0 +1,3 @@ +#nfc uicc control +on property:ro.boot.product.hardware.sku=9 + setprop persist.vendor.radio.uicc_se_enabled true diff --git a/rootdir/etc/vendor.oem_ftm.rc b/rootdir/etc/vendor.oem_ftm.rc new file mode 100644 index 0000000..f47935b --- /dev/null +++ b/rootdir/etc/vendor.oem_ftm.rc @@ -0,0 +1,40 @@ +on post-fs-data + chmod 0666 /dev/block/sda6 + chmod 0666 /dev/param + +service wcnss-service-f /system/bin/wcnss_service -f + class main + user root + group system wifi radio + oneshot + disabled + +service factory /vendor/bin/factory + class late_start + disabled + +service ftm_power_config /vendor/bin/sh /vendor/etc/init/hw/ftm_power_config.sh + class late_start + user root + disabled + oneshot + +on oem_ftm + chmod 0666 /sys/module/sysctl/parameters/oem_en_chg_prk_lv + chmod 0666 /sys/class/drm/card0-DSI-1/panel_serial_number_AT + chown system system /vendor/bin/factory + chmod 0755 /vendor/bin/factory + chown system system /vendor/bin/ptt_socket_app + chmod 0755 /vendor/bin/ptt_socket_app + write /sys/class/power_supply/battery/charging_enabled 0 + start qcom-sh + start vendor.qmuxd + start ptt_ffbm + start ftm_power_config + start cnss-daemon + start qcom-c_main-sh + write /dev/kmsg "factory boot mode is:${ro.vendor.factory.mode}" + start vendor.mdm_launcher + +on property:ro.vendor.factory.mode=ftm + start factory diff --git a/rootdir/etc/vendor.oem_ftm_svc_disable.rc b/rootdir/etc/vendor.oem_ftm_svc_disable.rc new file mode 100644 index 0000000..a53bee9 --- /dev/null +++ b/rootdir/etc/vendor.oem_ftm_svc_disable.rc @@ -0,0 +1,90 @@ +# this file should import init.rc and then add some oem defined service + +#this service is a non-use service and just use to duplicate real console service +service console /system/bin/xxx + class core + console + disabled + user root + group shell log + oneshot + seclabel u:r:shell:s0 + +#this service is a non-use service and just use to duplicate real surfaceflinger service +service surfaceflinger /system/bin/xxx + class core + oneshot + disabled + +service vendor.fps_hal /vendor/bin/hw/XXX + class hal + user system + group system input uhid everybody + disabled + +#disable below services to solve AT current peaks issue start +service zygote /system/bin/xxx + class main + user system + disabled + +service zygote_secondary /system/bin/xxx + class main + user root + group root readproc reserved_disk + disabled + +service vendor.cdsprpcd /vendor/bin/xxx + class main + user system + disabled + +service cameraserver /system/bin/xxx + class late_start + user cameraserver + disabled + +service iorapd /system/bin/xxx + class main + user iorapd + disabled + +service feature_enabler_client /vendor/bin/xxx + class late_start + user system + disabled + +service vendor.vppservice /vendor/bin/XXX + class hal + user media + group camera system + disabled + +service biometrics_face_service /vendor/bin/hw/xxx + class hal + user system + disabled +#disable below services to solve AT current peaks issue end + +service oemasserttip /system/bin/xxx + class main + user system + disabled + +service vendor.oneplus.cwb-1-0 /vendor/bin/hw/xxx + oneshot + disabled + +service vendor.qti.hardware.display.composer /vendor/bin/hw/xxx + oneshot + disabled + +service vendor.light-hal-2-0 /vendor/bin/hw/xxx + oneshot + disabled + +service vendor.imsdaemon /vendor/bin/imsdaemon + class main + user radio + group radio wifi inet vendor_qti_diag log + disabled \ No newline at end of file diff --git a/init/ueventd.qcom.rc b/rootdir/ueventd.rc similarity index 95% rename from init/ueventd.qcom.rc rename to rootdir/ueventd.rc index e1f4463..f9447ff 100644 --- a/init/ueventd.qcom.rc +++ b/rootdir/ueventd.rc @@ -28,7 +28,12 @@ # Firmware directory Path # Below macro will be read by uevent and path will # be added to search path for firmware loading -firmware_directories /vendor/firmware_mnt/image/ +# ifndef VENDOR_EDIT +# Richy.li@CONNECTIVITY, 2020/08/20, [8350] Wifi one point cal +#firmware_directories /vendor/firmware_mnt/image/ +# else +firmware_directories /mnt/vendor/persist/copy/ /vendor/firmware_mnt/image/ +# endif /* VENDOR_EDIT * # the DIAG device node is not world writable/readable. /dev/diag 0660 system oem_2901 @@ -59,7 +64,6 @@ firmware_directories /vendor/firmware_mnt/image/ /dev/ipa_adpl 0660 system oem_2905 /dev/synx_device 0660 root camera /dev/hab 0666 system system -/dev/hgsl 0666 system system /dev/iio:device* 0664 system system #permissions for UFS RPMB BSG device node @@ -72,7 +76,6 @@ firmware_directories /vendor/firmware_mnt/image/ /dev/smd2 0660 bluetooth bluetooth /dev/smd3 0660 bluetooth bluetooth /dev/btpower 0660 bluetooth system -/dev/btfmslim 0660 bluetooth system #permissions for pta /dev/pta 0660 system system @@ -163,6 +166,15 @@ firmware_directories /vendor/firmware_mnt/image/ /dev/system_health_monitor 0644 radio system /dev/mdss_rotator 0664 system system +#ifdef VENDOR_EDIT +#Revise the permissions for Param +/dev/block/by-name/param 0660 root system +#endif VENDOR_EDIT + +# narci.gu@SYSTEM, 2020/12/08, add for serial number writing by wifi adb +/dev/block/sde72 0600 system system +/dev/block/bootdevice/by-name/reserve1 0600 system system + #QDSS /dev/byte-cntr 0660 system oem_2902 /dev/mhi_qdss 0660 system oem_2902 @@ -174,11 +186,7 @@ firmware_directories /vendor/firmware_mnt/image/ #qvr /dev/qvr_external_sensor_ioctl 0660 system system -/dev/bus/usb/* 0660 root usb -/dev/hidraw* 0660 root usb - -#rawdump -/dev/block/platform/soc/*/by-name/rawdump 0660 root system +/sys/kernel/qvr_external_sensor/fd 0660 system system # wlan /dev/wcnss_wlan 0660 system system @@ -187,7 +195,6 @@ firmware_directories /vendor/firmware_mnt/image/ /sys/devices/soc/a000000.qcom,wcnss-wlan/net/p2p0/queues/rx-* rps_cpus 0660 system system /sys/devices/platform/soc/*.qcom,icnss/net/wlan*/queues/rx-* rps_cpus 0660 system system /sys/devices/platform/soc/1c00000.qcom,pcie/pci0000:00/0000:00:00.0/0000:01:00.0/net/wlan*/queues/rx-* rps_cpus 0660 system system -/sys/devices/platform/soc/17a10040.qcom,wcn6750/net/wlan*/queues/rx-* rps_cpus 0660 system system /dev/spidev0.0 0660 system audio /dev/i2c-7 0660 system audio /dev/msm_camera/* 0660 system camera @@ -198,6 +205,7 @@ firmware_directories /vendor/firmware_mnt/image/ /dev/msm_vidc_dec_sec 0660 system audio /dev/msm_vidc_enc 0660 system audio /dev/msm_rotator 0660 system system +/dev/hw_random 0600 root root /dev/sdsprpc-smd 0660 system system #permissions for audio @@ -242,7 +250,6 @@ firmware_directories /vendor/firmware_mnt/image/ /dev/avtimer 0660 system audio /dev/spidev2.0 0660 system audio /dev/spidev22.0 0660 system audio -/dev/spidev10.0 0660 system audio # DVB devices /dev/dvb/adapter0/demux* 0440 media media @@ -307,6 +314,17 @@ firmware_directories /vendor/firmware_mnt/image/ /sys/devices/soc/600000.qcom,pcie/pci0000:00/0000:00:00.0/0000:01:00.0/net/wlan0/queues/rx-* rps_cpus 0660 system system /sys/devices/soc/600000.qcom,pcie/pci0000:00/0000:00:00.0/0000:01:00.0/net/p2p0/queues/rx-* rps_cpus 0660 system system +# wigig +/sys/bus/pci/drivers/wil6210* 0000:01:00.0/wil6210/fst_link_loss 0660 wifi wifi +/sys/bus/pci/drivers/wil6210* 0000:01:00.0/wil6210/thermal_throttling 0660 system system +/sys/bus/pci/drivers/wil6210* 0000:01:00.0/wil6210/snr_thresh 0660 wifi wifi +/sys/bus/pci/drivers/wil6210* 0000:01:00.0/net/wigig0/queues/rx-0/rps_cpus 0660 system system +/sys/bus/pci/drivers/wil6210* 0000:01:00.0/net/wigig0/gro_flush_timeout 0660 system system +/sys/devices/virtual/net/bond0 queues/rx-0/rps_cpus 0660 system system + +#NFC +/dev/st21nfc 0660 nfc nfc + #nfc permissions /dev/nfc-nci 0660 nfc nfc /dev/nq-nci 0660 nfc nfc @@ -379,9 +397,6 @@ firmware_directories /vendor/firmware_mnt/image/ /sys/devices/virtual/hdcp/msm_hdcp min_level_change 0664 system graphics -#KGSL -/sys/class/kgsl/kgsl-3d0 perfcounter 0660 root shell - # sys-fs display /sys/class/graphics/fb* hpd 0664 system graphics /sys/class/graphics/fb* res_info 0664 system graphics @@ -411,6 +426,7 @@ firmware_directories /vendor/firmware_mnt/image/ /sys/class/graphics/fb0 modes 0664 system graphics /sys/class/graphics/fb0 mode 0664 system graphics /sys/class/graphics/fb0 msm_cmd_autorefresh_en 0664 system graphics +*/ /sys/devices/platform/soc/ae00000.qcom,mdss_mdp power/control 0664 system graphics diff --git a/rro_overlays/WifiResCommon/Android.bp b/rro_overlays/WifiResCommon/Android.bp new file mode 100644 index 0000000..859ad2b --- /dev/null +++ b/rro_overlays/WifiResCommon/Android.bp @@ -0,0 +1,6 @@ +runtime_resource_overlay { + name: "WifiResCommon", + theme: "WifiResCommon", + sdk_version: "current", + product_specific: true +} diff --git a/rro_overlays/WifiResCommon/AndroidManifest.xml b/rro_overlays/WifiResCommon/AndroidManifest.xml new file mode 100644 index 0000000..eb771d3 --- /dev/null +++ b/rro_overlays/WifiResCommon/AndroidManifest.xml @@ -0,0 +1,12 @@ + + + + + diff --git a/rro_overlays/WifiResCommon/res/values/bools.xml b/rro_overlays/WifiResCommon/res/values/bools.xml new file mode 100644 index 0000000..6a032b9 --- /dev/null +++ b/rro_overlays/WifiResCommon/res/values/bools.xml @@ -0,0 +1,44 @@ + + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + false + + + true + + + true + + + true + + + true + diff --git a/rro_overlays/WifiResCommon/res/values/integers.xml b/rro_overlays/WifiResCommon/res/values/integers.xml new file mode 100644 index 0000000..ab57c9e --- /dev/null +++ b/rro_overlays/WifiResCommon/res/values/integers.xml @@ -0,0 +1,5 @@ + + + + 32 + diff --git a/rro_overlays/WifiResCommon/res/values/strings.xml b/rro_overlays/WifiResCommon/res/values/strings.xml new file mode 100644 index 0000000..b53a931 --- /dev/null +++ b/rro_overlays/WifiResCommon/res/values/strings.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/sepolicy/private/seapp_contexts b/sepolicy/private/seapp_contexts deleted file mode 100644 index 951ea3c..0000000 --- a/sepolicy/private/seapp_contexts +++ /dev/null @@ -1 +0,0 @@ -user=bluetooth seinfo=default name=com.android.bluetooth domain=bluetooth type=bluetooth_data_file levelFrom=all isPrivApp=true \ No newline at end of file diff --git a/sepolicy/vendor/attributes b/sepolicy/vendor/attributes new file mode 100644 index 0000000..8d180cf --- /dev/null +++ b/sepolicy/vendor/attributes @@ -0,0 +1,12 @@ +# HALs +attribute hal_cameraHIDL; +attribute hal_cameraHIDL_client; +attribute hal_cameraHIDL_server; + +attribute hal_display; +attribute hal_display_client; +attribute hal_display_server; + +attribute hal_param; +attribute hal_param_client; +attribute hal_param_server; diff --git a/sepolicy/vendor/cameraserver.te b/sepolicy/vendor/cameraserver.te new file mode 100644 index 0000000..08b17e0 --- /dev/null +++ b/sepolicy/vendor/cameraserver.te @@ -0,0 +1 @@ +binder_call(cameraserver, hal_cameraHIDL_default) diff --git a/sepolicy/vendor/device.te b/sepolicy/vendor/device.te new file mode 100644 index 0000000..8883822 --- /dev/null +++ b/sepolicy/vendor/device.te @@ -0,0 +1,8 @@ +type byte_cntr_device, dev_type; +type dash_device, dev_type; +type fingerprintd_device, dev_type; +type fragment_monitor_device, dev_type; +type param_block_device, dev_type; +type param_device, dev_type; +type reserve2_block_device, dev_type; +type therm_device, dev_type; diff --git a/sepolicy/vendor/domain.te b/sepolicy/vendor/domain.te new file mode 100644 index 0000000..6d7bdfb --- /dev/null +++ b/sepolicy/vendor/domain.te @@ -0,0 +1 @@ +allow domain opf_file:file r_file_perms; diff --git a/sepolicy/vendor/file.te b/sepolicy/vendor/file.te new file mode 100644 index 0000000..2f3a19b --- /dev/null +++ b/sepolicy/vendor/file.te @@ -0,0 +1,22 @@ +# files +type oem_file, file_type; +type op1_file, file_type; +type op2_file, file_type; +type opf_file, file_type; + +# procfs +type proc_direct_swappiness, fs_type, proc_type; +type proc_flash_light_file, fs_type, proc_type; +type proc_swappiness, fs_type, proc_type; +type proc_touchpanel, fs_type, proc_type; +type proc_watermark_boost_factor, fs_type, proc_type; + +# sysfs +type sysfs_dbg, fs_type, sysfs_type; +type sysfs_fsc, fs_type, sysfs_type; +type sysfs_fuse, fs_type, sysfs_type; +type sysfs_memplus, fs_type, sysfs_type; +type sysfs_ois_control, fs_type, sysfs_type; +type sysfs_project_info, fs_type, sysfs_type; +type sysfs_tof_control, fs_type, sysfs_type; +type sysfs_tpd, fs_type, sysfs_type; diff --git a/sepolicy/vendor/file_contexts b/sepolicy/vendor/file_contexts new file mode 100644 index 0000000..4f3824a --- /dev/null +++ b/sepolicy/vendor/file_contexts @@ -0,0 +1,85 @@ +# Binaries +/(vendor|system/vendor)/bin/opf-service u:object_r:opf_exec:s0 +/(vendor|system/vendor)/bin/wifi-mac-generator-dre u:object_r:wifi-mac-generator_exec:s0 + +# Block devices +/dev/block/platform/soc/4804000\.ufshc/by-name/fw_ufs1_[ab] u:object_r:vendor_custom_ab_block_device:s0 +/dev/block/platform/soc/4804000\.ufshc/by-name/fw_ufs2_[ab] u:object_r:vendor_custom_ab_block_device:s0 +/dev/block/platform/soc/4804000\.ufshc/by-name/logo_[ab] u:object_r:vendor_custom_ab_block_device:s0 +/dev/block/platform/soc/4804000\.ufshc/by-name/oplusdycnvbk u:object_r:vendor_modem_efs_partition_device:s0 +/dev/block/platform/soc/4804000\.ufshc/by-name/oplusreserve4 u:object_r:reserve2_block_device:s0 +/dev/block/platform/soc/4804000\.ufshc/by-name/oplusstanvbk_[ab] u:object_r:vendor_modem_efs_partition_device:s0 +/dev/block/platform/soc/4804000\.ufshc/by-name/opproduct_[ab] u:object_r:vendor_custom_ab_block_device:s0 +/dev/block/platform/soc/4804000\.ufshc/by-name/param u:object_r:param_block_device:s0 +/dev/block/platform/soc/4804000\.ufshc/by-name/rawdump u:object_r:vendor_rawdump_block_device:s0 + +# Data files +/data/reserve-lib(/.*)? u:object_r:apk_data_file:s0 + +# Devices +/dev/byte-cntr u:object_r:byte_cntr_device:s0 +/dev/cc_ctl u:object_r:graphics_device:s0 +/dev/fragment_monitor u:object_r:fragment_monitor_device:s0 +/dev/goodix_fp u:object_r:fingerprintd_device:s0 +/dev/ht_ctl u:object_r:graphics_device:s0 +/dev/mmw0_thermal u:object_r:therm_device:s0 +/dev/mmw1_thermal u:object_r:therm_device:s0 +/dev/mmw2_thermal u:object_r:therm_device:s0 +/dev/opfeature u:object_r:opf_file:s0 +/dev/param u:object_r:param_device:s0 +/dev/skin_thermal u:object_r:therm_device:s0 +/dev/st21nfc u:object_r:nfc_device:s0 + +# HALs +/(vendor|system/vendor)/bin/hw/android\.hardware\.nfc@1\.2-service\.st u:object_r:hal_nfc_default_exec:s0 +/(vendor|system/vendor)/bin/hw/vendor\.lineage\.livedisplay@2\.1-service\.oneplus u:object_r:hal_lineage_livedisplay_qti_exec:s0 +/(vendor|system/vendor)/bin/hw/vendor\.lineage\.touch@1\.0-service\.oneplus u:object_r:hal_lineage_touch_default_exec:s0 +/(vendor|system/vendor)/bin/hw/vendor\.oneplus\.hardware\.camera@1\.0-service u:object_r:hal_cameraHIDL_default_exec:s0 +/(vendor|system/vendor)/bin/hw/vendor\.oneplus\.hardware\.CameraMDMHIDL@1\.0-service u:object_r:hal_cameraHIDL_default_exec:s0 +/(vendor|system/vendor)/bin/hw/vendor\.oneplus\.hardware\.display@1\.0-service u:object_r:hal_display_default_exec:s0 +/(vendor|system/vendor)/bin/hw/vendor\.oneplus\.hardware\.param@1\.0-service u:object_r:hal_param_default_exec:s0 + +# OP1, OP2 files +/mnt/vendor/op1(/.*)? u:object_r:op1_file:s0 +/mnt/vendor/op2(/.*)? u:object_r:op2_file:s0 + +# Persist files +/mnt/vendor/persist u:object_r:vendor_data_file:s0 +/mnt/vendor/persist/camera(/.*)? u:object_r:oem_file:s0 +/mnt/vendor/persist/camera_ae_sync(/.*)? u:object_r:oem_file:s0 +/mnt/vendor/persist/dual_camera_calibration(/.*)? u:object_r:oem_file:s0 +/mnt/vendor/persist/engineermode(/.*)? u:object_r:oem_file:s0 +/mnt/vendor/persist/OPDiagnose(/.*)? u:object_r:oem_file:s0 + +# Sys files +/sys/module/fsc(/.*)? u:object_r:sysfs_fsc:s0 +/sys/module/fuse(/.*)? u:object_r:sysfs_fuse:s0 +/sys/module/proc(/.*)? u:object_r:sysfs_dbg:s0 +/sys/module/tpd(/.*)? u:object_r:sysfs_tpd:s0 +/sys/module/qpnp_smb5(/.*)? u:object_r:vendor_sysfs_battery_supply:s0 + +# Sys files (health) +/sys/devices/platform/soc/4c90000.i2c/i2c-1/1-006b/iio:device5/name u:object_r:vendor_sysfs_battery_supply:s0 +/sys/devices/platform/soc/4c90000.i2c/i2c-1/1-006b/power_supply/parallel/model_name u:object_r:vendor_sysfs_battery_supply:s0 + +# Sys files (wakeup) +/sys/devices(/platform)?/soc/[0-9a-f]+.qcom,spmi/spmi-[0-9]+/spmi[0-9]+-[0-9]+/[0-9a-f]+.qcom,spmi:qcom,pmk[0-9]+@[0-9]+:pon_hlos@[0-9]+/wakeup/wakeup[0-9]+(/.*)? u:object_r:sysfs_wakeup:s0 +/sys/devices(/platform)?/soc/[0-9a-f]+.qcom,spmi/spmi-[0-9]+/spmi[0-9]+-[0-9]+/[0-9a-f]+.qcom,spmi:qcom,pmk[0-9]+@[0-9]+:pon_pbs@[0-9]+/wakeup/wakeup[0-9]+(/.*)? u:object_r:sysfs_wakeup:s0 +/sys/devices(/platform)?/soc/[0-9a-f]+.qcom,spmi/spmi-[0-9]+/spmi[0-9]+-[0-9]+/[0-9a-f]+.qcom,spmi:qcom,pmk[0-9]+@[0-9]+:rtc@[0-9]+/rtc/rtc[0-9]+/wakeup[0-9]+(/.*)? u:object_r:sysfs_wakeup:s0 +/sys/devices(/platform)?/soc/[0-9a-f]+.qcom,spmi/spmi-[0-9]+/spmi[0-9]+-[0-9]+/[0-9a-f]+.qcom,spmi:qcom,pmk[0-9]+@[0-9]+:rtc@[0-9]+/wakeup/wakeup[0-9]+(/.*)? u:object_r:sysfs_wakeup:s0 +/sys/devices/virtual/fastrpc/adsprpc-smd-secure/wakeup[0-9]+(/.*)? u:object_r:sysfs_wakeup:s0 +/sys/devices/virtual/fastrpc/adsprpc-smd/wakeup[0-9]+(/.*)? u:object_r:sysfs_wakeup:s0 +/sys/devices/virtual/misc/msm_aac/wakeup[0-9]+(/.*)? u:object_r:sysfs_wakeup:s0 +/sys/devices/virtual/misc/msm_alac/wakeup[0-9]+(/.*)? u:object_r:sysfs_wakeup:s0 +/sys/devices/virtual/misc/msm_amrnb/wakeup[0-9]+(/.*)? u:object_r:sysfs_wakeup:s0 +/sys/devices/virtual/misc/msm_amrwb/wakeup[0-9]+(/.*)? u:object_r:sysfs_wakeup:s0 +/sys/devices/virtual/misc/msm_amrwbplus/wakeup[0-9]+(/.*)? u:object_r:sysfs_wakeup:s0 +/sys/devices/virtual/misc/msm_ape/wakeup[0-9]+(/.*)? u:object_r:sysfs_wakeup:s0 +/sys/devices/virtual/misc/msm_evrc/wakeup[0-9]+(/.*)? u:object_r:sysfs_wakeup:s0 +/sys/devices/virtual/misc/msm_g711alaw/wakeup[0-9]+(/.*)? u:object_r:sysfs_wakeup:s0 +/sys/devices/virtual/misc/msm_g711mlaw/wakeup[0-9]+(/.*)? u:object_r:sysfs_wakeup:s0 +/sys/devices/virtual/misc/msm_mp3/wakeup[0-9]+(/.*)? u:object_r:sysfs_wakeup:s0 +/sys/devices/virtual/misc/msm_multi_aac/wakeup[0-9]+(/.*)? u:object_r:sysfs_wakeup:s0 +/sys/devices/virtual/misc/msm_qcelp/wakeup[0-9]+(/.*)? u:object_r:sysfs_wakeup:s0 +/sys/devices/virtual/misc/msm_wma/wakeup[0-9]+(/.*)? u:object_r:sysfs_wakeup:s0 +/sys/devices/virtual/misc/msm_wmapro/wakeup[0-9]+(/.*)? u:object_r:sysfs_wakeup:s0 diff --git a/sepolicy/vendor/genfs_contexts b/sepolicy/vendor/genfs_contexts new file mode 100644 index 0000000..371846e --- /dev/null +++ b/sepolicy/vendor/genfs_contexts @@ -0,0 +1,34 @@ +# procfs +genfscon proc /qcom_flash u:object_r:proc_flash_light_file:s0 +genfscon proc /touchpanel u:object_r:proc_touchpanel:s0 + +# sysfs +genfscon sysfs /devices/platform/soc/5e00000.qcom,mdss_mdp/drm/card0/card0-DSI-1/dimlayer_bl_en u:object_r:sysfs_livedisplay_tuneable:s0 +genfscon sysfs /devices/platform/soc/5e00000.qcom,mdss_mdp/drm/card0/card0-DSI-1/hbm u:object_r:sysfs_livedisplay_tuneable:s0 +genfscon sysfs /kernel/ois_control u:object_r:sysfs_ois_control:s0 +genfscon sysfs /kernel/tof_control u:object_r:sysfs_tof_control:s0 +genfscon sysfs /module/memplus_core/parameters u:object_r:sysfs_memplus:s0 +genfscon sysfs /project_info u:object_r:sysfs_project_info:s0 + +# sysfs (wakeup) +genfscon sysfs /devices/platform/soc/1628000.qcom,msm-eud/wakeup u:object_r:sysfs_wakeup:s0 +genfscon sysfs /devices/platform/soc/4a84000.qcom,qup_uart/wakeup u:object_r:sysfs_wakeup:s0 +genfscon sysfs /devices/platform/soc/4c88000.i2c/i2c-0/0-0008/wakeup u:object_r:sysfs_wakeup:s0 +genfscon sysfs /devices/platform/soc/5800000.qcom,ipa/wakeup u:object_r:sysfs_wakeup:s0 +genfscon sysfs /devices/platform/soc/5ab0000.qcom,venus/subsys5/wakeup u:object_r:sysfs_wakeup:s0 +genfscon sysfs /devices/platform/soc/5ab0000.qcom,venus/wakeup u:object_r:sysfs_wakeup:s0 +genfscon sysfs /devices/platform/soc/6000000.qcom,mss/subsys2/wakeup u:object_r:sysfs_wakeup:s0 +genfscon sysfs /devices/platform/soc/6000000.qcom,mss/wakeup u:object_r:sysfs_wakeup:s0 +genfscon sysfs /devices/platform/soc/a400000.qcom,lpass/subsys0/wakeup u:object_r:sysfs_wakeup:s0 +genfscon sysfs /devices/platform/soc/a400000.qcom,lpass/wakeup u:object_r:sysfs_wakeup:s0 +genfscon sysfs /devices/platform/soc/b000000.qcom,turing/subsys1/wakeup u:object_r:sysfs_wakeup:s0 +genfscon sysfs /devices/platform/soc/b000000.qcom,turing/wakeup u:object_r:sysfs_wakeup:s0 +genfscon sysfs /devices/platform/soc/c800000.qcom,icnss/wakeup u:object_r:sysfs_wakeup:s0 +genfscon sysfs /devices/platform/soc/soc:qcom,ipa_fws/subsys3/wakeup u:object_r:sysfs_wakeup:s0 +genfscon sysfs /devices/platform/soc/soc:qcom,ipa_fws/wakeup u:object_r:sysfs_wakeup:s0 +genfscon sysfs /devices/platform/soc/soc:qcom,kgsl-hyp/subsys4/wakeup u:object_r:sysfs_wakeup:s0 +genfscon sysfs /devices/platform/soc/soc:qcom,kgsl-hyp/wakeup u:object_r:sysfs_wakeup:s0 +genfscon sysfs /devices/platform/soc/soc:qcom,smp2p-adsp/wakeup u:object_r:sysfs_wakeup:s0 +genfscon sysfs /devices/platform/soc/soc:qcom,smp2p-dsps/wakeup u:object_r:sysfs_wakeup:s0 +genfscon sysfs /devices/platform/soc/soc:qcom,smp2p-modem/wakeup u:object_r:sysfs_wakeup:s0 +genfscon sysfs /devices/platform/soc/soc:qcom,smp2p_sleepstate/wakeup u:object_r:sysfs_wakeup:s0 diff --git a/sepolicy/vendor/hal_bluetooth_default.te b/sepolicy/vendor/hal_bluetooth_default.te new file mode 100644 index 0000000..6bdf685 --- /dev/null +++ b/sepolicy/vendor/hal_bluetooth_default.te @@ -0,0 +1,3 @@ +allow hal_bluetooth_default vendor_data_file:file r_file_perms; + +allow hal_bluetooth_default vendor_diag_device:chr_file rw_file_perms; diff --git a/sepolicy/vendor/hal_bootctl.te b/sepolicy/vendor/hal_bootctl.te new file mode 100644 index 0000000..5b16097 --- /dev/null +++ b/sepolicy/vendor/hal_bootctl.te @@ -0,0 +1 @@ +allow hal_bootctl vendor_modem_efs_partition_device:blk_file getattr; diff --git a/sepolicy/vendor/hal_cameraHIDL.te b/sepolicy/vendor/hal_cameraHIDL.te new file mode 100644 index 0000000..fc6f13c --- /dev/null +++ b/sepolicy/vendor/hal_cameraHIDL.te @@ -0,0 +1,4 @@ +binder_call(hal_cameraHIDL_client, hal_cameraHIDL_server) +binder_call(hal_cameraHIDL_server, hal_cameraHIDL_client) + +hal_attribute_hwservice(hal_cameraHIDL, hal_cameraHIDL_hwservice) diff --git a/sepolicy/vendor/hal_cameraHIDL_default.te b/sepolicy/vendor/hal_cameraHIDL_default.te new file mode 100644 index 0000000..2f5dd6d --- /dev/null +++ b/sepolicy/vendor/hal_cameraHIDL_default.te @@ -0,0 +1,22 @@ +type hal_cameraHIDL_default, domain; +hal_server_domain(hal_cameraHIDL_default, hal_cameraHIDL) + +type hal_cameraHIDL_default_exec, exec_type, vendor_file_type, file_type; +init_daemon_domain(hal_cameraHIDL_default) + +add_hwservice(hal_cameraHIDL_default, hal_cameraHIDL_hwservice) + +hwbinder_use(hal_cameraHIDL_default) + +binder_call(hal_cameraHIDL_default, vendor_hal_perf_default) + +allow hal_cameraHIDL_default vendor_hal_perf_hwservice:hwservice_manager find; + +allow hal_cameraHIDL_default ion_device:chr_file r_file_perms; +allow hal_cameraHIDL_default tee_device:chr_file rw_file_perms; + +allow hal_cameraHIDL_default vendor_camera_data_file:dir create_dir_perms; + +r_dir_file(hal_cameraHIDL_default, firmware_file) + +get_prop(hal_cameraHIDL_default, hwservicemanager_prop) diff --git a/sepolicy/vendor/hal_camera_default.te b/sepolicy/vendor/hal_camera_default.te new file mode 100644 index 0000000..06a0fae --- /dev/null +++ b/sepolicy/vendor/hal_camera_default.te @@ -0,0 +1,27 @@ +hal_client_domain(hal_camera_default, hal_cameraHIDL) + +allow hal_camera_default mnt_vendor_file:dir w_dir_perms; +allow hal_camera_default mnt_vendor_file:file create_file_perms; + +allow hal_camera_default oem_file:dir w_dir_perms; +allow hal_camera_default oem_file:file create_file_perms; + +allow hal_camera_default vendor_persist_file:dir w_dir_perms; +allow hal_camera_default vendor_persist_file:file create_file_perms; + +allow hal_camera_default input_device:dir r_dir_perms; +allow hal_camera_default input_device:chr_file r_file_perms; + +allow hal_camera_default proc_meminfo:file r_file_perms; +allow hal_camera_default proc_flash_light_file:file rw_file_perms; + +allow hal_camera_default sysfs_ois_control:dir r_dir_perms; +allow hal_camera_default sysfs_ois_control:file rw_file_perms; + +allow hal_camera_default sysfs_tof_control:dir r_dir_perms; +allow hal_camera_default sysfs_tof_control:file rw_file_perms; + +get_prop(hal_camera_default, ctl_default_prop) +get_prop(hal_camera_default, vendor_db_security_prop) +get_prop(hal_camera_default, vendor_mmi_prop) +set_prop(hal_camera_default, vendor_sys_op_prop) diff --git a/sepolicy/vendor/hal_display.te b/sepolicy/vendor/hal_display.te new file mode 100644 index 0000000..f9f233d --- /dev/null +++ b/sepolicy/vendor/hal_display.te @@ -0,0 +1,4 @@ +binder_call(hal_display_client, hal_display_server) +binder_call(hal_display_server, hal_display_client) + +hal_attribute_hwservice(hal_display, hal_display_hwservice) diff --git a/sepolicy/vendor/hal_display_default.te b/sepolicy/vendor/hal_display_default.te new file mode 100644 index 0000000..1225350 --- /dev/null +++ b/sepolicy/vendor/hal_display_default.te @@ -0,0 +1,17 @@ +type hal_display_default, domain; +hal_server_domain(hal_display_default, hal_display) + +type hal_display_default_exec, exec_type, vendor_file_type, file_type; +init_daemon_domain(hal_display_default) + +add_hwservice(hal_display_default, hal_display_hwservice) + +hwbinder_use(hal_display_default) + +binder_call(hal_display_default, vendor_hal_display_color) + +allow hal_display_default vendor_hal_display_postproc_hwservice:hwservice_manager find; + +allow hal_display_default sysfs:file rw_file_perms; + +get_prop(hal_display_default, hwservicemanager_prop) diff --git a/sepolicy/vendor/hal_fingerprint_device.te b/sepolicy/vendor/hal_fingerprint_device.te new file mode 100644 index 0000000..95af6f6 --- /dev/null +++ b/sepolicy/vendor/hal_fingerprint_device.te @@ -0,0 +1,21 @@ +hal_client_domain(hal_fingerprint_default, hal_display) + +allow hal_fingerprint_default self:netlink_socket create_socket_perms_no_ioctl; + +binder_call(hal_fingerprint_default, vendor_hal_perf_default) + +allow hal_fingerprint_default vendor_hal_perf_hwservice:hwservice_manager find; + +allow hal_fingerprint_default fingerprintd_device:chr_file rw_file_perms; +allow hal_fingerprint_default tee_device:chr_file rw_file_perms; +allow hal_fingerprint_default vendor_qdsp_device:chr_file rw_file_perms; +allow hal_fingerprint_default vendor_xdsp_device:chr_file rw_file_perms; + +allow hal_fingerprint_default proc_touchpanel:dir search; +allow hal_fingerprint_default proc_touchpanel:file rw_file_perms; + +allow hal_fingerprint_default uhid_device:chr_file rw_file_perms; + +get_prop(hal_fingerprint_default, vendor_adsprpc_prop) +get_prop(hal_fingerprint_default, vendor_default_prop) +set_prop(hal_fingerprint_default, vendor_fingerprint_prop) diff --git a/sepolicy/vendor/hal_graphics_composer_default.te b/sepolicy/vendor/hal_graphics_composer_default.te new file mode 100644 index 0000000..08b21f9 --- /dev/null +++ b/sepolicy/vendor/hal_graphics_composer_default.te @@ -0,0 +1,5 @@ +allow hal_graphics_composer_default vendor_persist_file:file rw_file_perms; + +allow hal_graphics_composer_default sysfs_devices_system_cpu:file rw_file_perms; + +allow hal_graphics_composer_default vendor_diag_device:chr_file rw_file_perms; diff --git a/sepolicy/vendor/hal_lineage_livedisplay_qti.te b/sepolicy/vendor/hal_lineage_livedisplay_qti.te new file mode 100644 index 0000000..178a242 --- /dev/null +++ b/sepolicy/vendor/hal_lineage_livedisplay_qti.te @@ -0,0 +1,5 @@ +allow hal_lineage_livedisplay_qti vendor_display_vendor_data_file:dir rw_dir_perms; +allow hal_lineage_livedisplay_qti vendor_display_vendor_data_file:file create_file_perms; + +allow hal_lineage_livedisplay_qti vendor_sysfs_graphics:dir r_dir_perms; +allow hal_lineage_livedisplay_qti sysfs_livedisplay_tuneable:file rw_file_perms; diff --git a/sepolicy/vendor/hal_lineage_touch_default.te b/sepolicy/vendor/hal_lineage_touch_default.te new file mode 100644 index 0000000..2782309 --- /dev/null +++ b/sepolicy/vendor/hal_lineage_touch_default.te @@ -0,0 +1,2 @@ +allow hal_lineage_touch_default proc_touchpanel:dir search; +allow hal_lineage_touch_default proc_touchpanel:file rw_file_perms; diff --git a/sepolicy/vendor/hal_nfc_default.te b/sepolicy/vendor/hal_nfc_default.te new file mode 100644 index 0000000..17bb5a1 --- /dev/null +++ b/sepolicy/vendor/hal_nfc_default.te @@ -0,0 +1,4 @@ +allow hal_nfc_default vendor_nfc_vendor_data_file:dir create_dir_perms; +allow hal_nfc_default vendor_nfc_vendor_data_file:file create_file_perms; + +get_prop(hal_nfc_default, vendor_nfc_prop) \ No newline at end of file diff --git a/sepolicy/vendor/hal_param.te b/sepolicy/vendor/hal_param.te new file mode 100644 index 0000000..27a3543 --- /dev/null +++ b/sepolicy/vendor/hal_param.te @@ -0,0 +1,4 @@ +binder_call(hal_param_client, hal_param_server) +binder_call(hal_param_server, hal_param_client) + +hal_attribute_hwservice(hal_param, hal_param_hwservice) diff --git a/sepolicy/vendor/hal_param_default.te b/sepolicy/vendor/hal_param_default.te new file mode 100644 index 0000000..e9406fb --- /dev/null +++ b/sepolicy/vendor/hal_param_default.te @@ -0,0 +1,17 @@ +type hal_param_default, domain; +hal_server_domain(hal_param_default, hal_param) + +type hal_param_default_exec, exec_type, vendor_file_type, file_type; +init_daemon_domain(hal_param_default) + +allow hal_param_default self:qipcrtr_socket create_socket_perms_no_ioctl; + +allow hal_param_default block_device:dir search; + +allow hal_param_default param_block_device:blk_file rw_file_perms; + +allow hal_param_default param_device:chr_file rw_file_perms; + +r_dir_file(hal_param_default, sysfs_project_info) + +get_prop(hal_param_default, exported_default_prop) diff --git a/sepolicy/vendor/hal_power_default.te b/sepolicy/vendor/hal_power_default.te new file mode 100644 index 0000000..63b5b0f --- /dev/null +++ b/sepolicy/vendor/hal_power_default.te @@ -0,0 +1,2 @@ +allow hal_power_default proc_touchpanel:dir search; +allow hal_power_default proc_touchpanel:file rw_file_perms; diff --git a/sepolicy/vendor/hwservice.te b/sepolicy/vendor/hwservice.te new file mode 100644 index 0000000..2f36a79 --- /dev/null +++ b/sepolicy/vendor/hwservice.te @@ -0,0 +1,4 @@ +type hal_cameraHIDL_hwservice, hwservice_manager_type; +type hal_charger_hwservice, hwservice_manager_type; +type hal_display_hwservice, hwservice_manager_type; +type hal_param_hwservice, hwservice_manager_type; diff --git a/sepolicy/vendor/hwservice_contexts b/sepolicy/vendor/hwservice_contexts new file mode 100644 index 0000000..482f6a0 --- /dev/null +++ b/sepolicy/vendor/hwservice_contexts @@ -0,0 +1,10 @@ +vendor.goodix3626.hardware.biometrics.fingerprint::IGoodixFingerprintDaemon u:object_r:hal_fingerprint_hwservice:s0 +vendor.goodix3626.hardware.biometrics.fingerprint::IGoodixFingerprintDaemonExt u:object_r:hal_fingerprint_hwservice:s0 +vendor.goodix3626.hardware.biometrics.fingerprint::IGoodixFingerprintDaemonHbd u:object_r:hal_fingerprint_hwservice:s0 +vendor.goodix3626.hardware.biometrics.fingerprint::IGoodixFingerprintDaemonFido u:object_r:hal_fingerprint_hwservice:s0 +vendor.oneplus.camera.CameraHIDL::IOnePlusCameraProvider u:object_r:hal_cameraHIDL_hwservice:s0 +vendor.oneplus.fingerprint.extension::IVendorFingerprintExtensions u:object_r:hal_fingerprint_hwservice:s0 +vendor.oneplus.hardware.camera::IOnePlusCameraProvider u:object_r:hal_cameraHIDL_hwservice:s0 +vendor.oneplus.hardware.CameraMDMHIDL::IOnePlusCameraMDM u:object_r:hal_cameraHIDL_hwservice:s0 +vendor.oneplus.hardware.display::IOneplusDisplay u:object_r:hal_display_hwservice:s0 +vendor.oneplus.hardware.param::IOneplusParam u:object_r:hal_param_hwservice:s0 diff --git a/sepolicy/vendor/kernel.te b/sepolicy/vendor/kernel.te new file mode 100644 index 0000000..03ad952 --- /dev/null +++ b/sepolicy/vendor/kernel.te @@ -0,0 +1,2 @@ +allow kernel param_block_device:dir search; +allow kernel param_block_device:blk_file rw_file_perms; diff --git a/sepolicy/vendor/opf.te b/sepolicy/vendor/opf.te new file mode 100644 index 0000000..07f319d --- /dev/null +++ b/sepolicy/vendor/opf.te @@ -0,0 +1,11 @@ +type opf, domain; +type opf_exec, exec_type, vendor_file_type, file_type; + +init_daemon_domain(opf) + +type_transition opf device:file opf_file; + +allow opf device:dir create_dir_perms; +allow opf device:file create_file_perms; + +allow opf opf_file:file create_file_perms; diff --git a/sepolicy/vendor/property.te b/sepolicy/vendor/property.te new file mode 100644 index 0000000..56aa7d7 --- /dev/null +++ b/sepolicy/vendor/property.te @@ -0,0 +1,11 @@ +vendor_internal_prop(vendor_db_security_prop) +vendor_internal_prop(vendor_fingerprint_prop) +vendor_internal_prop(vendor_gps_prop) +vendor_internal_prop(vendor_memplus_prop) +vendor_internal_prop(vendor_nfc_prop) +vendor_internal_prop(vendor_oem_bluetooth_prop) +vendor_internal_prop(vendor_oem_wifi_prop) +vendor_internal_prop(vendor_rild_prop) +vendor_internal_prop(vendor_set_wlan_prop) +vendor_internal_prop(vendor_shell_prop) +vendor_internal_prop(vendor_sys_op_prop) diff --git a/sepolicy/vendor/property_contexts b/sepolicy/vendor/property_contexts new file mode 100644 index 0000000..d02aa44 --- /dev/null +++ b/sepolicy/vendor/property_contexts @@ -0,0 +1,51 @@ +persist.vendor.bluetooth.bt.uart.log u:object_r:vendor_oem_bluetooth_prop:s0 +persist.vendor.ese. u:object_r:vendor_nfc_prop:s0 +persist.vendor.nfc. u:object_r:vendor_nfc_prop:s0 +persist.vendor.oem.bt.debug u:object_r:vendor_oem_bluetooth_prop:s0 +persist.vendor.oem.btenhanced.debug u:object_r:vendor_oem_bluetooth_prop:s0 +persist.vendor.oem.btsnoop.debug u:object_r:vendor_oem_bluetooth_prop:s0 +persist.vendor.oem.fp.version u:object_r:vendor_fingerprint_prop:s0 +persist.vendor.oem.gps.debug u:object_r:vendor_gps_prop:s0 +persist.vendor.oem.wifi.chain u:object_r:vendor_oem_wifi_prop:s0 +persist.vendor.oem.wifi.cnssdiag u:object_r:vendor_oem_wifi_prop:s0 +persist.vendor.oem.wifi.copytosd u:object_r:vendor_oem_wifi_prop:s0 +persist.vendor.oem.wifi.debug u:object_r:vendor_oem_wifi_prop:s0 +persist.vendor.oem.wifi.logpath u:object_r:vendor_oem_wifi_prop:s0 +persist.vendor.oem.wifi.txenable u:object_r:vendor_oem_wifi_prop:s0 +persist.vendor.oneplus.bt u:object_r:vendor_oem_bluetooth_prop:s0 +persist.vendor.oneplus.bttestmode u:object_r:vendor_oem_bluetooth_prop:s0 +persist.vendor.sdx50m.online u:object_r:vendor_usb_prop:s0 +persist.vendor.service.bdroid.snooplog u:object_r:vendor_bluetooth_prop:s0 +persist.vendor.service.bdroid.soclog u:object_r:vendor_bluetooth_prop:s0 +persist.vendor.tcpdump.copy u:object_r:vendor_oem_wifi_prop:s0 +persist.vendor.tcpdump.dir u:object_r:vendor_oem_wifi_prop:s0 +persist.vendor.tcpdump.location u:object_r:vendor_oem_wifi_prop:s0 +persist.vendor.tcpdump.mdpermission u:object_r:vendor_oem_wifi_prop:s0 +ro.vendor.build.display.full_id u:object_r:vendor_rild_prop:s0 +ro.vendor.product.device.db u:object_r:vendor_db_security_prop:s0 +ro.vendor.product.manufacturer.db u:object_r:vendor_db_security_prop:s0 +vendor.calibration.fingerprint u:object_r:vendor_fingerprint_prop:s0 +vendor.copy.opdiagnose.data u:object_r:vendor_shell_prop:s0 +vendor.nfc. u:object_r:vendor_nfc_prop:s0 +vendor.oem.rbr.log.clean u:object_r:vendor_default_prop:s0 +vendor.oem.wifi.socket.quit u:object_r:vendor_set_wlan_prop:s0 +vendor.service.wifi.socket.enable u:object_r:vendor_oem_wifi_prop:s0 +vendor.service.wifi.socket.mdm.enable u:object_r:vendor_oem_wifi_prop:s0 +vendor.sys.memplus.postboot u:object_r:vendor_memplus_prop:s0 +vendor.sys.op.disable_ufstw u:object_r:vendor_sys_op_prop:s0 +vendor.wcn.firmware.version u:object_r:vendor_set_wlan_prop:s0 +vendor.wcn.bdf.version u:object_r:vendor_set_wlan_prop:s0 +vendor.wlan.driver.status u:object_r:vendor_set_wlan_prop:s0 +vendor.wlan.ftm.daemon u:object_r:vendor_set_wlan_prop:s0 +vendor.wlan.ftm.up u:object_r:vendor_set_wlan_prop:s0 +vendor.wlan.hotspot.forceChannel u:object_r:vendor_oem_wifi_prop:s0 +vendor.wlan.sniffer.bandwidth u:object_r:vendor_oem_wifi_prop:s0 +vendor.wlan.sniffer.channel u:object_r:vendor_oem_wifi_prop:s0 +vendor.wlan.sniffer.dump u:object_r:vendor_oem_wifi_prop:s0 +vendor.wlan.sniffer.enabled u:object_r:vendor_oem_wifi_prop:s0 +vendor.wlan.sniffer.file u:object_r:vendor_oem_wifi_prop:s0 +vendor.wlan.sniffer.iface u:object_r:vendor_oem_wifi_prop:s0 +vendor.wlan.sniffer.output_dir u:object_r:vendor_oem_wifi_prop:s0 +vendor.wlan.sniffer.status u:object_r:vendor_oem_wifi_prop:s0 +vendor.wlan.sniffer.vendor_dir u:object_r:vendor_oem_wifi_prop:s0 +vendor.wlan.write.con_mode u:object_r:vendor_set_wlan_prop:s0 diff --git a/sepolicy/vendor/rild.te b/sepolicy/vendor/rild.te new file mode 100644 index 0000000..126d025 --- /dev/null +++ b/sepolicy/vendor/rild.te @@ -0,0 +1,15 @@ +hal_client_domain(rild, hal_param) + +allow rild vendor_data_file:dir rw_dir_perms; +allow rild vendor_data_file:file create_file_perms; + +allow rild block_device:dir search; + +allow rild param_block_device:blk_file rw_file_perms; + +allow rild vendor_diag_device:chr_file rw_file_perms; + +allow rild proc:file w_file_perms; +allow rild proc_net:file w_file_perms; + +set_prop(rild, vendor_rild_prop) diff --git a/sepolicy/vendor/seapp_contexts b/sepolicy/vendor/seapp_contexts new file mode 100644 index 0000000..48be461 --- /dev/null +++ b/sepolicy/vendor/seapp_contexts @@ -0,0 +1 @@ +user=system seinfo=platform name=com.qualcomm.qti.poweroffalarm domain=vendor_poweroffalarm_app type=system_app_data_file diff --git a/sepolicy/vendor/update_engine_common.te b/sepolicy/vendor/update_engine_common.te new file mode 100644 index 0000000..bde8371 --- /dev/null +++ b/sepolicy/vendor/update_engine_common.te @@ -0,0 +1 @@ +allow update_engine_common vendor_modem_efs_partition_device:blk_file rw_file_perms; diff --git a/sepolicy/vendor/vendor_init-qcom-sensors-sh.te b/sepolicy/vendor/vendor_init-qcom-sensors-sh.te new file mode 100644 index 0000000..2363a4e --- /dev/null +++ b/sepolicy/vendor/vendor_init-qcom-sensors-sh.te @@ -0,0 +1,2 @@ +allow vendor_init-qcom-sensors-sh vendor_persist_sensors_file:dir setattr; +allow vendor_init-qcom-sensors-sh vendor_persist_sensors_file:file setattr; diff --git a/sepolicy/vendor/vendor_init.te b/sepolicy/vendor/vendor_init.te new file mode 100644 index 0000000..5a1d5d8 --- /dev/null +++ b/sepolicy/vendor/vendor_init.te @@ -0,0 +1,13 @@ +allow vendor_init tmpfs:chr_file { read open }; +allow vendor_init tmpfs:dir { create_dir_perms mounton }; + +allow vendor_init op2_file:file create_file_perms; + +allow vendor_init proc_direct_swappiness:file w_file_perms; +allow vendor_init proc_hung_task:file w_file_perms; +allow vendor_init proc_swappiness:file w_file_perms; +allow vendor_init proc_watermark_boost_factor:file rw_file_perms; + +get_prop(vendor_init, vendor_db_security_prop) +set_prop(vendor_init, vendor_oem_bluetooth_prop) +set_prop(vendor_init, vendor_oem_wifi_prop) diff --git a/sepolicy/vendor/vendor_qti_init_shell.te b/sepolicy/vendor/vendor_qti_init_shell.te new file mode 100644 index 0000000..48c6ad6 --- /dev/null +++ b/sepolicy/vendor/vendor_qti_init_shell.te @@ -0,0 +1,30 @@ +allow vendor_qti_init_shell proc_modules:file r_file_perms; + +allow vendor_qti_init_shell sysfs:file write; + +allow vendor_qti_init_shell sysfs_devices_system_cpu:file setattr; +allow vendor_qti_init_shell sysfs_project_info:file write; + +allow vendor_qti_init_shell sysfs_fsc:dir r_dir_perms; +allow vendor_qti_init_shell sysfs_fsc:file rw_file_perms; + +allow vendor_qti_init_shell sysfs_memplus:file rw_file_perms; + +allow vendor_qti_init_shell vendor_data_file:dir create_dir_perms; +allow vendor_qti_init_shell vendor_data_file:file create_file_perms; + +allow vendor_qti_init_shell vendor_file:file execute_no_trans; +allow vendor_qti_init_shell vendor_file:system module_load; + +allow vendor_qti_init_shell vendor_sysfs_scsi_host:dir r_dir_perms; +allow vendor_qti_init_shell vendor_sysfs_scsi_host:file rw_file_perms; + +allow vendor_qti_init_shell vendor_wcnss_service_exec:file execute_no_trans; + +allow vendor_qti_init_shell kmsg_device:chr_file w_file_perms; +allow vendor_qti_init_shell loop_control_device:chr_file rw_file_perms; + +get_prop(vendor_qti_init_shell, exported_system_prop) +set_prop(vendor_qti_init_shell, ctl_default_prop) +set_prop(vendor_qti_init_shell, vendor_memplus_prop) +set_prop(vendor_qti_init_shell, vendor_set_wlan_prop) diff --git a/sepolicy/vendor/vendor_sensors.te b/sepolicy/vendor/vendor_sensors.te new file mode 100644 index 0000000..24e46e0 --- /dev/null +++ b/sepolicy/vendor/vendor_sensors.te @@ -0,0 +1,2 @@ +r_dir_file(vendor_sensors, oem_file) +r_dir_file(vendor_sensors, sysfs_project_info) diff --git a/sepolicy/vendor/vendor_wcnss_service.te b/sepolicy/vendor/vendor_wcnss_service.te new file mode 100644 index 0000000..98e5d9c --- /dev/null +++ b/sepolicy/vendor/vendor_wcnss_service.te @@ -0,0 +1,3 @@ +allow vendor_wcnss_service init:unix_stream_socket connectto; +allow vendor_wcnss_service property_socket:sock_file write; +allow vendor_wcnss_service vendor_set_wlan_prop:property_service set; diff --git a/sepolicy/vendor/wifi-mac-generator.te b/sepolicy/vendor/wifi-mac-generator.te new file mode 100644 index 0000000..ced7309 --- /dev/null +++ b/sepolicy/vendor/wifi-mac-generator.te @@ -0,0 +1,12 @@ +type wifi-mac-generator, domain; +type wifi-mac-generator_exec, exec_type, vendor_file_type, file_type; + +init_daemon_domain(wifi-mac-generator) + +allow wifi-mac-generator vendor_shell_exec:file rx_file_perms; +allow wifi-mac-generator vendor_toolbox_exec:file rx_file_perms; + +r_dir_file(wifi-mac-generator, vendor_data_file) + +allow wifi-mac-generator mnt_vendor_file:dir search; +allow wifi-mac-generator mnt_vendor_file:file w_file_perms; diff --git a/setup-makefiles.py b/setup-makefiles.py deleted file mode 100755 index 32947cf..0000000 --- a/setup-makefiles.py +++ /dev/null @@ -1 +0,0 @@ -#!./extract-files.py --regenerate_makefiles diff --git a/setup-makefiles.sh b/setup-makefiles.sh new file mode 100755 index 0000000..b0355e8 --- /dev/null +++ b/setup-makefiles.sh @@ -0,0 +1,36 @@ +#!/bin/bash +# +# Copyright (C) 2016 The CyanogenMod Project +# Copyright (C) 2017-2022 The LineageOS Project +# +# SPDX-License-Identifier: Apache-2.0 +# + +set -e + +DEVICE=dre +VENDOR=oneplus + +# Load extract_utils and do some sanity checks +MY_DIR="${BASH_SOURCE%/*}" +if [[ ! -d "${MY_DIR}" ]]; then MY_DIR="${PWD}"; fi + +ANDROID_ROOT="${MY_DIR}/../../.." + +HELPER="${ANDROID_ROOT}/tools/extract-utils/extract_utils.sh" +if [ ! -f "${HELPER}" ]; then + echo "Unable to find helper script at ${HELPER}" + exit 1 +fi +source "${HELPER}" + +# Initialize the helper +setup_vendor "${DEVICE}" "${VENDOR}" "${ANDROID_ROOT}" + +# Warning headers and guards +write_headers + +write_makefiles "${MY_DIR}/proprietary-files.txt" true + +# Finish +write_footers diff --git a/system.prop b/system.prop new file mode 100644 index 0000000..b95b123 --- /dev/null +++ b/system.prop @@ -0,0 +1,58 @@ +# Audio +audio.offload.min.duration.secs=30 +persist.vendor.audio.hac.enable=false +persist.vendor.audio_hal.dsp_bit_width_enforce_mode=24 + +# Bluetooth +persist.vendor.bt.a2dp.aac_whitelist=false +ro.bluetooth.library_name=libbluetooth_qti.so + +# Camera +camera.disable_zsl_mode=true + +# Charger +ro.charger.disable_init_blank=true + +# Display +debug.gralloc.gfx_ubwc_disable=0 +debug.sf.enable_hwc_vds=1 +debug.sf.latch_unsignaled=1 +persist.vendor.color.matrix=2 + +# CNE +persist.vendor.cne.feature=1 + +# DPM +persist.vendor.dpm.feature=11 + +# IMS +persist.dbg.volte_avail_ovr=1 +persist.dbg.vt_avail_ovr=1 +persist.dbg.wfc_avail_ovr=1 + +# IOP +vendor.iop.enable_prefetch_ofr=1 +vendor.iop.enable_uxe=0 + +# Media +media.settings.xml=/vendor/etc/media_profiles_vendor.xml + +# Radio +ro.telephony.default_network=33,33 + +# Touchscreen +persist.vendor.qti.inputopts.enable=true +persist.vendor.qti.inputopts.movetouchslop=0.6 + +# Netmgr +persist.vendor.data.iwlan.enable=true +persist.vendor.data.mode=concurrent + +# SSR +persist.vendor.ssr.restart_level=ALL_ENABLE + +# Vendor +ro.vendor.qti.va_aosp.support=1 + +# Zygote +persist.device_config.runtime_native.usap_pool_enabled=true diff --git a/system_ext.prop b/system_ext.prop deleted file mode 100644 index 3933c58..0000000 --- a/system_ext.prop +++ /dev/null @@ -1,40 +0,0 @@ -# Bluetooth -persist.bluetooth.bqr.event_mask=0x8000000E -persist.bluetooth.bqr.min_interval_ms=60000 - -# Display -debug.sf.enable_hwc_vds=1 - -# CNE -persist.vendor.cne.feature=1 - -# DPM -persist.vendor.dpm.feature=11 - -# GPS -persist.backup.ntpServer=0.pool.ntp.org - -# IMS -persist.dbg.volte_avail_ovr=1 -persist.dbg.vt_avail_ovr=1 -persist.dbg.wfc_avail_ovr=1 - -# Media -media.settings.xml=/vendor/etc/media_profiles_vendor.xml -media.stagefright.thumbnail.prefer_hw_codecs=true -ro.media.recorder-max-base-layer-fps=60 -vendor.mm.enable.qcom_parser=4044018 - -# Netmgr -persist.data.df.agg.dl_pkt=10 -persist.data.df.agg.dl_size=4096 -persist.vendor.data.mode=concurrent - -# Radio -ril.subscription.types=NV,RUIM - -# Sensors -persist.vendor.sensors.enable.mag_filter=true - -# Vendor -ro.vendor.qti.va_aosp.support=1 diff --git a/vendor.prop b/vendor.prop index 21dc0d2..d7e1506 100644 --- a/vendor.prop +++ b/vendor.prop @@ -2,46 +2,87 @@ aaudio.hw_burst_min_usec=2000 aaudio.mmap_exclusive_policy=2 aaudio.mmap_policy=2 +audio.deep_buffer.media=true +audio.offload.video=false +persist.audio.fluence.voicecomm=true +persist.vendor.audio.ambisonic.auto.profile=false +persist.vendor.audio.ambisonic.capture=false +persist.vendor.audio.apptype.multirec.enabled=false persist.vendor.audio.avs.afe_api_version=2 +persist.vendor.audio.bcl.enabled=false +persist.vendor.audio.fluence.audiorec=true persist.vendor.audio.fluence.speaker=true +persist.vendor.audio.fluence.tmic.enabled=false persist.vendor.audio.fluence.voicecall=true -persist.vendor.audio.fluence.voicecomm=true +persist.vendor.audio.fluence.voicerec=true +persist.vendor.audio.ha_proxy.enabled=false +persist.vendor.audio.ras.enabled=false persist.vendor.audio.spv3.enable=true +persist.vendor.audio.voicecall.speaker.stereo=true +persist.vendor.audio_hal.dsp_bit_width_enforce_mode=24 +ro.audio.monitorRotation=true +ro.config.media_vol_steps=30 +ro.config.vc_call_vol_steps=9 +ro.vendor.audio.sdk.fluencetype=fluence +ro.vendor.audio.sdk.ssr=false vendor.audio.adm.buffering.ms=2 +vendor.audio.enable.mirrorlink=false vendor.audio.feature.a2dp_offload.enable=true vendor.audio.feature.afe_proxy.enable=true +vendor.audio.feature.anc_headset.enable=false +vendor.audio.feature.audiozoom.enable=false vendor.audio.feature.battery_listener.enable=true +vendor.audio.feature.compr_cap.enable=false +vendor.audio.feature.compr_voip.enable=false vendor.audio.feature.compress_in.enable=true vendor.audio.feature.compress_meta_data.enable=true vendor.audio.feature.concurrent_capture.enable=true vendor.audio.feature.custom_stereo.enable=true +vendor.audio.feature.deepbuffer_as_primary.enable=false vendor.audio.feature.display_port.enable=true +vendor.audio.feature.dsm_feedback.enable=false vendor.audio.feature.dynamic_ecns.enable=true +vendor.audio.feature.ext_hw_plugin.enable=false +vendor.audio.feature.external_dsp.enable=false +vendor.audio.feature.external_speaker.enable=false +vendor.audio.feature.external_speaker_tfa.enable=false vendor.audio.feature.fluence.enable=true vendor.audio.feature.fm.enable=true vendor.audio.feature.hdmi_edid.enable=true vendor.audio.feature.hdmi_passthrough.enable=true vendor.audio.feature.hfp.enable=true +vendor.audio.feature.hifi_audio.enable=false +vendor.audio.feature.hwdep_cal.enable=false vendor.audio.feature.incall_music.enable=true vendor.audio.feature.keep_alive.enable=true vendor.audio.feature.kpi_optimize.enable=true +vendor.audio.feature.maxx_audio.enable=false vendor.audio.feature.multi_voice_session.enable=true vendor.audio.feature.power_mode.enable=true vendor.audio.feature.ras.enable=true +vendor.audio.feature.record_play_concurency.enable=false vendor.audio.feature.snd_mon.enable=true vendor.audio.feature.spkr_prot.enable=true vendor.audio.feature.src_trkn.enable=true vendor.audio.feature.ssrec.enable=true vendor.audio.feature.usb_offload.enable=true vendor.audio.feature.usb_offload_burst_mode.enable=true +vendor.audio.feature.usb_offload_sidetone_volume.enable=false vendor.audio.feature.vbat.enable=true +vendor.audio.feature.wsa.enable=false vendor.audio.flac.sw.decoder.24bit=true vendor.audio.hal.boot.timeout.ms=20000 -vendor.audio.hal.output.suspend.supported=true +vendor.audio.hal.output.suspend.supported=false vendor.audio.hw.aac.encoder=true vendor.audio.offload.buffer.size.kb=32 vendor.audio.offload.gapless.enabled=true +vendor.audio.offload.multiaac.enable=true +vendor.audio.offload.multiple.enabled=false +vendor.audio.offload.passthrough=false vendor.audio.offload.track.enable=true +vendor.audio.parser.ip.buffer.size=262144 +vendor.audio.safx.pbe.enabled=false +vendor.audio.tunnel.encode=false vendor.audio.use.sw.alac.decoder=true vendor.audio.use.sw.ape.decoder=true vendor.audio.use.sw.mpegh.decoder=true @@ -52,58 +93,54 @@ vendor.audio_hal.period_size=192 vendor.voice.path.for.pcm.voip=true # Bluetooth -bluetooth.device.class_of_device=90,2,12 -bluetooth.hardware.power.idle_cur_ma=6 -bluetooth.hardware.power.operating_voltage_mv=3700 -bluetooth.hardware.power.rx_cur_ma=28 -bluetooth.hardware.power.tx_cur_ma=36 -bluetooth.profile.a2dp.source.enabled?=true -bluetooth.profile.asha.central.enabled?=true -bluetooth.profile.avrcp.target.enabled?=true -bluetooth.profile.bas.client.enabled?=true -bluetooth.profile.gatt.enabled?=true -bluetooth.profile.hfp.ag.enabled?=true -bluetooth.profile.hid.device.enabled?=true -bluetooth.profile.hid.host.enabled?=true -bluetooth.profile.map.server.enabled?=true -bluetooth.profile.opp.enabled?=true -bluetooth.profile.pan.nap.enabled?=true -bluetooth.profile.pan.panu.enabled?=true -bluetooth.profile.pbap.server.enabled?=true -bluetooth.profile.sap.server.enabled?=true -#persist.bluetooth.a2dp_offload.disabled=false +persist.bluetooth.a2dp_offload.cap=sbc-aac-aptx-aptxhd-ldac +persist.bluetooth.a2dp_offload.disabled=false +persist.sys.fflag.override.settings_bluetooth_hearing_aid=true +persist.vendor.bt.a2dp_offload_cap=sbc-aptx-aptxtws-aptxhd-aac-ldac persist.vendor.bt.aac_frm_ctl.enabled=true persist.vendor.bt.aac_vbr_frm_ctl.enabled=true +persist.vendor.oneplus.bt.asd.chain=0 +persist.vendor.oneplus.bt.asd.firmware=false persist.vendor.qcom.bluetooth.a2dp_offload_cap=sbc-aptx-aptxtws-aptxhd-aac-ldac -persist.vendor.qcom.bluetooth.aac_frm_ctl.enabled=true -persist.vendor.qcom.bluetooth.aptxadaptiver2_1_support=true -#ro.bluetooth.a2dp_offload.supported=true +persist.vendor.qcom.bluetooth.aac_vbr_ctl.enabled=true +persist.vendor.qcom.bluetooth.enable.splita2dp=true +persist.vendor.qcom.bluetooth.scram.enabled=false +persist.vendor.qcom.bluetooth.twsp_state.enabled=false +ro.bluetooth.a2dp_offload.supported=true +ro.vendor.bluetooth.wipower=false +vendor.qcom.bluetooth.soc=hastings # Camera -vendor.camera.aux.packageexcludelist=org.telegram.messenger,org.thunderdog.challegram,us.zoom.videomeetings +persist.vendor.camera.privapp.list=com.oneplus.factorymode,com.oneplus.camera,com.oem.autotest,com.oneplus.healthcheck +vendor.arcsoft.sn_isHardCopy=0 +vendor.camera.algo.jpeghwencode=1 +vendor.camera.aux.packagelist=com.oneplus.factorymode,com.oplus.camera,com.oem.autotest,com.oneplus.healthcheck # Chipset ro.soc.manufacturer=Qualcomm ro.soc.model=SM4350 # Crypto +ro.crypto.allow_encrypt_override=true ro.crypto.dm_default_key.options_format.version=2 +ro.crypto.volume.filenames_mode=aes-256-cts ro.crypto.volume.metadata.method=dm-default-key -# DPM -persist.vendor.dpm.idletimer.mode=default -persist.vendor.dpmhalservice.enable=1 - # Display +ro.vendor.display.sensortype=2 vendor.display.comp_mask=0 vendor.display.disable_excl_rect=0 vendor.display.disable_excl_rect_partial_fb=1 vendor.display.disable_hw_recovery_dump=1 -vendor.display.disable_offline_rotator=0 -vendor.display.enable_camera_smooth=1 +vendor.display.disable_offline_rotator=1 +vendor.display.disable_scaler=0 vendor.display.enable_async_powermode=0 vendor.display.enable_early_wakeup=1 vendor.display.enable_optimize_refresh=1 +vendor.display.enable_posted_start_dyn=1 +vendor.display.secure_preview_buffer_format=420_sp +vendor.display.use_layer_ext=1 +vendor.display.use_smooth_motion=1 # DRM drm.service.enabled=true @@ -111,28 +148,32 @@ drm.service.enabled=true # FRP ro.frp.pst=/dev/block/bootdevice/by-name/frp -# FUSE passthrough -persist.sys.fuse.passthrough.enable=true - # Gatekeeper vendor.gatekeeper.disable_spu=true +# GPS +persist.backup.ntpServer=0.pool.ntp.org + # Graphics -debug.sf.disable_client_composition_cache=1 -debug.sf.early.sf.duration=15666666 -debug.sf.early.app.duration=13666666 -debug.sf.earlyGl.app.duration=13666666 -debug.sf.earlyGl.sf.duration=15666666 -debug.sf.enable_gl_backpressure=0 +debug.egl.hw=0 +debug.mdpcomp.logs=0 +debug.sf.enable_advanced_sf_phase_offset=1 +debug.sf.enable_gl_backpressure=1 +debug.sf.high_fps_early_gl_phase_offset_ns=-4000000 +debug.sf.high_fps_early_phase_offset_ns=-4000000 +debug.sf.high_fps_late_app_phase_offset_ns=1000000 +debug.sf.high_fps_late_sf_phase_offset_ns=-4000000 +debug.sf.hw=0 debug.sf.latch_unsignaled=1 -debug.sf.late.app.duration=13666666 -debug.sf.late.sf.duration=15666666 -debug.sf.use_phase_offsets_as_durations=1 +persist.demo.hdmirotationlock=false +persist.sys.sf.color_mode=0 +persist.sys.sf.color_saturation=1.0 ro.hardware.egl=adreno ro.hardware.vulkan=adreno ro.opengles.version=196610 -ro.surface_flinger.enable_frame_rate_override=false ro.surface_flinger.force_hwc_copy_for_virtual_displays=true +ro.surface_flinger.has_HDR_display=true +ro.surface_flinger.has_wide_color_display=true ro.surface_flinger.max_frame_buffer_acquired_buffers=3 ro.surface_flinger.max_virtual_display_dimension=4096 ro.surface_flinger.protected_contents=true @@ -140,27 +181,52 @@ ro.surface_flinger.refresh_rate_switching=true ro.surface_flinger.set_idle_timer_ms=80 ro.surface_flinger.set_touch_timer_ms=200 ro.surface_flinger.set_display_power_timer_ms=1000 +ro.surface_flinger.use_color_management=true ro.surface_flinger.use_content_detection_for_refresh_rate=true -ro.surface_flinger.supports_background_blur=1 +ro.surface_flinger.wcg_composition_dataspace=143261696 vendor.gralloc.disable_ubwc=0 vendor.gralloc.secure_preview_buffer_format=420_sp vendor.gralloc.secure_preview_only=1 # Incremental FS -ro.incremental.enable=yes +ro.incremental.enable=true + +# Keystore +ro.hardware.keystore_desede=true # Media -debug.stagefright.c2inputsurface=-1 +debug.stagefright.ccodec=4 +debug.stagefright.omx_default_rank=0 + +# PASR +vendor.power.pasr.enabled=false # Perf ro.vendor.extension_library=libqti-perfd-client.so # Radio +persist.radio.snapshot_enabled=0 +persist.radio.snapshot_timer=0 +persist.rcs.otp_sms_port=0 +persist.rcs.supported=1 +persist.vendor.data.iwlan.enable=true +persist.vendor.radio.5g_mode_pref=1 +persist.vendor.radio.apm_sim_not_pwdn=1 +persist.vendor.radio.arfcn_test_mode=3 +persist.vendor.radio.bar_fake_gcell=1 persist.vendor.radio.custom_ecc=1 -persist.vendor.radio.mt_sms_ack=30 +persist.vendor.radio.data_con_rprt=1 +persist.vendor.radio.data_ltd_sys_ind=1 +persist.vendor.radio.efssync=true +persist.vendor.radio.enableadvancedscan=true +persist.vendor.radio.force_on_dc=true +persist.vendor.radio.ignore_dom_time=10 persist.vendor.radio.procedure_bytes=SKIP +persist.vendor.radio.process_sups_ind=1 persist.vendor.radio.rat_on=combine -ro.telephony.default_network=33,33 +persist.vendor.radio.sib16_support=1 +persist.vendor.radio.uicc_se_enabled=true +ro.com.android.dataroaming=false # Sensors persist.vendor.sensors.debug.ssc_qmi_debug=true @@ -171,19 +237,12 @@ persist.vendor.sensors.support_direct_channel=false persist.vendor.sensors.enable.bypass_worker=true persist.vendor.sensors.sync_request=true +# Shutdown +sys.vendor.shutdown.waittime=500 + # USB -sys.usb.mtp.batchcancel=1 vendor.usb.diag.func.name=ffs -vendor.usb.dpl.inst.name=dpl -vendor.usb.qdss.inst.name=qdss_sw -vendor.usb.rmnet.func.name=gsi -vendor.usb.rmnet.inst.name=rmnet -vendor.usb.rndis.func.name=gsi vendor.usb.use_ffs_mtp=1 -vendor.usb.use_gadget_hal=1 # WiFi wifi.aware.interface=wifi-aware0 - -# Zygote -zygote.critical_window.minute=10 diff --git a/wifi-mac-generator/Android.bp b/wifi-mac-generator/Android.bp new file mode 100644 index 0000000..cf239de --- /dev/null +++ b/wifi-mac-generator/Android.bp @@ -0,0 +1,6 @@ +sh_binary { + name: "wifi-mac-generator-dre", + init_rc: ["wifi-mac-generator.rc"], + src: "wifi-mac-generator.sh", + vendor: true, +} diff --git a/wifi-mac-generator/wifi-mac-generator.rc b/wifi-mac-generator/wifi-mac-generator.rc new file mode 100644 index 0000000..409de07 --- /dev/null +++ b/wifi-mac-generator/wifi-mac-generator.rc @@ -0,0 +1,9 @@ +service vendor.wifi-mac-generator /vendor/bin/wifi-mac-generator-dre + class main + user wifi + group wifi + oneshot + disabled + +on post-fs-data + start vendor.wifi-mac-generator diff --git a/wifi-mac-generator/wifi-mac-generator.sh b/wifi-mac-generator/wifi-mac-generator.sh new file mode 100644 index 0000000..2961318 --- /dev/null +++ b/wifi-mac-generator/wifi-mac-generator.sh @@ -0,0 +1,43 @@ +#!/vendor/bin/sh +WLAN_MAC_VENDOR_PREFIX="C0EEFB" +WLAN_MAC_PERSIST_PATH="/mnt/vendor/persist/wlan_mac.bin" + +function wait_for_file() { + retries=0 + + while [ ! -f "${1}" ]; do + retries=$((retries + 1)) + + if [ "${retries}" -eq 10 ]; then + return 1 + fi + + sleep 1 + done + + return 0 +} + +if [[ ! -f "${WLAN_MAC_PERSIST_PATH}" ]] || [[ ! -s "${WLAN_MAC_PERSIST_PATH}" ]]; then + MAC_0_PATH="/data/vendor/oemnvitems/4678_0" + + if ! wait_for_file "${MAC_0_PATH}"; then + MAC_0="${WLAN_MAC_VENDOR_PREFIX}`xxd -l 3 -p /dev/urandom | tr '[:lower:]' '[:upper:]'`" + else + MAC_0=`xxd -p "${MAC_0_PATH}" | grep -o '..' | tac | tr -d '\n' | tr '[:lower:]' '[:upper:]'` + fi + + #MAC_1_PATH="/data/vendor/oemnvitems/4678_1" + + #if ! wait_for_file "${MAC_1_PATH}"; then + # MAC_1="${WLAN_MAC_VENDOR_PREFIX}`xxd -l 3 -p /dev/urandom | tr '[:lower:]' '[:upper:]'`" + #else + # MAC_1=`xxd -p "${MAC_1_PATH}" | grep -o '..' | tac | tr -d '\n' | tr '[:lower:]' '[:upper:]'` + #fi + + echo "Intf0MacAddress=${MAC_0}" > "${WLAN_MAC_PERSIST_PATH}" + echo "Intf1MacAddress=000AF58989FE" >> "${WLAN_MAC_PERSIST_PATH}" + echo "Intf2MacAddress=000AF58989FD" >> "${WLAN_MAC_PERSIST_PATH}" + echo "Intf3MacAddress=000AF58989FC" >> "${WLAN_MAC_PERSIST_PATH}" + echo "END" >> "${WLAN_MAC_PERSIST_PATH}" +fi diff --git a/wifi/p2p_supplicant_overlay.conf b/wifi/p2p_supplicant_overlay.conf new file mode 100644 index 0000000..2b27c5b --- /dev/null +++ b/wifi/p2p_supplicant_overlay.conf @@ -0,0 +1,4 @@ +disable_scan_offload=1 +p2p_no_group_iface=1 +persistent_reconnect=1 +bss_max_count=400 diff --git a/wifi/wpa_supplicant_overlay.conf b/wifi/wpa_supplicant_overlay.conf new file mode 100644 index 0000000..799420d --- /dev/null +++ b/wifi/wpa_supplicant_overlay.conf @@ -0,0 +1,8 @@ +disable_scan_offload=1 +p2p_disabled=1 +tdls_external_control=1 +wowlan_triggers=magic_pkt +bss_max_count=400 +interworking=1 +config_methods=virtual_display virtual_push_button keypad +driver_param="no_rrm=1 use_p2p_group_interface=1"