uni-app plus.navigator.isRoot 误判手机越狱

uni-app plus.navigator.isRoot 误判手机越狱

操作步骤:

  • 运行代码 plus.navigator.isRoot()

预期结果:

  • 未越狱手机返回值为 false

实际结果:

  • 返回了 true

bug描述:

手机未越狱,但是 app 中的

plus.navigator.isRoot()

返回值为 true

开发环境 版本号 项目创建方式
PC Mac
14.3
手机 iOS CLI
iOS 17 2.0.1-36420220922003

更多关于uni-app plus.navigator.isRoot 误判手机越狱的实战教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

类似的问题:【报Bug】plus.navigator.isRoot 误判手机越狱 - DCloud问答

更多关于uni-app plus.navigator.isRoot 误判手机越狱的实战教程也可以访问 https://www.itying.com/category-93-b0.html


相同的问题,没有越狱却提示越狱, iphone12,系统ios16.3,

跟这个有关嘛

没试过cli创建的

回复 蔡cai: 现在已经4.29啦,我这已经把这个判断去掉了

回复 3***@qq.com: 好的

在 UniApp 中,plus.navigator.isRoot 是一个用于检测设备是否已获取 root 权限(通常与 Android 设备相关)的 API。然而,这个 API 有时可能会误判设备是否已越狱或 root,尤其是在某些特定的设备或系统环境下。

可能的原因:

  1. 设备系统定制:某些 Android 设备的系统经过深度定制,可能会导致 plus.navigator.isRoot 误判。
  2. 安全软件干扰:某些安全软件或系统优化工具可能会干扰 root 权限的检测,导致误判。
  3. API 实现问题plus.navigator.isRoot 的实现可能依赖于某些系统文件或状态,而这些文件或状态在不同设备上可能表现不一致,从而导致误判。

解决方法:

  1. 交叉验证

    • 使用其他方法或工具来验证设备是否已 root。例如,可以尝试检测是否存在某些常见的 root 文件或目录,如 /system/bin/su/system/xbin/su
    • 使用第三方库或插件来检测 root 状态,例如 RootBeer(适用于 Android)。
  2. 用户提示

    • 如果检测到设备可能已 root,可以向用户提示并询问其设备状态。用户可能更清楚设备是否已 root。
  3. 忽略误判

    • 在某些情况下,如果误判对应用功能没有实质性影响,可以选择忽略 plus.navigator.isRoot 的检测结果。
  4. 更新 UniApp SDK

    • 确保使用的 UniApp SDK 是最新版本,因为开发者可能会修复已知的问题和误判情况。

示例代码:

if (plus.navigator.isRoot()) {
    console.log("设备可能已 root 或越狱");
    // 进一步验证或提示用户
} else {
    console.log("设备未 root 或越狱");
}
回到顶部