LukeMackin
|
a4fa268b9f
|
refactor: ota目录优化 — h5-manifest-*.json移至根+更新Bridge URL
- ota/h5/manifest-*.json → ota/h5-manifest-*.json
- MainActivity.kt: fetchManifest URL更新
- APK manifest + h5 manifest命名冲突消除
|
2026-07-21 23:13:57 +08:00 |
|
LukeMackin
|
39d7e82a55
|
fix: v6页checkUpdate+applyUpdate全用Bridge(移除fetch+CSP误伤)
|
2026-07-21 23:07:45 +08:00 |
|
LukeMackin
|
f56024f7c0
|
fix: v5页checkUpdate改用Bridge.fetchText(移除fetch)
|
2026-07-21 23:05:04 +08:00 |
|
LukeMackin
|
b88311a2d0
|
security: Bridge代理fetch+移除跨域设置+CSP头限制
CRITICAL修复:
- 移除allowFileAccessFromFileURLs/allowUniversalAccessFromFileURLs
- 移除mixedContentMode=ALWAYS_ALLOW
- WebViewClient注入CSP: default-src 'none';script-src 'unsafe-inline';connect-src 'none'
- 新增Bridge.fetchManifest(channel)/Bridge.fetchText(path)原生HTTP代理
- manifest JSON + version.txt通过Bridge读取,无需WebView跨域
|
2026-07-21 23:02:00 +08:00 |
|
LukeMackin
|
db8cfdf6e3
|
fix: loadDataWithBaseURL改回file:///android_asset/基址
|
2026-07-21 22:52:15 +08:00 |
|
LukeMackin
|
bb1e9ede2a
|
fix: loadDataWithBaseURL base null→about:blank允许fetch跨域
|
2026-07-21 22:50:29 +08:00 |
|
LukeMackin
|
f9d5d32785
|
security: SHA256强制+dlUrl域名校验+缓存大小限制(500KB)
- saveCache: >500KB拒绝写入
- index.html: SHA256缺失时拒绝(不再静默跳过)
- index.html: dlUrl域名校验(dlUrl.indexOf(BASE)===0)
- 审查建议全部修复
|
2026-07-21 20:39:47 +08:00 |
|
LukeMackin
|
67adde25a4
|
security: SHA256校验通过Android Bridge(Java侧计算)
- Bridge.sha256() 用 MessageDigest 计算
- JS下载后 Android.sha256(t) 比对 version.txt 哈希
- version.txt 恢复三列: ver|url|sha256
- 避免 Web Crypto API 在 file:// 域不可用问题
|
2026-07-21 20:30:55 +08:00 |
|
LukeMackin
|
5b9a996759
|
fix: loadDataWithBaseURL加载缓存HTML (file://权限不足)
|
2026-07-21 20:25:53 +08:00 |
|
LukeMackin
|
f4ee38f39f
|
修复: 恢复WebView跨域设置(本设备必需) + 工作版index.html
|
2026-07-21 20:19:23 +08:00 |
|
LukeMackin
|
7f22d4028f
|
security: 关闭file跨域+混合内容+调试 + SHA256完整性校验
CRITICAL修复:
- 移除allowFileAccessFromFileURLs/allowUniversalAccessFromFileURLs
- 移除MIXED_CONTENT_ALWAYS_ALLOW
- WebContentsDebugging仅DEBUG模式开启
- 下载HTML用Web Crypto SHA256校验(version.txt|url|sha256)
|
2026-07-21 20:06:31 +08:00 |
|
LukeMackin
|
19860bdec7
|
fix: review — 移除未用import + v6 fallback兼容旧格式version.txt
|
2026-07-21 19:59:04 +08:00 |
|
LukeMackin
|
af799da3ea
|
fix: loadDataWithBaseURL→loadUrl file:// 直接加载缓存HTML
|
2026-07-21 19:55:22 +08:00 |
|
LukeMackin
|
e39a250fbe
|
fix: version.txt格式改为version|url — 消除所有硬编码dlUrl
- version.txt: 0.1.0-dav-android-6|完整下载URL
- index.html: 动态解析|分隔符获取下载路径
- index-v6.html: 同逻辑,不硬编码
- 以后升级只需改version.txt指向新文件
|
2026-07-21 19:16:27 +08:00 |
|
LukeMackin
|
a47b73dda7
|
feat: 热更新架构 — Android Bridge存文件, MainActivity启动时检查缓存
v5: 嵌入式页面(蓝黑主题,简单按钮)
v6: 完全不同的页面(紫色渐变,卡片布局,渠道选择器)
通过Android.saveCache存HTML文件,重启App自动加载
|
2026-07-21 19:07:17 +08:00 |
|
LukeMackin
|
bfd7bee2ae
|
fix: Blob URL加载缓存页面——避免DOM操作导致双重渲染
|
2026-07-21 19:02:09 +08:00 |
|
LukeMackin
|
bf72ea937f
|
fix: 用documentElement.innerHTML替换整个页面避免双重渲染+保留JS
|
2026-07-21 19:01:29 +08:00 |
|
LukeMackin
|
96d88a9601
|
fix: 缓存命中在head同步document.write避免双重渲染+JS丢失
|
2026-07-21 18:57:27 +08:00 |
|
LukeMackin
|
123824a734
|
fix: 缓存命中用location.replace加载完整HTML(含JS执行)
- innerHTML不执行script标签导致按钮无响应
- location.replace到data: URI确保JS函数正常定义
|
2026-07-21 18:51:59 +08:00 |
|
LukeMackin
|
8f2f90df0d
|
fix: H5缓存命中时替换body内容而非仅显示徽章
- 使用createHTMLDocument解析缓存HTML
- innerHTML替换body以显示完整热更新页面(含渠道选择器等)
|
2026-07-21 18:41:38 +08:00 |
|
LukeMackin
|
ead2045ce5
|
reset: versionCode→5, H5热更新起点v5→v6
- versionCode 6→5 (衔接Git Tag v4)
- embedded HTML→v5, 下载目标→v6
- ota/version.txt→v6
- Gitea tags v5/v6已清理
|
2026-07-21 18:29:03 +08:00 |
|
LukeMackin
|
42b3592ed9
|
fix: H5热更新不再document.write避免双重重叠
- localStorage命中时只更新版号+徽章,不重写页面
- 嵌入式按钮始终可见,可持续检查更新
|
2026-07-21 18:26:15 +08:00 |
|
LukeMackin
|
49793529c0
|
feat: H5热更新 v7→v8 — 版本号推进
- ota/version.txt → 0.1.0-dav-android-8
- ota/h5/index-v8.html → 紫色标题+v8徽章,含自更新按钮
- embedded index.html → 下载目标改为 v8
|
2026-07-21 15:40:15 +08:00 |
|
LukeMackin
|
6f8b346e73
|
fix: H5热更新缓存击穿+版本比对修复
- fetch URL 加 ?t=Date.now() 缓存击穿
- 版本比对兼容 v0.1.0 vs 0.1.0-dav 前缀差异
|
2026-07-21 15:26:17 +08:00 |
|
LukeMackin
|
8f04acaf98
|
feat: H5热更新 v6→v7 — 远端version.txt=v7 + index-v7.html
- ota/version.txt → 0.1.0-dav-android-7
- ota/h5/index-v7.html → 绿色标题+✅热更新成功提示
- embedded index.html → 下载目标改为v7
|
2026-07-21 15:00:59 +08:00 |
|
LukeMackin
|
0727aa33f1
|
build: v6 — WebView热更新修复 + fetch跨域设置
- versionCode 5→6
- WebView allowFileAccessFromFileURLs + mixedContent
- index.html 版本号v6
- index.html fetch检查更新+下载热更新完整链路
|
2026-07-21 14:55:57 +08:00 |
|
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
|
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
|
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
|
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
|
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
|
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
|
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 |
|