You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在已Root的Android设备上安装Haveged与RNGD?

在Root权限的Android设备上安装rngd与haveged指南

嘿,我来给你梳理下在root后的Android上装rngd和haveged的具体步骤——这俩工具都是用来补充系统熵池的:rngd靠硬件随机数生成器填充/dev/random,haveged则通过系统活动生成随机数,对需要高熵值的场景特别有用。

前置准备

  • 已经获取Root权限的Android设备
  • 可选但推荐:装个Termux(安卓端的终端模拟器,敲命令超方便)或者Magisk(用来装模块,实现开机自动运行服务)

方法一:通过Termux安装(最简单省心)

Termux自带完整的Linux包管理体系,几步就能搞定:

  1. 打开Termux,先更新软件源和已装包:
    pkg update && pkg upgrade
    
  2. 安装rng-tools(里面包含rngd):
    pkg install rng-tools
    
  3. 安装haveged:
    pkg install haveged
    
  4. 启动服务(记得加su切换到Root权限):
    • 启动rngd:不同设备的硬件随机设备路径可能不一样,常见的是/dev/hw_random,先试试这个:
      su -c rngd -r /dev/hw_random
      
      如果报错,用find /dev -name "*random*"找找你的设备对应路径,替换掉就行。
    • 启动haveged:-w参数用来设置熵池最低水位,设1024足够日常使用:
      su -c haveged -w 1024
      
  5. 设置开机自启:不想每次开机手动启动的话,在Magisk的/data/adb/service.d/目录下创建启动脚本:
    先创建脚本文件:
    su -c nano /data/adb/service.d/rngd_haveged.sh
    
    粘贴以下内容:
    #!/system/bin/sh
    rngd -r /dev/hw_random &
    haveged -w 1024 &
    
    保存退出后给脚本加执行权限:
    su -c chmod 755 /data/adb/service.d/rngd_haveged.sh
    
    下次开机就会自动启动这俩服务啦。

方法二:通过Magisk模块安装(无需Termux)

如果不想折腾终端命令,用Magisk模块是最省事的选择:

  1. 找一个适配你设备架构(比如arm64、armv7)的rngd+haveged Magisk模块包
  2. 打开Magisk Manager,进入「模块」页面,点击「从本地安装」,选中下载的模块压缩包
  3. 重启设备,模块会自动把工具集成到系统,开机后自动启动服务
  4. 验证是否运行:打开终端(或Magisk内置终端)输入以下命令,能看到对应进程就说明没问题:
    su -c ps | grep -E "rngd|haveged"
    

方法三:手动编译安装(适合自定义需求)

如果你的设备架构比较特殊,上面的方法都不适用,就自己编译源码:

  1. 先在Termux里安装编译工具链:
    pkg install clang make autoconf automake libtool
    
  2. 下载rng-tools和haveged的官方源代码包
  3. 编译rng-tools:
    解压源码包后进入目录,配置编译环境(--host参数要对应你的设备架构,比如arm64用aarch64-linux-android,armv7用arm-linux-androideabi):
    tar xvf rng-tools-x.x.x.tar.gz
    cd rng-tools-x.x.x
    ./configure --host=aarch64-linux-android
    make
    su -c make install
    
  4. 编译haveged的步骤和上面类似:
    tar xvf haveged-x.x.x.tar.gz
    cd haveged-x.x.x
    ./configure --host=aarch64-linux-android
    make
    su -c make install
    
  5. 启动和自启设置和方法一一致即可。

小提示

  • 验证熵池效果:可以用cat /proc/sys/kernel/random/entropy_avail查看当前熵池大小,启动haveged后数值应该会快速上升到较高水平
  • 如果rngd启动失败,大概率是硬件随机设备路径不对,多找找设备里的*random*设备文件就行

内容的提问来源于stack exchange,提问作者user243084

火山引擎 最新活动