OPPO Find X9 Ultra(PMA110)的相机增强模块。 当前版本 Muse 4.4.4,适配相机 7.006.119。
Muse 深入原厂 HAL、相机框架和成像链路,重构画质、色彩与交互逻辑,并补回被机型策略拆开的模式与调色资产。
Muse 由 KernelSU 模块和 LSPosed 设置应用组成:模块通过绑定挂载覆盖 /odm 下的相机配置与资源,钩子和原生库在相机、相册进程内工作。停用模块即可完整还原。
- 拍照模式自然化:关闭 AI 细节增强(文字和纹理不再被网络重绘,头发锐化一并关闭)、关闭局部对比度增强(LCE)、进一步柔化,三项分别开关。柔化不作用于大师模式和理光模式。
- 25MP 直出:放宽 25MP 自动切换的照度、ISO、温度和运动条件,配合相机设置中的"超清优先",明显提高 25MP 直出的触发率。
- 哈苏超清 200MP:解除人脸识别门禁。没有大人脸的画面也走真 200M 全像素读出,1.0×、光线充足、非 HDR 等其余条件保持原厂。
八个色彩家族,可以混合进原厂大师色彩,也可以完全替换。
| 家族 | 内容 |
|---|---|
| OPPO | 原厂大师色彩,可选 Find X9 Ultra、Find X8 Ultra 或 Find X7 Ultra |
| 基础 | 场景色彩经 Adobe Standard 标定,只套一条传输曲线:标准、直通、Rec.709、Gamma |
| HNCS | 哈苏自然色彩,色彩映射与色调曲线分别选择"标准"或"复制" |
| Lumix | 松下 S9 的 15 种照片风格,含 L.ClassicNeo、709 Like、Cinelike D2 / V2、Flat 与多种单色 |
| 胶片 | Spektrafilm 的 20 种胶片:负片可搭配 8 种相纸或电影拷贝,反转片直接扫描,CMY 密度分别可调 |
| Canon | EOS R5 的标准、人像、风光、中性、可靠设置、单色 |
| Darktable | Sigmoid、Filmic、AgX 色调映射,黑白点、趾部、肩部、对比度与色相保持可调 |
| Leica M9 | 徕卡 M9 的色彩矩阵与色调渲染 |
- 混合模式:影调与色彩分别按权重混入原厂;替换模式:完全替换原厂。
- 曝光对齐:按中灰、中间调、高光或白点,把所选色彩对齐到原厂大师模式的曝光。
- 颗粒:强度与大小两把尺独立调节,交互与专业模式的色温、色调一致。所有滤镜可用,包括没有 LUT 的"标准",数值按滤镜分别保存。
- 对比度:-100~100,采用理光 GR 的对比度曲线,作用在原厂影调之前。
- 扩展滤镜:旧版经典、徕卡、富士、理光与胶片模拟。
- 列表管理:长按拖动排序,随意显示或隐藏;隐藏的滤镜,其预设照常可用。
- 跨模式同步:拍照、人像与哈苏超清共用大师滤镜的顺序与显示状态。
- 特殊效果:霓虹套用 CineStill 800T 风格的光晕与颗粒,和光套用 Portra 的高光溢光。
- 导入与备份:批量导入 Rec.709
.cubeLUT,配置可备份与恢复。
- 大师物理柔光:三挡柔光分别替换为实体滤镜的光学模拟:弱挡 HDF、中挡 1/4 黑柔、强挡白柔。散射在场景光上计算,高光溢散与实体滤镜一致。“关闭对比度增强”可在使用替换柔光挡时省去 HDRTransform 的局部细节融合,默认关闭。
- 和光物理胶片:按柯达实测锐度模拟 Portra 400 的乳剂散射、光晕与边缘效应,作用于成片。
- 理光 GR:移植自 realme GT8,含影调、焦距条、快照对焦与相机、相册水印;补齐 GR 快门声与长曝光提示音;GR 水印可单独关闭;模式位置可长按拖动调整。
- POP 复古:移植自 Reno16,可在 SDR(偏亮的 CCD 风味)与 Ultra HDR 之间切换;光线充足时可输出中像素,画面有人脸时保持原尺寸。
- X10 系列:调色盘,以及清透、琥珀两款滤镜。
- 哈苏超清:补齐滤镜、调色盘与柔光入口。
- XPAN:照片可存为实况,播放负片显影动画并带原厂 XPAN 快门声;取景框的大小遮罩与显影动画分别可关;XPAN 水印只在 XPAN 模式出现。
- 移轴模式。
- 4K / 60fps 滤镜:普通视频在 4K、60fps 下保留滤镜,不再降到 1080p30。
- 专业视频 ISZ:解禁传感器内变焦(主摄 2×、长焦 6×),O-Log2 同样可用。
-
重新编辑:相机拍摄的滤镜与调色盘可在相册中重新编辑,Muse 滤镜与大师滤镜进入相册滤镜列表;理光模式照片可编辑 GR 水印。
-
水印:哈苏、LUMO、理光水印对所有照片开放,截图等无机型信息的照片自动补上本机名称;Muse 滤镜与导入滤镜在水印上显示自己的名称。
-
批量编辑水印:多选照片后从"更多"进入,在第一张选定样式,其余照片在后台自动套用,可离开相册,通知实时显示进度;选"无"即批量去除水印。
-
地址跳转:照片详情中点击地址,在地图应用中打开拍摄位置。
-
快捷滤镜条:大师卡片或调色盘入口上滑、长按可打开滤镜条;随滚动位置仅绘制中心及左右各 4 项。
- 快门声:静音、振动模式下照常播放,可分别开关,音量可单独设置。
- 按模式记忆:闪光灯与实况开关由每个模式各自记住。
- 快启键:直接进入指定模式,包括大师、GR 等原厂快启列表没有的模式,不跟随上次使用的模式。
- 机型伪装:水印与成片 EXIF 中的机型可替换为自定义预设。
-
注入状态:逐项检查 LSPosed、KSU 挂载、相机与相册注入、符号匹配,全部正常时卡片变绿。
-
即时生效:任何设置改动后都会在后台结束相机进程,回到相机即为新设置。
-
维护:一键重启相机、相册;持续记录系统日志,复现问题后连同相机日志一并导出。
-
成片转储:日志页独立开启 RAW、ccmVec(原厂 WB/CCM 后、gamma 前的浮点 RGB)及 HDRTransform 输入/输出转储,默认关闭;重启相机进程后生效。
需要已 root(KernelSU)并安装 LSPosed。
- 构建得到
OmniCam-Muse-<版本>-KSU.zip(见"构建")。 - 在 KernelSU 管理器中刷入模块(ID
ricoh_pop_x9u)并重启。模块自带设置应用(包名local.jiege.camera),刷入时一并安装。 - 在 LSPosed 中启用 OmniCam Muse,作用域勾选系统框架、相机、相册。
- 强制停止相机后重新打开。
设置入口在桌面的 OmniCam Muse 应用,或 LSPosed 中的模块页。需要还原时,在 KernelSU 管理器中停用模块并重启,所有挂载随之撤销。
环境:Windows、JDK 17、Android SDK 37、NDK 29.0.14206865、CMake 3.22.1、Python(含 numpy、pycryptodome)、Git for Windows。在 local.properties 中写入 sdk.dir=…(已忽略)。
$env:OMNICAM_PYTHON = 'python'
.\build.ps1build.ps1 依次执行色彩目录检查、离线测试、脚本语法检查与 assembleRelease。
- 签名:根目录放有
port.keystore(已忽略),或设置了OMNICAM_KEYSTORE时,读取OMNICAM_STORE_PASSWORD、OMNICAM_KEY_ALIAS、OMNICAM_KEY_PASSWORD签名,并打包出OmniCam-Muse-<版本>-KSU.zip;否则只产出未签名 APK。 - 证书与密码不入库。不同证书签名的 APK 不能直接覆盖安装。
欢迎参考本项目为其他机型适配。但很多功能改动的是底层配置:/odm 下的相机配置、调色与 LUT 资源、HAL 决策节点和原生库,它们与机型和相机版本绑定,不能照搬。适配前请先阅读 docs/MODULE.md 中各功能的原理与涉及文件,再对照目标机型自己的配置逐项核对。
| 路径 | 内容 |
|---|---|
app/ |
设置应用与钩子:Java(hook/*)、Kotlin(ui/*)、C++(cpp/*,大师色彩引擎 master_*、柔光 soft_light*) |
module/ |
KSU 模块:脚本、payload/ 配置与资源、system/odm/lib64/ 库 |
tools/ |
资源生成与离线测试:mastercolor/(大师色彩)、softlight/(柔光权重)、symbols/(混淆符号特征)、offline_tests/ |
tools/refs.py |
仓库外参考资料的位置(可用 MUSE_REFS 修改根目录) |
docs/ |
MODULE.md:各功能的原理与涉及文件;DEV_NOTES.md:设备操作与排查 |
-
大师物理柔光“关闭对比度增强”:合入主线后的实机开关、不同柔光挡位成片与模式切换。
-
快启键指定模式:只用 adb 模拟快启键的 intent(
spruce_double_tap_launch_from_framework)验证了冷启动、热启动和记忆模式还原,未用实体键逐个模式验证。 -
导出日志:未在真机上走完系统保存对话框并检查 zip 内容;无 Root 授权时“重启相机”打开应用信息页的流程未验证。
-
曝光对齐:原厂只用了 LMTLut3(照度与色温参数实际在六张表间选择与混合);中性灰阶、主路径、无 lux blend;HNCS 的 intent / 色调曲线变体与 x7u 不在表内;未在真机上拍照核对对齐后的亮度。
-
大师色彩 Find X8 Ultra:直接用 X8U 原厂四张大师 LMT(PKJ110 17.0.0.104),依据是两机 LMT 输入编码(hybridraw 内置 gamma)与 ODT_Photo 逐字节相同;未核对两机 CCM 目标色域与测光灰点是否一致。X8U 的色温参数两节点(50 / 600)映射到本机三节点时中间节点取混合权重 0.591,最大权重误差 0.23。X8U 成片走
processCVTM_master而本机走 HDRT 主路径,下游渲染差异不在移植范围。均未上机拍照。 -
设置界面五个底栏页(主页、拍摄、大师色彩、大师滤镜、杂项)在真机上的显示:深色模式、状态卡配色、新画的底栏图标。
-
POP SDR 风格:成片是否与旧版 SDR 一致;前置 SDR 成片主图(NOP
0x24BE164后 BasicTone 的输入格式)和后置的滑杆回归。 -
前置普通拍照(非 POP)不受 POP 决策守卫影响;
unlock25mp变体里的同样守卫。 -
Ultra HDR 关闭时的人像与前置调色盘;调色盘与滤镜同时启用时的先后;夜景、专业、大师模式回归。
-
POP 在 1x、2x、10x 的全档位回归;
rear_ultra_tele全尺寸流在 POP 里是否被用到。 -
相册调色盘:保存后的成片、HDR 照片;相册滤镜列表里模块滤镜的出图。
-
相册编辑理光水印:在相册直接打开理光模式照片时的水印编辑、保存。
-
相册哈苏、LUMO、理光水印对所有照片开放(
WatermarkSeriesUnlock):相机照片三个系列已上机出现;截图等无 EXIF 机型的照片补本机厂商与市场名后的水印文字、理光水印在非理光照片上的参数行(全零 GRInfo)、保存未验证。 -
批量编辑水印(
BatchWatermark):已上机跑通 3 张添加哈苏水印(第一张前台选样式保存后回到桌面,其余在私有虚拟屏上各约 5 s 保存,实时通知显示进度与结果)。第一张选 ⊘ 的批量撤回也已上机(3 张恢复为无水印原图)。未验证:理光 GR 与个性画框样式的批量;几十张以上的长批量与中途锁屏;系统侧放行(ActivityTaskSupervisor.isCallerAllowedToLaunchOnDisplay)只在本机 ROM 上验证。相册默认保存模式下每张都另存为新文件。 -
大师水印滤镜名:模块滤镜与导入滤镜在成片水印、套用自定义预设后的水印上显示自己的名称。
-
移轴:前置、快录;调节模糊带位置与强度的交互。
-
相册详情点地址打开地图:腾讯地图的跳转(测试机未安装);只装一个地图应用时是否直接打开。
-
彩色 Fx 蓝(
master_fx_blue.h):只有 Post 槽阶段与离线测试(X9U DNG 中性显影样本与其合成变体,按 64³ 烘表查表出图),调节栏还没有条目,未上机;HLG 按 ARIB 标准曲线解码为显示线性 P3。 -
大师颗粒双尺:界面(双尺展开/收起、标题位置、重置)与各滤镜成片均未上机验证;800T 霓虹的默认大小 42 取自 MasterNeonGlow;预览是否跟随颗粒未验证;强度超过原厂值时的观感与 Meishe 颗粒量的有效上限未验证。
-
快速切换滤镜面板(
LegacyFilterPanel):大师模式与拍照模式已上机(打开、选中、拍照、点空白退出、整条 52 项滑到末尾、帧率);横屏下的上滑只按旋转换算推得、竖屏已上机;本机没有自定义预设,自定义预设显示预设名与套用其参数未验证;人像等其他带调色盘的模式、前置未验证;设置为“长按”“无”时的行为只经用户验收。 -
SeamlessBlurGuard的目标方法只在相机 7.006.103 的离线回放上唯一命中,未在真机上做 DexKit 解析。 -
柔光(
soft_light.cpp):只在大师模式、1x 主摄、室内台灯与日光灯下试拍;未试变焦、其他镜头、夜景点光源和逆光;预览纹理是 RGBA8 HLG,金字塔用 RGBA16F,只在本机 GPU 上跑过。成片 P010 按 BT.601 全范围解码(EMsYuvColorMatrix0 /EMsYuvRange1 的含义按枚举顺序推断)。HLG 与场景光之间用大师管线的中性灰轴曲线逐通道换算,LMT 的颜色部分与照度高于 280 时的色度混合未计入;HDF 当前模型(覆盖率 10%、散射约 20%、削顶光源按 2.6 倍真实亮度散射与直透、光晕按 28 mm 视场)只在大师模式 1x 室内台灯下试拍;2.6 只用一张台灯 RAWMax 标定(实测下限 1.8),未在晴天日光、夜景点光源与逆光下核对;画面边缘的光源经暗角后低于削顶点约 0.2–0.3 档,削顶判断未补暗角。5000 万像素黑柔约 4.5 s、HDF 约 2.5 s,在后台处理。白柔还没上机。 -
XPAN 显影实况:只在边框水印
hassel_style_xpan_1与烧写样式上看过相册播放和编辑器位置;其他边框样式的videoDisplayRect改写、不加水印时的实况、横拍未验证。 -
XPan 取景净化:大小取景框按遮罩框短边占屏幕短边的比例区分(大约 0.93、小约 0.67,阈值 0.8),只在本机竖屏两种取景框上测过;关闭显影动画后的收起与缩略图刷新未在连拍下验证。
本项目以 GPL-3.0 发布。Lumix、胶片、Canon、Darktable 等色彩引擎基于 PhotonCamera,胶片模拟来自 Spektrafilm。第三方来源及其许可见 NOTICE.md。