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.
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] .
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] .
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] .
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.
Meddelanden som skickas från servern består av en 24-byte header med följande fält:
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 .