Jakiego narzędzia `adb` używam, aby otrzymywać porady?

10

W kilka pytań na tej stronie widzę odpowiedzi informując nas, aby wykonać adb shellalbo adb logcati tak dalej.

Teraz nie jestem całkowicie nieświadomym użytkownikiem, więc pobrałem i zainstalowałem Termux i mam monit powłoki, kiedy mogę wpisywać polecenia, ale - skąd to się adbbierze? Czy mogę go pobrać jako aplikację? Wygląda na to, że nie jest instalowany domyślnie (w systemie Redmi 3S, Android 6.0.1).

Wygląda na to, że jest to jakaś winda uprawnień. Czy jak su? Jeśli nie, to czym się różni?

einpoklum
źródło
@RahulGopi: Tak, myślę, że na stronie może być zwięzła odpowiedź.
einpoklum,
5
Jest to narzędzie opisane w naszym tagu adb-wiki , z linkami do zasobów - powiedziałem ci, że zanim zgadnę :) Pamiętaj: Wiele naszych tagów ma przyzwoite wiki :) Zobacz także tutaj na naszej stronie: Co to jest ADB i dlaczego jest używane dla? Jak zainstalować go na swoim urządzeniu?
Izzy
ADB służy do podłączenia myszy i klawiatury do state-of-the-art komputery.

Odpowiedzi:

33

O adb

Krótko mówiąc, adb(Android Debug Bridge) to narzędzie przeznaczone do zainstalowania na komputerze, aby umożliwić uzyskanie powłoki na telefonie podłączonym kablem USB lub w tej samej sieci Wi-Fi.

Na niektórych urządzeniach z Androidem Lollipop (5.1.1) i prawdopodobnie niższymi wersjami systemu operacyjnego można było oszukać urządzenie, aby łączyło się ze sobą, ponieważ adbklient również był dołączony do telefonu. Nie jest to już możliwe, ponieważ począwszy od Androida Marshmallow (6.0), Google usunął adbpliki binarne z telefonów, aby zmniejszyć użyteczną powierzchnię ataku.

Możliwe jest jednak ręczne przywrócenie adbklienta do telefonu bez konieczności samodzielnego kompilowania pliku binarnego. Zobacz wiki tagu adb, aby uzyskać więcej informacji na ten temat, a także na temat instalacji na komputerze i ogólnego rozwiązywania problemów.


Gdzie to zdobyć

Jakiś czas temu, aby uzyskać adbi inne narzędzie, o nazwie fastboot, trzeba było pobrać pełny zestaw SDK Androida z Google, jeśli chcieli oficjalnej paczki. Obecnie, jak mówi XDA , dostępny jest mały, oficjalny pakiet . Zawiera pliki binarne dla najpopularniejszych systemów operacyjnych.


Jak to działa

adbKlient, zainstalowany na komputerze sprawia, że połączenia do podłączonego telefonu lub w inny sposób wykrywalny, za pomocą serwera wewnętrznego. Następnie użytkownik będzie mógł wysłać do telefonu różne polecenia, których będzie słuchał adbddemon znajdujący się w telefonie.

Podczas korzystania adbpodszywasz się pod użytkownika o nazwie shell(UID 2000). Ten użytkownik jest wyjątkowy, ponieważ może przyznawać uprawnienia aplikacji i uzyskiwać dostęp do większej ilości informacji niż zwykły użytkownik. Ten fakt nie oznacza jednak, że adbto samo su, ponieważ ta ostatnia pozwala na podszywanie się pod dowolnego użytkownika.

Więcej informacji na temat adbjego działania można uzyskać, przeglądając oficjalną dokumentację .


Wydawanie poleceń z telefonu

Większość poleceń, które można wydać za pośrednictwem, to adbzwykle narzędzia fabrycznie zainstalowane w telefonie.

Aby uzyskać do nich dostęp, musisz zainstalować w telefonie aplikację emulującą terminal (zwróć uwagę, że Termux jest wyjątkowy, ponieważ określa swój własny PATH, ignorując w ten sposób binaria systemowe). Umożliwi to na przykład wydawanie poleceń, takich jak logcatbezpośrednio na urządzeniu mobilnym. Pamiętaj jednak, aby pominąć adbprefiks.

Warto wspomnieć, że jeśli nie masz uprawnień roota, zakres poleceń, które będziesz mógł wykonać, a informacje, do których będziesz mieć dostęp, będą znacznie mniejsze niż w przypadku używania adb, ponieważ UID, który je wywołuje, będzie sama aplikacja, a aplikacje mają mniej uprawnień niż UID 2000.

Grimoire
źródło
Dobra robota! Niestety nie mogę dwukrotnie głosować :) // Tak, nasze strony wiki są zbyt często „nieznanymi ilościami”. Nie można wskazać tam wystarczająco często. Ale dołączenie linku w każdej wspomnianej odpowiedzi idzie trochę daleko IMHO :) Gdzie to pasuje (jak tutaj: „więcej szczegółów…”), dobry pomysł. Zapraszam do kontynuowania - tymczasem idę do czyszczenia komentarzy :)
Izzy
@Izzy Dobra uwaga. Poczekajmy i zobaczmy, czy spamowanie linkami jest rzeczywiście potrzebne.
Grimoire,
Proszę o moją opinię.
iBug
@iBug Jestem zaszczycony.
Grimoire,
2

Android Debugging Bridge (ADB) .

Wysyła polecenia przez USB lub Wi-Fi do urządzenia z systemem Android. Zwykle jest instalowany na komputerze podłączonym do urządzenia. Klient ADB można również uruchomić na samym urządzeniu, jednak pomysł polega na zdalnym debugowaniu urządzenia.

Jest częścią zestawu do tworzenia oprogramowania dla systemu Android

Następnie można użyć menedżera SDK, aby pobrać narzędzia platformy.

Jest tu również bardziej bezpośredni link na wypadek, gdybyś był zainteresowany narzędziami platformy

Dokumentacja ADB

jdwolf
źródło
Poczekaj, jeśli nie jest zainstalowany na urządzeniu, dlaczego ludzie sugerują, żebym używał go w powłokach na urządzeniu? np. w podanych przeze mnie przykładach?
einpoklum,
Trafne spostrzeżenie. Może bardziej poprawne jest powiedzenie polecenia adb to „klient” łączący się z urządzeniem z Androidem. Urządzenie z Androidem może również mieć klienta, ponieważ dlaczego nie. Ale to trochę jak uruchomienie ssh localhost
jdwolf,
Szczerze mówiąc dokumentacja wyjaśnia to wszystko dobrze: developer.android.com/studio/command-line/adb.html
jdwolf