Android 生根设备的广播接收器

Android Broadcast receiver for rooting device

我使用 RootTools 库和 RootTools.isRootAvailable() 函数来了解设备是否已获得 root 权限。我在 phone 在广播接收器中启动时使用它。如果设备已获得 root 权限,我会删除所有安全数据。
不久前,我看过视频,其中用户在安装 3 个应用程序并在其中进行一些操作后获得了 phone 的 root 权限。有趣的是,他拥有 SU 权限,并且无需重新启动他的 phone 就可以看到所有 aps 数据。 我的问题是我们如何在 phone 中保护我们的应用程序数据,也许 Android 有根访问权限的广播接收器,也许我必须收听其他一些接收器集合,或者我们必须生成将检查根访问权限的服务期间?

  • 没有事件(广播或其他)告诉您 'The device has been rooted right now'。即使它存在,也很容易击败:只需在 root 之前强制停止该应用程序。顺便说一下,这也会阻止您的应用程序接收 BOOT_COMPLETED 事件。

  • 没有针对 root 设备的明确保护。您不能相信受感染的系统会告诉您它已被感染。

我能想到的最佳解决方案是

  1. 加密您心爱的数据,因此没有密钥它们将毫无用处。
  2. 每次您需要它们时,在内存中解密它们之前,尝试获取系统是否安全的线索。

这就留下了hiding the secret key的问题(如果你不想问用户的话)