2019.07.21
カテゴリ:Android
Android TIPS
ADB再起動
- USB接続でAndroid端末を接続して adb コマンドを使ってうまくいかないとき、adb サーバーの再起動コマンドを実行すればうまくいく、かも知れない。
adb kill-server adb start-server
- 参考: GDD Blog: [Android]ADB server didn't ACKがでて端末がつながらない
ADBでTCPIPで端末接続
- TCP 5555~5585 いずれかの指定したポートを使用して端末に接続する
- いきなりTCPIP接続を試みようとすると「unable to connect to xxx.xxx.xxx.xxx:5555: cannot connect to xxx.xxx.xxx.xxx:5555: 対象のコンピューターによって拒否されたた め、接続できませんでした。 (10061)」と出て接続できなかった。
- USBモードで一回接続させる必要あり?
# 端末をUSBで接続 # USBモードに変更 adb usb # TCPIPモードに変更 ポートは5555を指定 adb tcpip 5555 # 端末IPアドレスに接続(この時点でUSB接続は解除していい?) adb connect xxx.xxx.xxx.xxx:5555 # 端末の接続状態確認 adb devices # 切断 adb disconnect
- USBモードで一回接続させる必要あり?
- 参考: ネットワーク経由でadb実行する - Qiita
- 参考:Android Studio wireless ADB error (10061) - Stack Overflow
ADB経由でAndroidを操作
- adb shell input コマンドで接続端末に入力イベントを発生させることができる
# タップ(タッチスクリーンがデフォルトデバイスなので省略可) adb shell input [touchscreen] tap x y # スワイプ(長押し操作もこれを使う) adb shell input [touchscreen] swipe x1 y1 x2 y2 [duration]
- adb shell wm size で画面サイズを取得できるのでそれを目星にできそう
# 画面サイズ取得 adb shell wm size
- 参考:androidの操作を自動化したときの覚書
端末にインストールされたアプリの apk ファイルの抽出
- USB接続でAndroid端末を接続して adb コマンドを使って インストール済みパッケージ(apk)を抽出する
# パッケージの検索 (*** は任意のキーワード) adb shell pm list packages -f | findstr *** # パッケージファイルをPCにコピー (検索で出てきたパスのapkファイルをカレントディレクトリにコピーする) adb pull /data/app/***.apk
- 2017/05/31追記: Android7だと adb pull に失敗するので adb shell cp で他の場所にコピーしてそこから pull する必要があるらしい
# パッケージの検索 (*** は任意のキーワード) adb shell pm list packages -f | findstr *** # パッケージファイルをPCにコピー (検索で出てきたパスのapkファイルをカレントディレクトリにコピーする) adb shell cp /data/app/***.apk /storage/emulated/0/Download abb pull /storage/emulated/0/Download/***.apk
- 参考: 【adb shell】Android端末からapkを取り出してパソコンに保存する方法┃新!あんどろいどマニア
- 参考: Android 7.0 Nougatにおいて adb pull でapkを抽出できない問題の解決策 - Qiita
NFCを特定条件で自動オンオフする
- NFC(Felica) 搭載端末で決済可能にしている場合、端末スリープ状態でもNFCがオンなら機能は有効。
これは便利でもあるが、逆に言うと端末に機器を近付ければ勝手に支払いされる電子的なスリ行為も可能であるということ。
でも必要時だけ手動でオンにするというのは面倒だし、オフにし忘れるかもしれない。 - MacroDroid を使うと特定条件時に特定の処理をさせるというようなことができる。
例えばロック解除したらNFCをオン、画面オフでNFCをオフにする、決済用アプリ起動/終了時にオン/オフにする、など。- ただし、NFC操作など一部機能は root化 または adb hack を行わないといけない。
# adb hack - MacroDroidアプリに対して権限を付与する adb shell pm grant com.arlosoft.macrodroid android.permission.WRITE_SECURE_SETTINGS adb shell pm grant com.arlosoft.macrodroid android.permission.CHANGE_CONFIGURATION
- ただし、NFC操作など一部機能は root化 または adb hack を行わないといけない。
- 参考:AndroidのNFCを自動で無効にする方法! 特定アプリごとオンオフを切り替えて誤作動を防ごう
- 参考:MacroDroidの高度設定をroot不要で解放する方法! ADB hackでAndroidの自動化を強化しよう
Amazon Fire タブレットに Google Playをインストール
- Google Play アプリで使用するパッケージを入手して以下の順番でインストール
1. Googleアカウントマネージャー ( /data/app/com.google.android.gms-1/base.apk ) 2. Googleサービスフレームワーク ( /system/priv-app/GoogleServicesFramework/GoogleServicesFramework.apk ) 3. Google Play 開発者サービス ( /system/priv-app/GoogleLoginService/GoogleLoginService.apk ) 4. Google Play ストア ( /data/app/com.android.vending-1/base.apk )
- 参考:FireタブレットにGoogle Playをインストールする方法【2017年版(第7世代)】 | 有限工房
- 参考:amazon Fire タブレットに Google 開発者サービスや Google Play,その他の Android アプリをインストールする方法 - Plamo Linux 日記
Tag: TIPS