Android向けの自動化アプリは色々とありますが、直観的に自動化の設定ができる初心者にオススメな「MacroDroid」がボクのお気に入りです。
本ブログでも様々な自動化設定(マクロ)を紹介しています。
「MacroDroid」で設定できる組み合わせは膨大ですが、一部「アクション」機能は「rootまたはADB hack済み」と表示され、設定してもエラー表示が出ます。
実は「MacroDroid」で設定できる「アクション」は3種類に大別され、
- 通常の端末で設定できるアクション
- root化またはADB hack済みの端末で設定できるアクション
- root化端末のみで設定できるアクション
例えば「モバイルデータのオン/オフ」・「没入型モード」など、Androidシステム中枢に関わる高度なアクションが該当します。
エラー表示のままだとマクロが正常に機能しませんが、root化を実行するとメーカー保証対象外となるなど、一般ユーザーからするとハードルが高いでしょう。
そこで今回はもう1つの選択肢である「ADB hack済み」条件を満たすことで、より高度な「アクション」の組み合わせを実現する手順を解説します。
具体的には「adb(=Android Debug Bridge)」を使って指定コマンドを流すことで「アクション」の制限機能をroot不要で撤廃できます。
MacroDroidのADB hackを解放する方法
事前準備:パソコンのadb環境を用意する
adbコマンドを使用する事前準備として、次の3点が必要です。
- パソコン側でadbコマンドを使用できる環境を整える
- パソコンとAndroidを接続するケーブルを用意する
- AndroidのUSBデバッグを有効にする
パソコン側でadbコマンドを使用できる環境を整える
お使いのパソコンでadbコマンドを使用できる環境が必要です。
Windows・Macそれぞれにおける手順は関連記事で解説しています。
パソコンとAndroidを接続するケーブルを用意する
パソコンとAndroidを接続するケーブルも必要です。
AndroidのUSB端子の形状(micro USB / Type C)に合わせ用意しましょう。
AndroidのUSBデバッグを有効にする
Androidの設定で ビルド番号 を連続タップして 開発者向けオプション を有効にした後、USBデバッグ を有効にして下さい。
USBデバッグを有効にする詳細な手順は、関連記事【AndroidでUSBデバッグを有効/無効にする方法! 設定をオンオフ切り替えよう】で解説しています。
adbコマンドを使用する事前準備は以上です。
adbコマンドを実行する
Androidに「MacroDroid」をインストールしておき、
パソコンとAndroidを接続してから、2つのadbコマンドを順番に実行します。
adb shell pm grant com.arlosoft.macrodroid android.permission.WRITE_SECURE_SETTINGS
adb shell pm grant com.arlosoft.macrodroid android.permission.CHANGE_CONFIGURATION
もし下記のようなエラーが出る場合、Android側で先述した「USBデバッグ」がオンになっているか再度確認して下さい。
error: no devices/emulators found
作業はコレだけ。
MacroDroidで制限がかかっている「アクション」機能でマクロを組み、エラー表示が出ないことを確認できれば成功です!
実際にマクロを動かして、動作性も検証しましょう。
なお付与した権限を放棄して、元の状態に戻したい場合、次のコマンドを実行すればOK。
adb shell pm revoke com.arlosoft.macrodroid android.permission.WRITE_SECURE_SETTINGS
adb shell pm revoke com.arlosoft.macrodroid android.permission.CHANGE_CONFIGURATION
参考:「ADB hack済み」で設定できるマクロ例まとめ
今回のadbコマンドを流す方法で「rootまたはADB hack済み」制限を解除して設定できるマクロを紹介します。
条件に応じてNFCを自動で無効にするマクロ
特定の条件に応じて、AndroidのNFC機能をオン / オフ切り替えができます。
例えばアプリの起動 / 終了をトリガーとするケースのマクロは下記通り。
マクロ①
- トリガー:アプリの起動 / 終了(Edyチャージアプリを開いたら)
- アクション:NFC機能の設定(NFCをオンにする)
- 条件:任意(設定しなくてもOK)
マクロ②
- トリガー:アプリの起動 / 終了(Edyチャージアプリを閉じたら)
- アクション:NFC機能の設定(NFCをオフにする)
- 条件:任意(設定しなくてもOK)
毎回決まったアプリでNFCを使っているなら、必要なときだけ機能を有効に自動切り替えできます。
条件に応じてGPSを自動で無効にするマクロ
特定の条件に応じて、AndroidのGPS機能をオン / オフ切り替えができます。
例えばアプリの起動 / 終了をトリガーとするケースのマクロは下記通り。
マクロ①
- トリガー:アプリの起動 / 終了(Googleマップを開いたら)
- アクション:位置情報モード設定(GPSをオンにする)
- 条件:任意(設定しなくてもOK)
マクロ②
- トリガー:アプリの起動 / 終了(Googleマップを閉じたら)
- アクション:位置情報モード設定(GPSをオフにする)
- 条件:任意(設定しなくてもOK)
毎回決まったアプリでGPSを使っているなら、必要なときだけ機能を自動切り替えすればバッテリー節約になりますよ。
詳細は関連記事【AndroidのGPSを自動で無効にする方法! 特定アプリで位置情報オンオフを切り替えてバッテリーを節約しよう】で解説しています。
条件に応じて全画面モードへ切り替えるマクロ
特定の条件に応じて、Androidの画面表示をフルスクリーンへ切り替えができます。
例えばChromeの起動 / 終了をトリガーとするケースのマクロは下記通り。
マクロ①
- トリガー:アプリの起動 / 終了(Chromeを開いたら)
- アクション:没入型モード設定(全画面表示をオンにする)
- 条件:任意(設定しなくてもOK)
マクロ②
- トリガー:アプリの起動 / 終了(Chromeを閉じたら)
- アクション:没入型モード設定(全画面表示をオフにする)
- 条件:任意(設定しなくてもOK)
特定のアプリをフルスクリーン表示したい場合、自動化できるので大変便利ですよ。
Androidの全画面表示に関して、より詳しい情報は関連記事【Androidを全画面表示する方法! ステータスバー/ナビゲーションバー/ホームボタンを隠してフルスクリーンモードへ】で解説しています。
条件に応じてモバイルデータ通信を自動で無効にするマクロ
特定の条件に応じて、Androidのモバイルデータ通信(LTE / 4G)機能をオン / オフ切り替えができます。
例えばアプリの起動 / 終了をトリガーとするケースのマクロは下記通り。
マクロ①
- トリガー:アプリの起動 / 終了(YouTubeを開いたら)
- アクション:モバイルデータ通信設定(LTEをオフにする)
- 条件:任意(設定しなくてもOK)
マクロ②
- トリガー:アプリの起動 / 終了(YouTubeを閉じたら)
- アクション:モバイルデータ通信設定(LTEをオンにする)
- 条件:任意(設定しなくてもOK)
データ通信量の多いアプリ(例:動画アプリ / ゲームアプリ)に対してこの設定をすれば、パケットの節約になりますよ。
詳細は関連記事【[Android] 個別アプリごと4G(LTE)を強制的にオフにする方法! スマートフォン指定機能でモバイルデータ通信を自動で無効化しよう】で解説しています。
モバイルデータ通信の制御は「ADB hack済み」の条件を満たしていても、Androidの機種やOSバージョンによっては正常に動作しないことがあります。
この場合、端末のroot化が必須となります。
注意:条件が「root」のみのアクションは設定できない
条件が「root」のみのアクションは、残念ながら今回の方法でも解放されません。
参考までに制限付きアクションの条件をまとめました(MacroDroidバージョン3.23.3で確認した内容です)。
rootまたはADB hack済み
- NFCの有効化/無効化
- モバイルデータのオン/オフ
- バッテリーセーバー
- 没入型モード
- 位置情報モードを変更
- ヘッドアップ通知を有効にする・無効にする
root化端末のみ
- スクリーンショットを撮る
- USBテザリング
- 機内モードのオン/オフ
- 再起動/電源を切る
- GPSの有効化/無効化
- 電話に出る
- アプリの有効/無効
- アプリを強制停止
- アプリデータの削除
- アプリの通知設定
もし「root」のみのアクションを設定したい場合、端末をroot化した上で、
「MacroDroid」にスーパーユーザー権限を許可する必要があります。
〆:ADB hackで高度なアクションを組もう!
以上、MacroDroidの高度設定をroot不要で解放する方法! ADB hackでAndroidの自動化を強化しよう の説明でした。
「ADB hack」条件を満たすことで、よりAndroidシステム中枢に関わる高度なアクションでマクロを組むことができます。
ぜひ、お試しあれ。
参考 MacroDroid Forums – Granting WRITE_SECURE_SETTINGS permission via ADB
コメント
googlemap起動時に位置情報をonにするのですが
使用後位置情報はonのまま。
なんとかならないかな?と思い探していると
こちらにrootをとらずに自動化できるという記事にあたりました
コマンドでエラーが出たりしましたが
そこはググることで解決。
結果はgooglemapでon、終了でoffができました。
一部のデバイスでは、開発者オプションの「認可の監視を無効化する」も有効にする必要がありますね。
最近macrodroidを使い始めたのですが、このコマンドのような「adb shell pm grant com.arlosoft.macrodroid android.permission.WRITE_SECURE_SETTINGS」を一回実行すればその後再起動しても使用できるのでしょうか?