質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

14770閲覧

adb devicesで出力される端末のシリアル番号について

buibui80

総合スコア1033

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2016/11/17 00:09

編集2016/11/17 01:50

adb devicesで出力される端末のシリアル番号について質問がございます。

このシリアル番号はAndroid端末が元から保持する値が出力されたものだと思っていたのですが
ユーザーガイドに以下の記述を見つけました。
https://developer.android.com/studio/command-line/adb.html

<Query for devices>
Serial number — A string created by adb to uniquely identify an emulator/device instance by its console port number.

<Google翻訳>
シリアル番号 - コンソールポート番号でエミュレータ/デバイスインスタンスを一意に識別するためにadbによって作成される文字列

そして以下のような記述もあります。

<Send commands to a specific device>
you specify the target instance for a command using its adb-assigned serial number.

<Google翻訳>
adbで割り当てられたシリアル番号を使用してコマンドのターゲットインスタンスを指定します。

この説明から
adb devicesで出力されるシリアル番号はAndroid端末が元から保持する値ではなく、
adbに初回接続した時に割り振られるものだと思われますが、
このシリアル番号はどこに保存されているのでしょうか?
また、シリアル番号を任意の番号に振り直す方法はないでしょうか?

今回この質問をした経緯として、
Blade V580という機種のシリアル番号が「0123456789ABCDEF」という
ランダム要素が皆無のシリアル番号になっており、
今後機種を増やした場合にシリアル番号が重複するケースがないか心配になったからです。

以上、よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

stackoverflow - Using adb with multiple devices with the same serial number [duplicate]

stackoverflowに同じような質問がありました。

回答を見てみると、
まず、端末シリアルナンバーは、端末内の、
/sys/class/android_usb/android0/iSerial
に記録されているようです。

adb shell "cat /sys/class/android_usb/android0/iSerial"

で、確認できると思います。
ファイルの所有者はrootになっているので、いじらない方がいいでしょう。

次に、シリアルナンバーを使用しない接続方法についてですが、
USBポートを指定する方法と、
Wifi経由で接続してシリアルナンバーをIP+ポートに変える方法があるようです。

どちらも、adb -s <シリアルナンバーorUSBポート> <command>のように使用します。

端末がどのUSBポートを使っているかはadb devices -lで確認できるみたいです。
多分複数の端末をUSBで接続している場合に、usbポートが確認できると思います。
(私は端末1台しか持っていないので確認できませんでした。)

adbはあくまで、
adb上のシリアルナンバーとして利用できる文字列を作成(create)しているだけで、
端末のシリアルナンバー自体を生成(generate)しているわけではなさそうです。
端末を特定するメジャーなものをシリアルナンバーと言っているような感じがしますね。

投稿2016/11/17 02:54

abs123

総合スコア1280

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

buibui80

2016/11/17 03:21

ご回答ありがとうございます。 adb devices -l で USBポート( usb:123456789X の形式 )が詳細出力され、 adb -s usb:123456789X shell xxxxx とUSBポートを指定することで問題なく動作することを確認できました。 USBポートがadb起動ごとや端末接続ごとに更新されるかはまだ分かっていませんが、 懸念だった重複するシリアル番号での運用は問題なく出来そうです。 Wifi経由でIPとポート指定の方が良いのですが、 長時間運用するとオフライン&再Connect不可になることがあり、 結局USB経由で落ち着いた所でした。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問