急げ!! いまなら使えるイースターエッグ「adb lolcat」

lolcat_-_Google_Search

lolcat(ロルキャット、あるいはエル・オー・エル・キャット)は、多くの場合ネコの画像にユーモラスで風変わりなキャプションを、正しくない英語で付けたものである。インターネットスラングなどに見られる文法の貧弱な英語のパロディである。lolcatは笑いを表す頭文字語のLOLと「cat」(ネコ)の複合語である。

Lolcat - Wikipedia

android のデバッグツールである「adb」の隠しコマンドが, Android N で 削除されはじめているようです.

$ adb hell

adb_hell

    else if (!strcmp(argv[0], "shell") || !strcmp(argv[0], "hell")) {
        char h = (argv[0][0] == 'h');
        if (h) {
            printf("\x1b[41;33m");
            fflush(stdout);
        }

adb/commandline.cpp - 6.0.1_r22

以下は, Nでも 健在です.

いまのうちに使っておきましょう.

$ adb lolcat

 /* other commands */
    else if (!strcmp(argv[0],"logcat") || !strcmp(argv[0],"lolcat") || !strcmp(argv[0],"longcat")) {
        return logcat(transport_type, serial, argc, argv);
    }

$ adb longcat

    if (!strcmp(argv[0], "longcat")) {
        cmd += " -v long";
    }

adb/commandline.cpp - Android N Preview1

どうでもいいですかね.


PHP+ADB でAndroid画面操作の保存と再現をする

adb経由で getevent/sendevent を使います.

Getevent | Android Developers

adb_—_121×44

やってみておもしろかったの以下からのPHPへの移植です.

getevent/sendeventでAndroid端末の操作自動化

実行方法は同様に,ADB接続したパソコン上コンソールから

保存

$ adb shell getevent /dev/input/event2 | php getevent.php > events.txt

保存したファイルはシェルスクリプトです.

$ cat event.txt
sleep 0.000
adb shell sendevent /dev/input/event2 0 0 0
sleep 0.000
adb shell sendevent /dev/input/event2 3 53 283
sleep 0.010
adb shell sendevent /dev/input/event2 3 54 2331
sleep 0.000
adb shell sendevent /dev/input/event2 0 0 0
sleep 0.000
adb shell sendevent /dev/input/event2 3 57 4294967295
sleep 0.060
adb shell sendevent /dev/input/event2 0 0 0
sleep 0.000
adb shell sendevent /dev/input/event2 3 57 1886
sleep 0.344
adb shell sendevent /dev/input/event2 3 53 800
sleep 0.000
adb shell sendevent /dev/input/event2 3 54 2312
sleep 0.000
adb shell sendevent /dev/input/event2 3 58 64
sleep 0.000
adb shell sendevent /dev/input/event2 3 48 4
sleep 0.000
adb shell sendevent /dev/input/event2 0 0 0
sleep 0.000
adb shell sendevent /dev/input/event2 3 53 798
sleep 0.010
adb shell sendevent /dev/input/event2 3 54 2311
...

このときの タッチパネルを表す /dev/input/event2 は端末によって違います.

コンソールから以下で確認しましょう.

以下Nexus4の場合.

$ adb shell getevent
add device 1: /dev/input/event0
  name:     "pmic8xxx_pwrkey"
add device 2: /dev/input/event1
  name:     "keypad_8064"
add device 3: /dev/input/event4
  name:     "apq8064-tabla-snd-card Headset Jack"
add device 4: /dev/input/event3
  name:     "apq8064-tabla-snd-card Button Jack"
add device 5: /dev/input/event5
  name:     "hs_detect"
add device 6: /dev/input/event2
  name:     "touch_dev"
^C

再現

$ sh events.txt

続きを読む >>


リカバリーモード「コマンドが指定されていません。」からリカバリメニューを表示する

 

Android OS デフォルト状態でも使えたのですね。

IMG_20131211_023824.277

「コマンドが指定されていません。」

て表示されて、あれっ、と思ったりしましたが。

 

この状態から、「電源ボタン+ボリュームボタン上(下)押すと」とか
あちこちで見かけましたが。

 

Nexus5(Kitkat)の場合は、

ボリュームボタン上の単独押し

で表示されました。

 

メニュー項目は以下でした。

「reboot system now」
「apply update from ADB」
「wipe data/factory reset」
「wipe cache partition」

詳細は以下ツイートからどうぞ。



OSデフォルトでも「adb sideload 」などが使えたのですね。

xda-developers - Threads Tagged with adb sideload