Skip to content

Releases: jiyin004-jpg/ommega

Ommega 1.7.8

Choose a tag to compare

@jiyin004-jpg jiyin004-jpg released this 24 Oct 10:53

1.7.8

A 端:

  • 伪装参数只保留启动哈希和启动补丁。
  • 「声明不支持 ID 认证」默认关闭,接管 SOTER 默认打开。
  • 全局作用域默认打开:普通应用都经模块处理,系统服务和系统组件仍走原来的后端。
  • 工程模式的密钥操作默认可用。

B 端:

  • 跟随补丁日期后不再立刻还原,同一调用方再次请求直接出链。
  • 面板新增「停止模块」「恢复并重启」两个按钮。
  • 状态目录独立到 /data/adb/ommega-b。
  • 「允许 adbr 远控」能正确拉起 adbrd。

1.7.7

Choose a tag to compare

@jiyin004-jpg jiyin004-jpg released this 22 Oct 14:30

1.7.7

  • 补丁日期跟随换成直改,开启后不再重启密钥服务,出证明显变快。
  • 签名时系统要求升级密钥会自动升级后继续,不再直接失败。
  • 「解锁后才能使用」这类约束现在会写进证书。
  • 带指纹、锁屏认证要求的密钥改在本机生成,授权信息完整。
  • 远程出证不再每次先探测网络。
  • 三端模块与中继服务换用更高效的分配器,多线程下更稳。

1.7.6

Choose a tag to compare

@jiyin004-jpg jiyin004-jpg released this 21 Oct 13:01

1.7.6 —— A 端模块、B 端模块与服务端同步发布。

A 端

  • SOTER 那几项不再报错了:设备号的返回格式和真机一致了,缺钥匙、缺会话时给出的提示码也对上了。
  • 只支持旧式接口的老平台,SOTER 不再反复失效。
  • 厂内工程模式那页的 SOTER key 检查也跟着正常了。
  • 联发科(Trustonic)机型上 SOTER 服务接管也正常了。
  • adbr 投屏在部分机型上连不上的问题修好了。
  • SOTER 签名偶尔会报错的问题修好了。
  • 跟随的设备离线时会自动换一台能用的,不再直接失败。
  • 本地兜底这条路真正跑通了:以前因为读不到设备序列号,整层一直没应答,现在能正常回答 App 的调用。
  • 日志收到一个位置,带上进程号,出问题时能看出是哪一环写的。
  • 部分高通机型(走 HIDL 的那类)上 SOTER 之前只接管到一半,相关检查会失败;现在补齐了,能正常通过。

服务端

  • 默认设备拆成两条链路:认证 / 签名 / 解密用一台,SOTER 用另一台,A 端留空时各找各的;请求自带 device_id 时仍按请求走。

产物

文件 字节
ommega-a-release-1.7.6.zip 27696409
ommega-b-release-1.7.6.zip 6417683
client-b-app-release.apk 4594048
relay_rs-linux-x86_64-musl 21398504
relay_rs-windows-x86_64-msvc.exe 16282624

1.7.5

Choose a tag to compare

@jiyin004-jpg jiyin004-jpg released this 21 Oct 12:40
  • SOTER getDeviceId 返回 16 字节原始值
  • AuthKey 未建时回 -6,未知 session 回 -1000,与真机 TA 一致

1.7.4

Choose a tag to compare

@jiyin004-jpg jiyin004-jpg released this 19 Oct 17:25

1.7.4

  • 指纹支付不再卡顿:真机取活的等待从数秒降到百毫秒以内。
  • 检测类应用的请求不再占用真机,改由手机本地处理,真机专供真正需要指纹支付的应用。
  • 指纹支付每次操作的延迟从 1 秒降到百毫秒级;偶发的“开通失败”已修掉。

1.7.3

Choose a tag to compare

@jiyin004-jpg jiyin004-jpg released this 19 Oct 14:02

1.7.3

  • SOTER 由模块自带的软件服务接管系统 SOTER 服务:原厂服务起不来时也能签,微信和工程模式里的 SOTER 状态跟着正常。
  • 面板里的开关就是「换掉系统 SOTER 服务」:关掉即恢复原厂,开机自动接管。
  • 修掉开启接管后 SOTER 宿主反复崩溃、以及 SOTER 服务反复重启导致微信指纹失败的问题;接管没生效时自动退回原厂。
  • 工程模式里的 Key 状态自检(Attestation key)在不开启全局作用域时也不再报失败。
  • 本地密钥页新增「修复 RKP」:一键给 persist 写设备 ID,原厂 TEE 的 RKP 就能用,工程模式里 RKP default 那行恢复正常。
  • 面板切页手势加入速度判定,短距离快速一滑也能翻页。

1.7.2

Choose a tag to compare

@jiyin004-jpg jiyin004-jpg released this 19 Oct 06:08

1.7.2

  • SOTER 改由模块自带的软件服务直接接管系统 SOTER 服务:原厂服务起不来时也能签,微信和工程模式里的 SOTER 状态跟着正常。
  • 面板里那个开关现在就是「换掉系统 SOTER 服务」:关掉即恢复原厂,开机自动接管,不需要手动操作。
  • 修掉开启接管后 SOTER 宿主反复崩溃的问题;接管没生效时自动退回原厂,不会把手机留在坏状态。

测试

Choose a tag to compare

@jiyin004-jpg jiyin004-jpg released this 18 Oct 13:47

测试

  • 设备 ID 留空不再报错、也不再落回本机软件链:请求照常发出,由服务端决定落到哪台 B —— 服务端配的「默认设备 ID」优先,没配就按负载挑一台在线的。装好默认就是留空,不再用 device-b-2 占位。
  • 服务端后台新增「默认设备 ID」设置,可以直接填某一台,也可以清空,重启后仍生效。
  • 面板的「从服务端同步」不再只依赖 curl:有的机器没带 curl,取不到状态就报不可达。
  • SOTER 开通反复失败(App 拿着旧的指纹状态缓存自删自建)时会自动重置一次:停应用、清掉它的 SOTER 缓存、清空 B 上该 uid 的料,不用再手工处理。
  • RSA 钥匙的认证不再失败:keybox 只有 EC 签发者时用它来签 RSA 叶子(检测器里 OAEP / PKCS#1 / PSS 那几项)。
  • 后台「默认设备 ID」的查询接口不再把整张在线设备表倒出来,只回配置值与在线总数。

产物

文件 大小 SHA256
ommega-a-release-1.7.1.zip(A 端,versionCode 1007032) 26946546 d1e0ccf2f64500d2f66e66b88463921273b5bdafb6bb22e50fca9ed84a7054e2
ommega-b-release-1.7.1.zip(B 端,未改动) 6383311 04f3ed3c9035083a9908f862a4b78dc0c5b6143bd502acde23f47abd14f0ff43
client-b-app-release.apk(B 端 App,未改动) 4594048 9067b4ddccba3d5fd3faef5058247e2cad9fa0427c0a6a73bfbfedc6199468a5
relay_rs-linux-x86_64-musl(服务端 Linux) 21263400 042c396585e10acc03a52be6d90e67b36bf578efa3c54907a86d2ef583e030bd
relay_rs-windows-x86_64-msvc.exe(服务端 Windows) 16217600 9418a9b69407e842463e0810704f62f79533486d27708d8750acc9ee682fb6ce

v1.7.1

Choose a tag to compare

@jiyin004-jpg jiyin004-jpg released this 16 Oct 08:11

1.7.1 —— A 端模块、B 端模块与服务端同步发布。
本次新增:B 端把自身版本号回报给服务端,状态页与 A 端面板能直接看到配对的那台跑的是哪一版;设备 ID 留空自动获取时,按启动补丁年份、版本、其他补丁日期的接近程度挑最合适的 B 端(versionCode:A=1007030、B=1007020)。
English readers: see CHANGELOG.en.md / CHANGELOG-B.en.md in the repository.

A 端

  • 面板的「当前」区块里多一行配对的 B 端:机器型号 + 它跑的版本号。
  • 设备 ID 留空自动获取时按启动补丁年份、版本、其他补丁日期、负载的顺序挑 B 端;只挑装了模块的 B 端,手机 App 那种不参与。
  • 状态页的设备列表改成自检通过的排前面、自检失败的排最后。
  • 面板改成跟手翻页:滑一下翻一页,顶部高亮跟着一起滑;深色模式下标签文字看得清了。
  • 关掉「允许 adbr 远控」时会把那条调试端口一起收掉,不用再重启手机。
  • 作用域里一个都不勾就真的不接管任何应用,不再退回默认那几个;面板也会区分「没配过」和「配成空的」,前者显示实际生效的默认范围。

B 端

  • relay 每次心跳带上自己的版本号,状态页与 A 端面板据此显示这台 B 端跑的是哪一版。
  • 补丁日期跟随在设备开机后还没解过锁时不再发作:这一笔按本机当前值出链,不写属性、不重启 keymint 和 keystore2,避免锁屏输对密码也解不开。
  • 关掉 adbr 远控时同样会把调试端口收掉。

服务端

  • 状态接口每台在线设备多 version 与 module 字段(模块 / 手机 App / 分不出来),状态页加了「版本」列并按自检结果排序。

产物

文件 大小 SHA256
client-b-app-release.apk 4594048 9067b4ddccba3d5fd3faef5058247e2cad9fa0427c0a6a73bfbfedc6199468a5
ommega-a-release-1.7.1.zip 26820750 75481616357fd9d26b6cf31d499c83c08f1d92ede555894a3d4e81231553694a
ommega-b-release-1.7.1.zip 6383311 04f3ed3c9035083a9908f862a4b78dc0c5b6143bd502acde23f47abd14f0ff43
relay_rs-linux-x86_64-musl 21160880 a0d804b34adf61dffede6c4bbe65232645b727349a402c18fa4dda31dc0d6699
relay_rs-windows-x86_64-msvc.exe 16198144 71d96def7c2e6c60a07a27068cb090f013b840474c322f84716231e4ad2d8f7d

(服务端两个二进制会自动更新,不参与版本号;A / B 模块包与 APK 以上表为准。)

v1.7.0

Choose a tag to compare

@jiyin004-jpg jiyin004-jpg released this 15 Oct 09:36

1.7.0 —— A 端模块、B 端模块与服务端同步发布(同版本号重发:包内 versionCode 与附件已更新)。
本次热修:守护单实例锁在进程号被复用后会把 keymint / relay 误判成「已有实例在跑」,守护静默起不来(面板却显示运行中);现在会认真实持有者、自行清锁重建(versionCode:A=1007025、B=1007017)。
English readers: see CHANGELOG.en.md / CHANGELOG-B.en.md in the repository.

A 端

  • 调用方没有唯一 ID 权限(REQUEST_UNIQUE_ID_ATTESTATION / keystore_key:gen_unique_id)却带 INCLUDE_UNIQUE_ID 时,整笔回权限错误,不再把这个 tag 摘掉让请求成功(那会被完整性检测读成「权限被绕过」)。
  • 客户端可见的报错文本里,源码路径归一成 AOSP 的相对路径(system/security/keystore2/src/...):完整性检测就是拿这个字符串判「软件转发」的,带 Windows 构建路径等于自曝。
  • 伪装参数页只留「哈希」和「启动补丁」两项:系统补丁与 vendor 补丁不再由面板改写,免得上报的日期跟机器实际状态对不上。
  • 上报的 vendor / boot 补丁级别改成规范要求的 8 位格式,走服务器密钥库出的链不再缺那个「日」。
  • 认证请求会带上本端版本号,B 端据此决定是否按本端声明的日期出链。
  • 守护脚本加了单实例锁:以前管理器把 service.sh 拉起多份时会各起一套 daemon / daemon-injector,两边每轮都会清掉对方的 keymint 影子,表现为认证时好时坏(日志里一串 exited with code 137)。

B 端

  • 新增「按 A 端声明的补丁日期出链」:开关 OMMEGA_RELAY_PATCHLEVEL_FOLLOW_A(默认关),开启后收到带日期的认证请求会先把日期落到本机、让 keymint 重读再出链。
  • 补丁日期跟着变时,弹完 keymint HAL 会接着把 keystore2 一起重启:HAL 换了进程之后 keystore2 手里那个句柄就是死的、它不会自己重连,不换掉它本机所有 App 的生成/签名都会回 SYSTEM_ERROR(4)(密钥认证 App 会报「无法认证」)。2026-10-15 在 PLC110 上就是这么坏的,重启 keystore2 立刻恢复。
  • 低于 1.7.0 的 A 端不参与:不带版本号的请求只按本机当前值处理,不碰属性、不重启服务。
  • 新增黑名单 OMMEGA_RELAY_PATCHLEVEL_SKIP_PKGS:名单里的包只按本机当前值出链;名单随心跳报给服务端,服务端连那一跳都不再发过来。
  • 面板分成「主页 / 黑名单」两页,黑名单页可以看、加、删包名。

服务端

  • 层序只有一条,从上到下:物理模式「真机 → 服务端密钥 → 服务端自签」,serverbox 模式「服务端密钥 → 真机 → 服务端自签」。
  • 命中 B 端黑名单的包,这次请求的 B 那一跳整个不走,直接落到服务端密钥层、从那儿往下处理。
  • 密钥层找身份:黑名单打下来的先看自动源槽位 device-b-2,再按请求里的设备 id;其他情况(serverbox 正常流程、普通失败后的兜底回落)先按请求里的 id;都没找到才挑一条能用的顶上,自动采集的那些优先。
  • 认证日志带上 tag 709 的包名,按请求方统计流量时能直接看。
  • 由密钥层铸出来的认证密钥,之后 App 用它签子密钥时也由这一层签:以前 sign 先问 B,B 回一句「没这个 alias」整条就被拒了,App 那边报 -33 Invalid key blob。现在只有我们这边确实没有那对私钥时才照原样退回。
  • B 端真机铸成了某个 alias,就把服务端同一个 alias 的旧会话删掉(那把私钥与 App 手里的叶证书已经不是一对,留着会签错)。

产物

文件 大小 SHA256
client-b-app-release.apk 4594048 438d09ecaa9d3df8f920fe0876dfc6ef68cb8bd5bcb8efa1d68fa10fa1d0efcf
keymint-hotswap 9876208 983629a943d5cf92ba2d7bfb613735a0691ae7cb71ace7eb452b82c817f23932
ommega-a-release-1.7.0.zip 26816122 e0c35ea04c6f174da036a7da3762cf5af39863246fdd74397d94fb367d963a40
ommega-b-release-1.7.0.zip 6382474 c72b1a4390002db2effcac3a282176e7879dc8dd365cd313d55c045a38e2323d
relay_rs-linux-x86_64-musl 21138744 ad6b324cd043fea7bf7e2d89cf86ca8e0f911ae288b89fe51f82b59c83fd84cc
relay_rs-windows-x86_64-msvc.exe 16188416 4c07722f0b7e8894e6fabc4e227b6547e8b29d8d382e4468bdf6f59c89e36ef4