转自酷安会者不难510
⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️
纯agent完成,无一行人工代码,验证仅做本地测试+codex review
⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️
根因
相册在构建 NAS 连接之前,需要通过 cryptoeng cmd 26 拿一个本地 prefix,用来做密钥派生(SHA-256(prefix + deviceId)),再用派生出的密钥解密本地存储的 access token 和 refresh token。问题是,系统底层的 cryptoeng 会检查调用进程,而 com.coloros.gallery3d 恰好被拒了。prefix 返回 null,token 解不出来,连接流程就此中断。
怎么修的
写了一个 LSPosed 模块,Hook 相册内部的 prefix 加载方法 com.oplus.aiunit.vision.erq.e()。逻辑很简单:原方法如果正常返回了 prefix,模块完全不介入;只有原方法返回空或 null 时,才从相册 APK 的 dex 字符串池里解析出正确的 prefix 并返回。
模块不碰 token,不碰 NAS 连接对象,不绕过飞牛服务端认证,只补回那个原本就该有的本地 prefix。后续的 token 解密、连接建立、照片同步都还是相册自己跑。
使用
安装签名后的 APK,LSPosed 里启用,作用域只选 com.coloros.gallery3d,强停相册或重启。日志里看到 prefix fallback supplied len=33 就说明生效了。
目前在 ColorOS 16 / Android 16 上验证可用。如果 OPPO 后续改了混淆类名或 token 派生方式,模块需要跟进适配。
One comment
看看滴!学生卡!打卡时间:04:12:18,请上车的乘客系好安全带~