ColorOSDepthMask:为 ColorOS 景深壁纸增加可编辑蒙版

由 canxin 创作阅读需要 12 分钟


目录

项目地址:canxin121/ColorOSDepthMask

ColorOS 的锁屏景深功能会识别壁纸中的人物或主体,并将前景、时钟和其他界面元素分层显示,从而形成较明显的空间层次。

这套效果在系统自动抠图准确时表现较好,但其可调整空间相对有限。当前景深结果主要依赖系统 AI,对头发、手部、衣物边缘或复杂背景的识别出现偏差时,用户通常无法直接修改系统生成的前景区域。

ColorOSDepthMask 针对这一限制提供了一套补充方案。它通过 LSPosed 注入 ColorOS 壁纸编辑器,在原有景深流程中加入可编辑蒙版能力。用户既可以继续调用 ColorOS 原生 AI 生成蒙版,也可以对现有结果进行手工修整,或直接导入外部 PNG 蒙版。

自定义蒙版会按壁纸保存,并参与当前预览与最终锁屏资源生成。因此,修改后的前景不仅用于编辑页中的即时显示,也可以在重新进入同一张壁纸时继续恢复和使用。

功能概览

ColorOSDepthMask 主要提供以下能力:

三种蒙版来源

使用 ColorOS 原生 AI 自动生成

最直接的方式是继续使用 ColorOS 自带的 AI 抠图能力。

进入锁屏壁纸编辑页后,选择 蒙版 → 自动生成,模块会调用系统原生 AI 生成当前壁纸的景深前景。生成完成后可以直接进入编辑器,对识别不完整的区域继续修整。

这种方式适合主体已经能够被系统较好识别,仅需对局部边缘进行补充的壁纸。系统 AI 负责完成基础分割,后续再由用户修正细节,可以显著减少手工绘制工作量。

在真实壁纸上编辑

已有蒙版可以通过 编辑 继续修改;没有现成蒙版时,也可以从空白蒙版开始绘制。

编辑器会以当前锁屏壁纸作为底图,并在其上显示半透明蒙版覆盖层。当前支持:

在真实壁纸上直接编辑的主要优势,是能够准确判断主体边缘与背景之间的关系。对于头发、衣物边缘和复杂轮廓,放大后逐步修整通常比单独编辑黑白蒙版更直观。

保存后,当前景深预览会自动刷新,无需退出 Wallpapers 后重新进入编辑页。

导入外部 PNG

对于习惯使用 Photoshop、Affinity Photo、GIMP 等图像工具的用户,可以直接导入外部 PNG 作为景深蒙版。

蒙版语义如下:

蒙版内容含义
白色 / 不透明前景
黑色 / 透明背景
灰色 / 半透明羽化或过渡区域

建议外部 PNG 与原始壁纸保持相同尺寸和比例,以减少后续裁切和缩放带来的偏差。

对于轮廓要求较高的壁纸,可以先使用 ColorOS AI 生成基础蒙版,再在内置编辑器中进行初步调整,最后使用外部图像工具完成更精细的处理。

蒙版组合方式

保存蒙版后,可以设置自定义蒙版与 ColorOS 原始景深结果之间的组合关系。

对于已经完整制作好的自定义蒙版,通常直接使用 替换 即可。并集和交集更适合在系统原始结果基础上进行局部补充或范围限制。

蒙版持久化与状态一致性

仅在编辑页中替换当前显示的 bitmap 并不能完整解决实际使用中的问题。ColorOS 的景深状态同时涉及界面开关、当前预览、内部壁纸模型和最终锁屏资源生成等多个环节。

如果这些状态没有同步,可能出现以下情况:

编辑页显示新的自定义蒙版

点击应用

最终锁屏仍使用之前的系统 AI 前景

也可能出现:

景深开关显示为开启

当前预览实际上没有景深效果

因此,ColorOSDepthMask 会在保存蒙版后同步当前壁纸的景深状态,并在重新进入同一张壁纸时尝试恢复之前保存的蒙版。

保存、导入或修改组合方式后,当前预览会立即更新;最终点击“应用”时,也会确保当前自定义蒙版参与锁屏景深资源生成,避免继续复用旧的前景结果。

此前部分情况下,保存蒙版后 ColorOS 的“应用”按钮仍会保持禁用状态,需要再次拖动壁纸才会恢复。现在模块会同步触发系统自身的“已编辑”状态,因此保存后可以直接继续应用。

景深开关保持手动控制

ColorOS 原生逻辑会根据 AI 识别结果和当前资源状态自动修改景深开关,包括自动开启、关闭、禁用或灰显。

对于系统完全自动生成的景深结果,这种逻辑有其合理性;但在已经存在用户自定义蒙版的情况下,是否启用景深更适合由用户自行决定。

因此,在自定义蒙版生效时,ColorOSDepthMask 会尽量保持景深开关的手动状态。用户开启时保持开启,关闭时保持关闭,不再由系统 AI 结果自动改变当前选择。

独立 App

除了 LSPosed 模块本身,ColorOSDepthMask 还包含一个独立控制 App,用于管理常用操作和诊断信息。

首页

首页只保留高频内容:

安装或更新模块后,可以直接通过 重载壁纸 重新启动 com.oplus.wallpapers,使新的 Hook 重新加载。

诊断

诊断页用于集中查看运行环境,包括:

每一项都可以单独复制,也可以一次复制完整诊断信息。出现系统更新或兼容性问题时,可以直接将这份信息附在 Issue 中。

项目

项目页提供以下入口:

App 启动后还会检查 GitHub Releases。发现新版本时,可以直接下载 APK;下载完成后会检查包名、版本和签名,再交由 Android 系统安装器处理。

安装

目前主要针对以下环境进行开发和测试:

安装步骤如下:

  1. 前往 Releases 下载最新版 APK;
  2. 安装 APK;
  3. 在 LSPosed 中启用 DepthMask
  4. 作用域只勾选 com.oplus.wallpapers
  5. 打开 DepthMask App 并授予 Root;
  6. 点击 重载壁纸
  7. 重新打开 ColorOS 锁屏壁纸编辑器。

正常情况下,锁屏编辑页底部功能栏会出现新的 蒙版 入口。

Root 主要用于独立 App 重载 Wallpapers / SystemUI 和读取额外诊断信息。LSPosed 模块的作用域仍然只需要 com.oplus.wallpapers,无需额外选择 SystemUI 或 Launcher。

基本使用流程

对于普通使用场景,可以按照以下顺序完成一张自定义景深壁纸:

  1. 选择锁屏壁纸;
  2. 进入 ColorOS 锁屏壁纸编辑器;
  3. 点击 蒙版
  4. 点击 自动生成
  5. 在编辑器中修正 AI 漏检或误检区域;
  6. 保存蒙版;
  7. 蒙版模式保持 替换
  8. 手动开启 景深
  9. 检查预览;
  10. 点击 应用

如果系统 AI 无法正确识别主体,也可以跳过自动生成,直接从空白蒙版开始编辑,或导入已经制作好的 PNG。

兼容性说明

ColorOSDepthMask 依赖 com.oplus.wallpapers 的内部类、方法和资源,而这些内容并不属于公开稳定 API。

因此,ColorOS 或 Wallpapers 大版本更新后,模块可能需要重新适配。

如果系统更新后出现以下情况:

可以先在 DepthMask App 中执行一次 重载壁纸。如果问题仍然存在,可以进入诊断页复制完整诊断信息,并提交到 GitHub Issues

项目地址

ColorOSDepthMask 主要面向希望继续使用 ColorOS 原生锁屏景深能力,同时需要自行调整前景区域的用户。相比重新实现一套独立景深系统,它更强调与 ColorOS 现有编辑和应用流程保持一致。

评论