Android Debug Bridge
![]() | |
![]() GNOME uçbiriminde cihazları sıralayan adb sunucusu başlatılıyor. Sonra, uname komutunu çalıştırmak için hata ayıklanan cihazda bir shell (kabuk) açılıyor. | |
Orijinal yazar(lar) | |
---|---|
Programlama dili | C++ |
İşletim sistemi | Windows, Linux, macOS |
Tür | Yazılım Geliştirme Aracı |
Lisans | Apache License 2.0 |
Resmî sitesi | developer.android.com/studio/command-line/adb |
Kod deposu | android.googlesource.com |
Android Debug Bridge (tr. Android Hata Ayıklama Köprüsü) (genellikle adb olarak kısaltılır), Android tabanlı cihazlarda hata ayıklamak için kullanılan bir programlama aracıdır. Android cihazındaki arka plan programı, ana bilgisayardaki sunucuya USB veya TCP üzerinden son kullanıcı tarafından kullanılan istemciye bağlanan TCP üzerinden bağlanır. 2007'den beri Google tarafından Apache Lisansı altında açık kaynaklı yazılım olarak sunulan özellikler arasında bir kabuk ve yedekleme yapma imkanı bulunmaktadır. Adb yazılımı Windows, Linux ve macOS ile uyumludur. Botnet'ler ve RSA kimlik doğrulaması ve cihaz beyaz listeye alma gibi azaltıcı etkenlerin geliştirildiği diğer kötü amaçlı yazılımlar tarafından kötüye kullanılmıştır.
Özellikler

adb'nin özellikleri arasında ana bilgisayardan dosya kopyalama, [1] uygulamaları yükleme, logcat çıktısını görüntüleme, bir Unix shell'e erişme [2] ve Qualcomm EDL moduna yeniden başlatma sayılabilir. [3] Örneğin, Android uygulamaları bir dosyaya backup
komutuyla kaydedilebilir. [4] Ayrıca Java Debug Wire Protocol için destek içerir. [5]
Bazı grafik arayüzler kullanıma sunuldu. Android Studio'daki görsel Android Device Monitor, bir Android cihazından bilgi almak için kullanılabilir. [6]
Geliştirme geçmişi
Android Yazılım Geliştirme Kiti (SDK) ilk olarak 2007'de piyasaya sürüldü. [7] Google, 2017'den beri adb'yi Android SDK'dan ayrı olarak indirmeyi mümkün kıldı. [8]
2015 yılında Microsoft, adb istemcisine bağlanabilen bir Android öykünücüsü yayınladı. [9] 2016'da Android Studio 2.0 için uygulamaları yüklemek ve dosyaları adb aracılığıyla göndermek için 5 kat performans iyileştirmesi yapıldı. [10] Android Things'in daha kolay kullanımı için 2017 yılında manuel adb komutları etrafında bir sarmalayıcı yapılmıştır. [11] 2020'de Android 11 için Google, artımlı yüklemeler ekledi. [12] 2020'de Wi-Fi adb, macOS için Android Studio'ya entegre edildi. [13] Android 12 için 2021'de adb backup
komutu, uygulamalardan kullanıcı verilerinin yedeklenmesinin uygulama başına manifesto yapılandırması kullanılarak etkinleştirilmesi için sınırlandırıldı. [14] Fuchsia, adb ile geriye dönük uyumlu olacaktır. Fx ve ffx ile değiştirilecektir. [15]
Kurulum
Ana bilgisayar
Windows için Android SDK, ayıklanıp yüklenebilen adb.exe ikili dosyasını içerir. [16] How-To-Geek, ikili dosyaları içeren klasörü PATH ortam değişkenine eklemenizi önerir. [17]
Ubuntu'da adb, android-tools-adb
paketi ile kurulabilir. [18] Debian için, aracı root izinleri olmadan çalıştırmayı mümkün kılan udev kurallarını yükleyen adb
paketinin yanına android-sdk-platform-tools-common
paketinin de yüklenmesi tavsiye edilmiştir. [19] macOS ve diğer Linux dağıtımları için platform araçları indirilebilir ve PATH değişkeni bashrc içinde değiştirilebilir. [20]
Android cihazı
Android 4.2.2 veya sonraki sürümlerde ( API düzeyi 17 ), kullanıcının kabul etmesi gereken bir RSA parmak izi içeren bir iletişim kutusu gösterilir. Bu, aygıt kullanıcısının izni olmadan hata ayıklama mekanizmasından yararlanan bilgisayarlara karşı koruma sağlar. [21] Android 4.2'den başlayarak, geliştirici ayarları varsayılan olarak gizlidir. Hakkında menüsünde yapı numarasına yedi kez basmak, bunları kullanıcıya görünür hale getirir. Bundan sonra, USB hata ayıklama seçeneği etkinleştirilebilir. [22] Bazı Android telefonlarında bunu etkinleştirmek için farklı prosedürleri vardır. Örneğin, Huawei, adb'nin etkinleştirilebilmesi için bir pin kodunun girilmesini gerektirir. [23]
Bir Android cihazın dokunmatik ekranı bozulursa, USB On-The-Go kullanarak cihaza bir fare bağlamak ve USB hata ayıklamasını etkinleştirmek mümkün olabilir. [24] [23]
Mimari
Adb protokolü, USB üzerinden veya Wi-Fi üzerinden TCP üzerinden taşınabilir. İstemci-sunucu mimarisini kullanır. Kullanılan iki farklı protokol vardır. Birincisi istemci ile sunucu arasında, ikincisi ise sunucu ile arka plan programı arasındadır. adb arka plan programı C'de uygulanır ve Android kullanıcı alanında bulunur. Daemon, Android USB çerçevesi, UsbDeviceManager
ve UsbDebuggingManager
tarafından kolaylaştırılır. [5]
İstemci ↔ sunucu protokolü
İstemci ve sunucu arasındaki iletişim modu bir TCP soketidir. Sunucu, istemcinin istek göndermesi gereken bir bağlantı noktasını dinler. İstek, ASCII'de 4 baytlık bir başlangıç alanı ve bir yük içerir. Yük, sunucuya gönderilmesi gerektiğini belirtmek için ana bilgisayar kelimesiyle başlar. Sunucu daha sonra durumu belirtmek için TAMAM veya BAŞARISIZ olarak yanıt verebilir, isteğe bağlı bir yük ve uzunluk ile birlikte. [5]
Sunucu ↔ arka plan programı protokolü
Sunucudan gönderilen mesajlar, aşağıdaki alanları içeren 24 bayt uzunluğunda bir başlıktan oluşur: [5]
- Command
- First argument
- Second argument
- Length of the payload, 0 or higher
- CRC32 of the data payload
- Magic value, calculated through command XOR
0xFFFFFFFF
Güvenlik
Android 2.2'ye kadar Android, RageAgainstTheCage istismarına karşı savunmasızdı. adb arka plan programı, ayrıcalıkları düşürürken setuid sistem çağrısının dönüş değerini kontrol etmedi. İstismar, süreç tanımlayıcılarının tükenmesi nedeniyle başarısız olana kadar süreçleri çatallar . Arka plan programı çöktüğünde ve yeniden başladığında, bırakılan ayrıcalıklarla yeni bir işlem başlatamaz ve kök olarak çalışmaya devam eder. Sonra adb bir kök kabuk sağladı. [25] 2017 yılında, yerleşik modemi devralmak için ADB'den yararlanan bir güvenlik açığı ortaya çıktı. Bazı geçici çözümler mevcut olmasına rağmen saldırı, adb'nin önceden etkinleştirilmesini ve yetkilendirilmesini gerektiriyordu. [26]
ADB gibi çeşitli kötü amaçlı yazılım aileleri. Miner, Ares, IPStorm, Fbot ve Trinity, adb arayüzünün herkese açık olup olmadığı konusunda interneti taradı ve bu cihazlara kötü amaçlı yazılım yükledi. [27] adb, güvenli modda önyükleme yaparak ve adb uninstall
komutunu çalıştırarak kötü amaçlı yazılımları kaldırmak için de kullanılabilir. [28]
Ayrıca bakınız
- Android kurtarma modu
- Fastboot
Kaynakça
- ^ Android wireless application development. 3rd. Shane Conder. Upper Saddle River, NJ: Addison-Wesley. 2012. ISBN 978-0-321-81383-1. OCLC 749852462. 2021-09-26 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-09-26. Yazar
|ad1=
eksik|soyadı1=
(yardım) - ^ "Things You Can Do with Android's adb Command". For Dummies (İngilizce). 2018-05-15 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-09-09.
- ^ An In-Depth Guide to Mobile Device Forensics. [S.l.]: CRC PRESS. 2021. s. 72. ISBN 978-0-367-63300-4. OCLC 1250310301. 2021-09-26 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-09-26. Yazar
|ad1=
eksik|soyadı1=
(yardım) - ^ Jack Wallen (2015-03-06). "How to create a full backup of your Android device without root". 2016-01-24 tarihinde kaynağından arşivlendi. Erişim tarihi: 2016-01-29.
- ^ a b c d Unboxing Android USB: a hands-on approach with real World examples. Berkeley, CA. 2014. ISBN 978-1-4302-6209-1. OCLC 880673864. 2021-09-26 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-09-26. Yazar
|ad1=
eksik|soyadı1=
(yardım) Kaynak hatası: Geçersiz<ref>
etiketi: ":0" adı farklı içerikte birden fazla tanımlanmış (Bkz: Kaynak gösterme) - ^ Learning embedded Android N programming: create the perfectly customized system by unleashing the power of Android OS on your embedded device. Birmingham, UK. 2016. s. 89. ISBN 9781785283284. OCLC 1020708322. 2021-09-26 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-09-26.
- ^ "Google releases Android SDK". Macworld (İngilizce). 2021-09-10 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-09-10.
- ^ "Google makes ADB, fastboot, and other platform tools available without full SDK or Android Studio download". Android Police (İngilizce). 2017-01-05. 2021-04-10 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-09-09.
- ^ "Microsoft Releases Android Emulator and It's Supposed to Be Faster than Google's". Softpedia (english). 2021-09-10 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-09-10. Yazar
|ad1=
eksik|soyadı1=
(yardım) - ^ "Android Studio 2.0 - Beta". Android Developers Blog (İngilizce). 2021-09-10 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-09-10.
- ^ "Android Things Developer Preview 6". Android Developers Blog (İngilizce). 2021-09-10 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-09-10.
- ^ "Turning it up to 11: Android 11 for developers". Android Developers Blog (İngilizce). 2021-09-17 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-09-10.
- ^ "Announcing Android Studio Arctic Fox (2020.3.1) & Android Gradle plugin 7.0". Android Developers Blog (İngilizce). 2021-09-12 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-09-10.
- ^ "Behavior changes: Apps targeting Android 12 | Android 12 Beta". Android Developers (İngilizce). 2021-09-28 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-09-28.
- ^ "Google wants to make Fuchsia devices manageable with Android's ADB tool". 9to5Google (İngilizce). 2022-08-26. Erişim tarihi: 2022-08-29. Yazar
|ad1=
eksik|soyadı1=
(yardım) - ^ PhoneGap build: developing cross platform mobile applications in the cloud. Boca Raton. 2013. s. 38. ISBN 978-1-4665-8975-9. OCLC 862745697. 2022-03-07 tarihinde kaynağından arşivlendi. Erişim tarihi: 2022-01-29. Yazar
|ad1=
eksik|soyadı1=
(yardım) - ^ "How to Install and Use ADB, the Android Debug Bridge Utility". How-To Geek (İngilizce). 4 September 2021. 2021-09-18 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-09-09.
- ^ "7". Android Studio 4. 0 Development Essentials - Java Edition: Developing Android Apps Using Android Studio 4. 0, Java and Android Jetpack. Cary. 2020. ISBN 978-1-951442-21-7. OCLC 1190906409. 2021-09-26 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-09-26. Yazar
|ad1=
eksik|soyadı1=
(yardım) - ^ "Debian -- Details of package adb in bullseye". packages.debian.org. 2021-09-08 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-09-08.
- ^ "How to Install Android Debug Bridge (ADB) and Fastboot". Lifewire (İngilizce). 2022-01-30 tarihinde kaynağından arşivlendi. Erişim tarihi: 2022-01-18.
- ^ "Run apps on a hardware device". Android Developers (İngilizce). 2021-09-08 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-09-08.
- ^ "How to enable Developer options in Android 4.2". TechRepublic (İngilizce). 2021-09-09 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-09-09. Yazar
|ad1=
eksik|soyadı1=
(yardım) - ^ a b "Come attivare debug USB". Salvatore Aranzulla (İtalyanca). 2021-09-09 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-09-09. Yazar
|ad1=
eksik|soyadı1=
(yardım) Kaynak hatası: Geçersiz<ref>
etiketi: ":1" adı farklı içerikte birden fazla tanımlanmış (Bkz: Kaynak gösterme) - ^ "How to enable USB debugging mode on Android". The Punch (İngilizce). 2019-08-09. 2019-09-17 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-09-09. Yazar
|ad1=
eksik|soyadı1=
(yardım) - ^ Android hacker's handbook. Zach Lanier, Collin Mulliner, Pau Oliva, Stephen A. Ridley, Georg Wicherski. Indianapolis, IN: Wiley. 2014. s. 75. ISBN 978-1-118-60861-6. OCLC 875820167. 2021-09-26 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-09-26. Yazar
|ad1=
eksik|soyadı1=
(yardım) - ^ "Google plugs severe Android vulnerability that exposed devices to spying". Ars Technica (İngilizce). 2017-01-09. 2021-09-10 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-09-10. Yazar
|ad1=
eksik|soyadı1=
(yardım) - ^ "Android devices ensnared in DDoS botnet". ZDNet (İngilizce). 2021-09-10 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-09-10. Yazar
|ad1=
eksik|soyadı1=
(yardım) - ^ "This Vultur app takes malicious to the next level". Computerworld (İngilizce). 2021-09-10 tarihinde kaynağından arşivlendi. Erişim tarihi: 2021-09-10. Birden fazla yazar-name-list parameters kullanıldı (yardım); Yazar
|ad1=
eksik|soyadı1=
(yardım)