كيفية فرض اكتشاف الكلمات المهمة "OK Google" للعمل عند إيقاف تشغيل الشاشة على أي جهاز [الجذر]

هذا برنامج تعليمي حول كيفية إجبار أي جهاز ذي جذر على تمكين اكتشاف الكلمة المهمة لـ OK Google، حتى لو كانت أجهزته لا تدعم هذه الميزة!

عندما تم الإعلان عن Moto X (2013) لأول مرة، كانت إحدى الميزات الأكثر إثارة (إلى جانب العرض المحيطي) هي قدرته على الاستيقاظ للأوامر الصوتية.

تم تقديم إمكانية التعرف على الكلمات المهمة لاحقًا في أجهزة Google Nexus وهي متاحة الآن في العديد من الأجهزة الرئيسية ميزة رائعة جدًا عندما تحتاج إلى إجراء بحث سريع على Google دون التحسس بالجهاز الموجود لديك الأيدي. يمكن أن يكون هذا مفيدًا بشكل استثنائي عندما تقوم بتثبيت هاتفك في سيارتك وتحتاج إلى بدء التنقل إلى وجهة معينة. يعد استخدام صوتك لبدء التنقل في خرائط Google أكثر أمانًا من أي بديل آخر.

لسوء الحظ، فإن القدرة على تشغيل أوامر "OK Google" في جميع الأوقات تتطلب وجود شريحة خاصة للتعرف على الصوت منخفضة الطاقة في جهازك. ورغم أن هذا الجهاز موجود في العديد من الأجهزة، إلا أنه غير موجود في جميع الأجهزة. حتى الشركات الرائدة القوية والمكلفة مثل Huawei Mate 9 لا تقدم هذا العرض. بالنسبة لأجهزة مثل جهازي، توفر Google القدرة على تشغيل الأوامر الصوتية "OK Google" أثناء تشغيل الشاشة أو عند توصيل الجهاز بالشاحن.

قبل بضع سنوات، كان هناك تطبيق باسم افتح Mic+ لـ Google Now والتي لديها خيار تمكين خدمة الخلفية من الاستماع للأوامر الصوتية في جميع الأوقات. ولسوء الحظ، طلبت جوجل من المطور التوقف عن استخدام الخدمة ولم يعد لدى المطور أي وقت لدعم هذا التطبيق، لذلك سقط على جانب الطريق. الخيار الوحيد الموجود هو الاستخدام صوت تلقائي، وهو مكون إضافي شائع لـ Tasker، ولكن هذا يتطلب منك معرفة كافية بـ Tasker لإعداد ملفات التعريف للاستجابة لأوامر محددة.

بالنسبة لأولئك منكم الذين يفضلون الاعتماد على خدمة التعرف على الصوت من Google، لقد وجدت حلاً بديلاً لذلك يتيح اكتشاف الكلمة المهمة "OK Google" على أي جهاز تم الوصول إلى جذره، حتى لو كان أجهزته لا تدعمها. هناك تحذيران لهذه الخدعة التي سنناقشها بالتفصيل أدناه.


اكتشاف الكلمة المهمة "OK Google" على أي جهاز

السؤال الذي طرحته على نفسي عندما أفكر في حل بديل لهذه المشكلة هو:

كيف يمكنني خداع جهازي لتمكين خدمة التعرف على الكلمات المهمة بناءً على طلبي؟

نظرًا لأن هاتفي الحالي لا يدعم اكتشاف الكلمات المهمة أثناء إيقاف تشغيل الشاشة، فإن الشروط الوحيدة للقيام بذلك ستكون عندما تكون شاشة هاتفي قيد التشغيل أو عند شحنها. بطبيعة الحال، نظرًا لأن هدفي هو تمكين اكتشاف الكلمات المهمة في جميع الأوقات (حتى أثناء إيقاف تشغيل الشاشة)، فإن تشغيل الشاشة من شأنه أن يتعارض مع هذا الغرض. كما أن الاضطرار إلى ترك جهازي متصلاً بالكهرباء سيكون أمرًا لا معنى له في محاولتي، ولكن ماذا لو استطعت حيلة جهازي في تلبية أي من هذين الشرطين؟

لحسن الحظ، مع القليل من سحر الجذر والاستخدام الذكي لأوامر التصحيح، أصبح هذا ممكنًا جدًا! باستخدام أمر debug Shell المخصص لأغراض الاختبار، أستطيع القيام بذلك خداع جهازي ليعتقد أنه قيد الشحن بالرغم من فصله عن أي مصدر للطاقة. الأمر الذي سنستغله لأغراضنا هو dumpsys battery، المعلمات التي يمكنك أن تقرأ عنها هذه التدوينة كتبها رومان مازور.

ملاحظة: هذه الخدعة آمنة تماما كي يؤدي. وكما هو مذكور، فإن هذا الأمر يخدع جهازك فقط ليظن أنه قيد الشحن. إنه لا يتم الشحن فعليًا، حتى لو كانت تطبيقات مراقبة البطارية تقول خلاف ذلك (وهذا لأنه سيتم تغذية هذه التطبيقات بمعلومات غير صحيحة.)

وتجدر الإشارة بشكل خاص إلى dumpsys battery set الأمر، الذي يقبل المعلمات لتعيين ما إذا كان الجهاز يتم شحنه حاليًا عبر التيار المتردد أو USB أو الشحن اللاسلكي أم لا. على سبيل المثال، إذا فتحنا غلافًا جذريًا في Android وأدخلنا الأمر التالي، فإن ملف سيعتقد الجهاز أنه يتم شحنه عبر طاقة التيار المتردد.

su
dumpsys battery set ac 1

من خلال ضبط هذا الأمر (أو الأمر الخاص بالشحن عبر USB/اللاسلكي)، ستتمكن الآن من القيام بذلك قم بتشغيل أوامر OK Google أثناء إيقاف تشغيل الشاشة. وذلك لأنه لجميع المقاصد والأغراض، فإن جهازك "قيد الشحن" - وهو ما يلبي متطلبات تفعيل خدمة التعرف على الكلمات المهمة من Google.

نظرًا لأن هذا أمر مخصص لتصحيح الأخطاء (مخصص بشكل أساسي للمطورين لاختبار الوظائف في ظل ظروف مختلفة للبطارية)، فإنه يحتوي على بعض العيوب عند استخدامه بهذه الطريقة. هناك عيبان، على وجه الخصوص، سنتناولهما بعد ذلك. العيب الأول هو تافه إلى حد ما للتغلب عليه، ولكن لا يمكن قول الشيء نفسه بالنسبة للعيب الثاني.

العيب رقم 1 - مؤشر البطارية المجمدة

بعد إدخال أي أمر "dumpsys Battery set"، ستقوم خدمة BatteryManager على Android التوقف فورا عن جمع أي بيانات أخرى عن حالة البطارية الخاصة بك. وهذا يعني أن مستوى البطارية ودرجة الحرارة والتيار والجهد والصحة لن يتم الإبلاغ عنها بواسطة نظام Android بعد الآن. وبدلاً من ذلك سيتم "تجميدها" في الوقت المناسب لحظة إدخال الأمر.

ومع ذلك، هذه البيانات لا يزال يتم جمعها من قبل النظام حتى لو كان يمكن الوصول إليها عن طريق أي تطبيق. إذا كنت ترغب في الحصول على تحديث حول مستوى البطارية الحالي لديك، فستحتاج إلى القيام ببعض الحيل. ولحسن الحظ، من السهل جدًا سحب البيانات. إذا كان لديك تاسكر أو تطبيق أتمتة آخر، فكل ما عليك فعله هو إنشاء إشعار يتم تحديثه بنقرة واحدة باستخدام النص الحالي المخزن في /sys/class/power_supply/battery/capacity.

في لقطة الشاشة أعلاه، مؤشر البطارية (الذي يظهر عندما أقوم بسحب شريط الحالة للأسفل) عالق عند 70%، ولكن كما ترون في الجهاز، فإن مستوى البطارية الفعلي هو 69%. سيكون من السهل استطلاع هذا الملف بانتظام لنشر مستوى دقيق للبطارية في شريط الإشعارات، ولكن هناك طريقة أسهل للتغلب على هذه النكسة.

التعامل مع هذا العيب بالذات هو في الواقع تافهة بشكل لا يصدق. إذا فكرت في الأمر، فإن هذه المشكلة لا تظهر إلا عند تمكين الأمر وعندما تكون الشاشة قيد التشغيل. ولكن المشكلة هي أنك لا تحتاج إلى تمكين هذا الأمر عندما تكون الشاشة قيد التشغيل، لأن الوظيفة الافتراضية تسمح لك بالوصول إلى أوامر "OK Google" عندما تكون الشاشة قيد التشغيل. وهكذا، كل ما عليك القيام به هو ببساطة قم بتعطيل هذا الأمر عندما تكون الشاشة قيد التشغيل. من المحتمل أن يكون استخدام تاسكر أو أي تطبيق أتمتة آخر هو أبسط طريقة. ما عليك سوى تشغيل هذا الأمر لتعطيل الخدعة:

dumpsys battery reset

وستجد أدناه وصفًا لملفي تعريف Tasker اللذين ستحتاج إلى إعدادهما لتشغيل هذا الأمر عندما تكون الشاشة مغلقة ولكن قم بتعطيله عندما تكون الشاشة قيد التشغيل. في الأساس، ستقوم بإنشاء سياقين "للحدث"، أحدهما هو حدث "Display Off" والآخر هو حدث "Display Unlocked". سيكون لمهمة حدث "Display Off" إجراء واحد، Code-->Run Shell باستخدام الأمر dumpsys battery set ac 1. سيكون لمهمة حدث "Display Unlocked" أيضًا إجراء واحد فيها، Code-->Run Shell باستخدام الأمر dumpsys battery reset. وبالتالي، سيقوم تاسكر بتشغيل الأمر لخداع جهازك ليعتقد أنه يتم الشحن أثناء إيقاف تشغيل الشاشة (ملف التعريف: تمكين اكتشاف الكلمة المهمة) وقم بتشغيل الأمر لتعطيل هذه الخدعة عندما يكون الهاتف مفتوحًا (الملف التعريفي: تعطيل اكتشاف الكلمة المهمة).

[علامات التبويب] [عنوان علامة التبويب ="تمكين اكتشاف الكلمات المهمة"]

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

[/فاتورة غير مدفوعة]

[/نوافذ التبويب]

العيب رقم 2 - زيادة استنزاف البطارية

هناك سبب وجيه يجعل اكتشاف الكلمات المهمة في جميع الأوقات يتطلب معالجًا مشتركًا مخصصًا، لأنه بخلاف ذلك سيؤدي إلى استنزاف إضافي للبطارية من وحدة المعالجة المركزية مما يضطرها إلى البقاء نشطًا. عندما تخدع جهازك ليظن أنه قيد الشحن، فهذا يعني أن الجهاز يحافظ على تشغيل المعالج ويعمل على تشغيل المزيد من الخلفية الخدمات لأنه من المفترض أن زيادة استهلاك الطاقة لن تكون ذات أهمية بسبب وصول الجهاز إلى مصدر الطاقة.

ولكن هذا ليس هو الحال هنا، لذا فإن تمكين هذا الأمر سيؤدي إلى زيادة استنزاف البطارية. في تجربتي عندما تركت جهازي في هذه الحالة طوال الليل، استنزف جهاز Mate 9 الخاص بي بطارية 12% على مدار 8 ساعات.

لا يكاد يكون ذلك بمثابة كسر للصفقة في رأيي، ولكن هذا قد يردع البعض منكم هناك. ولسوء الحظ، لا يوجد حل سهل للتعامل مع هذا العيب الثاني. إن تعطيل الأمر أثناء تشغيل الشاشة، وفقًا للفقرة الأخيرة المذكورة في القسم أعلاه، سيساعد في تخفيف المشكلة بعض الشيء، ولكن هذا كل ما يمكنك فعله.


خاتمة

أتمنى أن تجد هذه الخدعة مفيدة. من المؤكد أن هذا ليس مناسبًا للجميع، ولكن إذا كنت تريد فرض تشغيل OK Google hotword Detection وكان جهازك لا يحتوي على الأجهزة المطلوبة، فهذا الحل البديل مناسب لك.

لقد قمت بتوضيح العيبين المحتملين لهذه الخدعة، أولهما يمكن حله باستخدام تطبيق التشغيل الآلي لتمكين/تعطيل الأمر عندما يكون من المنطقي القيام بذلك. العيب الأخير هو للأسف نتيجة لحقيقة أن أجهزتك ليست مصممة للعمل دائمًا اكتشاف الكلمات المهمة، ولكن إذا كنت تستخدم هذا فقط عندما تحتاج إليه حقًا، فلا ينبغي أن يكون الأمر أكثر من اللازم مشكلة.

جرب هذه الخدعة وأخبرنا في التعليقات أدناه إذا كانت مفيدة لك!