Skip to content

Releases: Rove24/DarQ

v3.1

Choose a tag to compare

@Rove24 Rove24 released this 28 Sep 05:01

DarQ v3.1 Release Notes

本次更新是一次面向新系统的大版本:全面适配 Android 17,彻底根治 root 模式在新系统上的静默失效,并新增「扩展深色应用」与可开关的调试日志。


🚀 Android 17 全面适配

  • 彻底根治 Android 17 上 root 模式完全失效的问题:

    • 根因定位:android.app.IProcessObserver 这个 @hide AIDL 在 Android 15 新增了 onProcessStarted,而且是插在 onForegroundActivitiesChanged 前面(不是追加在末尾)。DarQ 以 compileSdkVersion 32 编译,object : IProcessObserver.Stub() 只实现了旧版的 3 个方法,但运行时继承的是设备 boot classpath 上那版声明了 4 个抽象方法的 Stub —— 匿名类天生不完整;
    • 为什么 15 / 16 能凑合用:enableProcessObserverBroadcastOnProcessStarted 这个 aconfig flag 当时默认关闭,系统压根不会调用 onProcessStarted,缺失的那个方法永远碰不到;
    • 为什么 17 直接崩:该 flag 打开后系统真的开始回调,缺失的方法抛出 AbstractMethodError。由于抛的是 Error 而不是 RuntimeException,Binder 那层的 catch (RemoteException | RuntimeException) 接不住 —— root 服务静默死亡,不弹窗、无日志、getprop 也看不出任何异常;
    • 修复:补齐 AIDL 的 onProcessStarted 声明并改为 oneway 对齐 AOSP,DarqService 的 observer 补上对应空实现。
  • 属性写入加入回读校验:debug.hwui.force_dark 的写入原先异常被全部吞掉,写失败完全无感知。现在每次写入后回读校验,失败会明确记录。


🌙 全新「扩展深色应用」(Android 17+)

  • 对接 Android 17 新增的 force invert color 机制:

    • 与旧版 Force Dark 不同,扩展深色无视应用自身的 opt-out,对浅色应用直接反色,覆盖更彻底;
    • 主页「强制深色应用」下方新增独立卡片,Android 17 以下自动隐藏;
    • 复用同一个应用选择器,标题与列表按用途自动区分,两个列表互相独立。
  • 实现思路与强制深色完全一致:

    • 扩展深色的全局开关和 debug.hwui.force_dark 一样是全局的,DarQ 复用已有的前台应用监听,在每次前台切换时重算一次「当前应用该不该用扩展深色」,因此只对勾选的应用生效;
    • 勾选的应用同时写入系统的「强制启用」名单,让不符合系统启发式的应用也能被反色;
    • 额外优势:ViewRootImpl 注册了 force-invert 状态监听,开关变化会立刻触发深色重算,不需要等待窗口重建,切换比强制深色更跟手。
  • 已知限制:图片与视频内容无法被反色,应用内的商品图、封面图等仍会保持原色,这是反色机制的固有限制。


📋 可开关的调试日志

  • 开发者选项 → 服务信息下方新增「调试日志」开关:

    • 打开后输出 root 服务的关键节点:绑定模式(Root / Shizuku)、Shell.rootAccess() 结果、属性写入回读、前台应用切换、白名单同步;
    • 关闭时每次调用只有一次布尔判断,几乎零开销;
    • 抓取方式:adb logcat -s DarQService:v DarQServiceProvider:v AndroidRuntime:E。
  • 新增的日志设施 DarqLog 让这类「静默失效」问题不再需要改代码重新编译才能定位。


🎨 细节修复

  • 开关样式统一:开发者选项新增的开关改用模块自带的 MD3 实现,清除主题 Tint 干扰,与主页总开关样式完全一致。
  • 服务连接层日志补全:输出绑定模式与实际失败原因,便于排查 Root / Shizuku 模式切换问题。
  • 前台检测链路日志:前台回调、包名反查、observer 注册失败都会留下记录,不再静默。

📦 下载与安装说明

  • 推荐直接下载下方 Assets 中的安装包进行更新。
  • 本版本全面兼容 Android 10 ~ Android 17,支持 LSPosed 模块模式、Shizuku 免 Root 模式及传统 Root 模式运行。
  • 「扩展深色应用」需要 Android 17(API 37)及以上,低版本系统会自动隐藏该卡片。

v2.6

Choose a tag to compare

@Rove24 Rove24 released this 14 Sep 10:36

本次更新重点重构了全应用 Material Design 3 规范开关的底层实现,并对所有界面、卡片、图标与开关的间距及对齐进行了像素级(Pixel-perfect)校准,带来了更加统一、精致的原生系统级视觉体验。

🔘 Material Design 3 规范开关纯代码重构

  • 彻底根治静态 XML 导致的开关拉伸与变形:
    • 弃用传统的静态 XML Drawable,全面采用纯 Kotlin/Java 代码动态构建 GradientDrawable + LayerDrawable + StateListDrawable;
    • 严格锁定 MD3 官方规范几何尺寸:轨道 52dp × 32dp(圆角 16dp,描边 2dp),开启滑块直径 24dp,关闭滑块直径 16dp。
  • 引入精密非对称 Inset 几何校正算法:
    • 通过代码层动态计算非对称内边距(开启状态 -2dp / 4dp,关闭状态 8dp / 2dp),将滑块固有层宽精准固定为 26dp(恰好半个轨道宽);
    • 彻底解决了 XML 无法支持负边距导致 SwitchCompat 误将开关撑大至 64dp 的问题,确保滑块开启与关闭状态与轨道两端半圆完全同心。
  • 双模精准色值与全局统一样式:
    • 深度适配深色与浅色双模式 MD3 标准色彩(深色开启轨道 #A8C7FA、滑块 #00325B;关闭轨道 #363A40、滑块 #C4C7C5、描边 #8E918F);
    • 代码层强制清空系统及主题 Tint 覆盖,全应用所有开关(主页总开关、各子设置开关、自动暗色模式、应用列表与过滤开关)样式 100% 绝对统一。

📐 全局间距与视觉对齐像素级校准

  • 应用列表开关右边距彻底对齐:
    • 彻底修复 item_app.xml 内部双层边距叠加(8dp 容器 padding + 16dp 开关 margin = 24dp)及过滤开关硬编码 24dp 的问题;
    • 应用列表内所有的开关右边距统一收窄为标准的 16dp,与主页、高级选项及自动暗色模式的开关右边缘达到像素级水平对齐。
  • 数据配置选项与高级选项像素级对齐:
    • 网格基准线对齐:重构数据配置选项卡片结构,去除多余的外层 padding,图标与标题文字起始位置分别精准对齐至卡片左侧 12dp 与 76dp,与高级选项及主页完全一致;
    • 图标光学体量(Optical Size)一致化:经过尺寸测算,将数据配置选项的图标内边距优化为 13dp,使云朵、恢复、清除等全幅矢量图的有效视觉体量与高级选项中的甲虫等图标(0.75 缩放,30dp 视效)保持 1:1 视觉一致,消除了原先图标过大贴边的割裂感;
    • 条目高度与留白统一:去除卡片多余的上下 padding,统一定制为标准 minHeight="68dp",条目视觉厚度完全一致。
  • 二级页面顶栏间距统一:
    • 统一高级选项与 Xposed 选项等 RecyclerView 的 paddingTop 为 12dp,配合列表首项卡片的 4dp margin,使所有二级页面的首张卡片距离顶栏 AppBar 的间距均统一为标准的 16dp。

🎨 细节体验与视觉规范统一

  • 字体规范全面对齐:各子页面标题全面应用 TextAppearance.AppCompat.Medium.Darq(Google Sans Medium 500 字重),消除字体粗细与字号差异。
  • 主页与关于卡片视觉对齐:主页普通设置项图标与“关于”卡片图标严格保持在屏幕边缘起算的同一垂直对齐线上。

📦 下载与安装说明

  • 推荐直接下载下方 Assets 中的安装包进行更新。
  • 本版本全面兼容 Android 10 ~ Android 16+,支持 LSPosed 模块模式、Shizuku 免 Root 模式及传统 Root 模式运行。

v2.2

Choose a tag to compare

@Rove24 Rove24 released this 12 Sep 01:22

DarQ v2.2 Release Notes

本次更新重点聚焦于开机自启动与系统重启恢复的稳定性修复,彻底解决了系统重启后出现的后台崩溃与状态恢复闪退问题。


🛠️ 核心修复与稳定性提升

  • 彻底根治设备重启后从后台进入闪退的问题:

    • 修复了从多任务列表恢复任务栈时,Fragment 容器尚未就绪导致的页面崩溃异常;
    • 手机重启后,无论直接点击桌面图标还是从多任务后台卡片进入应用,均能秒进主页,不再需要手动划掉后台任务卡片。
  • 彻底修复开机自启动前台服务的确定性崩溃:

    • 深度适配 Android 12+ 及现代系统规范,为开机启动服务中的所有通知 PendingIntent 补齐 FLAG_IMMUTABLE 标志位;
    • 解决了在 Android 12/13/14/15/16 等系统上,应用获得开机自启权限后随系统启动时 100% 后台抛出异常暴毙的问题。
  • 规范开机广播接收配置:

    • 校准开机广播接收器(BootReceiver)的导出属性与系统权限声明,确保主流定制系统(如 HyperOS、OriginOS、ColorOS 等)在开机完成广播到达时能可靠唤醒服务。

v2.1

Choose a tag to compare

@Rove24 Rove24 released this 07 Sep 14:48

DarQ v2.1 Release Notes

相比 v1.4 版本,v2.1 带来了全面的界面重构、交互逻辑优化、服务稳定性提升以及代码深度精简。


🎨 Material Design 3 视觉与动效优化

  • 根治主页卡片过渡闪烁:主页“启用 DarQ”总开关卡片全面换装全新 MD3 规范组件,彻底解决点击进入二级页面过渡动画中卡片背景突兀变亮的视觉 Bug。
  • 24 小时制双圈原生时钟盘:深度定制对齐 Google 原生时钟样式,时间数字纯色无亮色描边,优化操作按钮圆角与触控尺寸。
  • 居中现代化启动弹窗:彻底移除旧版底栏样式,Root 缺失、Shizuku 引导与服务超时等启动提示全面换装 MD3 居中圆角卡片(28dp 圆角与胶囊操作按钮)。
  • 专业规范的引导文案:重写启动弹窗文案,清晰指引免 Root 用户通过 Shizuku(支持 Android 11+ 无线调试)快速授权运行。
  • 应用选择页折叠优化:“显示没有界面的应用”展开高度与应用卡片严格对齐,触控区域与平滑动效细节全面校准。

⏰ 自动深色模式逻辑全面重构

  • 全新层级排斥与联动逻辑:
    • 总开关关闭时,下方两个子选项(日落到日出 / 自定义时间)强制关闭并禁用点击;
    • 总开关开启时,子选项初始默认保持关闭,用户自主选择生效模式;
    • 两个子选项严格单选互斥,点击即时切换,无多余过渡状态;
    • 若总开关处于开启状态但未选择任何子模式,返回主页时系统将自动回退总开关为关闭状态,防止无效空转。
  • 自定义时间体验优化:
    • 默认起止时间调整为更符合日常作息的 18:00 开启、06:00 关闭;
    • 修复时间修改被重复覆盖的问题:加入持久化迁移保护标记,用户自主设定的任意时间(包括 22:00 / 07:00 等)均会被永久记忆,不再被意外重置;
    • 开启/关闭时间的点击状态严格与“自定义时间”开关联动。

⚡ 核心逻辑与状态同步修复

  • 配置即时同步与响应:优化 SharedPreferences 写入管道,内存高速缓存同步更新与后台持久化/IPC 分离,彻底解决“点击后配置已生效但界面显示延迟更新”的问题。
  • 触控事件解耦:彻底剥离开关本体与卡片外框的重复事件监听,点击整行流畅切换,杜绝事件竞争与双击误触发。
  • 列表动态刷新修复:重构设置列表的局部更新索引映射机制,在不同系统版本下(无论机型特定功能项是否可见)均能精准局部刷新对应开关项。
  • 样式隔离优化:收窄 TimePicker TextAppearance 覆盖层级,避免全局样式污染其他界面组件。

🧹 极致精简与轻量化

  • 移除检查更新模块:彻底清理更新检查器、相关底栏弹窗、后台服务注入及网络接口冗余,杜绝未比对版本误推更新的风险,APK 更加纯粹、轻量、稳定。
  • 清理多余代码与资源:清除过期的冗余布局及多语言孤立文本,减小安装包体积,启动响应更迅速。

v1.4

Choose a tag to compare

@Rove24 Rove24 released this 06 Sep 21:20

DarQ v1.4 (Version 14)

🎨 Material Design 3 体验全面升级与细节对齐

  • Google 时钟原生 MD3 时间选择器:深度重构自动深色模式中的自定义时间选取界面,对齐原生 Google 时钟质感(药丸胶囊选中块、高对比度浅天蓝字体、平滑表盘指针交互及 28dp 大圆角)。
  • MD3 药丸胶囊风格确认弹窗:重构“数据配置选项 - 清除数据”对话框,采用 28dp 圆角平滑暗色容器(#1D232C)与双胶囊药丸操作按钮(深色取消按钮 + #98CBFF 淡蓝高光确定按钮),彻底告别旧版 Android 传统弹窗质感。
  • 数据配置卡片图标对齐:在“备份”、“恢复”、“清除”三张功能卡片前增补标准 Material 前置图标,尺寸与边距完全对齐高级选项规范。

🚀 交互与动效体验优化

  • 平滑折叠/展开动效重构:针对应用选择界面中“显示没有界面的应用”折叠卡片,采用专属属性动画实现顺滑平移淡入淡出(展开时指示箭头 180° 旋转,开关顺滑滑入;收起时平滑滑出隐藏)。
  • 双区独立触控:优化触控响应区域,点击整行卡片仅控制折叠/展开,仅点击右侧开关本身才切换过滤规则,杜绝误触。
  • 间距与视觉规范:微调自动深色模式二级页面中的“计划方式”标题边距,严格对齐主页视觉层级。

🛡️ LSPosed 模块与系统描述全面同步

  • 全面更新 AndroidManifest 与资源配置中的模块描述:“为每个应用独立强制开启深色模式,支持按设定时间自动切换”。
  • LSPosed 框架模块管理器中现可准确展示全新功能介绍。

⚡ 架构精简与稳定性提升

  • 精简开发者选项,保留核心“关闭重复的服务”及“服务信息”诊断卡片,移除冗余取色逻辑,保证模块极致轻量与高稳定性。
  • 修复点击时间选择器偶发的闪退异常,全面提升应用生命周期稳定性。

📦 下载与安装说明

  • 推荐直接下载下方 Assets 中的 DarQ-v1.4.apk。
  • 如果您的设备已安装 LSPosed 框架,在框架管理器中勾选并启用本模块即可,无需开启应用内的后台常驻服务!