5***@qq.com
5***@qq.com
  • 发布:2026-08-22 08:48
  • 更新:2026-08-22 10:38
  • 阅读:132

【报Bug】QQ模块 OpenSDK 3.5.17.3 将 libwbsafeedit_64 解到 files/ 再 System.load,vivo Android 17 预警;

分类:uni-app

【问题】
勾选 QQ 登录 / QQ 分享后,离线 SDK 会打入腾讯 OpenSDK:
open_sdk_3.5.17.3_r75955a58_lite.jar

该 JAR 把 native 库放在 assets(无 .so 后缀):

  • assets/libwbsafeedit
  • assets/libwbsafeedit_64
  • assets/libwbsafeedit_x86
  • assets/libwbsafeedit_x86_64

运行时拷到应用私有 files/ 再 System.load(),例如:
/data/user/0/<包名>/files/libwbsafeedit_64.so

files/ 默认可写。Android 17 Safer Native DCL 要求:targetSdkVersion >= 37 时,通过 System.load() 加载的 .so 必须只读,否则抛 UnsatisfiedLinkError。

vivo 开放平台已对含 QQ 模块的 UniApp 包发出预警(日志里文件名常被识别成 libvbsafeedit_64.so,实际是 libwbsafeedit_64)。公开栈也指向:
com.tencent.connect.auth.AuthDialog → System.load(.../files/libwbsafeedit.so)

【环境】

  • 产物:uni-app App-Android(CLI + 离线打包)
  • HBuilderX / 离线 SDK:5.24(Android-SDK@5.24.82669_20260813)
  • manifest:minSdkVersion 26,targetSdkVersion 34(尚未升到 37)
  • 模块:OAuth QQ + Share QQ
  • 对照:人脸插件 AP-FaceDetectModule 的 aar 不含上述 assets;去掉 QQ 模块后 APK 中这些文件消失

【预期】
QQ OpenSDK 在 System.load 前将 .so 设为只读(setReadOnly / chmod 0444),或按系统要求打进 APK lib/。请升级内置 QQ SDK(腾讯 OpenSDK 3.5.18+ 已做 16KB 对齐,请同步确认 Android 17 可写 so 问题)。

【实际】
当前 3.5.17.3 仍动态解到 files/ 后加载。targetSdk 34 仅为预警;升到 37 后 QQ 授权弹窗路径会崩溃。业务侧无法修改腾讯 JAR 内加载逻辑。

【复现】

  1. manifest 勾选 OAuth/Share 的 QQ
  2. 离线或云打包 Android
  3. 解压 APK,确认 assets/libwbsafeedit_64 存在
  4. 安装运行并走 QQ 登录;看 logcat / 应用 files/ 是否出现 libwbsafeedit_64.so
  5. 参考:https://developer.android.com/about/versions/17/behavior-changes-17#safer-native-dcl
2026-08-22 08:48 负责人:无 分享
已邀请:
7***@qq.com

7***@qq.com - 波罗蜜

也收到了vivo的预警,赶紧解决呀

要回复问题请先登录注册