Commit Graph

54 Commits

Author SHA1 Message Date
LukeMackin
8044d43abb fix: 回退RN原生模块,保持Native按钮+expo-updates双轨 2026-07-20 15:48:34 +08:00
LukeMackin
8d1b57d7ed fix: 注册PackageInstallerModule原生模块(MainApplication+ReactPackage) 2026-07-20 15:45:57 +08:00
LukeMackin
836419484c feat: expo prebuild 2026-07-20 15:17:15 +08:00
LukeMackin
fe3929b41c fix: pnpm install同步lockfile(expo-updates 0.27.5) 2026-07-20 13:52:28 +08:00
LukeMackin
de8126cd11 fix: expo-constants/expo-updates降级到SDK52配套版本(~17.0.0/~0.27.5) 2026-07-20 13:50:33 +08:00
LukeMackin
ffd5d4d8e5 fix: AndroidManifest添加launchMode=singleTask+MainApplication适配expo prebuild 2026-07-20 13:47:52 +08:00
LukeMackin
8bffc389c8 fix: 移除gradle.properties中的本地代理配置 2026-07-20 13:37:03 +08:00
LukeMackin
27633376c4 build: 代理构建成功 — Gradle代理+恢复file_paths+Expo SDK53 2026-07-20 13:35:00 +08:00
LukeMackin
b7f276f718 feat: Expo SDK升级到53, pnpm install成功 2026-07-20 13:17:06 +08:00
LukeMackin
3abb76f264 wip: expo prebuild 生成android工程(gradle插件兼容性问题待解决) 2026-07-20 13:07:20 +08:00
LukeMackin
bdde28cd7b fix: expo-updates版本改为镜像可用的~0.27.5 (sdk-52) 2026-07-20 13:04:03 +08:00
LukeMackin
73d7eff9d9 merge: 同步main的清理 2026-07-20 12:57:23 +08:00
LukeMackin
1684fac260 chore: 清理OCR临时文件+截图+调试脚本,更新.gitignore 2026-07-20 12:57:14 +08:00
LukeMackin
6cd2a22d09 feat(expo): app.json 添加 runtimeVersion 字段 2026-07-20 00:38:32 +08:00
LukeMackin
71f6b6369b fix: expo-manifest.json 改为 Expo Updates Modern Manifest 格式(id+createdAt+runtimeVersion) 2026-07-19 23:46:17 +08:00
LukeMackin
e5ce52ac40 feat(expo): JS热更新(expo-updates) + APK大更新双轨
- app.json: expo-updates配置(checkAutomatically ON_LOAD)
- ota/expo-manifest.json: JS bundle热更新manifest
- App.tsx: 启动时自动检查JS+APK双轨更新
- pnpm install后npx expo prebuild生成android/原生工程
2026-07-19 23:40:17 +08:00
LukeMackin
a2f204f5ee docs: gen-manifest.sh构建号规则说明 2026-07-19 23:23:23 +08:00
LukeMackin
eeea966400 fix: gitignore路径修复 + 版本比较改用PackageInfo动态获取 2026-07-19 23:16:12 +08:00
LukeMackin
d68e6ca6df feat: 版本比较 — 远程与本地一致则跳过更新 2026-07-19 23:12:44 +08:00
LukeMackin
a96560966c fix: 空渠道检测改用JSONObject.has + 移除gitignore误排除manifest 2026-07-19 23:10:03 +08:00
LukeMackin
ffd05e3e17 feat: 三渠道分级 - nightly=当前版本, beta/stable留空(暂无更新) 2026-07-19 23:05:11 +08:00
LukeMackin
40d0c86292 build: versionCode 7→8 + Release #8 + APK 3.5MB 2026-07-19 22:57:30 +08:00
LukeMackin
e8f00faf41 feat: App内显示版本号 v0.1.0-dav-android-7-debug 2026-07-19 21:27:06 +08:00
LukeMackin
b70c5015a0 feat: 改用系统安装器弹窗(FileProvider+ACTION_VIEW), 无需手动找权限 2026-07-19 21:06:04 +08:00
LukeMackin
14367a229b fix: 权限跳转改为应用详情页(精确定位) 2026-07-19 21:01:36 +08:00
LukeMackin
e02997db52 feat: 安装权限不足时自动跳转系统设置页面 2026-07-19 20:55:55 +08:00
LukeMackin
82a0650b59 fix: manifest SHA256更新(当前APK重编后哈希变化) 2026-07-19 20:47:35 +08:00
LukeMackin
0d3fa632e6 feat: appendLog同步输出到android.util.Log(GCA-OTA tag) 2026-07-19 20:42:06 +08:00
LukeMackin
ad1b3e3aca fix: PackageInstaller session管理 — openSession失败abandon + commit失败abandon 2026-07-19 20:00:46 +08:00
LukeMackin
0f37573faf feat: OTA校验通过后调用PackageInstaller真正安装APK
- SHA256通过→installApk()→PackageInstaller Session API
- 安装完成后通知栏提示重启
- 权限检查: canRequestPackageInstalls()
2026-07-19 19:57:56 +08:00
LukeMackin
49d3c187d0 fix: gen-manifest.sh注释同步manifest-stable.json 2026-07-19 19:51:46 +08:00
LukeMackin
3da606671a fix: gen-manifest.sh curl路径+注释+README全部同步manifest-stable.json 2026-07-19 19:48:24 +08:00
LukeMackin
1461acd292 fix: gen-manifest.sh/README/gitignore同步manifest-stable.json命名 2026-07-19 19:46:27 +08:00
LukeMackin
a7b6b455d1 fix: stable渠道manifest文件名修复 manifest.json→manifest-stable.json 2026-07-19 19:41:22 +08:00
LukeMackin
c62e2a4430 feat: ota/三渠道manifest(固定raw URL)
- ota/manifest-stable.json / beta.json / nightly.json
- App URL改回raw(固定路径,不随版本号变)
- v0.1.0→v0.2.0升级时只需更新JSON内容,URL不变
2026-07-19 19:37:04 +08:00
LukeMackin
20d81d5ab8 chore: ota/manifest.json加入gitignore(构建产物) 2026-07-19 19:29:17 +08:00
LukeMackin
c1849802b6 feat: ota/gen-manifest.sh — CI构建时动态生成manifest.json
- gen-manifest.sh: 计算APK SHA256 → 填入版本号/URL → 生成manifest.json
- manifest.json本身不提交仓库(构建产物,上传到Release)
- README.md说明目录用途
2026-07-19 19:28:58 +08:00
LukeMackin
31a56708d6 refactor: manifest回归Release构建产物
- ota/目录删除(manifest是CI构建时动态生成上传)
- App URL改为Release下载路径(releases/download/...)
- 流程: CI build→生成manifest(SHA256动态)→上传Release
- Release #7: v0.1.0-dav-android-7-debug.apk + manifest.json
2026-07-19 15:58:24 +08:00
LukeMackin
1b3d2fc06f fix: APK命名加buildType后缀 + manifest URL同步
- v0.1.0-dav-android-7.apk → v0.1.0-dav-android-7-debug.apk
- 3个manifest URL同步更新
2026-07-19 15:57:24 +08:00
LukeMackin
db5b7de50f fix: APK命名补充构建次数 vX.Y.Z-dav-{client}-{build}.apk
- archivesBaseName移除,改用applicationVariants动态命名
- versionCode: 6→7
- APK: v0.1.0-dav-android-7.apk
2026-07-19 15:54:34 +08:00
LukeMackin
3244876c8c fix(security): usesCleartextTraffic移除 + 域名白名单 + JSONObject解析
- AndroidManifest: 移除 usesCleartextTraffic=true
- downloadFile: 增加 ALLOWED_HOSTS 白名单(git.childish-ghost.com/github.com)
- manifest解析: indexOf/substring → org.json.JSONObject
2026-07-19 15:52:56 +08:00
LukeMackin
fcc51f4356 refactor: manifest迁移到ota/文件夹
- ota/manifest.json (stable)
- ota/manifest-beta.json
- ota/manifest-nightly.json
- MainActivity URL更新为ota/路径
2026-07-19 15:47:26 +08:00
LukeMackin
70e39454df fix: beta/nightly manifest tag格式修正为v0.1.0-dav-android-7(匹配版本正则) 2026-07-19 15:45:41 +08:00
LukeMackin
d4169538c9 fix: manifest放回仓库源码 + APK按版本号命名
- manifest.json/beta/nightly 从Release Assets移到源码仓库
- APK命名: gca-v0.1.0 → v0.1.0-dav-android-debug.apk
- Release #7: 仅含APK(prerelease), manifest从raw URL拉取
- 三渠道manifest: manifest.json / manifest-beta.json / manifest-nightly.json
2026-07-19 15:42:01 +08:00
LukeMackin
a3f0f975a6 chore: review notes + cleanup 2026-07-19 15:21:43 +08:00
LukeMackin
109ad813e6 fix(android): APK包名统一gca-v0.1.0 + 应用名加版本 + Gitea manifest联调
- APK: app-debug.apk → gca-v0.1.0-debug.apk
- App名: Yuzu GCA Test → Yuzu GCA v0.1.0
- MainActivity: 真实manifest拉取+JSON解析+SHA256真实比对
- Gitea Release #6: gca-v0.1.0.apk + manifest.json
- 删除旧Expo modules/ 文件
2026-07-19 15:18:30 +08:00
LukeMackin
34cdec130f build(android): APK构建成功 — 纯原生OTA测试App
- 下载Gradle Wrapper 8.10.2 (43KB)
- MainActivity: 自包含OTA测试(manifest拉取/下载/SHA256/PackageInstaller)
- 移除React Native依赖, 轻量原生App仅3.2MB
- local.properties指向本机Android SDK
- BUILD SUCCESSFUL → app-debug.apk (3.2MB)
2026-07-19 10:55:51 +08:00
LukeMackin
eab872ff09 build(android): 生成原生Android工程 — Android Studio直接构建
- android/: 完整Gradle工程(build.gradle/settings/AndroidManifest/Activity/Application)
- PackageInstallerModule: 重写为ReactContextBaseJavaModule (bare RN, 移除Expo依赖)
- 新增sha256File原生方法, installApk改为Promise异步
- 移除旧的modules/ (Expo Module → bare React Native)
- 添加eas.json (备用云端构建)
2026-07-19 10:42:17 +08:00
LukeMackin
3f8be6587e test(android): OTA端到端测试 — 26用例0失败
- ota-e2e.test.js: 自包含HTTP服务+6组测试
- 版本解析/比较/manifest检查/8MB下载校验/SHA256/域名白名单
- 验证Kotlin侧MessageDigest SHA256与Node crypto一致性
- 确认下载→校验→参数传递全链路可工作
v0.1.0-dav-android-4
2026-07-19 02:10:22 +08:00
LukeMackin
74619a2713 fix(android): 安全修复 — SHA256原生层计算+TOCTOU+域名白名单
- PackageInstallerModule: DigestInputStream边写边算SHA256, 原生层校验消除TOCTOU
- updater: remove expo-crypto, add download domain whitelist, 错误消息去敏感路径
- package.json: 移除expo-crypto依赖(不再需要JS侧SHA256)
v0.1.0-dav-android-3
2026-07-19 01:51:40 +08:00