一个使用 libxposed Modern API 102.0.0 的轻量模块,只隐藏 WPS Office 启动时的这条简体中文提示:
设备已Root,使用WPS Office可能存在安全风险。
其他 Toast(例如保存、复制、文件打开失败等提示)正常放行。模块不修改 WPS 的 root 检测结果、不禁用应用组件、不修改 WPS APK,也不授予 WPS root 权限。
- 从 Releases 下载并安装 APK。
- 在支持 libxposed API 102 的 LSPosed 中启用 WPS Root 提示隐藏。
- 作用域只勾选 WPS Office(
cn.wps.moffice_eng),不需要勾选系统框架。 - 强制停止 WPS 后重新打开,无需重启手机。
模块没有独立的桌面入口或设置页面。关闭模块并重启 WPS,即可恢复提示。卸载模块同样可以恢复。
如果此前安装了本地试用版 local.wps.roottoast 或 ToastBlocker,请先关闭或卸载它们,避免重复 Hook。正式版包名是 io.github.ferstar.wpsroottoast。
实机验证环境:
| 项目 | 已验证版本 |
|---|---|
| Android | 16 |
| WPS Office | 26.9.1(1991) |
| LSPosed | 2.2.1(7912),libxposed API 102 |
APK 的最低 Android 版本为 8.0(API 26),但其他 Android/WPS 组合尚未做实机验证。需要支持 libxposed API 102 的框架,不支持 legacy Xposed API 或 API 100/101。 仅匹配上述简体中文文案;WPS 改变文案、语言或提示实现后,可能需要更新模块。WPS 定制版、极速版及其他包名不在作用域内。
模块使用 XposedModule、modern 入口文件和 interceptor chain API,仅在 cn.wps.moffice_eng 中拦截公开的 Toast.makeText/setText/show 方法。创建或更新 Toast 时,忽略排版空白后对整句提示做精确匹配,用弱引用集合标记对应的 Toast;只有被标记对象的 show() 被跳过,其他调用通过 chain.proceed() 放行。更新为普通文字或自定义视图时移除标记。模块不读取隐藏的 Toast.mText 字段、不保留提示文本,Hook 失败时恢复应用原有行为。API 102 的稳定 hook id 支持框架热重载时原子替换此模块的旧 hook。
不申请权限,不联网,不收集文档、账号或设备信息,不记录 Toast 文本。LSPosed 日志仅记录模块加载和命中拦截的状态。隐藏提示不改变设备实际的 root 状态或安全风险。
需要 JDK 17 和 Android SDK(平台 36)。
./gradlew :app:testDebugUnitTest :app:lintRelease :app:assembleDebug构建 release APK:
./gradlew :app:assembleRelease未配置签名时输出 unsigned APK。为 release 配置你自己的 PKCS12/JKS 密钥,别名为 release,并设置环境变量 ANDROID_KEYSTORE_PATH 与 ANDROID_KEYSTORE_PASSWORD。发布签名密钥不在本仓库中。
libxposed API 102.0.0 仅作编译依赖,不随 APK 分发。依赖来自 Google Maven 和 Maven Central,不需要第三方 Maven 镜像。
GitHub Actions 对提交执行单元测试、lint 和 debug 构建。维护者可运行 Build signed release,使用仓库 Secrets 中的 ANDROID_KEYSTORE_BASE64 和 ANDROID_KEYSTORE_PASSWORD 构建正式签名 APK。
请在 Issues 中提供 Android、WPS、LSPosed 版本,以及相关的模块日志。截图请遮挡账号和文档名称。
本项目与 WPS/金山办公没有关联,不包含 WPS 的代码或商标图标。
MIT。