WeDouVibrator

📳 LSPosed 模块 | 为 微信输入法 & 豆包输入法 提供更丰富的震动选项。

我很喜欢vivo输入法那个双段震动,遂制作此模块给微信输入法和豆包输入法也弄一个两段震动。

需要API 101。


🏖️食用方法

安装

  • 通过 LSP仓库/本仓库 下载模块并安装。LSPosed用户在管理器中勾选作用域并重启目标应用即可。免root框架用户需要自行修补 (集成模式,勾选DexLoader文件提供器或者类似名称的同功能选项)

  • 模块鲁棒性还行,兼容其他模块和部分修改版。But 对于例如 “共存版”、“改包名版” 的版本,因为包名改变会导致无法使用,可拉取源码自行编译。

配置

  • 通过微信输入法设置->帮助与反馈 || 豆包输入法设置->问题反馈打开寄生设置页。

  • 对模块进行的 任何修改(包括修改模块设置/更新模块/更新本体),都需要保存重启输入法才能生效。

  • 按下震动: 打字按下时的震动策略; 抬起震动: 手指从屏幕抬起时的震动策略。

  • 震动风格
    • 无震动:顾名思义
    • 系统预设: Android系统中现有的最多20种震动风格
    • 简单自定义: 自定义震动时长的强度的震动
    • 自定义波形: 自定义具体震动曲线的高级震动,需要额外配置,参阅#高级配置
  • 重载输入法: 快速停止输入法设置进程和键盘进程,以便快速应用新设置或更新版本。重启微信输入法需要授予微信输入法root权限,重启豆包输入法无需额外权限

  • 模块的配置文件位于/storage/emulated/0/Android/data/包名/files/haostoo/config/,其中config.xml为基础配置,由模块自动写入。 保存配置的操作实际也是在此处写入,通常无需手动操作。customhaptic.json为自定义波形的配置文件,需手动创建,详见高级配置

高级配置

当存在格式正确的/storage/emulated/0/Android/data/包名/files/haostoo/config/customhaptic.json,且震动风格为自定义波形时, 对应的按下(Down)或抬起(Up)震动将根据此文件中的配置震动。 通过自定义曲线理论上可以模拟绝大多数应用和系统触觉反馈的震动风格,包括但不限于部分定制输入法提供的模拟机械键盘震动。

配置示例

{
  "down": {
    "timings": [0, 10, 40],
    "amplitudes": [0, 140, 60]
  },
  "up": {
    "timings": [0, 40],
    "amplitudes": [0, 120]
  }
}
字段说明

down: 按键按下时触发的震动波形。

up: 按键抬起时触发的震动波形。

timings:

震动时间数组,单位为毫秒(ms)。数组中的每个元素表示该阶段持续的时间。

amplitudes:

震动强度数组。 取值范围:0 ~ 255。 数值越大,震感越强。

示例:
"timings": [0, 6, 6],
"amplitudes": [0, 140, 60]

表示:

阶段 时长 强度
0 立即开始 开始
1 持续 6ms 140
2 持续 6ms 60

CustomHaptic 配置规则

1. 两个数组长度必须一致

正确:

{
  "timings": [0, 6, 6],
  "amplitudes": [0, 140, 60]
}

错误:

{
  "timings": [0, 6, 6],
  "amplitudes": [0, 140]
}
2. timings 第一个元素必须为 0

正确:

"timings": [0, 6, 6]

错误:

"timings": [5, 6, 6]

3. timings值必须非负,amplitudes 值必须位于 0~255 之间

正确:

"amplitudes": [0, 120, 255]

错误:

"amplitudes": [0, 300, -1]
4. 数组不能为空

错误:

"timings": []

配置建议

  • 不同设备的马达性能不同,相同配置的实际震感可能存在 巨大差异。想获得较正常的体验至少需要线性马达。转子马达难以高精度控制,效果很差。

  • 不同系统对于震动调用的频率和精度也有限制。因此对于timings分段不建议过短过复杂。过于复杂精细的曲线可能被系统截断或者降级, 导致实际的震动效果与配置效果有出入。

  • 因此总时长控制在几十毫秒,分2~4段是比较甜点的选择。

自定义波形震动基于 VibrationEffect.createWaveform() 实现。


🪲我有话说:

  • 下滑操作放弃了,有大手子做了。而且微信输入法那边混淆的太厉害了我整不明白。

  • 作者只有一部vivo手机开发与测试,因此当你的设备没有生效时欢迎带日志反馈(issue/酷安)。

  • 酷安在这,有问题欢迎。虽然我大概也不知道怎么解决就是了。会学的都会学的。。

  • 个人仓库,这边更新也许更及时一点。

Releases

ver1.1.7

Stable

4/30/2026, 8:27:33 AM

本模块迎来大变!


  • 移除原有的模块界面
  • 新增寄生设置页,设置打开方式:微信输入法设置->帮助与反馈
    (部分修改版移除了微信输入法的桌面图标,不过实测仍可通过键盘界面打开设置)
  • 移除了hook成功的toast提示,改为在模块目录下生成文件标记(hookstatus.txt),当方法找到hook成功时生成,记录hook注入时间。
    (有的系统好像经常会把键盘进程干掉导致频繁弹toast比较碍事,想来可能需要看这个toast的也不是很多毕竟用手一点就知道成没成功了)

  • 提供的快速重载功能,用于快速重启输入法子进程

  • 好像也没有别的了,功能都在设置页写了。
    对了选择系统预设风格的下拉菜单是可以滑动的。一共有二十种预设风格选择。由于Android版本不同和厂商魔改可能会导致有的效果不生效或者很诡异,自行体验。

  • 模块的配置文件位于/storage/emulated/0/Android/data/com.tencent.wetype/files/haostoo/config/config.xml为配置文件,可以直接精确数值修改(不过意义不是很大就是了反正最后都要换算到0~255再取整),hookstatus.txt为hook标记,前文提过。


以上

继续欢迎带日志反馈,有日志反馈我就尽量修,没反馈我自用没问题就不管了。
然后我要研究怎么做下滑快捷操作顺便好好学学kotlin了,这个好像没我想的那么简单。短时间内如果没有严重问题估计不会更新了。

Assets

3