Πώς να επιβάλετε την ανίχνευση λέξεων-κλειδιών «OK Google» να λειτουργεί όταν η οθόνη είναι απενεργοποιημένη σε οποιαδήποτε συσκευή [Root]

Αυτό είναι ένα σεμινάριο για το πώς να αναγκάσετε οποιαδήποτε συσκευή με ρίζες να ενεργοποιήσει τον εντοπισμό λέξεων-κλειδιών OK Google, ακόμα κι αν το υλικό της δεν υποστηρίζει τη δυνατότητα!

Όταν ανακοινώθηκε για πρώτη φορά το Moto X (2013), ένα από τα πιο συναρπαστικά χαρακτηριστικά (εκτός από την Ambient Display) ήταν η ικανότητά του να ξυπνά με φωνητικές εντολές.

Αργότερα εισήχθη στις συσκευές Google Nexus και τώρα διατίθεται σε πολλές ναυαρχίδες, η δυνατότητα αναγνώρισης λέξης-κλειδιού είναι μια πολύ φοβερή λειτουργία για όταν χρειάζεται να κάνετε μια γρήγορη αναζήτηση στο Google χωρίς να ψάξετε με τη συσκευή που έχετε χέρια. Αυτό μπορεί να είναι εξαιρετικά χρήσιμο όταν έχετε τοποθετήσει το τηλέφωνό σας στο αυτοκίνητό σας και πρέπει να ξεκινήσετε την πλοήγηση προς έναν συγκεκριμένο προορισμό. Είναι πολύ πιο ασφαλές να χρησιμοποιήσετε τη φωνή σας για να ξεκινήσετε την πλοήγηση στους Χάρτες Google από οποιαδήποτε άλλη εναλλακτική.

Δυστυχώς, η δυνατότητα ενεργοποίησης εντολών "OK Google" ανά πάσα στιγμή απαιτεί ένα ειδικό, χαμηλής ισχύος τσιπ αναγνώρισης φωνής στη συσκευή σας. Ενώ αυτό το υλικό υπάρχει σε πολλές συσκευές, δεν υπάρχει σε όλες. Ακόμη και ισχυρές, ακριβές ναυαρχίδες όπως το Huawei Mate 9 δεν προσφέρουν αυτήν την προσφορά. Για συσκευές όπως η δική μου, η Google προσφέρει τη δυνατότητα ενεργοποίησης φωνητικών εντολών "OK Google" ενώ η οθόνη είναι ενεργοποιημένη ή όταν η συσκευή είναι συνδεδεμένη σε φορτιστή.

Πριν από μερικά χρόνια, υπήρχε μια εφαρμογή με το όνομα Ανοίξτε το Mic+ για το Google Now που είχε την επιλογή να ενεργοποιήσει μια υπηρεσία παρασκηνίου για να ακούει φωνητικές εντολές ανά πάσα στιγμή. Δυστυχώς, η Google ζήτησε από τον προγραμματιστή να σταματήσει να χρησιμοποιεί την υπηρεσία και ο προγραμματιστής δεν είχε πλέον χρόνο για να υποστηρίξει αυτήν την εφαρμογή, οπότε έπεσε στην άκρη. Η μόνη υπάρχουσα επιλογή είναι η χρήση AutoVoice, ένα δημοφιλές πρόσθετο Tasker, αλλά αυτό απαιτεί να έχετε αρκετές γνώσεις Tasker για να δημιουργήσετε προφίλ ώστε να ανταποκρίνονται σε συγκεκριμένες εντολές.

Για όσους από εσάς θα προτιμούσαν να βασίζονται στην υπηρεσία αναγνώρισης φωνής της Google, βρήκα μια λύση που ενεργοποιεί τον εντοπισμό λέξεων-κλειδιών "OK Google" σε οποιαδήποτε συσκευή με root, ακόμα κι αν το υλικό της δεν την υποστηρίζει. Υπάρχουν δύο επιφυλάξεις σε αυτό το κόλπο, το οποίο θα συζητήσουμε αναλυτικά παρακάτω.


Ανίχνευση λέξεων-κλειδιών "OK Google" σε οποιαδήποτε συσκευή

Η ερώτηση που έκανα στον εαυτό μου όταν σκεφτόμουν μια λύση σε αυτό το πρόβλημα ήταν:

Πώς μπορώ να εξαπατήσω τη συσκευή μου για να ενεργοποιήσει την υπηρεσία αναγνώρισης λέξης πρόσβασης στην εντολή μου;

Εφόσον το τρέχον τηλέφωνό μου δεν υποστηρίζει εγγενώς τον εντοπισμό λέξεων-κλειδιών όταν η οθόνη είναι απενεργοποιημένη, οι μόνες προϋποθέσεις για να λειτουργήσει αυτό θα ήταν όταν η οθόνη του τηλεφώνου μου είναι ενεργοποιημένη ή όταν φορτίζει. Φυσικά, δεδομένου ότι ο στόχος μου είναι να ενεργοποιήσω την ανίχνευση λέξεων-κλειδιών ανά πάσα στιγμή (ακόμα και όταν η οθόνη είναι απενεργοποιημένη), το να είναι ενεργοποιημένη η οθόνη θα ανατρέψει αυτόν τον σκοπό. Το να πρέπει να αφήσω τη συσκευή μου στην πρίζα θα ήταν επίσης άσκοπο στην προσπάθειά μου, αλλά τι θα γινόταν αν μπορούσα τέχνασμα η συσκευή μου πληροί οποιαδήποτε από αυτές τις δύο προϋποθέσεις;

Ευτυχώς, με λίγη ριζική μαγεία και έξυπνη χρήση εντολών εντοπισμού σφαλμάτων, αυτό είναι πολύ δυνατό! Χρησιμοποιώντας μια εντολή κελύφους εντοπισμού σφαλμάτων που προορίζεται για δοκιμαστικούς σκοπούς, μπορώ να το κάνω ξεγελάω τη συσκευή μου ώστε να νομίζει ότι φορτίζει παρόλο που είναι αποσυνδεδεμένο από οποιαδήποτε πηγή ρεύματος. Η εντολή που θα εκμεταλλευτούμε για τους σκοπούς μας είναι dumpsys battery, τις παραμέτρους των οποίων μπορείτε να διαβάσετε στο αυτή η ανάρτηση ιστολογίου από τον Roman Mazur.

Σημείωση: αυτό το κόλπο είναι απολύτως ασφαλής κανω. Όπως αναφέρθηκε, αυτή η εντολή ΞΕΠΑΠΑΕΙ μόνο τη συσκευή σας ώστε να νομίζει ότι φορτίζει. Στην πραγματικότητα ΔΕΝ φορτίζεται, ακόμα κι αν οι εφαρμογές παρακολούθησης μπαταρίας λένε διαφορετικά (αυτό συμβαίνει επειδή αυτές οι εφαρμογές θα τροφοδοτούνται με εσφαλμένες πληροφορίες.)

Ιδιαίτερης σημασίας είναι η dumpsys battery set εντολή, η οποία δέχεται παραμέτρους για να ορίσει εάν η συσκευή φορτίζεται ή όχι μέσω AC, USB ή ασύρματης φόρτισης. Για παράδειγμα, αν ανοίξουμε ένα ριζικό κέλυφος στο Android και εισάγουμε την ακόλουθη εντολή, το η συσκευή θα νομίζει ότι φορτίζεται μέσω εναλλασσόμενου ρεύματος.

su
dumpsys battery set ac 1

Ορίζοντας αυτήν την εντολή (ή την εντολή για USB/ασύρματη φόρτιση), θα μπορείτε πλέον ενεργοποιήστε τις εντολές OK Google ενώ η οθόνη σας είναι απενεργοποιημένη. Αυτό συμβαίνει επειδή για όλες τις προθέσεις και τους σκοπούς, η συσκευή σας "φορτίζεται" - πληροί τις απαιτήσεις για την ενεργοποίηση της υπηρεσίας αναγνώρισης λέξεων-κλειδιών της Google.

Δεδομένου ότι αυτή είναι μια εντολή που προορίζεται για εντοπισμό σφαλμάτων (προορίζεται κυρίως για προγραμματιστές να δοκιμάσουν τη λειτουργικότητα υπό διαφορετικές συνθήκες μπαταρίας), έχει ορισμένα μειονεκτήματα όταν χρησιμοποιείται με αυτόν τον τρόπο. Δύο μειονεκτήματα, συγκεκριμένα, στα οποία θα αναφερθούμε στη συνέχεια. Το πρώτο μειονέκτημα είναι μάλλον ασήμαντο για να το αντιμετωπίσετε, αλλά δεν μπορούμε να πούμε το ίδιο για το δεύτερο μειονέκτημα.

Μειονέκτημα #1 - Ένδειξη παγωμένης μπαταρίας

Αφού εισαγάγετε οποιαδήποτε εντολή "dumpsys battery set", η υπηρεσία BatteryManager του Android θα το κάνει σταματήστε αμέσως τη συλλογή τυχόν περαιτέρω δεδομένα σχετικά με την κατάσταση της μπαταρίας σας. Αυτό σημαίνει ότι το επίπεδο της μπαταρίας, η θερμοκρασία, το ρεύμα, η τάση και η υγεία σας δεν θα αναφέρονται πλέον από το σύστημα Android. Αντίθετα, θα "παγώσουν" εγκαίρως τη στιγμή που πληκτρολογήσατε την εντολή.

Ωστόσο, αυτά τα δεδομένα είναι συλλέγονται ακόμη από το σύστημα ακόμα κι αν είναι προσβάσιμο από οποιαδήποτε εφαρμογή. Εάν θέλετε να λάβετε ενημέρωση σχετικά με το επίπεδο της τρέχουσας μπαταρίας σας, θα χρειαστεί να κάνετε κάποια κόλπα. Ευτυχώς, τα δεδομένα είναι αρκετά εύκολο να αντληθούν. Εάν έχετε Tasker ή άλλη εφαρμογή αυτοματισμού, το μόνο που χρειάζεται να κάνετε είναι να δημιουργήσετε μια ειδοποίηση που ενημερώνεται με ένα πάτημα με το τρέχον κείμενο αποθηκευμένο στο /sys/class/power_supply/battery/capacity.

Στο παραπάνω στιγμιότυπο οθόνης, η ένδειξη της μπαταρίας μου (που είναι ορατή όταν κατεβάζω τη γραμμή κατάστασης) έχει κολλήσει στο 70%, αλλά όπως μπορείτε να δείτε στον ακροδέκτη, το πραγματικό επίπεδο της μπαταρίας μου είναι 69%. Θα ήταν εύκολο να κάνω τακτικά δημοσκόπηση αυτού του αρχείου για να δημοσιεύω ένα ακριβές επίπεδο μπαταρίας στη γραμμή ειδοποιήσεών μου, αλλά υπάρχει ένας ακόμα πιο εύκολος τρόπος για να αντιμετωπίσετε αυτό το πρόβλημα.

Η αντιμετώπιση αυτού του συγκεκριμένου μειονέκτημα είναι πραγματικά απίστευτα ασήμαντο. Αν το σκεφτείτε, αυτό το ζήτημα εμφανίζεται μόνο όταν είναι ενεργοποιημένη η εντολή και όταν η οθόνη είναι ενεργοποιημένη. Αλλά το θέμα είναι ότι δεν χρειάζεται να έχετε ενεργοποιημένη αυτήν την εντολή όταν η οθόνη είναι ενεργοποιημένη, επειδή η προεπιλεγμένη λειτουργία σάς επιτρέπει να έχετε πρόσβαση στις εντολές "OK Google" όταν η οθόνη είναι ενεργοποιημένη. Έτσι, το μόνο που χρειάζεται να κάνετε είναι απλά απενεργοποιήστε αυτήν την εντολή όταν η οθόνη είναι ενεργοποιημένη. Η χρήση του Tasker ή άλλης εφαρμογής αυτοματισμού θα ήταν πιθανώς ο απλούστερος τρόπος. Απλώς εκτελέστε αυτήν την εντολή για να απενεργοποιήσετε το τέχνασμα:

dumpsys battery reset

Και παρακάτω θα βρείτε την περιγραφή των δύο προφίλ Tasker που θα πρέπει να ρυθμίσετε για να εκτελέσετε αυτήν την εντολή όταν η οθόνη είναι απενεργοποιημένη αλλά να την απενεργοποιήσετε όταν η οθόνη είναι ενεργοποιημένη. Ουσιαστικά, θα δημιουργήσετε δύο περιβάλλοντα "Εκδήλωση", το ένα από τα οποία είναι το Συμβάν "Απενεργοποίηση εμφάνισης" ενώ το άλλο είναι το Συμβάν "Εμφάνιση ξεκλειδωμένο". Το Task για το συμβάν "Display Off" θα έχει μία μόνο ενέργεια, Code-->Run Shell με την εντολή dumpsys battery set ac 1. Το Task για το συμβάν "Display Unlocked" θα έχει επίσης μία ενέργεια σε αυτό, Code-->Run Shell με την εντολή dumpsys battery reset. Έτσι, το Tasker θα εκτελέσει την εντολή για να ξεγελάσει τη συσκευή σας ώστε να πιστεύει ότι φορτίζει ενώ η οθόνη είναι απενεργοποιημένη (προφίλ: Ενεργοποίηση Hotword Detection) και εκτελέστε την εντολή για να απενεργοποιήσετε αυτό το τέχνασμα όταν το τηλέφωνο είναι ξεκλείδωτο (προφίλ: Απενεργοποίηση του Hotword Detection).

[καρτέλες][καρτέλα τίτλος ="Ενεργοποίηση ανίχνευσης λέξεων-κλειδιών"]

Profile: Enable Hotword Detection (180)
Event: Display Off
Enter: Anon (182)
A1: Run Shell [ Command: dumpsys battery set ac 1Timeout (Seconds):0Use Root:OnStoreOutputIn: StoreErrorsIn: StoreResultIn: ]

[/tab][καρτέλα τίτλος ="Απενεργοποίηση ανίχνευσης λέξεων-κλειδιών"]

Profile: Disable Hotword Detection (191)
Event: Display Unlocked
Enter: Anon (192)
A1: Run Shell [ Command: dumpsys battery resetTimeout (Seconds):0Use Root:OnStoreOutputIn: StoreErrorsIn: StoreResultIn: ]

[/αυτί]

[/tabs]

Μειονέκτημα #2 - Αυξημένη εξάντληση της μπαταρίας

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

Αλλά αυτό δεν συμβαίνει εδώ, επομένως η ενεργοποίηση αυτής της εντολής θα έχει ως αποτέλεσμα την αυξημένη εξάντληση της μπαταρίας. Από την εμπειρία μου που άφησα τη συσκευή μου σε αυτήν την κατάσταση κατά τη διάρκεια της νύχτας, το Mate 9 μου αποστραγγίστηκε Μπαταρία 12% σε διάστημα 8 ωρών.

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


συμπέρασμα

Ελπίζω να σας φανεί χρήσιμο αυτό το κόλπο. Σίγουρα δεν είναι για όλους, αλλά αν θέλετε ποτέ να αναγκάσετε τον εντοπισμό λέξεων-κλειδιών OK Google να λειτουργήσει και η συσκευή σας δεν διαθέτει το απαραίτητο υλικό, αυτή η λύση είναι για εσάς.

Έχω περιγράψει τα δύο πιθανά μειονεκτήματα σε αυτό το τέχνασμα, το πρώτο από τα οποία μπορεί να λυθεί χρησιμοποιώντας μια εφαρμογή αυτοματισμού για να ενεργοποιήσετε/απενεργοποιήσετε την εντολή όταν είναι λογικό να το κάνετε. Το τελευταίο μειονέκτημα είναι δυστυχώς αποτέλεσμα του γεγονότος ότι το υλικό σας δεν είναι κατασκευασμένο για πάντα ενεργό ανίχνευση λέξης-κλειδιού, αλλά αν το χρησιμοποιείτε μόνο όταν το χρειάζεστε πραγματικά, τότε δεν θα πρέπει να είναι υπερβολικό θέμα.

Δώστε μια ευκαιρία σε αυτό το τέχνασμα και ενημερώστε μας στα σχόλια παρακάτω εάν λειτουργεί για εσάς!