先给信的人 · macOS · Android

LOVE 输入法

你打的字,只属于你。

一个拼音输入法,macOS 与 Android。默认什么都不记。你愿意的时候,它才成为你自己的、加密在本机的记忆。
它凭什么敢说这句话,你不用信我,往下每一条都能自己验证

下载后请核对指纹。
shasum -a 256 ~/Downloads/LOVE输入法.dmg
5ee958361a8d4285bae040482a48b8a237a6a5e4a99222cb0da45fe8bbd5d4d8

shasum -a 256 ~/Downloads/LOVE输入法.apk
a8e1c6c67e25d536e614b06f7f16cbceed1ecddf59d22677d8556553cc63697f
为什么需要这样一个输入法
你打的每一个字,都可能不只你一个人看见。
这不是假设。下面两件事都发生过,都有公开的技术报告可查。
  • 2015 设备信息以明文在网上裸奔

    安全厂商 McAfee 分析发现,搜狗输入法的 Windows 版把设备标识符不加密地发送出去。

    此处依据 Citizen Lab 2023 年报告中对该分析的复述:“McAfee’s 2015 analysis previously observed that the Windows version of the app transmitted device identifiers in the clear without any encryption.”
  • 2023 你敲的键,能被网络上的旁观者实时解开

    多伦多大学 Citizen Lab 发现,搜狗输入法自研的加密存在严重缺陷。它会把最近敲下的按键内容发往云端做联想,而这些传输可以被网络窃听者解密——也就是说,第三方能看见你正在打什么。搜狗在收到通报后修补了这些漏洞。

    报告:“Please Do Not Make It Public”: Vulnerabilities in Sogou Keyboard Encryption Expose Keypresses to Network Eavesdropping,The Citizen Lab,2023 年 8 月
最容易被忽略的是这一点:2023 年修补的,是“第三方能不能在半路偷看”,而不是“内容还发不发出去”。Citizen Lab 在同一份报告里写得很清楚:
Even with the reported vulnerabilities now resolved, the Sogou app relies on transmitting typed content to Sogou’s servers as part of its ordinary functionality.
漏洞补上之后,把你输入的内容送到服务器,依然是这个产品正常工作的一部分。
译:即便所报告的漏洞已经修复,该应用仍然依赖把输入内容传送到搜狗的服务器,这是它日常功能的一部分。
那苹果自带的输入法呢?说句公道话。
性质完全不同,不该混为一谈。苹果的中文输入法主要在本机跑,没有证据说明它像上面那样把你敲的键送去云端。真正值得你知道的是另一件事,而且全部写在苹果自己的文档里。
键盘学的词
苹果官方文档把「QuickType 键盘学习词汇」列为端到端加密,钥匙只在你的设备上。这一点做得好。
iCloud 备份
但在默认设置下,iCloud 备份是「传输中与服务器上加密」,钥匙在苹果手里——而你的输入记录、聊天记录会随备份一起进去。
Your iCloud data is encrypted, the encryption keys are secured in Apple data centers so we can help you with data recovery, and only certain data is end-to-end encrypted.
—— 苹果官方文档「iCloud 数据安全概览」,描述默认的“标准数据保护”
开启「高级数据保护」后,备份也会变成端到端加密。但它是默认关闭的选项,绝大多数人从没打开过。
另外,如果你的 Apple 账户属地是中国大陆,苹果官方页面写明:
iCloud in China mainland is operated by GCBD (AIPO Cloud (Guizhou) Technology Co. Ltd).
—— 苹果官方支持页「中国大陆的 iCloud」
所以差别不在于谁善良、谁邪恶。差别在于钥匙在谁手上
只要数据离开了你的设备,你就必须信任某个机构、某套流程、某个默认开关有没有被打开。
LOVE 输入法不解决“该信任谁”这个难题,它绕开这个难题:那些字根本不出你的电脑
所以问题从来不是“加密够不够强”,而是这些字为什么要离开你的电脑
LOVE 输入法的答案很简单:不离开。输入法进程里没有任何联网能力,你可以自己验证——往下翻,每一条都附了命令。
为什么是"绝对"

隐私不是承诺,是结构

"我们很重视你的隐私"是每个偷数据的软件都会说的话。这里不讲这句。这里讲的是:就算我想偷,这个结构也不让我偷成——而这个结构你能亲手查。

1输入法进程本身,一行联网代码都没有

你每天打字,面对的是输入法进程。这个进程里没有任何网络能力——不是"我们承诺不上传",是它根本没有上传的能力。所有联网(登录、封存)都在一个独立的小程序里,只在你亲手点的时候才运行几秒。

你可以这样验证
# 数一下输入法二进制里的网络符号,结果是 0
nm -u ~/Library/Input\ Methods/LOVE.app/Contents/MacOS/LoveIME \
  | grep -icE 'socket|NSURLSession|CFNetwork|connect'
# → 0

2默认隐私模式,一个字都不落地

装好就是隐私模式。这个模式下,你打的每一段话在进入记忆之前都会被一道门挡下来,连密码框这种敏感输入更是强制拦截。不是"删得快",是从没被写下来过

你可以这样验证
# 一条命令跑完整自检:联网、插件、记忆落盘全查一遍
love-audit check

3共生模式:记忆在你机器上,加密,随时能删

你也可以按 ⌃⌥L 切到共生模式,让它记住你打的字,帮你成为"这个输入法认识你"。这些记忆用一把只存在你本机的密钥加密(AES-256-GCM),拷走数据库文件的人打不开。想全忘掉?销毁密钥,所有记忆当场变成永远解不开的乱码。

4不登录也完全能用,这是写进代码的铁律

它背后有一套叫 JIC 的身份系统,但登不登录和打字能力毫无关系。不登录,照样是一个完整好用的拼音输入法。登录只解锁"点亮字灵""永久封存"这些额外的东西。

5临时签名,正是因为没有黑箱

打开时 macOS 会说"无法验证开发者"。这是真的:我没有花钱买苹果的开发者证书。因为这个东西的重点是你能自己审、自己重新编译,而不是让一张证书替你信任我。签名只用来让你确认下载的文件没被人半路换过——所以上面给了指纹,请核对。
代价是 macOS 15 以后从 Finder 双击会被拦一次,安装步骤里给了绕开的办法;要彻底没有这一步,得花 99 美元/年买苹果的开发者证书做公证,这是选择,不是疏忽。

它能做什么

先是一个好用的输入法

隐私不该以难用为代价。这些是照着大家习惯的拼音输入法一条条打磨的。

打过的词,下次排最前

共生模式下它记你的选择;隐私模式故意不记。

打错也出对词

邻键纠错 + 常见拼音颠倒容错。

标点直出、繁简一键切

⌃⇧F 切繁简,繁简字典随包自带,不靠外部依赖。

认识你自己的词

能学系统词库里根本没有的长词、专名。

星图 · 每日报告

你打过的字连成星系;每天一份本机算出的输入报告,不联网、不上传。

永久封存(可选)

把一句话的存在证据上链,或让密文永久存放而原文一步不出本机

先给信的人:

字灵的读者LOVE 的持有者RIME / 鼠须管的老用户把"清掉寄生虫软件"当回事的人
Android

安卓版:不是承诺不传,是系统不让它传

Mac 上我能给你的最强证据,是「输入法这个可执行文件里一个网络符号都没有」。 安卓能给的更硬一层:权限是内核强制的。这个 App 的清单里没有 INTERNET 这一行, 于是它连一个字节都发不出去——哪怕代码里写了联网,系统也会直接拒绝。这不取决于我有没有说实话。

# 下载后,用安卓官方工具查它申请了哪些权限
aapt2 dump permissions LOVE输入法.apk

# 输出里应当没有 android.permission.INTERNET
# 也没有任何 exported 的 provider —— 没有对外的数据出口
没装安卓开发工具也能查:设置 → 应用 → LOVE 输入法 → 权限, 这里根本不会出现「网络」这一项。系统自己告诉你的,不是我说的。

装好它

  1. 下载 APK,点开安装

    手机会提示「来自未知来源」——因为这是自签名的,没走应用商店,和 Mac 上那道「无法验证开发者」是一回事。允许一次即可。

  2. 打开「LOVE 输入法」,按界面上的两步走

    先「启用 LOVE 输入法」在系统列表里打开它,再「切换到 LOVE 输入法」选中它。安卓的输入法都要这两步。

  3. 默认什么都不记

    键盘右上角写着「隐私」。按一下切到「共生」,才开始把你打的字加密记在本机。切回隐私,一切立刻停止——记忆、词库、字频统计三样都不再增长。

0.2.2 是很早期的安卓版本。功能是完整的:真 librime 出候选、全键盘与九宫格、简繁切换、加密记忆库、 自己的词进候选、每天的报告。所有隐私相关的行为都在设备上验证过—— 隐私模式下打字,数据库里一行都不会多;共生模式下写进去的是密文,整个库里搜不到原文。 但它还没有经过很多台真机的检验,遇到问题请告诉我。

安卓版没有自动更新,也不会自己检查新版本——它没有联网权限,做不到,这是零联网的代价。有新版时请回到这一页重新下载安装,装在原来那个上面即可,你的记忆和词库都还在。
安卓版没有链上封存和 JIC 登录——那两件事都要联网,而我不想为此给这个 App 开一个网络出口。 需要封存的话用 Mac 版。
安装

三分钟装好(macOS · Apple 芯片)

目前只支持 Apple 芯片(M 系列)。Intel Mac 暂不支持。

  1. 下载并双击打开 dmg

    打开后先别双击里面的任何东西。macOS 15 以后,没买苹果证书的程序从 Finder 双击一律会被拦下(「Apple 无法验证…」,只有「完成」按钮)。

  2. 打开「终端」,粘这一行,回车

    终端里跑的脚本不经过那道拦截。它会把输入法装好、解除下载隔离,只动你自己的家目录,不需要密码。

    bash "/Volumes/LOVE 输入法/安装.command"
    更愿意用鼠标?双击「安装.command」被拦之后,去 系统设置 → 隐私与安全性 → 往下滚到「安全性」→ 仍要打开,再双击一次。只有第一次需要。右键→打开在 macOS 15 以后已经不管用了。
  3. 在系统设置里添加

    系统设置 → 键盘 → 文本输入 → 编辑 → 左下角 + → 简体中文 → 「LOVE 输入法」→ 添加。

  4. 开始用

    用输入法切换键选到 LOVE。⌃⌥L 切隐私 / 共生(默认隐私),⌃⇧F 切简体 / 繁体。

  5. 以后不用再这样装了

    输入法菜单里有「检查更新…」。发现新版时点一下就能一键升级:由那个独立助手去下载、逐位核对指纹、自己装好。全程不经过 Finder,所以不会再有「Apple 无法验证」的弹窗,也不用再开终端。

不想用脚本?手动也行:Finder 按 ⇧⌘G 去 ~/Library/Input Methods,把 LOVE.app 拷进去,再在终端跑 xattr -dr com.apple.quarantine ~/Library/Input\ Methods/LOVE.app。装好看不到就注销再登录一次。
亲手验证

不用信我,自己查

装好后,随包带了一个自检脚本 love-audit。下面这些命令你随时能跑,看它到底有没有偷偷做什么。

# 一条龙:网络 / 插件 / 记忆落盘 / 隐私模式是否真的不存
love-audit check

# 只看联网:输入法进程有没有任何网络符号(应为 0)
love-audit network

# 真人测试:隐私模式下打一串字母按回车,看它有没有被记下来
love-audit canary
如果这些命令里任何一条的结果和这页说的不一样,别用它,并且告诉我。可验证的意思就是:说错了要能被抓住。