许诺隐私,谁都会。Lucent 的做法是让侵犯隐私变成一件费力的事——架构里根本就没有给你的数据准备出口。
在你导出、或让模型看之前,没有任何东西离开设备。这是简短版本;完整政策请通过下方按钮阅读,代码也这么认为。
你的笔记住在 SQLCipher 加密数据库里,附件逐个上锁。最烫的两条路——PBKDF2 密钥派生与 AES-256-GCM——用 Rust 经 JNI 跑,另有完全一致的 Kotlin 兜底,应用永远不会被一个原生库绑架。拿到你解锁的手机是一回事;拿到你的文件的人,得到的只是一堆噪声。
这是真正的暴力破解策略,不是一句客气的请求:逐级延长的冷却、重启也清不掉的计数器,可选的安全问题,可选的自毁——指纹(Android)与 Windows Hello 在整个冷却期内礼貌地告假。猜错太多次,应用真的会停止谈判。
备份是单个 .lcb 文件,带着笔记、任务、历史、对话、附件和设置跨设备走——恢复前可预览,可定时自动跑,并能设密码。没人能读的备份是纪念品不是备份,所以它出去读一遍,回来再读一遍。
分享菜单集成:关。诊断:关,开了也只存本地。你接的助手服务全凭你自己选。云同步是你自己配的模块,走 WebDAV——你的服务器,你的规矩。这个应用里没有任何"默认开启、藏在三级菜单里让你关"的东西。
云端模型看到的,恰好是你摆在它面前的东西——没有任何后台同步、索引或"改进"。想当彻底的隐士?在本地跑一个 .gguf,网络可以一直关着。加密唯一的例外是导出为 Markdown、Word、PDF 或 Excel——那是一份你在别处也能打开的文件,这正是导出的意义。
Lucent 是一款面向 Android 与 Windows 的笔记与任务应用。本政策说明这款应用会在本机保存什么、会把什么发送到设备之外,以及你如何控制这两件事。这里描述的是本仓库中构建出的 Lucent 本身。
下文逐条展开这些说明,也包括它们的边界。
Lucent 由 Jessica Martinez 开发。关于本政策或应用数据处理方式的问题,可发送至 yuan47578@gmail.com。
Lucent 是以 MIT 许可证发布的自由软件。开发者不运营任何收集或存储用户数据的服务,本应用也没有服务端组件。
你在 Lucent 里创建的一切都存放在设备上应用自己的私有存储区中。该存储区对其他普通应用不可读,卸载应用或清除应用数据时会一并删除。
保存的内容包括:
数据库由 SQLCipher 加密。在 Android 上,应用通过 Room 搭配 SQLCipher 使用数据库;在 Windows 上,则通过随应用附带的 JDBC 驱动,以 SQLCipher 加密方式和同样类型的 256 位密钥访问 SQLite。笔记、任务、对话、历史与设置都在这个数据库里。
附件单独加密。每个文件在写入磁盘之前,都会放进一个带认证的 AES-256-GCM 容器,按 64 KiB 分块处理。磁盘上的文件名是随机标识符,而不是你在应用里看到的名字。
备份同样始终加密,见第 6 节。
数据库密钥和附件密钥都是在你的设备上随机生成的 256 位值。它们不来自你输入的任何内容,也不会以明文写入磁盘。在 Android 上,它们由 Android Keystore 中的密钥包裹保护——设备支持时该密钥由硬件保护;Keystore 不可用时则退回本机加密方案。每把密钥都会保留一份恢复副本,以免 Keystore 出问题就损毁你的数据。
API 密钥、WebDAV 密码、备份密码和应用锁凭据都经过同一条加密路径保存,不是明文。应用锁的密码和安全问题答案则完全不保存:只保留加盐哈希,无法从哈希还原出密码本身。
这里的加密保护的是静态数据:一份被带离设备的数据库、附件文件或备份,没有密钥就无法读取。它不能防范有人拿着已解锁的设备、以你的系统账号直接使用;也无法保护应用打开期间的数据——内容正在显示或编辑时,解密后的文本必然存在于设备内存中。
Lucent 不会在这件事上含糊。如果加密库无法加载,或者某个数据库无法加密、无法解锁,应用会记录并如实报告,而不是假装一切正常;设置里提供了加密检查,用于确认存储的值确实被封装并能正确解开。如果数据库无法用已保存的密钥解密,Lucent 会把它搁置到一旁而不是删除,并明确告知你,以便你从备份恢复。
Android 上的桌面小组件会在启动器上显示笔记标题或任务标题。凡是小组件显示的内容,能看到那块屏幕的人都能看到。小组件是可选的,也可以随时移除。
默认情况下,什么都不会。笔记、任务、提醒、历史、附件、本地搜索和本地助手都不需要联网。
具体来说,Lucent 不包含统计分析 SDK、广告 SDK、崩溃上报服务和追踪标识符。它没有账号体系,也不会向任何地方发送设备指纹。崩溃护盾在你开启后,只会把捕获到的错误写入设备上的本地日志文件,不会上传。诊断日志同理:默认关闭,只在本地写入,只有你主动导出并选择分享时才会离开设备。
由于 Lucent 没有服务器,开发者既无法读取你的数据,也无法替你恢复数据。
下面每一项都是可选的、默认关闭的,并且由你掌控。启用其中任何一项时,数据都是从应用直接发往你配置的第三方,不经过任何 Lucent 服务——因为并不存在这样的服务。
云端模式下的助手使用你自己提供的 API 密钥和你自己选择的服务商。Lucent 能使用 OpenAI 兼容、Anthropic 兼容和 Google 兼容的请求格式;任何 OpenAI 兼容地址都可以,包括 DeepSeek 和自建网关。你可以保存多个服务商配置并随时切换。
你发送消息时,Lucent 会从你的设备向配置的 Base URL 发出 HTTPS 请求,其中包含:
你的 API 密钥会作为该请求的身份验证头发往这家服务商,不会发往其他任何地方。服务商如何处理收到的文本,请阅读它自己的隐私政策;那属于你和该服务商之间的约定,Lucent 既看不到也无法控制。
助手不会悄悄改动你的数据。在写入任何内容之前,它会先展示打算做什么,而且这个确认步骤默认开启。工具是可选的:本地模型有自己的工具开关,云端助手的工具权限也可以关闭。任何一个关掉之后,模型仍然可以对话,但无法读取或修改你的笔记与任务。
网络搜索默认关闭。当你开启它、且助手判断需要搜索时,Lucent 会把搜索关键词发送到公开的搜索引擎。引擎由你选择,也可以保持“自动”:自动会依次尝试,直到有一个返回结果——Bing、DuckDuckGo、Google、Brave、Mojeek、Yandex、百度、搜狗、360 搜索,以及 Wikipedia 搜索 API。全程不使用搜索 API 密钥,也不需要账号。关键词会离开你的设备,返回的结果会交给助手并纳入回答。给出结果的那个引擎能看到关键词和你的 IP 地址。网络搜索需要开启 Agent 模式;在本地模型上还需要开启工具开关;隐迹模式会完全阻断它。
Lucent 的语义搜索跟随你正在使用的助手,无需额外选择。使用本地模型时,索引全部留在设备上,但在当前构建中尚未实现,因此不会有任何内容离开设备。使用云端模型时,为了生成每个向量,被索引的文本会发送到你配置的 AI 服务商的 embeddings 接口,也就是说笔记文本会离开设备。切换两种模型,行为也随之切换。
云端备份默认关闭。开启后,你需要填写自己已有的 WebDAV 兼容服务的地址、用户名和密码,例如坚果云、Nextcloud、Koofr,或任何其他 WebDAV 服务器。Lucent 会把 .lcb 备份文件上传到你指定的文件夹,也可以列出并下载它们以进行恢复。文件在上传前已经加密;服务商保存到的是加密文件,而你填写的凭据会发送给该服务用于身份验证。自动上传是另一个开关,同样默认关闭。
自动检查更新默认关闭。当你开启它,或主动让 Lucent 检查时,应用会向本仓库公开的 GitHub releases API 请求最新版本信息并比较版本号。该请求除了一次 HTTPS 请求本身携带的内容(例如你的 IP 地址和标注为 Lucent 的 User-Agent)之外,不包含任何个人信息。如果有更新的版本,Lucent 会提示你;只有在你选择更新时,才会从 GitHub 下载 APK 或安装程序。
Lucent 不会自行向外发送内容。有两个功能会把数据交给其他应用,而它们都由你控制:
如果你导入 GGUF 模型,助手就可以用 llama.cpp 直接在设备上运行它。这种模式下不会向任何地方发送内容:生成回复不涉及账号、API 密钥或网络请求。模型文件留在你的设备上,离开应用时模型会被卸载。本地工具是独立开关,默认关闭。GPU 加速是可选项,也可以关闭。
除笔记与任务之外,你还可以给助手一套真正的工具箱:一个可以读写的工作区文件夹、终端命令、 文档处理、插件,以及对外部服务的连接。每一项都在「设置 → 高级 → 工具箱」里单独开关,凡是会离开 设备的能力,只有在你打开开关、并且默认情况下先征得你同意之后才会动作。
备份是你自己创建的单个 .lcb 文件。它可以包含笔记、任务、版本历史、笔记本、对话、附件、设置和 API 密钥,并可选地包含导入的字体和本地模型文件。包含哪些内容、写到哪个位置,都由你决定。
每个 .lcb 文件都经过加密,有两种模式:
带密码的备份可以附加一个安全问题和答案,以便日后找回密码。该选项默认关闭,并且它会让备份的强度只等于密码和答案中较弱的那一个,所以要选一个答案只有你自己知道的问题。
自动备份在你启用后,会写入你选择的文件夹,按你设定的数量保留副本,也可以同时上传到你配置的 WebDAV 文件夹。无论哪种情况,备份文件都是同一个加密容器。备份文件放在哪里、留几份,完全由你决定;删除它们同样由你决定。
Lucent 的特权 shell 集成是可选项,默认关闭,并且需要 Lucent 之外的程序和授权。
在 Android 上,当你安装 Shizuku、启动其服务并在系统中向 Lucent 授予权限后,应用可以通过 Shizuku 执行特权操作。它的用途是完成你明确要求的、普通应用自己做不到的事情,例如安装你下载的应用更新。Lucent 无法自行启动 Shizuku,也无法给自己授权;除非你启用了该集成并授予了权限,它不会通过这条路径做任何事。你可以随时在 Shizuku 或 Android 设置中撤销权限,也可以在 Lucent 里关闭该集成。应用会显示实际获得的 uid,以便你确认所取得的是何种身份。
Lucent 还声明了所需的普通 Android 权限,每项都有明确用途,见第 8 节。
| 权限 | Lucent 为什么需要它 |
|---|---|
网络访问(Android INTERNET) | 向你配置的助手服务商发送消息、在你开启后执行网络搜索、在你开启后上传 WebDAV 备份,以及在你开启后检查更新。上述任何一项没有启用时,不会有数据被发出。 |
通知(Android POST_NOTIFICATIONS) | 显示任务提醒,以及你启动的下载、备份或生成任务的进度。 |
精确闹钟(Android SCHEDULE_EXACT_ALARM) | 让任务提醒在你设定的时间触发,而不是大约在那个时间。 |
开机启动(Android RECEIVE_BOOT_COMPLETED) | 设备重启后重新注册提醒,使明天到期的提醒能挺过一次重启。 |
前台服务(Android FOREGROUND_SERVICE、FOREGROUND_SERVICE_DATA_SYNC) | 在应用不处于前台时继续完成备份、下载或模型生成,避免中途被系统终止。 |
生物识别解锁(Android USE_BIOMETRIC;Windows 上为 Windows Hello) | 让你用指纹或面容解锁应用,而不必每次输入应用锁密码。可选、默认关闭,且只用于本机解锁。 |
振动(Android VIBRATE) | 输入触感和触觉反馈。 |
安装应用包(Android REQUEST_INSTALL_PACKAGES) | 通过系统安装程序安装你选择下载的更新。 |
Shizuku 服务权限(Android moe.shizuku.manager.permission.API_V23) | 第 7 节所述的可选特权集成。声明它只是为了让 Shizuku 能够工作;除非你安装 Shizuku 并授予权限,它不产生任何效果。 |
Lucent 不申请对文件或存储的广泛访问权限。文件和文件夹都由你通过系统自带的文件选择器挑选,Lucent 只会拿到你选中的那一个项目。字体和模型文件也是如此:由你挑选,然后复制进应用自己的存储区。
在 Lucent 里,隐私是一组开关,全部由你掌握,也全部位于设置中。主要包括:
Lucent 会一直把你的数据保存在设备上,直到你删除它。删除的笔记和任务会先进入回收站,除非你提前清空回收站或清除全部数据,否则 30 天后会被永久移除。版本历史只在对应的历史开关开启期间保留,并会随所属的笔记或任务一起移除。
要删除全部内容:
有三样东西在 Lucent 的能力范围之外,应用无法替你删除:
如果这些也要一并清除,请删除相应文件,并使用服务商提供的删除功能。
Lucent 是一款通用的笔记与任务应用,并非面向儿童,也没有账号体系、广告和社交功能。开发者不从任何人(包括儿童)收集个人信息。应用的数据始终留在使用者自己的设备上。
如果未来的 Lucent 版本改变了数据处理方式,本政策会随之更新,顶部的日期也会变更。实质性变更——即影响哪些数据会离开你设备的变更——会在引入该变更的版本更新说明中写明。对你适用的政策版本,就是你正在运行的 Lucent 所附带的那一版,它的历史记录可以在仓库的提交历史中查到。
关于 Lucent 隐私方面的问题、更正和建议,可发送至 yuan47578@gmail.com。
开发者:Jessica Martinez
Copyright © 2026-2027 Jessica Martinez。