PROJECT / 005

月汐

Lunatide · Private Period Tracker

无需注册、无广告、无网络权限的开源Android经期记录App。健康数据在本机加密保存,由你主动备份与迁移。

AndroidMIT Open SourceAPK v1.0.1Offline · No Network

项目简介

记录身体的节奏,本来可以是一件安静的小事。月汐为希望避开广告、社区干扰、强制注册与隐私担忧的人提供一本只留在手机里的周期日记。经期、每日感受、日历与统计都在本机处理,没有服务器或云同步。适合愿意自己保管记录、通过密码加密备份手动迁移的Android用户。MIT开源;预测仅供参考,不能用于避孕或代替医生诊断。

实际截图

以下均为v1.0.1在API35 Android模拟器中的真实运行截图,全部是虚构示例数据;包括浅色与深色经期中状态。点击可查看完整画面。

下载与正式版本

Version
v1.0.1 · versionCode 10001
APK
Lunatide-v1.0.1.apk
APK Size
10,134,180 bytes
SHA256
bef52aebb8a753805ef505a026b37eabbdda350290a613f88a71b2db45335bbf
签名证书 SHA256
4d4957412cedc56e24be8fec7061a1f83e9e1061cf3a97dea5965f0231a10676
APK构建源码
947f6f403f4e46958ff5c0867e55430729e73062

下载APK和校验文件后,Windows可用 Get-FileHash -Algorithm SHA256 核对文件摘要;Android SDK用户可用 apksigner verify --print-certs 核对正式证书指纹。自己构建的不同签名包不保证能覆盖官方包。

Android 8.0及以上。首次安装按系统提示允许当前来源;同签名升级请直接覆盖安装,不要先卸载。卸载会删除记录,卸载或换机前先主动导出加密备份并妥善保管密码,密码无法找回。App不自动联网检查更新。

SHA256 校验文件 ↗

核心能力

  • 一键记录经期开始与结束,支持撤销、改日期和点滴出血。
  • 日历区分实际记录、虚线预测、易孕期与排卵参考;预测不是医疗结论。
  • 自动保存经量、痛经、症状、心情、体温与备注;敏感记录项按设置显示。
  • 周期与经期长度图表、症状统计及历史记录。
  • 五种本地提醒,默认中性通知,锁屏公开内容保持中性。
  • 独立PIN、可选生物识别、防截屏;PIN是界面锁,不是数据库加密口令。
  • 密码加密备份、覆盖或合并恢复,以及带明文警告的CSV导出。
  • 中文与英文、浅色与深色、可调记录项。

隐私设计

  • 没有网络权限、账号、广告、遥测、崩溃上传或第三方推送SDK;App不上传记录与使用行为。
  • 健康记录使用SQLCipher加密,随机数据库口令由Android Keystore保护;设置使用私有DataStore。
  • 系统云备份与自动设备迁移禁用,无服务器或云同步;换机需要本人主动导出、保管并恢复密码加密备份。
  • 通知默认中性,锁屏公开内容始终中性。CSV导出是明文,需本人谨慎保存;不要把真实健康数据交给AI或用于截图。

项目架构

  1. Compose UI
  2. ViewModel
  3. Repository
  4. Room + SQLCipher · 本机

私有DataStore保存设置,WorkManager执行本地提醒,Keystore保护数据库密钥。没有远程API、账号系统或云端数据库。

从源码到上线

  1. 下载正式v1.0.1 APK,或阅读源码与构建指南
  2. 在自己的隔离环境运行、检查隐私与业务测试
  3. 使用虚构记录核对实际界面和加密备份恢复
  4. 自行签名时私下保管密钥,公开发布前审核版本与证据

安装、升级与从源码构建

月汐是离线Android App,安装不需要Docker、服务器、Web Demo或演示域名。下载由GitHub正式Release分发,APK不存放在本网站。自行从源码构建请按指南安装Android SDK/JDK,运行隐私检查与测试,并保管自己的签名密钥;下载和构建环境可能联网,App运行时没有网络权限。

从源码构建 ↗

当前范围与限制

  • 没有云同步和密码找回。换机主动导出加密备份,卸载会删除本机记录。
  • PIN只负责界面锁,数据库加密依赖Keystore;Root、系统被攻破或已被他人解锁设备的保护有限,防截屏也不能阻止外部相机。
  • 预测不能用于避孕或代替诊断;部分系统可能延后或拦截后台提醒,不保证精确到分钟。
  • Android项目已记录129个JVM测试、15个API35仪器测试及同证书升级通过;并非本次官网任务重新执行。
  • 中端实体机性能、完整真人TalkBack、真实生物识别和全部设备/提醒组合尚未验证;官网浏览器验收不能补齐这些限制。
安全与隐私说明 ↗

COPY & BUILD

分阶段开发教学提示词

以下8组是依据月汐公开Agent规范、实际工程与v1.0.1资料整理的教学示例,不是原始聊天记录,也不代表存在对应视频。可逐段或全部复制,在自己的隔离项目中学习。

先阅读README和Agent/README.md,再按顺序阅读01~11。克隆已有源码时先检查并运行现有实现,不要重复初始化;从空目录学习则依M0~M10逐步实施。只用虚构健康记录,真实记录、密码和密钥不交给AI或放入日志、剪贴板与截图。

建议顺序:P01隐私与范围 → P02加密数据层 → P03预测与记录 → P04界面 → P05锁与提醒 → P06备份 → P07真实验收 → P08签名发布准备。每阶段核对实际证据与未验证项后再继续;没有服务器、云同步或演示域名部署步骤。

下载 Markdown下载 TXT

P01明确产品范围与不可退让的隐私红线

起点是空目录或已克隆仓库,先得到可核对的范围、架构与验收清单。

我要学习做一个像月汐一样完全离线的Android经期记录App。先读取README、Agent/README.md,再按顺序阅读Agent/01到11;若已克隆月汐源码,先报告当前提交与已实现功能,不重复搭工程。若从空目录开始,先给M0到M10的分阶段计划,确认清楚后再实施。

目标是经期、每日记录、日历与本地统计,不加账号、服务器、广告、社区、遥测、崩溃上传、云同步或网络权限。只用虚构数据。按02隐私红线检查依赖白名单、最终Manifest、Android系统备份排除以及禁止的数据日志和外部输出;CI下载依赖与App运行时权限分开说明。

交付需求—风险—验收对应表,明确预测不能用于避孕或代替诊断、没有云端找回。实现前说明文件范围,不升级无关依赖,不改变其他项目。每阶段报告已执行检查及未验证项,不把计划写成完成。
P02实现加密数据层与可回滚的记录规则

从已确认的工程和数据规范起步,验证加密、事务及失败保留数据。

以已完成隐私工程检查的本地Android项目为起点,按Agent/03、05、08实现或检查Room数据层、Repository和日期来源抽象。先核对现有schema、DAO与SQLCipher实现,只修本阶段缺口。

目标是健康记录由SQLCipher加密,随机数据库口令由Android Keystore包裹保护;设置放私有DataStore。PIN不是数据库口令。禁止明文旁路、破坏性迁移、密钥丢失自动删除数据库、日志输出记录和密钥,以及真实健康数据进入测试。

按05规则验证经期新建、合并、首尾与中间删除、进行中唯一性、每日经量和备注的事务一致性、跨年闰年与未来日期。失败必须整体回滚且保留原数据。

验收先写JVM边界测试,再在隔离模拟器验证加密库重开、错误口令、非明文文件头和密钥异常保留库。输出真实运行命令、数量、失败与跳过,不以JVM通过冒充设备加密验证。
P03用独立样例验证预测与记录流程

从真实数据层起步,把预测规则与实际记录分开,不把参考预测写成医疗结论。

起点是可运行、已检查的本地数据层。按Agent/06_PREDICTION_ENGINE.md与04功能规范,先列出独立手算的输入和预期,再检查或实现纯Kotlin预测与统计;测试不要调用被测计算函数来生成答案。

目标涵盖规范25种场景、历史样本过滤、手动先验、加权估计、置信范围、进行中及推迟情况、少量数据的隐藏原因,以及周期和症状统计。预测与真实经期记录分开,不能因为到预测日期就自动新增真实经期。

再接入开始、结束、撤销、改日期及每日记录。只用虚构日期和感受,不写日志、剪贴板、分析SDK或服务器。易孕期与排卵参考有不确定性,持续显示不能用于避孕的限制。

验收给出边界样例、逐步计算和实际结果,检查事务失败后的记录完整性;设备日期与时区变化也要有覆盖。未实际测量中端真机性能时如实保留,不把计算测试耗时说成UI性能。
P04完成今天、日历、记录和统计的真实界面

起点是本地功能可运行版本,复用暖白与月夜靛视觉,并用真实截图验收。

以已接入本地数据和预测的App为起点,阅读Agent/07和当前公开v1.0.1真实截图。复用现有Compose/Material3与语义色,不推倒工程,不新增界面框架或联网资源。

目标是今天页独立圆环和主题按钮、常驻形状图例的日历、可自动保存的每日记录、统计与设置。浅色和深色都保持主信息清楚;未来日期只展示参考,敏感记录项默认按规范隐藏,输入法避免个性化学习。截图不能伪造界面或放真实用户记录。

验收在自己的隔离模拟器走今天→日历→编辑→关闭重开→统计;验证虚构备注和经量从数据库重读、撤销与日期边界。检查中文/英文、浅深色、200%字号、横屏和主要点击区域,截图明确虚构示例数据。

列出API/分辨率与真实执行步骤。无障碍语义检查与完整真人TalkBack分别报告;模拟器流畅不等同实体机性能通过。
P05检查应用锁、本地提醒与锁屏隐私

从已有界面起步,验证PIN与Keystore职责、持久冷却和通知的实际边界。

以记录功能已可用的本地App为起点,按Agent/08与04检查或补齐PIN应用锁、可选生物识别、防截屏和五种本地提醒。PIN只负责界面锁,数据库加密仍由SQLCipher和系统Keystore负责,不声称PIN能抵抗已Root或已解锁设备。

禁止密码/健康记录输出日志、剪贴板、通知标题或锁屏内容。检查自动锁定、冷启动遮挡、输错限制跨进程重启保持、忘记PIN只能通过明确二次确认清除而无绕过。防截屏不能阻止外部相机。

通知用现有WorkManager本地调度,用户主动开启才申请通知权限;默认中性文案,锁屏公开版本始终中性。拒绝权限要清楚说明,不加远程推送与精确时间承诺。

验收在隔离模拟器实际锁定、强停重开、错误PIN冷却及取消删除,并核对通知对象和权限拒绝行为。真实指纹/面容、系统锁屏、重启后送达和ROM后台限制未测时单列,不能用对象测试替代。
P06验证加密备份、恢复与手动迁移

从本机记录起步,使用虚构数据核对密码加密、恢复事务与明文CSV警告。

起点是已有可读记录和设置的隔离App,只使用虚构数据。先读取Agent/08和当前备份格式,再实现或核对密码加密导出、覆盖/合并恢复、CSV导出与本机数据清除,不创建服务器或自动云同步。

目标是用户主动选择文件,经明确口令加密后导出;数据库Keystore密钥和应用PIN不是可移植备份密码。备份密码无法找回,应在界面明确;系统云备份与自动设备迁移保持禁用。CSV是明文,导出前警告并由用户自己保存,不把内容放剪贴板。

检查正确/错误密码、损坏文件、超限或未知版本、取消、覆盖确认、合并重复及恢复失败事务回滚;不能因为恢复失败删除原库。清除数据必须二次确认。

验收先记录虚构样例数量与字段,再导出和实际恢复逐项核对;只报告真实文件与操作结果,不输出口令、密钥或健康正文。跨真实设备/文件提供器未验证的部分保留说明。
P07运行分层验收并诚实记录未验证项

从候选实现起步,连接隐私检查、JVM、仪器测试与真人设备走查。

以当前干净候选提交为起点,阅读Agent/10_ACCEPTANCE_CHECKLIST.md和PROGRESS.md。运行项目现有verifyPrivacy、testDebugUnitTest、lintDebug、assembleDebug;有明确授权的隔离模拟器再运行connectedDebugAndroidTest。不要覆盖或清空别人正在用的AVD,也不重新写一套测试框架。

逐项审查最终Manifest无INTERNET等禁止权限、依赖白名单、系统备份排除、正式源集无虚构数据入口、记录和密钥不进入日志。失败要定位具体缺口,不删断言、跳过失败或放宽隐私红线凑绿。

验收报告本次提交、实际命令、JVM与设备测试数量、失败/跳过、API版本和截图。已有月汐129 JVM、15 API35仪器结果只是公开版本历史,不能自动算自己的新改动也通过。

将实体机性能、完整真人TalkBack、生物识别、各ROM提醒送达、全部字号与语言组合单列;网页截图和构建成功都不能替代这些验收。未测如实保留,真实数据不得用于验收。
P08准备自己的签名版本与可核验发布材料

从已验收候选起步,先准备发布;签名密钥由本人保管,公开发布须明确确认。

我要为自己的离线App准备正式发布,起点是已记录验收范围的干净源码。先读取Agent/11、docs/BUILD_FROM_SOURCE.md、docs/ANDROID_RELEASE.md及scripts/release.ps1,报告版本、检查与产物计划;本提示词只授权准备,不自动创建GitHub Release或推送标签。

本人私下创建并保管签名密钥及密码,不能把月汐官方密钥当作示例,不输出、不提交、不上传私钥或本地签名配置。官方v1.0.1只是参考下载;自己构建的不同签名包不保证能覆盖官方包。只在隔离设备验证同一本人证书的旧版覆盖升级,升级不要先卸载,保留虚构记录并逐项复核。

按既有发布脚本生成APK、SHA256、实际字节数、版本代码、minSdk和签名证书指纹,独立用apksigner校验,不靠文件名猜身份。更新README、开源许可、隐私/安全文档与真实截图;未测设备范围必须保留。

准备发布清单与回退方法,取得本人对目标仓库、tag、版本和两个附件的明确同意后再公开。官网只链接正式Release APK,不上传APK到网站,不引入后端、云同步或演示域名。

App运行时禁止网络权限、账号、广告、遥测与数据上传;构建机下载依赖不等于App联网。PIN是界面锁,数据库密钥由Keystore保护。预测仅供参考,不能用于避孕。自行保管备份密码与签名密钥,公开发布须明确确认;测试通过不能替代真实设备与隐私审查。

对应视频

Coming Soon · 视频尚未发布。

相关内容

浏览全部项目 →