Skip to content

Releases: kairowan/Shellsmith

v1.8.6

Choose a tag to compare

@github-actions github-actions released this 19 Oct 08:46
724f176

Shellsmith v1.8.6

这是当前的 正式版本。本版本的具体变更见下方自动生成列表。

This is the current stable release. See the generated changelog below for version-specific changes.

下载 / Downloads

  • Windows:Shellsmith_1.8.6_windows_x64_setup.exe
  • macOS:Shellsmith_1.8.6_macos_universal.dmg
  • Linux:选择 .AppImage 或 .deb 安装包 / Choose the .AppImage or .deb package
  • Android:Shellsmith_1.8.6_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 with java and keytool is 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.

离线加载与兼容修复

  • 新产物统一单层压缩,减少加载复制并优化 Android 运行时编译设置;仍兼容旧的 1~3 层载荷,不改变签名与认证校验。
  • 使用标准 DEX 数据边界定位载荷,保留其他布局的兼容扫描,并修复密文中同名标记导致入口误选的问题。
  • 发布版加载器使用固定错误代码,减少内部算法和解析信息暴露;保留已挂起的 Java 异常。首次与缓存加载的认证失败均已验证拒绝启动。
  • 本地逐方法报告增加指令、寄存器、异常区、桥接及协程准入事实;成功与零转换失败报告均可排查,未放宽保护准入或提高覆盖率统计。
  • 修复还原验收中的重复 DEX 扫描,补齐真实 APK 的分层验证。测试范围通过不代表全部业务已覆盖;本次不新增 Native VMP,也不宣称阻止仅凭 APK 的静态还原。

升级说明

  • 使用配套打包器与运行时重新加固后生效;PVM2 需要 JDK 17 或更高版本。逐方法报告包含业务标识,分享前请脱敏。
  • 保持通用离线加固、手机安装即用;不增加服务器或激活依赖。balanced 与 high 当前采用相同保护决策,保留选项用于旧配置兼容。
  • 单台 Android 15 真机完成真实 APK 的 620 组输入、62,620 次调用及本轮每包 30 次有效冷启动采样。性能随项目和设备变化;本样本缓存启动额外开销仍为 420.5 ms,不能表述为全部性能目标已达成。

本次自动构建 / This automated build

  • 提交 / Commit: 724f176 — perf: 优化离线加固加载并发布 1.8.6

文件变更统计 / File change summary

.github/release-notes/versions/1.8.6.md | 13 ++
Cargo.lock | 8 +-
Cargo.toml | 15 ++
apps/shield-cli/Cargo.toml | 2 +-
apps/shield-cli/src/args.rs | 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/tauri.conf.json | 2 +-
apps/shield-gui/src/hooks/use-about-page.ts | 2 +-
apps/shield-gui/src/lib/i18n.ts | 4 +-
crates/shield-core/Cargo.toml | 2 +-
crates/shield-core/src/protection_policy.rs | 17 +-
crates/shield-core/src/protection_report.rs | 10 +-
docs/README.md | 1 +
docs/design/rea-resilience.md | 177 +++++++++++++++++++++
docs/process/release-acceptance-fusion.md | 2 +-
docs/process/test-checklist.md | 4 +-
docs/usage.md | 14 +-
shield-stub/compat/api19-rust/Cargo.lock | 2 +-
shield-stub/compat/api19-rust/Cargo.toml | 2 +-
shield-stub/src/main/rust/Cargo.toml | 2 +-
shield-stub/src/main/rust/build.rs | 1 +
shield-stub/src/main/rust/src/bin_loader.rs | 137 +++++++++++-----
shield-stub/src/main/rust/src/lib.rs | 85 ++++++----
.../yqsh/protector/packer/ApkRecoveryCheck.java | 38 +++--
.../yqsh/protector/packer/Pvm2ProtectionCheck.java | 10 ++
tests/native/pvm2_runtime_check.cpp | 23 +++
tests/scripts/check-pvm2-runtime.py | 12 +-
tests/scripts/check-rea-resilience.py | 152 ++++++++++++++++++
.../xopprotector/native/src/main/cpp/common/log.h | 5 +-
.../native/src/main/cpp/vm/pvm2_interp.cpp | 7 +
.../java/com/yqsh/protector/packer/Pvm2Report.java | 26 +++
tools/xop-pvm2-packer.jar | Bin 8310391 -> 8311357 bytes
34 files changed, 664 insertions(+), 121 deletions(-)


其他变更

  • perf: 优化离线加固加载并发布 1.8.6 by @kairowan in #31

Full Changelog: v1.8.5...v1.8.6

v1.8.5

Choose a tag to compare

@github-actions github-actions released this 19 Oct 03:06
cf1cc7b

Shellsmith v1.8.5

这是当前的 正式版本。本版本的具体变更见下方自动生成列表。

This is the current stable release. See the generated changelog below for version-specific changes.

下载 / Downloads

  • Windows:Shellsmith_1.8.5_windows_x64_setup.exe
  • macOS:Shellsmith_1.8.5_macos_universal.dmg
  • Linux:选择 .AppImage 或 .deb 安装包 / Choose the .AppImage or .deb package
  • Android:Shellsmith_1.8.5_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 with java and keytool is 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.

PVM2 组件方法兼容修复

  • 修复 Activity、Application、Service 等组件中的普通方法因包含字段、调用、数组元素或同步块而被叶子白名单整批排除的问题,统一进入共用编译器逐指令校验。
  • 修复分支和异常处理区中的可空接收者被静态拒绝的问题;方法长度上限从 512 扩大到 4096 个 DEX 代码单元,同时严格检查展开后的代码长度、寄存器、跳转和异常表边界。
  • 修复字符串常量的内嵌空字符、补充平面字符和驻留身份;修复祖先类引用、派生对象及接口默认实现中的父类调用分派。
  • PVM2 镜像升级至 v9,打包器、运行时和覆盖报告同步适配。初始化器、生成桥、特殊对象契约及其他未支持方法仍明确保留;零转换及必保方法未覆盖仍失败,不把跳过项计为已保护。

验证与使用说明

  • 自建 Java/D8 样本中 46 个方法通过转换和最终产物验证;在 Android 9、15、16 模拟器及 Android 15 真机上完成 20 次启动、10,500 项执行断言,覆盖 16 KB 内存页、无资源表和原生接口默认方法。
  • 本地实际 APK 的限定选择范围为 21 个方法,18 个普通方法转换成功,3 个初始化器保留;完成五种安装/启动场景及生命周期、通知服务检查。该结果不代表全部业务流程或全部方法分支已验证。
  • 升级后需重新加固,使用配套打包器与运行时;已有 APK 不会自动获得修复。PVM2 需要 JDK 17 或更高版本,具体覆盖范围以本次产物逐方法报告为准,分享前请手动脱敏。

本次自动构建 / This automated build

  • 提交 / Commit: cf1cc7b — fix: 扩展 PVM2 组件方法兼容并发布 1.8.5 (#30)

文件变更统计 / File change summary

.github/release-notes/versions/1.8.5.md | 12 +
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/tauri.conf.json | 2 +-
apps/shield-gui/src/hooks/use-about-page.ts | 2 +-
crates/shield-core/Cargo.toml | 2 +-
crates/shield-core/src/protection_report.rs | 14 +-
docs/usage.md | 8 +-
shield-stub/compat/api19-rust/Cargo.lock | 2 +-
shield-stub/compat/api19-rust/Cargo.toml | 2 +-
shield-stub/src/main/rust/Cargo.toml | 2 +-
tests/README.md | 8 +-
.../yqsh/protector/packer/Pvm2ProtectionCheck.java | 157 +++---
tests/native/pvm2_runtime_check.cpp | 6 +-
tests/scripts/check-pvm2-art.py | 180 ++++++-
.../native/src/main/cpp/vm/pvm2_format.cpp | 2 +-
.../native/src/main/cpp/vm/pvm2_format.h | 1 +
.../native/src/main/cpp/vm/pvm2_interp.cpp | 58 ++-
.../com/yqsh/protector/packer/AutoVmpPolicy.java | 12 +-
.../java/com/yqsh/protector/packer/PackerMain.java | 9 +-
.../com/yqsh/protector/packer/Pvm2Compiler.java | 38 +-
.../com/yqsh/protector/packer/Pvm2Opcodes.java | 2 +-
.../java/com/yqsh/protector/packer/Pvm2Safety.java | 562 ++++-----------------
tools/xop-pvm2-packer.jar | Bin 8316378 -> 8310391 bytes
27 files changed, 479 insertions(+), 620 deletions(-)


其他变更

  • fix: 扩展 PVM2 组件方法兼容并发布 1.8.5 by @kairowan in #30

Full Changelog: v1.8.4...v1.8.5

v1.8.5-build.79

v1.8.5-build.79 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Oct 05:52

Shellsmith v1.8.5-build.79

这是一个 预发布版本,仅用于提前验证构建产物和核心流程,不建议用于生产环境。

This is a pre-release for validating build artifacts and core workflows. It is not recommended for production use.

下载 / Downloads

  • Windows:Shellsmith_1.8.5-build.79_windows_x64_setup.exe
  • macOS:Shellsmith_1.8.5-build.79_macos_universal.dmg
  • Linux:选择 .AppImage 或 .deb 安装包 / Choose the .AppImage or .deb package
  • Android:Shellsmith_1.8.5-build.79_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 with java and keytool is required
  • 加固、签名和证书资料均在本地处理,不会上传用户文件 / APKs, signing keys, and certificates are processed locally and never uploaded
  • 安装包尚未进行商业代码签名或公证 / Installers are not currently code-signed or notarized
  • 当前桌面 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 根据本版本与上一正式版本之间的拉取请求和提交自动生成,完整覆盖当前版本周期的 Alpha、Beta 与 RC 变更。

The following changelog is generated by GitHub from pull requests and commits since the previous stable release, covering the complete Alpha, Beta, and RC cycle.

PVM2 组件方法兼容修复

  • 修复 Activity、Application、Service 等组件中的普通方法因包含字段、调用、数组元素或同步块而被叶子白名单整批排除的问题,统一进入共用编译器逐指令校验。
  • 修复分支和异常处理区中的可空接收者被静态拒绝的问题;方法长度上限从 512 扩大到 4096 个 DEX 代码单元,同时严格检查展开后的代码长度、寄存器、跳转和异常表边界。
  • 修复字符串常量的内嵌空字符、补充平面字符和驻留身份;修复祖先类引用、派生对象及接口默认实现中的父类调用分派。
  • PVM2 镜像升级至 v9,打包器、运行时和覆盖报告同步适配。初始化器、生成桥、特殊对象契约及其他未支持方法仍明确保留;零转换及必保方法未覆盖仍失败,不把跳过项计为已保护。

验证与使用说明

  • 自建 Java/D8 样本中 46 个方法通过转换和最终产物验证;在 Android 9、15、16 模拟器及 Android 15 真机上完成 20 次启动、10,500 项执行断言,覆盖 16 KB 内存页、无资源表和原生接口默认方法。
  • 本地实际 APK 的限定选择范围为 21 个方法,18 个普通方法转换成功,3 个初始化器保留;完成五种安装/启动场景及生命周期、通知服务检查。该结果不代表全部业务流程或全部方法分支已验证。
  • 升级后需重新加固,使用配套打包器与运行时;已有 APK 不会自动获得修复。PVM2 需要 JDK 17 或更高版本,具体覆盖范围以本次产物逐方法报告为准,分享前请手动脱敏。

本次自动构建 / This automated build

  • 提交 / Commit: 2fa163e — docs: 修正项目许可证署名并单列上游版权声明

文件变更统计 / File change summary

LICENSE-APACHE | 2 +-
LICENSE-MIT | 2 +-
NOTICE | 15 +++++++++++++++
3 files changed, 17 insertions(+), 2 deletions(-)


Full Changelog: v1.8.5...v1.8.5-build.79

v1.8.4

Choose a tag to compare

@github-actions github-actions released this 16 Oct 10:02
518624f

Shellsmith v1.8.4

这是当前的 正式版本。本版本的具体变更见下方自动生成列表。

This is the current stable release. See the generated changelog below for version-specific changes.

下载 / Downloads

  • Windows:Shellsmith_1.8.4_windows_x64_setup.exe
  • macOS:Shellsmith_1.8.4_macos_universal.dmg
  • Linux:选择 .AppImage 或 .deb 安装包 / Choose the .AppImage or .deb package
  • Android:Shellsmith_1.8.4_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 with java and keytool is 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.

PVM2 继承与异常处理兼容修复

  • 符合条件的独立方法不再仅因所属类存在继承或接口契约而被排除;保留原方法声明、访问标志和接收者,由 ART 继续负责虚方法分派。
  • 放行通过指令、控制流及异常表校验的独立异常处理方法,修复 throw null 未产生可捕获 NullPointerException 的运行时问题,覆盖捕获顺序、重抛和 finally 路径。
  • 修复合法空资源表、完全无资源表 APK 在资源 ID 重排、Apktool 重打包及空路径映射校验中的失败。
  • 构造器、同步、编译器桥接、特殊对象契约及不支持的状态访问/调用仍按规则保留;零转换和必保方法未覆盖仍明确失败,不把跳过的方法计为已保护。

验证与使用说明

  • 自建 Java/D8 样本的 36 个方法中,26 个完成转换与产物核验,10 个明确保留。在 Android 9、15、16 的 arm64 模拟器上完成 20 轮运行,每轮 482 项断言全部通过,包含 Android 16 的 16 KB 内存页和无资源表变体。
  • 模拟器回归不能替代厂商真机或客户原始 APK 验收;没有客户方法体时,不能保证其全部方法都能转换。完整覆盖范围以当前产物的逐方法报告为准。
  • 升级后需要重新加固,已有 APK 不会自动获得本次修复。PVM2 需要 JDK 17 或更高版本;分享逐方法报告前请手动脱敏。

本次自动构建 / This automated build

  • 提交 / Commit: 518624f — fix: 兼容 PVM2 继承异常及无资源 APK 并发布 1.8.4

文件变更统计 / File change summary

.github/release-notes/versions/1.8.4.md | 12 +
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/tauri.conf.json | 2 +-
apps/shield-gui/src/hooks/use-about-page.ts | 2 +-
apps/shield-gui/src/lib/protect-diagnostic.ts | 2 +-
apps/shield-gui/tests/protect-diagnostic.test.mjs | 2 +-
crates/shield-core/Cargo.toml | 2 +-
crates/shield-core/src/protect/resource_format.rs | 27 ++
.../src/protect/resource_format_tests.rs | 57 +++-
crates/shield-core/src/protect/xop_pvm2.rs | 28 ++
crates/shield-core/src/protect_api.rs | 6 +-
crates/shield-core/src/protection_report.rs | 4 +-
docs/process/test-checklist.md | 9 +
docs/usage.md | 8 +-
shield-stub/compat/api19-rust/Cargo.lock | 2 +-
shield-stub/compat/api19-rust/Cargo.toml | 2 +-
shield-stub/src/main/rust/Cargo.toml | 2 +-
.../yqsh/protector/packer/Pvm2ProtectionCheck.java | 157 ++++++++++-
.../yqsh/protector/packer/Pvm2RuntimeImages.java | 27 ++
tests/native/pvm2_runtime_check.cpp | 54 +++-
tests/scripts/check-pvm2-art.py | 300 +++++++++++++++++++++
tests/scripts/check-pvm2-runtime.py | 1 +
.../native/src/main/cpp/vm/pvm2_interp.cpp | 6 +-
.../com/yqsh/protector/packer/AutoVmpPolicy.java | 19 +-
.../yqsh/protector/packer/ResourceIdRewriter.java | 8 +
tools/xop-pvm2-packer.jar | Bin 8316281 -> 8316378 bytes
30 files changed, 706 insertions(+), 51 deletions(-)


其他变更

  • fix: 兼容 PVM2 继承异常及无资源 APK 并发布 1.8.4 by @kairowan in #28

Full Changelog: v1.8.3...v1.8.4

v1.8.3

Choose a tag to compare

@github-actions github-actions released this 16 Oct 07:49
5afb02a

Shellsmith v1.8.3

这是当前的 正式版本。本版本的具体变更见下方自动生成列表。

This is the current stable release. See the generated changelog below for version-specific changes.

下载 / Downloads

  • Windows:Shellsmith_1.8.3_windows_x64_setup.exe
  • macOS:Shellsmith_1.8.3_macos_universal.dmg
  • Linux:选择 .AppImage 或 .deb 安装包 / Choose the .AppImage or .deb package
  • Android:Shellsmith_1.8.3_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 with java and keytool is 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.

PVM2 引用与短方法兼容修复

  • 修复独立方法因对象、数组参数被过度排除的问题。符合条件的引用透传、空值判断和引用身份比较可继续进入 PVM2 转换与产物核验。
  • 修复单条 return 方法被旧式原地回填长度检查拦截的问题,覆盖对象、数组和基本类型/宽值参数透传;PVM2 仍须通过完整跳板及加密镜像验证。
  • 细分继承/接口虚方法契约、同步、异常处理区及指令限制,避免把所有兼容排除都显示为生命周期问题。零转换、必保方法未覆盖仍明确失败,跳过项仍计入完整覆盖率。
  • 修复 APK、AAB 和签名任务失败后仍显示“执行中”的进度标题,补齐结束计时和失败步骤标记;明确基础预检通过不代表方法覆盖已通过。

验证与使用说明

  • 已完成自建 APK 的加固、签名和产物复核,以及生产 Native 解释器三种 ISA 下 666 次引用语义检查。旧版为零转换的引用样本在修复后验证了 18/21 个方法,3 个构造器明确保留;继承契约负例仍正确失败。
  • 本次未新增 Android 真机回归,宿主 JVM/JNI 测试不能代替 ART 真机验收。没有客户 APK 和方法体时,不能据此保证其具体方法全部兼容。
  • 升级后需要重新加固,已有 APK 不会自动获得本次修复。逐方法报告包含业务标识,分享前请手动脱敏。

本次自动构建 / This automated build

  • 提交 / Commit: 5afb02a — fix: 修复 PVM2 引用与短方法兼容并发布 1.8.3

文件变更统计 / File change summary

.github/release-notes/versions/1.8.3.md | 12 ++++
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/tauri.conf.json | 2 +-
.../src/components/app/protect-progress-panel.tsx | 12 ++--
apps/shield-gui/src/hooks/use-about-page.ts | 2 +-
apps/shield-gui/src/hooks/use-protect-workflow.ts | 1 +
apps/shield-gui/src/hooks/use-sign-workflow.ts | 2 +
apps/shield-gui/src/lib/i18n.ts | 4 +-
apps/shield-gui/src/lib/protect-diagnostic.ts | 6 +-
apps/shield-gui/src/lib/tauri.ts | 2 +-
apps/shield-gui/src/pages/aab-protect-page.tsx | 1 +
apps/shield-gui/tests/protect-diagnostic.test.mjs | 12 ++++
apps/shield-gui/tests/protect-progress.test.mjs | 27 ++++++++
crates/shield-core/Cargo.toml | 2 +-
crates/shield-core/src/protect/xop_pvm2.rs | 2 +-
crates/shield-core/src/protection_report.rs | 49 +++++++++++++-
docs/usage.md | 6 +-
shield-stub/compat/api19-rust/Cargo.lock | 2 +-
shield-stub/compat/api19-rust/Cargo.toml | 2 +-
shield-stub/src/main/rust/Cargo.toml | 2 +-
.../yqsh/protector/packer/Pvm2ProtectionCheck.java | 75 +++++++++++++++------
.../yqsh/protector/packer/Pvm2RuntimeImages.java | 25 +++++--
tests/native/pvm2_runtime_check.cpp | 44 +++++++++++-
.../com/yqsh/protector/packer/AutoVmpPolicy.java | 32 ++++-----
.../java/com/yqsh/protector/packer/PackerMain.java | 11 ++-
.../com/yqsh/protector/packer/Pvm2Admission.java | 4 ++
tools/xop-pvm2-packer.jar | Bin 8316298 -> 8316281 bytes
31 files changed, 278 insertions(+), 79 deletions(-)


其他变更

  • fix: 修复 PVM2 引用与短方法兼容并发布 1.8.3 by @kairowan in #27

Full Changelog: v1.8.2...v1.8.3

v1.8.2

Choose a tag to compare

@github-actions github-actions released this 16 Oct 06:29
496b829

Shellsmith v1.8.2

这是当前的 正式版本。本版本的具体变更见下方自动生成列表。

This is the current stable release. See the generated changelog below for version-specific changes.

下载 / Downloads

  • Windows:Shellsmith_1.8.2_windows_x64_setup.exe
  • macOS:Shellsmith_1.8.2_macos_universal.dmg
  • Linux:选择 .AppImage 或 .deb 安装包 / Choose the .AppImage or .deb package
  • Android:Shellsmith_1.8.2_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 with java and keytool is 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.

PVM2 方法级兼容修复

  • 修复 UI、数据、资源、设备和媒体类因命名被整类排除的问题。对独立的基本类型计算逐方法检查,让符合条件的私有、静态和普通实例方法继续进入 PVM2 转换及产物验证。
  • 统一实际转换、覆盖报告与精确必保清单的兼容判断;框架回调、对象状态、生成桥接等不满足条件的方法继续保留原执行方式,不能用必保清单绕过兼容检查。
  • 保持严格模式转换成功率门槛,完整覆盖报告仍包含初始化器和兼容排除项。零转换或必保方法未覆盖时明确失败,不会静默关闭保护。
  • 补充通用命名、继承与接口、桥接方法、对象状态及统计口径回归;在已授权的 Android 15 真机上完成独立样例加固前后结果对照。

使用说明

  • 升级后重新加固,才能使用新的方法判断规则;已有加固产物不会自动改变。
  • 本次扩大的是经过检查的独立计算范围,不保证任意类或全部方法均可转换。没有客户 APK 的场景,不能仅凭错误统计认定其具体方法已兼容。
  • 逐方法失败报告可能包含业务标识,分享前请手动脱敏。

本次自动构建 / This automated build

  • 提交 / Commit: 496b829 — fix: 修复 PVM2 方法兼容范围并发布 1.8.2

文件变更统计 / File change summary

.github/release-notes/versions/1.8.2.md | 12 ++
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/tauri.conf.json | 2 +-
apps/shield-gui/src/hooks/use-about-page.ts | 2 +-
apps/shield-gui/src/lib/protect-diagnostic.ts | 2 +-
crates/shield-core/Cargo.toml | 2 +-
crates/shield-core/src/protection_report.rs | 2 +-
docs/usage.md | 8 +-
shield-stub/compat/api19-rust/Cargo.lock | 2 +-
shield-stub/compat/api19-rust/Cargo.toml | 2 +-
shield-stub/src/main/rust/Cargo.toml | 2 +-
.../yqsh/protector/packer/Pvm2ProtectionCheck.java | 150 ++++++++++++++++++++-
.../com/yqsh/protector/packer/AutoVmpPolicy.java | 61 ++++++++-
.../java/com/yqsh/protector/packer/PackerMain.java | 40 ++++--
.../com/yqsh/protector/packer/Pvm2Admission.java | 4 +-
.../java/com/yqsh/protector/packer/Pvm2Report.java | 4 +-
tools/xop-pvm2-packer.jar | Bin 8314516 -> 8316298 bytes
21 files changed, 273 insertions(+), 40 deletions(-)


其他变更

  • fix: 修复 PVM2 方法兼容范围并发布 1.8.2 by @kairowan in #26

Full Changelog: v1.8.1...v1.8.2

v1.8.1

Choose a tag to compare

@github-actions github-actions released this 16 Oct 04:04
6cff976

Shellsmith v1.8.1

这是当前的 正式版本。本版本的具体变更见下方自动生成列表。

This is the current stable release. See the generated changelog below for version-specific changes.

下载 / Downloads

  • Windows:Shellsmith_1.8.1_windows_x64_setup.exe
  • macOS:Shellsmith_1.8.1_macos_universal.dmg
  • Linux:选择 .AppImage 或 .deb 安装包 / Choose the .AppImage or .deb package
  • Android:Shellsmith_1.8.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 with java and keytool is 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.

PVM2 零转换失败诊断修复

  • 修复“已匹配到业务类,但没有可转换的方法”时,实际跳过原因和覆盖率报告随临时目录丢失的问题。现在会显示匹配类数、方法数及分类原因,并在输出目录保留独立的失败报告。
  • APK、AAB 与命令行共用报告保留逻辑;桌面端复制诊断摘要只包含固定原因分类和数量,不包含路径、证书、密码、包名或业务方法名。
  • 修正构造器、静态初始化器及无代码方法被类级排除原因覆盖的问题;报告无法读取或保存时明确提示,避免继续指向不存在的报告。
  • 增加 Native 方法、界面类排除和寄存器超限等零转换场景的真实打包器回归,并验证 APK/AAB 失败报告保留与摘要脱敏。

使用说明

  • 本版修复失败原因丢失和诊断不准确,不改变 PVM2 方法转换的支持范围。仍无可转换方法时会阻断交付,不会静默关闭保护。
  • 遇到同类报错,请升级后重新执行,并优先提供复制的诊断摘要。输出目录中的完整失败报告可能包含业务类和方法信息,分享前请手动脱敏。

本次自动构建 / This automated build

  • 提交 / Commit: 6cff976 — fix: 修复 PVM2 零转换诊断并发布 1.8.1

文件变更统计 / File change summary

.github/release-notes/versions/1.8.1.md | 11 +
Cargo.lock | 8 +-
apps/shield-cli/Cargo.toml | 2 +-
apps/shield-cli/src/commands.rs | 6 +-
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/aab_runner.rs | 2 +-
.../shield-gui/src-tauri/src/failure_diagnostic.rs | 40 ++-
apps/shield-gui/src-tauri/src/ios_runner.rs | 16 +-
apps/shield-gui/src-tauri/src/task_completion.rs | 4 +
apps/shield-gui/src-tauri/src/task_manager.rs | 4 +
apps/shield-gui/src-tauri/src/updates.rs | 8 +-
apps/shield-gui/src-tauri/tauri.conf.json | 2 +-
apps/shield-gui/src/components/app/common.tsx | 2 +-
apps/shield-gui/src/hooks/use-about-page.ts | 2 +-
apps/shield-gui/src/hooks/use-protect-workflow.ts | 6 +
apps/shield-gui/src/lib/protect-diagnostic.ts | 46 ++-
apps/shield-gui/src/lib/tauri.ts | 7 +
apps/shield-gui/src/pages/aab-protect-page.tsx | 13 +-
apps/shield-gui/src/pages/protect-page.tsx | 1 +
apps/shield-gui/tests/protect-diagnostic.test.mjs | 48 +++
crates/shield-core/Cargo.toml | 2 +-
crates/shield-core/src/protect/xop_pvm2.rs | 86 ++++-
crates/shield-core/src/protect_api.rs | 5 +-
crates/shield-core/src/protection_report.rs | 369 +++++++++++++++++++++
docs/process/support.md | 2 +-
docs/usage.md | 2 +
shield-stub/compat/api19-rust/Cargo.lock | 2 +-
shield-stub/compat/api19-rust/Cargo.toml | 2 +-
shield-stub/src/main/rust/Cargo.toml | 2 +-
.../yqsh/protector/packer/Pvm2ProtectionCheck.java | 47 ++-
.../java/com/yqsh/protector/packer/Pvm2Report.java | 3 +-
tools/xop-pvm2-packer.jar | Bin 8314502 -> 8314516 bytes
34 files changed, 725 insertions(+), 33 deletions(-)


其他变更

  • fix: 修复 PVM2 零转换诊断并发布 1.8.1 by @kairowan in #25

Full Changelog: v1.8.0...v1.8.1

v1.8.0

Choose a tag to compare

@github-actions github-actions released this 15 Oct 08:28
a812a70

Shellsmith v1.8.0

这是当前的 正式版本。本版本的具体变更见下方自动生成列表。

This is the current stable release. See the generated changelog below for version-specific changes.

下载 / Downloads

  • Windows:Shellsmith_1.8.0_windows_x64_setup.exe
  • macOS:Shellsmith_1.8.0_macos_universal.dmg
  • Linux:选择 .AppImage 或 .deb 安装包 / Choose the .AppImage or .deb package
  • Android:Shellsmith_1.8.0_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 with java and keytool is 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.

离线项目资料与方法级保护

  • 加固时按包名与运行证书自动生成、复用项目专属保护资料,每次构建派生不同材料;设置页支持查看身份、导出与恢复备份。默认完全离线,手机安装即用。
  • APK/AAB 支持必保方法清单与逐产物报告,区分选择、转换、产物核验和未覆盖原因;签名后绑定最终文件摘要。未转换的方法不会计入 VMP 覆盖,必保项失败会阻断交付。
  • 扩展 PVM2 参数类型和异常路径验证,修复包装对象跨 JNI 传递的语义;加强并发调用结束后的镜像、解析副本和寄存器清理,以及运行时完整性核验。
  • Native VMP 源码 SDK 扩展整数、float/double、分支/循环、min/max 和漏斗移位,并增加对象、最终 ELF 及 APK/AAB 条目的构建证据核验;修复 CMake 接入与增量构建问题。
  • 从仓库源码重建 PVM2 打包器并核对依赖摘要;修复默认 Application 的自闭合 Manifest 标签属性写入,减少普通 APK 接入失败。

使用与验证范围

  • Native VMP 需要业务源码或兼容 LLVM bitcode,通过函数标注接入;当前仍不支持指针、内存访问、通用调用、异常、原子和向量,不能自动虚拟化任意预编译 SO。推荐 LLVM 21、NDK r29 与 Ninja。
  • 111 个 Native 语义测试函数通过宿主检查及单台 Android 15 设备 ARM64/ARMv7 对照。授权业务样本验证了 19 个 DEX 方法及 1 个 SO 内的 1 个 Native 函数;这不是整包或全部业务覆盖。
  • 项目私有种子保存在本机,备份包含私有材料,应妥善保存。安装即用的 APK 仍有公开恢复路径;本版不承诺无法静态还原,也不宣称达到某个加固代数。
  • 新 SO 产物尚未完成正式整包性能与跨设备验收;无资源 APK 重打包及 AAB 业务全流程仍需按项目验证。升级后请重新加固并进行业务回归,已有 APK 不会自动获得新保护。
  • 方法保护需要 JDK 17。详细接入与边界见使用指南和Native SDK。

本次自动构建 / This automated build

  • 提交 / Commit: a812a70 — fix: 兼容新版 Clippy 并前置发布质量检查 (#24)

文件变更统计 / File change summary

.github/workflows/ci.yml | 1 -
crates/shield-core/src/local_secret.rs | 2 +-
docs/process/release.md | 4 ++--
scripts/tests/test_android_api19_build_contract.py | 4 +++-
4 files changed, 6 insertions(+), 5 deletions(-)


其他变更

  • feat: 发布 1.8.0 离线代码保护升级 by @kairowan in #23
  • fix: 修复 1.8.0 发布质量检查 by @kairowan in #24

Full Changelog: v1.7.0...v1.8.0

v1.7.0

Choose a tag to compare

@github-actions github-actions released this 13 Oct 06:33
271c7e7

Shellsmith v1.7.0

这是当前的 正式版本。本版本的具体变更见下方自动生成列表。

This is the current stable release. See the generated changelog below for version-specific changes.

下载 / Downloads

  • Windows:Shellsmith_1.7.0_windows_x64_setup.exe
  • macOS:Shellsmith_1.7.0_macos_universal.dmg
  • Linux:选择 .AppImage 或 .deb 安装包 / Choose the .AppImage or .deb package
  • Android:Shellsmith_1.7.0_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 with java and keytool is 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.

运行时界面与调试环境保护

  • APK/AAB 的 CLI 与 GUI 新增可选防截图、Activity 豁免、ADB 策略及前台环境复查;所有新选项默认关闭,已有配置保持原行为。
  • 防截图覆盖 Activity、Dialog 和平台 AlertDialog.Builder,保护调用保留业务虚方法分派;业务通过 Window API 清除安全标记时会重新保留该标记。
  • ADB 支持关闭、仅报告、限制运行三种策略。限制运行会在调试开启或无法确认关闭时拒绝启动,并在前台复查;这是主动阻断策略,调试设备应使用报告模式。
  • APK 增加保守的资源名称混淆,只改写可证明安全的 id 名称并保留资源数值 ID;检测到 Native 库、assets、动态查找或不支持的资源格式时跳过。AAB 暂不支持资源名称混淆。
  • 将通用线程名 gmain/gdbus 调整为弱信号,降低普通应用被误判的风险。旧运行时资源会明确拒绝不支持的新选项。

使用与验证范围

  • 窗口调用改写和资源名称混淆需要 JDK 17;普通加固与签名仍保持原有 Java 要求。
  • 已在 Android 15 / arm64 荣耀设备验证界面保护、Dialog、平台 Builder、页面豁免、资源 ID 兼容和 ADB 启动阻断;默认及严格加固模式验证包含双 DEX、业务 SO、资源 openFd、覆盖安装、首次启动与缓存后启动。
  • 防截图会影响截屏、录屏、投屏和任务缩略图,应为分享等必要页面设置豁免。FLAG_SECURE 不隐藏无障碍视图树,也不阻止 ADB 输入操作。
  • 自测不代表所有业务包、ROM 或 Android 版本均已验证。无线调试切换、第三方窗口实现、多窗口及业务全流程仍需按实际应用回归;启用前请阅读 界面保护说明。
  • DEXB v6 仍不提供针对离线静态分析的载荷机密性,本次没有改变这一边界。

本次自动构建 / This automated build

  • 提交 / Commit: 271c7e7 — feat: 合并运行时界面保护并发布 1.7.0 (#22)

文件变更统计 / File change summary

.github/release-notes/versions/1.7.0.md | 15 ++
Cargo.lock | 9 +-
apps/shield-cli/Cargo.toml | 2 +-
apps/shield-cli/src/args.rs | 77 ++++++
apps/shield-cli/src/commands.rs | 11 +
apps/shield-cli/src/config.rs | 49 ++++
apps/shield-cli/src/lib.rs | 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/aab_runner.rs | 4 +
apps/shield-gui/src-tauri/src/app_config.rs | 4 +
apps/shield-gui/src-tauri/src/main.rs | 3 +
apps/shield-gui/src-tauri/src/protect_runner.rs | 4 +
apps/shield-gui/src-tauri/tauri.conf.json | 2 +-
.../components/app/protect-configuration-panel.tsx | 7 +
.../src/components/app/runtime-ui-settings.tsx | 51 ++++
apps/shield-gui/src/hooks/use-about-page.ts | 2 +-
apps/shield-gui/src/hooks/use-app-config.ts | 3 +-
apps/shield-gui/src/hooks/use-protect-workflow.ts | 7 +-
apps/shield-gui/src/lib/tauri.ts | 19 +-
apps/shield-gui/src/pages/aab-protect-page.tsx | 5 +
apps/shield-gui/src/pages/protect-page.tsx | 7 +-
crates/shield-core/Cargo.toml | 3 +-
crates/shield-core/src/lib.rs | 2 +
crates/shield-core/src/protect/runtime.rs | 2 +
crates/shield-core/src/protect/runtime_metadata.rs | 3 +
crates/shield-core/src/protect/xop_pvm2.rs | 16 ++
crates/shield-core/src/protect_api.rs | 76 +++++-
crates/shield-core/src/runtime_ui.rs | 257 +++++++++++++++++++++
crates/shield-core/src/utils.rs | 24 ++
docs/design/runtime-ui-protection.md | 67 ++++++
docs/design/stub-dex-baseline.json | 81 ++++++-
docs/design/stub-dex-minimization.md | 4 +-
scripts/build-stub.ps1 | 2 +
scripts/build-stub.sh | 2 +
scripts/build-ui-packer.sh | 14 ++
scripts/check-release-ready.sh | 2 +-
scripts/stub-dex-limits.json | 10 +-
shield-stub/compat/api19-rust/Cargo.lock | 2 +-
shield-stub/compat/api19-rust/Cargo.toml | 2 +-
shield-stub/proguard-rules.pro | 3 +
.../java/dev/mocika/shield/loader/MocikaUi.java | 215 +++++++++++++++++
.../dev/mocika/shield/loader/RuntimeSecurity.java | 1 +
.../java/dev/mocika/shield/loader/StubApp.java | 1 +
shield-stub/src/main/rust/Cargo.toml | 2 +-
shield-stub/src/main/rust/src/anti_debug.rs | 32 +--
.../dev/mocika/shield/loader/MocikaUiTest.java | 16 ++
tests/fixtures/runtime-ui/AndroidManifest.xml | 9 +
tests/fixtures/runtime-ui/UiProbe.java | 60 +++++
tests/fixtures/runtime-ui/res/values/ids.xml | 5 +
.../yqsh/protector/packer/UiProtectionCheck.java | 92 ++++++++
tests/scripts/check-ui-packer.sh | 7 +
tests/scripts/run-protect-e2e.sh | 6 +-
tests/scripts/run-runtime-ui-e2e.sh | 84 +++++++
.../java/com/yqsh/protector/packer/PackerMain.java | 4 +
.../protector/packer/ResourceNameObfuscator.java | 131 +++++++++++
.../yqsh/protector/packer/UiCallsiteRewriter.java | 102 ++++++++
.../yqsh/protector/packer/UiProtectionTool.java | 95 ++++++++
tools/xop-pvm2-packer.jar | Bin 8448915 -> 8463787 bytes
60 files changed, 1668 insertions(+), 57 deletions(-)


其他变更

  • feat: 增加运行时界面保护并准备 1.7.0 发布 by @kairowan in #22

Full Changelog: v1.6.4...v1.7.0

v1.7.0-build.63

v1.7.0-build.63 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 13 Oct 06:37
271c7e7

Shellsmith v1.7.0-build.63

这是一个 预发布版本,仅用于提前验证构建产物和核心流程,不建议用于生产环境。

This is a pre-release for validating build artifacts and core workflows. It is not recommended for production use.

下载 / Downloads

  • Windows:Shellsmith_1.7.0-build.63_windows_x64_setup.exe
  • macOS:Shellsmith_1.7.0-build.63_macos_universal.dmg
  • Linux:选择 .AppImage 或 .deb 安装包 / Choose the .AppImage or .deb package
  • Android:Shellsmith_1.7.0-build.63_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 with java and keytool is required
  • 加固、签名和证书资料均在本地处理,不会上传用户文件 / APKs, signing keys, and certificates are processed locally and never uploaded
  • 安装包尚未进行商业代码签名或公证 / Installers are not currently code-signed or notarized
  • 当前桌面 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 根据本版本与上一正式版本之间的拉取请求和提交自动生成,完整覆盖当前版本周期的 Alpha、Beta 与 RC 变更。

The following changelog is generated by GitHub from pull requests and commits since the previous stable release, covering the complete Alpha, Beta, and RC cycle.

运行时界面与调试环境保护

  • APK/AAB 的 CLI 与 GUI 新增可选防截图、Activity 豁免、ADB 策略及前台环境复查;所有新选项默认关闭,已有配置保持原行为。
  • 防截图覆盖 Activity、Dialog 和平台 AlertDialog.Builder,保护调用保留业务虚方法分派;业务通过 Window API 清除安全标记时会重新保留该标记。
  • ADB 支持关闭、仅报告、限制运行三种策略。限制运行会在调试开启或无法确认关闭时拒绝启动,并在前台复查;这是主动阻断策略,调试设备应使用报告模式。
  • APK 增加保守的资源名称混淆,只改写可证明安全的 id 名称并保留资源数值 ID;检测到 Native 库、assets、动态查找或不支持的资源格式时跳过。AAB 暂不支持资源名称混淆。
  • 将通用线程名 gmain/gdbus 调整为弱信号,降低普通应用被误判的风险。旧运行时资源会明确拒绝不支持的新选项。

使用与验证范围

  • 窗口调用改写和资源名称混淆需要 JDK 17;普通加固与签名仍保持原有 Java 要求。
  • 已在 Android 15 / arm64 荣耀设备验证界面保护、Dialog、平台 Builder、页面豁免、资源 ID 兼容和 ADB 启动阻断;默认及严格加固模式验证包含双 DEX、业务 SO、资源 openFd、覆盖安装、首次启动与缓存后启动。
  • 防截图会影响截屏、录屏、投屏和任务缩略图,应为分享等必要页面设置豁免。FLAG_SECURE 不隐藏无障碍视图树,也不阻止 ADB 输入操作。
  • 自测不代表所有业务包、ROM 或 Android 版本均已验证。无线调试切换、第三方窗口实现、多窗口及业务全流程仍需按实际应用回归;启用前请阅读 界面保护说明。
  • DEXB v6 仍不提供针对离线静态分析的载荷机密性,本次没有改变这一边界。

本次自动构建 / This automated build

  • 提交 / Commit: 271c7e7 — feat: 合并运行时界面保护并发布 1.7.0 (#22)

文件变更统计 / File change summary

.github/release-notes/versions/1.7.0.md | 15 ++
Cargo.lock | 9 +-
apps/shield-cli/Cargo.toml | 2 +-
apps/shield-cli/src/args.rs | 77 ++++++
apps/shield-cli/src/commands.rs | 11 +
apps/shield-cli/src/config.rs | 49 ++++
apps/shield-cli/src/lib.rs | 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/aab_runner.rs | 4 +
apps/shield-gui/src-tauri/src/app_config.rs | 4 +
apps/shield-gui/src-tauri/src/main.rs | 3 +
apps/shield-gui/src-tauri/src/protect_runner.rs | 4 +
apps/shield-gui/src-tauri/tauri.conf.json | 2 +-
.../components/app/protect-configuration-panel.tsx | 7 +
.../src/components/app/runtime-ui-settings.tsx | 51 ++++
apps/shield-gui/src/hooks/use-about-page.ts | 2 +-
apps/shield-gui/src/hooks/use-app-config.ts | 3 +-
apps/shield-gui/src/hooks/use-protect-workflow.ts | 7 +-
apps/shield-gui/src/lib/tauri.ts | 19 +-
apps/shield-gui/src/pages/aab-protect-page.tsx | 5 +
apps/shield-gui/src/pages/protect-page.tsx | 7 +-
crates/shield-core/Cargo.toml | 3 +-
crates/shield-core/src/lib.rs | 2 +
crates/shield-core/src/protect/runtime.rs | 2 +
crates/shield-core/src/protect/runtime_metadata.rs | 3 +
crates/shield-core/src/protect/xop_pvm2.rs | 16 ++
crates/shield-core/src/protect_api.rs | 76 +++++-
crates/shield-core/src/runtime_ui.rs | 257 +++++++++++++++++++++
crates/shield-core/src/utils.rs | 24 ++
docs/design/runtime-ui-protection.md | 67 ++++++
docs/design/stub-dex-baseline.json | 81 ++++++-
docs/design/stub-dex-minimization.md | 4 +-
scripts/build-stub.ps1 | 2 +
scripts/build-stub.sh | 2 +
scripts/build-ui-packer.sh | 14 ++
scripts/check-release-ready.sh | 2 +-
scripts/stub-dex-limits.json | 10 +-
shield-stub/compat/api19-rust/Cargo.lock | 2 +-
shield-stub/compat/api19-rust/Cargo.toml | 2 +-
shield-stub/proguard-rules.pro | 3 +
.../java/dev/mocika/shield/loader/MocikaUi.java | 215 +++++++++++++++++
.../dev/mocika/shield/loader/RuntimeSecurity.java | 1 +
.../java/dev/mocika/shield/loader/StubApp.java | 1 +
shield-stub/src/main/rust/Cargo.toml | 2 +-
shield-stub/src/main/rust/src/anti_debug.rs | 32 +--
.../dev/mocika/shield/loader/MocikaUiTest.java | 16 ++
tests/fixtures/runtime-ui/AndroidManifest.xml | 9 +
tests/fixtures/runtime-ui/UiProbe.java | 60 +++++
tests/fixtures/runtime-ui/res/values/ids.xml | 5 +
.../yqsh/protector/packer/UiProtectionCheck.java | 92 ++++++++
tests/scripts/check-ui-packer.sh | 7 +
tests/scripts/run-protect-e2e.sh | 6 +-
tests/scripts/run-runtime-ui-e2e.sh | 84 +++++++
.../java/com/yqsh/protector/packer/PackerMain.java | 4 +
.../protector/packer/ResourceNameObfuscator.java | 131 +++++++++++
.../yqsh/protector/packer/UiCallsiteRewriter.java | 102 ++++++++
.../yqsh/protector/packer/UiProtectionTool.java | 95 ++++++++
tools/xop-pvm2-packer.jar | Bin 8448915 -> 8463787 bytes
60 files changed, 1668 insertions(+), 57 deletions(-)


Full Changelog: v1.7.0...v1.7.0-build.63