安装包发布与更新约定
NAS 发布位置:
UGREEN/APK/
├── dungeonmaker/
│ ├── *.apk 按时间保留每次发布的 APK,直接平铺
│ └── 更新日志/ 对应更新说明、SHA256 和构建报告
└── noahfantasy/
└── releases/
├── *.apk
└── 更新日志/
两个游戏统一归在 NAS 一级目录 APK/ 下,各自保留历史版本和更新日志。两个项目的 release-config.json 已同步新路径,后续发布直接写入对应游戏目录。来源包 个人存储空间/GAME/dungeonmaker1.11.21.apk 保持不变。
Dungeon Maker 不再嵌套第二层 APK/:发布包直接放在 UGREEN/APK/dungeonmaker/,更新日志、校验和构建报告继续单独放在 更新日志/;旧版本一起迁移,文件内容不变。
构建和发布
.venv/bin/python tools/build_inheritable_apk.py --publish
.venv/bin/python tools/verify_inheritable_apk.py
配置在 release-config.json,启用补丁见 client/patches/active.json。继承补丁更改53种友方单位的继承标记,并解除事件、剧情模式及普通获取池锁定名单对已有友方怪物的继承拦截;保留继承格数、实际拥有记录、独立禁用操作及正常获取条件。继承补丁本身不赠送怪物或增加格数;623版另行启用的卡包全开补丁会解锁卡包中的相关内容。获取池锁定名单修正从626版开始包含,625及之前发布包没有这项修正。
最新为628版 DungeonMaker-inherit-20261024-165626.apk:自动补齐10位魔王的87款换装皮肤,本体未解锁时也先持有,解锁本体后即可使用;魔王本体与觉醒、超越进度保持,保留当前外观,不扣魔石或增加购买计数,重复启动不重复赠送。沿用627维护签名,可覆盖旧维护版;保留书籍翻倍及全部既有补丁。签名、对齐、最终APK独立读回、皮肤指令模拟和NAS校验通过,尚未实机验证。APK平铺在NAS游戏目录,日志与校验继续放更新日志/。与627相比,非签名内容仅Manifest与原生库变化,原生差异110字节;SHA256为33dd05481ccc9df9ee4ec5c90d309da940e3cb0a4862d0e6f51982744fb2e0d0。
627版 DungeonMaker-inherit-20261024-164138.apk引入除四本单实体召唤书外268卷书籍数值效果翻倍,并同步49条中文说明模板和272卷说明预览。成长书提高成长量、权重保持;魔法知识兼容已读旧存档,衰弱应用避免负激怒额外伤害,628版继续保留。
627版继续包含626的跨局怪物继承资格修复、按显示星数收取侵略费用,以及更早的房间经验缓增、局内单位固定升级经验、卡包全开和来源菜单/预置存档移除。与626相比,DEX保持相同,非签名变化限定为Manifest、9个Unity资源分片及书籍原生处理;原生差异171字节。新包SHA256为c0354466e8337f360859dac2020b8a29cfa2e9e4fee012a5ff1dfabde2011a21。
626版已合入fixed-invasion-cost:侵略费用去除等级因素,每只固定按显示星数收费,6星怪兽始终6金币,队伍逐只相加;剧情模式原有星数灵魂费用保持。15360例ARM64费用模拟与实际队伍合计检查通过。
626版同时合入跨局继承修正:旧补丁仍让自然种子等事件单位受到获取池锁定名单拦截,本次从共享资格入口补齐,223种友方单位的资格、配方、列表状态及实际点选拦截分支均已完成指令模拟。构建及最终APK独立核验都执行tools/verify_inheritance_selection.py中的选择路径检查,不操作玩家存档。与625比较,非签名内容只改变Manifest和原生库,原生差异仅这两项规则的58字节。
625版 DungeonMaker-inherit-20261024-114447.apk 引入魔王和普通怪物每级固定初始基础经验40,再应用原有需求修正;房间采用初始经验×(显示等级+39)÷40的缓增规则。这些规则在626版继续保留,转生、超越经验、属性成长和战斗经验奖励不变。
版本620已合入 client/patches/linear-room-experience.json:升级经验为原始初始经验×当前显示等级,再应用原有全局需求修正及整数转换;指数率不再参与经验需求,房间效果成长不变。用户于2026年10月24日确认编译并推送,版本620沿用619的签名发布。可运行 .venv/bin/python tools/verify_room_experience.py --source 单独验证源补丁,或 --apk <安装包路径> 读回已构建APK中的实际指令。
版本621合入 client/patches/resigned-startup-compat.json,取消来源修改包启动时写死旧证书指纹的检查调用。619/620保留了该检查,已收到620的实机启动退出反馈。621保留来源包左上角MOD菜单、修改项及悬浮窗权限;DEX仅改一处调用并重算内部校验,继续沿用本项目同一签名。静态校验通过,仍需实机确认启动。
版本622合入 client/patches/remove-source-menu-and-save.json:移除来源悬浮菜单、自动修改模块、附加弹窗和预置存档导入,同时移除悬浮窗权限并设置allowBackup=false。保留本项目继承、房间线性经验和重签启动修复;621保留菜单的行为不再适用于新版本。来源配置可能还有其他既有修改,不能称为官方原版。
624版 DungeonMaker-inherit-20261024-032136.apk:按用户确认启用 all-card-packs-unlocked,九个当前魔石卡包的1206种卡牌全部补满,包括卡包内90项皮肤,合计相当于2774次抽取;赠送清单同时从魔石累计消费中豁免。通过原解锁接口补齐当前进度,重复加载不叠加;挑战、剧情、等级和卡包之外的皮肤进度不改,其他皮肤照常计费。继续不附带来源旧存档、悬浮菜单或无限权能模块。静态、指令模拟和发布校验通过,尚待实机验证。中间623版未处理按已拥有卡牌反算消费的问题,已标为被624取代,请勿使用。
每次从只读基线构建独立版本,保留修改前数据、原生指令及构建报告;不覆盖旧发布。APK签名、原生库对齐和全部非签名条目内容验证通过后才上传;上传后完整读回SHA256核验,临时上传文件验证成功后改名。检查属于静态与安装包完整性验证,不等同实机游玩验证。
Android构建工具与Java仅复用Noah项目已有的通用工具程序,不修改Noah文件,也不复用其Lua或后端逻辑。未启动模拟器或连接游戏存档。
后续更新与存档
包名保持 com.GameCoaster.DungeonMaker,版本代码从619开始递增。此项目所有后续修改版固定使用本机 analysis/signing/ 下的同一把签名密钥;密钥和口令权限受限,仅本机保存,不发布到NAS。
同包名、同签名、版本代码不降低并且存档格式兼容时,可以覆盖更新,通常保留应用数据。卸载、清除数据、改变包名或不兼容地更改存档格式都不属于这种情况。
用户此前选择卸载重装622版以从头开始;624版开始自动补满全部卡包卡牌;628版沿用本项目维护签名,可覆盖旧修改版保留现有进度,无需再次卸载。新包不附带旧存档,也不自动导入或清档。若用户自行登录游戏云存档并恢复进度,不属于APK预置存档导入。
来源包证书SHA256为 8ca2f6fea99e5fcd44e2dd779aaa0be9bdca9de4cf554a18b444a2e0ab903376,私钥不可用;首个本项目修改版使用新签名,不能当作来源包的同签名覆盖更新。安装位置与存档迁移由用户处理,本工具不自动安装或卸载游戏。
规则依据:Android应用更新、应用签名。