Skip to content

About

OmniCam Muse: KernelSU module and settings app for Find X9 Ultra (PMA110)

Resources

Stars

54 stars

Watchers

0 watching

Forks

Repository files navigation

OmniCam Muse

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 .cube LUT,配置可备份与恢复。

光学模拟

  • 大师物理柔光:三挡柔光分别替换为实体滤镜的光学模拟:弱挡 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。

  1. 构建得到 OmniCam-Muse-<版本>-KSU.zip(见"构建")。
  2. 在 KernelSU 管理器中刷入模块(ID ricoh_pop_x9u)并重启。模块自带设置应用(包名 local.jiege.camera),刷入时一并安装。
  3. 在 LSPosed 中启用 OmniCam Muse,作用域勾选系统框架、相机、相册。
  4. 强制停止相机后重新打开。

设置入口在桌面的 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.ps1

build.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 全范围解码(EMsYuvColorMatrix 0 / EMsYuvRange 1 的含义按枚举顺序推断)。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。

About

OmniCam Muse: KernelSU module and settings app for Find X9 Ultra (PMA110)

Resources

Stars

54 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages