Skip to content

Releases: ZhaoGY-N/huawei-nfc-eink-android-app

QPollLab v2.12.0-reader-test1 · ReaderMode / SN100U 实验版

Choose a tag to compare

@ZhaoGY-N ZhaoGY-N released this 19 Oct 17:50

针对 issue #5 的实验测试版本,基于 v2.12.0。

  • 支持 INfcAdapter.setReaderMode 四/五参数自动适配,开启、重新寻卡和退出清理复用同一个接口。
  • 增加独立的“直接 Q-Poll”实验路径:保留 ReaderMode 回调,依次发送 RF_DEACTIVATE 和 Q-Poll RF_DISCOVER,并检查实际命令与控制器响应。
  • 补充停止、异常、日志流断开和系统普通寻卡恢复检查;不凭 API 返回 0 宣称控制器接受命令。
  • QTag 被拒绝时只报告当前路径失败,不据此判定硬件不支持 Q-Poll。

离线回归、APK 构建与签名检查已通过;RMX3888 / SN100U 的实际标签回调、D1 通信与刷新仍待验证。这是实验预发布包,不表示该机型已完成适配。

新版需要连接 Shizuku。请先运行“普通 NFC-A 对照”,再在“设备与检测 → Q-Poll 寻卡方式”选择“直接 Q-Poll”测试能力;收到屏幕标签后再尝试只读检查 D1。若出现 RESTORE_FAILED,请关闭再开启 NFC。

SHA-256 校验文件与 APK 一并提供。

QPollLab v2.11.1

Choose a tag to compare

@ZhaoGY-N ZhaoGY-N released this 19 Oct 17:02

QPollLab v2.11.1 正式版,包含 Shizuku Shell / Root 统一后端、可选 SN220 HAL 注入适配、色阶测试图,以及连续选图和重复裁切修复。

更新

  • 修复重新选择另一张图片后应用裁切可能不更新预览和发送快照的问题。
  • 重复裁切始终使用完整原图,并恢复上次应用的位置与缩放,可以重新扩大范围或选择其他区域;取消编辑不会改变已应用的裁切。旋转后重新裁切使用对应方向的原图并重置窗口。
  • 统一通过 Shizuku UserService 管理 Shell / Root 后端;Root 负责底层准备,NFC 通信使用 Shell 身份。
  • 新增默认关闭的“SN220 Q-Poll 兼容”实验选项,支持 nfc_nci 命名族正则识别、write_internal / write_unlocked 路径及会话恢复诊断。需要以 Root 启动 Shizuku 和 arm64 设备。
  • 新增色阶测试图,包括灰阶、黄色/红色色阶、连续渐变及四色基准,方便比较图像处理和实物效果。
  • 支持手动选择 A0 / A1 屏幕布局;D1 C0 字段支持已登记的完整值 201EA001 / 00000001。

安装

下载附件 APK 覆盖安装,重新打开应用并连接 Shizuku。通过 Magisk / KernelSU 授予权限后,可使用 Shizuku Root;常规寻卡保持默认设置,仅需要注入适配时启用 SN220 实验选项。刷新前选择与屏幕一致的 A0 / A1 类型。

验证与兼容范围

  • Java 协议、图像处理、面板布局、连接恢复、权限及裁切回归检查通过;APK 构建与签名验证通过。
  • 用户已在 USB 连接的实机上确认连续选图及同图重复裁切修复有效。此前已在 Xiaomi 25102RKBEC / myron(SN220U)验证注入通信,用户反馈成功。
  • SN220 注入仍为实验功能,不保证所有 SN220 / ROM 通用兼容,fork 作者设备尚未在本分支实机回归。此前记录的某轮刷新最终返回供能错误 68CA,因此不能据此声称已验证所有设备上的完整忙→空闲周期。
  • 注入只修改 HAL 进程内存,不修改 NFC 固件、系统 HAL 文件或屏幕 DB / DA;兼容库驻留至 HAL 进程重启,正常会话结束关闭改写。

附件包含 APK 及 SHA-256 校验文件。

注入思路参考并感谢 HBWuChang 的 Issue #3 及其公开设备分支;本版原生代码从源码构建。

QPollLab v2.11-root-test6 · Root 注入与色阶测试版

Choose a tag to compare

@ZhaoGY-N ZhaoGY-N released this 19 Oct 16:20

本测试版新增 Shizuku Root 下的 SN220 HAL 注入适配,并统一 Shizuku Shell / Root 会话入口;新增内置色阶测试图。延续 v2.10-test1 的 A0 / A1 布局与屏幕类型选择。

更新

  • 移除 App 直接 su → app_process 的独立执行链,统一由 Shizuku UserService 管理。Root 服务负责底层准备,worker 以 UID 2000 + shell SELinux 域进行 NFC 通信;界面显示实际后端身份。
  • 新增默认关闭的“SN220 Q-Poll 兼容”实验选项,需要 Shizuku Root 和 arm64。正则匹配 nfc_nci 命名族,保留函数/GOT 校验与多候选拒绝;覆盖 write_internal、write_unlocked 发送路径及入站通知转换。只修改 HAL 进程内存,不写 NFC 固件、系统 HAL 文件或屏幕 DB / DA。
  • 增加发送/接收调用与改写计数、兼容开关状态和有限的寻卡 NCI 采样,便于定位“注入完成但没有标签”的问题;不采样 APDU、PIN 或图像。先关闭兼容改写再恢复普通寻卡,失败时明确提示恢复未确认。
  • D1 的 C0 字段接受已登记的 201EA001 / 00000001 两个完整值,未知值仍在认证和写入前拒绝,不任意放宽前缀。
  • 新增“图像与发送 → 编辑图片 → 色阶测试图”:16 级灰阶、黄色/红色的 17 级色阶、连续渐变及四色基准。保留原四色测试图,不自动改变图像处理参数。

安装与测试

覆盖安装 APK 后重新打开应用并连接 Shizuku。常规系统 QTag 后端保持默认;仅在测试注入适配时勾选 SN220 实验选项。通过 Root 启动 Shizuku 前,请在 Magisk / KernelSU 中给予相应权限。

先做芯片检查、Q-Poll 寻卡和“只读检查屏幕”,通过后再选择正确的 A0 / A1 类型并发送测试图。色阶比较建议选择原始细节、关闭二值化,再分别开关抖动。

验证与已知限制

  • Java 协议、图像量化/预览、两种面板布局、连接恢复及后端权限回归通过;原生 NCI 改写、HAL 正则识别和诊断回归通过,Clang 静态分析、APK 构建及签名验证通过。
  • 已在 Xiaomi 25102RKBEC / myron(SN220U,nfc_nci_nxp_snxxx_v2.so)验证注入寻卡、D1、D3 上传、D4 返回 9000 和恢复握手。统计确认其发送路径经过 write_unlocked。用户报告显示成功,但已记录的刷新轮次最终 DE 返回 68CA,App 尚未确认忙→空闲完整周期;供能与完成状态仍需继续验证。
  • 不保证所有 SN220 / ROM 通用兼容;fork 作者的小米 14 尚未在本分支实机回归。未默认加入双 PIN 验证或 fork 的固定刷新时序,也不解决不同板内驱动/面板初始化不匹配。
  • 兼容库会驻留到 HAL 进程重启;会话开关正常结束时删除,异常强杀时有最长 360 秒失效限制。可升级本应用自身的旧 hook,其他来源的 hook 仍会拒绝。

APK 与 SHA-256 校验文件见附件。本版本为预发布测试版。

注入思路参考并感谢 HBWuChang 的 Issue #3 及其公开设备分支;本版原生代码从源码构建,不分发该 fork 的预编译二进制。

QPollLab v2.10-test1 · A0/A1 屏幕适配测试版

Choose a tag to compare

@ZhaoGY-N ZhaoGY-N released this 19 Oct 09:50

新增华为 552×768 四色 A0 / A1 屏幕手动选择与图像布局适配。

  • “图像与发送”页选择 A0 或 A1,设置自动保存;首次发送必须明确选择,更换屏幕时请核对。
  • A0 使用奇偶行交错映射,A1 使用线性映射;切换后重新生成发送快照,确认窗口及日志显示所选类型。
  • 按 D1 返回的已知扫描配置(00 / 01)调整数据方向,写入前复核方向;继续保留规格校验。
  • 使用板内已存驱动,不写 DB / DA;本版本不负责在两种屏之间改装驱动板,实物与板内驱动必须对应。
  • 保留上一测试版的连接恢复及诊断日志。

测试:两种布局的完整 105984 字节均与参考仓库 pack_indices 输出一致;回归覆盖两种型号、两种扫描方向、实际 D3 传输、预览还原及配置变化停止。APK 构建、签名和 SHA-256 校验通过。

安装后重新连接 Shizuku,在“图像与发送”页选择实物屏幕类型,先进行只读检查,通过后再发送测试图。

此版本尚未完成 A0/A1 实屏刷新验证;手动选择不能绕过 D1 错误,也不解决当前 Issue #2 的 6401 返回。请反馈所选类型、手机与系统信息、完整操作日志及屏幕实际显示结果。

APK 与 SHA-256 校验文件见附件。本版本为预发布测试版。

QPollLab v2.9.2-test1 · ISO-DEP 连接测试版

Choose a tag to compare

@ZhaoGY-N ZhaoGY-N released this 18 Oct 09:32

针对 #1 中“Q-Poll 寻卡成功,但 ISO-DEP 连接时报 IOException”的实验性修复与诊断版本。

  • 仅在 IsoDep.connect() 抛出 IOException、尚未发送任何 APDU 时,重新启动 ReaderMode 并获取同一 UID 的新 Tag,最多三次连接尝试。
  • 重新寻卡超时、用户停止或 UID 变化即停止。D1、认证、传图、刷新等协议操作失败后不会自动重试;继续保留原厂配置检查,不改写 DB/DA。
  • 增加连接次数、连接耗时、ISO-DEP 元信息、APDU 失败阶段及异常堆栈日志,不记录 PIN 和图像内容。
  • 更新 Shizuku 后端版本,升级后请重新授权 / 连接。

测试方法:安装 APK,选择 Shizuku 并重新连接,先运行“只读检查屏幕”。请反馈该轮完整日志,以及手机型号、系统版本和屏幕型号;只读检查通过后再尝试传图。

验证:协议、图像、裁切、NCI 寻卡、错误保留及连接恢复回归测试通过;APK 构建与签名验证通过。尚未在 Issue #1 的目标屏实测,不能据此认定已支持该型号。

APK 及 SHA-256 校验文件见附件。此版本为 prerelease,v2.9.1 保持正式版。

QPollLab v2.9.1

Choose a tag to compare

@ZhaoGY-N ZhaoGY-N released this 18 Oct 06:35

配置校验失败时逐项显示字段、期望值与实际值,帮助定位不同屏壳的兼容性差异。缺失字段、长度异常和 D1 首字节校验也有明确提示。

保留原有兼容性限制;校验失败不认证、不传图、不刷新,不改写 DB/DA。此版本提供诊断,不代表已适配截图中的屏壳。

验证:24 组协议测试及图像、裁切测试通过;APK 编译及签名验证通过。未进行实机刷屏测试。

安装 QPollLab-2.9.1.apk 后,点击“只读检查屏幕”并复制完整日志即可查看差异。

QPollLab v2.9

Choose a tag to compare

@ZhaoGY-N ZhaoGY-N released this 17 Oct 11:24

Android 四色墨水屏刷新工具,支持 Shizuku / Root。

  • 预览与发送按钮同屏,图片编辑选项位于下方。
  • 支持裁切、旋转、二值化、色块简化和全屏像素预览。
  • 保留屏幕规格校验、发送确认与停止操作。

适用于兼容 Q-Poll 的手机系统及相同原厂配置的 552×768 四色屏。

附件为此前已通过无线 ADB 安装的同一份 v2.9 APK,保留原签名,支持覆盖安装。源码构建、协议与图像处理测试通过;本次布局尚未实机目视核验。附 SHA-256 校验文件。