2016年3月15日火曜日

実機をマクロ化(android)シェルを使うバージョン

スマホにシェルを置いてマクロ化する方法です。
まずはシェルの準備。

ロリポップ!レンタルサーバ

○使うもの

Android携帯
PC
USBケーブル
adb.exe

○やること
前準備        ・・・環境を整える
シェル作成の調査 ・・・シェルを作るためにスマホのログを調査
シェル作成     ・・・シェルを作成


○手順
--------------
●前準備

1.adb.exeを入手(AndroidSDKの中に入ってます。)

2.USBデバッグをONにする方法をぐぐって調べる。

3.マクロ確認用に、スマホに絵をかくスマホアプリをインストール
  私は「スケッチ」をつかってます。
  https://play.google.com/store/apps/details?id=com.sonymobile.sketch&hl=ja


●自分のスマホ用に、シェルを作るための調査

1.USBでPCとスマホを繋ぎます。

2.USBデバッグを許可します。

3.コマンドプロンプトを起動
  (windowsキー + Rキー → cmd → OK押下)

4.adbで接続確認「adb devices」


6.スマホでお絵かきアプリを立ち上げる
7.コマンドプロンプトで、スマホのイベントログをとる
  「adb shell getevent /dev/input/event0

8.スマホのお絵かきアプリ上で、タップ
9.コマンドプロンプト上にログが流れなかったら、「ctrlキー + Cキー」で、停止して
  7.へ戻って、event1、event2、event3、、と調べていく。

10.ログが流れたらeventの何番だったかメモメモ(上記だとevent1です)


●自分用のシェルの作成

1.PCのテキストでシェルを作ります。

ファイル名:tap.sh(名前何でもいいです。event1の番号を端末にあわせて変更)
sendevent /dev/input/event1 0 0 0
sendevent /dev/input/event1 3 57 0
sendevent /dev/input/event1 3 55 0
sendevent /dev/input/event1 3 53 $1
sendevent /dev/input/event1 3 54 $2
sendevent /dev/input/event1 3 58 53
sendevent /dev/input/event1 0 2 0
sendevent /dev/input/event1 0 0 0
/system/bin/sleep $5
sendevent /dev/input/event1 3 57 0
sendevent /dev/input/event1 3 55 0
sendevent /dev/input/event1 3 53 $3
sendevent /dev/input/event1 3 54 $4
sendevent /dev/input/event1 3 58 53
sendevent /dev/input/event1 0 2 0
sendevent /dev/input/event1 0 0 0
sendevent /dev/input/event1 0 2 0
sendevent /dev/input/event1 0 0 0

2.adbで接続して適当なフォルダにプッシュします。
   今回の例は/sdcard/downloadにプッシュ
  (追記:3月23日うまく動かない場合はスマホ側で、ファイルを作成しなおしてみてください。PC側で作ってからプッシュだと、文字コードとか改行コードとかが怪しいような感じだったので追記しました。

   tap.shを保存したフォルダで「adb push tap.sh /sdcard/download」
   

13.シェルのテスト

   スマホにお絵かきアプリが立ち上がった状態で
   「adb shell sh /sdcard/download/tap.sh 500 500 400 400 1」
                            引数は、[X1 Y1 X2 Y2 秒]、
   線が引けるはずです。

もし動かない場合は、イベントログを見て、シェルを修正する必要があります。
イベントログは16進で書いてあるので、シェルに書くときは10進にしてください。

---------------------

白猫だと
「adb shell sh /sdcard/download/tap.sh 500 700 700 500 1」とかで
スキル1が発動すると思います。
意味は、座標(500,700)で1秒長押しして、座標(700,500)までスワイプです。
                     (長押し、右斜め上方向にスワイプ)
「adb shell sh /sdcard/download/tap.sh 500 500 500 500 1」とかで長押し(ガードとか)になります。
「adb shell input tap 500 500」 こっちはタップ(攻撃とか)(標準で用意されてるコマンド)


ここまでできればあとはキックするプログラムかスクリプトを組めばOKです。


ロリポップ!レンタルサーバ

0 件のコメント:

コメントを投稿