Minska spelfördröjningen på Nexus 7 och andra enheter med Seeder Entropy Generator

Uppdatering: På grund av tvivelaktiga vinster och inneboende nackdelar rekommenderar vi att användare läser denna förklaring innan fortsättning.

Trots viss hårdvara av högsta klass, några avancerade Android-enheter verkar fortfarande ha problem med vissa spel. Det finns mods där ute för att fixa dessa fördröjningsproblem, eftersom den underliggande orsaken vanligtvis motsvarar något problem med att processorn inte fungerar till sin fulla kapacitet. Det finns nu en ny fix för Nexus 7 enheter för att minska spelfördröjningen.

Seniormedlem i XDA lambgx02 publicerade ursprungligen Seeder Entropy Generator för att stoppa eftersläpning på olika Android-enheter. Utgångspunkten var att den mesta spelfördröjningen orsakades av entropi. Som lambgx02 förklarar:

Så jag upplevde en betydande eftersläpning som vi alla gör då och då, och bestämde mig för att jag skulle gå till botten med det.

Efter att ha spårat och felsökt i timmar upptäckte jag källan till 90 % av Androids fördröjning. Med ett ord, entropi (eller brist på sådan).

Googles JVM, liksom Suns, läser från /dev/random. För all slumpmässig data. Ja, /dev/random som använder en mycket begränsad entropipool.

Slumpdata används för alla möjliga saker.. UUID-generering, sessionsnycklar, SSL.. när vi får slut på entropi blockeras processen. Det visar sig som eftersläpning. Processen kan inte fortsätta förrän kärnan genererar fler slumpmässiga data av hög kvalitet.

Så jag korskompilerade rngd och använde den för att mata in /dev/urandom till /dev/random med 1 sekunds intervall.

Resultatet av att åtgärda det här problemet är att spel fungerar mycket, mycket smidigare. XDA erkänd bidragsgivare bradman117 testade och bekräftade att det fungerade för Nexus 7 och publicerade där fler användare kan se det. Hittills har användare rapporterat utmärkta resultat. Installationen är också enkel, eftersom det är en enkel zip att flasha under återställning.

Men om du bestämmer dig för att ge det ett försök, var medveten om mycket riktiga varningar av minskad säkerhet på grund av sämre generering av slumptal, samt minskad batteritid. Som sagt av lambgx02:

  • Det finns en (teoretisk) säkerhetsrisk, genom att sådd /dev/random med /dev/urandom minskar kvaliteten på slumpdata. I praktiken är oddsen för att detta kommer att utnyttjas kryptografiskt långt lägre än oddsen för att någon attackerar själva operativsystemet (en mycket enklare utmaning).
  • Detta kan påverka batteriets livslängd negativt, eftersom det vaknar varje sekund. Den håller inte ett wakelock, så det borde inte ha någon större inverkan, men låt mig veta om du tror att det orsakar problem. Jag kan lägga till en blockerande läsning till koden så att den bara körs medan skärmen är på. Å andra sidan tillskriver många av oss fördröjning till bristande CPU-kraft. Eftersom detta hack eliminerar nästan all fördröjning finns det mindre behov av att överklocka, vilket kan minska batteriförbrukningen.

Medan lambgx02 uppger att risken att bli utnyttjad pga slumpmässigt -> slumpmässig sådd är låg, en ökad risk är för stor för en dagligt driven enhet i vår bok. Vi råder dock alla som är intresserade att fundera över detta på grund av de potentiella riskerna. Vi förstår dock varför vissa i hårt kontrollerade miljöer, där kryptografisk styrka inte är av stor betydelse, kanske vill ge detta en chans. För att se mer, kolla in Nexus 7-tråd så väl som original tråd.