約 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
、電話に常駐するデーモンであるによってリッスンされます。
を使用する場合adb
、shell
(UID 2000
)と呼ばれるユーザーを偽装します。このユーザーは特別なものであり、アプリの権限を付与し、単純なユーザーよりも多くの情報にアクセスできます。ただし、これadb
はと同じことを意味するわけではありませんsu
。後者を使用すると、任意のユーザーになりすますことができます。
adb
とその動作に関する詳細は、公式ドキュメントを参照してください。
電話からコマンドを発行する
を介して発行できるコマンドの大部分はadb
、電話機にプリインストールされているユーティリティである傾向があります。
それらにアクセスするには、端末エミュレーターアプリを携帯電話にインストールする必要があります(Termuxは独自のものを指定するためPATH
、システムバイナリを無視するという点で特別です)。これにより、たとえば、logcat
モバイルデバイスで直接などのコマンドを発行できます。ただし、adb
プレフィックスは省略してください。
root権限がない場合、実行できるコマンドの範囲とアクセスできる情報adb
は、それらを呼び出すUIDがアプリ自体、およびアプリはUIDよりも少ない権限を持っています2000
。