Android Entropy Generator

 Veröffentlicht von  Google+
Jan 042013
 

hmmm…. looks promising. Muss ich mal mit einem älteren/schwächeren Device testen, mit dem Nexus4 hab ich aufgrund der Hardware nicht mehr diese Lags.

So, I was experiencing significant lag as we all do from time to time, and decided I was going to get to the bottom of it. After tracing and debugging for hours, I discovered the source of 90% of Android's lag. In a word, entropy (or lack thereof).

Google's JVM, like Sun's, reads from /dev/random. For all random data. Yes, the /dev/random that uses a very limited entropy pool.

Random data is used for all kinds of stuff.. UUID generation, session keys, SSL.. when we run out of entropy, the process blocks. That manifests itself as lag. The process cannot continue until the kernel generates more high quality random data. So, I cross-compiled rngd, and used it to feed /dev/urandom into /dev/random at 1 second intervals.

Result? I have never used an Android device this fast. It is literally five times faster in many cases. Chrome, maps, and other heavy applications load in about 1/2 a second, and map tiles populate as fast as I can scroll. Task switching is instantaneous. You know how sometimes when you hit the home button, it takes 5-10 seconds for the home screen to repopulate? Yeah. Blocking on read of /dev/random. Problem solved. But don't take my word for it .. give it a shot!

INFO / APP kostenlos hier: http://forum.xda-developers.com/showthread.php?t=1987032&nocache=1
Wer Automatische Updates & den DEV supporten möchte, zieht sich die App aus dem Market.

Google+: View post on Google+

  Eine Antwort zu “Android Entropy Generator”

  1. Die APK startet übrigens nur einen Service – auf Wunsch auch automatisch beim Booten. Allerdings ist die App danach nicht mehr in der Lage festzustellen ob der Dienst gerade läuft, weswegen es beim erneuten Start der App so aussieht als wäre er derzeit inaktiv, obwohl er das nicht ist. 

    Startet man den Service trotzdem erneut, laufen dann im Hintergrund 2 Prozesse, was unnötig ist.

    Um zuverlässig zu überprüfen ob der Dienst läuft, muss man derzeit leider noch einen Terminal Emulator bemühen:
    ps | grep rngd

 Antworten

Du kannst diese HTML Tags und Attribute benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(Pflichtfeld)

(Pflichtfeld)