Android Debug Bridge

Android Debug Bridge
Sorts kommandoradsverktyg [d]
Skrivet i C++
Operativ system Microsoft Windows , Linux och macOS
Licens Apache-licens 2.0
Hemsida developer.android.com/st...
 Mediafiler på Wikimedia Commons

Android Debug Bridge (vanligtvis förkortat som adb ) är ett programmeringsverktyg som används för att felsöka Android-enheter . Daemon på en Android- enhet ansluter till en server på värddatorn via USB eller TCP , som ansluter till klienten som används av slutanvändaren via TCP. Tillgänglig som programvara med öppen källkod under Googles Apache-licens sedan 2007, funktioner inkluderar ett omslag och möjligheten att göra säkerhetskopior. Adb-programvaran är kompatibel med Windows , Linux och macOS . Det har missbrukats av botnät och annan skadlig programvara för vilka skydd som RSA- autentisering och vitlistning av enheter har utvecklats.

Funktioner

adb-funktioner inkluderar kopiering av filer från värddatorn, installation av applikationer, visning av logcat-utdata, skaffa ett Unix -skal och omstart i Qualcomm EDL -läge [1] [2] [3] . Till exempel kan Android-appar sparas med kommandot backup to file [4] . Det inkluderar också stöd för Java Debug Wire Protocol [5] .

Flera grafiska gränssnitt finns tillgängliga. Den grafiska Android Device Monitor i Android Studio kan användas för att hämta information från en Android-enhet [6] .

Utvecklingshistorik

Android Software Development Kit (SDK) släpptes första gången 2007. Från och med 2017 tillåter Google dig att ladda ner adb separat från Android SDK [7] .

Under 2015 släppte Microsoft en Android-emulator som kan ansluta till adb-klienten. Under 2016, för Android Studio 2.0 , har prestandan för installation av applikationer och nedladdning av filer via adb ökat med 5 gånger. För att förenkla användningen av Android Things skapades ett omslag för manuella adb-kommandon 2017. För Android 11 2020 har Google lagt till adb inkrementell installation. 2020 integrerades adb Wi-Fi i Android Studio för macOS [8] . År 2021 för Android 12 var adb backup-kommandot begränsat, så användardata från appar säkerhetskopierades med en manifestkonfiguration per app [9] .

Arkitektur

Adb-protokollet kan överföras via USB eller över WiFi över TCP. Den använder en klient-server-arkitektur. Två olika protokoll används. Den första är mellan klienten och servern, och den andra är mellan servern och demonen. adb-demonen är implementerad i C och finns i Android-användarutrymmet. Demonen stöds av Androids USB- ramverk , UsbDeviceManager och UsbDebuggingManager [5] .

Klient ↔ serverprotokoll [5]

Kommunikationsläget mellan klient och server är TCP-socket . Servern lyssnar på porten som klienten ska skicka begäran till. Begäran innehåller ett 4-byte ASCII initialfält och en nyttolast. Nyttolasten börjar med ordet värd för att indikera att den ska skickas till servern. Servern kan sedan svara med OKAY eller FAIL för att indikera status i kombination med ytterligare nyttolast och längd.

Serverprotokoll ↔ Daemon [5]

Meddelanden som skickas från servern består av en 24-byte header med följande fält:

  1. Team
  2. Första argumentet
  3. Andra argumentet
  4. Lastlängd, 0 eller högre
  5. nyttolast CRC32
  6. Magiskt värde beräknat med XOR-kommandot 0xFFFFFFFF

Säkerhet

Före Android 2.2 var Android sårbart för utnyttjandet av RageAgainstTheCage. Adb-demonen kontrollerade inte returvärdet för setuid-systemanropet när privilegier togs bort. Exploateringen splittrar processer tills den misslyckas på grund av utmattning av process-ID:n. När en demon kraschar och startar om kan den inte starta en ny process med förlorade privilegier och fortsätter att köras som root. adb gav sedan ett rotskal [10] .

Under 2017 upptäcktes en säkerhetsrisk som använde ADB för att kapa det inbyggda modemet. Attacken krävde att adb redan var aktiverad och auktoriserad, även om vissa lösningar var tillgängliga [11] . Olika malware-familjer som ADB. Miner, Ares, IPStorm, Fbot och Trinity skannade Internet efter det offentliga adb-gränssnittet och installerade skadlig programvara på dessa enheter. adb kan också användas för att ta bort skadlig programvara genom att starta upp i felsäkert läge och köra kommandot adb [12] uninstall .

Anteckningar

  1. Lauren Darcey, Shane Conder. Android trådlös applikationsutveckling . - Upper Saddle River, NJ: Addison-Wesley, 2012. - ISBN 978-0-321-81383-1 , 978-0-321-81384-8. Arkiverad 30 maj 2022 på Wayback Machine
  2. Saker du kan göra med Androids adb-  kommando . dummies . Hämtad: 30 maj 2022.
  3. Chuck Easttom. Fördjupad guide till kriminalteknik för mobila enheter . - 2022. - ISBN 978-0-367-63300-4 , 978-0-367-63298-4. Arkiverad 30 maj 2022 på Wayback Machine
  4. Jack Wallen. Hur skapar jag en fullständig säkerhetskopia av din Android-enhet utan   root ? . TechRepublic (6 mars 2015). Hämtad 30 maj 2022. Arkiverad från originalet 24 januari 2016.
  5. 1 2 3 4 Rajaram Regupati. Unboxing Android USB: ett praktiskt tillvägagångssätt med exempel från verkliga världen . - 2014. - ISBN 978-1-4302-6209-1 .
  6. Ivan Morgillo, Stefano Viola. Lär dig inbyggd Android N-programmering . — Packt Publishing Ltd, 2016-07-29. — 282 sid. — ISBN 978-1-78528-328-4 . Arkiverad 30 maj 2022 på Wayback Machine
  7. Google släpper Android   SDK ? . Macworld . Hämtad 30 maj 2022. Arkiverad från originalet 10 september 2021.
  8. Vrid upp det till 11: Android 11 för  utvecklare . Blogg för Android-utvecklare . Hämtad 30 maj 2022. Arkiverad från originalet 17 september 2021.
  9. Beteendeförändringar: Appar som är inriktade på Android  12 . android utvecklare . Hämtad 30 maj 2022. Arkiverad från originalet 24 maj 2022.
  10. Joshua J Drake, Zach Lanier, Collin Mulliner, Pau Oliva, Stephen A Ridley. Android hackers handbok . - Indianapolis, IN: Wiley, 2014. - ISBN 978-1-118-60861-6
  11. Tom Mendelsohn. Google pluggar allvarlig Android-sårbarhet som exponerade enheter för   spioneri ? . Ars Technica (9 januari 2017). Hämtad 30 maj 2022. Arkiverad från originalet 10 september 2021.
  12. Evan Schuman. Denna Vultur-app tar skadlig till nästa  nivå . Computerworld (4 augusti 2021). Hämtad 30 maj 2022. Arkiverad från originalet 10 september 2021.