Toki

Toki icon

An LSPosed module that gives you more control over your TikTok experience.

Build License: MIT Android 9+

English · 简体中文

Download · Module repository · Changelog · Report a problem · Telegram

Toki provides feed filters, playback controls, media tools and region settings through a Material 3 interface with 57 language options.

AI-generated project. This module is developed with AI-generated code and may contain errors. Review changes and test carefully before relying on it.

Hide My Applist (HMA): Do not hide Toki from TikTok. Toki does not provide HMA compatibility support. See Troubleshooting.

Table of contents

Install

Dependencies

Requirement Supported configuration
Android Android 9 (API 28) or newer
Framework A working LSPosed installation supporting libxposed API 102
TikTok Official client; adapted versions: 47.1.4, 47.0.3, and 46.8.3
Module scope com.zhiliaoapp.musically or com.ss.android.ugc.trill

Toki supports official TikTok clients only. Third-party modified clients, including TikTok Central, are not supported or adapted.

Toki requires the framework to apply changes to TikTok. Other TikTok versions are outside the documented compatibility scope. Download variants can contain different code, so a listed version alone does not guarantee that every feature will work.

Enable the module

  1. Download and install the Toki APK from Releases.
  2. Enable Toki in LSPosed and select your installed TikTok in the module scope.
  3. Open Toki, check the activation status on Home and choose the features you want to enable.
  4. Force-stop TikTok and open it again. If a method-discovery dialog appears, let it finish and dismiss the completion message. Then force-stop TikTok and open it again to apply the saved results.

Usage

Open Toki to configure features, change the interface language, view feature status or import/export settings from Home.

For example, to filter ads, enable ad filtering in the feed settings, restart TikTok and check the feature status in Toki after opening TikTok.

  • Restart when prompted. Newly enabled features, region spoofing, playback speed and immersive layout changes can require a new TikTok session. When Toki indicates that a restart is needed, force-stop TikTok and open it again.
  • Check feature status. The status page distinguishes your requested settings from those applied in the current session and reports adaptation failures. Installed filtering and clean-mode features receive configuration updates during the session.
  • Keep configuration backups. Export settings before reinstalling or making substantial changes, and import them from Home when needed.

Features

Area Options
Feed filters Filter ads across video feeds, including creator profiles. On For You, filter LIVE, photos, AI-labeled videos/photos, topic/creator cards, keywords, authors, duration, views and likes; block offline video insertion.
Layout cleanup Separate top navigation, bottom navigation and video-page controls, including the stop auto-scroll button.
Playback Custom speeds, automatic clean mode, fullscreen playback, progress-bar options and enhanced auto scroll across video pages.
Media and tools Prefer watermark-free downloads, set custom save folders, handle audio restrictions, configure translation and copy original or translated comment text.
Region Spoof SIM/region, language, time zone and location within TikTok; display creator regions.
Management Feature status, settings import/export, automatic method discovery and 57 interface language options.

Troubleshooting

How to apply method-discovery results

After discovery succeeds, dismiss the completion message, force-stop TikTok and open it again to apply the saved results. If discovery fails, check Toki's feature diagnostics and report the problem.

TikTok crashes before the discovery dialog appears

If you use Hide My Applist (HMA), check whether it hides Toki (io.github.meiyongai.toki) from TikTok. Logs from the previous implementation confirmed a startup crash when the discovery dialog could not find the hidden module package. The current source changes the resource-loading path, but the affected devices and HMA configuration have not been verified with that change.

Remove Toki from the apps hidden from TikTok, or disable HMA's hiding rules for TikTok, then force-stop TikTok and reopen it. Toki does not provide HMA compatibility support. Do not hide Toki from TikTok while using the module.

If the crash persists, include your HMA version and the LSPosed and crash logs from the same launch with your bug report.

A setting has no effect

Check that Toki is enabled, the correct TikTok package is selected in LSPosed and the relevant feature is enabled in Toki. Follow any restart instruction on the feature status page. If adaptation fails, include the TikTok version and download source in your report.

Development

MeiYongAI/Toki maintains the source code, issues and releases. The Xposed module repository distributes the same signed APK for the module catalog. Maintainers should follow the release synchronization instructions when publishing.

Environment

Component Version or requirement
IDE Android Studio, or Android SDK command-line tools
Gradle runtime JDK 21; Java source/target level is 17
Android SDK Platform 37 (platforms;android-37.0), Build Tools 37.0.0
Build plugins Android Gradle Plugin 9.4.0; Kotlin Compose plugin 2.2.10
Gradle 9.7.1, provided by the wrapper
App SDK levels compileSdk = 37, targetSdk = 35, minSdk = 28

Dependencies are resolved from Google Maven and Maven Central; Gradle plugins also use the Gradle Plugin Portal. Set JAVA_HOME or Android Studio's Gradle JDK to JDK 21, and configure the SDK through ANDROID_HOME or a local local.properties file. Machine-specific paths stay outside version control.

Build and test

Clone the repository and install the SDK packages used by CI:

git clone https://github.com/MeiYongAI/Toki.git
cd Toki
sdkmanager "platforms;android-37.0" "build-tools;37.0.0"

Build a debug APK and run the same verification tasks as CI:

./gradlew :app:assembleDebug
./gradlew :app:testDebugUnitTest :app:lintDebug :app:assembleRelease

In Windows PowerShell, use:

.\gradlew.bat :app:assembleDebug
.\gradlew.bat :app:testDebugUnitTest :app:lintDebug :app:assembleRelease

For release-specific lint checks, run :app:lintRelease with the wrapper. Release builds enable R8 and resource shrinking.

Build APK output
Debug app/build/outputs/apk/debug/app-debug.apk
Release without signing configuration app/build/outputs/apk/release/app-release-unsigned.apk
Release with signing configuration app/build/outputs/apk/release/app-release.apk

Sign a release

Copy keystore.properties.example to keystore/keystore.properties, then supply your own keystore path, alias and credentials. Keystore paths are relative to the repository root. Without this file, the release APK is unsigned and must be signed before installation.

Keep your keystore and keystore/keystore.properties private and backed up. Updates to the same installed app require the same signing key. The project's published release certificate fingerprint is:

SHA-256 34:22:83:7D:EA:4C:40:EC:06:1F:8E:59:94:70:51:2E:87:23:4A:28:4B:C8:51:E1:A6:EA:87:3A:9E:DE:5D:32

Source layout and adaptation

Path Purpose
app/src/main/java/io/github/meiyongai/toki/ Module entry point, hooks, configuration and Compose UI
app/src/main/res/ Android resources and translations
app/src/main/resources/META-INF/xposed/ Xposed module entry, API requirements and scope
app/src/main/resources/toki-host-rules.tsv Host-code fingerprint rules
app/src/test/java/io/github/meiyongai/toki/ Unit and resource/layout tests
Feature installation and method-discovery behavior

Toki selects features from the startup configuration. When all main features are off, it keeps session diagnostics without business hooks or adaptation scanning. SIM, language, time zone, GPS, download-path changes, status bar and duration alerts do not require symbol scanning; watermark-free downloads require source-selection adaptation. Saved progress-bar sub-options and region presets do not enable their parent features.

Official host builds use a common set of code fingerprints and member contracts. There are no adaptation branches selected by version number or download source. Unmatched code is reported as an adaptation failure.

Contributing

Use GitHub Issues for bug reports and feature requests, or join the Telegram group for questions and discussion.

For a bug report, include:

  • Toki and TikTok versions, plus the TikTok download source.
  • Android version, device model and LSPosed version.
  • Reproduction steps, relevant settings, and expected/actual behavior.
  • Whether method discovery completed, feature status and relevant LSPosed logs. For crashes, include crash logs from the same launch.

Remove personal information before sharing logs or screenshots. Follow the issue templates; do not upload TikTok APKs or decompiled host code.

Pull requests are welcome. Describe the problem, resulting behavior and how you verified the change. Run unit tests and lint before submitting, update both README translations when changing documented behavior, and keep generated build files, local SDK paths and signing credentials out of commits.

Support

If Toki is useful to you, you can support development through Ko-fi or Alipay. These options are also available in Toki under Support Toki. Donations are optional.

USDT · TRC20 / Tron

TXoTeZLpbQdn4wZF51858bC3zCwS822HbB

Use the TRC20 (Tron) network only. Verify the address and network before sending.

Disclaimer

Toki is an independent project, not affiliated with or endorsed by TikTok or ByteDance. It modifies app behavior and is provided as is, without warranties of compatibility, reliability or account safety. Use it at your own risk and follow applicable laws and platform terms. Respect creators' rights; download or reuse content only with permission.

License

Copyright © 2026 MeiYongAI. Licensed under the MIT License. Dependency credits and licenses are listed in Third-party notices.

Releases

10/5/2026, 5:24:22 AM

English

  • Added layout cleanup with separate top navigation, bottom navigation and video-page controls, including the stop auto-scroll button.
  • Enhanced native auto scroll across video pages, including profile and Following feeds.
  • Reuse valid method-discovery results after module updates; only new or changed rules are scanned when TikTok is unchanged.
  • Fixed missing seek-time numbers and visual search tags in automatic clean mode.
  • Updated translations and kept module settings accessible through LSPosed when the launcher icon is hidden.

Update directly from 1.0.1 / 1.0.2; the signing key is unchanged. Restart TikTok after updating and again if method discovery runs. Official TikTok clients only.

中文

  • 新增页面布局净化,顶栏、底栏、视频页面独立设置,支持隐藏停止连播按钮。
  • 增强原生自动连播,支持作者主页、关注页等视频页面。
  • 优化方法缓存复用:TikTok 未更新时,模块更新仅补查新增或变化的规则。
  • 修复自动净屏时拖动时间数字不显示、暂停后“搜同款”标签不出现的问题。
  • 完善多语言文案,隐藏桌面图标后仍可从 LSPosed 打开模块设置。

可直接覆盖升级 1.0.1 / 1.0.2,沿用原签名。更新后重启 TikTok,如触发方法查找,完成后再次重启。目前仅支持官方版 TikTok。

Source release: https://github.com/MeiYongAI/Toki/releases/tag/v1.0.3

Assets

2

9/30/2026, 11:57:35 AM

English

  • Adapted to TikTok 47.0.3 / 46.8.3.
  • Improved method discovery, feed filtering, clean playback and comment copying.
  • 57 interface languages, feature status and configuration import/export.

Requires: Android 9+ and LSPosed with libxposed API 102.

Upgrading from 0.x: The package and signing key have changed. Install io.github.meiyongai.toki separately and disable the previous module. Settings do not migrate automatically.

Creator-profile ad filtering still needs device verification.

中文

  • 适配 TikTok 47.0.3 / 46.8.3。
  • 完善方法查找、信息流过滤、播放清屏与评论复制。
  • 提供 57 种界面语言、功能状态查看及配置导入导出。

运行要求: Android 9 及以上,以及支持 libxposed API 102 的 LSPosed。

从 0.x 升级: 包名和签名已更换,请独立安装 io.github.meiyongai.toki 并停用旧模块;配置不会自动迁移。

作者主页广告过滤仍待实机验证。

English guide · 中文指南

Assets

2