Remote ADB Shell یک برنامه ترمینال است که به شما امکان می دهد به سرویس پوسته ADB سایر دستگاه های اندرویدی از طریق شبکه متصل شوید و دستورات ترمینال را اجرا کنید. این می تواند برای اشکال زدایی از راه دور دستگاه های Android (ابزارهای در حال اجرا مانند top، logcat یا dumpsys) مفید باشد. از چندین اتصال همزمان به دستگاه های مختلف پشتیبانی می کند و این اتصالات را حتی زمانی که برنامه در پس زمینه است، زنده نگه می دارد. این برنامه در هیچ یک از دستگاه ها به روت نیاز ندارد، اما روت ممکن است برای پیکربندی دستگاه های مورد نظر مفید باشد. اگر دستگاههای مورد نظر روت نشدهاند، باید از رایانهای با درایورهای Android SDK و Google USB برای پیکربندی آنها استفاده کنید (جزئیات زیر).
این برنامه یک بسته بندی در اطراف پوسته ای است که روی ADB در معرض دید قرار گرفته است. تاریخچه 15 دستوری را حفظ می کند که با فشار طولانی کادر فرمان قابل دسترسی است. با فشار طولانی خود نمایشگر ترمینال، گزینه ارسال Ctrl+C، جابجایی خودکار اسکرول یا خروج از جلسه ترمینال را می دهد.
این دقیقاً به همان روشی عمل می کند که دستور "adb shell" روی رایانه کار می کند. از آنجا که این برنامه از یک پیاده سازی بومی پروتکل ADB در جاوا استفاده می کند، نیازی به روت در هیچ یک از دستگاه ها یا برنامه های شخص ثالث در دستگاه مورد نظر ندارد. دستگاهها به سادگی همان پروتکلی را که با رایانهای که کلاینت ADB را از Android SDK اجرا میکند، با یکدیگر صحبت میکنند.
مهم: دستگاههای دارای Android نسخه 4.2.2 و نسخههای جدیدتر از کلیدهای RSA برای تأیید اعتبار اتصال ADB استفاده میکنند. در آزمایش من، دستگاههایی که نسخه 4.2.2 را اجرا میکنند، باید اولین باری که به آنها وصل میشوید (از هر دستگاهی که این برنامه نصب شده است) به رایانه وصل شوند. این به آنها امکان می دهد گفتگوی پذیرش کلید عمومی را نمایش دهند، که باید آن را بپذیرید (و "همیشه از این رایانه اجازه داده شود" را علامت بزنید). به نظر میرسد دستگاههای دارای Android 4.3 و 4.4 مشکلی برای نمایش دیالوگ بدون اتصال به رایانه ندارند، بنابراین به نظر میرسد این یک راهحل خاص برای Android 4.2.2 است.
برای پیکربندی یک هدف بدون ریشه، دستگاه مورد نظر را به رایانهای که Android SDK نصب شده است وصل کنید و «adb tcpip 5555» را از پوشه ابزارهای پلتفرم Android SDK اجرا کنید. با این کار گوش دادن ADB در پورت 5555 در دستگاه مورد نظر شروع می شود. سپس دستگاه را می توان از برق جدا کرد و تا راه اندازی مجدد به درستی پیکربندی می شود.
برای دستگاههایی که روت شدهاند (اگرچه نیازی به این کار نیست)، میتوانید یکی از چندین برنامه «ADB WiFi» را نصب کنید تا سرور ADB بتواند از طریق شبکه گوش دهد. دستگاههای دارای ROM سفارشی ممکن است گزینهای برای فعال کردن ADB از طریق شبکه در قسمت Developer Options در تنظیمات داشته باشند. استفاده از هر یک از این روش ها ADB را برای دسترسی به شبکه با این برنامه به درستی پیکربندی می کند. مرحله اضافی برای 4.2.2 هنوز برای اتصال اولیه مورد نیاز است.
برای اتصال به دستگاه اندروید راه دور خود، آدرس IP دستگاه و شماره پورت (5555 از مثال بالا) را در Remote ADB Shell وارد کنید. روی Connect ضربه بزنید و سعی می کند به دستگاه متصل شود و ترمینال را راه اندازی کند.
توسعه دهندگان: کتابخانه جاوا ADB سفارشی که برای این برنامه نوشته ام منبع باز تحت مجوز BSD در https://github.com/cgutman/AdbLib است.
منبع این برنامه تحت مجوز آپاچی در دسترس است: https://github.com/cgutman/RemoteAdbShell