官方基岩版更新很勤,但你未必想第一时间跟——新版客户端可能还没铺开,朋友的手机还停在上一版;也可能刚更新的版本在你的存档上出了怪问题,需要退回上一个构建。BDS 的版本管理有两种入口:往后走(升级到最新稳定版或预览版)和往回走(选任意历史版本)。
两条路都在意同一件事:升级不能毁掉世界、白名单和配置。官方安装包里自带一份 server.properties(16KB 默认模板)、allowlist.json 和 permissions.json(都是 3 字节的 [])。直接解压覆盖,等于把端口、白名单、权限一次清空。这一页讲的就是应用怎么避开这件事,以及你自己要注意什么。
「服务器管理 → BDS 核心版本」看三行:当前版本、最新稳定、最新预览,有更新时出现按钮。
升级前只备份用户数据面(世界、三份配置、行为包、资源包、
config/),不含 265MB 核心。旧核心会保留成
bedrock_server.old-<版本>,出问题能回滚;只留最近一份。历史版本在下载页的「历史版本」弹窗里,降级会二次确认,因为新版世界可能回不去。
校验徽标分三档:清单 SHA-256 > 本地固定摘要 > 结构校验。没有摘要时也不会「下完就信」。
先看当前装的是哪一版#
入口:底部「服务器管理」→ 选中 BDS 服务器 → BDS 核心版本卡片(只有 BDS 核心才显示这张卡)。
卡片上是三行信息:
| 行 | 含义 |
|---|---|
| 当前版本 | 服务器目录里实际跑的那个构建,读自 bds-version.txt |
| 最新稳定版 | 官方 download/links 接口给的 serverBedrockLinux |
| 最新预览版 | 同一接口的 serverBedrockPreviewLinux |
版本号是从下载地址文件名(bedrock-server-1.26.61.1.zip)解析出来的——官方不提供 JSON 版本字段,这是唯一可靠来源。目录有 10 分钟缓存,离线时回退上一次结果并标注来自缓存。
三行一样就说明已经是最新,不需要动。当前版本比最新稳定版高,说明你在用预览版或手动装的构建。
升级:七步,每一步都在防「毁数据」#
点更新按钮后会弹确认框,逐条列出「会备份什么、会保留什么」。确认之后走固定流程:
| 步骤 | 规则 | 为什么 |
|---|---|---|
| 前置检查 | 服务器必须已停止;目录必须是 BDS 布局 | 运行中替换核心,进程还在用旧 inode,界面却显示已更新 |
| 备份用户数据 | worlds/、server.properties、allowlist.json、permissions.json、behavior_packs/、resource_packs/、config/ | 这些是官方包里会用默认值覆盖的东西 |
| 下载 | 多源下载 + 包级校验(zip 可读、含 bedrock_server、体积 ≥ 20MB) | 半截文件不能进服务器目录 |
| 暂存解压 | 解到临时目录(不在服务器目录内),校验主程序架构、体积、配置是否存在 | 解压失败不该污染现有目录 |
| 保留旧核心 | bedrock_server 改名 bedrock_server.old-<旧版本> | 出问题能一键回滚 |
| 合并安装 | server.properties / allowlist.json / permissions.json 已存在则跳过;worlds/ 整棵不碰;只写不删 | 你自装的行为包不会因为新包里没有就被删 |
| 落地复检 | 再判一次「能不能跑」;不通过就删本次新写文件、把 .old 改回原名 | 宁可回到升级前,也不留一个跑不起来的目录 |
备份失败会立刻中止整个升级,服务器目录一个字节都不动。外部存储没有权限时,备份退化到应用私有目录,不会因此跳过备份。
升级完成后写 bds-version.txt,并清掉旧版本的运行副本与运行目录里的链接。那些副本每个都是 244MB 级,不清会白占空间。
降级:为什么要多一次确认#
在「下载」页选 BDS 核心,点「历史版本」,弹窗里能:
搜索具体版本号,或按 稳定 / 预览 筛选;
看到哪些版本已经装过(有标记);
每条右侧显示校验等级徽标(见下一节);
选一个比当前低的版本时,会弹降级二次确认。
多这一步不是啰嗦。基岩版世界有版本标记:用新版打开过的世界,退回旧版可能直接拒绝加载。降级前必须做的是:停服 → 单独备份 worlds/ → 再装旧版本。备份怎么做见 备份、还原与世界管理。
安装历史版本走的是和升级同一条合并逻辑:写完只做加法,不动世界,保留现有配置。
应用在升级时会自动备份用户数据面,但降级不等于升级的反向操作:你可能已经在新区建了建筑、跑了新方块。确认框只负责告诉你「有风险」,救不回来的是没有备份的那个世界。
版本清单从哪来:三份来源合并#
官方接口只给「当前稳定版 + 当前预览版」两条,装不了旧版本,也没有任何校验摘要。所以应用把三份来源合并成一张清单:
| 来源 | 提供什么 | 局限 |
|---|---|---|
| 内置清单(随 APK) | 123 条历史构建,从 1.7.0.13 到 1.21.100.6 | 只随应用更新,永远落后于官方 |
| 官方 links 接口 | 当前稳定版 / 预览版的权威直链 | 只有两条,没有摘要 |
| 远端清单 | 历史版本 + SHA-256 摘要 | 依赖第三方维护,可能缺条目 |
合并规则是官方优先、远端补历史与摘要、内置兜底。这样离线也能装历史版本,联网时又能拿到最新。
版本比较按数字段做:1.26.61.1 与 1.26.60.9 比的是每一段数字,不是字符串。同版判定只看前三段——补零变体(1.26.61 与 1.26.61.0)算同一版,但如果整串写了预览标记,就必须整串一致。
校验徽标:三档,能到哪档用哪档#
一个 93MB 的 zip 从第三方 CDN 下来,得能回答「这是不是官方那个包」。门槛从高到低:
| 徽标 | 判据 | 什么时候能拿到 |
|---|---|---|
| SHA-256(清单) | 版本清单里给了该版本的摘要 | 最新稳定/预览版,以及远端清单覆盖的历史版 |
| SHA-256(本地固定) | 应用本地登记过的摘要 | 之前验证过的版本,换源重下时仍可判真 |
| 结构校验 | zip 可读 + 全条目 CRC + 含 bedrock_server + 体积下限 | 只有直链、没有任何摘要的历史版本 |
校验不通过不会重试同一个坏文件:下载层会换下一个直链候选,全部失败才报错,并且可以点「重新下载」。每个源下完立刻校验,通过才落盘到最终路径,所以服务器目录里不会出现半截包。
老安装会要求「重新初始化」#
1.5.0 给 BDS 运行环境补了一批 x86_64 兼容库(历史版本的 bedrock_server 依赖的 libcurl、libssl1.1、libnsl 等),环境代次因此升到 gen=2。
如果你是从更早的版本升上来的,「依赖与环境管理 → BDS」会提示重新初始化——注意文案不是「首次安装」,因为容器和 box64 都还在,只是缺兼容库。点一次就走完,不需要清数据。
老版本 BDS 启动时如果报 Error loading needed libs,八成就是这一步没做。
磁盘账:留一点余量#
BDS 占用的不止安装包那 90MB:
| 内容 | 大致体积 |
|---|---|
| Ubuntu 容器(与 Java 版 PRoot 共享) | 约 120MB |
| box64 与基础运行库 | 约 30MB |
| 核心运行副本(私有目录,按版本共享) | 约 244MB / 版本 |
旧核心 .old-<版本>(只留最近一份) | 约 265MB |
| 世界与备份 | 看你玩多久 |
换一次版本,峰值会短暂多出一份新包 + 一份旧核心。手机只剩几百兆时先清备份,再升级。
确认能正常启动、朋友能进、世界没异常之后,再考虑清理。应用只保留最近一份 .old-*,这是有意的上限——留多了每个都是 265MB。
升级或降级失败,按现象对号#
| 现象 | 原因 | 处理 |
|---|---|---|
| 「校验失败」反复出现 | 当前所有直链都拿不到完整包 | 换网络重试;仍失败就选相邻的另一个小版本 |
| 升级后启动报缺库 | 环境还是 gen=1 | 去「BDS」一栏点重新初始化 |
| 升级后配置被清空 | 你手动解压覆盖了官方包 | 从升级前的自动备份里还原三份配置文件 |
| 降级后世界打不开 | 新版世界回不去 | 用降级前的 worlds/ 备份还原,或装回新版 |
| 版本号显示不对 | bds-version.txt 被手动改过 | 重新装一次该版本,让应用重写 |
「服务器管理 → BDS 核心版本」三行都读得出来,没有一直转圈。
升级前服务器是停止状态,确认框里列出的备份内容你认可。
服务器目录里能找到
bedrock_server.old-<旧版本>。升级后
server.properties里的端口和白名单没变。降级之前,
worlds/已经单独备份过一份。
下一步#
环境、启动与连服还没走通:官方基岩版(BDS)开服
世界要备份、要还原:备份、还原与世界管理
版本和客户端对不上怎么选:选版本、升级与降级
新版启动失败要读日志:读懂日志与关键词