모든 기기에서 화면이 꺼져 있을 때 'OK Google' 핫워드 감지를 강제로 작동시키는 방법 [루트]

이것은 하드웨어가 해당 기능을 지원하지 않는 경우에도 루팅된 장치가 OK Google 핫워드 감지를 활성화하도록 강제하는 방법에 대한 튜토리얼입니다!

Moto X(2013)가 처음 발표되었을 때 앰비언트 디스플레이 외에 가장 흥미로운 기능 중 하나는 음성 명령으로 절전 모드를 해제하는 기능이었습니다.

나중에 Google Nexus 기기에 도입되었으며 현재 많은 플래그십 기기에서 사용할 수 있는 핫워드 인식 기능은 기기를 만지작거리지 않고 빠르게 Google 검색을 해야 할 때 아주 유용한 기능입니다. 소유. 이는 휴대폰을 차에 도킹한 상태에서 특정 목적지까지 내비게이션을 시작해야 할 때 매우 유용할 수 있습니다. 다른 어떤 대안보다 음성을 사용하여 Google 지도 내비게이션을 시작하는 것이 훨씬 더 안전합니다.

안타깝게도 항상 "OK Google" 명령을 실행하려면 기기에 특수한 저전력 음성 인식 칩이 필요합니다. 이 하드웨어는 많은 장치에 존재하지만 모든 장치에 존재하는 것은 아닙니다. Huawei Mate 9와 같이 강력하고 값비싼 플래그십 제품조차도 이 제안을 제공하지 않습니다. 내 기기와 같은 기기의 경우 Google은 화면이 켜져 있거나 기기가 충전기에 연결되어 있는 동안 "OK Google" 음성 명령을 실행하는 기능을 제공합니다.

몇 년 전, 다음과 같은 이름의 애플리케이션이 있었습니다. Google Now용 Mic+ 열기 백그라운드 서비스를 활성화하여 항상 음성 명령을 들을 수 있는 옵션이 있었습니다. 안타깝게도 Google은 개발자에게 서비스 사용을 중단하라고 요청했고 개발자는 더 이상 해당 앱을 지원할 시간이 없어 중단되었습니다. 유일한 기존 옵션은 다음을 사용하는 것입니다. 자동 음성, 널리 사용되는 Tasker 플러그인이지만 특정 명령에 응답하도록 프로필을 설정하려면 충분한 Tasker 지식이 필요합니다.

Google의 음성 인식 서비스를 선호하는 분들을 위해 제가 찾은 해결 방법은 다음과 같습니다. 하드웨어가 지원하지 않는 경우에도 루팅된 모든 기기에서 'OK Google' 핫워드 감지를 활성화합니다. 있다 두 가지 주의사항 이 트릭에 대해서는 아래에서 자세히 설명하겠습니다.


모든 기기에서 "OK Google" 핫워드 감지

이 문제에 대한 해결 방법을 생각할 때 제가 스스로에게 던진 질문은 다음과 같습니다.

명령에 따라 핫워드 인식 서비스를 활성화하도록 장치를 속이려면 어떻게 해야 합니까?

내 현재 휴대폰은 화면이 꺼져 있는 동안 기본적으로 핫워드 감지를 지원하지 않기 때문에 이 작업을 수행할 수 있는 유일한 조건은 휴대폰 화면이 켜져 있거나 충전 중일 때입니다. 당연히 내 목표는 항상 핫워드 감지를 활성화하는 것이므로(화면이 꺼져 있는 동안에도) 화면을 켜두면 해당 목적을 달성할 수 없습니다. 장치를 연결해 두는 것도 내 노력에 의미가 없지만, 할 수 있다면 어떨까요? 장난 내 장치가 이 두 가지 조건 중 하나를 충족합니까?

운 좋게도 약간의 루트 마법과 디버그 명령을 영리하게 사용하면 이것이 매우 가능합니다! 테스트 목적으로 디버그 셸 명령을 사용하면 다음을 수행할 수 있습니다. 내 장치가 충전 중이라고 생각하도록 속입니다. 전원이 연결되어 있지 않은 경우에도 마찬가지입니다. 우리의 목적을 위해 활용할 명령은 다음과 같습니다. dumpsys battery, 해당 매개변수에 대한 내용은 다음에서 읽을 수 있습니다. Roman Mazur의 이 블로그 게시물.

참고: 이 트릭은 완전히 안전하다 수행하다. 명시된 바와 같이 이 명령은 장치가 충전 중이라고 생각하도록 속일 뿐입니다. 배터리 모니터링 응용 프로그램에서 다르게 말하더라도 실제로는 충전되지 않습니다. (이러한 앱에는 잘못된 정보가 제공되기 때문입니다.)

특히 주목할 점은 dumpsys battery set 장치가 현재 AC, USB 또는 무선 충전을 통해 충전되고 있는지 여부를 설정하는 매개변수를 허용하는 명령입니다. 예를 들어 Android에서 루트 셸을 열고 다음 명령을 입력하면 장치는 AC 전원을 통해 충전되고 있다고 생각합니다.

su
dumpsys battery set ac 1

이 명령(또는 USB/무선 충전 명령)을 설정하면 이제 다음을 수행할 수 있습니다. 화면이 꺼져 있는 동안 OK Google 명령을 실행하세요. 이는 모든 의도와 목적을 위해 기기가 '충전' 중이기 때문입니다. 즉, Google의 핫워드 인식 서비스 활성화 요구 사항을 충족하기 때문입니다.

이는 디버깅용 명령(주로 개발자가 다양한 배터리 조건에서 기능을 테스트하기 위한 목적)이므로 이러한 방식으로 사용할 경우 몇 가지 단점이 있습니다. 특히 두 가지 단점에 대해서는 다음에 다루겠습니다. 첫 번째 단점은 해결하기가 쉽지 않지만 두 번째 단점에 대해서도 마찬가지입니다.

단점 #1 - 얼어붙은 배터리 표시기

"dumpsys 배터리 세트" 명령을 입력하면 Android의 BatteryManager 서비스가 즉시 수집을 중단하라 배터리 상태에 대한 추가 데이터. 이는 배터리 수준, 온도, 전류, 전압, 상태가 더 이상 Android 시스템에 보고되지 않음을 의미합니다. 대신 명령을 입력한 순간에 "고정"됩니다.

그러나 이 데이터는 아직 시스템에서 수집 중입니다. 어떤 애플리케이션에서든 액세스할 수 있더라도 마찬가지입니다. 현재 배터리 수준에 대한 업데이트를 얻으려면 몇 가지 트릭을 수행해야 합니다. 다행히도 데이터를 가져오는 것은 매우 쉽습니다. Tasker나 다른 자동화 응용 프로그램이 있는 경우 /sys/class/power_supply/battery/capacity에 저장된 현재 텍스트로 한 번 탭하면 업데이트되는 알림을 만들기만 하면 됩니다.

위 스크린샷에서는 배터리 표시기(상태 표시줄을 아래로 내리면 표시됨)가 70%에서 멈춰 있지만 터미널에서 볼 수 있듯이 실제 배터리 수준은 69%입니다. 알림 표시줄에 정확한 배터리 수준을 게시하기 위해 정기적으로 이 파일을 폴링하는 것은 쉽지만, 이 문제를 해결하는 훨씬 더 쉬운 방법이 있습니다.

이 특별한 단점을 다루는 것은 사실 엄청나게 사소한. 생각해 보면 이 문제는 명령이 활성화되고 화면이 켜져 있을 때만 나타납니다. 하지만 중요한 것은 화면이 켜져 있을 때 이 명령을 활성화할 필요가 없다는 것입니다. 기본 기능을 사용하면 화면이 켜져 있을 때 "OK Google" 명령에 액세스할 수 있기 때문입니다. 따라서, 당신이 해야 할 일은 간단합니다. 화면이 켜져 있을 때 이 명령을 비활성화합니다.. Tasker나 다른 자동화 앱을 사용하는 것이 아마도 가장 간단한 방법일 것입니다. 트릭을 비활성화하려면 다음 명령을 실행하기만 하면 됩니다.

dumpsys battery reset

아래에는 화면이 꺼져 있을 때 이 명령을 실행하고 화면이 켜져 있을 때 비활성화하기 위해 설정해야 하는 두 개의 Tasker 프로필에 대한 설명이 나와 있습니다. 본질적으로 두 개의 "이벤트" 컨텍스트를 생성하게 되는데, 그 중 하나는 "디스플레이 끄기" 이벤트이고 다른 하나는 "디스플레이 잠금 해제" 이벤트입니다. "디스플레이 끄기" 이벤트에 대한 작업에는 코드->명령을 사용하여 셸 실행이라는 단일 작업이 포함됩니다. dumpsys battery set ac 1. "디스플레이 잠금 해제" 이벤트에 대한 작업에는 코드->명령을 사용하여 셸 실행이라는 단일 작업도 포함됩니다. dumpsys battery reset. 따라서 Tasker는 화면이 꺼져 있는 동안 장치가 충전 중이라고 생각하도록 속이는 명령을 실행합니다(프로필: 활성화). 핫워드 감지) 명령을 실행하여 전화기가 잠금 해제되었을 때 이 트릭을 비활성화합니다(프로필: 핫워드 감지 비활성화).

[tabs][tab title ="핫워드 감지 활성화"]

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 ="핫워드 감지 비활성화"]

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

[/탭]

[/탭]

단점 #2 - 배터리 소모 증가

핫워드 감지에 항상 사용자 정의 보조 프로세서가 필요한 데는 그럴 만한 이유가 있습니다. 그렇지 않으면 깨어 있어야 하는 CPU에서 추가적인 배터리 소모가 발생하기 때문입니다. 장치가 충전 중이라고 생각하도록 속이는 것은 장치가 프로세서를 계속 실행하고 더 많은 백그라운드를 실행한다는 의미입니다. 이는 장치가 전원에 액세스할 수 있기 때문에 증가된 전력 소비가 중요하지 않다는 가정하에 서비스를 제공하기 때문입니다.

하지만 여기서는 그렇지 않으므로 이 명령을 활성화하면 배터리 소모가 증가합니다. 밤새 이 상태로 장치를 놔둔 경험에 따르면 Mate 9의 배터리가 방전되었습니다. 8시간 동안 배터리 12% 소모.

제 생각에는 거래를 중단시키는 것은 아니지만 이것이 여러분 중 일부를 단념시킬 수도 있습니다. 불행하게도 이 두 번째 단점을 처리할 수 있는 쉬운 해결 방법은 없습니다. 위 섹션에서 언급한 마지막 단락에 따라 화면이 켜져 있는 동안 명령을 비활성화하면 문제를 완화하는 데 도움이 되지만 이것이 여러분이 할 수 있는 전부입니다.


결론

이 트릭이 도움이 되길 바랍니다. 확실히 모든 사람에게 적합한 것은 아니지만 OK Google 핫워드 감지를 강제로 작동시키고 싶었는데 기기에 필수 하드웨어가 없는 경우 이 해결 방법이 적합합니다.

이 트릭에 대한 두 가지 잠재적인 단점을 설명했습니다. 그 중 첫 번째는 적절할 때 명령을 활성화/비활성화하는 자동화 응용 프로그램을 사용하여 해결할 수 있습니다. 후자의 단점은 불행하게도 하드웨어가 항상 켜져 있도록 제작되지 않았기 때문에 발생합니다. 핫워드 감지 기능이 있지만 정말 필요할 때만 사용한다면 그다지 큰 의미가 있어서는 안 됩니다. 문제.

이 트릭을 시도해보고 효과가 있는지 아래 댓글로 알려주세요!