Μειώστε την καθυστέρηση παιχνιδιού στο Nexus 7 και σε άλλες συσκευές με το Seeder Entropy Generator

Εκσυγχρονίζω: Λόγω αμφισβητήσιμων κερδών και εγγενών μειονεκτημάτων, συνιστούμε στους χρήστες να διαβάσουν αυτή η εξήγηση πριν προχωρήσετε.

Παρά κάποιο πραγματικά κορυφαίο υλικό, μερικές συσκευές Android υψηλής τεχνολογίας ακόμα φαίνεται να αντιμετωπίζω προβλήματα με κάποια παιχνίδια. Υπάρχουν mods εκεί έξω για να διορθωθούν αυτά τα προβλήματα καθυστέρησης, καθώς η υποκείμενη αιτία συνήθως ισοδυναμεί με κάποιο πρόβλημα με τον επεξεργαστή να μην λειτουργεί στην πλήρη χωρητικότητά του. Υπάρχει τώρα μια νέα επιδιόρθωση για Nexus 7 συσκευές που βοηθούν στη μείωση της καθυστέρησης του παιχνιδιού.

Ανώτερο μέλος του XDA lambgx02 δημοσίευσε αρχικά το Seeder Entropy Generator για να σταματήσει το lag σε διάφορες συσκευές Android. Η βασική προϋπόθεση ήταν ότι το μεγαλύτερο μέρος της καθυστέρησης του παιχνιδιού προκλήθηκε από την εντροπία. Όπως εξηγεί το lambgx02:

Έτσι, αντιμετώπιζα σημαντική υστέρηση, όπως όλοι μας κατά καιρούς, και αποφάσισα ότι επρόκειτο να φτάσω στο κάτω μέρος της.

Μετά από ανίχνευση και εντοπισμό σφαλμάτων για ώρες, ανακάλυψα την πηγή του 90% της καθυστέρησης του Android. Με μια λέξη, εντροπία (ή έλλειψη αυτής).

Το JVM της Google, όπως και της Sun, διαβάζει από /dev/random. Για όλα τα τυχαία δεδομένα. Ναι, το /dev/random που χρησιμοποιεί πολύ περιορισμένη ομάδα εντροπίας.

Τα τυχαία δεδομένα χρησιμοποιούνται για όλα τα είδη.. Δημιουργία UUID, κλειδιά περιόδου λειτουργίας, SSL.. όταν τελειώνει η εντροπία, η διαδικασία μπλοκάρει. Αυτό εκδηλώνεται ως καθυστέρηση. Η διαδικασία δεν μπορεί να συνεχιστεί έως ότου ο πυρήνας δημιουργήσει περισσότερα τυχαία δεδομένα υψηλής ποιότητας.

Έτσι, έκανα cross-compile το rngd και το χρησιμοποίησα για να τροφοδοτήσω το /dev/urandom στο /dev/random σε διαστήματα 1 δευτερολέπτου.

Το αποτέλεσμα της επίλυσης αυτού του προβλήματος είναι ότι τα παιχνίδια τρέχουν πολύ, πολύ πιο ομαλά. Αναγνωρισμένος συντελεστής XDA μπράντμαν117 δοκίμασε και επιβεβαίωσε ότι λειτουργεί για το Nexus 7 και δημοσιεύτηκε όπου μπορούν να το δουν περισσότεροι χρήστες. Μέχρι στιγμής, οι χρήστες έχουν αναφέρει εξαιρετικά αποτελέσματα. Η εγκατάσταση είναι επίσης εύκολη, καθώς είναι ένα απλό φερμουάρ για να αναβοσβήνει στην ανάκτηση.

Ωστόσο, εάν αποφασίσετε να το δοκιμάσετε, θα πρέπει να γνωρίζετε το πολύ πραγματικές επιφυλάξεις μειωμένη ασφάλεια λόγω κατώτερης παραγωγής τυχαίων αριθμών, καθώς και μειωμένης διάρκειας ζωής της μπαταρίας. Όπως αναφέρεται από το lambgx02:

  • Υπάρχει ένας (θεωρητικός) κίνδυνος ασφάλειας, καθώς η σπορά του /dev/random με /dev/urandom μειώνει την ποιότητα των τυχαίων δεδομένων. Στην πράξη, οι πιθανότητες να γίνει κρυπτογραφική εκμετάλλευση είναι μακριά χαμηλότερες από τις πιθανότητες να επιτεθεί κάποιος στο ίδιο το λειτουργικό σύστημα (μια πολύ πιο απλή πρόκληση).
  • Αυτό μπορεί να επηρεάσει αρνητικά τη διάρκεια ζωής της μπαταρίας, καθώς αφυπνίζεται κάθε δευτερόλεπτο. Δεν συγκρατεί ένα wakelock, επομένως δεν θα πρέπει να έχει μεγάλο αντίκτυπο, αλλά ενημερώστε με εάν πιστεύετε ότι προκαλεί προβλήματα. Μπορώ να προσθέσω μια ανάγνωση αποκλεισμού στον κώδικα, ώστε να εκτελείται μόνο όταν η οθόνη είναι ενεργοποιημένη. Από την άλλη πλευρά, πολλοί από εμάς αποδίδουμε υστέρηση στην έλλειψη ισχύος CPU. Δεδομένου ότι αυτό το hack εξαλείφει σχεδόν όλες τις καθυστερήσεις, υπάρχει λιγότερη ανάγκη για overclock, μειώνοντας ενδεχομένως την κατανάλωση μπαταρίας.

Ενώ η lambgx02 δηλώνει ότι ο κίνδυνος εκμετάλλευσης λόγω του τυχαίο -> τυχαίος Η σπορά είναι χαμηλή, οποιοσδήποτε αυξημένος κίνδυνος είναι υπερβολικός για μια καθημερινή συσκευή στο βιβλίο μας. Ωστόσο, συμβουλεύουμε όλους όσους ενδιαφέρονται να το σκεφτούν ξανά, λόγω των πιθανών κινδύνων. Ωστόσο, καταλαβαίνουμε γιατί ορισμένοι σε έντονα ελεγχόμενα περιβάλλοντα, όπου η κρυπτογραφική ισχύς δεν είναι μεγάλης σημασίας, μπορεί να θέλουν να το δώσουν μια ευκαιρία. Για να δείτε περισσότερα, ρίξτε μια ματιά στο Νήμα Nexus 7 καθώς και η αρχικό νήμα.