(2011-02の一覧)
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

2011-02-01 Tue (他の年の同じ日: 2005 2006 2007 2010)

シェルの起動
2011-02-01-2 / カテゴリ: [shell][Android] / [permlink]

% adb shell
adbはSDK revision7まではtoolsの下にあったけど、revision8からはplatform-tools以下にあるので注意。(6→7だったかも知れん。うろ覚え)
エミュレータと実機、みたいに、複数のデバイスが接続されている場合は
% adb shell
error: more than one device and emulator
となってしまうので、
% adb devices
List of devices attached
emulator-5554   device
HT**********    device
で一覧を出して、
% adb -s emulator-5554 shell
と、シリアルナンバーでデバイスを指定してやる。

詳しくは
% adb -h
で見れる。

なお、シェルコマンドは(sshのリモートコマンド実行の要領で)
% adb [-s serialnumber] shell [command [arg...]]
で、一気に実行できる。

ちなみにシェルはsh(だよな?)。タイムマシンに乗った気分。
環境によって違うと思うけど、エミュレータ(2.2/デフォルトパラメタで作成)だと
# printenv
printenv
ANDROID_ROOT=/system
LD_LIBRARY_PATH=/system/lib
PATH=/sbin:/system/sbin:/system/bin:/system/xbin
ASEC_MOUNTPOINT=/mnt/asec
BOOTCLASSPATH=/system/framework/core.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar
ANDROID_BOOTLOGO=1
ANDROID_ASSETS=/system/app
EXTERNAL_STORAGE=/mnt/sdcard
ANDROID_DATA=/data
ANDROID_PROPERTY_WORKSPACE=9,32768
# cat /proc/cpuinfo
cat /proc/cpuinfo
Processor       : ARM926EJ-S rev 5 (v5l)
BogoMIPS        : 279.34
Features        : swp half thumb fastmult vfp edsp java
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant     : 0x0
CPU part        : 0x926
CPU revision    : 5

Hardware        : Goldfish
Revision        : 0000
Serial          : 0000000000000000

desireII(2.2/ドノーマル)だと
$ printenv
printenv
ANDROID_ROOT=/system
LD_LIBRARY_PATH=/system/lib
PATH=/sbin:/system/sbin:/system/bin:/system/xbin
ASEC_MOUNTPOINT=/mnt/asec
BOOTCLASSPATH=/system/framework/core.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/com.htc.framework.jar:/system/framework/com.htc.android.pimlib.jar:/system/framework/com.htc.android.easopen.jar:/system/framework/com.scalado.util.ScaladoUtil.jar
ANDROID_BOOTLOGO=1
ANDROID_ASSETS=/system/app
EXTERNAL_STORAGE=/mnt/sdcard
ANDROID_DATA=/data
ANDROID_PROPERTY_WORKSPACE=10,65536
$ cat /proc/cpuinfo
cat /proc/cpuinfo
Processor       : ARMv7 Processor rev 2 (v7l)
BogoMIPS        : 162.54
Features        : swp half thumb fastmult vfp edsp thumbee neon
CPU implementer : 0x51
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0x00f
CPU revision    : 2

Hardware        : bravo
Revision        : 0083
Serial          : 0000000000000000

などなど

エミュレータでパケットキャプチャ
2011-02-01-1 / カテゴリ: [command][network][Android] / [permlink]

ホストPCやサーバ側でキャプチャできない環境の場合、エミュ自身の内蔵tcpdumpでキャプチャ可能。
多分使う機会はホストがwindowsで、ホスト自身で動かしてるサーバへアクセスする際のキャプチャくらいかね。(リモートならEthereal使えば良し)

基本は
# tcpdump -s 0 -X port 80
など。

-s 0 は、未指定だとデフォルトキャプチャサイズが96bytesになり、キャプチャ漏れが発生するので、適当に指定すればよし。0指定だと65535byteになる。
-X は指定なしだと訓練されていないと読めない(笑)

port 80 の部分は、キャプチャのフィルタ条件。指定がないとidleでも結構パケットが飛んでいるので、見たいパケットが見えなくなる。
"port 80" で 80/TCP の全てのパケット
"host jp-z.jp" で、jp-z.jp との全パケット
"port 80 and host jp-z.jp" で↑のand

「コマンドラインじゃわからん!wiershark/etherealで見たいんだ!」な場合は
# tcpdump -s 0 -w /mnt/sdcard/capture.cap port 80
でキャプチャ結果をファイルへ出力できるので、DDMSのファイルエクスプローラで取り出して見ればOK
あとはググッてねん。

ちなみに停止の^Cで、シェルごとなぜか抜けてしまうので、PCのシェル(コマンドライン)上で
% adb -s emulator-5554 shell tcpdump -s 0 -w /mnt/sdcard/capture.cap port 80 and host jp-z.jp
とした方が良いかも知れん。


実機だとpermission deniedになる。うーん、rootな端末もあった方が良いのかも。
前の日 / 次の日 / 最新 / 2011-02

2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12

最終更新時間: 2013-05-02 16:12