Το Remote ADB Shell είναι μια εφαρμογή τερματικού που σας επιτρέπει να συνδεθείτε στην υπηρεσία ADB shell άλλων συσκευών Android μέσω του δικτύου και να εκτελείτε εντολές τερματικού. Αυτό μπορεί να είναι χρήσιμο για τον απομακρυσμένο εντοπισμό σφαλμάτων συσκευών Android (που εκτελούν εργαλεία όπως top, logcat ή dumpsys). Υποστηρίζει πολλαπλές ταυτόχρονες συνδέσεις σε διαφορετικές συσκευές και διατηρεί αυτές τις συνδέσεις ζωντανές ακόμα και όταν η εφαρμογή βρίσκεται στο παρασκήνιο. Αυτή η εφαρμογή δεν απαιτεί root σε καμία από τις συσκευές, αλλά το root μπορεί να είναι χρήσιμο για τη διαμόρφωση των συσκευών προορισμού. Εάν οι συσκευές προορισμού δεν είναι ριζωμένες, πρέπει να χρησιμοποιήσετε έναν υπολογιστή με προγράμματα οδήγησης Android SDK και Google USB για να τις διαμορφώσετε (αναφέρονται λεπτομερώς παρακάτω).
Αυτή η εφαρμογή είναι ένα περιτύλιγμα γύρω από το κέλυφος που εκτίθεται πάνω από το ADB. Διατηρεί ένα ιστορικό 15 εντολών το οποίο είναι προσβάσιμο πατώντας παρατεταμένα το πλαίσιο εντολών. Πατώντας παρατεταμένα την ίδια την οθόνη του τερματικού θα δοθεί η επιλογή αποστολής Ctrl+C, εναλλαγής της αυτόματης κύλισης ή έξοδος από την περίοδο λειτουργίας τερματικού.
Αυτό λειτουργεί με τον ίδιο ακριβώς τρόπο που λειτουργεί η εντολή "adb shell" σε έναν υπολογιστή. Επειδή αυτή η εφαρμογή χρησιμοποιεί μια εγγενή υλοποίηση του πρωτοκόλλου ADB σε Java, δεν απαιτεί root σε καμία συσκευή ή εφαρμογές τρίτων στη συσκευή προορισμού. Οι συσκευές απλώς εκφωνούν το ίδιο πρωτόκολλο μεταξύ τους με έναν υπολογιστή που εκτελεί το πρόγραμμα-πελάτη 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 της συσκευής προορισμού. Στη συνέχεια, η συσκευή μπορεί να αποσυνδεθεί και θα παραμείνει σωστά ρυθμισμένη μέχρι την επανεκκίνηση.
Για συσκευές που έχουν root (αν και δεν απαιτείται), μπορείτε να εγκαταστήσετε μία από τις πολλές εφαρμογές "ADB WiFi" για να επιτρέψετε στον διακομιστή ADB να ακούει μέσω του δικτύου. Οι συσκευές με προσαρμοσμένη ROM ενδέχεται να έχουν την επιλογή να ενεργοποιήσουν το ADB μέσω του δικτύου στο παράθυρο "Επιλογές προγραμματιστή" των Ρυθμίσεων. Η χρήση μιας από αυτές τις μεθόδους θα διαμορφώσει σωστά το ADB για πρόσβαση στο δίκτυο με αυτήν την εφαρμογή. Το επιπλέον βήμα για την 4.2.2 εξακολουθεί να απαιτείται για την αρχική σύνδεση.
Για να συνδεθείτε στην απομακρυσμένη συσκευή Android, πληκτρολογήστε τη διεύθυνση IP της συσκευής και τον αριθμό θύρας (5555 από το παραπάνω παράδειγμα) στο Remote ADB Shell. Πατήστε Σύνδεση και θα προσπαθήσει να συνδεθεί στη συσκευή και να εκκινήσει το τερματικό.
Προγραμματιστές: Η προσαρμοσμένη βιβλιοθήκη Java ADB που έχω γράψει για αυτήν την εφαρμογή είναι ανοιχτού κώδικα υπό την άδεια BSD στη διεύθυνση https://github.com/cgutman/AdbLib
Η πηγή για αυτήν την εφαρμογή είναι διαθέσιμη με την άδεια Apache: https://github.com/cgutman/RemoteAdbShell