Skip to content

Releases: GlacierGlimmer/zmd-charge-plus-for-android

ECP For Android v0.1.2

Choose a tag to compare

@GlacierGlimmer GlacierGlimmer released this 13 Oct 10:27

ECP For Android v0.1.2

正式版 · v0.1.1 → v0.1.2 · 2026-10-13

简体中文:本次变化

  • 新增「时间 - 世界时钟」内置方案:可选择 39 个中英文固定 UTC 偏移,按所选时区计算时间、日进度与目标时间;仍可使用原有目标时间模式。
  • 内置方案按系统、时间、网络探测、DeepSeek 等大类排列;保留已保存的自动轮播队列,避免更新后改变用户的切换顺序。
  • 修正时区配置的序列化、归一化、方案编辑、变量解析和 HUD 渲染;世界时钟变量在数据检查中按真实值判断可用性。
  • 版本字段统一为 v0.1.2,安装版本码由 2 升到 3;重新构建 R8 优化、资源压缩的正式 APK / AAB,沿用原生产签名证书,支持从 v0.1.1 覆盖升级。
  • 关于页构建日期为 2026.10.13;正式构建禁止开发日志开关,无 debug 包名或版本后缀。

English: changes since v0.1.1

  • Add the World clock built-in with 39 bilingual fixed UTC offsets, local-day progress and the existing target-time modes.
  • Group built-in profiles by category while preserving saved automatic-rotation queues.
  • Wire time-zone settings through configuration, profile editing, variable resolution, unavailable-data checks and HUD rendering.
  • Rebuild production APK/AAB as v0.1.2, versionCode 3, using the original production certificate for in-place upgrades from v0.1.1. R8 and resource shrinking remain enabled.
  • Update the About build date to 2026.10.13. Production builds disable developer logging and use no debug package or version suffix.

运行与兼容性 / Requirements and compatibility

Android 8.0+;原生 Live Update 需 Android 16+ 且系统允许推广通知。ROOT FPS/硬件变量仍取决于设备与权限。UTC 选项为固定偏移,不自动切换夏令时。

Android 8.0+; native Live Update requires Android 16+ and promotion eligibility. ROOT metrics depend on the device and permissions. UTC choices are fixed offsets, without automatic daylight-saving changes.

验证 / Validation

477 项单元测试通过;Release lint 无错误(26 个非阻断警告);APK/AAB 使用生产密钥签名,并核对版本与证书。

每个平台单独提供 SHA-256 校验文件。Use the platform-specific SHA256SUMS file to verify downloaded assets.

完整源码变化 / Source comparison

ECP for Android v0.1.1

Choose a tag to compare

@GlacierGlimmer GlacierGlimmer released this 11 Oct 15:35

Endfield Charge Plus for Android v0.1.1

Android 稳定版。此说明覆盖上一个发行 v0.1.0-beta(Git 标签 v0.1.0)→ v0.1.1 的变化。

  • 产品版本:v0.1.1;Android 安装版本:versionCode 2。
  • 构建日期:2026.10.11;系统要求:Android 8.0+,minSdk 26 / targetSdk 36。
  • 包名保持 com.glacierglimmer.endfieldchargeplus,沿用原正式签名证书,可覆盖升级旧发行包并保留应用数据。

修复

  • 修复首次安装后默认悬浮窗 HUD 不显示、必须切换灵动岛后再切回才显示的问题;完善首次授权和返回应用时的启动流程。
  • 修复开启灵动岛后应用 UI 卡顿、卡死与闪退风险,减少主线程工作,合并通知更新并串行处理,改善滑动条响应和采样节奏。
  • 修复原生灵动岛紧凑/展开内容的数值拆分、截断和进度显示;首页的权限/支持状态在首次启动、恢复前台时及时刷新,不再依赖切换选项卡。
  • 修复竖屏切横屏时悬浮窗抖动、尺寸比例过大和距离顶部过远;按当前窗口尺寸、屏幕方向及安全区域重新计算位置与缩放,并处理横竖屏历史位置。
  • 修复语言初始化、即时汉化、部分变量说明、CJK 文字裁切与间距、磁盘可用空间别名,以及网络/电池/CPU 等数据读取与不可用状态处理。
  • 修复更改采样频率后的调度与唤醒行为,减少不必要采样和后台工作。

新增与调整

  • 移除小米超级岛接入,保留 Android 原生 Live Updates/灵动岛,并移除后端选择与不适用/无效的设置。
  • 检查更新:加入关于页手动检查、启动时检查及新版本提醒,与 PC 使用相同的版本比较逻辑。
  • 采样速率可自定义;外部 API 保持自己的刷新策略,避免将界面刷新与昂贵的数据请求绑定。
  • 自动轮播动画可选择,按轮播顺序和所选动画切换方案。
  • 变量库按 Android 实际数据源整理,移除 PC 专用和占位变量;新增/完善 ROOT 可读取的 CPU、GPU、电池及内核数据。读取失败时明确显示不可用,不伪造读数。
  • 真实 FPS:新增“系统 - 显示器帧率”和“系统 - 窗口帧率”方案、目标选择及 100% 对应帧率设置;使用 ROOT/SurfaceFlinger 帧时间与计数,未使用屏幕刷新率冒充 FPS。
  • 无效数据提示:方案所需数据不可用或无效时显示缺失变量提示,并抑制同一故障持续期间的重复提醒。
  • DeepSeek 高峰/低谷判断修正:按官方规则使用北京时间的高峰时段,结合中国法定节假日及调休安排;遵守周末始终低谷的规则。内置已公布安排与已知法定日期覆盖至 2030 年,支持年度日历联网校验更新及缓存;尚未公布完整安排时提示日历待更新。
  • “关于”页新增本次构建日期的中英文显示;正式构建关闭开发调试日志与调试属性。

下载与验证

普通用户安装通用 APK;AAB 用于应用商店提交,不能直接安装。两者均为本次重新构建的正式签名 Release。

文件 字节数 SHA256
EndfieldChargePlusForAndroid-v0.1.1-android-universal.apk 1985899 3dc2f7e7442a89c1864c9b230383c251488afea2e1addc4139fb07fd2c38b9ba
EndfieldChargePlusForAndroid-v0.1.1.aab 5071151 8402854a0cc3437de24d3c4fd4b8ce73bf441691c1135c013df9cfde1f2f6d72

独立校验和文件:SHA256SUMS-Android.txt。

APK 通过 v2/v3 签名及 16 KB 页对齐检查;AAB 的全部应用载荷已核验为原生产证书签名,清单无 debuggable/testOnly。生产证书 SHA256:c542dae25771f940c7b0b336ec30bcc61245d757626853b48bb498d4aaea517e。

本次验证:core 84 项、Release app 385 项单元测试通过(0 失败);Release APK/AAB 构建及 R8 压缩通过;Lint 0 errors / 26 warnings。修复包含用户实机反馈;ROOT 硬件指标、SurfaceFlinger FPS、不同 ROM 的 Live Updates 与后台保活仍取决于设备支持和授权。

English

Stable Android v0.1.1, covering changes since the previous v0.1.0-beta release (tag v0.1.0). Build date: 2026.10.11; Android 8.0+, versionCode 2, unchanged production package and signing certificate.

  • Fixed the missing first-install overlay, permission/support status initialization, sluggish sliders and UI freezes caused by island updates.
  • Fixed collapsed/expanded native Live Update content and portrait-to-landscape overlay shaking, excessive size and vertical placement.
  • Improved localization, text spacing, genuine CPU/battery/network/storage reads and sampling scheduling; removed Xiaomi HyperIsland and irrelevant controls.
  • Added startup/manual update checks and notifications, a custom sampling interval, selectable carousel transitions, and consolidated unavailable-data feedback.
  • Removed desktop-only/placeholder variables and added actual ROOT sensor sources. Added display and selected-window/layer FPS profiles from SurfaceFlinger data, selectable targets and the full-scale FPS setting; screen refresh rate is not used as FPS.
  • Corrected DeepSeek period calculation using Beijing time, official windows, Chinese holidays and the always-off-peak weekend rule. Calendar coverage reaches 2030 with validated annual updates/cache and an explicit unknown state for unannounced schedules.
  • Added the bilingual About build date. Both APK and AAB are production-signed non-debuggable Release builds. Install the universal APK; the AAB is intended for store submission.

Validation: 84 core + 385 Release app tests passed, APK v2/v3 and every AAB payload signature verified, APK alignment checked, Lint 0 errors / 26 warnings. ROOT/FPS and Live Updates availability remain device- and permission-dependent.

ECP for Android v0.1.0-beta

Pre-release

Choose a tag to compare

@GlacierGlimmer GlacierGlimmer released this 05 Oct 09:57

Endfield Charge Plus for Android v0.1.0-beta

Endfield Charge Plus for Android v0.1.0-beta — Android 原生实现(Kotlin + Jetpack Compose + Material 3)。
Native Android implementation of Endfield Charge Plus.

  • 包名 / Package: com.glacierglimmer.endfieldchargeplus
  • 版本 / Version: 0.1.0 (versionCode 1)
  • 系统要求 / Requires: Android 8.0+ (minSdk 26),targetSdk 36
  • 架构 / ABIs: arm64-v8a, armeabi-v7a, x86, x86_64(通用包,一个 APK 覆盖全部)

下载 / Download

资产 / Asset 大小 / Size SHA-256
EndfieldChargePlusForAndroid-v0.1.0-beta-android-universal.apk 1 952 206 B 25bf37cb293f6ecb3c70216888c4322199c1ba942a5d784b2d657f65ef7c43e0
SHA256SUMS-Android.txt 校验和清单 / checksum manifest —

APK 使用 APK Signature Scheme v2 + v3 签名(RSA 4096,CN=Endfield Charge Plus),
证书 SHA-256 指纹 c542dae25771f940c7b0b336ec30bcc61245d757626853b48bb498d4aaea517e。
安装前可用 apksigner verify --print-certs 自行核对。


简体中文

这是什么

Endfield Charge Plus 的 Android 独立原生版本,与 Windows / Linux / macOS 版本在产品名称、
功能逻辑、变量体系、方案语义、中英文与 HUD 视觉语言上保持一致。它不是套壳应用:没有 Avalonia
Android、Flutter、React Native、MAUI,也没有用 WebView 模拟 Android 设置界面。

设置界面是 Android 原生 UI(Material 3、edge-to-edge、深色/浅色、横竖屏、刘海/挖孔、任意 DPI),
屏幕 HUD 保持终末地风格(几何线条、/// MEMORY 标签、环形进度、左右分区、图标)。

v0.1.0 包含

  • 悬浮窗 HUD:SYSTEM_ALERT_WINDOW + TYPE_APPLICATION_OVERLAY,由前台服务维护;窗口只有 HUD
    本身大小(不是全屏透明层),不抢焦点、可点击穿透、可拖动、按横竖屏分别记忆位置、避让刘海。
  • 灵动岛接口(实验性):统一 IslandProvider 抽象,含 Android 官方 Live Update 与小米超级岛。
  • 数据:内存、电池、网络速率、存储、时间/日进程;CPU 与 GPU 按设备能力如实报告。
  • 网络包探测器:ICMP / TCP / UDP,IPv4 / IPv6 / 域名,延迟与丢包。
  • DeepSeek API:余额与高峰/低谷时段,密钥加密保存且绝不写入日志或导出。
  • 自定义 HTTP / JSON 数据源:映射为 custom.<数据源>.<字段> 变量。
  • 方案系统:9 个内置方案 + 自定义方案(新建/保存/复制/删除/重命名/内置另存为自定义),
    自动轮播(顺序、间隔、动画),完整动画与简洁动画,统一 隐去 → 内容切换 → 唤出。
  • 变量与表达式:沿用 ECP 变量命名(memory.usage、probe.latency_ms、deepseek.balance …)
    与 {变量|格式}、{= 表达式} 语法,旧 ping.* 写法继续兼容。
  • 国际化:简体中文 / English,默认跟随系统语言,可手动切换并持久化。
  • 配置:DataStore 持久化,方案为 JSON,导入导出面向跨平台迁移;密钥单独加密存储。

必须如实说明的限制

  • 本版本没有经过真机测试。 构建环境没有 Android 设备或模拟器,因此悬浮窗授权与撤销、挖孔屏、
    不同 DPI、锁屏、屏幕关闭、Wi-Fi ↔ 移动网络切换、厂商后台清理等都需要你在真机上验证,
    清单见仓库 docs/TESTING.md。请不要把本版本当作已通过设备测试的版本。
  • GPU 占用 / 频率 / 温度 / 显存:Android 没有公开 API,普通应用通常读不到;应用会显示不可用标记
    -- 并说明探测依据,不会返回 0 或随机值。
  • CPU 温度与频率:多数零售设备自 Android 10 起被系统限制,按设备能力检测。
  • 原始 ICMP:普通应用无 CAP_NET_RAW,因此 TCP 连接延迟是主要探测路径。
  • 小米超级岛:需要小米开发者平台申请、场景审核与厂商授权。本应用没有该授权,界面会显示
    尚未授权 / 需要申请小米超级岛权限,代码中没有任何反射调用私有系统 API,也不会伪造接入成功。
  • 签名密钥是项目自建密钥(非 CA 证书,Android 不需要)。同一个密钥以后必须继续使用,否则已安装
    的用户无法覆盖升级。

构建与验证

源码:https://github.com/GlacierGlimmer/zmd-charge-plus-for-android

$env:JAVA_HOME="<JDK 17>"
$env:ANDROID_HOME="<Android SDK with platform 36>"
.\gradlew.bat :core:test :app:testDebugUnitTest   # 428 项单元测试
.\gradlew.bat :app:lintDebug                       # 0 error
.\gradlew.bat :app:assembleRelease                 # 需要签名密钥,见下

发布签名:把 keystore.properties(storeFile / storePassword / keyAlias / keyPassword)放到仓库
根目录(已被 .gitignore 排除),或设置环境变量 ECP_KEYSTORE_PROPERTIES 指向它。没有密钥时
:app:assembleRelease 仍可完成,但会输出未签名 APK 并给出警告,避免误发布。

本次发布的验证结果::core:test 74 项与 :app:testDebugUnitTest 354 项全部通过(共 428 项,
0 失败);:app:lintDebug 0 error / 21 warning(未使用 baseline);Kotlin 编译警告 0;
:app:assembleDebug 与 :app:assembleRelease(R8 压缩)均成功;APK 通过 apksigner verify
与 zipalign -c 4 校验。

English

What this is

The independent native Android edition of Endfield Charge Plus. It follows the Windows, Linux and
macOS editions in product name, feature logic, variable system, scheme semantics, bilingual wording
and HUD visual language. It is not a shell: no Avalonia Android, Flutter, React Native or MAUI, and the
settings UI is not a WebView imitation of Android settings.

The settings app is native Android UI (Material 3, edge-to-edge, dark/light, portrait/landscape,
cutouts, any DPI); the on-screen HUD keeps the Endfield look (geometric lines, /// MEMORY tagline,
progress ring, left/right areas, icons).

Included in v0.1.0

Overlay HUD on TYPE_APPLICATION_OVERLAY owned by a foreground service (HUD-sized window, no focus
stealing, click-through, draggable, per-orientation position, cutout aware); experimental island layer
with a single IslandProvider abstraction (Android Live Update and Xiaomi HyperIsland); memory,
battery, network, storage, time and day-progress data; CPU/GPU reported strictly by device capability;
ICMP/TCP/UDP packet probe over IPv4, IPv6 and hostnames; DeepSeek balance with peak/off-peak periods
(encrypted key, never logged or exported); custom HTTP/JSON sources mapped to
custom.<source>.<field>; nine built-in schemes plus full scheme management and auto-cycling with the
full and simple animations; the ECP variable and expression syntax ({var|format}, {= expression},
legacy ping.* names still resolved); Simplified Chinese and English following the system language
with a manual override; DataStore configuration with JSON schemes for cross-platform migration.

Limits stated honestly

  • This build has not been tested on a physical device. No device or emulator was available, so
    overlay grant/revoke, cutout screens, DPI changes, lock screen, screen-off, Wi-Fi ↔ cellular
    handover and vendor background killing still need real-hardware verification (see docs/TESTING.md).
    Do not treat this version as device-verified.
  • GPU load / frequency / temperature / VRAM: Android exposes no public API; the app shows the
    unavailable marker -- with the probe evidence and never invents 0 or a random value.
  • CPU temperature and frequency are restricted on most retail devices since Android 10 and are
    capability-detected. Raw ICMP needs CAP_NET_RAW, so TCP connect latency is the practical path.
  • Xiaomi HyperIsland requires vendor authorization this project does not have; the UI reports
    尚未授权 / Xiaomi HyperIsland permission required, there is no reflection into private system APIs,
    and no fake success is ever reported.
  • The APK is signed with a self-generated key (Android does not require a CA). The same key must be
    kept for future releases
    , otherwise installed users cannot update in place.

Build and verify

Source: https://github.com/GlacierGlimmer/zmd-charge-plus-for-android. Release signing reads
keystore.properties from the repository root (git-ignored) or the ECP_KEYSTORE_PROPERTIES
environment variable; without it the release build still succeeds but warns and produces an unsigned
APK. This release: 428 unit tests passing (74 core + 354 app), lint 0 errors / 21 warnings without a
baseline, 0 Kotlin warnings, debug and R8 release builds successful, APK checked with
apksigner verify and zipalign -c 4.


来源与许可 / Attribution and licence

  • 本仓库 / This repository: MIT License — LICENSE
  • 基于 / Based on: QinAnze/zmd-charge
  • 第三方组件与声明 / Third-party notices: NOTICE.md
  • 作者 / Author: GlacierGlimmer / 冰川雪貓 — 项目网站 zmd-bar.x-neko.com

本应用不上传用户数据;自定义 HTTP 数据源与网络探测只访问用户自行配置的地址。
The app does not upload user data; custom HTTP sources and the packet probe only contact
user-configured addresses.