Rime系安卓输入法调研(语燕审查+键盘布局)

Rime 系安卓输入法调研(2026-09)

调研对象:语燕输入法安全审查 + libSogouShell.so 来源鉴定 + Rime 系安卓输入法键盘布局(含双字母布局能力)。全部结论基于实际克隆源码验证(本地克隆 trime / fcitx5-android / yuyansdk)。

一、语燕输入法(YuyanIme)安全审查

项目概况:基于 Rime 定制的安卓输入法,Kotlin,3.6k★,BSD-3-Clause。核心代码在 yuyansdk submodule(238 个 Kotlin 文件 / 26,089 行,commit d5609cc)。支持九宫格、全拼、双拼(7 方案)、手写、笔画、火星文等。

总体结论:隐私安全第一梯队,代码干净,可放心使用——README 声称的"最小权限、完全离线"经代码层验证属实。

检查项结果证据
权限声明仅 VIBRATE + BIND_INPUT_METHOD两个 Manifest 全文核对
网络能力无 INTERNET 权限技术上无上传能力
网络代码零网络调用无 okhttp/retrofit/HttpURLConnection/Socket
依赖纯 AndroidX + Room零统计/广告/上传 SDK
发布版构建offline flavorCI assembleOffline
剪贴板默认开启监听,本地存 50 条用于联想ClipboardHelper.kt 仅写 Room 本地库,可关闭
数据存储全在 app 私有目录getExternalFilesDir(rime/hw/theme)

组件安全:ImeService exported=true 但有 BIND_INPUT_METHOD 系统签名权限保护(标准做法);FileProvider 不导出;无 receiver;无 WebView/动态加载/命令执行。

代码质量:结构清晰(Rime.kt JNI 封装 + ImeService 标准 IME 生命周期);TODO 仅 1 处、空 catch 仅 1 处、零硬编码密钥;97 个 Kotlin object 单例略多(架构风格);签名密钥走 GitHub Actions secrets。

注意点:①手写引擎为闭源商业库(见下节)②维护放缓(最新 release 2026-05-30,428 open issues 积压)③剪贴板监听默认开启(本地联想功能,介意可关闭)。

二、libSogouShell.so 手写引擎来源鉴定

结论:公开技术圈无此库的风评——Sourcegraph 全库搜索唯一引用 = gurecn/yuyansdk(语燕自身),零第三方项目使用、零技术讨论。

二进制指纹鉴定出完整来源链(四件套结构):

库指纹身份
libSogouShell.so (7.6MB)源码路径 sogouimebs_platform/sogouimebs_base,静态链接完整 OpenSSL搜狗输入法内部 IME 基础平台 SDK
libgpen_handwriter.so源码路径 sogou_nnet.cpp/sogou_utils,符号 sogou::nnet::handwriting::CTC_Blstm搜狗手写神经网络核心(BiLSTM+CTC,NDK r15c/clang 5.0 编译,2017 年技术)
libhwInterface.soJNI 类名 com.boyasec.ime.input.sogou.SogouEngine博雅英杰(Boyasec)商业 SDK 封装层
libhandwriting.soAndroid NDK r522817/clang 18(2024-25 编译)语燕自写 JNI 壳

技术视角判断:①手写识别为 2017 年 BiLSTM+CTC 旧引擎,落后当前端侧识别一代;②供应链三层不透明(搜狗商业 SDK → 博雅英杰 → 语燕),无源码/无更新日志/无安全公告;③行为边界清晰——宿主 app 无 INTERNET 权限,该库无法外发数据,风险半径被系统权限钳住;④独家风险——全行业仅语燕使用,安全研究、漏洞披露、兼容性生态空白。

类比参照:同文(osfans)手写用自编译 librime 方案、小企鹅 fcitx5-android 用自研——主流 Rime 系开源输入法均不依赖商业闭源手写 SDK,语燕是特例。

三、Rime 系安卓输入法键盘布局(双字母能力)

输入法开源/活跃度键盘布局体系双字母共键
TRime 同文GPL-3.0 / 4.7k★ 活跃(2026-09-25 push)YAML 全自定义(preset_keyboards),内置仅"26键默认布局";九宫格/双拼/任意布局靠配置 patch机制支持(每键可绑任意字符/组合),无内置模板
fcitx5-android 小企鹅GPL / 5.7k★ 活跃Kotlin 硬编码:TextKeyboard(标准 QWERTY)+ 数字键盘,无九宫格不支持(每键单字母)
YuyanIme 语燕BSD-3 / 3.7k★ 半停滞T9九宫格、全键QWERTY、双拼×7、数字行、手写、笔画无
洛书输入法闭源(酷安)trime 魔改 → 机制与 trime 同源理论可,源码不可验证
指尖输入法闭源(酷安)trime 魔改同洛书
仓输入法(安卓)主战场 iOS/macOS,安卓版未证实Rime 内核未确认

双字母键盘布局分两种情况:

① 若指双拼(两键拼一音节)——全系支持:语燕内置最全(小鹤/智能ABC/自然码/紫光/微软/搜狗/乱序17);trime/小企鹅通过 rime schema 加载任意双拼方案。

② 若指两字母共一键的紧凑布局(黑莓 BB10 / Windows Phone 式,如 P+Q 共键)——没有任何一家内置:语燕、小企鹅键系统单字母实现不了;唯一可行路径是 TRime 的 preset_keyboards YAML 自定义(洛书/指尖同源理论上可行)。

四、结论

使用建议:隐私要求高 → 语燕可用(零网络权限,唯二手写引擎为闭源旧库,介意则不用手写功能);需要非常规键盘布局(双字母共键)→ 选 TRime,自写/找 preset_keyboards 配置即可。

调研日期:2026-09-26。仓库状态:trime @ master (2026-09-25)、fcitx5-android @ master (2026-09-24)、yuyansdk @ d5609cc。