Zmniejsz opóźnienia w grze na Nexusie 7 i innych urządzeniach dzięki generatorowi entropii siewnika

click fraud protection

Aktualizacja: Ze względu na wątpliwe korzyści i nieodłączne wady, zalecamy użytkownikom przeczytanie to wyjaśnienie przed kontynuowaniem.

Pomimo naprawdę najwyższej klasy sprzętu, niektóre wysokiej klasy urządzenia z Androidem nadal mam problemy z niektórymi grami. Istnieją mody, które naprawiają te problemy z opóźnieniami, ponieważ podstawowa przyczyna zwykle jest równa problemowi z procesorem, który nie pracuje z pełną wydajnością. Teraz dostępna jest nowa poprawka Nexus 7 urządzenia pomagające zmniejszyć opóźnienia w grze.

Starszy członek XDA lambgx02 pierwotnie opublikował generator entropii siewnika, aby zatrzymać opóźnienia na różnych urządzeniach z Androidem. Podstawowym założeniem było to, że większość opóźnień w grze jest spowodowana entropią. Jak wyjaśnia lambgx02:

Tak więc, jak wszyscy od czasu do czasu, doświadczyłem znacznych opóźnień, i zdecydowałem, że dojdę do sedna problemu.

Po wielu godzinach śledzenia i debugowania odkryłem źródło 90% opóźnień Androida. Jednym słowem entropia (lub jej brak).

Maszyna JVM Google, podobnie jak Sun, czyta z /dev/random. Dla wszystkich danych losowych. Tak, /dev/random, który używa bardzo ograniczonej puli entropii.

Losowe dane są wykorzystywane do wszelkiego rodzaju rzeczy.. Generowanie UUID, klucze sesji, SSL.. kiedy zabraknie nam entropii, proces się blokuje. Objawia się to opóźnieniem. Proces nie może być kontynuowany, dopóki jądro nie wygeneruje większej liczby losowych danych o wysokiej jakości.

Zatem skompilowałem krzyżowo rngd i użyłem go do wprowadzenia /dev/urandom do /dev/random w 1-sekundowych odstępach.

W wyniku rozwiązania tego problemu gry działają znacznie, znacznie płynniej. Uznany współtwórca XDA bradman117 przetestowałem i potwierdziłem, że działa na Nexusie 7, i opublikowano go tam, gdzie może go zobaczyć więcej użytkowników. Jak dotąd użytkownicy zgłaszali doskonałe wyniki. Instalacja jest również łatwa, ponieważ można ją łatwo flashować w celu odzyskania.

Jeśli jednak zdecydujesz się spróbować, pamiętaj o tym bardzo realne zastrzeżenia zmniejszonego bezpieczeństwa ze względu na gorszą generację liczb losowych, a także krótszą żywotność baterii. Jak stwierdził lambgx02:

  • Istnieje (teoretyczne) ryzyko bezpieczeństwa polegające na tym, że inicjowanie /dev/random za pomocą /dev/urandom zmniejsza jakość losowych danych. W praktyce szanse na wykorzystanie tego kryptograficznie są równe daleko niższe niż ryzyko, że ktoś zaatakuje sam system operacyjny (znacznie prostsze wyzwanie).
  • Może to niekorzystnie wpłynąć na żywotność baterii, ponieważ budzi się ona co sekundę. Nie posiada wakelocka, więc nie powinno mieć dużego wpływu, ale daj mi znać, jeśli uważasz, że to powoduje problemy. Mogę dodać odczyt blokujący do kodu, aby był wykonywany tylko wtedy, gdy ekran jest włączony. Z drugiej strony wielu z nas przypisuje opóźnienie brakowi mocy procesora. Ponieważ ten hack eliminuje prawie całe opóźnienia, potrzeba podkręcania jest mniejsza, co potencjalnie zmniejsza zużycie baterii.

Chociaż lambgx02 stwierdza, że ​​ryzyko bycia wykorzystanym z powodu ulosowość -> losowy zasiew jest niski, jakiekolwiek zwiększone ryzyko jest zbyt duże dla urządzenia napędzanego codziennie w naszej książce. Radzimy jednak wszystkim zainteresowanym, aby zastanowili się nad tym ze względu na potencjalne ryzyko. Rozumiemy jednak, dlaczego niektórzy w ściśle kontrolowanych środowiskach, gdzie siła kryptograficzna nie ma dużego znaczenia, mogą chcieć spróbować. Aby zobaczyć więcej, zajrzyj na Wątek dotyczący Nexusa 7 tak dobrze jak oryginalny wątek.