Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 17 additions & 28 deletions .github/release-notes/versions/1.10.0.md
Original file line number Diff line number Diff line change
@@ -1,36 +1,25 @@
### 安全与兼容修复
### 修复

- 兼容 TheRouter 编译期注册:生成类存在但无运行时索引时不再硬报错;保留索引回退检查,未知注册模式继续明确拒绝并给出排查指引。
- 新增 TheRouter 注册兼容自动回归,覆盖编译期注册、索引回退和未知模式三类样本。
- 兼容“JPEG/WebP 内容伪装为 `.png`”的历史资源:加固时批量识别 `res/drawable*`、`res/mipmap*` 下的非 PNG 图片并按实际格式无损改名,修复 aapt2 重打包时报 `failed to read PNG signature` 的问题。GIF/BMP/未知格式、空文件、九宫格和同名目标会明确报错,`res/raw` 不改动。(#64)
- 修复覆盖安装后 ARouter 路由缓存失效导致的 Fragment 为空:在 `attachBaseContext()` 提前准备路由缓存,版本名/版本号变化或缓存缺失(含空集合)时主动注册全部路由;缓存与当前路由表一致时跳过写入,避免影响正常 ARouter App。(#63)
- 修复 BYOS 独立 R8 将 JNI 固定入口 `z` 改名导致的 `JNI_ERR`;固定 JNI 方法名并在打包前校验,标准、BYOS、Play 三套资源均通过真机 JNI 注册检查。
- 修复真机 E2E 在 macOS 上读取二进制文件头时的 `grep` locale 兼容问题。

### iOS
### 新增与兼容

- 明确 freeRASP 事件接入与业务阻断边界:`SecurityThreatHandler` 负责收集事件,业务可在敏感操作前查询 `shouldRestrictSensitiveOperations()` 或监听通知执行拒绝策略;新增可选 `block_on_critical`,命中关键威胁时终止进程,默认关闭。
- BYOS `device_approval` 最低输入版本从 `minSdkVersion 26` 降至 **24(Android 7.0)**;BYOS 变体启用 core library desugaring,API 24/25 可正常运行,Play 模式仍要求 API 29。
- 新增 JPEG/WebP 伪装 PNG 的批量兼容测试,以及 ARouter 升级覆盖安装、空缓存、缓存一致时跳过写入的回归测试。
- 保留并完善 ARouter/TheRouter 路由索引 assets 保护能力,支持 `.rtap` 加密索引和运行时解密。
- iOS 保留可选 `block_on_critical`:命中关键 freeRASP 威胁时可终止进程,默认关闭;业务可在敏感操作前查询风险状态。
- 发布流程保持手动触发;新增 `CI 通过` 汇总门禁、TheRouter 兼容检查、证据基线和依赖漏洞扫描。

### Android
### 工程与依赖

- 新增 `--protect-route-assets`:把 ARouter/TheRouter 路由索引写为认证加密的 `.rtap`,不再写出同名明文 `.txt`;壳在 DEX 解密后内存解密。该选项默认关闭,需要配套壳运行时;GUI 加固页已提供对应开关。

### 工程、CI 与发布

- Release 改为手动触发,合并 PR 不再自动发版;发布前增加 main 来源、版本号一致性和工作区检查。
- 新增 `next` 集成分支验证、`CI 通过` 汇总门禁、TheRouter 兼容检查和依赖漏洞扫描。
- 接入 Dependabot(Cargo、npm、Gradle、GitHub Actions)和 `cargo-deny` 公告检查;首轮只告警,不阻塞发布。
- 发布说明改为提前维护本文件,发版时由 Release 工作流自动读取。
- 新增 `docs/evidence/` 证据基线和 `scripts/evidence/` 采集/恢复/差分/运行时采样脚本;发布前运行 `check-evidence-ready.sh`,未验证项必须显式保留。

### 文档与边界

- 补充 BYOS 威胁模型与单设备 IKM 泄漏边界,区分已覆盖威胁、明确不排期的架构边界和部署运维要求。
- 保持“提高分析成本,不承诺无法逆向”的对外口径;未完成真机、Google Play 或第三方服务验证的项目继续标记为待验证。
- 将 `zip` 升级到 9.3.0,适配新的 ZIP 读取/写入 API;标准 ZIP 注释继续保留。
- 升级存在安全公告的 `zstd`、`zstd-safe`、`zstd-sys`、`rustls`、`rustls-webpki`、`tokio`、`webpki-roots` 等依赖。
- 依赖更新:clap、serde_json、cc、Radix Separator、lucide-react、typescript-eslint、autoprefixer。

### 升级说明

- 本版本不改变 DEXB v6/v7、PVM2 镜像或 BYOS 协议版本;已发布产物无需仅因本版本重新加固。
- TheRouter 兼容修复需要重新执行加固流程后生效。
- 发布前仍需完成 Android 壳构建、完整 E2E、三平台打包、iOS 归档和发布前检查。

### 验证范围与未验证项

- 本文件是 1.10.0 草稿;每合入一个 PR 后补充对应条目和 PR 编号。
- 真机矩阵、Google Play 内测轨道、AAB Play App Signing、iOS 真机运行和第三方服务联通仍需在对应环境验证,不能用本地构建结果替代。
- 图片兼容、ARouter 覆盖安装和 BYOS API 24 兼容需要重新执行加固流程后生效。
- 已发布产物无需仅因本版本重新加固;DEXB v6/v7、PVM2 镜像和 BYOS 协议版本未改变。
8 changes: 4 additions & 4 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion apps/shield-cli/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "shield-cli"
version = "1.10.0-rc.1"
version = "1.10.0"
edition = "2021"
authors = ["MocikaDev"]
license = "MIT OR Apache-2.0"
Expand Down
4 changes: 2 additions & 2 deletions apps/shield-gui/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion apps/shield-gui/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "mocika-shield-gui",
"version": "1.10.0-rc.1",
"version": "1.10.0",
"license": "MIT OR Apache-2.0",
"private": true,
"type": "module",
Expand Down
2 changes: 1 addition & 1 deletion apps/shield-gui/src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "mocika-shield"
version = "1.10.0-rc.1"
version = "1.10.0"
edition = "2021"
license = "MIT OR Apache-2.0"
publish = false
Expand Down
2 changes: 1 addition & 1 deletion apps/shield-gui/src-tauri/tauri.conf.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://schema.tauri.app/config/2",
"productName": "Shellsmith",
"version": "1.10.0-rc.1",
"version": "1.10.0",
"identifier": "dev.mocika.shield-gui",
"build": {
"beforeDevCommand": "npm run dev -- --host 127.0.0.1",
Expand Down
2 changes: 1 addition & 1 deletion apps/shield-gui/src/hooks/use-about-page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ type AppInfo = {
};

const defaultAppInfo: AppInfo = {
version: "1.10.0-rc.1",
version: "1.10.0",
git_hash: "dev",
build_date: "unknown",
};
Expand Down
2 changes: 1 addition & 1 deletion crates/shield-core/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "shield-core"
version = "1.10.0-rc.1"
version = "1.10.0"
edition = "2021"
authors = ["MocikaDev"]
license = "MIT OR Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion shield-stub/compat/api19-rust/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion shield-stub/compat/api19-rust/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "mocikashield-api19"
version = "1.10.0-rc.1"
version = "1.10.0"
edition = "2021"
license = "MIT OR Apache-2.0"
build = "../../src/main/rust/build.rs"
Expand Down
2 changes: 1 addition & 1 deletion shield-stub/src/main/rust/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "mocikashield"
version = "1.10.0-rc.1"
version = "1.10.0"
edition = "2021"
license = "MIT OR Apache-2.0"

Expand Down
Loading