Kuinka pakottaa "OK Google" -toimintosanan tunnistus toimimaan, kun näyttö on pois päältä missä tahansa laitteessa [Root]

click fraud protection

Tämä on opetusohjelma kuinka pakottaa mikä tahansa juurtunut laite ottamaan käyttöön OK Google -toimintosanatunnistuksen, vaikka sen laitteisto ei tue ominaisuutta!

Kun Moto X (2013) julkistettiin ensimmäisen kerran, yksi jännittävimmistä ominaisuuksista (Ambient Display -näytön lisäksi) oli sen kyky herätä äänikomentoihin.

Myöhemmin Google Nexus -laitteissa esitelty ja nyt saatavilla useissa lippulaivoissa hotword-tunnistusominaisuus on a melko mahtava ominaisuus, kun sinun on tehtävä nopea Google-haku ilman, että sinun tarvitsee selata laitettasi käsissä. Tästä voi olla poikkeuksellisen hyötyä, kun olet telakoinut puhelimesi autoon ja sinun on aloitettava navigointi tiettyyn kohteeseen. On paljon turvallisempaa käyttää ääntäsi Google Maps -navigoinnin käynnistämiseen kuin mikään muu vaihtoehto.

Valitettavasti "OK Google" -komentojen kaikkina aikoina käynnistäminen vaatii laitteessasi erityisen vähätehoisen äänentunnistussirun. Vaikka tämä laitteisto on läsnä monissa laitteissa, sitä ei ole kaikissa laitteissa. Jopa tehokkaat, kalliit lippulaivat, kuten Huawei Mate 9, eivät tarjoa tätä tarjousta. Minun kaltaisilleni laitteille Google tarjoaa mahdollisuuden laukaista "OK Google" -äänikomennot, kun näyttö on päällä tai kun laite on kytketty laturiin.

Muutama vuosi sitten oli hakemus nimeltä Avaa Mic+ Google Now'lle jolla oli mahdollisuus ottaa taustapalvelu käyttöön äänikomentojen kuuntelemiseksi aina. Valitettavasti Google pyysi kehittäjää lopettamaan palvelun käytön, eikä kehittäjällä enää ollut aikaa tukea sovellusta, joten se jäi sivuun. Ainoa olemassa oleva vaihtoehto on käyttää AutoVoice, suosittu Tasker-laajennus, mutta tämä edellyttää, että sinulla on riittävästi Tasker-osaamista profiilien määrittämiseen vastaamaan tiettyihin komentoihin.

Niille teistä, jotka haluavat luottaa Googlen äänentunnistuspalveluun, olen löytänyt ratkaisun tähän mahdollistaa "OK Google" -toimintosanatunnistuksen kaikissa juurtuneissa laitteissa, vaikka sen laitteisto ei tue sitä. On kaksi varoitusta tähän temppuun, jota käsittelemme yksityiskohtaisesti alla.


"OK Google" -toimintosanantunnistus millä tahansa laitteella

Kysymys, jonka esitin itselleni miettiessäni ratkaisua tähän ongelmaan, oli:

Kuinka voin huijata laitteeni ottamaan käyttöön toimintosanantunnistuspalvelun komennossani?

Koska nykyinen puhelimeni ei tue toimintosanan tunnistusta näytön ollessa pois päältä, ainoat olosuhteet tämän saamiselle olisivat puhelimeni näytön ollessa päällä tai silloin, kun se latautuu. Luonnollisesti, koska tavoitteeni on ottaa toimintosanan tunnistus käyttöön aina (vaikka näyttö on pois päältä), näytön ollessa päällä tämä tarkoitus epäonnistuisi. Laitteen jättäminen kytkettynä olisi myös turhaa yritykselleni, mutta entä jos voisin temppu täyttääkö laitteeni jompikumpi näistä ehdoista?

Onneksi tämä on hyvin mahdollista, kun käytetään vähän juuritaikaa ja näppärää debug-komentoja! Käytän testaustarkoituksiin tarkoitettua debug shell -komentoa huijata laitteeni ajattelemaan, että se latautuu vaikka se on irrotettu virtalähteestä. Käsky, jota hyödynnämme tarkoituksiinmme, on dumpsys battery, jonka parametreista voit lukea kohdasta tämän Roman Mazurin blogikirjoituksen.

Huomaa: tämä temppu on täysin turvallinen esiintyä. Kuten todettiin, tämä komento vain huijaa laitteesi ajattelemaan, että se latautuu. Se EI todellisuudessa lataudu, vaikka akun valvontasovellukset sanoisivat toisin (tämä johtuu siitä, että näille sovelluksille syötetään vääriä tietoja.)

Erityisen huomionarvoista on dumpsys battery set -komento, joka hyväksyy parametrit sen määrittämiseksi, latautuuko laite tällä hetkellä AC-, USB- tai langattoman latauksen kautta. Jos esimerkiksi avaamme Androidin juurikuoren ja annamme seuraavan komennon, laite luulee, että sitä ladataan verkkovirralla.

su
dumpsys battery set ac 1

Asettamalla tämän komennon (tai USB/langattoman latauksen komennon), voit nyt tehdä sen käynnistä OK Google -komennot, kun näyttö on pois päältä. Tämä johtuu siitä, että laitteesi "latautuu" - täyttää Googlen toimintosanantunnistuspalvelun vaatimukset.

Koska tämä on virheenkorjaukseen tarkoitettu komento (joka on tarkoitettu pääasiassa kehittäjille testaamaan toimivuutta eri akun olosuhteissa), sillä on joitain haittoja, kun sitä käytetään tällä tavalla. Erityisesti kaksi haittaa, joita käsittelemme seuraavaksi. Ensimmäinen haittapuoli on melko triviaali kiertää, mutta samaa ei voida sanoa toisesta epäkohdasta.

Haittapuoli #1 - Jäätyneen akun ilmaisin

Kun olet syöttänyt minkä tahansa "dumpsys battery set" -komennon, Androidin BatteryManager-palvelu tekee sen lopeta kerääminen välittömästi muita tietoja akun tilasta. Tämä tarkoittaa, että Android-järjestelmä ei enää raportoi akun varaustasoa, lämpötilaa, virtaa, jännitettä tai kuntoa. Sen sijaan ne "jäädytetään" ajassa sillä hetkellä, kun annoit komennon.

Tämä data on kuitenkin järjestelmä kerää edelleen vaikka se olisi käytettävissä millä tahansa sovelluksella. Jos haluat saada päivityksen nykyisestä akun varaustasosta, sinun on tehtävä joitakin temppuja. Onneksi tiedot on melko helppo hakea. Jos sinulla on Tasker tai muu automaatiosovellus, sinun tarvitsee vain luoda ilmoitus, joka päivittyy napautuksella nykyisellä tekstillä, joka on tallennettu kansioon /sys/class/power_supply/battery/capacity.

Yllä olevassa kuvakaappauksessa akun ilmaisin (joka näkyy, kun vedän tilapalkin alas) on jumissa 70 %:ssa, mutta kuten näet terminaalista, todellinen akun varaustaso on 69 %. Tämän tiedoston säännöllinen kysely olisi helppoa lähettää tarkka akun varaustaso ilmoituspalkkiin, mutta on vielä helpompi tapa kiertää tämä takaisku.

Tämän erityisen haitan käsitteleminen on itse asiassa uskomattoman triviaalia. Jos ajattelet sitä, tämä ongelma ilmenee vain, kun komento on käytössä ja näyttö on päällä. Mutta asia on, sinun ei tarvitse ottaa tätä komentoa käyttöön, kun näyttö on päällä, koska oletustoiminnon avulla voit käyttää "OK Google" -komentoja, kun näyttö on päällä. Näin ollen sinun tarvitsee vain yksinkertaisesti poista tämä komento käytöstä, kun näyttö on päällä. Taskerin tai muun automaatiosovelluksen käyttäminen olisi luultavasti yksinkertaisin tapa. Suorita tämä komento poistaaksesi tempun:

dumpsys battery reset

Ja alta löydät kuvauksen kahdesta Tasker-profiilista, jotka sinun on määritettävä voidaksesi suorittaa tämän komennon, kun näyttö on pois päältä, mutta poista se käytöstä, kun näyttö on päällä. Pohjimmiltaan luot kaksi "tapahtuma"-kontekstia, joista toinen on "Näyttö pois päältä" -tapahtuma, kun taas toinen on "Näyttö avattu" -tapahtuma. "Näyttö pois" -tapahtuman tehtävässä on yksi toiminto, Code--> Run Shell komennolla dumpsys battery set ac 1. "Display Unlocked" -tapahtuman tehtävässä on myös yksi toiminto, Code-->Run Shell komennolla dumpsys battery reset. Siten Tasker suorittaa komennon huijatakseen laitteesi luulemaan, että se latautuu näytön ollessa pois päältä (profiili: Ota käyttöön Hotword Detection) ja suorita komento poistaaksesi tämän tempun käytöstä, kun puhelin on auki (profiili: Poista Hotword Detection käytöstä).

[tabs][tab title ="Ota käyttöön toimintosanan tunnistus"]

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][tab title ="Poista Hotword Detection"]

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

[/tab]

[/tabs]

Haittapuoli 2 - Lisääntynyt akun tyhjennys

On hyvä syy, miksi toimintosanan tunnistus vaatii aina mukautetun apuprosessorin, koska muuten se johtaisi ylimääräiseen akun tyhjentämiseen suorittimesta, jonka on pysyttävä hereillä. Kun huijaat laitteesi luulemaan, että se latautuu, tämä tarkoittaa, että laite pitää prosessorin käynnissä ja käyttää enemmän taustaa palvelut, koska oletetaan, että lisääntyneellä virrankulutuksella ei ole merkitystä, koska laite pääsee virtalähteeseen.

Mutta näin ei ole tässä, joten tämän komennon ottaminen käyttöön lisää akun tyhjenemistä. Kokemukseni mukaan jätin laitteeni tähän tilaan yön yli, Mate 9 tyhjeni 12% akku 8 tunnin aikana.

Tuskin sopimusten katkaisija mielestäni, mutta tämä saattaa ehkäistä joitain teistä. Valitettavasti tämän toisen haitan ratkaisemiseksi ei ole helppoa ratkaisua. Komennon poistaminen käytöstä näytön ollessa päällä yllä olevan osan viimeisen kappaleen mukaisesti auttaa lieventämään ongelmaa, mutta siinä on kaikki mitä voit tehdä.


Johtopäätös

Toivottavasti tämä temppu on sinulle hyödyllinen. Se ei todellakaan sovi kaikille, mutta jos olet joskus halunnut pakottaa OK Googlen toimintosanatunnistuksen toimimaan eikä laitteessasi ole tarvittavaa laitteistoa, tämä kiertotapa on sinua varten.

Olen hahmotellut tämän tempun kaksi mahdollista haittapuolta, joista ensimmäinen voidaan ratkaista käyttämällä automaatiosovellusta, joka ottaa komennon käyttöön tai poistaa sen käytöstä, kun se on järkevää. Jälkimmäinen haittapuoli johtuu valitettavasti siitä, että laitteistoasi ei ole rakennettu aina päälle hotword-tunnistuksen, mutta jos käytät tätä vain silloin, kun todella tarvitset sitä, sen ei pitäisi olla liikaa ongelma.

Kokeile tätä temppua ja kerro meille alla olevissa kommenteissa, jos se toimii sinulle!