即时执行
INSTANT
在课程详情页发起,提交后再次核对已选列表并返回结果。
正方教务助手是面向正方教务系统 9.0 的开源 Android 客户端。支持选课、抢课、课表、成绩与考试安排,界面为整套液态玻璃。GPL-3.0 协议开源,无广告,无内购。

1–25 周,含课程名称、时间、地点与周次范围。
按学期汇总,GPA 按学分加权,平时成绩拆到评分项。
即时执行、捡漏与定时任务三种模式,队列与日志分账号隔离。
均从课程详情页发起。即时执行用于选课开放瞬间;捡漏模式持续监听退课名额;定时任务在指定时间自动开始,支持锁屏唤醒。
INSTANT
在课程详情页发起,提交后再次核对已选列表并返回结果。
SNIPE
面向满员课程持续查询余量,检测到退课名额后立即提交。
SCHEDULED
课程加入队列并设定启动时间,到点自动开始;锁屏状态下由系统按时唤醒。
以上为默认值;健康探测超时后自动让行。
同校最多绑定 3 个账号。各账号的队列、日志与定时任务彼此隔离,操作均有记录可查。

周视图浏览 1–25 周课程;成绩按学期汇总,GPA 按学分加权;考试的时间、地点与座位号按日期排列。三者均支持 .ics 日历导出。

周视图浏览 1–25 周课程,含课程名称、上课时间、地点与周次范围。

成绩按学期汇总,GPA 按学分加权;平时成绩按评分项拆分为进度条,含各项构成。

期末考试的时间、地点与座位号按日期排列,临近考试置顶。
三者均支持导出 .ics,导入系统日历后按原时间与地点显示。

贴一个教务地址就能判断你的学校能不能用;不能用的话,适配申请可以直接在网页提交,不必先装 App。
把你在电脑上登录教务之后地址栏里的地址贴进来:
本工具面向通常被称作「正方 9.0」的那一代教务系统 —— 别看页面上标的版本号,各校标法不一。判据是地址里的路径段,逐条对应 App 自己的解析器:
/jwglxt//jwxt//jwxs//jw/xtglxsxkkbcxcjcxxsxy前四段是基础路径,后五段是登录后地址栏里出现的功能模块名。见到任一段就是正方 9.0。
需要学校名称、教务与统一认证地址,以及一个可登录的临时测试账号 —— 登录流程必须实测才能写对,只有地址无法完成适配。网页与 App 内提交进的是同一个服务端。
提交前请先把该账号的密码改成一个临时值 —— 凭据经 HTTPS 传输、加密入库,作者在适配期间能解出明文,完成后会从服务端删除。适配完成请立即改回自己的密码。
已额外接入统一身份认证 0 所。不在名录里也能用 —— 教务是正方 9.0 的高校都走正方账号密码直登,功能没有区别。
预设流光、纯色取色与相册图片,切换即时生效。蒙版深度按画面亮度自动调整,正文对比度不随壁纸变化。
蒙版深度按画面亮度自动调整,正文与控件的对比度不随壁纸变化。

背景设置弹窗的预设列表,流光一项已勾选
当前预览:预设流光

以下为未在其它章节出现的界面截图,按素材原生竖屏展示。此处横向滚动,页面主体仍为纵向阅读。
液态玻璃是 App 端的核心视觉系统:折射、色散与镜面高光均为实时计算,blur + lens + vibrancy 三层叠加,按设备能力分档,API 31 以下回退 Material。网页端本页同期复刻了这套滤镜链,效果减弱但布局与可读性不受影响。
Live on this page · 网页端真折射
Interactive鼠标移入可拖动大液滴。滴内内容被放大、网格线在边缘弯折、迎光侧有一道亮弧、轮廓上能看到青红彩边 —— 放大、弯折与色散都是逐像素计算的结果,不是预先做好的图片。

真实界面中的材质说明:看得见层级,也看得见内容。
Three roles · 三种角色
轻 · 连续 · 可识别紧凑 · 有回应 · 可操作聚焦 · 高对比 · 可退出Adaptive by device
Android 12+ 使用完整材质;低内存设备自动降低效果;更旧系统回到稳定的 Material 表面。开启减少动态效果后,界面仍保持清晰、可读、可操作。
How it works on the web · 滤镜链
canvas 逐像素求圆角矩形的有符号距离,边缘生成凸面轮廓。
SDF高度梯度编码进 RG 通道,作为位移贴图弯折背景像素。
feDisplacementMapR/G/B 三通道按 0.87×/1×/1.13× 分别位移后 screen 合成。
feColorMatrix高度写入 alpha,由光源方向沿边缘打出一圈亮线。
feSpecularLighting只有 Chromium 会渲染 backdrop-filter 里引用的 SVG 滤镜。Firefox 与 WebKit 能解析但不渲染,因此这里在检测失败时降级为标准玻璃模糊 —— 效果减弱,但布局与可读性不受影响。
密码走 AndroidKeyStore AES/GCM 加密,仅存设备本地,不上传任何服务器;会话过期 App 自动续期,不连续请求。源码 GPL-3.0 协议公开,可自行编译安装包。
AndroidKeyStore 内以 AES/GCM 加密,仅保存在设备本地,不经过任何服务器。
CredentialStore.kt登录状态失效时自动续期;续期失败后按间隔重试,不连续请求。
SessionRenewer.kt采用 GPL-3.0 协议,全部源码公开在 GitHub。
GPL-3.0GitHub Releases 与本站直链并行。安装包由仓库 CI 自动构建,避免来源不明的二次打包。
release.yml