【问题标题】:Low entropy on AndroidAndroid 上的低熵
【发布时间】:2013-06-27 10:17:46
【问题描述】:

每当 android 中的熵池变少时,我们可以很容易地观察到设备的迟缓现象,但我在 linux (ubuntu) 上看不到类似的行为。我在两者中都使用 2GB 内存。 为什么熵池对设备的性能有如此大的影响? 我们如何确保熵池始终处于高位?

您可以通过执行以下命令来验证这一点

$adb shell cat /proc/sys/kernel/random/entropy_avail

【问题讨论】:

  • 我不确定这是否与编程有关...
  • 当然,我们需要以更好的方式管理熵。为什么你认为这与编程无关?
  • 您的问题更多的是与操作系统实现相关,而不是与实际编程相关。您不是在询问熵本身,而是在询问如何在特定操作系统中管理熵。恕我直言,此类问题与编程无关:)

标签: android linux entropy


【解决方案1】:

从大量阅读和帮助中我得到了以下有用的信息

首先除了来自

http://hackaday.com/2013/01/04/is-entropy-slowing-down-your-android-device/

当应用向在设备最低级别运行的 Linux 内核请求随机数时。 Android 设置为对所有随机数请求使用 /dev/random,但 [Lambgx02] 表示该位置的可用数字池非常浅。当它们用完时,内核必须重新加载一个新的种子,这会阻止请求数据的应用程序继续运行。

他的解决方案是编写自己的应用程序,使用 /dev/urandom 中的数字每秒播种一次 /dev/random。他提到这可能会导致安全漏洞,因为以这种方式播种随机数据并不那么随机。电池寿命也可能存在问题,因此请务必在尝试时监控性能。

然后查看以下谷歌问题

https://code.google.com/p/android/issues/detail?id=42265

我了解到 Gingerbread 确实存在 google 工程师所说的问题,但后来解决了。而android Random和SecureRandom使用/dev/urandom

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    • 2015-01-14
    • 1970-01-01
    • 2019-02-07
    • 2012-08-08
    • 1970-01-01
    相关资源
    最近更新 更多