一、账号与教务请求
图形客户端将你输入的学号和密码保存在操作系统的受保护凭据存储中;终端客户端使用仅当前用户可读写的本地凭据文件。应用会在你主动获取课表、空教室或课程作业时,按下述用途通过 HTTPS 使用这些凭据。课表和空教室请求会发送到 jwglweixin.bupt.edu.cn;保存有效凭据且开启“自动检测当前学期”后,应用还会在启动时自动刷新一次个人课表,用于校验学期号和第一周周一。当天空教室还可能在启动、回到前台,或平台允许的每日约 07:00 后台任务中自动刷新。项目维护者无法读取这些凭据,设置接口也不会返回已保存的密码。
Graphical clients keep the student ID and passwords you enter in the operating system's protected credential storage; terminal clients use a local credential file readable and writable only by the current user. The app uses them over HTTPS when you request schedules, empty classrooms, or assignments as described below. After valid credentials are saved and automatic term detection is enabled, the app also refreshes the personal schedule once at launch to verify the term identifier and first Monday. Schedule and classroom requests are sent to jwglweixin.bupt.edu.cn. The current day's classroom availability may additionally refresh at launch, on returning to the foreground, or around 07:00 where the platform permits background work. The maintainer cannot read these credentials, and settings APIs never return a saved password.
Apple 图形客户端使用 Keychain;Android 使用 Android Keystore 保护加密密钥,凭据以加密形式保存在应用私有、排除系统备份的文件中;HarmonyOS 使用 ASSET;Windows 与 Linux 图形客户端分别使用 Credential Manager 与 Secret Service。不能访问这些安全存储时,不退回明文保存。终端文件的用户权限保护不等同于系统钥匙串加密。
Apple graphical clients use Keychain. Android uses Android Keystore to protect encryption keys and keeps encrypted credential files in app-private storage excluded from system backup. HarmonyOS uses ASSET; Windows and Linux graphical clients use Credential Manager and Secret Service respectively. Unavailable secure storage does not fall back to plaintext. Owner-only terminal-file permissions are not equivalent to OS keychain encryption.
成绩查询仅获取本人学期、课程成绩及接口提供的绩点,使用教务密码,不使用教学云平台的独立密码,也不查询其他学生;图形端仅在当前进程的有界内存中复用成绩,不写入磁盘或上传项目服务器。终端主动打印或导出的成绩包含个人信息,请勿公开分享。考试安排可随课表读取并按账号、学期缓存在本机;与课程冲突时,只在本机隐藏冲突的单次课程,不修改学校记录。
Grade queries retrieve only your semesters, course results and service-provided GPA, using the academic password rather than a separate Teaching Cloud password. They do not query other students. Graphical clients reuse grades only in bounded process memory, not on disk or this project's server. Explicit terminal output or exports contain personal results and should not be shared publicly. Exam arrangements may be fetched with and cached alongside the timetable by account and semester. Conflicts hide only local course occurrences without changing university records.
有效认证令牌按账号及凭据隔离在当前进程内复用,遵守服务有效期;缺少有效期信息时使用有界短期缓存。明确认证失效时最多重新登录重试一次。更改有效凭据、清除数据或结束进程会使相关内存会话失效。QMplus 网页会话是下述独立链路,不使用北邮凭据。
Valid authentication tokens are reused in process memory, isolated by account and credentials and subject to service expiry; tokens without expiry metadata use a bounded short lifetime. Explicit authentication expiry permits at most one sign-in retry. Effective credential changes, clearing data or ending the process invalidate the relevant in-memory sessions. The separate QMplus web session described below does not use BUPT credentials.
二、本地数据
个人课表、考试安排、空教室结果、校区、学期和功能开关会缓存在设备上,以减少重复请求。收藏活动时,应用还会在设备上保存该日程的完整快照,使其在来源关闭、失败或删除条目后仍能显示;收藏不会上传或跨设备同步。受支持系统上的课程小组件只读取本地课表快照。0.4.0 的教学云平台和 QMplus 课程、作业缓存见后文;缓存恢复不代表已重新验证官方登录。
Schedules, exam arrangements, classroom results, campus, term and feature preferences are cached on your device to reduce repeated requests. Favoriting an event also stores its complete local snapshot so it remains visible if its source is disabled, unavailable or removes the item. Favorites are neither uploaded nor synchronized between devices. Supported course widgets read only a local timetable snapshot. Teaching Cloud and QMplus course/assignment caches in 0.4.0 are described below; restoring cached data does not verify a new official sign-in.
课程删除只影响本机:可删除单次课程或本学期整门课,并保留按账号和学期隔离的删除记录以便刷新后继续应用和恢复。不修改学校选课、作业截止时间或已经单独导出的系统日历事件。
Course removal is local: remove one occurrence or a whole course in the current semester, with account- and semester-scoped records that survive refresh and can be restored. It does not change university enrollment, assignment deadlines or previously exported system-calendar events.
0.4.0 图形客户端成功重新获取作业时,会使用按来源、身份作用域和学期隔离的有界“已见项目”记录识别新增作业,并在应用内显示提示。首次完整获取或仅恢复缓存不会提醒;部分失败不会推进基线,重复刷新、重启或只修改截止时间不会被当成新增作业。记录仅保存在本机,用于去重而非使用行为跟踪;提示复用已有同步结果,不为检测新增作业另发请求。
After a successful assignment refresh, graphical clients in 0.4.0 use bounded seen-item records scoped by source, identity and term to show an in-app notice for newly discovered work. The first complete fetch and cache restoration are silent; partial failures do not advance the baseline. Repeated refreshes, restart or deadline-only changes are not treated as new work. These local records deduplicate notices, not track usage, and reuse existing synchronization results without additional discovery requests.
三、节假日数据
应用可能通过 unpkg 获取固定版本 holiday-calendar@1.3.3 中的中国法定节假日与调休数据;Android 在已获得日历权限时也可能读取系统提供的“中国节假日”日历。远程请求仅包含 CN 地区和年份,不包含凭据、课表或空教室数据。iOS 不会仅因日期名称像节日就将其标记为休息日,只有权威休息日数据才显示“休”。
The app may retrieve Chinese statutory holiday and transfer-workday data from the pinned holiday-calendar@1.3.3 dataset through unpkg. Android may also read the OS-provided “Chinese holidays” calendar when calendar permission has already been granted. Remote requests contain only the CN region and year, never credentials, schedules, or classroom data. On iOS, a festival-like date name alone does not mark a day as a rest day; only authoritative rest-day data does.
四、天气、黄历与公开活动
天气功能通过 UAPI 按所选校区对应的海淀或昌平行政区获取今日、明日天气,不读取 GPS 或精确位置。黄历功能通过 UAPI 获取基础农历信息,并可能通过 Timeless API 补充“宜/忌”。Contest DDL 的 GitHub Pages 主源提供学科竞赛、学术会议、期刊专题、夏令营、预推免和黑客松数据;客户端与 https://where-to-study.cn/contest-ddl/data/competitions.json 镜像比较有效的 generated_at,使用更新的一份,同时间优先 GitHub,两者都不可用时才访问固定备用 API。校内竞赛通知由服务器脚本从学校内部网站的公开通知页提取整理,再由同域名下的固定 HTTPS API 提供。教学日历中的学科竞赛、学术会议、校内通知、夏令营和黑客松分别由对应开关控制;独立的“重要事件”查询页始终允许用户主动搜索这些公开数据,不包含课程作业或自定义日程。
Weather uses UAPI to request today and tomorrow for the Haidian or Changping administrative district associated with the selected campus; it does not read GPS or precise location. Almanac data comes from UAPI, with optional 宜/忌 advice from the Timeless API. Contest DDL's GitHub Pages source provides competitions, academic conferences, journal special issues, summer camps, pre-admission events, and hackathons. Clients compare valid generated_at timestamps with the fixed mirror at https://where-to-study.cn/contest-ddl/data/competitions.json, select the newer data with GitHub preferred on a tie, and use the existing fixed backup API only when both static sources are unavailable. School competition notices are extracted and organized by a server-side script from public notice pages on the university's internal website, then exposed through a fixed HTTPS API on the same domain. Calendar display switches separately control competitions, conferences, school notices, summer camps, and hackathons. The user-opened Important Events query remains searchable independently and contains neither assignments nor custom-feed items.
班车查询通过固定接口 https://where-to-study.cn/api/shuttle-bus 获取北京邮电大学后勤部公开通知及官方时刻表的结构化结果。客户端只发送无凭据 HTTPS GET,不上传学号、密码、课表、校区选择、GPS 或其他个人数据;服务端可能按其政策处理 IP 地址、请求时间等普通网络元数据。自动识别结果仅供参考,节假日、停运和临时调整以后勤部原文为准。
Shuttle queries retrieve structured public Logistics Department notices and official timetables from the fixed https://where-to-study.cn/api/shuttle-bus endpoint. The client sends only a credential-free HTTPS GET; no student ID, password, schedule, campus selection, GPS, or other personal data is uploaded. The server may process ordinary network metadata such as IP address and request time under its own policy. Automatically structured results are for reference only; rely on the original Logistics Department notice for holidays, suspensions, and temporary changes.
你可以选择填写公开的 HTTPS JSON 地址作为自定义日程来源。应用不会向该地址附带教务凭据、Cookie、token、课表、教室或作业数据;地址不得含用户信息、片段、回环地址或私网 IP 字面量,客户端拒绝重定向并限制响应大小与请求频率。该服务器仍可能按照自己的政策处理 IP 地址、请求时间等普通网络元数据。接口格式与约束见自定义日程接口规范。
You may optionally provide a public HTTPS JSON URL as a custom schedule source. The app sends no academic credentials, cookies, tokens, schedules, classrooms, or assignments to that URL. URLs containing user information, fragments, loopback hosts, or private literal IP addresses are rejected; redirects, oversized responses, and excessive requests are also rejected. The server may still process ordinary network metadata such as IP address and request time under its own policy. See the custom schedule feed specification for the format and constraints.
对 https://where-to-study.cn/contest-ddl/data/competitions.json、https://where-to-study.cn/api/contest-events、https://where-to-study.cn/api/contest-notices 和 https://where-to-study.cn/api/shuttle-bus 的请求仅为发往固定 HTTPS 主机、不接受重定向且限制响应大小的无凭据 GET;请求不包含 Cookie、token、课表、教室、作业或其他个人数据。卡片中的所有天气、民俗、班车和截止日期信息均仅供参考,请以实际官方信息为准。
Requests to https://where-to-study.cn/contest-ddl/data/competitions.json, https://where-to-study.cn/api/contest-events, https://where-to-study.cn/api/contest-notices, and https://where-to-study.cn/api/shuttle-bus are credential-free GET requests to the fixed HTTPS host, reject redirects, and enforce response-size limits. They contain no cookies, tokens, schedules, classrooms, assignments, or other personal data. All weather, folklore, shuttle, and deadline information shown in the app is for reference only; rely on actual official information.
五、教学云平台课程与作业
“个人账户”可以为同一学号单独保存教学云平台密码,仅用于教学云课程与作业认证;未单独设置时沿用教务密码。同一账号编辑时留空会保留已保存的独立密码,明确选择“使用教务密码”并保存后才会清除它;更换学号不会继承旧账号的教学云密码。
Personal Account can store a separate Teaching Cloud password for the same student ID, used only to retrieve Teaching Cloud courses and assignments. If unset, the academic password is used. Leaving the field blank while editing the same account keeps an existing separate password; explicitly choosing and saving “Use academic password” clears it. A new student ID never inherits the previous account's Teaching Cloud password.
请求课程与作业时,应用会从本地凭据存储临时读取学号及当前生效的教学云密码,只将其通过 HTTPS 提交给 auth.bupt.edu.cn 完成统一认证,再用一次性票据换取内存令牌,从 apiucloud.bupt.edu.cn 读取资料。不读取系统浏览器 Cookie 或 token,不向教学云 API 发送密码,也不把该认证链路的票据、Cookie 或令牌写入磁盘。
Course and assignment requests temporarily read the student ID and effective Teaching Cloud password from local credential storage and submit them only to auth.bupt.edu.cn over HTTPS for unified authentication. A one-time ticket obtains an in-memory token for reads from apiucloud.bupt.edu.cn. The app does not read system-browser cookies or tokens, send passwords to Teaching Cloud APIs or persist this authentication flow's tickets, cookies or tokens.
0.4.0 图形客户端会在应用私有、有界缓存中保存经过字段、大小及来源校验的课程、作业业务资料和原始获取时间,用随机、非秘密的作用域标识隔离账户资料,不把密码、令牌、认证 Cookie 或完整 HTML 混入业务缓存。图形端启动先显示此前资料,课程页、作业页和教学日历共用同一数据入口及进行中的请求,再在后台静默更新。有效凭据改变或清除本地数据时先撤销旧作用域,阻止旧请求写回;失败或部分失败保留并标注此前资料,不把旧获取时间改为本次刷新时间。终端客户端的作业查询仍采用进程内缓存。
Graphical clients in version 0.4.0 persist validated course and assignment business data and original fetch times in bounded app-private caches. Random non-secret scope identifiers isolate account data; passwords, tokens, authentication cookies and full HTML never enter these business caches. Graphical clients show prior data at launch before a silent update, with Courses, Assignments and the calendar sharing one fetch owner and in-flight requests. Effective credential changes or local clearing revoke the old scope before old requests can write back. Failed or partial updates retain labelled prior information with its original fetch time. Terminal assignment queries continue to use process-memory caching.
0.3.2 的课程作业查询采用仅进程内短期缓存;此处新增的跨重启业务缓存适用于 0.4.0,不能将它与认证令牌或下述 QMplus 网页存储混为一谈。
Assignment queries in 0.3.2 use short-lived process-memory caching. The new cross-restart business cache applies to 0.4.0 and is separate from authentication tokens and the QMplus web storage described below.
六、QMplus 独立连接
QMplus 为 0.4.0 图形客户端的可选功能,使用独立的 QMUL 官方账号,与北邮教务或教学云平台账号无关,不会将北邮密码发送给 QMplus。新用户默认不启用 QMplus;已有连接或用户明确关闭的选择按升级迁移保留。连接通过 qmplus.qmul.ac.uk 及其官方 SSO/Microsoft 登录页面完成,信息直接提交对应官方服务,不经过本项目服务器。
QMplus is optional in graphical clients in 0.4.0 and uses a separate official QMUL account, not BUPT academic or Teaching Cloud credentials. BUPT passwords are not sent to QMplus. QMplus is off for new users; migration preserves existing connections or explicit Off choices. Connections use qmplus.qmul.ac.uk and its official SSO/Microsoft sign-in pages. Information goes directly to those services, not this project's server.
原生 macOS 公共 DMG/ZIP 的 QMplus 登录资料使用独立的本机系统 Keychain 记录和系统默认访问控制,不保存明文或放宽可信应用列表;iOS、TestFlight/App Store 继续使用原 Data Protection Keychain。公共渠道的授权、保存偏好、功能开关、网页会话标识和业务缓存也与商店渠道隔离,不读取、迁移或删除商店渠道的 QMplus 资料与 Cookie。首次使用公共渠道需重新保存并授权,官方服务可能要求重新登录/MFA。未知分发标记会阻断 QMplus,安全存储失败不会自动切换后端。
Native macOS public DMG/ZIP packages use a separate local system Keychain record with default OS access controls for QMplus credentials, without plaintext storage or broader trusted-app access. iOS and TestFlight/App Store retain the existing Data Protection Keychain. Public-channel authorization, save preferences, the feature switch, web-session identifiers and business caches are isolated from Store-channel data; Store QMplus credentials and cookies are not read, migrated or deleted. First use of the public channel requires saving and authorizing again, and the official service may require sign-in/MFA. Unknown distribution markers block QMplus; secure-storage failure does not automatically switch backends.
首次保存界面的自动填写选项默认预选,但预选本身不保存密码或建立授权。只有你填写资料并主动保存时,应用才通过前述本机安全存储保存独立登录资料,并按你的选择授予匹配的自动填写授权;已明确关闭的选择会保留。授权后,应用仅在已核验的官方页面选择精确匹配的账号、填写账号和密码,并完成已确认的普通登录及“保持登录”步骤,每步骤至多尝试一次,不反复尝试密码。有效会话优先直接同步。
Autofill is initially preselected in the first-save form, but preselection alone neither stores a password nor grants authorization. Only explicit saving stores separate credentials in the protected local storage described above and establishes matching autofill authorization according to your choice. Explicit Off choices are retained. Authorized automation acts only on verified official pages: it selects the exact matching account, fills verified username/password forms and completes confirmed ordinary sign-in and Stay signed in steps, with at most one attempt per step and no password retries. A valid session is reused first.
验证码、MFA、短信/电话验证由你本人完成。应用处于系统前台且识别到验证码或 MFA 时显示官方窗口,验证完成后继续同步;未匹配账号、未知页面、风险确认及新协议会暂停,提供手动继续,不自动接受。应用进入系统后台时暂停登录自动化,不抢占焦点。系统密码管理器的建议由你的系统授权控制,应用不读取其密码库。
You complete CAPTCHA, MFA and SMS/telephone verification yourself. A confirmed CAPTCHA or MFA challenge reveals the official window while the app is in the OS foreground, then synchronization continues after verification. Unmatched accounts, unknown pages, risk confirmations and new terms pause for manual continuation rather than automatic acceptance. Moving to the OS background pauses sign-in automation without taking focus. System password-manager suggestions remain under your separate OS authorization; the app cannot read that password vault.
应用只读同步用户已有权限访问的当前 EBU 课程和已发布 Assignment/Quiz 资料及可验证时间,不请求日历/Timeline,不提交作业、启动测验、读取答案或评分反馈。经校验的课程、活动及原始获取时间按独立 QMplus 身份作用域缓存在本机,缓存不包含密码、Cookie、Moodle 会话密钥、认证令牌或完整 HTML。重启先显示此前资料,再尝试复用会话更新;课程缓存存在不代表官方会话仍有效。
The app reads only current EBU courses and published Assignment/Quiz information with verifiable times that you already have permission to access. It does not request calendar/Timeline, submit work, start quizzes or read answers or grading feedback. Validated courses, activities and original fetch times are cached locally within an independent QMplus identity scope, without passwords, cookies, Moodle session keys, authentication tokens or full HTML. Restart shows prior data before attempting a session-based update; a course cache does not prove that an official session remains valid.
QMplus 网页会话由应用自己的 WebEngine 管理,不与系统浏览器共享。原生 Apple 客户端在 iOS 17/macOS 14 及以上使用隔离持久 WebKit 数据区,较旧系统使用非持久会话。Android 使用独立 WebView 进程/profile;HarmonyOS 使用仅供 QMplus 的应用内普通 ArkWeb 持久数据区,它不是 SDK 命名 profile。Tauri 在 Windows/Linux 使用专用应用私有数据目录,在 macOS 14 及以上使用独立命名 WebKit 数据区,旧 macOS 使用无痕会话。允许持久化的 Cookie 和网页存储可以在本机保留,但不导出到业务缓存、日志或项目服务器。
QMplus web sessions are managed by this app's WebEngine, not shared with the system browser. Native Apple clients use isolated persistent WebKit stores on iOS 17/macOS 14 and later and nonpersistent sessions on older systems. Android uses a separate WebView process/profile. HarmonyOS reserves the app's normal persistent ArkWeb data area for QMplus; it is not an SDK named profile. Tauri uses dedicated app-private directories on Windows/Linux, a named WebKit store on macOS 14+ and incognito on older macOS. Engine-permitted cookies and web storage may persist locally, but are not exported to business caches, logs or project servers.
持久区不保证永久登录或免 MFA:官方会话有效期、系统策略及 Cookie 类型仍可要求重新认证;HarmonyOS 的 session-only Cookie 尤其不能保证在平板或 PC/2in1 上跨重启保留。旧无痕会话不会被导出或迁移。关闭“启用 QMplus”只暂停同步,保留资料、网页会话和缓存;关闭自动填写、删除登录资料和清除数据是不同操作,组合删除按钮按界面说明执行。更换北邮账号不会自动更换独立 QMplus 身份。
Persistent storage does not guarantee permanent sign-in or exemption from MFA: official expiry, OS policies and cookie types may require reauthentication. HarmonyOS session-only cookies are not guaranteed to survive restart, especially on tablets or PC/2-in-1 devices. Old incognito sessions are not exported or migrated. Turning off Enable QMplus pauses sync but retains credentials, web data and caches. Disabling autofill, deleting credentials and clearing data are distinct actions; combined deletion controls follow their on-screen descriptions. Changing a BUPT account does not automatically change the separate QMplus identity.
七、系统日历、通知与小组件
只有在你主动操作并授予相应系统权限后,应用才会写入系统日历或安排本地课程摘要、课前提醒。提醒时间、个数及去重记录保存在本机。Android 可选“闹钟和提醒”特殊访问权以尽量准时,未授权时使用可能延迟的大致时间提醒。新作业提示为应用内弹窗,不是服务器推送。应用仅管理带有 Where To Study 标记的日历事件;课程小组件只在支持该能力的平台提供。相关个人资料不会上传给项目维护者。
System-calendar writes, daily course summaries and pre-class reminders require your action and the applicable system permission. Reminder times, counts and deduplication records stay on your device. Android optionally uses Alarms & reminders special access for more timely delivery; approximate reminders may be delayed without it. New-assignment notices are in-app dialogs, not server push messages. The app manages only calendar events marked by Where To Study; widgets are available only where supported. Related personal information is not uploaded to the maintainer.
八、移动网络与系统网络辅助
0.4.0 的 Android/HarmonyOS 可选在 Wi-Fi 数据获取失败时尝试移动网络备用,仅用于允许的只读请求,不通过移动网络回退重放密码提交或修改请求,QMplus 官方登录网页不在此功能范围内。可能产生运营商流量费用,仍受系统、网络和权限限制。Apple 使用系统提供的网络能力,应用不承诺强制将任意请求切换到流量;桌面平台没有移动网络时不会提供此能力。网络偏好只保存在本机,不增加设备标识或行为跟踪。
Android/HarmonyOS in 0.4.0 optionally attempt cellular fallback for eligible read-only requests when Wi-Fi fetching fails. This does not replay password submissions or mutation requests over cellular, and excludes official QMplus sign-in web pages. Carrier data charges may apply, subject to OS, network and permission limits. Apple relies on system network capabilities without promising forced cellular routing for arbitrary requests. Desktop systems without cellular do not provide this capability. Network preferences stay local and introduce no device identifiers or behavioral tracking.
九、不收集的数据与第三方元数据
本项目为应用提供固定公开数据接口,不提供应用用户账户或个人资料云端同步,App 不包含广告、分析或行为跟踪 SDK,也不采集 GPS 位置、联系人、广告标识符或使用行为。你主动连接的北邮服务、QMplus/QMUL SSO 或 Microsoft 按各自政策处理对应认证资料;QMplus/Microsoft 官方页面提交的信息不是提交给本项目服务器。上述官方服务,以及 unpkg、UAPI、Timeless、GitHub Pages 和用户选择的自定义日程服务器可能处理 IP 地址、请求时间等普通网络元数据;公开数据请求不附带教务或 QMplus 凭据。官方服务可能位于其他国家或地区,连接前请阅读其页面提供的政策。
The project provides fixed public-data endpoints for the app, without app user accounts or personal-data cloud synchronization. The app contains no advertising, analytics or behavioral-tracking SDKs and does not collect GPS location, contacts, advertising identifiers or usage behavior. BUPT services, QMplus/QMUL SSO or Microsoft that you choose to connect process the corresponding authentication information under their own policies. Information submitted on official QMplus/Microsoft pages is not sent to this project's server. Those official services, as well as unpkg, UAPI, Timeless, GitHub Pages and your chosen custom-feed server, may process ordinary network metadata such as IP address and request time; public-data requests carry no academic or QMplus credentials. Official services may operate in other countries or regions; read the policies linked on their pages before connecting.
官网及固定公开接口为保障运行与统计访问,按既有服务配置记录访问 IP、时间和规范化路由;原始日志私有保留 365 天,地理位置只作服务器本地近似推断。不记录请求中的密码、Cookie、Authorization 或个人课表,不以设备唯一标识符识别 App 用户;网站访问日志不等同于 App 上传个人学习资料。
For operation and aggregate traffic statistics, the website and fixed public endpoints record IP address, time and normalized route under the existing service configuration. Raw logs remain private for 365 days; coarse geolocation is inferred locally on the server. These logs do not record passwords, cookies, Authorization headers or personal timetables, and do not use unique device identifiers to identify app users. Website access logs are not uploads of personal study records from the app.
十、保留与删除
你可以取消单条收藏、恢复本机课程删除记录,或在设置中清除应用保存的凭据、课表及考试、空教室、节假日、课程作业缓存、收藏、偏好、应用管理的提醒任务和新增作业去重记录。QMplus 功能停用不等于删除;删除登录资料会删除相应独立安全记录,退出/清除数据操作还会撤销会话作用域并清理对应业务快照及网页数据,按各平台界面提供的操作执行。
You can remove individual favorites, restore local course-removal records or clear saved credentials, timetable/exams, classroom, holiday and course/assignment caches, favorites, preferences, app-managed reminders and new-assignment deduplication records in Settings. Disabling QMplus is not deletion. Deleting sign-in details removes the corresponding separate secure record; logout/data-clearing actions additionally revoke its session scope and clear the related business snapshots and web data, using the controls available on each platform.
旧会话未清理完成时,应用保留不含账号、密码、Cookie 或令牌的清理标记并阻止继续使用旧网页区,不把保存新资料当成旧 Cookie 已删除。Tauri Windows/Linux 已使用的数据目录、HarmonyOS 已使用的网页区可能需要真正重启后才能完成清理;失败会提示重试。系统安全存储和网页数据的卸载保留规则由操作系统决定,不能保证仅卸载就删除全部钥匙串资料,请优先使用应用内明确的删除/清除操作。清除本地数据不删除学校、QMplus/Microsoft 或其他第三方保有的记录,也不自动删除已导出到系统日历的独立事件。
Until old-session cleanup completes, a non-sensitive cleanup marker blocks reuse of the old web store; saving new credentials does not prove old cookies were removed. Used Tauri Windows/Linux directories and HarmonyOS web stores may require a genuine process restart to finish cleanup. Failures request a retry. The OS controls uninstall retention for secure storage and web data, so uninstall alone does not guarantee removal of all keychain records; use explicit in-app deletion/clearing first. Local clearing neither deletes records held by the university, QMplus/Microsoft or other third parties nor automatically removes separately exported system-calendar events.
十一、安全与联系
安全报告请遵循项目 SECURITY.md。隐私问题可在 GitHub Issues 中提交不含敏感信息的讨论。请勿在公开内容中提供账号、密码、令牌、个人课表或其他敏感数据。重大变更会在本仓库更新生效日期。
Follow the project's SECURITY.md for security reports. Privacy questions may be opened as a non-sensitive discussion in GitHub Issues. Never include accounts, passwords, tokens, personal schedules, or other sensitive data in public content. Material changes will be published in the repository with an updated effective date.