layergram/layergram
GitHub: layergram/layergram
一款基于 Flutter 的本地加密隐写消息传递工具,实现端到端加密与零宽度 Unicode 隐写,无需服务器。
Stars: 1 | Forks: 0
# Layergram
**隐私优先的加密消息传递 — 传输无关、完全本地化、零服务器。**
Layergram 是使用 Flutter 构建的官方开源 Layergram 应用程序。
它允许用户在本地加密敏感内容,并通过**任意**现有的基于文本的通信渠道分享 — WhatsApp、Telegram、Signal、iMessage、电子邮件、社交网络、SMS 或任何保留 Unicode 文本的平台。
消息使用零宽度 Unicode 隐写术隐藏在普通文本中,使其在视觉上无法与正常对话区分,同时将加密流程完全保留在设备本地。
## 官方项目链接
- **官网:** https://layergram.app
- **GitHub 组织:** https://github.com/layergram
## 发布与分发模式
- 本仓库包含官方 Layergram 应用的公共源代码。
- 任何人可根据 [Apache License 2.0](LICENSE) 检查、编译、修改和运行该应用。
- 官方 Layergram 构建版本也可由 Layergram 免费通过 Apple App Store、Google Play 和 Microsoft Store 分发。
- 首个公开的开放源代码版本**不**提供 Web 分发目标。
- 该公开版本发布时未启用高级功能。
- 未来可选的付费插件可能单独开发,**不**属于本仓库范围。
## 支持的平台
| 平台 | 状态 |
|------|------|
| Android | 已准备 |
| iOS | 已准备 |
| macOS | 已准备 |
| Windows | 已准备 |
| Linux | 可从源码编译 |
| Web | 本发布不分发 |
## 核心功能
### 安全性
- **端到端加密** — X25519 密钥协商 + AES-GCM-256
- **隐写编码** — 加密负载隐藏在零宽度 Unicode 字符中
- **应用锁** — 生物识别解锁,支持 PIN 备用
- **安全本地存储** — 敏感状态在静止时受保护
- **屏幕保护** — 在支持的情况下提供可选的隐私屏蔽
### 核心功能
- **撰写并分享** — 通过任意基于文本的通道加密发送消息
- **解码** — 将收到的消息粘贴到应用中进行解码
- **身份管理** — 创建、导出和导入公共身份(通过二维码、深链接或文本块)
- **本地聊天历史** — 发送和接收消息的加密归档
- **固定 / 搜索 / 删除** — 会话管理
- **自毁消息** — 可选过期和阅读后删除
- **内置 42 种语言**
### 架构
- **能力接口** — 为未来可选插件提供清晰的扩展点
- **Riverpod** 状态管理
- **Hive + 安全存储** 用于本地持久化
- **关注点分离** — 加密、存储、UI 与能力边界清晰划分
## 本仓库包含内容
- 公开的 Layergram Flutter 应用
- 开放的 **Layergram 消息格式 (LMF)** 规范
- 本地身份、加密、隐写和持久化安全逻辑
- 能力插件的空操作实现(用于明确超出公共仓库范围的功能)
## 本仓库不包含内容
- 专有的消息网络、中继或后端
- 托管用户账户或云端消息存储
- 闭源高级实现或计费逻辑
## 项目结构
```
lib/
├── core/
│ ├── capabilities/ # Capability interfaces + no-op stubs
│ ├── crypto/ # Encryption, key management, message format
│ ├── domain/ # Domain types (IdentityId, etc.)
│ ├── security/ # App lock, biometrics, screen protection
│ └── storage/ # Hive repositories, secure storage
├── features/
│ ├── home/ # Chat list, message composer/viewer
│ ├── settings/ # Settings & about screens
│ └── premium/ # Optional entry points kept inactive in the public OSS release
├── app.dart # App entry point
└── main.dart # Bootstrap
```
## 能力接口
Layergram 使用能力接口保持公共仓库的简洁,同时为未来的官方插件保留扩展点。
| 能力 | 描述 |
|------|------|
| `IdentityCapability` | 多身份管理 |
| `BackupCapability` | 加密备份与恢复 |
| `CoverGeneratorCapability` | AI 辅助封面消息生成 |
| `ChatFoldersCapability` | 自定义聊天文件夹组织 |
| `MediaLightCapability` | 轻量级媒体附件 |
| `SecureKeyboardCapability` | 应用内触摸键盘,支持多语言布局和可选按键混淆 |
在本公共仓库中,这些可选能力默认为**安全的空操作实现**。任何未来的官方付费插件将位于本仓库之外,并有意从公共代码库中排除。
未来的可选插件可能为触摸设备提供应用内安全键盘,以便敏感输入可避免使用系统 IME,并可选地使用按键混淆布局。此设计仅作为纵深防御:它可以减少暴露于第三方键盘遥测和智能建议的风险,但无法防止操作系统被攻破、屏幕录制、滥用辅助功能工具或直接视觉观察。
## 快速开始
### 前置条件
- Flutter SDK >= 3.4
- Dart SDK >= 3.4
- 平台相关工具(iOS/macOS 使用 Xcode、Android SDK、Windows 使用 Visual Studio、Linux 使用相应工具链)
### 构建与运行
```
flutter pub get
flutter run
flutter run -d macos
flutter run -d windows
flutter run -d linux
```
### 验证
```
flutter analyze
flutter test
```
### 生成 API 文档
```
dart doc
```
## 规范说明
- [Layergram 消息格式 (LMF)](specs/LAYERGRAM_MESSAGE_FORMAT.md)
- [加密出口合规说明](specs/CRYPTOGRAPHY_EXPORT_COMPLIANCE.md)
## 贡献指南
欢迎贡献。
在提交大型功能拉取请求前,请阅读 [CONTRIBUTING.md](CONTRIBUTING.md),尤其是涉及加密、存储、协议行为或公共应用与未来可选插件边界的内容。
## 安全
如果您发现安全漏洞,**请勿公开创建问题**。
请私下报告至 **security@layergram.app**,并参考 [SECURITY.md](SECURITY.md) 的报告策略。
如需了解通用项目信息,请访问 https://layergram.app。
## 许可证
### Apache License 2.0
Layergram 根据 [Apache License, Version 2.0](LICENSE) 发布。
您可以在遵守许可条款的前提下使用、修改和再分发本代码 — 包括在商业和闭源产品中。
### 商标声明
名称 **Layergram**、Layergram 标志、官方 Layergram 商店列表及相关品牌资产归 **Simone Riccetti** 所有。
更多法律与商标信息请访问 https://layergram.app/legal。
本开源许可证**不**授予您使用 Layergram 名称或品牌发布您自己的分叉的权利。
### 衍生作品
如果您基于本仓库创建分叉或衍生应用,您必须:
- 使用您自己的产品名称、标志和品牌。
- 明确说明您的项目源自 Layergram 且**不是**官方 Layergram 发布。
- 使用您自己的 URI 方案和应用标识符,除非获得 **Simone Riccetti** 的明确书面许可。详见 https://layergram.app/legal 获取更多法律与商标指导。
### URI 方案
自定义 URI 方案 `layergram://` 保留给官方 Layergram 应用和明确授权的可互操作客户端使用。
分叉和衍生项目必须使用其自己的 URI 方案(例如 `yourapp://`),除非已获得 **Simone Riccetti** 的书面许可。详见 https://layergram.app/legal 获取更多法律与商标指导。
标签:AES-GCM-256, Android, DSL, Flutter, iMessage, iOS, IPv6支持, PIN码, Signal, Telegram, WhatsApp, X25519, 加密消息, 安全存储, 密钥协商, 屏幕保护, 应用锁, 开源, 操作系统检测, 敏感数据保护, 文本通道, 无服务器, 本地加密, 生物识别解锁, 电子邮件, 短信, 社交媒体, 端到端加密, 隐写术, 隐私优先, 隐私通讯, 隐蔽通信, 零宽Unicode