题库搜索XUNMO
ABOUT / 一个人的项目

寻墨是怎么来的

一开始只是想解决一个很小的问题:在手头的设备上查自己的题库,不想在应用之间来回切,也不想让那一层内容出现在抓图里。做着做着就变成了这个项目。

取舍

隐身这件事有三种常见做法,前两种都被排除了。FLAG_SECURE 会让抓出来的画面是一块黑,MIUI 还会弹「不允许截屏」;把透明度设成 0 是连你自己也看不见。剩下的路只有让系统合成快照时主动跳过这一层——那是厂商私有的图层属性,不公开、不保证存在。

第二条取舍是不碰系统。不 root、不装 Xposed / LSPosed、不改框架,解锁隐藏接口只在 App 进程内完成。代价是能力完全取决于厂商肯不肯留这个属性,所以非小米机型只能降级处理。

第三条是把数据留在本机。检索是字符串匹配,不需要服务器;服务器只负责发公告和发题库,删掉它 App 照样能用。

数据与隐私

把「用到网络的地方」一条条列出来。

本机题库

存在 App 自己的目录里

导入的题库与纠错结果写在应用私有目录,卸载即清除——这也是升级要先卸载、需要自己导出 CSV 的原因。不读你手机上的其他文件。

向服务器的请求

只有三个静态地址

/v1/notice.json、/v1/banks.json、你点下载的那份 CSV。请求里不含本地题库、不含搜索词。服务端 nginx 会按常规记录访问日志(时间、路径、来源 IP)。

AI 解题

默认不启用

需要你在设置里自己填接口地址与 Key。启用后题目文本会发往那个接口,数据去向与留存由它决定,与本站无关。

广告与统计

没有

无广告 SDK、无埋点、无第三方统计脚本,官网也一样——整站零外链资源,字体与图标全部用系统和本地文件。

账号

没有

不注册、不登录、不绑定手机号。

这套服务怎么搭的

官网和 App 用的接口在同一台机器上,共用一份 nginx 配置。

静态层

nginx 直出

官网六个页面与 /v1/ 接口都是磁盘上的静态文件,no-store 保证后台一改、手机与网页同时见效。

页面上的公告与题库列表由前端读同源接口渲染,不是写死的。
内容层

一个后台进程

发布题库与公告走一个只监听本机的零依赖 Python 服务,由 systemd 托管,公网只暴露反代出来的两个路径。数据真源只有一份,改完重新编译成对外文件。

站点层

已备案 + HTTPS

域名 xunmo.online 已通过 ICP 备案,证书由 Let’s Encrypt 自动续期,与 App 的 /v1/ 接口共用同一台国内 ECS。

App 当前仍按 IP 明文访问云端,换域名只是客户端侧的一次改地址。

联系

题目修订、机型反馈、想上架云端题库,都可以找过来。

题库反馈

答案有错

把题号或截图发过来,云端题库修订后重新发布,你在 App 里重新下载即可。

机型报告

隐身不生效

附上设置页里的兼容性报告与机型系统版本,可以判断它走了哪条分支。

渠道

待补充

这一栏在正式上线前填上实际联系方式。站点的联系区块是独立文件段落,改起来只动一处。

目前请通过分发安装包给你的渠道反馈。

先用起来再说

安装包 3.4 MB,Android 5.0 以上,免 root。