LukeMackin
|
cd1f19815d
|
fix: WebView闪退→恢复原生UI, versionCode 8→5, H5热更新文件就绪
- MainActivity恢复为原生ScrollView+按钮(WebView在Redmi设备上崩溃)
- versionCode回退到5(衔接Git Tag v4)
- ota/version.txt指向v6,ota/h5/index-v6.html已准备好作为热更新目标
- APK构建验证通过(33 tasks, 31s)
|
2026-07-21 13:40:13 +08:00 |
|
LukeMackin
|
de20e837fa
|
feat: H5热更新v5→v6 — versionCode 8→5, 远端version.txt指向v6
|
2026-07-21 12:17:49 +08:00 |
|
LukeMackin
|
bfa365c2c2
|
cleanup: 删除 feat/expo-ota 分支,回滚到 main
- 删除远程 feat/expo-ota 分支
- 删除 Gitea Releases #5~#10 + Tags v5~v10
- 清除 Expo 产物(npmrc, package-lock, expo-manifest)
- 保留 index.js + index.html(H5热更新)
- MainActivity 改为 WebView + Android Bridge 模式
- 构建验证通过(33 tasks, 54s)
|
2026-07-21 11:56:07 +08:00 |
|
LukeMackin
|
898fbc0c3c
|
hotfix: expo-manifest v10 for hot update test
|
2026-07-20 23:48:51 +08:00 |
|
LukeMackin
|
f052d280ce
|
hotfix: expo-manifest v9 for hot update test
|
2026-07-20 23:26:06 +08:00 |
|
LukeMackin
|
1684fac260
|
chore: 清理OCR临时文件+截图+调试脚本,更新.gitignore
|
2026-07-20 12:57:14 +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 |
|
LukeMackin
|
3e7c98a099
|
fix(android): 审查修复 — Kotlin编译错误+SHA256校验+权限检查
- PackageInstallerModule: fsync作用域修复, PendingIntent改用getLaunchIntentForPackage, 权限预检
- updater: expo-crypto SHA256校验, getLocalBuildTag优先级修正, parseVersion null安全
- ManifestBuild: 增加type字段(js/apk)替代size启发式
- app.json: fallbackToCacheTimeout 0→3000
- shared: catch静默→console.warn
v0.1.0-dav-android-2
|
2026-07-19 01:48:00 +08:00 |
|
LukeMackin
|
9f8659c293
|
feat(android): OTA双轨更新 — shared版本号+Android Expo/PackageInstaller
- packages/shared: 版本号解析 vX.Y.Z-dav-{client}-{build} + manifest远程检查
- packages/client-android: Expo52 + expo-updates JS bundle OTA
- PackageInstallerModule.kt: APK静默安装原生模块(~60行Kotlin)
- monorepo: pnpm workspace + 版本号体系
v0.1.0-dav-android-1
|
2026-07-19 01:41:36 +08:00 |
|
LukeMackin
|
b12aef0375
|
docs: 信息优化方案 + OTA跨文档链接修复
|
2026-07-19 01:39:21 +08:00 |
|
Childish-Ghost
|
7f84ea56fc
|
docs: initial design documents
- 9 pages: index, architecture, capabilities, roadmap, security,
maintenance, pm-review, backlog, flow
- shared style.css (dark theme)
- .gitignore for OS / editor / build artifacts
|
2026-07-18 22:17:37 +08:00 |
|