Repository navigation
v1.6.1
Shellsmith v1.6.1
这是当前的 正式版本。本版本的具体变更见下方自动生成列表。
This is the current stable release. See the generated changelog below for version-specific changes.
下载 / Downloads
- Windows:
Shellsmith_1.6.1_windows_x64_setup.exe - macOS:
Shellsmith_1.6.1_macos_universal.dmg - Linux:选择
.AppImage或.deb安装包 / Choose the.AppImageor.debpackage - Android:
Shellsmith_1.6.1_android-runtime.zip,包含桌面加固 APK/AAB 所需的 Stub、API 19 兼容资源与 PVM2 Packer;它不是可直接安装在手机上的 GUI / Android runtime resources for desktop APK/AAB protection; not an installable Android GUI
使用须知 / Notes
- 需要完整 JDK 8 或更高版本(含
java与keytool) / A full JDK 8 or later withjavaandkeytoolis required - 加固、签名和证书资料均在本地处理,不会上传用户文件 / APKs, signing keys, and certificates are processed locally and never uploaded
- 安装包尚未进行商业代码签名或公证;首次运行请参考 README / Installers are not currently code-signed or notarized; see the README before the first launch
- 当前桌面 GUI/CLI 支持 APK 与 AAB;Android runtime zip 是桌面加固所需资源,不是可直接安装在手机上的 GUI / The desktop GUI/CLI support APK and AAB; the Android runtime zip contains protection resources and is not an installable Android GUI
本次变更 / What's Changed
以下列表由 GitHub 根据本版本与上一正式版本之间的拉取请求和提交自动生成,完整覆盖本次正式版本周期。
The following changelog is generated by GitHub from pull requests and commits since the previous stable release, covering the complete release cycle.
所有用户都能在软件内一键更新
- 修复了一个只有部分用户才会遇到的更新体验问题:从磁盘映像(DMG)直接打开、或从下载目录被 Gatekeeper 转位(App Translocation)运行的 macOS 应用,此前只能提示「请先拖入应用程序」,按钮会跳到 GitHub 下载页;现在这类用户同样可以直接点「下载并安装」。
- 更新器改为把新版本安装到
/Applications(无写权限时由系统授权完成),并从新位置启动。下一次更新即可正常原地覆盖,无需再手动拖拽。 - 修复了改装安装后重启会再次拉起旧副本的问题:原先固定调用「重启当前可执行文件」,在只读位置安装时会重新运行旧版本。
- 从裸二进制(未打包成 .app)运行时不再直接判定为不可更新,同样按上述方式安装到
/Applications。 - Linux 的 deb 安装包由系统包管理器管理,无法在应用内静默替换;此时按钮改为直接下载 deb 由系统安装器完成安装,不再跳转到 Release 页面。AppImage 版本保持完整的一键更新能力。
- 更新弹窗会明确写出新版本将安装到的位置,避免用户以为更新失败或安装位置被悄悄改变。
修复 PVM2 打包器被错误替换的回归
- 撤销了 1.6.0 中把内置 PVM2 打包器换成上游固定提交构建产物的改动:该提交只实现
channel一个子命令,缺少加固流程依赖的 PVM2 与资源变换子命令,会导致加固在资源 ID 变换阶段直接失败(input APK not found: resource-id-transform)。 - 目前的已知限制:内置打包器声明的 PVM2 镜像格式版本(v6)高于发布流程固定编译的壳运行时(v5)。开启 TRUE_VMP 的加固会在开始前被明确拒绝,并给出两侧版本号与修复方式;不会再产出安装后启动即崩的包。该限制会随上游提交与
XOP_PROTECTOR_REF更新一并解除。
更新与发布流程
- 新增 PVM2 版本握手检查:加固前比对打包器声明与壳运行时支持的格式版本,打包器更新时直接拒绝并给出修复建议,不再等到用户设备上才暴露。
- 壳构建会把运行时支持的最高格式版本写入
metadata.json,发布流程在钉住的依赖检出后比对内置打包器,防止再次把不匹配的组合发出去。
本次自动构建 / This automated build
- 提交 / Commit:
6a27d92— fix: 让只读位置运行的用户也能在软件内一键更新并发布 1.6.1 (#15)
文件变更统计 / File change summary
.github/release-notes/versions/1.6.1.md | 18 ++
.github/workflows/release.yml | 7 +-
Cargo.lock | 8 +-
apps/shield-cli/Cargo.toml | 2 +-
apps/shield-gui/package-lock.json | 4 +-
apps/shield-gui/package.json | 2 +-
apps/shield-gui/src-tauri/Cargo.toml | 2 +-
apps/shield-gui/src-tauri/src/updates.rs | 341 +++++++++++++++++----
apps/shield-gui/src-tauri/tauri.conf.json | 2 +-
.../src/components/app/update-dialog.tsx | 4 +
apps/shield-gui/src/hooks/use-about-page.ts | 2 +-
apps/shield-gui/src/lib/i18n.ts | 18 +-
apps/shield-gui/src/lib/tauri.ts | 7 +-
apps/shield-gui/src/lib/update-install.ts | 4 -
apps/shield-gui/tests/update-install.test.mjs | 16 +-
crates/shield-core/Cargo.toml | 2 +-
scripts/tests/test_pvm2_packager_version.py | 28 +-
scripts/verify_pvm2_packager_version.py | 37 ++-
shield-stub/compat/api19-rust/Cargo.lock | 2 +-
shield-stub/compat/api19-rust/Cargo.toml | 2 +-
shield-stub/src/main/rust/Cargo.toml | 2 +-
21 files changed, 401 insertions(+), 109 deletions(-)
其他变更
- fix: 回滚内置 PVM2 打包器到含 transform 子命令的版本(撤销 #13 的打包器替换) by @kairowan in #14
- fix: 让只读位置运行的用户也能在软件内一键更新(发布 1.6.1) by @kairowan in #15
Full Changelog: v1.6.0...v1.6.1