כיצד לאלץ את זיהוי מילות העזר של 'OK Google' לעבוד כשהמסך כבוי בכל מכשיר [שורש]

click fraud protection

זהו מדריך כיצד לאלץ כל מכשיר שורשי לאפשר זיהוי מילות הפעלה OK Google, גם אם החומרה שלו לא תומכת בתכונה!

כאשר ה-Moto X (2013) הוכרז לראשונה, אחת התכונות המרגשות ביותר (מלבד Ambient Display) הייתה היכולת שלו להתעורר לפקודות קוליות.

הוצגה מאוחר יותר במכשירי Google Nexus וזמינה כעת בספינות דגל רבות, יכולת זיהוי מילות הפעלה היא תכונה די מדהימה כאשר אתה צריך לבצע חיפוש מהיר בגוגל מבלי להתעסק במכשיר שברשותך ידיים. זה יכול להיות שימושי במיוחד כאשר עגנת את הטלפון במכונית שלך ואתה צריך להתחיל ניווט ליעד מסוים. זה הרבה יותר בטוח להשתמש בקול שלך כדי להתחיל ניווט במפות Google מאשר כל חלופה אחרת.

למרבה הצער, היכולת להפעיל פקודות "OK Google" בכל עת דורשת שבב זיהוי קולי מיוחד, בעל עוצמה נמוכה במכשיר שלך. בעוד שחומרה זו קיימת במכשירים רבים, היא אינה קיימת בכולם. אפילו ספינות דגל חזקות ויקרות כמו Huawei Mate 9 לא מציעות את ההצעה הזו. עבור מכשירים כמו שלי, גוגל מציעה את היכולת להפעיל פקודות קוליות "OK Google" בזמן שהמסך דולק או כשהמכשיר מחובר למטען.

לפני כמה שנים, הייתה אפליקציה בשם פתח את Mic+ עבור Google Now

 שהייתה לה אפשרות לאפשר לשירות רקע להאזין לפקודות קוליות בכל עת. לרוע המזל, גוגל ביקשה מהמפתח להפסיק להשתמש בשירות ולמפתח כבר לא היה זמן לתמוך באפליקציה הזו, אז היא נפלה מהצד. האפשרות היחידה הקיימת היא להשתמש AutoVoice, תוסף Tasker פופולרי, אבל זה דורש ממך ידע מספיק כדי להגדיר פרופילים שיגיבו לפקודות ספציפיות.

לאלו מכם שיעדיפו להסתמך על שירות הזיהוי הקולי של גוגל, מצאתי פתרון לכך מאפשר זיהוי מילות הפעלה "OK Google" בכל מכשיר שורשי, גם אם החומרה שלו אינה תומכת בכך. יש שתי אזהרות לטריק הזה, שבו נדון בפירוט להלן.


זיהוי מילת עזר "OK Google" בכל מכשיר

השאלה ששאלתי את עצמי כשחשבתי על פתרון לבעיה זו הייתה:

איך אני יכול להערים על המכשיר שלי לאפשר את שירות זיהוי מילות המפתח בפקודה שלי?

מכיוון שהטלפון הנוכחי שלי אינו תומך באופן מקורי בזיהוי מילות הפעלה בזמן שהמסך כבוי, התנאים היחידים לגרום לזה לעבוד יהיו כאשר מסך הטלפון שלי דולק או כשהוא בטעינה. מטבע הדברים, מכיוון שהמטרה שלי היא לאפשר זיהוי מילות מפתח בכל עת (גם כשהמסך כבוי), הפעלת המסך תביס את המטרה הזו. הצורך להשאיר את המכשיר שלי מחובר לחשמל גם יהיה חסר טעם במאמץ שלי, אבל מה אם הייתי יכול טריק שהמכשיר שלי יעמוד באחד משני התנאים האלה?

למרבה המזל, עם קצת קסם שורש ושימוש חכם בפקודות ניפוי באגים, זה מאוד אפשרי! באמצעות פקודת פגז באגים שנועדה למטרות בדיקה, אני יכול להטעות את המכשיר שלי לחשוב שהוא נטען למרות שהוא מנותק מכל מקור מתח. הפקודה שננצל למטרותינו היא dumpsys battery, שעל הפרמטרים שלו תוכל לקרוא ב פוסט זה בבלוג מאת רומן מזור.

הערה: הטריק הזה הוא בטוח לחלוטין להופיע. כאמור, הפקודה הזו רק מטרידה את המכשיר שלך לחשוב שהוא נטען. זה לא ממש נטען, גם אם יישומי ניטור סוללה אומרים אחרת (זאת בגלל שהאפליקציות האלה יוזנו במידע שגוי).

ראוי לציין במיוחד את dumpsys battery set הפקודה, המקבלת פרמטרים כדי לקבוע אם המכשיר נטען כעת באמצעות AC, USB או טעינה אלחוטית. לדוגמה, אם נפתח מעטפת שורש באנדרואיד ונזין את הפקודה הבאה, ה המכשיר יחשוב שהוא נטען באמצעות מתח AC.

su
dumpsys battery set ac 1

על ידי הגדרת פקודה זו (או הפקודה לטעינה USB/אלחוטית), כעת תוכל הפעל את פקודות Google OK כשהמסך שלך כבוי. הסיבה לכך היא שלכל דבר ועניין, המכשיר שלך "נטען" - עומד בדרישות להפעלת שירות זיהוי מילות המפתח של גוגל.

מכיוון שזו פקודה המיועדת לניפוי באגים (בעיקר מיועדת למפתחים לבדיקת פונקציונליות בתנאי סוללה שונים), יש לה כמה חסרונות כאשר משתמשים בה בצורה זו. שני חסרונות, במיוחד, אליהם נתייחס בהמשך. החיסרון הראשון הוא די טריוויאלי לעקוף, אבל לא ניתן לומר את אותו הדבר לגבי החיסרון השני.

חסרון מס' 1 - מחוון סוללה קפואה

לאחר הזנת פקודת "dumpsys battery set", שירות BatteryManager של אנדרואיד יעשה זאת להפסיק מיד לאסוף כל מידע נוסף על מצב הסוללה שלך. המשמעות היא שרמת הסוללה, הטמפרטורה, הזרם, המתח, הבריאות שלך לא ידווחו יותר על ידי מערכת אנדרואיד. במקום זאת הם "יקפאו" בזמן ברגע שהזנת את הפקודה.

עם זאת, נתונים אלה הם עדיין נאסף על ידי המערכת גם אם הוא נגיש בכל אפליקציה. אם אתה רוצה לקבל עדכון לגבי רמת הסוללה הנוכחית שלך, תצטרך לעשות כמה תחבולות. למרבה המזל, קל מאוד לשלוף את הנתונים. אם יש לך 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 יפעיל את הפקודה כדי להערים על המכשיר שלך לחשוב שהוא נטען בזמן שהמסך כבוי (פרופיל: Enable Hotword Detection) והפעל את הפקודה כדי להשבית את הטריק הזה כאשר הטלפון אינו נעול (פרופיל: Disable Hotword Detection).

[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: ]

[/tab]

[/tabs]

חסרון מס' 2 - ריקון מוגבר של הסוללה

יש סיבה טובה לכך שזיהוי מילות עזר בכל עת דורש מעבד משותף מותאם אישית, היא מכיוון שאם לא כן, זה יביא לריקון סוללה נוסף מה-CPU צריך להישאר ער. כאשר אתה מרמה את המכשיר שלך לחשוב שהוא נטען, זה אומר שהמכשיר שומר על המעבד פועל ומפעיל יותר רקע שירותים מכיוון שההנחה היא שצריכת החשמל המוגברת לא תהיה חשובה מכיוון שלמכשיר יש גישה למקור מתח.

אבל זה לא המקרה כאן, אז הפעלת פקודה זו תגרום לריקון מוגבר של הסוללה. מניסיוני שהשארתי את המכשיר שלי במצב זה בן לילה, ה-Mate 9 שלי התרוקן 12% סוללה במהלך 8 שעות.

בקושי שובר עסקה לדעתי, אבל זה עשוי להרתיע חלק מכם בחוץ. למרבה הצער, אין פתרון קל להתמודד עם החיסרון השני הזה. השבתת הפקודה בזמן שהמסך מופעל, לפי הפסקה האחרונה שהוזכרה בסעיף לעיל, תעזור למתן קצת את הבעיה, אבל זה בערך כל מה שאתה יכול לעשות.


סיכום

אני מקווה שתמצא את הטריק הזה שימושי. זה בהחלט לא מתאים לכולם, אבל אם אי פעם רצית לאלץ את זיהוי מילות העזר של OK Google לעבוד ולמכשיר שלך אין את החומרה הנדרשת, הפתרון הזה הוא בשבילך.

תיארתי את שני החסרונות הפוטנציאליים של הטריק הזה, את הראשון שבהם ניתן לפתור על ידי שימוש ביישום אוטומציה כדי להפעיל/לבטל את הפקודה כאשר זה הגיוני לעשות זאת. החיסרון האחרון הוא למרבה הצער תוצאה של העובדה שהחומרה שלך לא בנויה להפעלה תמידית זיהוי מילת עזר, אבל אם אתה משתמש בזה רק כאשר אתה באמת צריך את זה, אז זה לא אמור להיות יותר מדי נושא.

נסה את הטריק הזה והודיע ​​לנו בתגובות למטה אם זה עובד בשבילך!