Androidのシステム情報を取得する


Android端末から機種名やバージョンなどビルド情報を取得する方法を紹介します。
Android.os.Buildを使うと、機器固有の情報を取り扱うことができます。

Android.os.Buildから取得できる文字列、情報

取得できるビルド情報 説明
BOARD ボード(基盤)名称
BOOTLOADER ブートローダのバージョン番号(Android 1.6未対応)
BRAND ブランド名(たとえばキャリア、メーカー名など)
CPU_ABI ネイティブコードの命令セット(armeabi-v7aなどCPU-ABI順)
CPU_ABI2 ネイティブコードの第2命令セット(Android 1.6未対応)
DEVICE デバイス名
DISPLAY ユーザへ表示するビルドID
FINGERPRINT 一意にビルドを識別することができる識別子
HARDWARE ハードウェア名(Android1.6未対応)
HOST ホスト名
ID 変更番号もしくは一意なラベル
MANUFACTURER 製造者名
MODEL 最終的にユーザへ表示するモデル名
PRODUCT 製品名
RADIO 無線ファームウェアのバージョン(Android1.6未対応)
TAGS release-keys、test-keysなど。ビルドのタグ名
TIME システム時刻
TYPE ビルドタイプ。userやengなど
UNKNOWN 情報不明時の識別子(不明を示す文字列"unknown"など。Android1.6未対応)
USER ユーザ情報
VERSION.CODENAME 開発コードネーム。リリース時は"REL"
VERSION.INCREMENTAL ソースコード管理番号(チェンジセットの変更回数など)
VERSION.RELEASE ユーザーに表示するバージョン番号
VERSION.SDK 非推奨 SDK_INT利用のこと。
VERSION.SDK_INT フレームワークのバージョン情報

Build.UNKNOWNは不明な場合を定義しています。大抵、”unknown”など不明を示す文字列が入っています。
この場合は、ほかのビルド情報に格納されている情報が”unknown”と一致していれば不明または未提供の情報と判断できます。
取得できる情報は、Androidのバージョンによって異なっており、最新のAndroid2.2をベースに考えるとAndroid 1.6では、

  • ブートローダーのバージョン: Build.BOOTLOADER
  • CPU第2命令セット: Build.CPU_ABI2
  • ハードウェア情報: Build.HARDWARE
  • ラジオ(無線)ファームウェアバージョン: Build.RADIO
  • 情報不明時の識別子: Build.UNKNOWN

が取得できません。
以下、サンプルコードと主な開発環境(NexusOne、JN-DK01、エミュレータ)で取得できるBuild情報です。

サンプルコード

        Log.d("build","BOARD:" + Build.BOARD);
        Log.d("build","BOOTLOADER:" + Build.BOOTLOADER);	//Android 1.6未対応
        Log.d("build","BRAND:" + Build.BRAND);
        Log.d("build","CPU_ABI:" + Build.CPU_ABI);
        Log.d("build","CPU_ABI2:" + Build.CPU_ABI2);		//Android 1.6未対応
        Log.d("build","DEVICE:" + Build.DEVICE);
        Log.d("build","DISPLAY:" + Build.DISPLAY);
        Log.d("build","FINGERPRINT:" + Build.FINGERPRINT);
        Log.d("build","HARDWARE:" + Build.HARDWARE);		//Android 1.6未対応
        Log.d("build","HOST:" + Build.HOST);
        Log.d("build","ID:" + Build.ID);
        Log.d("build","MANUFACTURER:" + Build.MANUFACTURER);
        Log.d("build","MODEL:" + Build.MODEL);
        Log.d("build","PRODUCT:" + Build.PRODUCT);
        Log.d("build","RADIO:" + Build.RADIO);				//Android 1.6未対応
        Log.d("build","TAGS:" + Build.TAGS);
        Log.d("build","TIME:" + Build.TIME);
        Log.d("build","TYPE:" + Build.TYPE);
        Log.d("build","UNKNOWN:" + Build.UNKNOWN);			//Android 1.6未対応
        Log.d("build","USER:" + Build.USER);
        Log.d("build","VERSION.CODENAME:" + Build.VERSION.CODENAME);
        Log.d("build","VERSION.INCREMENTAL:" + Build.VERSION.INCREMENTAL);
        Log.d("build","VERSION.RELEASE:" + Build.VERSION.RELEASE);
        Log.d("build","VERSION.SDK:" + Build.VERSION.SDK);
        Log.d("build","VERSION.SDK_INT:" + Build.VERSION.SDK_INT);

NexusOne

Googleの開発機NexusOne(Android2.2)のビルド情報です

09-28 01:51:33.190: DEBUG/build(3366): BOARD:mahimahi
09-28 01:51:33.190: DEBUG/build(3366): BOOTLOADER:0.33.0012
09-28 01:51:33.190: DEBUG/build(3366): BRAND:google
09-28 01:51:33.190: DEBUG/build(3366): CPU_ABI:armeabi-v7a
09-28 01:51:33.190: DEBUG/build(3366): CPU_ABI2:armeabi
09-28 01:51:33.190: DEBUG/build(3366): DEVICE:passion
09-28 01:51:33.190: DEBUG/build(3366): DISPLAY:FRF91
09-28 01:51:33.190: DEBUG/build(3366): FINGERPRINT:google/passion/passion/mahimahi:2.2/FRF91/43546:user/release-keys
09-28 01:51:33.190: DEBUG/build(3366): HARDWARE:mahimahi
09-28 01:51:33.190: DEBUG/build(3366): HOST:android-test-27.mtv.corp.google.com
09-28 01:51:33.190: DEBUG/build(3366): ID:FRF91
09-28 01:51:33.190: DEBUG/build(3366): MANUFACTURER:HTC
09-28 01:51:33.190: DEBUG/build(3366): MODEL:Nexus One
09-28 01:51:33.190: DEBUG/build(3366): PRODUCT:passion
09-28 01:51:33.190: DEBUG/build(3366): RADIO:unknown
09-28 01:51:33.190: DEBUG/build(3366): TAGS:release-keys
09-28 01:51:33.190: DEBUG/build(3366): TIME:1277930906000
09-28 01:51:33.190: DEBUG/build(3366): TYPE:user
09-28 01:51:33.200: DEBUG/build(3366): UNKNOWN:unknown
09-28 01:51:33.200: DEBUG/build(3366): USER:android-build
09-28 01:51:33.200: DEBUG/build(3366): VERSION.CODENAME:REL
09-28 01:51:33.200: DEBUG/build(3366): VERSION.INCREMENTAL:43546
09-28 01:51:33.200: DEBUG/build(3366): VERSION.RELEASE:2.2
09-28 01:51:33.200: DEBUG/build(3366): VERSION.SDK:8
09-28 01:51:33.200: DEBUG/build(3366): VERSION.SDK_INT:8

シャープ・JN-DK01

シャープの開発機JN-DK01のビルド情報です。Android1.6のため、無線ファームウェア番号などには未対応です。

09-28 02:14:27.067: DEBUG/build(2103): BOARD:JNDK01
09-28 02:14:27.067: DEBUG/build(2103): BRAND:SHARP
09-28 02:14:27.067: DEBUG/build(2103): CPU_ABI:armeabi
09-28 02:14:27.067: DEBUG/build(2103): DEVICE:JNDK01
09-28 02:14:27.067: DEBUG/build(2103): DISPLAY:JNDK01-userdebug 1.6 S6196 01.01.00 test-keys
09-28 02:14:27.067: DEBUG/build(2103): FINGERPRINT:SHARP/JNDK01/JNDK01/JNDK01:1.6/S6196/01.01.00:userdebug/test-keys
09-28 02:14:27.067: DEBUG/build(2103): HOST:TG572802
09-28 02:14:27.067: DEBUG/build(2103): ID:S6196
09-28 02:14:27.067: DEBUG/build(2103): MANUFACTURER:SHARP
09-28 02:14:27.067: DEBUG/build(2103): MODEL:JN-DK01
09-28 02:14:27.067: DEBUG/build(2103): PRODUCT:JNDK01
09-28 02:14:27.067: DEBUG/build(2103): TAGS:test-keys
09-28 02:14:27.067: DEBUG/build(2103): TIME:1278051843000
09-28 02:14:27.067: DEBUG/build(2103): TYPE:userdebug
09-28 02:14:27.067: DEBUG/build(2103): USER:nbproj
09-28 02:14:27.067: DEBUG/build(2103): VERSION.CODENAME:REL
09-28 02:14:27.067: DEBUG/build(2103): VERSION.INCREMENTAL:01.01.00
09-28 02:14:27.067: DEBUG/build(2103): VERSION.RELEASE:1.6
09-28 02:14:27.067: DEBUG/build(2103): VERSION.SDK:4
09-28 02:14:27.067: DEBUG/build(2103): VERSION.SDK_INT:4

Android SDK 標準シミュレータ(API Levele.8)

ゴールドフィッシュのビルド情報です。

09-27 16:59:32.143: DEBUG/build(325): BOARD:unknown
09-27 16:59:32.163: DEBUG/build(325): BOOTLOADER:unknown
09-27 16:59:32.163: DEBUG/build(325): BRAND:generic
09-27 16:59:32.163: DEBUG/build(325): CPU_ABI:armeabi
09-27 16:59:32.173: DEBUG/build(325): CPU_ABI2:unknown
09-27 16:59:32.203: DEBUG/build(325): DEVICE:generic
09-27 16:59:32.203: DEBUG/build(325): DISPLAY:sdk-eng 2.2 FRF91 43546 test-keys
09-27 16:59:32.203: DEBUG/build(325): FINGERPRINT:generic/sdk/generic/:2.2/FRF91/43546:eng/test-keys
09-27 16:59:32.203: DEBUG/build(325): HARDWARE:goldfish
09-27 16:59:32.213: DEBUG/build(325): HOST:android-test-25.mtv.corp.google.com
09-27 16:59:32.213: DEBUG/build(325): ID:FRF91
09-27 16:59:32.213: DEBUG/build(325): MANUFACTURER:unknown
09-27 16:59:32.213: DEBUG/build(325): MODEL:sdk
09-27 16:59:32.213: DEBUG/build(325): PRODUCT:sdk
09-27 16:59:32.233: DEBUG/build(325): RADIO:unknown
09-27 16:59:32.233: DEBUG/build(325): TAGS:test-keys
09-27 16:59:32.233: DEBUG/build(325): TIME:1277931480000
09-27 16:59:32.243: DEBUG/build(325): TYPE:eng
09-27 16:59:32.243: DEBUG/build(325): UNKNOWN:unknown
09-27 16:59:32.273: DEBUG/build(325): USER:android-build
09-27 16:59:32.273: DEBUG/build(325): VERSION.CODENAME:REL
09-27 16:59:32.283: DEBUG/build(325): VERSION.INCREMENTAL:43546
09-27 16:59:32.283: DEBUG/build(325): VERSION.RELEASE:2.2
09-27 16:59:32.303: DEBUG/build(325): VERSION.SDK:8
09-27 16:59:32.303: DEBUG/build(325): VERSION.SDK_INT:8