この「adb」ユーティリティとは何ですか?


10

このサイトのたくさんの質問には、実行するように指示する回答adb shellなどがadb logcatあります。

今、私は完全に無知なユーザーではないので、Termuxをダウンロードしてインストールし、コマンドを入力できるときにシェルプロンプトを表示しましたが、これはadbどこから来たのですか?アプリとしてダウンロードできますか?デフォルトではインストールされていないようです(Redmi 3S、Android 6.0.1)。

また、なんらかの許可エレベーターのようです。似てるsu?そうでない場合、どのように違いますか?



@RahulGopi:はい、ここに簡潔な答えがあると思います。
アインポクルム2017年

5
それは私たちのadb tag-wikiで説明されているツールであり、リソースがリンクされています–推測する前にyaに言った:)覚えておいてください:タグの多くはまともなwikiを持っています:)また、私たちのサイトでここを参照してください:ADBとは何か、それが使用される理由ために?デバイスにインストールするにはどうすればよいですか?
イジー

ADBは、最先端のコンピュータに接続マウスオーバーやキーボードに使用されています。

回答:


33

adb

簡単に言えば、adb(Android Debug Bridge)は、コンピューターにインストールして、USBケーブルまたは同じWi-Fiネットワークに接続されている電話でシェルを取得できるようにするユーティリティです。

Android Lollipop(5.1.1)を実行している特定のデバイスでは、OSのバージョンが低い可能性がありadbます。クライアントも電話にバンドルされているため、デバイスをだましてそれ自体に接続させることができました。Android Marshmallow(6.0)以降、Googleは使用可能な攻撃対象領域を減らすために、携帯電話からバイナリ削除したため、これはもはや不可能です。adb

ただし、adbバイナリを自分でコンパイルする必要なく、電話でクライアントを手動で再導入することは可能です。このトピックの詳細、およびコンピューターへのインストールと一般的なトラブルシューティングについては、adbタグwikiを参照してください。


どこで手に入る

以前、adbと呼ばれる別のユーティリティを入手するためにfastboot、公式パッケージが必要な場合は、GoogleからAndroid SDK全体をダウンロードする必要がありました。XDAが言うように、今日、小さな公式バンドルが利用可能になりました。最も一般的なオペレーティングシステムのバイナリが含まれています。


使い方

adbお使いのコンピュータにインストールされたクライアントは、内部サーバによるプラグインまたは他の方法で検出電話への接続を、作ります。次に、ユーザーはさまざまなコマンドを電話自体に送信できadbd、電話に常駐するデーモンであるによってリッスンされます。

を使用する場合adbshell(UID 2000)と呼ばれるユーザーを偽装します。このユーザーは特別なものであり、アプリの権限を付与し、単純なユーザーよりも多くの情報にアクセスできます。ただし、これadbはと同じことを意味するわけではありませんsu。後者を使用すると、任意のユーザーになりすますことができます。

adbとその動作に関する詳細は、公式ドキュメントを参照してください


電話からコマンドを発行する

を介して発行できるコマンドの大部分はadb、電話機にプリインストールされているユーティリティである傾向があります。

それらにアクセスするには、端末エミュレーターアプリを携帯電話にインストールする必要があります(Termuxは独自のものを指定するためPATH、システムバイナリを無視するという点で特別です)。これにより、たとえば、logcatモバイルデバイスで直接などのコマンドを発行できます。ただしadbプレフィックスは省略してください。

root権限がない場合、実行できるコマンドの範囲とアクセスできる情報adbは、それらを呼び出すUIDがアプリ自体、およびアプリはUIDよりも少ない権限を持っています2000


よくやった!残念ながら私は2度投票することはできません:) //ええ、私たちのWikiは「不明な量」であることが多すぎます。そこを頻繁に指すことはできません。しかし、そこに記載されている回答にリンクを含めると、少し遠くに行き過ぎます。どうぞお気軽に–私はコメントのクリーンアップに取り掛かります:)
Izzy

@イジーグッドポイント。待って、リンクスパムが実際に必要かどうか確認してみましょう。
Grimoire

私の投票をお願いします。
iBug 2017年

@iBug光栄です。
Grimoire

2

Android Debugging Bridge(ADB)

USBまたはWifi経由でAndroidデバイスにコマンドを送信します。通常、デバイスに接続されているコンピューターにインストールされます。ADBクライアントはデバイス自体で実行することもできますが、その目的はデバイスをリモートでデバッグすることです。

Androidソフトウェア開発キットの一部です

その後、SDKマネージャーを使用してプラットフォームツールをダウンロードできます。

プラットフォームツールだけに興味がある場合のために、ここにはより直接的なリンクもあります。

ADBドキュメント


デバイスにインストールされていない場合、デバイスのシェルで使用するように勧められるのはなぜですか?例えば私が与えた例では?
einpoklum 2017年

それは良い点です。たぶん、adbコマンドはAndroidデバイスに接続する「クライアント」であると言う方が正しいでしょう。Androidデバイスは、クライアントをインストールすることもできます。しかし、ssh localhostを実行するようなものです
jdwolf

正直に言うと、ドキュメントはこのすべてをうまく説明しています:developer.android.com/studio/command-line/adb.html
jdwolf
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.