## 起因 用户 2026-11-01:「家书已经有人做了,八月份刚上线的」。 核实:「家书 HomeBook」(广州家书科技有限责任公司,粤ICP备2026096420号, 2026-06 成立、08 上线)。功能**部分重合**(家庭记录 + 相册 + 家谱)。 华为审核指南 1.3「应用名称不得和其他应用名称相同,避免混淆」, 虽然个人与企业主体查重不互通、技术上能过,但被人工驳回概率高。 ## 定名过程(用户逐个否掉) | 候选 | 否决原因 | |---|---| | 寸草 | — | | 家卷 | ❌ 与「家眷」同音,口头传播会打错字 | | 家时光 | ❌ App Store 已有「家·时光」定位几乎一致;且「家+时光」是常见组合,辨识度低 | | 家纪 | ❌ 已有重名 | | **岁月家** | ✅ 搜不到同名应用;是口号的直接展开(岁月 + 家) | ## 最终定稿(用户明确指定) ``` 应用名 岁月家 主标语 一家人用岁月写成的一本书 ← 不变 一句话简介 一家人用岁月写成的一本书 ← 改为与标语相同 官网标题 岁月家 · 一家人用岁月写成的一本书 英文名 FamilyBook ← 不变 包名 familybook.yangyq.net ← 不变 ``` ## 改动范围(17 + 18 处,12 个文件) ### 应用名(17 处) `AppScope/resources/base/element/string.json` 的 app_name, `entry/.../string.json` 的 16 条(应用名、卡片名、无障碍描述)。 ### 用户可见文案(18 处) `FbBackgroundSync` / `EntryAbility`「正在同步家书数据」、 `FbAttachOpen`「家书附件」相册名、`FbHttp` 地址校验失败提示、 `FbCardData` / `FbCardMediaData` 卡片空态「先在「家书」里填写服务器地址」、 `TopBar` / `Drawer` / `FbLoginPage` 的应用名文本、`FbSettingsPage` 的说明。 ## 刻意不改 - **包名 / bundleName**(用户明确要求不变,且改了等于换一个应用) - **英文名 FamilyBook**、目录名、仓库名(改了会让 git 历史、部署脚本、证书路径全跟改) - **代码注释**里 200+ 处「家书 FamilyBook · 某模块」—— 不影响运行时, 改了只会制造噪音 diff,让将来 blame 变难 - **主标语**里一个字都没动 ## 验证 ### 编译 `BUILD SUCCESSFUL`,33 tasks。 ### 产物实测 解包 `.hap` 的 `resources.index`: - 「岁月家」出现 **17** 次 - 「家书」出现 **0** 次 ### 全局一致性校验(31 项全过) `_tooling/check_rename.js`: - 客户端 app_name / EntryAbility_label / 产物内容 - .ets 用户可见文案无残留(排除注释) - 服务端非注释代码无残留 - `Auth::homeTitle()` 用「某某某的家庭岁月」 - `DEFAULT_SLOGAN` 未被改动 - 官网线上 5 个页面无「家书」、标题含岁月家、渲染后 h1 是品牌名 - 材料 app_name / 一句话简介 / 包名 / versionCode / 域名 ⚠️ 校验过程中我自己的判据出了 2 次假红: ① 注释识别不全(漏了 `/**` 单行块注释和 `<!--` HTML 注释)→ 补齐 isCommentLine ② 「为什么叫岁月家」整节重写后,旧断言还在查「书信」「家与书」 (那是**旧名字**的逻辑)→ 改成查「岁月」+「家」的拆解 ## 一处语义决策(问过用户) 网页端 `Auth::homeTitle()` 生成「某某某的家书」—— 这是**产品核心语义** (每个家有自己的那一本),直接换成品牌名会读成「某某某的岁月家」,不通。 用户定:改成 **「某某某的家庭岁月」**。 兜底(无姓名时)仍用品牌名「岁月家」。 ## 连带影响(不阻塞) - 上架材料 7 个文件已同步(含软著全称改为「岁月家家庭生活档案管理软件」) - 官网已部署,线上标题已是新名字 - 软著申请尚未提交 —— 正好一次写对新名字,不需要变更
266 lines
13 KiB
Markdown
266 lines
13 KiB
Markdown
# 岁月家 隐私政策
|
||
|
||
**生效日期**:2026 年 11 月 1 日
|
||
**最后更新**:2026 年 11 月 1 日
|
||
**适用产品**:岁月家(HarmonyOS 应用,包名 `familybook.yangyq.net`)
|
||
**开发者**:杨永全(个人开发者)
|
||
|
||
---
|
||
|
||
## 引言
|
||
|
||
岁月家是一款**家庭内部使用**的生活档案工具,用于记录一家人的日程、任务、纪念日、观影、旅程、财务、读书笔记与资料附件。
|
||
|
||
我们深知家庭数据的高度私密性。因此岁月家在设计上遵循一条原则:
|
||
|
||
> **数据属于用户自己。我们不收集、不上传、不商用、不共享。**
|
||
|
||
本政策逐条说明:我们会处理哪些信息、为什么处理、存在哪里、会不会给别人、你有哪些权利、怎么联系我们。
|
||
|
||
**我们不做的四件事**(在此明确声明,便于审核与用户核对):
|
||
|
||
1. **不含任何广告 SDK**,不投放广告,不做用户画像。
|
||
2. **不含任何第三方统计/埋点 SDK**(无友盟、无友盟+、无 TalkingData、无华为分析等)。
|
||
3. **不申请设备标识符**(不读取 OAID / IMEI / IDFA / SN / MAC 等)。
|
||
4. **不向任何第三方出售、出租、交换你的个人信息**。
|
||
|
||
**上述四条不是空口承诺 —— 本应用完全开源,你可以自己核实。**
|
||
|
||
网页端与鸿蒙客户端两个仓库全部公开(Apache License 2.0),
|
||
无需注册即可浏览与 clone:
|
||
|
||
| 仓库 | 内容 | 地址 |
|
||
|---|---|---|
|
||
| FamilyBook | 网页端 / 服务端程序 | https://code.yangyq.net/laoyang/FamilyBook |
|
||
| FamilyBook_harmonyos | 鸿蒙客户端 | https://code.yangyq.net/laoyang/FamilyBook_harmonyos |
|
||
|
||
任何具备技术能力的人都可以逐行核对:有没有统计代码、联网请求都发往哪些地址、
|
||
权限申请后在代码里实际用来做什么。**你不需要相信我们的话,你可以直接看代码。**
|
||
|
||
---
|
||
|
||
## 一、我们处理的个人信息
|
||
|
||
岁月家的功能决定了它会保存"你自愿填进去的内容"。这些内容全部保存在**你自己部署的服务器**和你**本机**上,我们不设中心化数据库。
|
||
|
||
### 1.1 账号信息(必需)
|
||
|
||
| 信息项 | 用途 | 是否必需 |
|
||
|---|---|---|
|
||
| 手机号 | 登录账号的唯一标识 | **必需**(不提供无法登录) |
|
||
| 密码 | 账号鉴权 | **必需** |
|
||
| 姓名 / 昵称 | 在家庭成员中标识你 | 必需 |
|
||
| 头像 | 界面显示 | 可选 |
|
||
|
||
**存储方式(重要)**:
|
||
|
||
- 密码经 **bcrypt 单向哈希**后存储,**我们无法还原你的明文密码**。
|
||
- 手机号存储为两列:一列是 **SHA-256 哈希**(仅用于登录时比对查找),另一列是 **AES-256-CBC 加密后的密文**(仅用于在设置页回显给你本人)。
|
||
|
||
### 1.2 你主动录入的家庭内容(核心功能)
|
||
|
||
以下内容均由你**主动填写或上传**,不填写就不存在:
|
||
|
||
- **家庭成员名册**:姓名、称谓、生日、关系、单位、职务、联系方式、备注
|
||
- **日程**:标题、起止时间、地点、备注、参与人、提醒设置、附件照片
|
||
- **任务**:标题、描述、截止时间、看板、子任务、评论、附件
|
||
- **纪念日**:名称、日期、关联成员、图标
|
||
- **观影**:片名、海报、观影日期、评分、影评、评论
|
||
- **旅程**:行程节点、出发到达地、交通、花费、照片、同行人
|
||
- **财务账本**:账目金额、分类、日期、备注、快照
|
||
- **读书**:书名、作者、封面、章节、读书笔记
|
||
- **资源**:证件、资料的标题、描述、附件文件
|
||
- **笔记**:分块笔记内容、标签、分享设置
|
||
|
||
> ⚠️ **关于身份证号**:岁月家的名册字段中**预留**了身份证号,但它是**可选**字段,你**不填就不会有任何数据**。若你填写,服务端以 **AES-256-CBC 加密**存储,明文不落盘。
|
||
>
|
||
> ⚠️ **关于附件照片**:仅在你主动从系统相册选择或拍照上传时才会读取你选中的那一个文件。**我们不扫描、不遍历你的相册**。鸿蒙系统在应用访问相册时会弹出系统级选择器,你能看到并且可以拒绝。
|
||
|
||
### 1.3 设备本地数据
|
||
|
||
为提升体验,以下数据保存在**你手机本地**,不上传:
|
||
|
||
- 登录令牌(加密保存在 HUKS 硬件密钥库中)
|
||
- 日程/任务等模块的**离线缓存**(以便断网时仍能查看)
|
||
- 应用设置(主题、默认视图、显示偏好)
|
||
- 附件加密密钥(DEK,由 HUKS 硬件密钥库包裹)
|
||
|
||
> 若某台设备不支持 HUKS(如较老系统),应用会降级为"密钥存本地 preferences",**并在设置页的「诊断」中如实告知你**,不会静默隐瞒。
|
||
|
||
### 1.4 我们不收集的信息
|
||
|
||
明确列出**不收集**的项目,便于你核对:
|
||
|
||
- ❌ 位置信息(GPS / 基站 / Wi-Fi 定位)—— 应用**未申请**任何定位权限
|
||
- ❌ 通讯录 —— 应用**未申请**联系人权限,名册内容完全由你手工录入
|
||
- ❌ 通话记录、短信
|
||
- ❌ 应用安装列表
|
||
- ❌ 剪贴板内容
|
||
- ❌ 设备唯一标识符(OAID/IMEI/MAC/SN)
|
||
- ❌ 生物识别信息
|
||
|
||
---
|
||
|
||
## 二、权限使用说明
|
||
|
||
岁月家共申请 **3 项**系统权限,全部为**普通权限**,均不涉及敏感个人信息:
|
||
|
||
| 权限 | 用途 | 是否必需 | 拒绝的后果 |
|
||
|---|---|---|---|
|
||
| `ohos.permission.INTERNET` | 与你自己部署的岁月家服务器通信,读写数据 | **必需** | 无法登录、无法同步任何数据 |
|
||
| `ohos.permission.GET_NETWORK_INFO` | 判断当前是否有网络,断网时显示"离线,显示的是缓存"而不是一直转圈 | 必需 | 网络异常时提示不准确,不影响核心功能 |
|
||
| `ohos.permission.DETECT_GESTURE` | 识别左右手握持,自动调整界面方向。**不采集、不上传、不记录任何手势数据** | 可选 | 界面方向不自动调整,可手动设置 |
|
||
|
||
**关于地址联想(Map Kit)**:
|
||
|
||
在填写日程地点、旅程出发/到达地时,应用会调用**华为 Map Kit** 的地点自动补全能力(`@kit.MapKit`)为你提供候选地点。
|
||
|
||
- 只发送**你正在输入的关键词文本**(如"星巴克"),不发送任何账号或个人身份信息
|
||
- 该能力由华为 HMS Core 在本机提供,受**华为隐私政策**约束
|
||
- **这是可选能力**:若未开通或调用失败,输入框会退化为普通文本框,**你手敲地址照样能保存**,不影响任何核心功能
|
||
|
||
**关于跳转第三方地图导航**:
|
||
|
||
点击日程/旅程地点的「导航」时,应用会尝试调用你手机上已安装的地图应用(高德/百度/华为地图/腾讯地图)。应用只传递**地点文字**,不传递任何账号信息。是否安装、是否跳转由你决定,**应用不会读取这些地图应用中的任何数据**。
|
||
|
||
---
|
||
|
||
## 三、我们如何存储和保护信息
|
||
|
||
### 3.1 存储位置
|
||
|
||
- **服务端**:数据存储在你**自行部署**的岁月家服务器上(当前为开发者自建的阿里云服务器,域名 `family.yangyq.net`)。**我们(开发者)没有你的数据副本**。
|
||
- **端侧**:见 1.3 节。
|
||
|
||
### 3.2 保存期限
|
||
|
||
- 只要你的账号存在,你的数据就保留,以便你随时查看。
|
||
- 你**删除**某条内容(日程/任务/笔记等)后,服务端**立即删除**该条记录。
|
||
- 你**注销账号**后,服务端在 **7 日内**删除该账号及其名下全部数据(含附件文件)。
|
||
|
||
### 3.3 安全措施
|
||
|
||
| 层面 | 措施 |
|
||
|---|---|
|
||
| 传输 | 全站 **HTTPS**(TLS 1.2+),不提供 HTTP 明文入口 |
|
||
| 密码 | **bcrypt** 单向哈希,不可逆 |
|
||
| 敏感字段 | 手机号、身份证号 **AES-256-CBC 加密**存储 |
|
||
| 附件文件 | 服务端**加密存储**;端侧下载后以 **DEK 加密**落地,DEK 由 **HUKS 硬件密钥库**包裹 |
|
||
| 登录令牌 | 存于 **HUKS 硬件密钥库** |
|
||
| 访问控制 | 每个账号只能访问自己所属家庭的数据;服务端**逐条校验**归属,不靠前端隐藏 |
|
||
| 会话 | 登录态失效即需重新认证;支持在设置页**主动退出所有设备** |
|
||
|
||
> 说明:任何技术措施都无法保证 100% 安全。若发生安全事件,我们会在**发现后 72 小时内**通过应用内公告告知你,并说明影响范围与应对措施。
|
||
|
||
---
|
||
|
||
## 四、我们如何共享、转让、公开披露信息
|
||
|
||
### 4.1 共享
|
||
|
||
**我们不会与任何第三方共享你的个人信息**,以下三种情形除外:
|
||
|
||
1. **你主动分享的内容**:岁月家支持把某条笔记/任务/账本/日历**共享给同一家庭内的其他成员**。这是你主动发起的操作,共享范围由你选择,可随时撤销。
|
||
2. **你主动导出/下载**:你把数据导出成文件后自行处置,我们不介入。
|
||
3. **法律法规要求**:仅在依法需要配合司法机关或行政机关调查时,按法定程序提供。
|
||
|
||
### 4.2 转让
|
||
|
||
不发生。若未来因合并、分立等原因需转让,我们会提前告知你,并要求承接方继续受本政策约束;否则将删除或匿名化处理。
|
||
|
||
### 4.3 公开披露
|
||
|
||
不发生。我们不公开任何用户的个人信息。
|
||
|
||
### 4.4 第三方 SDK 清单
|
||
|
||
**本应用不集成任何第三方统计、广告、数据分析 SDK。**
|
||
|
||
使用到的系统能力(均为鸿蒙系统内置,非第三方 SDK):
|
||
|
||
| 能力 | 来源 | 用途 | 是否出网 |
|
||
|---|---|---|---|
|
||
| Map Kit(`@kit.MapKit`) | 华为 HMS Core | 地点自动补全 | 是(仅关键词) |
|
||
| HUKS(`@kit.UniversalKeystoreKit`) | 鸿蒙系统 | 密钥硬件保护 | 否 |
|
||
| Crypto(`@kit.CryptoArchitectureKit`) | 鸿蒙系统 | 加解密运算 | 否 |
|
||
| MediaLibrary(`@kit.MediaLibraryKit`) | 鸿蒙系统 | 保存附件到相册 | 否 |
|
||
| ShareKit(`@kit.ShareKit`) | 鸿蒙系统 | 系统分享面板 | 否 |
|
||
| Telephony(`@kit.TelephonyKit`) | 鸿蒙系统 | 拉起系统拨号盘(仅填充号码) | 否 |
|
||
| BackgroundTasks(`@kit.BackgroundTasksKit`) | 鸿蒙系统 | 定时后台同步 | 否 |
|
||
|
||
---
|
||
|
||
## 五、你的权利
|
||
|
||
依据《中华人民共和国个人信息保护法》,你对自己的个人信息享有以下权利。**这些权利在岁月家里都是自助可用的**,不需要发邮件申请:
|
||
|
||
| 权利 | 在岁月家里怎么做 |
|
||
|---|---|
|
||
| **查阅、复制** | 各模块列表直接查看;资源模块支持导出;`设置 → 数据导出` 可整体导出 |
|
||
| **更正、补充** | 任意条目点开 → 编辑 → 保存 |
|
||
| **删除** | 任意条目点开 → 删除;删除立即生效 |
|
||
| **撤回同意** | `设置 → 隐私` 可撤回对可选权限的授权(如握姿识别) |
|
||
| **注销账号** | `设置 → 账号 → 注销账号`。注销后 7 日内删除全部数据,**不可恢复** |
|
||
| **获取副本** | `设置 → 数据导出`,导出为 JSON/CSV 文件到你指定位置 |
|
||
|
||
若上述自助途径无法满足(例如你已卸载应用但想删除服务器上的数据),可通过第九节的方式联系我们,我们会在 **15 个工作日**内响应。
|
||
|
||
---
|
||
|
||
## 六、未成年人保护
|
||
|
||
岁月家是家庭工具,**不面向未成年人独立提供服务**。
|
||
|
||
- 未满 14 周岁的未成年人**不得自行注册**账号。若家庭成员中有未成年人,其信息由**监护人**代为录入与管理,监护人可随时查看、更正、删除。
|
||
- 我们不收集**儿童**的独立账号信息;名册中记录的未成年家庭成员信息,属于监护人主动录入的家庭内部资料。
|
||
- 若我们发现无意中收集了未满 14 周岁儿童的个人信息而未获监护人同意,将**立即删除**。
|
||
|
||
---
|
||
|
||
## 七、信息存储地域
|
||
|
||
你的数据存储在**中华人民共和国境内**(开发者自建的阿里云中国大陆节点服务器)。
|
||
|
||
**我们不向境外提供你的个人信息。**
|
||
|
||
---
|
||
|
||
## 八、本政策的更新
|
||
|
||
- 本政策如有实质性变更(例如新增了信息收集项、改变了使用目的、扩大了共享范围),我们会在应用内**以弹窗形式**提示你,并在你**明确同意后**才生效。
|
||
- 非实质性变更(如文字润色、联系方式变更)会直接更新本页并修改顶部「最后更新」日期。
|
||
- 历史版本可向我们索取。
|
||
|
||
---
|
||
|
||
## 九、联系我们
|
||
|
||
| 项 | 内容 |
|
||
|---|---|
|
||
| **开发者** | 杨永全(个人开发者) |
|
||
| **联系邮箱** | `i@yangyq.net` |
|
||
| **响应时限** | 收到后 **15 个工作日**内答复 |
|
||
| **我的岁月家服务地址** | `https://family.yangyq.net` |
|
||
|
||
如你对我们的答复不满意,或认为我们的个人信息处理行为损害了你的合法权益,你可以向**网信部门、电信主管部门、公安部门、市场监管部门**等监管机构投诉举报,也可以向**被告住所地有管辖权的人民法院**提起诉讼。
|
||
|
||
---
|
||
|
||
## 十、附录:与权限清单的逐条对照(供审核核对)
|
||
|
||
| 权限/能力 | 是否申请 | 本政策对应条款 |
|
||
|---|---|---|
|
||
| `ohos.permission.INTERNET` | ✅ 申请 | 第二节表格第 1 行 |
|
||
| `ohos.permission.GET_NETWORK_INFO` | ✅ 申请 | 第二节表格第 2 行 |
|
||
| `ohos.permission.DETECT_GESTURE` | ✅ 申请 | 第二节表格第 3 行 |
|
||
| Map Kit(`@kit.MapKit`) | ✅ 调用 | 第二节「关于地址联想」 |
|
||
| 定位(LOCATION) | ❌ 未申请 | 1.4 节明示不收集 |
|
||
| 通讯录(READ_CONTACTS) | ❌ 未申请 | 1.4 节明示不收集 |
|
||
| 相机(CAMERA) | ❌ 未申请 | — |
|
||
| 相册读写(READ/WRITE_IMAGEVIDEO) | ❌ 未申请 | 1.2 节说明用系统选择器 |
|
||
| 麦克风(MICROPHONE) | ❌ 未申请 | — |
|
||
| 设备标识符 | ❌ 未申请 | 1.4 节明示不收集 |
|
||
|
||
---
|
||
|
||
*本政策自 2026 年 11 月 1 日起生效。* |