├── .github ├── ISSUE_TEMPLATE │ └── bug-反馈.md └── workflows │ └── Create Release.yml ├── .gitignore ├── .gitmodules ├── CODE_OF_CONDUCT.md ├── LICENSE ├── README.md ├── README_EN.md ├── Tritium.json ├── apk └── app-release.apk ├── build.sh ├── changelog.md ├── config.env ├── magisk ├── CuDaemon ├── LICENSE ├── META-INF │ └── com │ │ └── google │ │ └── android │ │ ├── update-binary │ │ └── updater-script ├── action.sh ├── configs │ ├── dimensity1100.json │ ├── dimensity8100.json │ ├── dimensity8200.json │ ├── dimensity8300.json │ ├── dimensity9000.json │ ├── dimensity9200.json │ ├── sdm7+gen2.json │ ├── sdm7+gen3.json │ ├── sdm7gen3.json │ ├── sdm8+gen1.json │ ├── sdm835.json │ ├── sdm845.json │ ├── sdm855.json │ ├── sdm865.json │ ├── sdm888.json │ ├── sdm8elite.json │ ├── sdm8gen1.json │ ├── sdm8gen2.json │ ├── sdm8gen3.json │ └── universal.json ├── customize.sh ├── examine.sh ├── module.prop ├── powercfg │ ├── powercfg.json │ └── powercfg.sh ├── service.sh ├── skt-utils.sh ├── uninstall.sh └── webroot │ └── index.html ├── module.prop └── modules ├── LICENSE.md ├── break_system_limit.zip ├── ct_to_system_app.zip ├── cu_jank_detector.zip └── cu_util_monitor.zip /.github/ISSUE_TEMPLATE/bug-反馈.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug 反馈 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **描述这个 bug** 11 | 清楚、简明地说明了这个bug是什么. 12 | 13 | 复现步骤: 14 | 1. 15 | 2. 16 | 3. 17 | 4. 18 | 19 | **预期行为** 20 | 清晰简明地描述你期望发生的事情 21 | 22 | **屏幕截图** 23 | 如果适用,请添加屏幕截图来帮助解释您的问题。 24 | 25 | **调度信息:**: 26 | - 调度版本: 27 | 28 | **设备信息:** 29 | - 机型: 30 | - 系统版本: 31 | - CPU型号: 32 | - 内核版本: 33 | 34 | **附加内容** 35 | -------------------------------------------------------------------------------- /.github/workflows/Create Release.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | paths: 8 | - "config.env" 9 | - "changelog.md" 10 | - "magisk/**" 11 | - ".github/workflows/Create Release.yml" 12 | workflow_dispatch: 13 | inputs: 14 | force_version: 15 | description: "强制设置版本号 (留空使用config.env)" 16 | required: false 17 | 18 | concurrency: 19 | group: release-${{ github.ref }} 20 | cancel-in-progress: true 21 | 22 | jobs: 23 | build: 24 | name: Create Release 25 | runs-on: ubuntu-latest 26 | timeout-minutes: 15 27 | permissions: 28 | contents: write 29 | packages: write 30 | 31 | steps: 32 | - name: Checkout code 33 | uses: actions/checkout@v4 34 | with: 35 | fetch-depth: 0 36 | 37 | - name: Set up Node.js 38 | uses: actions/setup-node@v3 39 | with: 40 | node-version: "20" 41 | 42 | - name: Cache build dependencies 43 | uses: actions/cache@v3 44 | with: 45 | path: | 46 | ~/.gradle/caches 47 | ~/.gradle/wrapper 48 | ~/.m2/repository 49 | key: ${{ runner.os }}-build-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} 50 | restore-keys: | 51 | ${{ runner.os }}-build- 52 | 53 | - name: Prepare and Generate Files 54 | id: prepare 55 | run: | 56 | CONFIG_ENV_FILE="config.env" 57 | if [[ ! -f "$CONFIG_ENV_FILE" ]]; then 58 | echo "::error::配置文件 $CONFIG_ENV_FILE 不存在!" 59 | exit 1 60 | fi 61 | 62 | # 读取配置变量 63 | CONFIG_ENV=$(grep -E '^CONFIG_ENV=' "$CONFIG_ENV_FILE" | cut -d= -f2-) 64 | MODULE_PACKAGING_PATH=$(grep -E '^MODULE_PACKAGING_PATH=' "$CONFIG_ENV" | cut -d= -f2- || echo "") 65 | ZIP_FILENAME=$(grep -E '^ZIP_FILENAME=' "$CONFIG_ENV" | cut -d= -f2-) 66 | CONFIG_NAME=$(grep -E '^CONFIG_NAME=' "$CONFIG_ENV" | cut -d= -f2-) 67 | IS_PRERELEASE=$(grep -E '^IS_PRERELEASE=' "$CONFIG_ENV" | cut -d= -f2- || echo "false") 68 | 69 | # 处理版本号 - 允许从工作流输入覆盖 70 | if [[ -n "${{ github.event.inputs.force_version }}" ]]; then 71 | VERSION="${{ github.event.inputs.force_version }}" 72 | echo "::notice::使用手动指定的版本号: $VERSION" 73 | FORCE_VERSION=true 74 | else 75 | VERSION=$(grep -E '^VERSION=' "$CONFIG_ENV" | cut -d= -f2-) 76 | FORCE_VERSION=false 77 | fi 78 | 79 | VERSIONCODE=$(grep -E '^VERSIONCODE=' "$CONFIG_ENV" | cut -d= -f2-) 80 | FILE_VAR=$(grep -E '^FILE=' "$CONFIG_ENV" | cut -d= -f2-) 81 | 82 | # 校验必要变量 83 | MISSING_VARS=() 84 | [[ -z "$VERSION" ]] && MISSING_VARS+=("VERSION") 85 | [[ -z "$VERSIONCODE" ]] && MISSING_VARS+=("VERSIONCODE") 86 | [[ -z "$ZIP_FILENAME" ]] && MISSING_VARS+=("ZIP_FILENAME") 87 | 88 | if [[ ${#MISSING_VARS[@]} -gt 0 ]]; then 89 | echo "::error::配置文件中缺少以下变量: ${MISSING_VARS[*]}" 90 | exit 1 91 | fi 92 | 93 | # 添加日期后缀到文件名 (如果没有使用手动版本号) 94 | if [[ "$FORCE_VERSION" != "true" ]]; then 95 | DATE_SUFFIX=$(date '+%Y%m%d') 96 | ZIP_FILENAME="${ZIP_FILENAME}_${VERSION}_${DATE_SUFFIX}.zip" 97 | else 98 | ZIP_FILENAME="${ZIP_FILENAME}_${VERSION}.zip" 99 | fi 100 | 101 | # 输出到环境变量 102 | { 103 | echo "MODULE_PACKAGING_PATH=${MODULE_PACKAGING_PATH}" 104 | echo "ZIP_FILENAME=${ZIP_FILENAME}" 105 | echo "CONFIG_NAME=${CONFIG_NAME}" 106 | echo "IS_PRERELEASE=${IS_PRERELEASE}" 107 | echo "VERSION=${VERSION}" 108 | echo "FILE=${FILE_VAR}" 109 | echo "VERSIONCODE=${VERSIONCODE}" 110 | echo "RELEASE_NAME=Tritium_${VERSION}" 111 | } >> $GITHUB_ENV 112 | 113 | # 输出到下一个步骤 114 | echo "version=${VERSION}" >> $GITHUB_OUTPUT 115 | echo "zip_filename=${ZIP_FILENAME}" >> $GITHUB_OUTPUT 116 | 117 | # 打印配置信息 118 | echo "======= 版本信息 =======" 119 | echo "Version: ${VERSION}" 120 | echo "Version Code: ${VERSIONCODE}" 121 | echo "ZIP 文件名: ${ZIP_FILENAME}" 122 | echo "========================" 123 | 124 | # 生成 Tritium.json 125 | cat << EOF > Tritium.json 126 | { 127 | "versionCode": ${VERSIONCODE}, 128 | "version": "${VERSION}", 129 | "zipUrl": "https://github.com/TimeBreeze/Tritium/releases/download/${VERSION}/${ZIP_FILENAME}", 130 | "changelog": "https://raw.githubusercontent.com/TimeBreeze/Tritium/main/changelog.md" 131 | } 132 | EOF 133 | 134 | # 生成 module.prop 135 | mkdir -p ./magisk 136 | cat << EOF > ./magisk/module.prop 137 | id=ct_module 138 | name=Tritium 139 | version=${VERSION} 140 | versionCode=${VERSIONCODE} 141 | author=Tritium Developers 142 | description=安卓性能调度优化框架 143 | updateJson=https://raw.githubusercontent.com/TimeBreeze/Tritium/main/Tritium.json 144 | EOF 145 | 146 | - name: Zip Module 147 | id: zip 148 | run: | 149 | echo "::group::构建 Magisk 模块" 150 | # 确保已添加执行权限 151 | chmod +x "$GITHUB_WORKSPACE/build.sh" 152 | # 构建模块 153 | sh "$GITHUB_WORKSPACE/build.sh" magisk "${{ env.ZIP_FILENAME }}" 154 | 155 | # 验证构建结果 156 | if [[ ! -f "${{ env.ZIP_FILENAME }}" ]]; then 157 | echo "::error::构建失败,未找到ZIP文件: ${{ env.ZIP_FILENAME }}" 158 | exit 1 159 | fi 160 | 161 | # 生成文件校验和 162 | echo "::endgroup::" 163 | echo "::group::生成校验和" 164 | 165 | SHA256=$(sha256sum "${{ env.ZIP_FILENAME }}" | cut -d ' ' -f1) 166 | echo "sha256=${SHA256}" >> $GITHUB_OUTPUT 167 | echo "SHA256: ${SHA256}" 168 | 169 | echo "文件大小: $(du -h "${{ env.ZIP_FILENAME }}" | cut -f1)" 170 | echo "::endgroup::" 171 | 172 | - name: Create Release 173 | id: release 174 | uses: softprops/action-gh-release@v2 175 | env: 176 | GITHUB_TOKEN: ${{ secrets.CUSTOM_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} 177 | with: 178 | tag_name: ${{ env.VERSION }} 179 | name: ${{ env.RELEASE_NAME }} 180 | body_path: ${{ github.workspace }}/changelog.md 181 | prerelease: ${{ env.IS_PRERELEASE }} 182 | files: | 183 | ./${{ env.ZIP_FILENAME }} 184 | ./apk/*.apk 185 | draft: false 186 | repository: TimeBreeze/Tritium 187 | fail_on_unmatched_files: false 188 | 189 | - name: Update Release Info 190 | if: steps.release.outcome == 'success' 191 | run: | 192 | echo "::notice::发布创建成功!" 193 | echo "版本: ${{ env.VERSION }}" 194 | echo "下载链接: ${{ steps.release.outputs.url || '未获取到链接' }}" 195 | 196 | - name: Clean Build Artifacts 197 | if: always() 198 | run: | 199 | rm -f ./*.zip ./*.hash || true 200 | echo "临时文件已清理" 201 | 202 | - name: Commit and Push Changes 203 | uses: stefanzweifel/git-auto-commit-action@v5 204 | with: 205 | commit_message: "chore(release): 更新版本文件到 ${{ env.VERSION }} [自动提交]" 206 | file_pattern: Tritium.json ./magisk/module.prop 207 | commit_user_name: "GitHub Actions" 208 | commit_user_email: "actions@github.com" 209 | commit_author: "GitHub Actions " 210 | push_options: "--force" 211 | create_branch: false 212 | skip_dirty_check: false 213 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | magisk_suni/hashList.dat 2 | magisk_fiage/hashList.dat -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "CujankDetector"] 2 | path = CujankDetector 3 | url = https://github.com/chenzyadb/CujankDetector 4 | branch = main 5 | [submodule "CuUtilMonitor"] 6 | path = CuUtilMonitor 7 | url = https://github.com/chenzyadb/CuUtilMonitor 8 | branch = main 9 | [submodule "apk/Tritium_box"] 10 | path = apk/Tritium_box 11 | url = https://github.com/YumeYuka/Tritium_box 12 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | We as members, contributors, and leaders pledge to make participation in our 6 | community a harassment-free experience for everyone, regardless of age, body 7 | size, visible or invisible disability, ethnicity, sex characteristics, gender 8 | identity and expression, level of experience, education, socio-economic status, 9 | nationality, personal appearance, race, religion, or sexual identity 10 | and orientation. 11 | 12 | We pledge to act and interact in ways that contribute to an open, welcoming, 13 | diverse, inclusive, and healthy community. 14 | 15 | ## Our Standards 16 | 17 | Examples of behavior that contributes to a positive environment for our 18 | community include: 19 | 20 | * Demonstrating empathy and kindness toward other people 21 | * Being respectful of differing opinions, viewpoints, and experiences 22 | * Giving and gracefully accepting constructive feedback 23 | * Accepting responsibility and apologizing to those affected by our mistakes, 24 | and learning from the experience 25 | * Focusing on what is best not just for us as individuals, but for the 26 | overall community 27 | 28 | Examples of unacceptable behavior include: 29 | 30 | * The use of sexualized language or imagery, and sexual attention or 31 | advances of any kind 32 | * Trolling, insulting or derogatory comments, and personal or political attacks 33 | * Public or private harassment 34 | * Publishing others' private information, such as a physical or email 35 | address, without their explicit permission 36 | * Other conduct which could reasonably be considered inappropriate in a 37 | professional setting 38 | 39 | ## Enforcement Responsibilities 40 | 41 | Community leaders are responsible for clarifying and enforcing our standards of 42 | acceptable behavior and will take appropriate and fair corrective action in 43 | response to any behavior that they deem inappropriate, threatening, offensive, 44 | or harmful. 45 | 46 | Community leaders have the right and responsibility to remove, edit, or reject 47 | comments, commits, code, wiki edits, issues, and other contributions that are 48 | not aligned to this Code of Conduct, and will communicate reasons for moderation 49 | decisions when appropriate. 50 | 51 | ## Scope 52 | 53 | This Code of Conduct applies within all community spaces, and also applies when 54 | an individual is officially representing the community in public spaces. 55 | Examples of representing our community include using an official e-mail address, 56 | posting via an official social media account, or acting as an appointed 57 | representative at an online or offline event. 58 | 59 | ## Enforcement 60 | 61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 | reported to the community leaders responsible for enforcement at 63 | Nightrainmilkyway@gmail.com. 64 | All complaints will be reviewed and investigated promptly and fairly. 65 | 66 | All community leaders are obligated to respect the privacy and security of the 67 | reporter of any incident. 68 | 69 | ## Enforcement Guidelines 70 | 71 | Community leaders will follow these Community Impact Guidelines in determining 72 | the consequences for any action they deem in violation of this Code of Conduct: 73 | 74 | ### 1. Correction 75 | 76 | **Community Impact**: Use of inappropriate language or other behavior deemed 77 | unprofessional or unwelcome in the community. 78 | 79 | **Consequence**: A private, written warning from community leaders, providing 80 | clarity around the nature of the violation and an explanation of why the 81 | behavior was inappropriate. A public apology may be requested. 82 | 83 | ### 2. Warning 84 | 85 | **Community Impact**: A violation through a single incident or series 86 | of actions. 87 | 88 | **Consequence**: A warning with consequences for continued behavior. No 89 | interaction with the people involved, including unsolicited interaction with 90 | those enforcing the Code of Conduct, for a specified period of time. This 91 | includes avoiding interactions in community spaces as well as external channels 92 | like social media. Violating these terms may lead to a temporary or 93 | permanent ban. 94 | 95 | ### 3. Temporary Ban 96 | 97 | **Community Impact**: A serious violation of community standards, including 98 | sustained inappropriate behavior. 99 | 100 | **Consequence**: A temporary ban from any sort of interaction or public 101 | communication with the community for a specified period of time. No public or 102 | private interaction with the people involved, including unsolicited interaction 103 | with those enforcing the Code of Conduct, is allowed during this period. 104 | Violating these terms may lead to a permanent ban. 105 | 106 | ### 4. Permanent Ban 107 | 108 | **Community Impact**: Demonstrating a pattern of violation of community 109 | standards, including sustained inappropriate behavior, harassment of an 110 | individual, or aggression toward or disparagement of classes of individuals. 111 | 112 | **Consequence**: A permanent ban from any sort of public interaction within 113 | the community. 114 | 115 | ## Attribution 116 | 117 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 118 | version 2.0, available at 119 | https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. 120 | 121 | Community Impact Guidelines were inspired by [Mozilla's code of conduct 122 | enforcement ladder](https://github.com/mozilla/diversity). 123 | 124 | [homepage]: https://www.contributor-covenant.org 125 | 126 | For answers to common questions about this code of conduct, see the FAQ at 127 | https://www.contributor-covenant.org/faq. Translations are available at 128 | https://www.contributor-covenant.org/translations. 129 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright 2023 - present Tritium Developers 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | **简体中文** | [English](README_EN.md) | [简体中文](README.md) 2 | 3 | # Tritium Scheduler 4 | 5 |
6 | logo 7 | 8 | [![Latest release](https://img.shields.io/github/v/release/TimeBreeze/Tritium?label=Release&logo=github)](https://github.com/TimeBreeze/Tritium/releases/latest) [![GitHub License](https://img.shields.io/github/license/TimeBreeze/Tritium?logo=gnu)](/LICENSE) 9 |
10 | 11 | ## 特性 12 | 13 | 只需作为magisk/kernelSU模块刷入,或者安装app并授予`root`权限即可,开箱即用 14 | 15 | ## 使用方法 16 | - [官方网站](https://tritium.YumeYuka.cn/) 17 | - [自定义开发](https://tritium.YumeYuka.cn/guide/Customize) 18 | 19 | > `欢迎任何人加入我们共同分享配置文件` 20 | 21 | ## 下载 22 | 23 |
24 | 25 | [![](https://img.nightrainmilkyway.cn/img/202412012125310.svg)](https://github.com/TimeBreeze/Tritium/releases) 26 | [![](https://img.nightrainmilkyway.cn/img/202412012125310.svg)](https://github.com/chenzyadb/CuprumTurbo-Scheduler/releases) 27 | 28 | 29 |
30 | 31 | ## 兼容状态 32 | 33 | 支持安卓6-15的arm64设备(APP最低支持安卓9) 34 | 35 | 本调度在类原生系统下效果最佳 36 | 37 | 目前支持架构 : `arm64-v8a` 38 | 39 | 支持的SOC列表(后续也可能会增加) 40 | (注:仅代表本调度,并不代表原CT) 41 | 42 | ## 关于附加模块 43 | * `cu_jank_detector.zip`: 用于检测卡顿,推荐安装 44 | * `cu_util_monitor.zip`: 使检测CPU使用率更加精准,推荐安装 45 | * `break_system_limit.zip` 去除系统温控限制,非必要,任意去温控模块均可 46 | * `ct_to_system_app.zip`: 将Cutoolbox转为系统应用 47 | 48 | 49 | ## 讨论 50 | 51 | - QQ群组: [Tritium](https://qm.qq.com/q/rFzx3jszXU) 52 | - CT群组: [CuprumTurbo](https://qm.qq.com/q/RTavCcOgAm) 53 | ## 许可证 54 | 55 | [Apache-2.0 license](https://github.com/TimeBreeze/Tritium/blob/main/LICENSE) 56 | 57 | ## 鸣谢 58 | 59 | [CuprumTurbo Scheduler](https://github.com/chenzyadb/CuprumTurbo-Scheduler) : A simple and reliable performance scheduler. 60 | 61 | [CuJankDetector](https://github.com/chenzyadb/CuJankDetector): Hook up surfaceflinger to detect jams。 62 | 63 | [CuUtilMonitor](https://github.com/chenzyadb/CuUtilMonitor): Using eBPF in the kernel to get more accurate CPU load data 64 | 65 | ## ⭐ Star History 66 | 67 | [![Star History Chart](https://api.star-history.com/svg?repos=TimeBreeze/Tritium&type=Timeline)](https://star-history.com/#TimeBreeze/Tritium&Timeline) 68 | 69 | ![Alt](https://repobeats.axiom.co/api/embed/15fccaacef7bdef095601fd00bacceffc90b3d87.svg) 70 | 71 | -------------------------------------------------------------------------------- /README_EN.md: -------------------------------------------------------------------------------- 1 | **English** | [English](README_EN.md) | [简体中文](README.md) 2 | 3 | # Tritium Scheduler 4 | 5 |
6 | logo 7 | 8 | [![Latest release](https://img.shields.io/github/v/release/TimeBreeze/Tritium?label=Release&logo=github)](https://github.com/TimeBreeze/Tritium/releases/latest) [![GitHub License](https://img.shields.io/github/license/TimeBreeze/Tritium?logo=gnu)](/LICENSE) 9 |
10 | 11 | ## characteristic 12 | 13 | Flash it as a magisk/kernelSU module, or install the app and grant `root` permissions, it will work out of the box 14 | 15 | ## User Guide 16 | - [Official Website](https://tritium.YumeYuka.cn/) 17 | - [Customized Development](https://tritium.YumeYuka.cn/guide/Customize) 18 | 19 | > `Welcome to join us to develop configuration files` 20 | 21 | ## downloading 22 | 23 |
24 | 25 | [![](https://img.nightrainmilkyway.cn/img/202412012125310.svg)](https://github.com/TimeBreeze/Tritium/releases) 26 | [![](https://img.nightrainmilkyway.cn/img/202412012125310.svg)](https://github.com/chenzyadb/CuprumTurbo-Scheduler/releases) 27 | 28 | 29 |
30 | 31 | ## Compatibility status 32 | 33 | Support arm64 devices of Android 6-15 (the APP supports at least Android 9) 34 | 35 | This scheduling works best with native-like systems 36 | 37 | Currently supported architectures : `arm64-v8a`. 38 | 39 | List of supported SOCs (may also be added later) (Note: represents this dispatch only and does not represent the original CT) 40 | 41 | ## 关于附加模块 42 | * `cu_jank_detector.zip`: Used to detect lag, recommended for installation 43 | * `cu_util_monitor.zip`: To make CPU usage detection more accurate, it is recommended to install 44 | * `break_system_limit.zip` Remove system thermal control restrictions. Not necessary, any thermal control module can be removed. 45 | * `ct_to_system_app.zip`: Convert Cutoolbox to a system application 46 | 47 | ## License 48 | 49 | [Apache-2.0 license](https://github.com/TimeBreeze/Tritium/blob/main/LICENSE) 50 | 51 | ## Thanks 52 | 53 | [CuprumTurbo Scheduler](https://github.com/chenzyadb/CuprumTurbo-Scheduler) : A simple and reliable performance scheduler. 54 | 55 | [CuJankDetector](https://github.com/chenzyadb/CuJankDetector): Hook up surfaceflinger to detect jams。 56 | 57 | [CuUtilMonitor](https://github.com/chenzyadb/CuUtilMonitor): Using eBPF in the kernel to get more accurate CPU load data 58 | 59 | # ⭐ Star History 60 | 61 | [![Star History Chart](https://api.star-history.com/svg?repos=TimeBreeze/Tritium&type=Timeline)](https://star-history.com/#TimeBreeze/Tritium&Timeline) 62 | 63 | ![Alt](https://repobeats.axiom.co/api/embed/15fccaacef7bdef095601fd00bacceffc90b3d87.svg) -------------------------------------------------------------------------------- /Tritium.json: -------------------------------------------------------------------------------- 1 | { 2 | "versionCode": 250528, 3 | "version": "V5.4.1", 4 | "zipUrl": "https://github.com/TimeBreeze/Tritium/releases/download/V5.4.1/Magisk_V5.4.1_20250528.zip", 5 | "changelog": "https://raw.githubusercontent.com/TimeBreeze/Tritium/main/changelog.md" 6 | } 7 | -------------------------------------------------------------------------------- /apk/app-release.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimeBreeze/Tritium/1665b480e3b76aabdf10e6dec0103abd6c609d2a/apk/app-release.apk -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ "$#" -ne 2 ]; then 4 | echo "Usage: $0 " 5 | exit 1 6 | fi 7 | 8 | targetRoot="$(realpath "$1")" 9 | targetName="$2" 10 | 11 | if [ ! -d "$targetRoot" ]; then 12 | echo "Error: Directory $targetRoot does not exist." 13 | exit 1 14 | fi 15 | 16 | for file in $(find "$targetRoot/"); do 17 | touch -c -t 000001010000 "$file" 18 | done 19 | 20 | rm -f "$targetRoot/hashList.dat" 21 | for file in $(find "$targetRoot/" -type f -not -path "*META-INF*"); do 22 | echo "$(sha1sum "${file}" | awk '{print $1}') ${file#$targetRoot/}" >> "$targetRoot/hashList.txt" 23 | done 24 | truncate -s $(($(stat -c %s "$targetRoot/hashList.txt") - 1)) "$targetRoot/hashList.txt" 25 | cat "$targetRoot/hashList.txt" | gzip -c9 > "$targetRoot/hashList.dat" 26 | rm -f "$targetRoot/hashList.txt" 27 | 28 | cd "$targetRoot/" 29 | zip -r "$targetName" * 30 | mv -f "$targetName" "../$targetName" 31 | cd .. 32 | -------------------------------------------------------------------------------- /changelog.md: -------------------------------------------------------------------------------- 1 | ## 变化 2 | 3 | - 优化骁龙8Elite使用体验 4 | 5 | 6 | 7 | ### 附加模块(可选&建议) 8 | - [cu_jank_detector.zip](https://raw.githubusercontent.com/TimeBreeze/Tritium/refs/heads/main/modules/cu_jank_detector.zip) 9 | - [ct_to_system_app.zip](https://raw.githubusercontent.com/TimeBreeze/Tritium/refs/heads/main/modules/ct_to_system_app.zip) 10 | - [break_system_limit.zip](https://raw.githubusercontent.com/TimeBreeze/Tritium/refs/heads/main/modules/break_system_limit.zip) 11 | - [cu_util_monitor.zip](https://raw.githubusercontent.com/TimeBreeze/Tritium/refs/heads/main/modules/cu_util_monitor.zip) 12 | 13 | > [!IMPORTANT] 14 | > 关于附加模块说明请参考[这里](https://tritium.yumeyuka.cn/guide/download#%E5%85%B3%E4%BA%8E%E9%99%84%E5%8A%A0%E6%A8%A1%E5%9D%97) 15 | 16 | ## 贡献: 17 | - @chenzyadb 18 | - @Suni-code 19 | - @xianyu6556 20 | - @YumeYuka 21 | - @GunRain 22 | 23 | Full Changelog: [`V5.4.0 -> V5.3.2`](https://github.com/TimeBreeze/Tritium/commits/main/) 24 | 25 | ## 使用项目 26 | - [CuprumTurbo Scheduler](https://github.com/chenzyadb/CuprumTurbo-Scheduler) 27 | - [Tritium](https://github.com/TimeBreeze/Tritium) 28 | - [Tritium_box](https://github.com/TimeBreeze/Tritium_box) 29 | - [Magisk-Module-EG](https://github.com/GunRain/Magisk-Module-EG) -------------------------------------------------------------------------------- /config.env: -------------------------------------------------------------------------------- 1 | CONFIG_ENV=config.env 2 | 3 | ZIP_FILENAME=Magisk 4 | CONFIG_NAME=configs 5 | IS_PRERELEASE=false 6 | VERSION=V5.4.1 7 | VERSIONCODE=250528 8 | 9 | FILE=Tritium.json 10 | -------------------------------------------------------------------------------- /magisk/CuDaemon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimeBreeze/Tritium/1665b480e3b76aabdf10e6dec0103abd6c609d2a/magisk/CuDaemon -------------------------------------------------------------------------------- /magisk/LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright 2023 - present Tritium Developers 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /magisk/META-INF/com/google/android/update-binary: -------------------------------------------------------------------------------- 1 | #!/sbin/sh 2 | 3 | umask 022 4 | 5 | ui_print() { 6 | echo "$1" 7 | } 8 | 9 | require_new_magisk() { 10 | ui_print "- Please install Magisk v20.4+ !" 11 | exit 1 12 | } 13 | 14 | OUTFD=$2 15 | ZIPFILE=$3 16 | 17 | mount /data 2>/dev/null 18 | 19 | if [ ! -f "/data/adb/magisk/util_functions.sh" ]; then 20 | require_new_magisk 21 | fi 22 | . /data/adb/magisk/util_functions.sh 23 | 24 | if [ "$MAGISK_VER_CODE" -lt 20400 ]; then 25 | require_new_magisk 26 | fi 27 | 28 | install_module 29 | 30 | exit 0 -------------------------------------------------------------------------------- /magisk/META-INF/com/google/android/updater-script: -------------------------------------------------------------------------------- 1 | #MAGISK 2 | -------------------------------------------------------------------------------- /magisk/action.sh: -------------------------------------------------------------------------------- 1 | # Copyright 2023 - present Tritium Developers 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | URL="https://github.com/DreamPractice/Tritium/issues/new?assignees=&labels=&projects=&template=bug-%E5%8F%8D%E9%A6%88.md&title=" 16 | am start -a android.intent.action.VIEW -d "$URL" 17 | exit 0 -------------------------------------------------------------------------------- /magisk/configs/sdm835.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Snapdragon845", 3 | "author": "Suni-Tritium", 4 | "configVersion": 11, 5 | "CpuGovernor": { 6 | "enable": true, 7 | "params": { 8 | "maxRateHz": 200, 9 | "minRateHz": 20, 10 | "activeDelay": 2000, 11 | "freqStep": 200 12 | }, 13 | "policies": [ 14 | { 15 | "coreNum": 4, 16 | "perfRatio": 80, 17 | "lowPowerFreq": 500, 18 | "optimalFreq": 1400, 19 | "modelType": "little-core", 20 | "modelFreq": 1900, 21 | "modelPower": 360 22 | }, 23 | { 24 | "coreNum": 4, 25 | "perfRatio": 160, 26 | "lowPowerFreq": 700, 27 | "optimalFreq": 1800, 28 | "modelType": "medium-core", 29 | "modelFreq": 2450, 30 | "modelPower": 1460 31 | } 32 | ], 33 | "modes": { 34 | "powersave": { 35 | "powerLimit": 2000, 36 | "multiLoadLimit": true, 37 | "multiLoadThres": [50, 50], 38 | "maxMargin": [10, 10], 39 | "maxLatency": [50, 55] 40 | }, 41 | "balance": { 42 | "powerLimit": 3400, 43 | "multiLoadLimit": true, 44 | "multiLoadThres": [50, 50], 45 | "maxMargin": [25, 25], 46 | "maxLatency": [40, 40] 47 | }, 48 | "performance": { 49 | "powerLimit": 4500, 50 | "multiLoadLimit": true, 51 | "multiLoadThres": [40, 45], 52 | "maxMargin": [30, 45], 53 | "maxLatency": [25, 20] 54 | }, 55 | "fast": { 56 | "powerLimit": 10000, 57 | "multiLoadLimit": false, 58 | "multiLoadThres": [50, 50], 59 | "maxMargin": [30, 30], 60 | "maxLatency": [10, 10] 61 | } 62 | } 63 | }, 64 | "ThreadSchedOpt": { 65 | "enable": true, 66 | "defaultCpus": [0, 1, 2, 3, 4, 5, 6, 7], 67 | "defaultPriority": 0, 68 | "appTypes": { 69 | "surfaceflinger": { 70 | "pkgName": "*[Ss]urface[Ff]linger*", 71 | "symbol": null 72 | }, 73 | "system_server": { 74 | "pkgName": "system_server", 75 | "symbol": null 76 | }, 77 | "unity_genshin": { 78 | "pkgName": "*(.Yuanshen|.GenshinImpact)|*.ys.*", 79 | "symbol": null 80 | }, 81 | "unity_common": { 82 | "pkgName": null, 83 | "symbol": "Unity*" 84 | }, 85 | "unreal_engine": { 86 | "pkgName": null, 87 | "symbol": "(TaskGraph|RHIThread)*" 88 | }, 89 | "minecraft": { 90 | "pkgName": null, 91 | "symbol": "MINECRAFT*" 92 | }, 93 | "neox_engine": { 94 | "pkgName": "*(.mrzh|.qrzd|.jddsaef|.lglr|.zmq|.ldxy|.s4na|.g93na|.g78na|.onmyoji|.harrypotter|.moba|.party)*", 95 | "symbol": null 96 | }, 97 | "sky_game": { 98 | "pkgName": "(com.netease.sky|com.tgc.sky)*", 99 | "symbol": null 100 | }, 101 | "native_game": { 102 | "pkgName": "*(ea.game.|gameloft.|kiloo.|sybogames.|yodo1.|rockstargames.|corrodinggames.)*", 103 | "symbol": null 104 | }, 105 | "benchmark": { 106 | "pkgName": "*[Bb]ench*|com.futuremark.*|*ioncannon.*|*.probe|*.devcheck", 107 | "symbol": null 108 | } 109 | }, 110 | "schedRules": { 111 | "DEFAULT_RULE": [ 112 | { 113 | "threadName": "MAIN_THREAD", 114 | "heavyCpus": [7], 115 | "commonCpus": [4, 5, 6], 116 | "priority": -20 117 | }, 118 | { 119 | "threadName": "*[Rr]ender*", 120 | "heavyCpus": null, 121 | "commonCpus": [4, 5, 6], 122 | "priority": -20 123 | }, 124 | { 125 | "threadName": "(GLThread|[Vv]sync|JNISurface|hwui|UiThread|ged-|mali-)*|*(.raster|.ui|.anim|.display)*", 126 | "heavyCpus": null, 127 | "commonCpus": [4, 5, 6], 128 | "priority": -12 129 | }, 130 | { 131 | "threadName": "(glide-|Fresco|[Ii]mage|[Ll]auncher)*|*([Bb]lur|[Aa]nim|[Oo]verlay|[Cc]horeographer)*", 132 | "heavyCpus": null, 133 | "commonCpus": [4, 5, 6], 134 | "priority": -12 135 | }, 136 | { 137 | "threadName": "(HWC release|GPU completion|FrameThread|FramePolicy|ScrollPolicy)*", 138 | "heavyCpus": null, 139 | "commonCpus": [0, 1, 2, 3], 140 | "priority": -20 141 | }, 142 | { 143 | "threadName": "(Vlc|[Ii][Jj][Kk])*|*([Aa]udio|[Mm]ixer|[Vv]ideo|[Pp]layer|[Mm]edia|[Cc]odec|[Dd]ecode)*", 144 | "heavyCpus": null, 145 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 146 | "priority": -16 147 | }, 148 | { 149 | "threadName": "(Chrome_|Compositor|CrGpuMain|CrRenderer|Viz|Gecko)*|*[Ww]eb[Vv]iew*", 150 | "heavyCpus": null, 151 | "commonCpus": [4, 5, 6], 152 | "priority": -12 153 | }, 154 | { 155 | "threadName": "(WeexJsBridge|libweexjsb|V8 DefaultWork|hippy.js|mqt_)*|*[Jj]ava[Ss]cript*", 156 | "heavyCpus": null, 157 | "commonCpus": [4, 5, 6], 158 | "priority": -8 159 | }, 160 | { 161 | "threadName": "*([Ww]ork|[Hh]andle|[Pp]ool|[Mm]essage|[Dd]ispatch|[Ee]xecutor|[Bb]ridge|[Cc]amera)*", 162 | "heavyCpus": null, 163 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 164 | "priority": -8 165 | }, 166 | { 167 | "threadName": "(Chronos.|CRON.|AsyncTask|Thread-|Timer-)*", 168 | "heavyCpus": null, 169 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 170 | "priority": -8 171 | }, 172 | { 173 | "threadName": "(HeapTask|HeapTrimmer|Finalizer|CleanupReferenc|GC)*", 174 | "heavyCpus": null, 175 | "commonCpus": [0, 1, 2, 3], 176 | "priority": -8 177 | }, 178 | { 179 | "threadName": "(queued-work-|Jit thread pool|Signal Catcher|Profile Saver|ReferenceQueue)*", 180 | "heavyCpus": null, 181 | "commonCpus": [0, 1, 2, 3], 182 | "priority": -8 183 | }, 184 | { 185 | "threadName": "(Moss|OkHttp|Okio|Rx|rx-)*|*([Nn]etwork|[Cc]ookie|[Ss]cheduler|[Cc]apture)*", 186 | "heavyCpus": null, 187 | "commonCpus": [0, 1, 2, 3], 188 | "priority": -8 189 | }, 190 | { 191 | "threadName": "(BLog|xlog|[Bb]ugly|BUGLY|LogThread)*|*([Cc]rash|[Ll]ogger|[Rr]eport)*", 192 | "heavyCpus": null, 193 | "commonCpus": [0, 1, 2, 3], 194 | "priority": 0 195 | }, 196 | { 197 | "threadName": "(APM-|TVKDL-|Firebase|koom|ADB-JDWP|MemoryInfra)*|*([Ww]atch[Dd]og|[Tt]racker|[Mm]onitor)*", 198 | "heavyCpus": null, 199 | "commonCpus": [0, 1, 2, 3], 200 | "priority": 0 201 | } 202 | ], 203 | "surfaceflinger": [ 204 | { 205 | "threadName": "MAIN_THREAD", 206 | "heavyCpus": null, 207 | "commonCpus": [4, 5, 6], 208 | "priority": -20 209 | }, 210 | { 211 | "threadName": "(RenderEngine|OverlayEngine|app)*", 212 | "heavyCpus": null, 213 | "commonCpus": [4, 5, 6], 214 | "priority": -20 215 | } 216 | ], 217 | "system_server": [ 218 | { 219 | "threadName": "MAIN_THREAD", 220 | "heavyCpus": null, 221 | "commonCpus": [4, 5, 6], 222 | "priority": -20 223 | }, 224 | { 225 | "threadName": "android.*", 226 | "heavyCpus": null, 227 | "commonCpus": [4, 5, 6], 228 | "priority": -20 229 | } 230 | ], 231 | "unity_genshin": [ 232 | { 233 | "threadName": "MAIN_THREAD", 234 | "heavyCpus": null, 235 | "commonCpus": [0, 1, 2, 3], 236 | "priority": -12 237 | }, 238 | { 239 | "threadName": "UnityGfx*", 240 | "heavyCpus": [7], 241 | "commonCpus": [4, 5, 6], 242 | "priority": -20 243 | }, 244 | { 245 | "threadName": "(UnityMain|UnityMulti|UnityPreload|UnityChoreograp|UnityCCeograp)*", 246 | "heavyCpus": null, 247 | "commonCpus": [4, 5, 6], 248 | "priority": -12 249 | }, 250 | { 251 | "threadName": "FMOD*|*(Audio|Media)*", 252 | "heavyCpus": null, 253 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 254 | "priority": -16 255 | }, 256 | { 257 | "threadName": "(Worker Thread|Job.Worker|NativeThread|IL2CPP|CoreThread|Thread-)*", 258 | "heavyCpus": null, 259 | "commonCpus": [4, 5, 6], 260 | "priority": -12 261 | } 262 | ], 263 | "unity_common": [ 264 | { 265 | "threadName": "MAIN_THREAD", 266 | "heavyCpus": null, 267 | "commonCpus": [0, 1, 2, 3], 268 | "priority": -12 269 | }, 270 | { 271 | "threadName": "UnityMain*", 272 | "heavyCpus": [7], 273 | "commonCpus": [4, 5, 6], 274 | "priority": -20 275 | }, 276 | { 277 | "threadName": "(UnityGfx|UnityMulti|UnityPreload|UnityChoreograp|UnityCCeograp)*", 278 | "heavyCpus": null, 279 | "commonCpus": [4, 5, 6], 280 | "priority": -20 281 | }, 282 | { 283 | "threadName": "FMOD*|*(Audio|Media)*", 284 | "heavyCpus": null, 285 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 286 | "priority": -16 287 | }, 288 | { 289 | "threadName": "(Worker Thread|Job.Worker|NativeThread|IL2CPP|ace_worker|Apollo-|CoreThread|Thread-)*", 290 | "heavyCpus": null, 291 | "commonCpus": [4, 5, 6], 292 | "priority": -12 293 | } 294 | ], 295 | "unreal_engine": [ 296 | { 297 | "threadName": "MAIN_THREAD", 298 | "heavyCpus": null, 299 | "commonCpus": [4, 5, 6], 300 | "priority": -12 301 | }, 302 | { 303 | "threadName": "(RenderThread|GameThread|RHIThread)*", 304 | "heavyCpus": [7], 305 | "commonCpus": [4, 5, 6], 306 | "priority": -20 307 | }, 308 | { 309 | "threadName": "(TaskGraph|CmpJob|Apollo-|glp|glt|NativeThread|SDLThread|Thread-)*", 310 | "heavyCpus": null, 311 | "commonCpus": [4, 5, 6], 312 | "priority": -12 313 | }, 314 | { 315 | "threadName": "FMOD*|*(Audio|Media)*", 316 | "heavyCpus": null, 317 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 318 | "priority": -16 319 | } 320 | ], 321 | "minecraft": [ 322 | { 323 | "threadName": "MAIN_THREAD", 324 | "heavyCpus": null, 325 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 326 | "priority": -12 327 | }, 328 | { 329 | "threadName": "(Rendering Pool|MINECRAFT)*", 330 | "heavyCpus": [7], 331 | "commonCpus": [4, 5, 6], 332 | "priority": -20 333 | }, 334 | { 335 | "threadName": "Thread-*", 336 | "heavyCpus": null, 337 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 338 | "priority": -8 339 | }, 340 | { 341 | "threadName": "FMOD*|*(Audio|Media)*", 342 | "heavyCpus": null, 343 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 344 | "priority": -16 345 | } 346 | ], 347 | "neox_engine": [ 348 | { 349 | "threadName": "MAIN_THREAD", 350 | "heavyCpus": null, 351 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 352 | "priority": -12 353 | }, 354 | { 355 | "threadName": "(MainThread|Thread-)*", 356 | "heavyCpus": [7], 357 | "commonCpus": [4, 5, 6], 358 | "priority": -20 359 | }, 360 | { 361 | "threadName": "(IO|Compute|Resource|NativeThread)*", 362 | "heavyCpus": null, 363 | "commonCpus": [4, 5, 6], 364 | "priority": -12 365 | } 366 | ], 367 | "sky_game": [ 368 | { 369 | "threadName": "MAIN_THREAD", 370 | "heavyCpus": null, 371 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 372 | "priority": -12 373 | }, 374 | { 375 | "threadName": "(MainThread|Program Thread)*", 376 | "heavyCpus": [7], 377 | "commonCpus": [4, 5, 6], 378 | "priority": -20 379 | }, 380 | { 381 | "threadName": "(JobThread|Thread-)*", 382 | "heavyCpus": null, 383 | "commonCpus": [4, 5, 6], 384 | "priority": -12 385 | } 386 | ], 387 | "native_game": [ 388 | { 389 | "threadName": "MAIN_THREAD", 390 | "heavyCpus": null, 391 | "commonCpus": [4, 5, 6], 392 | "priority": -12 393 | }, 394 | { 395 | "threadName": "(Thread-|GameThread|NativeThread|MainThread|RenderThread)*", 396 | "heavyCpus": [7], 397 | "commonCpus": [4, 5, 6], 398 | "priority": -20 399 | }, 400 | { 401 | "threadName": "(GLThread|FMOD)*|*(Audio|Media)*", 402 | "heavyCpus": null, 403 | "commonCpus": [4, 5, 6], 404 | "priority": -16 405 | } 406 | ], 407 | "benchmark": [] 408 | } 409 | }, 410 | "MtkGpuGovernor": { 411 | "enable": false 412 | }, 413 | "DevfreqTuner": { 414 | "enable": false 415 | }, 416 | "Trigger": { 417 | "enable": true, 418 | "scenes": { 419 | "init": { 420 | "setProperty": [], 421 | "writeFile": [ 422 | {"path": "/dev/cpuset/restricted/cpus", "text": "0-3"}, 423 | {"path": "/dev/cpuset/system-background/cpus", "text": "0-3"}, 424 | {"path": "/dev/cpuset/background/cpus", "text": "0-3"}, 425 | {"path": "/dev/cpuset/foreground/cpus", "text": "0-7"}, 426 | {"path": "/dev/cpuset/top-app/cpus", "text": "0-7"} 427 | ] 428 | }, 429 | "screenOn": { 430 | "setProperty": [], 431 | "writeFile": [] 432 | }, 433 | "screenOff": { 434 | "setProperty": [], 435 | "writeFile": [] 436 | }, 437 | "powersaveMode": { 438 | "setProperty": [], 439 | "writeFile": [] 440 | }, 441 | "balanceMode": { 442 | "setProperty": [], 443 | "writeFile": [] 444 | }, 445 | "performanceMode": { 446 | "setProperty": [], 447 | "writeFile": [] 448 | }, 449 | "fastMode": { 450 | "setProperty": [], 451 | "writeFile": [] 452 | } 453 | }, 454 | "hints": { 455 | "none": { 456 | "durationTime": 0, 457 | "modes": { 458 | "powersave": { 459 | "setProperty": [ 460 | {"name": "cpu.boost", "value": 0}, 461 | {"name": "cpu.extra_margin", "value": 0}, 462 | {"name": "cpu.low_latency", "value": false}, 463 | {"name": "mtk_gpu.min_freq", "value": 0}, 464 | {"name": "mtk_gpu.boost", "value": 0}, 465 | {"name": "mtk_gpu.extra_margin", "value": 0}, 466 | {"name": "mtk_gpu.low_latency", "value": false}, 467 | {"name": "devfreq.ddr.min_freq", "value": 0}, 468 | {"name": "devfreq.gpu.min_freq", "value": 0} 469 | ], 470 | "writeFile": [] 471 | }, 472 | "balance": { 473 | "setProperty": [ 474 | {"name": "cpu.boost", "value": 0}, 475 | {"name": "cpu.extra_margin", "value": 0}, 476 | {"name": "cpu.low_latency", "value": false}, 477 | {"name": "mtk_gpu.min_freq", "value": 0}, 478 | {"name": "mtk_gpu.boost", "value": 0}, 479 | {"name": "mtk_gpu.extra_margin", "value": 0}, 480 | {"name": "mtk_gpu.low_latency", "value": false}, 481 | {"name": "devfreq.ddr.min_freq", "value": 0}, 482 | {"name": "devfreq.gpu.min_freq", "value": 0} 483 | ], 484 | "writeFile": [] 485 | }, 486 | "performance": { 487 | "setProperty": [ 488 | {"name": "cpu.boost", "value": 0}, 489 | {"name": "cpu.extra_margin", "value": 0}, 490 | {"name": "cpu.low_latency", "value": false}, 491 | {"name": "mtk_gpu.min_freq", "value": 0}, 492 | {"name": "mtk_gpu.boost", "value": 0}, 493 | {"name": "mtk_gpu.extra_margin", "value": 0}, 494 | {"name": "mtk_gpu.low_latency", "value": false}, 495 | {"name": "devfreq.ddr.min_freq", "value": 0}, 496 | {"name": "devfreq.gpu.min_freq", "value": 0} 497 | ], 498 | "writeFile": [] 499 | }, 500 | "fast": { 501 | "setProperty": [ 502 | {"name": "cpu.boost", "value": 0}, 503 | {"name": "cpu.extra_margin", "value": 0}, 504 | {"name": "cpu.low_latency", "value": false}, 505 | {"name": "mtk_gpu.min_freq", "value": 0}, 506 | {"name": "mtk_gpu.boost", "value": 0}, 507 | {"name": "mtk_gpu.extra_margin", "value": 0}, 508 | {"name": "mtk_gpu.low_latency", "value": false}, 509 | {"name": "devfreq.ddr.min_freq", "value": 0}, 510 | {"name": "devfreq.gpu.min_freq", "value": 0} 511 | ], 512 | "writeFile": [] 513 | } 514 | } 515 | }, 516 | "tap": { 517 | "durationTime": 340, 518 | "modes": { 519 | "powersave": { 520 | "setProperty": [ 521 | {"name": "cpu.boost", "value": 10}, 522 | {"name": "cpu.extra_margin", "value": 10}, 523 | {"name": "cpu.low_latency", "value": true}, 524 | {"name": "mtk_gpu.min_freq", "value": 0}, 525 | {"name": "mtk_gpu.boost", "value": 0}, 526 | {"name": "mtk_gpu.extra_margin", "value": 0}, 527 | {"name": "mtk_gpu.low_latency", "value": false}, 528 | {"name": "devfreq.ddr.min_freq", "value": 0}, 529 | {"name": "devfreq.gpu.min_freq", "value": 0} 530 | ], 531 | "writeFile": [] 532 | }, 533 | "balance": { 534 | "setProperty": [ 535 | {"name": "cpu.boost", "value": 15}, 536 | {"name": "cpu.extra_margin", "value": 15}, 537 | {"name": "cpu.low_latency", "value": true}, 538 | {"name": "mtk_gpu.min_freq", "value": 0}, 539 | {"name": "mtk_gpu.boost", "value": 0}, 540 | {"name": "mtk_gpu.extra_margin", "value": 0}, 541 | {"name": "mtk_gpu.low_latency", "value": false}, 542 | {"name": "devfreq.ddr.min_freq", "value": 0}, 543 | {"name": "devfreq.gpu.min_freq", "value": 0} 544 | ], 545 | "writeFile": [] 546 | }, 547 | "performance": { 548 | "setProperty": [ 549 | {"name": "cpu.boost", "value": 20}, 550 | {"name": "cpu.extra_margin", "value": 10}, 551 | {"name": "cpu.low_latency", "value": true}, 552 | {"name": "mtk_gpu.min_freq", "value": 0}, 553 | {"name": "mtk_gpu.boost", "value": 0}, 554 | {"name": "mtk_gpu.extra_margin", "value": 0}, 555 | {"name": "mtk_gpu.low_latency", "value": false}, 556 | {"name": "devfreq.ddr.min_freq", "value": 0}, 557 | {"name": "devfreq.gpu.min_freq", "value": 0} 558 | ], 559 | "writeFile": [] 560 | }, 561 | "fast": { 562 | "setProperty": [ 563 | {"name": "cpu.boost", "value": 20}, 564 | {"name": "cpu.extra_margin", "value": 0}, 565 | {"name": "cpu.low_latency", "value": true}, 566 | {"name": "mtk_gpu.min_freq", "value": 0}, 567 | {"name": "mtk_gpu.boost", "value": 0}, 568 | {"name": "mtk_gpu.extra_margin", "value": 0}, 569 | {"name": "mtk_gpu.low_latency", "value": false}, 570 | {"name": "devfreq.ddr.min_freq", "value": 0}, 571 | {"name": "devfreq.gpu.min_freq", "value": 0} 572 | ], 573 | "writeFile": [] 574 | } 575 | } 576 | }, 577 | "swipe": { 578 | "durationTime": 550, 579 | "modes": { 580 | "powersave": { 581 | "setProperty": [ 582 | {"name": "cpu.boost", "value": 15}, 583 | {"name": "cpu.extra_margin", "value": 10}, 584 | {"name": "cpu.low_latency", "value": true}, 585 | {"name": "mtk_gpu.min_freq", "value": 0}, 586 | {"name": "mtk_gpu.boost", "value": 0}, 587 | {"name": "mtk_gpu.extra_margin", "value": 0}, 588 | {"name": "mtk_gpu.low_latency", "value": false}, 589 | {"name": "devfreq.ddr.min_freq", "value": 0}, 590 | {"name": "devfreq.gpu.min_freq", "value": 0} 591 | ], 592 | "writeFile": [] 593 | }, 594 | "balance": { 595 | "setProperty": [ 596 | {"name": "cpu.boost", "value": 15}, 597 | {"name": "cpu.extra_margin", "value": 15}, 598 | {"name": "cpu.low_latency", "value": true}, 599 | {"name": "mtk_gpu.min_freq", "value": 0}, 600 | {"name": "mtk_gpu.boost", "value": 0}, 601 | {"name": "mtk_gpu.extra_margin", "value": 0}, 602 | {"name": "mtk_gpu.low_latency", "value": false}, 603 | {"name": "devfreq.ddr.min_freq", "value": 0}, 604 | {"name": "devfreq.gpu.min_freq", "value": 0} 605 | ], 606 | "writeFile": [] 607 | }, 608 | "performance": { 609 | "setProperty": [ 610 | {"name": "cpu.boost", "value": 15}, 611 | {"name": "cpu.extra_margin", "value": 15}, 612 | {"name": "cpu.low_latency", "value": true}, 613 | {"name": "mtk_gpu.min_freq", "value": 0}, 614 | {"name": "mtk_gpu.boost", "value": 0}, 615 | {"name": "mtk_gpu.extra_margin", "value": 0}, 616 | {"name": "mtk_gpu.low_latency", "value": false}, 617 | {"name": "devfreq.ddr.min_freq", "value": 0}, 618 | {"name": "devfreq.gpu.min_freq", "value": 0} 619 | ], 620 | "writeFile": [] 621 | }, 622 | "fast": { 623 | "setProperty": [ 624 | {"name": "cpu.boost", "value": 0}, 625 | {"name": "cpu.extra_margin", "value": 10}, 626 | {"name": "cpu.low_latency", "value": true}, 627 | {"name": "mtk_gpu.min_freq", "value": 0}, 628 | {"name": "mtk_gpu.boost", "value": 0}, 629 | {"name": "mtk_gpu.extra_margin", "value": 0}, 630 | {"name": "mtk_gpu.low_latency", "value": false}, 631 | {"name": "devfreq.ddr.min_freq", "value": 0}, 632 | {"name": "devfreq.gpu.min_freq", "value": 0} 633 | ], 634 | "writeFile": [] 635 | } 636 | } 637 | }, 638 | "gesture": { 639 | "durationTime": 660, 640 | "modes": { 641 | "powersave": { 642 | "setProperty": [ 643 | {"name": "cpu.boost", "value": 15}, 644 | {"name": "cpu.extra_margin", "value": 10}, 645 | {"name": "cpu.low_latency", "value": true}, 646 | {"name": "mtk_gpu.min_freq", "value": 0}, 647 | {"name": "mtk_gpu.boost", "value": 0}, 648 | {"name": "mtk_gpu.extra_margin", "value": 0}, 649 | {"name": "mtk_gpu.low_latency", "value": false}, 650 | {"name": "devfreq.ddr.min_freq", "value": 0}, 651 | {"name": "devfreq.gpu.min_freq", "value": 0} 652 | ], 653 | "writeFile": [] 654 | }, 655 | "balance": { 656 | "setProperty": [ 657 | {"name": "cpu.boost", "value": 20}, 658 | {"name": "cpu.extra_margin", "value": 20}, 659 | {"name": "cpu.low_latency", "value": true}, 660 | {"name": "mtk_gpu.min_freq", "value": 0}, 661 | {"name": "mtk_gpu.boost", "value": 0}, 662 | {"name": "mtk_gpu.extra_margin", "value": 0}, 663 | {"name": "mtk_gpu.low_latency", "value": false}, 664 | {"name": "devfreq.ddr.min_freq", "value": 0}, 665 | {"name": "devfreq.gpu.min_freq", "value": 0} 666 | ], 667 | "writeFile": [] 668 | }, 669 | "performance": { 670 | "setProperty": [ 671 | {"name": "cpu.boost", "value": 10}, 672 | {"name": "cpu.extra_margin", "value": 10}, 673 | {"name": "cpu.low_latency", "value": false}, 674 | {"name": "mtk_gpu.min_freq", "value": 0}, 675 | {"name": "mtk_gpu.boost", "value": 0}, 676 | {"name": "mtk_gpu.extra_margin", "value": 0}, 677 | {"name": "mtk_gpu.low_latency", "value": false}, 678 | {"name": "devfreq.ddr.min_freq", "value": 0}, 679 | {"name": "devfreq.gpu.min_freq", "value": 0} 680 | ], 681 | "writeFile": [] 682 | }, 683 | "fast": { 684 | "setProperty": [ 685 | {"name": "cpu.boost", "value": 10}, 686 | {"name": "cpu.extra_margin", "value": 10}, 687 | {"name": "cpu.low_latency", "value": false}, 688 | {"name": "mtk_gpu.min_freq", "value": 0}, 689 | {"name": "mtk_gpu.boost", "value": 0}, 690 | {"name": "mtk_gpu.extra_margin", "value": 0}, 691 | {"name": "mtk_gpu.low_latency", "value": false}, 692 | {"name": "devfreq.ddr.min_freq", "value": 0}, 693 | {"name": "devfreq.gpu.min_freq", "value": 0} 694 | ], 695 | "writeFile": [] 696 | } 697 | } 698 | }, 699 | "heavyload": { 700 | "durationTime": 1200, 701 | "modes": { 702 | "powersave": { 703 | "setProperty": [ 704 | {"name": "cpu.boost", "value": 0}, 705 | {"name": "cpu.extra_margin", "value": 20}, 706 | {"name": "cpu.low_latency", "value": false}, 707 | {"name": "mtk_gpu.min_freq", "value": 0}, 708 | {"name": "mtk_gpu.boost", "value": 0}, 709 | {"name": "mtk_gpu.extra_margin", "value": 0}, 710 | {"name": "mtk_gpu.low_latency", "value": false}, 711 | {"name": "devfreq.ddr.min_freq", "value": 0}, 712 | {"name": "devfreq.gpu.min_freq", "value": 0} 713 | ], 714 | "writeFile": [] 715 | }, 716 | "balance": { 717 | "setProperty": [ 718 | {"name": "cpu.boost", "value": 0}, 719 | {"name": "cpu.extra_margin", "value": 20}, 720 | {"name": "cpu.low_latency", "value": false}, 721 | {"name": "mtk_gpu.min_freq", "value": 0}, 722 | {"name": "mtk_gpu.boost", "value": 0}, 723 | {"name": "mtk_gpu.extra_margin", "value": 0}, 724 | {"name": "mtk_gpu.low_latency", "value": false}, 725 | {"name": "devfreq.ddr.min_freq", "value": 0}, 726 | {"name": "devfreq.gpu.min_freq", "value": 0} 727 | ], 728 | "writeFile": [] 729 | }, 730 | "performance": { 731 | "setProperty": [ 732 | {"name": "cpu.boost", "value": 25}, 733 | {"name": "cpu.extra_margin", "value": 20}, 734 | {"name": "cpu.low_latency", "value": true}, 735 | {"name": "mtk_gpu.min_freq", "value": 0}, 736 | {"name": "mtk_gpu.boost", "value": 0}, 737 | {"name": "mtk_gpu.extra_margin", "value": 0}, 738 | {"name": "mtk_gpu.low_latency", "value": false}, 739 | {"name": "devfreq.ddr.min_freq", "value": 0}, 740 | {"name": "devfreq.gpu.min_freq", "value": 0} 741 | ], 742 | "writeFile": [] 743 | }, 744 | "fast": { 745 | "setProperty": [ 746 | {"name": "cpu.boost", "value": 35}, 747 | {"name": "cpu.extra_margin", "value": 20}, 748 | {"name": "cpu.low_latency", "value": true}, 749 | {"name": "mtk_gpu.min_freq", "value": 0}, 750 | {"name": "mtk_gpu.boost", "value": 0}, 751 | {"name": "mtk_gpu.extra_margin", "value": 0}, 752 | {"name": "mtk_gpu.low_latency", "value": false}, 753 | {"name": "devfreq.ddr.min_freq", "value": 0}, 754 | {"name": "devfreq.gpu.min_freq", "value": 0} 755 | ], 756 | "writeFile": [] 757 | } 758 | } 759 | }, 760 | "jank": { 761 | "durationTime": 540, 762 | "modes": { 763 | "powersave": { 764 | "setProperty": [ 765 | {"name": "cpu.boost", "value": 40}, 766 | {"name": "cpu.extra_margin", "value": 0}, 767 | {"name": "cpu.low_latency", "value": true}, 768 | {"name": "mtk_gpu.min_freq", "value": 0}, 769 | {"name": "mtk_gpu.boost", "value": 0}, 770 | {"name": "mtk_gpu.extra_margin", "value": 0}, 771 | {"name": "mtk_gpu.low_latency", "value": false}, 772 | {"name": "devfreq.ddr.min_freq", "value": 0}, 773 | {"name": "devfreq.gpu.min_freq", "value": 0} 774 | ], 775 | "writeFile": [] 776 | }, 777 | "balance": { 778 | "setProperty": [ 779 | {"name": "cpu.boost", "value": 40}, 780 | {"name": "cpu.extra_margin", "value": 0}, 781 | {"name": "cpu.low_latency", "value": true}, 782 | {"name": "mtk_gpu.min_freq", "value": 0}, 783 | {"name": "mtk_gpu.boost", "value": 0}, 784 | {"name": "mtk_gpu.extra_margin", "value": 0}, 785 | {"name": "mtk_gpu.low_latency", "value": false}, 786 | {"name": "devfreq.ddr.min_freq", "value": 0}, 787 | {"name": "devfreq.gpu.min_freq", "value": 0} 788 | ], 789 | "writeFile": [] 790 | }, 791 | "performance": { 792 | "setProperty": [ 793 | {"name": "cpu.boost", "value": 45}, 794 | {"name": "cpu.extra_margin", "value": 20}, 795 | {"name": "cpu.low_latency", "value": true}, 796 | {"name": "mtk_gpu.min_freq", "value": 0}, 797 | {"name": "mtk_gpu.boost", "value": 0}, 798 | {"name": "mtk_gpu.extra_margin", "value": 0}, 799 | {"name": "mtk_gpu.low_latency", "value": false}, 800 | {"name": "devfreq.ddr.min_freq", "value": 0}, 801 | {"name": "devfreq.gpu.min_freq", "value": 0} 802 | ], 803 | "writeFile": [] 804 | }, 805 | "fast": { 806 | "setProperty": [ 807 | {"name": "cpu.boost", "value": 40}, 808 | {"name": "cpu.extra_margin", "value": 0}, 809 | {"name": "cpu.low_latency", "value": true}, 810 | {"name": "mtk_gpu.min_freq", "value": 0}, 811 | {"name": "mtk_gpu.boost", "value": 0}, 812 | {"name": "mtk_gpu.extra_margin", "value": 0}, 813 | {"name": "mtk_gpu.low_latency", "value": false}, 814 | {"name": "devfreq.ddr.min_freq", "value": 0}, 815 | {"name": "devfreq.gpu.min_freq", "value": 0} 816 | ], 817 | "writeFile": [] 818 | } 819 | } 820 | }, 821 | "bigJank": { 822 | "durationTime": 1200, 823 | "modes": { 824 | "powersave": { 825 | "setProperty": [ 826 | {"name": "cpu.boost", "value": 40}, 827 | {"name": "cpu.extra_margin", "value": 20}, 828 | {"name": "cpu.low_latency", "value": true}, 829 | {"name": "mtk_gpu.min_freq", "value": 0}, 830 | {"name": "mtk_gpu.boost", "value": 0}, 831 | {"name": "mtk_gpu.extra_margin", "value": 0}, 832 | {"name": "mtk_gpu.low_latency", "value": false}, 833 | {"name": "devfreq.ddr.min_freq", "value": 0}, 834 | {"name": "devfreq.gpu.min_freq", "value": 0} 835 | ], 836 | "writeFile": [] 837 | }, 838 | "balance": { 839 | "setProperty": [ 840 | {"name": "cpu.boost", "value": 40}, 841 | {"name": "cpu.extra_margin", "value": 20}, 842 | {"name": "cpu.low_latency", "value": true}, 843 | {"name": "mtk_gpu.min_freq", "value": 0}, 844 | {"name": "mtk_gpu.boost", "value": 0}, 845 | {"name": "mtk_gpu.extra_margin", "value": 0}, 846 | {"name": "mtk_gpu.low_latency", "value": false}, 847 | {"name": "devfreq.ddr.min_freq", "value": 0}, 848 | {"name": "devfreq.gpu.min_freq", "value": 0} 849 | ], 850 | "writeFile": [] 851 | }, 852 | "performance": { 853 | "setProperty": [ 854 | {"name": "cpu.boost", "value": 50}, 855 | {"name": "cpu.extra_margin", "value": 30}, 856 | {"name": "cpu.low_latency", "value": true}, 857 | {"name": "mtk_gpu.min_freq", "value": 0}, 858 | {"name": "mtk_gpu.boost", "value": 0}, 859 | {"name": "mtk_gpu.extra_margin", "value": 0}, 860 | {"name": "mtk_gpu.low_latency", "value": false}, 861 | {"name": "devfreq.ddr.min_freq", "value": 0}, 862 | {"name": "devfreq.gpu.min_freq", "value": 0} 863 | ], 864 | "writeFile": [] 865 | }, 866 | "fast": { 867 | "setProperty": [ 868 | {"name": "cpu.boost", "value": 40}, 869 | {"name": "cpu.extra_margin", "value": 20}, 870 | {"name": "cpu.low_latency", "value": true}, 871 | {"name": "mtk_gpu.min_freq", "value": 0}, 872 | {"name": "mtk_gpu.boost", "value": 0}, 873 | {"name": "mtk_gpu.extra_margin", "value": 0}, 874 | {"name": "mtk_gpu.low_latency", "value": false}, 875 | {"name": "devfreq.ddr.min_freq", "value": 0}, 876 | {"name": "devfreq.gpu.min_freq", "value": 0} 877 | ], 878 | "writeFile": [] 879 | } 880 | } 881 | } 882 | } 883 | }, 884 | "Thermal": { 885 | "enable": true, 886 | "params": { 887 | "interval": 500, 888 | "actionDelay": 1000, 889 | "matchRule": "*(soc|cluster|cpu|tsens_tz_sensor)*" 890 | }, 891 | "modes": { 892 | "powersave": { 893 | "actions": [ 894 | { 895 | "temp": -1, 896 | "setProperty": [ 897 | {"name": "cpu.max_power", "value": 2200}, 898 | {"name": "mtk_gpu.max_freq", "value": 600}, 899 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 900 | {"name": "devfreq.gpu.max_freq", "value": 10000} 901 | ] 902 | }, 903 | { 904 | "temp": 55, 905 | "setProperty": [ 906 | {"name": "cpu.max_power", "value": 2300}, 907 | {"name": "mtk_gpu.max_freq", "value": 10000}, 908 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 909 | {"name": "devfreq.gpu.max_freq", "value": 500} 910 | ] 911 | }, 912 | { 913 | "temp": 60, 914 | "setProperty": [ 915 | {"name": "cpu.max_power", "value": 2000}, 916 | {"name": "mtk_gpu.max_freq", "value": 10000}, 917 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 918 | {"name": "devfreq.gpu.max_freq", "value": 500} 919 | ] 920 | }, 921 | { 922 | "temp": 65, 923 | "setProperty": [ 924 | {"name": "cpu.max_power", "value": 1800}, 925 | {"name": "mtk_gpu.max_freq", "value": 10000}, 926 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 927 | {"name": "devfreq.gpu.max_freq", "value": 500} 928 | ] 929 | } 930 | ] 931 | }, 932 | "balance": { 933 | "actions": [ 934 | { 935 | "temp": -1, 936 | "setProperty": [ 937 | {"name": "cpu.max_power", "value": 3200}, 938 | {"name": "mtk_gpu.max_freq", "value": 600}, 939 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 940 | {"name": "devfreq.gpu.max_freq", "value": 10000} 941 | ] 942 | }, 943 | { 944 | "temp": 60, 945 | "setProperty": [ 946 | {"name": "cpu.max_power", "value": 3200}, 947 | {"name": "mtk_gpu.max_freq", "value": 10000}, 948 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 949 | {"name": "devfreq.gpu.max_freq", "value": 600} 950 | ] 951 | }, 952 | { 953 | "temp": 65, 954 | "setProperty": [ 955 | {"name": "cpu.max_power", "value": 3000}, 956 | {"name": "mtk_gpu.max_freq", "value": 10000}, 957 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 958 | {"name": "devfreq.gpu.max_freq", "value": 500} 959 | ] 960 | }, 961 | { 962 | "temp": 70, 963 | "setProperty": [ 964 | {"name": "cpu.max_power", "value": 2800}, 965 | {"name": "mtk_gpu.max_freq", "value": 10000}, 966 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 967 | {"name": "devfreq.gpu.max_freq", "value": 500} 968 | ] 969 | } 970 | ] 971 | }, 972 | "performance": { 973 | "actions": [ 974 | { 975 | "temp": -1, 976 | "setProperty": [ 977 | {"name": "cpu.max_power", "value": 4700}, 978 | {"name": "mtk_gpu.max_freq", "value": 800}, 979 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 980 | {"name": "devfreq.gpu.max_freq", "value": 10000} 981 | ] 982 | }, 983 | { 984 | "temp": 70, 985 | "setProperty": [ 986 | {"name": "cpu.max_power", "value": 4600}, 987 | {"name": "mtk_gpu.max_freq", "value": 10000}, 988 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 989 | {"name": "devfreq.gpu.max_freq", "value": 700} 990 | ] 991 | }, 992 | { 993 | "temp": 75, 994 | "setProperty": [ 995 | {"name": "cpu.max_power", "value": 4600}, 996 | {"name": "mtk_gpu.max_freq", "value": 10000}, 997 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 998 | {"name": "devfreq.gpu.max_freq", "value": 600} 999 | ] 1000 | }, 1001 | { 1002 | "temp": 80, 1003 | "setProperty": [ 1004 | {"name": "cpu.max_power", "value": 4500}, 1005 | {"name": "mtk_gpu.max_freq", "value": 10000}, 1006 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 1007 | {"name": "devfreq.gpu.max_freq", "value": 500} 1008 | ] 1009 | }, 1010 | { 1011 | "temp": 85, 1012 | "setProperty": [ 1013 | {"name": "cpu.max_power", "value": 4400}, 1014 | {"name": "mtk_gpu.max_freq", "value": 10000}, 1015 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 1016 | {"name": "devfreq.gpu.max_freq", "value": 500} 1017 | ] 1018 | } 1019 | ] 1020 | }, 1021 | "fast": { 1022 | "actions": [ 1023 | { 1024 | "temp": -1, 1025 | "setProperty": [ 1026 | {"name": "cpu.max_power", "value": 10000}, 1027 | {"name": "mtk_gpu.max_freq", "value": 10000}, 1028 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 1029 | {"name": "devfreq.gpu.max_freq", "value": 710} 1030 | ] 1031 | } 1032 | ] 1033 | } 1034 | } 1035 | } 1036 | } -------------------------------------------------------------------------------- /magisk/configs/sdm845.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Snapdragon845", 3 | "author": "Suni-Tritium", 4 | "configVersion": 11, 5 | "CpuGovernor": { 6 | "enable": true, 7 | "params": { 8 | "maxRateHz": 200, 9 | "minRateHz": 20, 10 | "activeDelay": 2000, 11 | "freqStep": 200 12 | }, 13 | "policies": [ 14 | { 15 | "coreNum": 4, 16 | "perfRatio": 100, 17 | "lowPowerFreq": 600, 18 | "optimalFreq": 1600, 19 | "modelType": "little-core", 20 | "modelFreq": 1800, 21 | "modelPower": 360 22 | }, 23 | { 24 | "coreNum": 4, 25 | "perfRatio": 180, 26 | "lowPowerFreq": 700, 27 | "optimalFreq": 1800, 28 | "modelType": "medium-core", 29 | "modelFreq": 2800, 30 | "modelPower": 1760 31 | } 32 | ], 33 | "modes": { 34 | "powersave": { 35 | "powerLimit": 2000, 36 | "multiLoadLimit": true, 37 | "multiLoadThres": [50, 50], 38 | "maxMargin": [10, 10], 39 | "maxLatency": [50, 55] 40 | }, 41 | "balance": { 42 | "powerLimit": 3400, 43 | "multiLoadLimit": true, 44 | "multiLoadThres": [50, 50], 45 | "maxMargin": [25, 25], 46 | "maxLatency": [40, 40] 47 | }, 48 | "performance": { 49 | "powerLimit": 4500, 50 | "multiLoadLimit": true, 51 | "multiLoadThres": [40, 45], 52 | "maxMargin": [30, 45], 53 | "maxLatency": [25, 20] 54 | }, 55 | "fast": { 56 | "powerLimit": 10000, 57 | "multiLoadLimit": false, 58 | "multiLoadThres": [50, 50], 59 | "maxMargin": [30, 30], 60 | "maxLatency": [10, 10] 61 | } 62 | } 63 | }, 64 | "ThreadSchedOpt": { 65 | "enable": true, 66 | "defaultCpus": [0, 1, 2, 3, 4, 5, 6, 7], 67 | "defaultPriority": 0, 68 | "appTypes": { 69 | "surfaceflinger": { 70 | "pkgName": "*[Ss]urface[Ff]linger*", 71 | "symbol": null 72 | }, 73 | "system_server": { 74 | "pkgName": "system_server", 75 | "symbol": null 76 | }, 77 | "unity_genshin": { 78 | "pkgName": "*(.Yuanshen|.GenshinImpact)|*.ys.*", 79 | "symbol": null 80 | }, 81 | "unity_common": { 82 | "pkgName": null, 83 | "symbol": "Unity*" 84 | }, 85 | "unreal_engine": { 86 | "pkgName": null, 87 | "symbol": "(TaskGraph|RHIThread)*" 88 | }, 89 | "minecraft": { 90 | "pkgName": null, 91 | "symbol": "MINECRAFT*" 92 | }, 93 | "neox_engine": { 94 | "pkgName": "*(.mrzh|.qrzd|.jddsaef|.lglr|.zmq|.ldxy|.s4na|.g93na|.g78na|.onmyoji|.harrypotter|.moba|.party)*", 95 | "symbol": null 96 | }, 97 | "sky_game": { 98 | "pkgName": "(com.netease.sky|com.tgc.sky)*", 99 | "symbol": null 100 | }, 101 | "native_game": { 102 | "pkgName": "*(ea.game.|gameloft.|kiloo.|sybogames.|yodo1.|rockstargames.|corrodinggames.)*", 103 | "symbol": null 104 | }, 105 | "benchmark": { 106 | "pkgName": "*[Bb]ench*|com.futuremark.*|*ioncannon.*|*.probe|*.devcheck", 107 | "symbol": null 108 | } 109 | }, 110 | "schedRules": { 111 | "DEFAULT_RULE": [ 112 | { 113 | "threadName": "MAIN_THREAD", 114 | "heavyCpus": [7], 115 | "commonCpus": [4, 5, 6], 116 | "priority": -20 117 | }, 118 | { 119 | "threadName": "*[Rr]ender*", 120 | "heavyCpus": null, 121 | "commonCpus": [4, 5, 6], 122 | "priority": -20 123 | }, 124 | { 125 | "threadName": "(GLThread|[Vv]sync|JNISurface|hwui|UiThread|ged-|mali-)*|*(.raster|.ui|.anim|.display)*", 126 | "heavyCpus": null, 127 | "commonCpus": [4, 5, 6], 128 | "priority": -12 129 | }, 130 | { 131 | "threadName": "(glide-|Fresco|[Ii]mage|[Ll]auncher)*|*([Bb]lur|[Aa]nim|[Oo]verlay|[Cc]horeographer)*", 132 | "heavyCpus": null, 133 | "commonCpus": [4, 5, 6], 134 | "priority": -12 135 | }, 136 | { 137 | "threadName": "(HWC release|GPU completion|FrameThread|FramePolicy|ScrollPolicy)*", 138 | "heavyCpus": null, 139 | "commonCpus": [0, 1, 2, 3], 140 | "priority": -20 141 | }, 142 | { 143 | "threadName": "(Vlc|[Ii][Jj][Kk])*|*([Aa]udio|[Mm]ixer|[Vv]ideo|[Pp]layer|[Mm]edia|[Cc]odec|[Dd]ecode)*", 144 | "heavyCpus": null, 145 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 146 | "priority": -16 147 | }, 148 | { 149 | "threadName": "(Chrome_|Compositor|CrGpuMain|CrRenderer|Viz|Gecko)*|*[Ww]eb[Vv]iew*", 150 | "heavyCpus": null, 151 | "commonCpus": [4, 5, 6], 152 | "priority": -12 153 | }, 154 | { 155 | "threadName": "(WeexJsBridge|libweexjsb|V8 DefaultWork|hippy.js|mqt_)*|*[Jj]ava[Ss]cript*", 156 | "heavyCpus": null, 157 | "commonCpus": [4, 5, 6], 158 | "priority": -8 159 | }, 160 | { 161 | "threadName": "*([Ww]ork|[Hh]andle|[Pp]ool|[Mm]essage|[Dd]ispatch|[Ee]xecutor|[Bb]ridge|[Cc]amera)*", 162 | "heavyCpus": null, 163 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 164 | "priority": -8 165 | }, 166 | { 167 | "threadName": "(Chronos.|CRON.|AsyncTask|Thread-|Timer-)*", 168 | "heavyCpus": null, 169 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 170 | "priority": -8 171 | }, 172 | { 173 | "threadName": "(HeapTask|HeapTrimmer|Finalizer|CleanupReferenc|GC)*", 174 | "heavyCpus": null, 175 | "commonCpus": [0, 1, 2, 3], 176 | "priority": -8 177 | }, 178 | { 179 | "threadName": "(queued-work-|Jit thread pool|Signal Catcher|Profile Saver|ReferenceQueue)*", 180 | "heavyCpus": null, 181 | "commonCpus": [0, 1, 2, 3], 182 | "priority": -8 183 | }, 184 | { 185 | "threadName": "(Moss|OkHttp|Okio|Rx|rx-)*|*([Nn]etwork|[Cc]ookie|[Ss]cheduler|[Cc]apture)*", 186 | "heavyCpus": null, 187 | "commonCpus": [0, 1, 2, 3], 188 | "priority": -8 189 | }, 190 | { 191 | "threadName": "(BLog|xlog|[Bb]ugly|BUGLY|LogThread)*|*([Cc]rash|[Ll]ogger|[Rr]eport)*", 192 | "heavyCpus": null, 193 | "commonCpus": [0, 1, 2, 3], 194 | "priority": 0 195 | }, 196 | { 197 | "threadName": "(APM-|TVKDL-|Firebase|koom|ADB-JDWP|MemoryInfra)*|*([Ww]atch[Dd]og|[Tt]racker|[Mm]onitor)*", 198 | "heavyCpus": null, 199 | "commonCpus": [0, 1, 2, 3], 200 | "priority": 0 201 | } 202 | ], 203 | "surfaceflinger": [ 204 | { 205 | "threadName": "MAIN_THREAD", 206 | "heavyCpus": null, 207 | "commonCpus": [4, 5, 6], 208 | "priority": -20 209 | }, 210 | { 211 | "threadName": "(RenderEngine|OverlayEngine|app)*", 212 | "heavyCpus": null, 213 | "commonCpus": [4, 5, 6], 214 | "priority": -20 215 | } 216 | ], 217 | "system_server": [ 218 | { 219 | "threadName": "MAIN_THREAD", 220 | "heavyCpus": null, 221 | "commonCpus": [4, 5, 6], 222 | "priority": -20 223 | }, 224 | { 225 | "threadName": "android.*", 226 | "heavyCpus": null, 227 | "commonCpus": [4, 5, 6], 228 | "priority": -20 229 | } 230 | ], 231 | "unity_genshin": [ 232 | { 233 | "threadName": "MAIN_THREAD", 234 | "heavyCpus": null, 235 | "commonCpus": [0, 1, 2, 3], 236 | "priority": -12 237 | }, 238 | { 239 | "threadName": "UnityGfx*", 240 | "heavyCpus": [7], 241 | "commonCpus": [4, 5, 6], 242 | "priority": -20 243 | }, 244 | { 245 | "threadName": "(UnityMain|UnityMulti|UnityPreload|UnityChoreograp|UnityCCeograp)*", 246 | "heavyCpus": null, 247 | "commonCpus": [4, 5, 6], 248 | "priority": -12 249 | }, 250 | { 251 | "threadName": "FMOD*|*(Audio|Media)*", 252 | "heavyCpus": null, 253 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 254 | "priority": -16 255 | }, 256 | { 257 | "threadName": "(Worker Thread|Job.Worker|NativeThread|IL2CPP|CoreThread|Thread-)*", 258 | "heavyCpus": null, 259 | "commonCpus": [4, 5, 6], 260 | "priority": -12 261 | } 262 | ], 263 | "unity_common": [ 264 | { 265 | "threadName": "MAIN_THREAD", 266 | "heavyCpus": null, 267 | "commonCpus": [0, 1, 2, 3], 268 | "priority": -12 269 | }, 270 | { 271 | "threadName": "UnityMain*", 272 | "heavyCpus": [7], 273 | "commonCpus": [4, 5, 6], 274 | "priority": -20 275 | }, 276 | { 277 | "threadName": "(UnityGfx|UnityMulti|UnityPreload|UnityChoreograp|UnityCCeograp)*", 278 | "heavyCpus": null, 279 | "commonCpus": [4, 5, 6], 280 | "priority": -20 281 | }, 282 | { 283 | "threadName": "FMOD*|*(Audio|Media)*", 284 | "heavyCpus": null, 285 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 286 | "priority": -16 287 | }, 288 | { 289 | "threadName": "(Worker Thread|Job.Worker|NativeThread|IL2CPP|ace_worker|Apollo-|CoreThread|Thread-)*", 290 | "heavyCpus": null, 291 | "commonCpus": [4, 5, 6], 292 | "priority": -12 293 | } 294 | ], 295 | "unreal_engine": [ 296 | { 297 | "threadName": "MAIN_THREAD", 298 | "heavyCpus": null, 299 | "commonCpus": [4, 5, 6], 300 | "priority": -12 301 | }, 302 | { 303 | "threadName": "(RenderThread|GameThread|RHIThread)*", 304 | "heavyCpus": [7], 305 | "commonCpus": [4, 5, 6], 306 | "priority": -20 307 | }, 308 | { 309 | "threadName": "(TaskGraph|CmpJob|Apollo-|glp|glt|NativeThread|SDLThread|Thread-)*", 310 | "heavyCpus": null, 311 | "commonCpus": [4, 5, 6], 312 | "priority": -12 313 | }, 314 | { 315 | "threadName": "FMOD*|*(Audio|Media)*", 316 | "heavyCpus": null, 317 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 318 | "priority": -16 319 | } 320 | ], 321 | "minecraft": [ 322 | { 323 | "threadName": "MAIN_THREAD", 324 | "heavyCpus": null, 325 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 326 | "priority": -12 327 | }, 328 | { 329 | "threadName": "(Rendering Pool|MINECRAFT)*", 330 | "heavyCpus": [7], 331 | "commonCpus": [4, 5, 6], 332 | "priority": -20 333 | }, 334 | { 335 | "threadName": "Thread-*", 336 | "heavyCpus": null, 337 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 338 | "priority": -8 339 | }, 340 | { 341 | "threadName": "FMOD*|*(Audio|Media)*", 342 | "heavyCpus": null, 343 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 344 | "priority": -16 345 | } 346 | ], 347 | "neox_engine": [ 348 | { 349 | "threadName": "MAIN_THREAD", 350 | "heavyCpus": null, 351 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 352 | "priority": -12 353 | }, 354 | { 355 | "threadName": "(MainThread|Thread-)*", 356 | "heavyCpus": [7], 357 | "commonCpus": [4, 5, 6], 358 | "priority": -20 359 | }, 360 | { 361 | "threadName": "(IO|Compute|Resource|NativeThread)*", 362 | "heavyCpus": null, 363 | "commonCpus": [4, 5, 6], 364 | "priority": -12 365 | } 366 | ], 367 | "sky_game": [ 368 | { 369 | "threadName": "MAIN_THREAD", 370 | "heavyCpus": null, 371 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 372 | "priority": -12 373 | }, 374 | { 375 | "threadName": "(MainThread|Program Thread)*", 376 | "heavyCpus": [7], 377 | "commonCpus": [4, 5, 6], 378 | "priority": -20 379 | }, 380 | { 381 | "threadName": "(JobThread|Thread-)*", 382 | "heavyCpus": null, 383 | "commonCpus": [4, 5, 6], 384 | "priority": -12 385 | } 386 | ], 387 | "native_game": [ 388 | { 389 | "threadName": "MAIN_THREAD", 390 | "heavyCpus": null, 391 | "commonCpus": [4, 5, 6], 392 | "priority": -12 393 | }, 394 | { 395 | "threadName": "(Thread-|GameThread|NativeThread|MainThread|RenderThread)*", 396 | "heavyCpus": [7], 397 | "commonCpus": [4, 5, 6], 398 | "priority": -20 399 | }, 400 | { 401 | "threadName": "(GLThread|FMOD)*|*(Audio|Media)*", 402 | "heavyCpus": null, 403 | "commonCpus": [4, 5, 6], 404 | "priority": -16 405 | } 406 | ], 407 | "benchmark": [] 408 | } 409 | }, 410 | "MtkGpuGovernor": { 411 | "enable": false 412 | }, 413 | "DevfreqTuner": { 414 | "enable": false 415 | }, 416 | "Trigger": { 417 | "enable": true, 418 | "scenes": { 419 | "init": { 420 | "setProperty": [], 421 | "writeFile": [ 422 | {"path": "/dev/cpuset/restricted/cpus", "text": "0-3"}, 423 | {"path": "/dev/cpuset/system-background/cpus", "text": "0-3"}, 424 | {"path": "/dev/cpuset/background/cpus", "text": "0-3"}, 425 | {"path": "/dev/cpuset/foreground/cpus", "text": "0-7"}, 426 | {"path": "/dev/cpuset/top-app/cpus", "text": "0-7"} 427 | ] 428 | }, 429 | "screenOn": { 430 | "setProperty": [], 431 | "writeFile": [] 432 | }, 433 | "screenOff": { 434 | "setProperty": [], 435 | "writeFile": [] 436 | }, 437 | "powersaveMode": { 438 | "setProperty": [], 439 | "writeFile": [] 440 | }, 441 | "balanceMode": { 442 | "setProperty": [], 443 | "writeFile": [] 444 | }, 445 | "performanceMode": { 446 | "setProperty": [], 447 | "writeFile": [] 448 | }, 449 | "fastMode": { 450 | "setProperty": [], 451 | "writeFile": [] 452 | } 453 | }, 454 | "hints": { 455 | "none": { 456 | "durationTime": 0, 457 | "modes": { 458 | "powersave": { 459 | "setProperty": [ 460 | {"name": "cpu.boost", "value": 0}, 461 | {"name": "cpu.extra_margin", "value": 0}, 462 | {"name": "cpu.low_latency", "value": false}, 463 | {"name": "mtk_gpu.min_freq", "value": 0}, 464 | {"name": "mtk_gpu.boost", "value": 0}, 465 | {"name": "mtk_gpu.extra_margin", "value": 0}, 466 | {"name": "mtk_gpu.low_latency", "value": false}, 467 | {"name": "devfreq.ddr.min_freq", "value": 0}, 468 | {"name": "devfreq.gpu.min_freq", "value": 0} 469 | ], 470 | "writeFile": [] 471 | }, 472 | "balance": { 473 | "setProperty": [ 474 | {"name": "cpu.boost", "value": 0}, 475 | {"name": "cpu.extra_margin", "value": 0}, 476 | {"name": "cpu.low_latency", "value": false}, 477 | {"name": "mtk_gpu.min_freq", "value": 0}, 478 | {"name": "mtk_gpu.boost", "value": 0}, 479 | {"name": "mtk_gpu.extra_margin", "value": 0}, 480 | {"name": "mtk_gpu.low_latency", "value": false}, 481 | {"name": "devfreq.ddr.min_freq", "value": 0}, 482 | {"name": "devfreq.gpu.min_freq", "value": 0} 483 | ], 484 | "writeFile": [] 485 | }, 486 | "performance": { 487 | "setProperty": [ 488 | {"name": "cpu.boost", "value": 0}, 489 | {"name": "cpu.extra_margin", "value": 0}, 490 | {"name": "cpu.low_latency", "value": false}, 491 | {"name": "mtk_gpu.min_freq", "value": 0}, 492 | {"name": "mtk_gpu.boost", "value": 0}, 493 | {"name": "mtk_gpu.extra_margin", "value": 0}, 494 | {"name": "mtk_gpu.low_latency", "value": false}, 495 | {"name": "devfreq.ddr.min_freq", "value": 0}, 496 | {"name": "devfreq.gpu.min_freq", "value": 0} 497 | ], 498 | "writeFile": [] 499 | }, 500 | "fast": { 501 | "setProperty": [ 502 | {"name": "cpu.boost", "value": 0}, 503 | {"name": "cpu.extra_margin", "value": 0}, 504 | {"name": "cpu.low_latency", "value": false}, 505 | {"name": "mtk_gpu.min_freq", "value": 0}, 506 | {"name": "mtk_gpu.boost", "value": 0}, 507 | {"name": "mtk_gpu.extra_margin", "value": 0}, 508 | {"name": "mtk_gpu.low_latency", "value": false}, 509 | {"name": "devfreq.ddr.min_freq", "value": 0}, 510 | {"name": "devfreq.gpu.min_freq", "value": 0} 511 | ], 512 | "writeFile": [] 513 | } 514 | } 515 | }, 516 | "tap": { 517 | "durationTime": 360, 518 | "modes": { 519 | "powersave": { 520 | "setProperty": [ 521 | {"name": "cpu.boost", "value": 10}, 522 | {"name": "cpu.extra_margin", "value": 10}, 523 | {"name": "cpu.low_latency", "value": true}, 524 | {"name": "mtk_gpu.min_freq", "value": 0}, 525 | {"name": "mtk_gpu.boost", "value": 0}, 526 | {"name": "mtk_gpu.extra_margin", "value": 0}, 527 | {"name": "mtk_gpu.low_latency", "value": false}, 528 | {"name": "devfreq.ddr.min_freq", "value": 0}, 529 | {"name": "devfreq.gpu.min_freq", "value": 0} 530 | ], 531 | "writeFile": [] 532 | }, 533 | "balance": { 534 | "setProperty": [ 535 | {"name": "cpu.boost", "value": 15}, 536 | {"name": "cpu.extra_margin", "value": 15}, 537 | {"name": "cpu.low_latency", "value": true}, 538 | {"name": "mtk_gpu.min_freq", "value": 0}, 539 | {"name": "mtk_gpu.boost", "value": 0}, 540 | {"name": "mtk_gpu.extra_margin", "value": 0}, 541 | {"name": "mtk_gpu.low_latency", "value": false}, 542 | {"name": "devfreq.ddr.min_freq", "value": 0}, 543 | {"name": "devfreq.gpu.min_freq", "value": 0} 544 | ], 545 | "writeFile": [] 546 | }, 547 | "performance": { 548 | "setProperty": [ 549 | {"name": "cpu.boost", "value": 20}, 550 | {"name": "cpu.extra_margin", "value": 10}, 551 | {"name": "cpu.low_latency", "value": true}, 552 | {"name": "mtk_gpu.min_freq", "value": 0}, 553 | {"name": "mtk_gpu.boost", "value": 0}, 554 | {"name": "mtk_gpu.extra_margin", "value": 0}, 555 | {"name": "mtk_gpu.low_latency", "value": false}, 556 | {"name": "devfreq.ddr.min_freq", "value": 0}, 557 | {"name": "devfreq.gpu.min_freq", "value": 0} 558 | ], 559 | "writeFile": [] 560 | }, 561 | "fast": { 562 | "setProperty": [ 563 | {"name": "cpu.boost", "value": 20}, 564 | {"name": "cpu.extra_margin", "value": 0}, 565 | {"name": "cpu.low_latency", "value": true}, 566 | {"name": "mtk_gpu.min_freq", "value": 0}, 567 | {"name": "mtk_gpu.boost", "value": 0}, 568 | {"name": "mtk_gpu.extra_margin", "value": 0}, 569 | {"name": "mtk_gpu.low_latency", "value": false}, 570 | {"name": "devfreq.ddr.min_freq", "value": 0}, 571 | {"name": "devfreq.gpu.min_freq", "value": 0} 572 | ], 573 | "writeFile": [] 574 | } 575 | } 576 | }, 577 | "swipe": { 578 | "durationTime": 560, 579 | "modes": { 580 | "powersave": { 581 | "setProperty": [ 582 | {"name": "cpu.boost", "value": 15}, 583 | {"name": "cpu.extra_margin", "value": 10}, 584 | {"name": "cpu.low_latency", "value": true}, 585 | {"name": "mtk_gpu.min_freq", "value": 0}, 586 | {"name": "mtk_gpu.boost", "value": 0}, 587 | {"name": "mtk_gpu.extra_margin", "value": 0}, 588 | {"name": "mtk_gpu.low_latency", "value": false}, 589 | {"name": "devfreq.ddr.min_freq", "value": 0}, 590 | {"name": "devfreq.gpu.min_freq", "value": 0} 591 | ], 592 | "writeFile": [] 593 | }, 594 | "balance": { 595 | "setProperty": [ 596 | {"name": "cpu.boost", "value": 15}, 597 | {"name": "cpu.extra_margin", "value": 15}, 598 | {"name": "cpu.low_latency", "value": true}, 599 | {"name": "mtk_gpu.min_freq", "value": 0}, 600 | {"name": "mtk_gpu.boost", "value": 0}, 601 | {"name": "mtk_gpu.extra_margin", "value": 0}, 602 | {"name": "mtk_gpu.low_latency", "value": false}, 603 | {"name": "devfreq.ddr.min_freq", "value": 0}, 604 | {"name": "devfreq.gpu.min_freq", "value": 0} 605 | ], 606 | "writeFile": [] 607 | }, 608 | "performance": { 609 | "setProperty": [ 610 | {"name": "cpu.boost", "value": 15}, 611 | {"name": "cpu.extra_margin", "value": 15}, 612 | {"name": "cpu.low_latency", "value": true}, 613 | {"name": "mtk_gpu.min_freq", "value": 0}, 614 | {"name": "mtk_gpu.boost", "value": 0}, 615 | {"name": "mtk_gpu.extra_margin", "value": 0}, 616 | {"name": "mtk_gpu.low_latency", "value": false}, 617 | {"name": "devfreq.ddr.min_freq", "value": 0}, 618 | {"name": "devfreq.gpu.min_freq", "value": 0} 619 | ], 620 | "writeFile": [] 621 | }, 622 | "fast": { 623 | "setProperty": [ 624 | {"name": "cpu.boost", "value": 0}, 625 | {"name": "cpu.extra_margin", "value": 10}, 626 | {"name": "cpu.low_latency", "value": true}, 627 | {"name": "mtk_gpu.min_freq", "value": 0}, 628 | {"name": "mtk_gpu.boost", "value": 0}, 629 | {"name": "mtk_gpu.extra_margin", "value": 0}, 630 | {"name": "mtk_gpu.low_latency", "value": false}, 631 | {"name": "devfreq.ddr.min_freq", "value": 0}, 632 | {"name": "devfreq.gpu.min_freq", "value": 0} 633 | ], 634 | "writeFile": [] 635 | } 636 | } 637 | }, 638 | "gesture": { 639 | "durationTime": 640, 640 | "modes": { 641 | "powersave": { 642 | "setProperty": [ 643 | {"name": "cpu.boost", "value": 15}, 644 | {"name": "cpu.extra_margin", "value": 10}, 645 | {"name": "cpu.low_latency", "value": true}, 646 | {"name": "mtk_gpu.min_freq", "value": 0}, 647 | {"name": "mtk_gpu.boost", "value": 0}, 648 | {"name": "mtk_gpu.extra_margin", "value": 0}, 649 | {"name": "mtk_gpu.low_latency", "value": false}, 650 | {"name": "devfreq.ddr.min_freq", "value": 0}, 651 | {"name": "devfreq.gpu.min_freq", "value": 0} 652 | ], 653 | "writeFile": [] 654 | }, 655 | "balance": { 656 | "setProperty": [ 657 | {"name": "cpu.boost", "value": 20}, 658 | {"name": "cpu.extra_margin", "value": 20}, 659 | {"name": "cpu.low_latency", "value": true}, 660 | {"name": "mtk_gpu.min_freq", "value": 0}, 661 | {"name": "mtk_gpu.boost", "value": 0}, 662 | {"name": "mtk_gpu.extra_margin", "value": 0}, 663 | {"name": "mtk_gpu.low_latency", "value": false}, 664 | {"name": "devfreq.ddr.min_freq", "value": 0}, 665 | {"name": "devfreq.gpu.min_freq", "value": 0} 666 | ], 667 | "writeFile": [] 668 | }, 669 | "performance": { 670 | "setProperty": [ 671 | {"name": "cpu.boost", "value": 10}, 672 | {"name": "cpu.extra_margin", "value": 10}, 673 | {"name": "cpu.low_latency", "value": false}, 674 | {"name": "mtk_gpu.min_freq", "value": 0}, 675 | {"name": "mtk_gpu.boost", "value": 0}, 676 | {"name": "mtk_gpu.extra_margin", "value": 0}, 677 | {"name": "mtk_gpu.low_latency", "value": false}, 678 | {"name": "devfreq.ddr.min_freq", "value": 0}, 679 | {"name": "devfreq.gpu.min_freq", "value": 0} 680 | ], 681 | "writeFile": [] 682 | }, 683 | "fast": { 684 | "setProperty": [ 685 | {"name": "cpu.boost", "value": 10}, 686 | {"name": "cpu.extra_margin", "value": 10}, 687 | {"name": "cpu.low_latency", "value": false}, 688 | {"name": "mtk_gpu.min_freq", "value": 0}, 689 | {"name": "mtk_gpu.boost", "value": 0}, 690 | {"name": "mtk_gpu.extra_margin", "value": 0}, 691 | {"name": "mtk_gpu.low_latency", "value": false}, 692 | {"name": "devfreq.ddr.min_freq", "value": 0}, 693 | {"name": "devfreq.gpu.min_freq", "value": 0} 694 | ], 695 | "writeFile": [] 696 | } 697 | } 698 | }, 699 | "heavyload": { 700 | "durationTime": 1200, 701 | "modes": { 702 | "powersave": { 703 | "setProperty": [ 704 | {"name": "cpu.boost", "value": 0}, 705 | {"name": "cpu.extra_margin", "value": 20}, 706 | {"name": "cpu.low_latency", "value": false}, 707 | {"name": "mtk_gpu.min_freq", "value": 0}, 708 | {"name": "mtk_gpu.boost", "value": 0}, 709 | {"name": "mtk_gpu.extra_margin", "value": 0}, 710 | {"name": "mtk_gpu.low_latency", "value": false}, 711 | {"name": "devfreq.ddr.min_freq", "value": 0}, 712 | {"name": "devfreq.gpu.min_freq", "value": 0} 713 | ], 714 | "writeFile": [] 715 | }, 716 | "balance": { 717 | "setProperty": [ 718 | {"name": "cpu.boost", "value": 0}, 719 | {"name": "cpu.extra_margin", "value": 20}, 720 | {"name": "cpu.low_latency", "value": false}, 721 | {"name": "mtk_gpu.min_freq", "value": 0}, 722 | {"name": "mtk_gpu.boost", "value": 0}, 723 | {"name": "mtk_gpu.extra_margin", "value": 0}, 724 | {"name": "mtk_gpu.low_latency", "value": false}, 725 | {"name": "devfreq.ddr.min_freq", "value": 0}, 726 | {"name": "devfreq.gpu.min_freq", "value": 0} 727 | ], 728 | "writeFile": [] 729 | }, 730 | "performance": { 731 | "setProperty": [ 732 | {"name": "cpu.boost", "value": 25}, 733 | {"name": "cpu.extra_margin", "value": 20}, 734 | {"name": "cpu.low_latency", "value": true}, 735 | {"name": "mtk_gpu.min_freq", "value": 0}, 736 | {"name": "mtk_gpu.boost", "value": 0}, 737 | {"name": "mtk_gpu.extra_margin", "value": 0}, 738 | {"name": "mtk_gpu.low_latency", "value": false}, 739 | {"name": "devfreq.ddr.min_freq", "value": 0}, 740 | {"name": "devfreq.gpu.min_freq", "value": 0} 741 | ], 742 | "writeFile": [] 743 | }, 744 | "fast": { 745 | "setProperty": [ 746 | {"name": "cpu.boost", "value": 35}, 747 | {"name": "cpu.extra_margin", "value": 20}, 748 | {"name": "cpu.low_latency", "value": true}, 749 | {"name": "mtk_gpu.min_freq", "value": 0}, 750 | {"name": "mtk_gpu.boost", "value": 0}, 751 | {"name": "mtk_gpu.extra_margin", "value": 0}, 752 | {"name": "mtk_gpu.low_latency", "value": false}, 753 | {"name": "devfreq.ddr.min_freq", "value": 0}, 754 | {"name": "devfreq.gpu.min_freq", "value": 0} 755 | ], 756 | "writeFile": [] 757 | } 758 | } 759 | }, 760 | "jank": { 761 | "durationTime": 540, 762 | "modes": { 763 | "powersave": { 764 | "setProperty": [ 765 | {"name": "cpu.boost", "value": 40}, 766 | {"name": "cpu.extra_margin", "value": 10}, 767 | {"name": "cpu.low_latency", "value": true}, 768 | {"name": "mtk_gpu.min_freq", "value": 0}, 769 | {"name": "mtk_gpu.boost", "value": 0}, 770 | {"name": "mtk_gpu.extra_margin", "value": 0}, 771 | {"name": "mtk_gpu.low_latency", "value": false}, 772 | {"name": "devfreq.ddr.min_freq", "value": 0}, 773 | {"name": "devfreq.gpu.min_freq", "value": 0} 774 | ], 775 | "writeFile": [] 776 | }, 777 | "balance": { 778 | "setProperty": [ 779 | {"name": "cpu.boost", "value": 40}, 780 | {"name": "cpu.extra_margin", "value": 10}, 781 | {"name": "cpu.low_latency", "value": true}, 782 | {"name": "mtk_gpu.min_freq", "value": 0}, 783 | {"name": "mtk_gpu.boost", "value": 0}, 784 | {"name": "mtk_gpu.extra_margin", "value": 0}, 785 | {"name": "mtk_gpu.low_latency", "value": false}, 786 | {"name": "devfreq.ddr.min_freq", "value": 0}, 787 | {"name": "devfreq.gpu.min_freq", "value": 0} 788 | ], 789 | "writeFile": [] 790 | }, 791 | "performance": { 792 | "setProperty": [ 793 | {"name": "cpu.boost", "value": 45}, 794 | {"name": "cpu.extra_margin", "value": 20}, 795 | {"name": "cpu.low_latency", "value": true}, 796 | {"name": "mtk_gpu.min_freq", "value": 0}, 797 | {"name": "mtk_gpu.boost", "value": 0}, 798 | {"name": "mtk_gpu.extra_margin", "value": 0}, 799 | {"name": "mtk_gpu.low_latency", "value": false}, 800 | {"name": "devfreq.ddr.min_freq", "value": 0}, 801 | {"name": "devfreq.gpu.min_freq", "value": 0} 802 | ], 803 | "writeFile": [] 804 | }, 805 | "fast": { 806 | "setProperty": [ 807 | {"name": "cpu.boost", "value": 40}, 808 | {"name": "cpu.extra_margin", "value": 0}, 809 | {"name": "cpu.low_latency", "value": true}, 810 | {"name": "mtk_gpu.min_freq", "value": 0}, 811 | {"name": "mtk_gpu.boost", "value": 0}, 812 | {"name": "mtk_gpu.extra_margin", "value": 0}, 813 | {"name": "mtk_gpu.low_latency", "value": false}, 814 | {"name": "devfreq.ddr.min_freq", "value": 0}, 815 | {"name": "devfreq.gpu.min_freq", "value": 0} 816 | ], 817 | "writeFile": [] 818 | } 819 | } 820 | }, 821 | "bigJank": { 822 | "durationTime": 1200, 823 | "modes": { 824 | "powersave": { 825 | "setProperty": [ 826 | {"name": "cpu.boost", "value": 40}, 827 | {"name": "cpu.extra_margin", "value": 20}, 828 | {"name": "cpu.low_latency", "value": true}, 829 | {"name": "mtk_gpu.min_freq", "value": 0}, 830 | {"name": "mtk_gpu.boost", "value": 0}, 831 | {"name": "mtk_gpu.extra_margin", "value": 0}, 832 | {"name": "mtk_gpu.low_latency", "value": false}, 833 | {"name": "devfreq.ddr.min_freq", "value": 0}, 834 | {"name": "devfreq.gpu.min_freq", "value": 0} 835 | ], 836 | "writeFile": [] 837 | }, 838 | "balance": { 839 | "setProperty": [ 840 | {"name": "cpu.boost", "value": 40}, 841 | {"name": "cpu.extra_margin", "value": 20}, 842 | {"name": "cpu.low_latency", "value": true}, 843 | {"name": "mtk_gpu.min_freq", "value": 0}, 844 | {"name": "mtk_gpu.boost", "value": 0}, 845 | {"name": "mtk_gpu.extra_margin", "value": 0}, 846 | {"name": "mtk_gpu.low_latency", "value": false}, 847 | {"name": "devfreq.ddr.min_freq", "value": 0}, 848 | {"name": "devfreq.gpu.min_freq", "value": 0} 849 | ], 850 | "writeFile": [] 851 | }, 852 | "performance": { 853 | "setProperty": [ 854 | {"name": "cpu.boost", "value": 50}, 855 | {"name": "cpu.extra_margin", "value": 30}, 856 | {"name": "cpu.low_latency", "value": true}, 857 | {"name": "mtk_gpu.min_freq", "value": 0}, 858 | {"name": "mtk_gpu.boost", "value": 0}, 859 | {"name": "mtk_gpu.extra_margin", "value": 0}, 860 | {"name": "mtk_gpu.low_latency", "value": false}, 861 | {"name": "devfreq.ddr.min_freq", "value": 0}, 862 | {"name": "devfreq.gpu.min_freq", "value": 0} 863 | ], 864 | "writeFile": [] 865 | }, 866 | "fast": { 867 | "setProperty": [ 868 | {"name": "cpu.boost", "value": 40}, 869 | {"name": "cpu.extra_margin", "value": 20}, 870 | {"name": "cpu.low_latency", "value": true}, 871 | {"name": "mtk_gpu.min_freq", "value": 0}, 872 | {"name": "mtk_gpu.boost", "value": 0}, 873 | {"name": "mtk_gpu.extra_margin", "value": 0}, 874 | {"name": "mtk_gpu.low_latency", "value": false}, 875 | {"name": "devfreq.ddr.min_freq", "value": 0}, 876 | {"name": "devfreq.gpu.min_freq", "value": 0} 877 | ], 878 | "writeFile": [] 879 | } 880 | } 881 | } 882 | } 883 | }, 884 | "Thermal": { 885 | "enable": true, 886 | "params": { 887 | "interval": 500, 888 | "actionDelay": 1000, 889 | "matchRule": "*(soc|cluster|cpu|tsens_tz_sensor)*" 890 | }, 891 | "modes": { 892 | "powersave": { 893 | "actions": [ 894 | { 895 | "temp": -1, 896 | "setProperty": [ 897 | {"name": "cpu.max_power", "value": 2200}, 898 | {"name": "mtk_gpu.max_freq", "value": 600}, 899 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 900 | {"name": "devfreq.gpu.max_freq", "value": 10000} 901 | ] 902 | }, 903 | { 904 | "temp": 65, 905 | "setProperty": [ 906 | {"name": "cpu.max_power", "value": 2200}, 907 | {"name": "mtk_gpu.max_freq", "value": 10000}, 908 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 909 | {"name": "devfreq.gpu.max_freq", "value": 500} 910 | ] 911 | }, 912 | { 913 | "temp": 70, 914 | "setProperty": [ 915 | {"name": "cpu.max_power", "value": 2000}, 916 | {"name": "mtk_gpu.max_freq", "value": 10000}, 917 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 918 | {"name": "devfreq.gpu.max_freq", "value": 500} 919 | ] 920 | }, 921 | { 922 | "temp": 75, 923 | "setProperty": [ 924 | {"name": "cpu.max_power", "value": 1800}, 925 | {"name": "mtk_gpu.max_freq", "value": 10000}, 926 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 927 | {"name": "devfreq.gpu.max_freq", "value": 500} 928 | ] 929 | } 930 | ] 931 | }, 932 | "balance": { 933 | "actions": [ 934 | { 935 | "temp": -1, 936 | "setProperty": [ 937 | {"name": "cpu.max_power", "value": 3200}, 938 | {"name": "mtk_gpu.max_freq", "value": 600}, 939 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 940 | {"name": "devfreq.gpu.max_freq", "value": 10000} 941 | ] 942 | }, 943 | { 944 | "temp": 60, 945 | "setProperty": [ 946 | {"name": "cpu.max_power", "value": 3200}, 947 | {"name": "mtk_gpu.max_freq", "value": 10000}, 948 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 949 | {"name": "devfreq.gpu.max_freq", "value": 600} 950 | ] 951 | }, 952 | { 953 | "temp": 65, 954 | "setProperty": [ 955 | {"name": "cpu.max_power", "value": 3000}, 956 | {"name": "mtk_gpu.max_freq", "value": 10000}, 957 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 958 | {"name": "devfreq.gpu.max_freq", "value": 500} 959 | ] 960 | }, 961 | { 962 | "temp": 70, 963 | "setProperty": [ 964 | {"name": "cpu.max_power", "value": 2800}, 965 | {"name": "mtk_gpu.max_freq", "value": 10000}, 966 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 967 | {"name": "devfreq.gpu.max_freq", "value": 500} 968 | ] 969 | } 970 | ] 971 | }, 972 | "performance": { 973 | "actions": [ 974 | { 975 | "temp": -1, 976 | "setProperty": [ 977 | {"name": "cpu.max_power", "value": 4600}, 978 | {"name": "mtk_gpu.max_freq", "value": 800}, 979 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 980 | {"name": "devfreq.gpu.max_freq", "value": 10000} 981 | ] 982 | }, 983 | { 984 | "temp": 60, 985 | "setProperty": [ 986 | {"name": "cpu.max_power", "value": 5000}, 987 | {"name": "mtk_gpu.max_freq", "value": 10000}, 988 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 989 | {"name": "devfreq.gpu.max_freq", "value": 700} 990 | ] 991 | }, 992 | { 993 | "temp": 65, 994 | "setProperty": [ 995 | {"name": "cpu.max_power", "value": 4800}, 996 | {"name": "mtk_gpu.max_freq", "value": 10000}, 997 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 998 | {"name": "devfreq.gpu.max_freq", "value": 600} 999 | ] 1000 | }, 1001 | { 1002 | "temp": 70, 1003 | "setProperty": [ 1004 | {"name": "cpu.max_power", "value": 4600}, 1005 | {"name": "mtk_gpu.max_freq", "value": 10000}, 1006 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 1007 | {"name": "devfreq.gpu.max_freq", "value": 500} 1008 | ] 1009 | }, 1010 | { 1011 | "temp": 75, 1012 | "setProperty": [ 1013 | {"name": "cpu.max_power", "value": 4400}, 1014 | {"name": "mtk_gpu.max_freq", "value": 10000}, 1015 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 1016 | {"name": "devfreq.gpu.max_freq", "value": 500} 1017 | ] 1018 | } 1019 | ] 1020 | }, 1021 | "fast": { 1022 | "actions": [ 1023 | { 1024 | "temp": -1, 1025 | "setProperty": [ 1026 | {"name": "cpu.max_power", "value": 10000}, 1027 | {"name": "mtk_gpu.max_freq", "value": 10000}, 1028 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 1029 | {"name": "devfreq.gpu.max_freq", "value": 710} 1030 | ] 1031 | } 1032 | ] 1033 | } 1034 | } 1035 | } 1036 | } -------------------------------------------------------------------------------- /magisk/configs/sdm8gen2.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Snapdragon8Gen2", 3 | "author": "Suni-Tritium", 4 | "configVersion": 11, 5 | "CpuGovernor": { 6 | "enable": true, 7 | "params": { 8 | "maxRateHz": 200, 9 | "minRateHz": 20, 10 | "activeDelay": 2000, 11 | "freqStep": 200 12 | }, 13 | "policies": [ 14 | { 15 | "coreNum": 3, 16 | "perfRatio": 120, 17 | "lowPowerFreq": 500, 18 | "optimalFreq": 1400, 19 | "modelType": "little-core", 20 | "modelFreq": 2020, 21 | "modelPower": 500 22 | }, 23 | { 24 | "coreNum": 4, 25 | "perfRatio": 330, 26 | "lowPowerFreq": 600, 27 | "optimalFreq": 1800, 28 | "modelType": "medium-core", 29 | "modelFreq": 2800, 30 | "modelPower": 1800 31 | }, 32 | { 33 | "coreNum": 1, 34 | "perfRatio": 460, 35 | "lowPowerFreq": 700, 36 | "optimalFreq": 2000, 37 | "modelType": "big-core", 38 | "modelFreq": 3190, 39 | "modelPower": 3880 40 | } 41 | ], 42 | "modes": { 43 | "powersave": { 44 | "powerLimit": 2000, 45 | "multiLoadLimit": true, 46 | "multiLoadThres": [40, 40, 40], 47 | "maxMargin": [10, 10, 10], 48 | "maxLatency": [50, 50, 60] 49 | }, 50 | "balance": { 51 | "powerLimit": 3000, 52 | "multiLoadLimit": true, 53 | "multiLoadThres": [40, 40, 40], 54 | "maxMargin": [10, 15, 25], 55 | "maxLatency": [45, 45, 50] 56 | }, 57 | "performance": { 58 | "powerLimit": 4500, 59 | "multiLoadLimit": false, 60 | "multiLoadThres": [50, 50, 50], 61 | "maxMargin": [20, 30, 35], 62 | "maxLatency": [55, 40, 40] 63 | }, 64 | "fast": { 65 | "powerLimit": 10000, 66 | "multiLoadLimit": false, 67 | "multiLoadThres": [50, 50, 50], 68 | "maxMargin": [30, 30, 30], 69 | "maxLatency": [10, 10, 10] 70 | } 71 | } 72 | }, 73 | "ThreadSchedOpt": { 74 | "enable": true, 75 | "defaultCpus": [0, 1, 2, 3, 4, 5, 6, 7], 76 | "defaultPriority": 0, 77 | "appTypes": { 78 | "surfaceflinger": { 79 | "pkgName": null, 80 | "symbol": "[Ss]urface[Ff]linger*" 81 | }, 82 | "system_server": { 83 | "pkgName": "system_server", 84 | "symbol": null 85 | }, 86 | "unity_genshin": { 87 | "pkgName": "*(.Yuanshen|.GenshinImpact)|*.ys.*", 88 | "symbol": null 89 | }, 90 | "unity_common": { 91 | "pkgName": null, 92 | "symbol": "Unity*" 93 | }, 94 | "unreal_engine": { 95 | "pkgName": null, 96 | "symbol": "(TaskGraph|RHIThread)*" 97 | }, 98 | "minecraft": { 99 | "pkgName": null, 100 | "symbol": "MINECRAFT*" 101 | }, 102 | "neox_engine": { 103 | "pkgName": "*(.mrzh|.qrzd|.jddsaef|.lglr|.zmq|.ldxy|.s4na|.g93na|.g78na|.onmyoji|.harrypotter|.moba|.party)*", 104 | "symbol": null 105 | }, 106 | "sky_game": { 107 | "pkgName": "(com.netease.sky|com.tgc.sky)*", 108 | "symbol": null 109 | }, 110 | "native_game": { 111 | "pkgName": "*(ea.game.|gameloft.|kiloo.|sybogames.|yodo1.|rockstargames.|corrodinggames.)*", 112 | "symbol": null 113 | }, 114 | "benchmark": { 115 | "pkgName": "*[Bb]ench*|com.futuremark.*|*ioncannon.*|*.probe|*.devcheck", 116 | "symbol": null 117 | } 118 | }, 119 | "schedRules": { 120 | "DEFAULT_RULE": [ 121 | { 122 | "threadName": "MAIN_THREAD", 123 | "heavyCpus": [7], 124 | "commonCpus": [3, 4, 5, 6], 125 | "priority": -20 126 | }, 127 | { 128 | "threadName": "*[Rr]ender*", 129 | "heavyCpus": null, 130 | "commonCpus": [3, 4, 5, 6], 131 | "priority": -20 132 | }, 133 | { 134 | "threadName": "(GLThread|[Vv]sync|JNISurface|hwui|UiThread|ged-|mali-)*|*(.raster|.ui|.anim|.display)*", 135 | "heavyCpus": null, 136 | "commonCpus": [3, 4, 5, 6], 137 | "priority": -12 138 | }, 139 | { 140 | "threadName": "(glide-|Fresco|[Ii]mage|[Ll]auncher)*|*([Bb]lur|[Aa]nim|[Oo]verlay|[Cc]horeographer)*", 141 | "heavyCpus": null, 142 | "commonCpus": [3, 4, 5, 6], 143 | "priority": -12 144 | }, 145 | { 146 | "threadName": "(HWC release|GPU completion|FrameThread|FramePolicy|ScrollPolicy)*", 147 | "heavyCpus": null, 148 | "commonCpus": [0, 1, 2], 149 | "priority": -20 150 | }, 151 | { 152 | "threadName": "(Vlc|[Ii][Jj][Kk])*|*([Aa]udio|[Mm]ixer|[Vv]ideo|[Pp]layer|[Mm]edia|[Cc]odec|[Dd]ecode)*", 153 | "heavyCpus": null, 154 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 155 | "priority": -16 156 | }, 157 | { 158 | "threadName": "(Chrome_|Compositor|CrGpuMain|CrRenderer|Viz|Gecko)*|*[Ww]eb[Vv]iew*", 159 | "heavyCpus": null, 160 | "commonCpus": [3, 4, 5, 6], 161 | "priority": -12 162 | }, 163 | { 164 | "threadName": "(WeexJsBridge|libweexjsb|V8 DefaultWork|hippy.js|mqt_)*|*[Jj]ava[Ss]cript*", 165 | "heavyCpus": null, 166 | "commonCpus": [3, 4, 5, 6], 167 | "priority": -8 168 | }, 169 | { 170 | "threadName": "*([Ww]ork|[Hh]andle|[Pp]ool|[Mm]essage|[Dd]ispatch|[Ee]xecutor|[Bb]ridge|[Cc]amera)*", 171 | "heavyCpus": null, 172 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 173 | "priority": -8 174 | }, 175 | { 176 | "threadName": "(Chronos.|CRON.|AsyncTask|Thread-|Timer-)*", 177 | "heavyCpus": null, 178 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 179 | "priority": -8 180 | }, 181 | { 182 | "threadName": "(HeapTask|HeapTrimmer|Finalizer|CleanupReferenc|GC)*", 183 | "heavyCpus": null, 184 | "commonCpus": [0, 1, 2], 185 | "priority": -8 186 | }, 187 | { 188 | "threadName": "(queued-work-|Jit thread pool|Signal Catcher|Profile Saver|ReferenceQueue)*", 189 | "heavyCpus": null, 190 | "commonCpus": [0, 1, 2], 191 | "priority": -8 192 | }, 193 | { 194 | "threadName": "(Moss|OkHttp|Okio|Rx|rx-)*|*([Nn]etwork|[Cc]ookie|[Ss]cheduler|[Cc]apture)*", 195 | "heavyCpus": null, 196 | "commonCpus": [0, 1, 2], 197 | "priority": -8 198 | }, 199 | { 200 | "threadName": "(BLog|xlog|[Bb]ugly|BUGLY|LogThread)*|*([Cc]rash|[Ll]ogger|[Rr]eport)*", 201 | "heavyCpus": null, 202 | "commonCpus": [0, 1, 2], 203 | "priority": 0 204 | }, 205 | { 206 | "threadName": "(APM-|TVKDL-|Firebase|koom|ADB-JDWP|MemoryInfra)*|*([Ww]atch[Dd]og|[Tt]racker|[Mm]onitor)*", 207 | "heavyCpus": null, 208 | "commonCpus": [0, 1, 2], 209 | "priority": 0 210 | } 211 | ], 212 | "surfaceflinger": [ 213 | { 214 | "threadName": "MAIN_THREAD", 215 | "heavyCpus": null, 216 | "commonCpus": [3, 4, 5, 6], 217 | "priority": -20 218 | }, 219 | { 220 | "threadName": "(RenderEngine|OverlayEngine|app)*", 221 | "heavyCpus": null, 222 | "commonCpus": [3, 4, 5, 6], 223 | "priority": -20 224 | } 225 | ], 226 | "system_server": [ 227 | { 228 | "threadName": "MAIN_THREAD", 229 | "heavyCpus": null, 230 | "commonCpus": [3, 4, 5, 6], 231 | "priority": -20 232 | }, 233 | { 234 | "threadName": "android.*", 235 | "heavyCpus": null, 236 | "commonCpus": [3, 4, 5, 6], 237 | "priority": -20 238 | } 239 | ], 240 | "unity_genshin": [ 241 | { 242 | "threadName": "MAIN_THREAD", 243 | "heavyCpus": null, 244 | "commonCpus": [0, 1, 2], 245 | "priority": -12 246 | }, 247 | { 248 | "threadName": "UnityGfx*", 249 | "heavyCpus": [7], 250 | "commonCpus": [3, 4, 5, 6], 251 | "priority": -20 252 | }, 253 | { 254 | "threadName": "(UnityMain|UnityMulti|UnityPreload|UnityChoreograp|UnityCCeograp)*", 255 | "heavyCpus": null, 256 | "commonCpus": [3, 4, 5, 6], 257 | "priority": -12 258 | }, 259 | { 260 | "threadName": "FMOD*", 261 | "heavyCpus": null, 262 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 263 | "priority": -16 264 | }, 265 | { 266 | "threadName": "(Worker Thread|Job.Worker|NativeThread|IL2CPP|CoreThread|Thread-)*", 267 | "heavyCpus": null, 268 | "commonCpus": [3, 4, 5, 6], 269 | "priority": -12 270 | } 271 | ], 272 | "unity_common": [ 273 | { 274 | "threadName": "MAIN_THREAD", 275 | "heavyCpus": null, 276 | "commonCpus": [0, 1, 2], 277 | "priority": -12 278 | }, 279 | { 280 | "threadName": "UnityMain*", 281 | "heavyCpus": [7], 282 | "commonCpus": [3, 4, 5, 6], 283 | "priority": -20 284 | }, 285 | { 286 | "threadName": "(UnityGfx|UnityMulti|UnityPreload|UnityChoreograp|UnityCCeograp)*", 287 | "heavyCpus": null, 288 | "commonCpus": [3, 4, 5, 6], 289 | "priority": -20 290 | }, 291 | { 292 | "threadName": "FMOD*", 293 | "heavyCpus": null, 294 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 295 | "priority": -16 296 | }, 297 | { 298 | "threadName": "(Worker Thread|Job.Worker|NativeThread|IL2CPP|ace_worker|Apollo-|CoreThread|Thread-)*", 299 | "heavyCpus": null, 300 | "commonCpus": [3, 4, 5, 6], 301 | "priority": -12 302 | } 303 | ], 304 | "unreal_engine": [ 305 | { 306 | "threadName": "MAIN_THREAD", 307 | "heavyCpus": null, 308 | "commonCpus": [3, 4, 5, 6], 309 | "priority": -12 310 | }, 311 | { 312 | "threadName": "(RenderThread|GameThread|RHIThread)*", 313 | "heavyCpus": [7], 314 | "commonCpus": [3, 4, 5, 6], 315 | "priority": -20 316 | }, 317 | { 318 | "threadName": "(TaskGraph|CmpJob|Apollo-|glp|glt|NativeThread|SDLThread|Thread-)*", 319 | "heavyCpus": null, 320 | "commonCpus": [3, 4, 5, 6], 321 | "priority": -12 322 | }, 323 | { 324 | "threadName": "FMOD*", 325 | "heavyCpus": null, 326 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 327 | "priority": -16 328 | } 329 | ], 330 | "minecraft": [ 331 | { 332 | "threadName": "MAIN_THREAD", 333 | "heavyCpus": null, 334 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 335 | "priority": -12 336 | }, 337 | { 338 | "threadName": "(Rendering Pool|MINECRAFT)*", 339 | "heavyCpus": [7], 340 | "commonCpus": [3, 4, 5, 6], 341 | "priority": -20 342 | }, 343 | { 344 | "threadName": "Thread-*", 345 | "heavyCpus": null, 346 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 347 | "priority": -8 348 | }, 349 | { 350 | "threadName": "FMOD*", 351 | "heavyCpus": null, 352 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 353 | "priority": -16 354 | } 355 | ], 356 | "neox_engine": [ 357 | { 358 | "threadName": "MAIN_THREAD", 359 | "heavyCpus": null, 360 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 361 | "priority": -12 362 | }, 363 | { 364 | "threadName": "(MainThread|Thread-)*", 365 | "heavyCpus": [7], 366 | "commonCpus": [3, 4, 5, 6], 367 | "priority": -20 368 | }, 369 | { 370 | "threadName": "(IO|Compute|Resource|NativeThread)*", 371 | "heavyCpus": null, 372 | "commonCpus": [3, 4, 5, 6], 373 | "priority": -12 374 | } 375 | ], 376 | "sky_game": [ 377 | { 378 | "threadName": "MAIN_THREAD", 379 | "heavyCpus": null, 380 | "commonCpus": [0, 1, 2, 3, 4, 5, 6], 381 | "priority": -12 382 | }, 383 | { 384 | "threadName": "(MainThread|Program Thread)*", 385 | "heavyCpus": [7], 386 | "commonCpus": [3, 4, 5, 6], 387 | "priority": -20 388 | }, 389 | { 390 | "threadName": "(JobThread|Thread-)*", 391 | "heavyCpus": null, 392 | "commonCpus": [3, 4, 5, 6], 393 | "priority": -12 394 | } 395 | ], 396 | "native_game": [ 397 | { 398 | "threadName": "MAIN_THREAD", 399 | "heavyCpus": null, 400 | "commonCpus": [3, 4, 5, 6], 401 | "priority": -12 402 | }, 403 | { 404 | "threadName": "(Thread-|GameThread|NativeThread|MainThread|RenderThread)*", 405 | "heavyCpus": [7], 406 | "commonCpus": [3, 4, 5, 6], 407 | "priority": -20 408 | }, 409 | { 410 | "threadName": "(GLThread|FMOD)*|*(Audio|Media)*", 411 | "heavyCpus": null, 412 | "commonCpus": [3, 4, 5, 6], 413 | "priority": -16 414 | } 415 | ], 416 | "benchmark": [] 417 | } 418 | }, 419 | "MtkGpuGovernor": { 420 | "enable": false 421 | }, 422 | "DevfreqTuner": { 423 | "enable": true 424 | }, 425 | "Trigger": { 426 | "enable": true, 427 | "scenes": { 428 | "init": { 429 | "setProperty": [], 430 | "writeFile": [ 431 | {"path": "/dev/cpuset/restricted/cpus", "text": "0-2"}, 432 | {"path": "/dev/cpuset/system-background/cpus", "text": "0-2"}, 433 | {"path": "/dev/cpuset/background/cpus", "text": "0-2"}, 434 | {"path": "/dev/cpuset/foreground/cpus", "text": "0-7"}, 435 | {"path": "/dev/cpuset/top-app/cpus", "text": "0-7"} 436 | ] 437 | }, 438 | "screenOn": { 439 | "setProperty": [], 440 | "writeFile": [] 441 | }, 442 | "screenOff": { 443 | "setProperty": [], 444 | "writeFile": [] 445 | }, 446 | "powersaveMode": { 447 | "setProperty": [], 448 | "writeFile": [] 449 | }, 450 | "balanceMode": { 451 | "setProperty": [], 452 | "writeFile": [] 453 | }, 454 | "performanceMode": { 455 | "setProperty": [], 456 | "writeFile": [] 457 | }, 458 | "fastMode": { 459 | "setProperty": [], 460 | "writeFile": [] 461 | } 462 | }, 463 | "hints": { 464 | "none": { 465 | "durationTime": 0, 466 | "modes": { 467 | "powersave": { 468 | "setProperty": [ 469 | {"name": "cpu.boost", "value": 0}, 470 | {"name": "cpu.extra_margin", "value": 0}, 471 | {"name": "cpu.low_latency", "value": false}, 472 | {"name": "mtk_gpu.min_freq", "value": 0}, 473 | {"name": "mtk_gpu.boost", "value": 0}, 474 | {"name": "mtk_gpu.extra_margin", "value": 0}, 475 | {"name": "mtk_gpu.low_latency", "value": false}, 476 | {"name": "devfreq.ddr.min_freq", "value": 0}, 477 | {"name": "devfreq.gpu.min_freq", "value": 0} 478 | ], 479 | "writeFile": [] 480 | }, 481 | "balance": { 482 | "setProperty": [ 483 | {"name": "cpu.boost", "value": 0}, 484 | {"name": "cpu.extra_margin", "value": 0}, 485 | {"name": "cpu.low_latency", "value": false}, 486 | {"name": "mtk_gpu.min_freq", "value": 0}, 487 | {"name": "mtk_gpu.boost", "value": 0}, 488 | {"name": "mtk_gpu.extra_margin", "value": 0}, 489 | {"name": "mtk_gpu.low_latency", "value": false}, 490 | {"name": "devfreq.ddr.min_freq", "value": 0}, 491 | {"name": "devfreq.gpu.min_freq", "value": 0} 492 | ], 493 | "writeFile": [] 494 | }, 495 | "performance": { 496 | "setProperty": [ 497 | {"name": "cpu.boost", "value": 0}, 498 | {"name": "cpu.extra_margin", "value": 0}, 499 | {"name": "cpu.low_latency", "value": false}, 500 | {"name": "mtk_gpu.min_freq", "value": 0}, 501 | {"name": "mtk_gpu.boost", "value": 0}, 502 | {"name": "mtk_gpu.extra_margin", "value": 0}, 503 | {"name": "mtk_gpu.low_latency", "value": false}, 504 | {"name": "devfreq.ddr.min_freq", "value": 0}, 505 | {"name": "devfreq.gpu.min_freq", "value": 0} 506 | ], 507 | "writeFile": [] 508 | }, 509 | "fast": { 510 | "setProperty": [ 511 | {"name": "cpu.boost", "value": 0}, 512 | {"name": "cpu.extra_margin", "value": 0}, 513 | {"name": "cpu.low_latency", "value": false}, 514 | {"name": "mtk_gpu.min_freq", "value": 0}, 515 | {"name": "mtk_gpu.boost", "value": 0}, 516 | {"name": "mtk_gpu.extra_margin", "value": 0}, 517 | {"name": "mtk_gpu.low_latency", "value": false}, 518 | {"name": "devfreq.ddr.min_freq", "value": 0}, 519 | {"name": "devfreq.gpu.min_freq", "value": 0} 520 | ], 521 | "writeFile": [] 522 | } 523 | } 524 | }, 525 | "tap": { 526 | "durationTime": 230, 527 | "modes": { 528 | "powersave": { 529 | "setProperty": [ 530 | {"name": "cpu.boost", "value": 10}, 531 | {"name": "cpu.extra_margin", "value": 0}, 532 | {"name": "cpu.low_latency", "value": true}, 533 | {"name": "mtk_gpu.min_freq", "value": 0}, 534 | {"name": "mtk_gpu.boost", "value": 0}, 535 | {"name": "mtk_gpu.extra_margin", "value": 0}, 536 | {"name": "mtk_gpu.low_latency", "value": false}, 537 | {"name": "devfreq.ddr.min_freq", "value": 0}, 538 | {"name": "devfreq.gpu.min_freq", "value": 0} 539 | ], 540 | "writeFile": [] 541 | }, 542 | "balance": { 543 | "setProperty": [ 544 | {"name": "cpu.boost", "value": 15}, 545 | {"name": "cpu.extra_margin", "value": 10}, 546 | {"name": "cpu.low_latency", "value": true}, 547 | {"name": "mtk_gpu.min_freq", "value": 0}, 548 | {"name": "mtk_gpu.boost", "value": 0}, 549 | {"name": "mtk_gpu.extra_margin", "value": 0}, 550 | {"name": "mtk_gpu.low_latency", "value": false}, 551 | {"name": "devfreq.ddr.min_freq", "value": 0}, 552 | {"name": "devfreq.gpu.min_freq", "value": 0} 553 | ], 554 | "writeFile": [] 555 | }, 556 | "performance": { 557 | "setProperty": [ 558 | {"name": "cpu.boost", "value": 15}, 559 | {"name": "cpu.extra_margin", "value": 15}, 560 | {"name": "cpu.low_latency", "value": true}, 561 | {"name": "mtk_gpu.min_freq", "value": 0}, 562 | {"name": "mtk_gpu.boost", "value": 0}, 563 | {"name": "mtk_gpu.extra_margin", "value": 0}, 564 | {"name": "mtk_gpu.low_latency", "value": false}, 565 | {"name": "devfreq.ddr.min_freq", "value": 0}, 566 | {"name": "devfreq.gpu.min_freq", "value": 0} 567 | ], 568 | "writeFile": [] 569 | }, 570 | "fast": { 571 | "setProperty": [ 572 | {"name": "cpu.boost", "value": 20}, 573 | {"name": "cpu.extra_margin", "value": 0}, 574 | {"name": "cpu.low_latency", "value": true}, 575 | {"name": "mtk_gpu.min_freq", "value": 0}, 576 | {"name": "mtk_gpu.boost", "value": 0}, 577 | {"name": "mtk_gpu.extra_margin", "value": 0}, 578 | {"name": "mtk_gpu.low_latency", "value": false}, 579 | {"name": "devfreq.ddr.min_freq", "value": 0}, 580 | {"name": "devfreq.gpu.min_freq", "value": 0} 581 | ], 582 | "writeFile": [] 583 | } 584 | } 585 | }, 586 | "swipe": { 587 | "durationTime": 530, 588 | "modes": { 589 | "powersave": { 590 | "setProperty": [ 591 | {"name": "cpu.boost", "value": 15}, 592 | {"name": "cpu.extra_margin", "value": 10}, 593 | {"name": "cpu.low_latency", "value": true}, 594 | {"name": "mtk_gpu.min_freq", "value": 0}, 595 | {"name": "mtk_gpu.boost", "value": 0}, 596 | {"name": "mtk_gpu.extra_margin", "value": 0}, 597 | {"name": "mtk_gpu.low_latency", "value": false}, 598 | {"name": "devfreq.ddr.min_freq", "value": 0}, 599 | {"name": "devfreq.gpu.min_freq", "value": 0} 600 | ], 601 | "writeFile": [] 602 | }, 603 | "balance": { 604 | "setProperty": [ 605 | {"name": "cpu.boost", "value": 15}, 606 | {"name": "cpu.extra_margin", "value": 15}, 607 | {"name": "cpu.low_latency", "value": true}, 608 | {"name": "mtk_gpu.min_freq", "value": 0}, 609 | {"name": "mtk_gpu.boost", "value": 0}, 610 | {"name": "mtk_gpu.extra_margin", "value": 0}, 611 | {"name": "mtk_gpu.low_latency", "value": false}, 612 | {"name": "devfreq.ddr.min_freq", "value": 0}, 613 | {"name": "devfreq.gpu.min_freq", "value": 0} 614 | ], 615 | "writeFile": [] 616 | }, 617 | "performance": { 618 | "setProperty": [ 619 | {"name": "cpu.boost", "value": 15}, 620 | {"name": "cpu.extra_margin", "value": 10}, 621 | {"name": "cpu.low_latency", "value": true}, 622 | {"name": "mtk_gpu.min_freq", "value": 0}, 623 | {"name": "mtk_gpu.boost", "value": 0}, 624 | {"name": "mtk_gpu.extra_margin", "value": 0}, 625 | {"name": "mtk_gpu.low_latency", "value": false}, 626 | {"name": "devfreq.ddr.min_freq", "value": 0}, 627 | {"name": "devfreq.gpu.min_freq", "value": 0} 628 | ], 629 | "writeFile": [] 630 | }, 631 | "fast": { 632 | "setProperty": [ 633 | {"name": "cpu.boost", "value": 15}, 634 | {"name": "cpu.extra_margin", "value": 10}, 635 | {"name": "cpu.low_latency", "value": true}, 636 | {"name": "mtk_gpu.min_freq", "value": 0}, 637 | {"name": "mtk_gpu.boost", "value": 0}, 638 | {"name": "mtk_gpu.extra_margin", "value": 0}, 639 | {"name": "mtk_gpu.low_latency", "value": false}, 640 | {"name": "devfreq.ddr.min_freq", "value": 0}, 641 | {"name": "devfreq.gpu.min_freq", "value": 0} 642 | ], 643 | "writeFile": [] 644 | } 645 | } 646 | }, 647 | "gesture": { 648 | "durationTime": 620, 649 | "modes": { 650 | "powersave": { 651 | "setProperty": [ 652 | {"name": "cpu.boost", "value": 10}, 653 | {"name": "cpu.extra_margin", "value": 10}, 654 | {"name": "cpu.low_latency", "value": true}, 655 | {"name": "mtk_gpu.min_freq", "value": 0}, 656 | {"name": "mtk_gpu.boost", "value": 0}, 657 | {"name": "mtk_gpu.extra_margin", "value": 0}, 658 | {"name": "mtk_gpu.low_latency", "value": false}, 659 | {"name": "devfreq.ddr.min_freq", "value": 2000}, 660 | {"name": "devfreq.gpu.min_freq", "value": 0} 661 | ], 662 | "writeFile": [] 663 | }, 664 | "balance": { 665 | "setProperty": [ 666 | {"name": "cpu.boost", "value": 20}, 667 | {"name": "cpu.extra_margin", "value": 15}, 668 | {"name": "cpu.low_latency", "value": true}, 669 | {"name": "mtk_gpu.min_freq", "value": 0}, 670 | {"name": "mtk_gpu.boost", "value": 0}, 671 | {"name": "mtk_gpu.extra_margin", "value": 0}, 672 | {"name": "mtk_gpu.low_latency", "value": false}, 673 | {"name": "devfreq.ddr.min_freq", "value": 2000}, 674 | {"name": "devfreq.gpu.min_freq", "value": 0} 675 | ], 676 | "writeFile": [] 677 | }, 678 | "performance": { 679 | "setProperty": [ 680 | {"name": "cpu.boost", "value": 10}, 681 | {"name": "cpu.extra_margin", "value": 10}, 682 | {"name": "cpu.low_latency", "value": false}, 683 | {"name": "mtk_gpu.min_freq", "value": 0}, 684 | {"name": "mtk_gpu.boost", "value": 0}, 685 | {"name": "mtk_gpu.extra_margin", "value": 0}, 686 | {"name": "mtk_gpu.low_latency", "value": false}, 687 | {"name": "devfreq.ddr.min_freq", "value": 2000}, 688 | {"name": "devfreq.gpu.min_freq", "value": 0} 689 | ], 690 | "writeFile": [] 691 | }, 692 | "fast": { 693 | "setProperty": [ 694 | {"name": "cpu.boost", "value": 10}, 695 | {"name": "cpu.extra_margin", "value": 10}, 696 | {"name": "cpu.low_latency", "value": false}, 697 | {"name": "mtk_gpu.min_freq", "value": 0}, 698 | {"name": "mtk_gpu.boost", "value": 0}, 699 | {"name": "mtk_gpu.extra_margin", "value": 0}, 700 | {"name": "mtk_gpu.low_latency", "value": false}, 701 | {"name": "devfreq.ddr.min_freq", "value": 2000}, 702 | {"name": "devfreq.gpu.min_freq", "value": 0} 703 | ], 704 | "writeFile": [] 705 | } 706 | } 707 | }, 708 | "heavyload": { 709 | "durationTime": 1200, 710 | "modes": { 711 | "powersave": { 712 | "setProperty": [ 713 | {"name": "cpu.boost", "value": 0}, 714 | {"name": "cpu.extra_margin", "value": 20}, 715 | {"name": "cpu.low_latency", "value": false}, 716 | {"name": "mtk_gpu.min_freq", "value": 0}, 717 | {"name": "mtk_gpu.boost", "value": 0}, 718 | {"name": "mtk_gpu.extra_margin", "value": 0}, 719 | {"name": "mtk_gpu.low_latency", "value": false}, 720 | {"name": "devfreq.ddr.min_freq", "value": 2000}, 721 | {"name": "devfreq.gpu.min_freq", "value": 0} 722 | ], 723 | "writeFile": [] 724 | }, 725 | "balance": { 726 | "setProperty": [ 727 | {"name": "cpu.boost", "value": 0}, 728 | {"name": "cpu.extra_margin", "value": 20}, 729 | {"name": "cpu.low_latency", "value": false}, 730 | {"name": "mtk_gpu.min_freq", "value": 0}, 731 | {"name": "mtk_gpu.boost", "value": 0}, 732 | {"name": "mtk_gpu.extra_margin", "value": 0}, 733 | {"name": "mtk_gpu.low_latency", "value": false}, 734 | {"name": "devfreq.ddr.min_freq", "value": 2000}, 735 | {"name": "devfreq.gpu.min_freq", "value": 0} 736 | ], 737 | "writeFile": [] 738 | }, 739 | "performance": { 740 | "setProperty": [ 741 | {"name": "cpu.boost", "value": 25}, 742 | {"name": "cpu.extra_margin", "value": 10}, 743 | {"name": "cpu.low_latency", "value": true}, 744 | {"name": "mtk_gpu.min_freq", "value": 0}, 745 | {"name": "mtk_gpu.boost", "value": 0}, 746 | {"name": "mtk_gpu.extra_margin", "value": 0}, 747 | {"name": "mtk_gpu.low_latency", "value": false}, 748 | {"name": "devfreq.ddr.min_freq", "value": 2000}, 749 | {"name": "devfreq.gpu.min_freq", "value": 0} 750 | ], 751 | "writeFile": [] 752 | }, 753 | "fast": { 754 | "setProperty": [ 755 | {"name": "cpu.boost", "value": 30}, 756 | {"name": "cpu.extra_margin", "value": 20}, 757 | {"name": "cpu.low_latency", "value": true}, 758 | {"name": "mtk_gpu.min_freq", "value": 0}, 759 | {"name": "mtk_gpu.boost", "value": 0}, 760 | {"name": "mtk_gpu.extra_margin", "value": 0}, 761 | {"name": "mtk_gpu.low_latency", "value": false}, 762 | {"name": "devfreq.ddr.min_freq", "value": 2000}, 763 | {"name": "devfreq.gpu.min_freq", "value": 0} 764 | ], 765 | "writeFile": [] 766 | } 767 | } 768 | }, 769 | "jank": { 770 | "durationTime": 560, 771 | "modes": { 772 | "powersave": { 773 | "setProperty": [ 774 | {"name": "cpu.boost", "value": 20}, 775 | {"name": "cpu.extra_margin", "value": 10}, 776 | {"name": "cpu.low_latency", "value": true}, 777 | {"name": "mtk_gpu.min_freq", "value": 0}, 778 | {"name": "mtk_gpu.boost", "value": 0}, 779 | {"name": "mtk_gpu.extra_margin", "value": 0}, 780 | {"name": "mtk_gpu.low_latency", "value": true}, 781 | {"name": "devfreq.ddr.min_freq", "value": 3600}, 782 | {"name": "devfreq.gpu.min_freq", "value": 0} 783 | ], 784 | "writeFile": [] 785 | }, 786 | "balance": { 787 | "setProperty": [ 788 | {"name": "cpu.boost", "value": 30}, 789 | {"name": "cpu.extra_margin", "value": 10}, 790 | {"name": "cpu.low_latency", "value": true}, 791 | {"name": "mtk_gpu.min_freq", "value": 0}, 792 | {"name": "mtk_gpu.boost", "value": 0}, 793 | {"name": "mtk_gpu.extra_margin", "value": 0}, 794 | {"name": "mtk_gpu.low_latency", "value": true}, 795 | {"name": "devfreq.ddr.min_freq", "value": 3600}, 796 | {"name": "devfreq.gpu.min_freq", "value": 0} 797 | ], 798 | "writeFile": [] 799 | }, 800 | "performance": { 801 | "setProperty": [ 802 | {"name": "cpu.boost", "value": 50}, 803 | {"name": "cpu.extra_margin", "value": 15}, 804 | {"name": "cpu.low_latency", "value": true}, 805 | {"name": "mtk_gpu.min_freq", "value": 0}, 806 | {"name": "mtk_gpu.boost", "value": 0}, 807 | {"name": "mtk_gpu.extra_margin", "value": 0}, 808 | {"name": "mtk_gpu.low_latency", "value": true}, 809 | {"name": "devfreq.ddr.min_freq", "value": 3600}, 810 | {"name": "devfreq.gpu.min_freq", "value": 0} 811 | ], 812 | "writeFile": [] 813 | }, 814 | "fast": { 815 | "setProperty": [ 816 | {"name": "cpu.boost", "value": 0}, 817 | {"name": "cpu.extra_margin", "value": 0}, 818 | {"name": "cpu.low_latency", "value": true}, 819 | {"name": "mtk_gpu.min_freq", "value": 0}, 820 | {"name": "mtk_gpu.boost", "value": 0}, 821 | {"name": "mtk_gpu.extra_margin", "value": 0}, 822 | {"name": "mtk_gpu.low_latency", "value": true}, 823 | {"name": "devfreq.ddr.min_freq", "value": 3600}, 824 | {"name": "devfreq.gpu.min_freq", "value": 0} 825 | ], 826 | "writeFile": [] 827 | } 828 | } 829 | }, 830 | "bigJank": { 831 | "durationTime": 1500, 832 | "modes": { 833 | "powersave": { 834 | "setProperty": [ 835 | {"name": "cpu.boost", "value": 25}, 836 | {"name": "cpu.extra_margin", "value": 10}, 837 | {"name": "cpu.low_latency", "value": true}, 838 | {"name": "mtk_gpu.min_freq", "value": 0}, 839 | {"name": "mtk_gpu.boost", "value": 0}, 840 | {"name": "mtk_gpu.extra_margin", "value": 0}, 841 | {"name": "mtk_gpu.low_latency", "value": true}, 842 | {"name": "devfreq.ddr.min_freq", "value": 3600}, 843 | {"name": "devfreq.gpu.min_freq", "value": 0} 844 | ], 845 | "writeFile": [] 846 | }, 847 | "balance": { 848 | "setProperty": [ 849 | {"name": "cpu.boost", "value": 35}, 850 | {"name": "cpu.extra_margin", "value": 15}, 851 | {"name": "cpu.low_latency", "value": true}, 852 | {"name": "mtk_gpu.min_freq", "value": 0}, 853 | {"name": "mtk_gpu.boost", "value": 0}, 854 | {"name": "mtk_gpu.extra_margin", "value": 0}, 855 | {"name": "mtk_gpu.low_latency", "value": true}, 856 | {"name": "devfreq.ddr.min_freq", "value": 3600}, 857 | {"name": "devfreq.gpu.min_freq", "value": 0} 858 | ], 859 | "writeFile": [] 860 | }, 861 | "performance": { 862 | "setProperty": [ 863 | {"name": "cpu.boost", "value": 60}, 864 | {"name": "cpu.extra_margin", "value": 25}, 865 | {"name": "cpu.low_latency", "value": true}, 866 | {"name": "mtk_gpu.min_freq", "value": 0}, 867 | {"name": "mtk_gpu.boost", "value": 0}, 868 | {"name": "mtk_gpu.extra_margin", "value": 0}, 869 | {"name": "mtk_gpu.low_latency", "value": true}, 870 | {"name": "devfreq.ddr.min_freq", "value": 3600}, 871 | {"name": "devfreq.gpu.min_freq", "value": 0} 872 | ], 873 | "writeFile": [] 874 | }, 875 | "fast": { 876 | "setProperty": [ 877 | {"name": "cpu.boost", "value": 0}, 878 | {"name": "cpu.extra_margin", "value": 20}, 879 | {"name": "cpu.low_latency", "value": true}, 880 | {"name": "mtk_gpu.min_freq", "value": 0}, 881 | {"name": "mtk_gpu.boost", "value": 0}, 882 | {"name": "mtk_gpu.extra_margin", "value": 0}, 883 | {"name": "mtk_gpu.low_latency", "value": true}, 884 | {"name": "devfreq.ddr.min_freq", "value": 3600}, 885 | {"name": "devfreq.gpu.min_freq", "value": 0} 886 | ], 887 | "writeFile": [] 888 | } 889 | } 890 | } 891 | } 892 | }, 893 | "Thermal": { 894 | "enable": true, 895 | "params": { 896 | "interval": 500, 897 | "actionDelay": 1000, 898 | "matchRule": "*(soc|cluster|cpu|tsens_tz_sensor)*" 899 | }, 900 | "modes": { 901 | "powersave": { 902 | "actions": [ 903 | { 904 | "temp": -1, 905 | "setProperty": [ 906 | {"name": "cpu.max_power", "value": 2200}, 907 | {"name": "mtk_gpu.max_freq", "value": 600}, 908 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 909 | {"name": "devfreq.gpu.max_freq", "value": 10000} 910 | ] 911 | }, 912 | { 913 | "temp": 45, 914 | "setProperty": [ 915 | {"name": "cpu.max_power", "value": 2100}, 916 | {"name": "mtk_gpu.max_freq", "value": 10000}, 917 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 918 | {"name": "devfreq.gpu.max_freq", "value": 350} 919 | ] 920 | }, 921 | { 922 | "temp": 50, 923 | "setProperty": [ 924 | {"name": "cpu.max_power", "value": 2000}, 925 | {"name": "mtk_gpu.max_freq", "value": 10000}, 926 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 927 | {"name": "devfreq.gpu.max_freq", "value": 300} 928 | ] 929 | }, 930 | { 931 | "temp": 55, 932 | "setProperty": [ 933 | {"name": "cpu.max_power", "value": 1800}, 934 | {"name": "mtk_gpu.max_freq", "value": 10000}, 935 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 936 | {"name": "devfreq.gpu.max_freq", "value": 300} 937 | ] 938 | } 939 | ] 940 | }, 941 | "balance": { 942 | "actions": [ 943 | { 944 | "temp": -1, 945 | "setProperty": [ 946 | {"name": "cpu.max_power", "value": 3200}, 947 | {"name": "mtk_gpu.max_freq", "value": 600}, 948 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 949 | {"name": "devfreq.gpu.max_freq", "value": 10000} 950 | ] 951 | }, 952 | { 953 | "temp": 50, 954 | "setProperty": [ 955 | {"name": "cpu.max_power", "value": 3200}, 956 | {"name": "mtk_gpu.max_freq", "value": 10000}, 957 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 958 | {"name": "devfreq.gpu.max_freq", "value": 480} 959 | ] 960 | }, 961 | { 962 | "temp": 55, 963 | "setProperty": [ 964 | {"name": "cpu.max_power", "value": 3000}, 965 | {"name": "mtk_gpu.max_freq", "value": 10000}, 966 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 967 | {"name": "devfreq.gpu.max_freq", "value": 350} 968 | ] 969 | }, 970 | { 971 | "temp": 65, 972 | "setProperty": [ 973 | {"name": "cpu.max_power", "value": 2800}, 974 | {"name": "mtk_gpu.max_freq", "value": 10000}, 975 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 976 | {"name": "devfreq.gpu.max_freq", "value": 300} 977 | ] 978 | } 979 | ] 980 | }, 981 | "performance": { 982 | "actions": [ 983 | { 984 | "temp": -1, 985 | "setProperty": [ 986 | {"name": "cpu.max_power", "value": 4500}, 987 | {"name": "mtk_gpu.max_freq", "value": 800}, 988 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 989 | {"name": "devfreq.gpu.max_freq", "value": 10000} 990 | ] 991 | }, 992 | { 993 | "temp": 60, 994 | "setProperty": [ 995 | {"name": "cpu.max_power", "value": 4500}, 996 | {"name": "mtk_gpu.max_freq", "value": 10000}, 997 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 998 | {"name": "devfreq.gpu.max_freq", "value": 620} 999 | ] 1000 | }, 1001 | { 1002 | "temp": 65, 1003 | "setProperty": [ 1004 | {"name": "cpu.max_power", "value": 4500}, 1005 | {"name": "mtk_gpu.max_freq", "value": 10000}, 1006 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 1007 | {"name": "devfreq.gpu.max_freq", "value": 480} 1008 | ] 1009 | }, 1010 | { 1011 | "temp": 70, 1012 | "setProperty": [ 1013 | {"name": "cpu.max_power", "value": 4400}, 1014 | {"name": "mtk_gpu.max_freq", "value": 10000}, 1015 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 1016 | {"name": "devfreq.gpu.max_freq", "value": 350} 1017 | ] 1018 | }, 1019 | { 1020 | "temp": 85, 1021 | "setProperty": [ 1022 | {"name": "cpu.max_power", "value": 4400}, 1023 | {"name": "mtk_gpu.max_freq", "value": 10000}, 1024 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 1025 | {"name": "devfreq.gpu.max_freq", "value": 300} 1026 | ] 1027 | } 1028 | ] 1029 | }, 1030 | "fast": { 1031 | "actions": [ 1032 | { 1033 | "temp": -1, 1034 | "setProperty": [ 1035 | {"name": "cpu.max_power", "value": 10000}, 1036 | {"name": "mtk_gpu.max_freq", "value": 10000}, 1037 | {"name": "devfreq.ddr.max_freq", "value": 10000}, 1038 | {"name": "devfreq.gpu.max_freq", "value": 800} 1039 | ] 1040 | } 1041 | ] 1042 | } 1043 | } 1044 | } 1045 | } -------------------------------------------------------------------------------- /magisk/configs/universal.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Universal_Config", 3 | "author": "Unsupported_Device", 4 | "configVersion": 11, 5 | "CpuGovernor": { 6 | "enable": false 7 | }, 8 | "ThreadSchedOpt": { 9 | "enable": false 10 | }, 11 | "MtkGpuGovernor": { 12 | "enable": false 13 | }, 14 | "DevfreqTurner": { 15 | "enable": false 16 | }, 17 | "Trigger": { 18 | "enable": false 19 | }, 20 | "Thermal": { 21 | "enable": false 22 | } 23 | } -------------------------------------------------------------------------------- /magisk/customize.sh: -------------------------------------------------------------------------------- 1 | # Copyright 2023 - present Tritium Developers 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | [ -f "$MODPATH/skt-utils.sh" ] && . "$MODPATH/skt-utils.sh" || abort '! File "skt-utils.sh" does not exist!' 16 | 17 | skt_mod_install # Don't write code before this line! 18 | 19 | SKIPUNZIP=0 20 | SKIPMOUNT=false 21 | PROPFILE=true 22 | POSTFSDATA=true 23 | LATESTARTSERVICE=true 24 | 25 | set_perm_recursive $MODPATH 0 0 0755 0644 26 | 27 | rm -f /data/powercfg.json /data/powercfg.sh 28 | 29 | cp -f "$MODPATH/powercfg/powercfg.json" /data/ 30 | cp -f "$MODPATH/powercfg/powercfg.sh" /data/ 31 | 32 | ui_print "- Tritium Scheduler Module" 33 | ui_print "- Installing..." 34 | 35 | ui_print "- 当前版本为: 正式版" 36 | ui_print "- 构建时间: $(stat -c '%y' "$MODPATH/module.prop" | cut -d: -f1,2)" 37 | ui_print "- Soc平台: $(getprop ro.product.brand)" 38 | ui_print "- CPU型号: $(getprop ro.board.platform)" 39 | ui_print "- 手机代号: $(getprop ro.product.board)" 40 | ui_print "- 安卓版本: $(getprop ro.build.version.release)" 41 | ui_print "- SDK: $(getprop ro.build.version.sdk)" 42 | ui_print "- 内核版本: $(uname -r)" 43 | 44 | get_pineapple_name() { 45 | cpu_max_freq=$(cat /sys/devices/system/cpu/cpufreq/policy7/cpuinfo_max_freq) 46 | if [ "$cpu_max_freq" -gt 3200000 ]; then 47 | echo "sdm8gen3" 48 | else 49 | echo "sdm7+gen3" 50 | fi 51 | } 52 | 53 | get_taro_name() { 54 | cpu7_max_freq=$(cat /sys/devices/system/cpu/cpufreq/policy7/cpuinfo_max_freq) 55 | gpu_max_freq=$(cat /sys/class/kgsl/kgsl-3d0/max_clock_mhz) 56 | if [ "$cpu7_max_freq" -gt 3100000 ]; then 57 | echo "sdm8+gen1" 58 | elif [ "$cpu7_max_freq" -gt 2950000 ]; then 59 | if [ "$gpu_max_freq" -gt 850 ]; then 60 | echo "sdm8+gen1" 61 | else 62 | echo "sdm8gen1" 63 | fi 64 | elif [ "$cpu7_max_freq" -gt 2900000 ]; then 65 | echo "sdm7+gen2" 66 | else 67 | echo "sdm7gen1" 68 | fi 69 | } 70 | 71 | get_lahaina_name() { 72 | cpu7_max_freq=$(cat /sys/devices/system/cpu/cpufreq/policy7/cpuinfo_max_freq) 73 | cpu4_max_freq=$(cat /sys/devices/system/cpu/cpufreq/policy4/cpuinfo_max_freq) 74 | if [ "$cpu7_max_freq" -gt 2800000 ]; then 75 | echo "sdm888" 76 | elif [ "$cpu4_max_freq" -gt 2300000 ]; then 77 | echo "sdm778" 78 | else 79 | echo "sdm780" 80 | fi 81 | } 82 | 83 | get_lito_name() { 84 | cpu_max_freq=$(cat /sys/devices/system/cpu/cpufreq/policy7/cpuinfo_max_freq) 85 | if [ "$cpu_max_freq" -gt 2300000 ]; then 86 | echo "sdm765" 87 | else 88 | echo "sdm750" 89 | fi 90 | } 91 | 92 | get_sm6150_name() { 93 | cpu_max_freq=$(cat /sys/devices/system/cpu/cpufreq/policy7/cpuinfo_max_freq) 94 | if [ "$cpu_max_freq" -gt 2200000 ]; then 95 | echo "sdm730" 96 | else 97 | echo "sdm675" 98 | fi 99 | } 100 | 101 | get_mt6895_name() { 102 | cpu_max_freq=$(cat /sys/devices/system/cpu/cpufreq/policy7/cpuinfo_max_freq) 103 | if [ "$cpu_max_freq" -gt 3000000 ]; then 104 | echo "dimensity8200" 105 | else 106 | echo "dimensity8100" 107 | fi 108 | } 109 | 110 | get_bengal_name() { 111 | cpu_max_freq=$(cat /sys/devices/system/cpu/cpufreq/policy7/cpuinfo_max_freq) 112 | if [ "$cpu_max_freq" -gt 2300000 ]; then 113 | echo "sdm680" 114 | else 115 | echo "sdm665" 116 | fi 117 | } 118 | 119 | get_config_name() { 120 | case "$1" in 121 | crow*) 122 | echo "sdm7gen3" 123 | ;; 124 | garnet*) 125 | echo "sdm6gen1" 126 | ;; 127 | parrot*) 128 | echo "sdm6gen1" 129 | ;; 130 | pineapple*) 131 | get_pineapple_name 132 | ;; 133 | sunstone*) 134 | echo "sdm4gen1" 135 | ;; 136 | sky*) 137 | echo "sdm4gen2" 138 | ;; 139 | kalama*) 140 | echo "sdm8gen2" 141 | ;; 142 | sun*) 143 | echo "sdm8elite" 144 | ;; 145 | taro*) 146 | get_taro_name 147 | ;; 148 | lahaina*) 149 | get_lahaina_name 150 | ;; 151 | shima*) 152 | get_lahaina_name 153 | ;; 154 | yupik*) 155 | get_lahaina_name 156 | ;; 157 | kona*) 158 | echo "sdm865" 159 | ;; 160 | msmnile*) 161 | echo "sdm855" 162 | ;; 163 | sdm845*) 164 | echo "sdm845" 165 | ;; 166 | lito*) 167 | get_lito_name 168 | ;; 169 | sm7150*) 170 | echo "sdm730" 171 | ;; 172 | sm6150*) 173 | get_sm6150_name 174 | ;; 175 | sdm670*) 176 | echo "sdm710" 177 | ;; 178 | sdm710*) 179 | echo "sdm710" 180 | ;; 181 | sdm439*) 182 | echo "sdm439" 183 | ;; 184 | sdm450*) 185 | echo "sdm625" 186 | ;; 187 | sdm4350*) 188 | echo "sdm730" 189 | ;; 190 | msm8953*) 191 | echo "sdm625" 192 | ;; 193 | sdm660*) 194 | echo "sdm660" 195 | ;; 196 | sdm636*) 197 | echo "sdm660" 198 | ;; 199 | sdm632*) 200 | echo "sdm660" 201 | ;; 202 | sdm630*) 203 | echo "sdm630" 204 | ;; 205 | trinket*) 206 | echo "sdm665" 207 | ;; 208 | bengal*) 209 | get_bengal_name 210 | ;; 211 | holi*) 212 | echo "sdm4gen1" 213 | ;; 214 | msm8998*) 215 | echo "sdm835" 216 | ;; 217 | msm8996*) 218 | echo "sdm820" 219 | ;; 220 | mt6771*) 221 | echo "helio_p60" 222 | ;; 223 | mt6779*) 224 | echo "helio_g80" 225 | ;; 226 | mt6762*) 227 | echo "helio_p35" 228 | ;; 229 | mt6765*) 230 | echo "helio_p35" 231 | ;; 232 | mt6768*) 233 | echo "helio_g80" 234 | ;; 235 | mt6785*) 236 | echo "helio_g90" 237 | ;; 238 | mt6789*) 239 | echo "helio_g99" 240 | ;; 241 | mt6799*) 242 | echo "helio_x30" 243 | ;; 244 | mt6833*) 245 | echo "dimensity700" 246 | ;; 247 | mt6835*) 248 | echo "helio_g99" 249 | ;; 250 | mt6853*) 251 | echo "dimensity700" 252 | ;; 253 | mt6873*) 254 | echo "dimensity820" 255 | ;; 256 | mt6875*) 257 | echo "dimensity820" 258 | ;; 259 | mt6877*) 260 | echo "dimensity900" 261 | ;; 262 | mt6878*) 263 | echo "dimensity7300" 264 | ;; 265 | mt6885*) 266 | echo "dimensity1000" 267 | ;; 268 | mt6886*) 269 | echo "dimensity7200" 270 | ;; 271 | mt6889*) 272 | echo "dimensity1000" 273 | ;; 274 | mt6891*) 275 | echo "dimensity1100" 276 | ;; 277 | mt6893*) 278 | echo "dimensity1100" 279 | ;; 280 | mt6895*) 281 | get_mt6895_name 282 | ;; 283 | mt6897*) 284 | echo "dimensity8300" 285 | ;; 286 | mt6899*) 287 | echo "dimensity8400" 288 | ;; 289 | mt6983*) 290 | echo "dimensity9000" 291 | ;; 292 | mt6985*) 293 | echo "dimensity9200" 294 | ;; 295 | mt6989*) 296 | echo "dimensity9300" 297 | ;; 298 | mt6991*) 299 | echo "dimensity9400" 300 | ;; 301 | kirin970*) 302 | echo "kirin970" 303 | ;; 304 | hi3670*) 305 | echo "kirin970" 306 | ;; 307 | hi3660*) 308 | echo "kirin960" 309 | ;; 310 | hi3650*) 311 | echo "kirin950" 312 | ;; 313 | kirin710*) 314 | echo "kirin710" 315 | ;; 316 | hi6250*) 317 | echo "kirin650" 318 | ;; 319 | sp9863a*) 320 | echo "sc9863a" 321 | ;; 322 | ums512*) 323 | echo "unisoc_t618" 324 | ;; 325 | ud710*) 326 | echo "unisoc_t740" 327 | ;; 328 | ums9620*) 329 | echo "unisoc_t770" 330 | ;; 331 | ums9230*) 332 | echo "unisoc_t618" 333 | ;; 334 | *) 335 | echo "unsupport" 336 | ;; 337 | esac 338 | } 339 | 340 | ui_print "- Extracting module files." 341 | if [ -d "$MODPATH" ]; then 342 | rm -rf "$MODPATH" 343 | fi 344 | unzip -o "$ZIPFILE" -x "META-INF/*" -d "$MODPATH" >/dev/null 2>&1 345 | chmod -R 0777 "$MODPATH" 346 | 347 | platform_name=$(getprop "ro.board.platform") 348 | config_name=$(get_config_name "$platform_name") 349 | if [ -f "${MODPATH}/configs/${config_name}.json" ]; then 350 | cp -f "${MODPATH}/configs/${config_name}.json" "${MODPATH}/config.json" 351 | rm -rf "${MODPATH}/configs/" 352 | 353 | ui_print "- ${platform_name} 您的芯片已适配😋." 354 | ui_print "- Installation finished." 355 | else 356 | ui_print "- ${platform_name} 您的芯片未适配😑" 357 | abort "- Abort!" 358 | fi 359 | 360 | 361 | skt_mod_install_finish # Don't write code after this line! 362 | 363 | -------------------------------------------------------------------------------- /magisk/examine.sh: -------------------------------------------------------------------------------- 1 | # Copyright 2023 - present Tritium Developers 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License.. 14 | 15 | 16 | #!/sbin/sh 17 | 18 | LOG_FILE=/storage/emulated/0/Android/ct/scheduler.log 19 | BASE_DIR=/data/adb/modules/ct_module/module.prop 20 | 21 | 22 | if [ -f $LOG_FILE ]; then 23 | if grep -q "Daemon Running" $LOG_FILE; then 24 | sed -i 's/description=.*/description=[😊运行中]Optimize performance ing…/' $BASE_DIR 25 | else 26 | sed -i 's/description=.*/description=[😵启动失败]Optimize performance ing…/' $BASE_DIR 27 | fi 28 | fi -------------------------------------------------------------------------------- /magisk/module.prop: -------------------------------------------------------------------------------- 1 | id=ct_module 2 | name=Tritium 3 | version=V5.4.1 4 | versionCode=250528 5 | author=Tritium Developers 6 | description=安卓性能调度优化框架 7 | updateJson=https://raw.githubusercontent.com/TimeBreeze/Tritium/main/Tritium.json 8 | -------------------------------------------------------------------------------- /magisk/powercfg/powercfg.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Tritium", 3 | "author": "Tritium Developers", 4 | "version": "V5.4.0_Test", 5 | "versionCode": 250501, 6 | "features": { 7 | "strict": true, 8 | "pedestal": true 9 | }, 10 | "module": "Tritium", 11 | "state": "/sdcard/Android/ct/cur_mode.txt", 12 | "entry": "/data/powercfg.sh" 13 | } -------------------------------------------------------------------------------- /magisk/powercfg/powercfg.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | export MODE="/sdcard/Android/ct/cur_mode.txt" 4 | 5 | set_mode() { 6 | echo -n "$1" > "$MODE" 7 | } 8 | 9 | case "$1" in 10 | 'powersave' | 'balance' | 'performance' | 'fast') 11 | set_mode "$1" 12 | ;; 13 | 'auto') 14 | set_mode 'balance' 15 | ;; 16 | 'pedestal') 17 | set_mode 'fast' 18 | ;; 19 | 'init') 20 | [ -x "$INIT" ] && sh "$INIT" 21 | set_mode 'balance' 22 | ;; 23 | *) 24 | set_mode 'balance' 25 | ;; 26 | esac 27 | -------------------------------------------------------------------------------- /magisk/service.sh: -------------------------------------------------------------------------------- 1 | # Copyright 2023 - present Tritium Developers 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | #!/sbin/sh 16 | BASE_DIR=$(dirname "$0") 17 | 18 | get_min_freq() { 19 | freq_table=$(tr " " "\n" < "$1") 20 | first_freq=$(echo "$freq_table" | head -1) 21 | last_freq=$(echo "$freq_table" | tail -1) 22 | if [ "$first_freq" -lt "$last_freq" ]; then 23 | echo "$first_freq" 24 | else 25 | echo "$last_freq" 26 | fi 27 | } 28 | 29 | get_max_freq() { 30 | freq_table=$(tr " " "\n" < "$1") 31 | first_freq=$(echo "$freq_table" | head -1) 32 | last_freq=$(echo "$freq_table" | tail -1) 33 | if [ "$first_freq" -gt "$last_freq" ]; then 34 | echo "$first_freq" 35 | else 36 | echo "$last_freq" 37 | fi 38 | } 39 | 40 | write_value() { 41 | for file in $2; do 42 | if [ -f "$file" ]; then 43 | echo "$1" >"$file" 44 | fi 45 | done 46 | } 47 | 48 | lock_value() { 49 | for file in $2; do 50 | if [ -f "$file" ]; then 51 | chmod 0666 "$file" 52 | echo "$1" > "$file" 53 | chmod 0444 "$file" 54 | fi 55 | done 56 | } 57 | 58 | change_task_cpuset() { 59 | for pid in $(pgrep -f "$1"); do 60 | echo "$pid" > "/dev/cpuset/${2}/cgroup.procs" 61 | done 62 | } 63 | 64 | change_task_sched() { 65 | for pid in $(pgrep -f "$1"); do 66 | if [ -d /dev/stune ]; then 67 | echo "$pid" > "/dev/stune/${2}/cgroup.procs" 68 | elif [ -d /dev/cpuctl ]; then 69 | echo "$pid" > "/dev/cpuctl/${2}/cgroup.procs" 70 | fi 71 | done 72 | } 73 | 74 | stop horae 2>/dev/null 75 | stop miuibooster 2>/dev/null 76 | stop oneplus_brain_service 2>/dev/null 77 | stop vendor.perfservice 2>/dev/null 78 | stop perfd 2>/dev/null 79 | 80 | setprop "persist.sys.hardcoder.name" "" 2>/dev/null 81 | setprop "persist.miui.miperf.enable" "false" 2>/dev/null 82 | setprop "persist.sys.oiface.enable" "0" 2>/dev/null 83 | setprop "persist.sys.horae.enable" "0" 2>/dev/null 84 | 85 | lock_value "2" "/sys/devices/system/cpu/eas/enable" 86 | lock_value "0" "/sys/module/fbt_cpu/parameters/boost_affinity*" 87 | lock_value "0" "/sys/module/mtk_fpsgo/parameters/boost_affinity*" 88 | lock_value "0" "/sys/module/mtk_fpsgo/parameters/perfmgr_enable" 89 | lock_value "0" "/sys/module/perfmgr/parameters/perfmgr_enable" 90 | lock_value "0" "/sys/module/perfmgr_policy/parameters/perfmgr_enable" 91 | lock_value "0" "/sys/kernel/fpsgo/common/fpsgo_enable" 92 | lock_value "0" "/sys/kernel/fpsgo/common/force_onoff" 93 | lock_value "0" "/sys/kernel/fpsgo/fbt/enable*" 94 | lock_value "0" "/sys/kernel/fpsgo/fbt/limit*" 95 | lock_value "0" "/sys/kernel/fpsgo/fbt/switch_idleprefer" 96 | lock_value "0" "/sys/kernel/debug/fpsgo/common/fpsgo_enable" 97 | lock_value "0" "/sys/kernel/debug/fpsgo/common/force_onoff" 98 | lock_value "enable: 0" "/proc/perfmgr/tchbst/user/usrtch" 99 | 100 | lock_value "0" "/sys/power/cpuhotplug/enabled" 101 | lock_value "0" "/sys/power/pnpmgr/touch_boost" 102 | lock_value "0" "/sys/power/pnpmgr/long_duration_touch_boost" 103 | lock_value "0" "/sys/kernel/ems/eff_mode" 104 | lock_value "0" "/sys/kernel/hmp/boost" 105 | lock_value "0" "/sys/kernel/hmp/boostpulse_duration" 106 | lock_value "0" "/sys/kernel/cpu_input_boost/*" 107 | lock_value "0" "/sys/kernel/intelli_plug/intelli_plug_active" 108 | lock_value "0" "/sys/kernel/zen_decision/enabled" 109 | lock_value "0" "/sys/devices/system/cpu/cpu*/sched_load_boost" 110 | lock_value "0" "/sys/devices/system/cpu/sched/sched_boost" 111 | lock_value "0" "/sys/devices/system/cpu/cpu_boost/*" 112 | lock_value "0" "/sys/devices/system/cpu/cpu_boost/parameters/*" 113 | lock_value "1" "/sys/devices/system/cpu/cpufreq/hotplug/cpu_hotplug_disable" 114 | lock_value "0" "/sys/devices/system/cpu/cpuhotplug/enabled" 115 | lock_value "0" "/sys/devices/system/cpu/hyp_core_ctl/enable" 116 | lock_value "0" "/sys/devices/virtual/misc/mako_hotplug_control/enabled" 117 | lock_value "0" "/sys/module/msm_performance/parameters/touchboost" 118 | lock_value "0" "/sys/module/msm_thermal/vdd_restriction/enabled" 119 | lock_value "0" "/sys/module/msm_thermal/core_control/enabled" 120 | lock_value "N" "/sys/module/msm_thermal/parameters/enabled" 121 | lock_value "0" "/sys/module/cpu_boost/parameters/*" 122 | lock_value "0" "/sys/module/aigov/parameters/enable" 123 | lock_value "0" "/sys/module/opchain/parameters/chain_on" 124 | lock_value "0" "/sys/module/houston/parameters/*" 125 | lock_value "N" "/sys/module/control_center/parameters/*" 126 | lock_value "0" "/sys/module/dsboost/parameters/*" 127 | lock_value "0" "/sys/module/cpu_input_boost/parameters/*" 128 | lock_value "0" "/sys/module/input_cfboost/parameters/*" 129 | lock_value "0" "/sys/module/blu_plug/parameters/enabled" 130 | lock_value "0" "/sys/module/autosmp/parameters/enabled" 131 | lock_value "0" "/sys/class/input_booster/*" 132 | lock_value "0" "/proc/mz_thermal_boost/sched_boost_enabled" 133 | lock_value "0" "/proc/mz_thermal_boost/boost_enabled" 134 | lock_value "0" "/proc/mz_scheduler/vip_task/enabled" 135 | lock_value "0" "/proc/oplus_scheduler/sched_assist/sched_assist_enabled" 136 | lock_value "1" "/proc/game_opt/disable_cpufreq_limit" 137 | lock_value "-1" "/proc/game_opt/game_pid" 138 | lock_value "0" "/proc/sys/fbg/frame_boost_enabled" 139 | lock_value "0" "/proc/sys/fbg/input_boost_enabled" 140 | lock_value "0" "/proc/sys/fbg/slide_boost_enabled" 141 | lock_value "0" "/proc/sys/kernel/sched_util_clamp_min" 142 | lock_value "1024" "/proc/sys/kernel/sched_util_clamp_max" 143 | lock_value "0" "/proc/sys/kernel/*boost*" 144 | lock_value "" "/proc/sys/kernel/sched_lib_name" 145 | lock_value "0" "/proc/sys/walt/*boost*" 146 | lock_value "0" "/proc/sys/walt/input_boost/*" 147 | lock_value "" "/proc/sys/walt/sched_lib_name" 148 | 149 | if [ -d "/dev/stune/" ]; then 150 | lock_value "0" "/dev/stune/schedtune.boost" 151 | lock_value "0" "/dev/stune/schedtune.prefer_idle" 152 | lock_value "0" "/dev/stune/*/schedtune.prefer_idle" 153 | lock_value "0" "/dev/stune/*/schedtune.boost" 154 | lock_value "0" "/dev/stune/*/schedtune.sched_boost_no_override" 155 | fi 156 | 157 | if [ -d "/dev/cpuctl/" ]; then 158 | lock_value "0" "/dev/cpuctl/cpu.idle" 159 | lock_value "1024" "/dev/cpuctl/cpu.shares" 160 | lock_value "0" "/dev/cpuctl/*/cpu.uclamp.latency_sensitive" 161 | lock_value "0" "/dev/cpuctl/*/cpu.uclamp.sched_boost_no_override" 162 | lock_value "0" "/dev/cpuctl/*/cpu.uclamp.min" 163 | lock_value "max" "/dev/cpuctl/*/cpu.uclamp.max" 164 | lock_value "0" "/dev/cpuctl/*/cpu.idle" 165 | lock_value "1024" "/dev/cpuctl/*/cpu.shares" 166 | fi 167 | 168 | if [ -d "/proc/perfmgr/boost_ctrl/eas_ctrl/" ]; then 169 | lock_value "0" "/proc/perfmgr/boost_ctrl/eas_ctrl/perfserv_*_boost" 170 | lock_value "0" "/proc/perfmgr/boost_ctrl/eas_ctrl/perfserv_*_uclamp_min" 171 | fi 172 | 173 | change_task_cpuset "surfaceflinger" "top-app" 174 | change_task_sched "surfaceflinger" "" 175 | change_task_cpuset "system_server" "top-app" 176 | change_task_sched "system_server" "" 177 | change_task_cpuset "android.hardware.graphics.composer" "top-app" 178 | change_task_sched "android.hardware.graphics.composer" "" 179 | change_task_cpuset "vendor.qti.hardware.display.composer-service" "top-app" 180 | change_task_sched "vendor.qti.hardware.display.composer-service" "" 181 | 182 | change_task_cpuset "adbd" "system-background" 183 | change_task_sched "adbd" "" 184 | change_task_cpuset "logd" "system-background" 185 | change_task_sched "logd" "" 186 | change_task_cpuset "lmkd" "system-background" 187 | change_task_sched "lmkd" "" 188 | change_task_cpuset "mdnsd" "system-background" 189 | change_task_sched "mdnsd" "" 190 | change_task_cpuset "tombstoned" "system-background" 191 | change_task_sched "tombstoned" "" 192 | change_task_cpuset "traced" "system-background" 193 | change_task_sched "traced" "" 194 | change_task_cpuset "swapd" "system-background" 195 | change_task_sched "swapd" "" 196 | change_task_cpuset "compactd" "system-background" 197 | change_task_sched "compactd" "" 198 | 199 | while [ ! -f /sdcard/.test_file ]; do 200 | true >/sdcard/.test_file 201 | sleep 1 202 | done 203 | rm -f /sdcard/.test_file 204 | 205 | if [ ! -d /sdcard/Android/ct/ ]; then 206 | mkdir -p /sdcard/Android/ct/ 207 | echo "balance" >/sdcard/Android/ct/cur_mode.txt 208 | fi 209 | 210 | #CuDaemon -config [config] -mode [mode] -log [log] --start 211 | "${BASE_DIR}/CuDaemon" \ 212 | -config "${BASE_DIR}/config.json" \ 213 | -mode "/sdcard/Android/ct/cur_mode.txt" \ 214 | -log "/sdcard/Android/ct/scheduler.log" \ 215 | --start 216 | 217 | sleep 5 218 | chmod 777 ./examine.sh 219 | ./examine.sh -------------------------------------------------------------------------------- /magisk/skt-utils.sh: -------------------------------------------------------------------------------- 1 | # useful code by Sakitin 2 | 3 | alias del=rm # for rm check 4 | 5 | check_files() { 6 | targetDir="$1" 7 | hashListFile="$targetDir/hashList.dat" 8 | test ! -f "$hashListFile" && { abort '! File "hashList.dat" does not exist!' || { echo '! File "hashList.dat" does not exist!'; exit 1; }; } 9 | hashList="$(cat "$hashListFile" | zcat)" 10 | for file in $(find "$targetDir/" -type f -not -path '*META-INF*' -not -name hashList.dat); do 11 | [ "$(echo -n "$hashList" | grep " ${file#$targetDir/}" | awk '{print $1}')" = "$(sha1sum "$file" | awk '{print $1}')" ] || { abort '! File validation failed!' || { echo '! File validation failed!'; exit 1; }; } 12 | done 13 | } 14 | 15 | get_target_bin() { 16 | targetDir="$1" 17 | fileName="$2" 18 | targetArch="$3" 19 | mv -f "$targetDir/$fileName.$ARCH" "$targetDir/$fileName" || { abort "! Arch \"$targetArch\" is not supported!" || { echo "! Arch \"$targetArch\" is not supported!"; exit 1; }; } 20 | del -f $targetDir/$fileName.* 21 | chmod a+x "$targetDir/$fileName" 22 | } 23 | 24 | until_key() { 25 | while :; do 26 | eventInfo="$(getevent -qlc 1)" 27 | eventType="$(echo -n "$eventInfo" | awk '{print $2}')" 28 | [ "$eventType" = EV_KEY ] || continue 29 | eventCode="$(echo -n "$eventInfo" | awk '{print $3}')" 30 | eventValue="$(echo -n "$eventInfo" | awk '{print $4}')" 31 | [ "$eventValue" = DOWN ] || continue 32 | case "$eventCode" in 33 | KEY_VOLUMEUP) echo -n up; return;; 34 | KEY_VOLUMEDOWN) echo -n down; return;; 35 | KEY_POWER) echo -n power; return;; 36 | esac 37 | done 38 | } 39 | 40 | until_key_up() { 41 | until [ `until_key` = up ]; do 42 | sleep 0.1 43 | done 44 | } 45 | 46 | until_key_down() { 47 | until [ `until_key` = down ]; do 48 | sleep 0.1 49 | done 50 | } 51 | 52 | until_key_power() { 53 | until [ `until_key` = power ]; do 54 | sleep 0.1 55 | done 56 | } 57 | 58 | set_system_file() { 59 | chcon -R u:object_r:system_file:s0 ${@} 60 | } 61 | 62 | set_dir_perm() { 63 | for dir in `find ${@} -type d`; do 64 | chmod 0755 "$dir" 65 | done 66 | } 67 | 68 | skt_mod_install() { 69 | [ "$MODPATH" = '' ] && { abort '! Value "MODPATH" does not exist!' || { echo '! Value "MODPATH" does not exist!'; exit 1; }; } 70 | check_files "$MODPATH" 71 | del -f "$hashListFile" 72 | } 73 | 74 | skt_mod_install_finish() { 75 | [ "$MODPATH" = '' ] && { abort '! Value "MODPATH" does not exist!' || { echo '! Value "MODPATH" does not exist!'; exit 1; }; } 76 | [ -d "$MODPATH/system" ] && { 77 | set_system_file "$MODPATH/system" 78 | set_dir_perm "$MODPATH/system" 79 | } 80 | } -------------------------------------------------------------------------------- /magisk/uninstall.sh: -------------------------------------------------------------------------------- 1 | # Copyright 2023 - present Tritium Developers 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | #!/system/bin/sh 16 | 17 | rm -rf /sdcard/Android/ct 18 | rm -rf /data/powercfg.json 19 | rm -rf /data/powercfg.sh 20 | exit 0 21 | -------------------------------------------------------------------------------- /magisk/webroot/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | tritium 6 | 7 | 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /module.prop: -------------------------------------------------------------------------------- 1 | id=ct_module 2 | name=Tritium 3 | version=V5.4.0 Test 4 | versionCode=250501 5 | author=Tritium Developers 6 | description=安卓性能调度优化框架 7 | updateJson=https://raw.githubusercontent.com/TimeBreeze/Tritium/main/Tritium.json 8 | -------------------------------------------------------------------------------- /modules/break_system_limit.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimeBreeze/Tritium/1665b480e3b76aabdf10e6dec0103abd6c609d2a/modules/break_system_limit.zip -------------------------------------------------------------------------------- /modules/ct_to_system_app.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimeBreeze/Tritium/1665b480e3b76aabdf10e6dec0103abd6c609d2a/modules/ct_to_system_app.zip -------------------------------------------------------------------------------- /modules/cu_jank_detector.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimeBreeze/Tritium/1665b480e3b76aabdf10e6dec0103abd6c609d2a/modules/cu_jank_detector.zip -------------------------------------------------------------------------------- /modules/cu_util_monitor.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimeBreeze/Tritium/1665b480e3b76aabdf10e6dec0103abd6c609d2a/modules/cu_util_monitor.zip --------------------------------------------------------------------------------