Skip to content

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