مشروع هندسة عكسية. بدأ بجهاز المشي Bowflex Treadmill 22 ولكن تم تعميمه لأي جهاز أندرويد تبيعه شركة Nautilus Inc. (Nautilus, Bowflex, Schwinn).
تعتمد هذه الطريقة على أن مواصفات وحدة التحكم Bowflex بطيئة جدًا بالنسبة لبرامج اليوم (فهي تحتوي فقط على 2 جيجابايت من ذاكرة الوصول العشوائي على لوحة أندرويد). وبسبب ذلك، وإذا كنا أسرع من الجهاز اللوحي، يمكننا فك تشفير الجهاز من خدمة AppMonitorService
التابعة لشركة Nautilus.
هل يمكن اعتباره هجومًا بالقوة الغاشمة؟
يمكنك إعادة تشغيل الجهاز في أي وقت خلال العملية، وسيكون كل شيء كما يجب أن يكون. لا يوجد خطر على البرنامج من القيام بذلك. جربها!
لقد استخدمت لوحة مفاتيح Logitech K600، ولكن أي لوحة مفاتيح مع تلك المفاتيح يجب أن تعمل:
يبدو أن لوحات المفاتيح البلوتوث غير قادرة على الإقران من خلال JRNY.
أولاً، دعونا نقوم بتشغيل الجهاز ونوصل لوحة المفاتيح USB بوحدة التحكم Bowflex. يمكنك العثور عليها على الجانب الأيمن:
دعونا نتأكد من أن لوحة المفاتيح تعمل بالضغط على زر “الصفحة الرئيسية” على لوحة المفاتيح. يجب أن يؤدي ذلك إلى إعادة تشغيل تطبيق JRNY.
لدى أندرويد اختصار لإغلاق التطبيق الحالي من خلال زر “الرجوع” إذا ضغطت عليه لثانية أو نحو ذلك. لنلعب قليلاً مع زر “الرجوع” - سنستمر في إغلاق تطبيق JRNY بمجرد إعادة فتحه حتى يبدأ ظهور حوار جديد:
حسنًا، الآن الجزء الممتع: هذا الحوار ينتمي إلى “نظام التحقق من الأخطاء” القياسي في أندرويد. لقد “أجبرنا أندرويد على التفكير” بأن NautilusLauncher سيء (جيد!). دعونا نستغل ذلك من خلال هذا الحوار.
بمجرد ظهوره، انقر على “معلومات التطبيق”. بالنقر على “معلومات التطبيق” سنفتح تطبيق الإعدادات (الذي يوجد في قائمة الرفض لخدمة AppMonitorService
). سيغلق في حوالي ثانية، لذا يجب أن نكون سريعين! انقر على زر “إيقاف القوة”، ثم انقر على “موافق”.
بمجرد أن تتمكن من النقر على “موافق”، يمكنك الراحة (تمرين جيد، أليس كذلك؟). الآن دعونا نتابع مع الاكتشافات على Reddit. سنقوم بتفعيل adb بالنقر على أيقونة “العدسة المكبرة” في الزاوية العلوية اليمنى والبحث عن “خيارات المطور”:
ابحث عن عنوان IP لوحدة التحكم. أسهل طريقة هي من خلال إعدادات الواي فاي:
الآن بعد أن تم تفعيل adb ولدينا عنوان IP، دعونا ننتقل إلى كمبيوتر ونتصل بـ adb. افتح نافذة الأوامر وشغّل adb connect <عنوان IP>
(في حالتي 10.0.0.205):
> adb connect 10.0.0.205
connected to 10.0.0.205:5555
سيطلب التأكيد على الشاشة في المرة الأولى التي تتصل فيها عن بعد من خلال adb.
دعونا ننشئ ملفًا فارغًا داخل /sdcard/Pictures/
يسمى nautilus
. يمكنك قراءة المزيد عن “السبب” في غرائب Bowflex.
> adb shell touch /sdcard/Pictures/nautilus
الآن دعونا نستعيد بعض الوظائف. أرسل الأوامر التالية من خلال نافذة الأوامر الخاصة بك:
> adb shell settings put secure ntls_launcher_preference 0
> adb shell settings put secure navigationbar_switch 1
> adb shell settings put secure notification_switch 1
> adb shell settings put secure statusbar_switch 1
سترى واجهة المستخدم تظهر:
هناك خطوة أخيرة - تغيير واجهة الإطلاق الافتراضية. ابحث عن “التطبيقات الافتراضية” واضبط Quickstep كتطبيق الصفحة الرئيسية:
أنت الآن حر!
سيظل هذا الحال كما هو طالما تم إيقاف NautilusLauncher بالقوة. يستمر من خلال إعادة التشغيل.
إذا أردت العودة إلى “المخزون” فقط افتح تطبيق NautilusLauncher
(أقترح بشدة أن تكون قد أنشأت ملف /sdcard/Pictures/nautilus
مسبقًا):
NautilusLauncher
هو “مشغل أندرويد” الافتراضي، مما يعني أنه إذا أغلق تطبيق JRNY، فسوف “يعيد الفتح” على الفور.
هناك أيضًا “قفل أمان” آخر، خدمة في المقدمة في ملف apk الخاص بـ NautilusLauncher
، يسمى AppMonitorService
. من خلال فك تجميع ملف apk، يمكنك رؤية ثلاث متغيرات مثيرة للاهتمام:
public static final int MonitorIntervalSeconds = 1;
// بعض المتغيرات الأخرى
private static String[] TargtedAppsToKill = {"com.android.vending", "com.android.settings", "com.android.chrome", "com.google.android.gm", "com.google.android.youtube"};
private static String[] TargtedAppsToBackground = {"com.google.android.googlequicksearchbox:interactor", "com.google.android.googlequicksearchbox:search", "com.google.android.googlequicksearchbox", "com.android.launcher3", "com.google.android.inputmethod.latin"};
وبالتالي فإن تلك الخدمة “تحمي بنشاط” الإغلاق. مع كل إغلاق للتطبيق (من خلال الضغط المستمر على زر “الرجوع”)، سيكون هناك محاولة لإعادة فتح JRNY. من خلال إجباره على الإغلاق، نقوم أيضًا بتعطيل جميع الخدمات الأمامية.
(أي أخطاء إملائية قد تراها في نسخ الكود تأتي من مطوري Nautilus الخاصين، وليس مني)
©2022-2024 سيباستيان بارينيشيا. جميع الحقوق محفوظة.
مبني بواسطة Astro v4.16.13.