#!/usr/bin/python

import os
import struct

RNDADDENTROPY = 0x40085203
import fcntl

def add_entropy(fd, data):
    add = struct.pack('ii', len(data)*8, len(data)) + data
    fcntl.ioctl(fd, RNDADDENTROPY, add)

if not os.path.isfile("/storage/.cache/random.data"):
    os.system("dd if=/dev/urandom of=/storage/.cache/random.data count=4 >/dev/null")

cache=os.open("/storage/.cache/random.data", os.O_RDONLY)

rnd=os.open("/dev/random", os.O_RDWR)

while True:
    data=os.read(cache, 512)
    if len(data) == 0:
        break
    add_entropy(rnd, data)
