Kiat dan trik ADB: Perintah yang harus diketahui oleh setiap pengguna yang kuat

Ada banyak hal di Android Debug Bridge yang mungkin tidak Anda ketahui. Klik di sini untuk beberapa tip dan trik berguna untuk menggunakan ADB!

tautan langsung

  • Akses cangkang
  • Menghubungkan ke beberapa perangkat
  • Mentransfer file
  • Penebangan
  • Daftar aplikasi yang diinstal melalui ADB
  • Memasang dan mencopot pemasangan aplikasi melalui ADB
  • Mengekstrak APK dengan ADB
  • Mencadangkan dan memulihkan data aplikasi
  • Daftar komponen aplikasi
  • Kegiatan peluncuran, layanan, dan penerima siaran
  • Menonaktifkan dan mengaktifkan hampir semua aplikasi
  • Menangkap tangkapan layar
  • Mentransfer data biner antara PC dan perangkat Android

Jika Anda pernah menjadi penggemar Android yang mengintai di kancah modding, atau pengembang aplikasi untuk waktu yang lama waktu, cepat atau lambat, Anda akan menemukan alat rapi yang disebut Android Debug Bridge, atau ADB for pendek. Ini banyak digunakan di Android Studio sebagai utilitas pendamping baris perintah. Pengembang Android juga menggunakannya sebagai solusi mandiri untuk memasang dan menguji aplikasi secara manual smartphone Android serta perangkat Android yang ditiru.

Tetapi ada banyak hal yang dapat dilakukan ADB, dan sebagian besar tidak hanya berguna bagi pengembang. Bahkan jika Anda bukan pengembang, dan Anda sedang membaca artikel ini, ada kemungkinan besar Anda mungkin menggunakan ADB satu atau dua kali untuk sideload aplikasi atau men-tweak izin. Tapi bukan hanya itu yang bisa digunakan ADB. Teruskan membaca untuk beberapa tips dan trik menggunakan ADB yang mungkin belum Anda ketahui.

Anda harus mengaktifkan dan menjalankan ADB di komputer Anda. Pastikan untuk membaca artikel kami di cara menginstal ADB jika Anda membutuhkan bantuan. Jika Anda menggunakan Windows, Anda juga perlu melakukannya instal driver USB OEM yang sesuai untuk perangkat Android Anda.

Akses cangkang

Jika Anda pernah menggunakan ADB sebelumnya, Anda mungkin terbiasa menjalankan semua perintah dalam satu baris. Tetapi Anda juga dapat menggunakan ADB untuk membuka terminal shell di perangkat Anda dan menjalankan perintah secara langsung. Dan itu mudah!

Di jendela terminal atau command prompt Anda:

shell adb

Anda kemudian akan disambut dengan $ simbol tempat Anda dapat menjalankan perintah langsung di perangkat Anda.

Menghubungkan ke beberapa perangkat

ADB dapat berkomunikasi dengan beberapa perangkat secara bersamaan. Namun, Anda harus menentukan perangkat target saat mengeluarkan perintah ADB dalam skenario tersebut.

Untuk melakukan ini, Anda harus mengetahui nomor seri perangkat target. Anda bisa mendapatkan serial dengan menggunakan perintah perangkat:

perangkat adb

Sekarang, gunakan -S opsi untuk menentukan nomor seri perangkat target. Contoh:

adb -s <serialnomor> kerang

Mentransfer file

Untuk penggemar baris perintah, ADB menyediakan cara yang sangat mudah untuk mentransfer file ke dan dari perangkat Android Anda. Cukup gunakan menarik perintah untuk menyalin file dan direktori dari perangkat dan dorongan perintah untuk menyalin file dan direktori ke perangkat:

Jika Anda ingin menyalin file atau direktori dengan subdirektorinya ke perangkat Android:

adb push local_path device_path
  • Contoh: adb push D:\image.png /sdcard

Perintah berikut akan menyalin file atau direktori dengan sub-direktorinya dari perangkat Android ke PC host:

adb menarik device_path local_path
  • Contoh: adb pull /sdcard/backup_April.tar D:\Backup

Penebangan

Android Studio menyediakan Jendela logcat, yang mendukung menampilkan log dari perangkat Anda secara real time. Namun, itu tidak terlalu berguna untuk pemrosesan batch. Untungnya, perangkat Android dikirimkan dengan perintah logcat yang tersedia melalui ADB, yang dapat digunakan untuk membuang pesan log sistem dan aplikasi dan mencetaknya ke layar.

Sintaks dasarnya adalah sebagai berikut:

adb logcat

Untuk mengetahui lebih lanjut, lihat tutorial kami di cara mengambil logcat sistem, log kernel, dan dmesg di Android.

Telur Paskah

Google menawarkan dua telur paskah yang bagus terkait dengan perintah logcat.

  1. Yang pertama adalah lolcat, anggukan ke meme LOLcat. Ini memberikan output yang sama dengan perintah logcat biasa.
    adb lolcat
  2. Yang kedua adalah longcat, yang setara dengan perintah logcat -v long. Ini menampilkan semua bidang metadata dan memisahkan pesan dengan baris kosong.
    adb longcat

Daftar aplikasi yang diinstal melalui ADB

Untuk melihat aplikasi yang diinstal pada perangkat Anda, Anda dapat menggunakan perintah berikut:

adb shell pm daftar paket

Ini akan mengembalikan daftar nama paket dari aplikasi yang terinstal, dengan masing-masing pada barisnya sendiri diawali dengan kemasan:.

Pilihan

Ada juga beberapa opsi yang dapat Anda gunakan untuk mengambil daftar yang lebih spesifik.

  • -F akan menyertakan jalur ke APK dasar untuk setiap aplikasi, beserta nama paketnya.
  • -A akan memastikan semua paket non-APEX yang diketahui dikembalikan.
  • -D akan menyebabkan perintah hanya mengembalikan paket yang dinonaktifkan.
  • -e akan menyebabkan perintah hanya mengembalikan paket yang diaktifkan.
  • -S akan menyebabkan perintah hanya mengembalikan paket sistem.
  • -3 akan menyebabkan perintah hanya mengembalikan paket pihak ketiga.
  • -Saya akan menyertakan nama paket penginstal untuk setiap paket.
  • -U akan menyertakan UID paket untuk setiap paket.
  • -u akan menyertakan paket yang dihapus.
  • --tampilkan-kode versi akan menyertakan kode versi untuk setiap paket.
  • --apex-saja hanya akan mengembalikan paket APEX.
  • --uid hanya akan menampilkan paket dengan UID yang diberikan.
  • --pengguna hanya akan menampilkan paket milik ID pengguna yang diberikan.

Memasang dan mencopot pemasangan aplikasi melalui ADB

Ini adalah penggunaan ADB yang relatif umum, tetapi tetap perlu disebutkan. Di antara cara lain, Anda juga dapat menggunakan ADB untuk menginstal dan menghapus aplikasi Android ke perangkat Android Anda.

Memasang APK

Jika Anda memiliki APK di komputer Anda, Anda dapat menginstalnya ke perangkat Anda dengan yang berikut ini:

adbInstall-Rsomeapk.apk

Ingatlah untuk mengganti someapk.apk dengan path lengkap ke APK yang ingin Anda instal.

Pilihan

Ada banyak opsi untuk menginstal APK melalui ADB.

  • Itu -R opsi memungkinkan ADB untuk menginstal melalui aplikasi yang ada (yaitu, pembaruan). Di Android Pie dan yang lebih baru, Anda tidak perlu menentukan opsi ini.
  • Itu -R opsi, untuk Android Pie dan yang lebih baru akan menyebabkan penginstalan gagal jika aplikasi sudah diinstal.
  • Itu -Saya opsi memungkinkan Anda menentukan nama paket penginstal. Inilah yang dikembalikan jika Android ingin tahu apa yang menginstal APK.
  • Itu -T opsi memungkinkan APK dengan android: testOnly="benar" dalam manifesnya untuk diinstal.
  • Itu -D opsi memungkinkan APK yang ditentukan menjadi downgrade ke aplikasi yang sudah terpasang. Ini hanya berfungsi jika kedua versi aplikasi dapat di-debug.
  • Itu -G opsi untuk Android Marshmallow dan yang lebih baru secara otomatis memberikan semua izin waktu proses ke aplikasi yang terpasang.

Itu belum semuanya. Jika Anda menginginkan daftar lengkap, Anda dapat melihat dokumentasi bawaan.

Beberapa APK dan bundel

Jika Anda memiliki banyak APK yang ingin Anda instal sekaligus, baik dari beberapa aplikasi, atau karena Anda menginstal bundel aplikasi, Anda dapat menggunakan ADB's install-multiple Dan instal-multi-paket fitur.

Jika semua APK Anda untuk satu aplikasi, gunakan install-multiple:

adbinstall-multipleapk1.apkapk2.apk ...

Jika tidak, gunakan instal-multi-paket:

adbinstal-multi-paketaplikasi1.apkapp2.apk ...

Opsi untuk perintah ini mirip dengan Install, tetapi dengan beberapa keterbatasan. Lihat dokumentasi bawaan ADB untuk pilihan yang tersedia.

Menghapus instalan aplikasi

Untuk mencopot pemasangan menggunakan ADB, Anda memerlukan nama paket aplikasi yang ingin Anda copot pemasangannya. Lihat bagian untuk Daftar aplikasi yang diinstal jika Anda belum melakukannya.

Setelah Anda memiliki nama paket, mencopot pemasangan semudah:

uninstall adb <nama paket>

Biasanya Anda tidak dapat menghapus instalan sistem atau aplikasi prainstal menggunakan perintah ini. Namun, Anda mungkin dapat menonaktifkannya dengan ADB. Lihat bagiannya Menonaktifkan dan mengaktifkan hampir semua aplikasi untuk rincian.

Mengekstrak APK dengan ADB

Ada banyak alasan Anda mungkin ingin mengekstrak APK untuk suatu aplikasi. Mungkin Anda ingin mencadangkannya untuk digunakan di lain waktu, atau mungkin tidak lagi tersedia online dan Anda ingin mentransfernya ke perangkat lain.

Mengekstrak aplikasi menggunakan ADB cukup sederhana. Pertama, Anda ingin menemukan nama paket aplikasi yang ingin Anda ekstrak. Ada beberapa cara untuk melakukan ini, tetapi biasanya yang paling mudah adalah menggunakan aplikasi Pengaturan perangkat Anda untuk melihat daftar semua aplikasi yang terinstal, pilih yang Anda inginkan, dan gulir ke bawah hingga Anda menemukan nama paket atau aplikasi PENGENAL.

Setelah Anda memiliki nama paket, jalankan perintah berikut:

jalur pm shell adb <nama paket>

Perintah ini akan menampilkan jalur semua APK untuk nama paket tersebut.

Anda kemudian dapat menggunakan perintah berikut untuk menarik setiap APK ke komputer Anda:

adb tarik /path/ke/apk.apk

Mencadangkan dan memulihkan data aplikasi

Meskipun Google belum membuat metodologi pencadangan sekali klik iOS-esque, Anda dapat menggunakan ADB untuk mencadangkan dan memulihkan aplikasi yang diinstal beserta datanya. Namun, fungsinya masih jauh dari sempurna, dan Google sudah melakukannya menandai fitur sebagai usang.

Cadangan

Untuk mencadangkan satu aplikasi, dengan APK-nya:

adb cadangan -apk <kemasannama> -f nama_paket_cadangan.ab

Jika Anda ingin mencadangkan semua data aplikasi sekaligus:

adb cadangan -F semua -semua -apk -nosystem

Karena modul pemulihan tidak dapat melakukan pemulihan khusus aplikasi individual, sebaiknya buat cadangan khusus paket. Cuplikan perintah berikut (kompatibel dengan Linux/macOS dan Windows Subsystem untuk Linux) dapat melakukannya untuk Anda:

untuk APLIKASI di dalam $(adb shell pm daftar paket -3)
Mengerjakan
APLIKASI=$( gema${APP} | sed "s/^paket://")
cadangan adb -f ${APP}.cadangan ${APP}
Selesai

Memulihkan

Pertama, Anda perlu menginstal APK yang disimpan;

adb Install <kemasannama>.apk

Kemudian Anda dapat memulihkan datanya:

adbmemulihkanpackage_name_backup.ab

Untuk mengulangi, fungsi pencadangan dan pemulihan ADB memiliki banyak peringatan, termasuk hasil variabel tergantung pada ROM

Daftar komponen aplikasi

Komponen aplikasi adalah hal-hal seperti Aktivitas, Penerima Siaran, Layanan, dan sebagainya. Terkadang ada gunanya mengetahui nama komponen ini di aplikasi tertentu, terutama jika Anda ingin meluncurkan Aktivitas tersembunyi atau mengirim siaran dengan data tertentu.

Sayangnya, ADB tidak memiliki cara yang bersih untuk membuat daftar komponen aplikasi. Tapi itu mungkin. Jalankan perintah berikut:

adb shell dumpsys kemasan

Sejumlah besar teks akan dikembalikan.

  • Gulir sampai Anda menemukan Tabel Penyelesai Aktivitas judul untuk melihat Kegiatan.
  • Lihat kebawah Tabel Penyelesai Penerima untuk BroadcastReceiver.
  • Periksalah Tabel Penyelesai Layanan untuk Layanan.
  • Dan seterusnya.

Setiap komponen akan menampilkan tindakan yang diperlukan untuk meluncurkannya, nama komponen, dan mungkin beberapa informasi tambahan.

Alternatifnya, jika Anda ingin cara yang lebih mudah untuk melihat Aktivitas, Layanan, dan Penerima, Anda dapat menggunakan aplikasi Root Activity Launcher dari Pengembang yang Diakui XDA Zacharee1. Ini akan menunjukkan kepada Anda komponen-komponen untuk setiap aplikasi, bersama dengan banyak fitur berguna lainnya.

Peluncur Aktivitas RootPengembang: Zachary Mengembara

Harga: 0,99.

Unduh

Kegiatan peluncuran, layanan, dan penerima siaran

ADB juga dapat digunakan untuk meluncurkan Aktivitas, memulai Layanan, dan memberi tahu BroadcastReceivers. Anda bahkan dapat menentukan URI data dan ekstra Intent jika diperlukan.

Untuk meluncurkan komponen, Anda memerlukan nama komponen yang ingin Anda luncurkan. Anda dapat melihat bagaimana mendapatkannya dari Mencantumkan Komponen Aplikasi bagian.

Sintaks perintah untuk meluncurkan Aktivitas adalah seperti ini:

saya mulai -a <tindakan> -N <komponen>

Sintaks perintah untuk memulai Layanan adalah seperti ini:

saya memulai layanan -a <tindakan> -N <komponen>

Sintaks perintah untuk memberi tahu BroadcastReceiver adalah seperti ini:

sedang disiarkan -a <tindakan> -N <komponen>

Dalam kebanyakan kasus, untuk Aktivitas dan Layanan, Anda tidak perlu menentukan tindakan secara eksplisit. Anda biasanya hanya memerlukannya jika komponen menggunakan salah satu selain android.intent.action. UTAMA.

Di atas sintaks dasar, inilah cara menentukan lebih banyak data untuk diteruskan. Secara umum, semua nilai data harus diapit dengan tanda kutip ganda.

  • -D memungkinkan Anda menentukan URI data.
  • -e atau --es memungkinkan Anda menentukan ekstra String.
  • --esn memungkinkan Anda menentukan ekstra String nol.
  • --ez digunakan untuk menentukan ekstra boolean.
  • --ei digunakan untuk menentukan tambahan bilangan bulat.
  • --el adalah untuk menentukan tambahan panjang.
  • --ef akan melewati float ekstra.
  • --eu melewati ekstra URI.
  • --ecn dapat digunakan untuk menentukan tambahan nama komponen.
  • --eia ,,... akan meneruskan nilai sebagai tambahan Integer[].
  • --eial ,,... akan meneruskan nilai sebagai Daftar.
  • Argumen array dan daftar yang sama juga berfungsi untuk long, float, dan String. Ganti saja Saya dengan huruf yang sesuai.
  • -F memungkinkan Anda menentukan bendera.

Ada lebih banyak opsi perilaku yang dapat Anda gunakan, jadi lihat dokumentasi bawaan untuk detailnya.

Menonaktifkan dan mengaktifkan hampir semua aplikasi

Aplikasi sistem di Android tidak dapat dihapus instalasinya, dan sayangnya, banyak juga yang tidak dapat dinonaktifkan melalui Pengaturan. Meskipun ADB tidak mengizinkan Anda mencopotnya, ADB mungkin membantu Anda menonaktifkannya.

Pertama, pastikan untuk mendapatkan nama paket aplikasi yang ingin Anda nonaktifkan. Kemudian, coba perintah ini. Jika salah satu gagal, coba opsi berikutnya.

  • sore menonaktifkan
    • Untuk mengaktifkan kembali, gunakan aktifkan sore
  • pm nonaktifkan-pengguna --pengguna 0
    • Untuk mengaktifkan kembali, gunakan aktifkan sore
  • petang bersembunyi
    • Untuk mengaktifkan kembali, gunakan pm sembunyikan
  • sore ditangguhkan
    • Untuk mengaktifkan kembali, gunakan pm batalkan penangguhan
  • pm uninstall -k --user 0
    • Untuk mengaktifkan kembali, gunakan pm install-ada
      • Yang ini secara efektif mencopot pemasangan aplikasi dari profil pengguna Anda. Sedangkan perintah untuk mengaktifkan kembali sebaiknya bekerja, tidak ada jaminan itu akan. Anda mungkin perlu mengatur ulang pabrik untuk memulihkan aplikasi.
      • Jika Anda menggunakan beberapa profil pengguna di perangkat, pastikan untuk mengganti 0 pada perintah di atas dengan ID pengguna sebenarnya yang Anda miliki.

Untuk mengetahui lebih lanjut, lihat tutorial kami di cara menghapus bloatware operator dan OEM tanpa akses root.

Menangkap tangkapan layar

Sebagian besar ROM Android menawarkan dua utilitas shell yang berguna - screencap dan screenrecord - masing-masing untuk mengambil tangkapan layar dan merekam aktivitas layar. Anda dapat menghubungi mereka langsung dari shell ADB untuk mengambil tangkapan layar statis atau cuplikan video dari layar ponsel Anda dan menyimpannya langsung di penyimpanan internal perangkat.

Sintaks untuk menangkap tangkapan layar cukup mudah:

screencap shell adb /sdcard/screenshot.png

Demikian pula, jika Anda perlu mengambil screengrab dinamis, lakukan hal berikut:

catatan layar adb shell /sdcard/recording.mp4

Seperti yang Anda duga, alat screencap agak sederhana, sedangkan utilitas perekam layar menawarkan beberapa parameter. Opsi untuk yang terakhir adalah sebagai berikut:

  • --Ukuran WIDTHxHEIGHT
    • Tetapkan resolusi file video (mis. "1280x720"). Secara default, ini mencoba mengambil resolusi tampilan utama perangkat target (jika didukung), dan kembali ke 1280x720 jika tidak.
  • TINGKAT --bit-tingkat
    • Atur bitrate video, dalam bit per detik. Nilai dapat ditentukan sebagai bit atau megabit, mis. '4000000' setara dengan '4M'.
  • --bugreport
    • Anda dapat menambahkan informasi tambahan, seperti overlay stempel waktu, yang berguna untuk mengilustrasikan bug.
  • --batas waktu WAKTU
    • Tetapkan waktu perekaman maksimum, dalam detik. Default / maksimum adalah 180.
  • --tampilan-id ID
    • Tentukan ID tampilan fisik yang akan direkam. Yang default diatur ke tampilan utama. Lihat "dumpsys SurfaceFlinger --display-id" untuk ID tampilan yang valid.
  • --verbose
    • Menampilkan informasi mendalam mengenai sesi rekaman.

Anda dapat lebih memperluas kemampuan utilitas tangkapan layar bawaan Android dengan scrcpy. Ini adalah solusi pencerminan layar sumber terbuka, yang memanfaatkan kekuatan ADB.

Mentransfer data biner antara PC dan perangkat Android

Jika Anda tidak ingin menelurkan shell ADB lengkap, tetapi ingin menggabungkan passthrough data biner yang disederhanakan di antara PC host dan perangkat Android target, Anda dapat menggunakan exec-in Dan exec-out perintah.

Meskipun mereka keberadaan yang berkepanjangan, perintah exec-in dan exec-out masih belum terdokumentasi. Mereka mungkin menyebabkan kerusakan file karena cara shell yang berbeda menangani input dan output. Gunakan dengan hati-hati.

Yang pertama membantu Anda menjalankan perintah di Android dan memasukkan input konsol tanpa filter sebagai parameternya, sedangkan yang kedua melakukan kebalikannya, yaitu menjalankan perintah di Android dan menangkap output binernya yang tidak difilter oleh OS host.

Contoh:

adb eksekusi-keluar "screencap -p" > "D:\tangkapan layar.png"

Ini akan menggunakan screencap perintah Android untuk menangkap tangkapan layar tampilan ponsel, tetapi langsung menyimpannya sebagai tangkapan layar.png di partisi D: PC host (asalkan menjalankan Windows). Di samping itu,

adb eksekusi-di dalam"cd /sdcard && tar -xf -" < "D:\backup.tar"

Ini akan mengekstrak konten file backup.tar yang disimpan di partisi D: PC host (menjalankan Windows) di root penyimpanan internal perangkat Android.


ADB adalah alat yang sangat kuat, dan dapat melakukan lebih dari apa yang di atas. Perintah dalam artikel ini hanyalah titik awal yang berguna. Untuk penggunaan lebih lanjut, lihat perintah seperti cmd -l untuk melihat berbagai layanan yang mungkin dapat Anda gunakan untuk berinteraksi dan ls -l /sistem/bin untuk melihat berbagai perintah yang dapat dieksekusi yang tersedia di ROM Android Anda.

Untuk perjalanan dan kutu Android lainnya, lihat panduan kami di cara root smartphone android, cara menginstal pemulihan TWRP, Dan cara memasang ROM khusus di perangkat Android Anda.