駅前散策ブログ@かわさき HOT

しゃくねつの♪ ふぁいやーだぁんす♪

【Android】【ADB Hack】処理が終わらない ~こぼれ落ちる涙のShizuku~ LADBとは違うワイヤレスデバッグADBアプリはどうだろう?

2024-01-17 21:32:44 | Android 関係
(´・ω・)ノ < らいなーです。

こーたーえがー
みつかーらない♪

もーどかしさでーいつかーらかー♪

麻婆カレーのレシピ取り逃した!
もーおーもどれーなーいー♪

今日は会社で絶不調だったのに残業もした件。帰宅後かなりのプライベートタスクが空転、暫くこのドタバタが続きそう。

さて。

AndroidでLADBと同様に、Android11以降であればワイヤレスデバック機能を利用して、【PCの用意が不要で】携帯端末だけでADB可能なソフトがあるそうです。

名前は「Shizuku」といい、開発は中國南京市玄武区(xuang wu)で行われているようです。Google Play Storeのリンクはこちら。


Shizuku - Apps on Google Play

Shizuku is an open-source app for serving multiple apps that require root/adb.


早速マニュアルを見ながらセットアップしてみます。

1.まずは、「Shizuku」アプリを起動して、表示されるインフォメーションから「ペアリング」をタップします。

LADBでもそうでしたが、
設定>システム>開発者オプション>ワイヤレスデバッグの機能を利用するために、任意のWIFIネットワークに端末を接続してペアリングをする必要があります。



2.次に表示されるインフォメーションから「通知オプション」をタップします。



「Shizuku」アプリの通知をオンにするかどうかの確認が求められます。



3.「Shizukuのすべての通知」をタップして、通知を有効にします。
この作業は、「Shizuku」アプリ側でワイヤレスデバッグの有効化を監視するために、常駐通知をオンにしているものと思われます。



通知をオンにして、「ペアリングサービスを探しています」の通知が出てきたら、次に進みましょう。

4.通知をオンにしたら、「Shizuku」アプリ側に画面を戻して、インフォメーション欄から「開発者向けオプション」をタップします。



すると、通常の操作では
設定>システム>開発者オプション
と辿らないといけない設定欄に遷移しますので、USBデバッグをON、続けて、ワイヤレスデバッグをONにします。
このとき、開発者オプションが表示されておらずうまく行かない場合には、
以下を参照して、お使いの携帯端末に合わせた開発者オプションをONにする操作が必要になるかもしれません。

5.ワイヤレスデバッグをON にしたら、ワイヤレスデバッグの詳細から、「ペア設定コードによるデバイスのペア設定」をタップします。



すると「デバイスとのペア設定」ダイアログが表示されます。
この時点で、通知欄の「ペアリングサービスを探しています」の通知メッセージは、「ペアリングサービスを見つけました」となり、通知欄の下部に「ペアリングコードを入力」という表示になる筈です。



6.「WI-FIペア設定コード」欄の数字をメモしておくなどして、通知欄の「ペアリングサービスを見つけました」下部に表示されている「ペアリングコードを入力」をタップし、メモしたコードを入力します。



7.入力欄右横の紙飛行機マークをタップして入力を確定させます。
暫く待つと、ワイヤレスデバッグのペアリングが完了します。
(この認識はLADBより、優れていると感じますね。かなり楽です。)



8.ペアリングが完了すると、「Shizuku」アプリ本体側のインフォメーションに、今まで表示されていなかった「ターミナルアプリで『Shizuku』を利用する」欄が表示されるようになりますので、それをタップします。

注)
ご利用の端末によっては、ペアリング完了後、一度ワイヤレスデバッグをオフ→再度オンにしてから、「Shizuku」アプリ側の「開始」ボタンを押して【コマンドの羅列が表示され】ないと、「Shizuku」がadbコマンドの受付状態(=実行中)にならないようです。私の端末はこれに引っ掛かりました。




9.タップして表示された画面のインフォメーション欄中ほどにある「ファイルのエクスポート」をタップします。



ファイルピッカーが起動しますので、任意の場所、たとえば一般的なAndroidの
/storage/emulated/0 直下に、「Shizuku」フォルダを作り、そのフォルダに対してファイルピッカーのアクセス権を付与します。



すると、当該フォルダには、二つのファイルが出来るのですが、それらのファイルを確認するのには、別途、ファイラーアプリが必要になりますから、ここでいったん、「Shizuku」アプリから離れます。

10.ファイラーアプリで、前項9.のなかで作成した、例えば
/storage/emulated/0/Shizuku フォルダを開きます。

rish
rish_shizuku.dex

の二つのファイルが確認できる筈です。



11.「rish」ファイル(拡張子がないほうです)をテキストエディタを仲介して開きます。Mixplorerはテキストエディタが組み込まれているので直ぐに確認できますが、ほかのファイラーでは、共有からほかのアプリにファイルを「流す(=引き渡してあげる)」必要があるはずです。

11.「rish」ファイル中の「PKG」記載の箇所(★ファイル内に1ヶ所しかありません)を、お使いのターミナルアプリのパッケージ名に変更して、ファイルを上書き保存します。
たとえば、termuxを利用する場合には、「com.termux」と指定して、ファイルを上書き保存する形になります。



12.これで準備完了!
Termuxを起動して、先ほど手順9.で作成したフォルダにcdします。

おおっと!
アクセス出来ない方!
もしかして Termuxを入れた直後に termux-setup-storageコマンドをお忘れではありませんか?

もしコマンドを忘れていなければ、
cd ~/storage/shared/shizuku
で対象フォルダにアクセス出来ると思います。

13.Termuxで対象フォルダにcdコマンドで遷移したら「sh rish」コマンドを発行して、ADB 待機モードに遷移させます。



Macrodroidをadb hackするときにお馴染みのコマンドを試してみましょう…

adb shell pm grant com.arlosoft.macrodroid android.permission.WRITE_SECURE_SETTINGS

あれ?



失敗しますね。



ADB Hackも上手くいっていません…
手順は間違えていない様なのですが。

LADBも最新版はなんだか不安定なんですが、一応同じ端末でADB Hack出来るのです。

「Shizuku」については、もう少し調べる必要があるようですね
( ´~`) うまいこと行きませんねぇ……。



202301241550追記;

というわけで、色々情報を頂いたりなどで、
成功に至った次第でありまして。

まず、手順12の段階で、

ls ~/storage/shared/shizuku

とTermux上でコマンドを実行し、
rishとrish_shizuku.dexの二つのファイルが存在するかを確認できたら、

Termuxのホームフォルダに二つのファイルを移すため、コマンド

mv ~/storage/shared/shizuku/r* ~/


を実行します。

これで、フォルダ「Shizuku」の中にあった
rishとrish_shizuku.dexの両ファイルが、Termuxのホームフォルダに移動されます。
移動するのは、その方が後々便利だからです。(Termuxプラグインを介してMacrodroidでコマンドを発行するシェルスクリプトを書くとき楽。)

14.rishファイルに実行権限を与えないと、コマンドが軒並みエラーになるので、Termuxからコマンドで

chmod +x ~/rish; ~/rish

を実行して、rishに権限を付与しつつrishを起動テストします。



プロンプトがSarah: と表示されることで、
rishが起動したことを確認できます。

15. rishから、exitコマンドでSarahプロンプトから抜けます。

16.adbコマンドの発行をテストします。
試しに

Termuxのコマンドで、

~/rish -c "svc data disable"

して、
キャリアの通信が止まるか確認します。

端末のモバイル通信の直角三角形マークの右横に!マークがつけば、通信がShizukuのadb 経由で停止しています。

17. 通信の停止が確認できたら、

Termuxのコマンドで

~/rish -c "svc data enable"

して、キャリアの通信を復元します。



rishの-cオプションは、
【adbのシェル影響範囲内】(簡単には、adb shellがオープンになっている状態)なので、
わざわざadbをコマンドに付与する必要はないそうです。

adb以降のコマンド部分は
rish -c "adbの(adb以降の部分の)コマンド"
のように、
コマンド文字列をダブルクォーテーションで括って実行することになる点に注意が必要ですね。

18. ここまで確認できたら、作業に使った
/storage/emulated/0/Shizuku
のShizukuフォルダ自体は削除してOKです。

ここまでで、Shizukuをadbのコアとし、Termuxをターミナルとして利用したadbコマンドの実行を行うことができました。

あとは、
Shizukuが裏で、
「端末を再起動しない限りは」動きつづけるので、

たとえば
mkdir ~/.termux/tasker
したあとで、
~/.termux/tasker フォルダ配下にshファイルを作って、
TermuxのTaskerプラグインからadbを行わせる、ということも可能ですし、

"pm grant com.arlosoft.macrodroid android.permission.WRITE_SECURE_SETTINGS"

など、Macrodroid界隈ではお決まりのADB Hackを掛けることも出来るようになります。


こんな感じ!


問題の解決には、以下のページが大変参考になりました。お礼申し上げます。


記事は以上です。
ここまでお読み下さりありがとうございました。

この記事についてブログを書く
« 【RPA】【MacroDroid】JP-Mac... | トップ | 【RPA】【MacroDroid】電池持ちには影響ないですよ... »