そのため、私は通常は投稿せず、答えを探すために何時間もフォーラムを探し回っていますが、完全に途方に暮れています。
私がしたいこと:
本当に簡単です。OnePlus 5 の MAC アドレスを自動的に変更するスクリプトが必要です。これを行うために必要なすべてのコマンドが既にあり、手動で簡単に実行できますが、それを行うスクリプトを取得しますか? ああ少年...
私が試したこと:
これらは、termux で手動で実行すると、必要な結果が得られるコマンドです。
ip link set dev wlan0 down
macchanger --random wlan0
ip link set dev wlan0 up
ip link set dev wlan0 address xx:xx:xx:xx:xx:xx を使用しない理由は、アドレスを入力する必要があるためです。一方、macchanger はこれを自動的に生成できます。(プログラムで MAC アドレスを生成するための Unix-foo がありません)。
そこで、時系列で次のことを行いました。
1)これらのコマンドを使用してnanoでスクリプトを作成しました。
2) chmod +x changeMAC.sh を使用してスクリプトを実行可能にしました。
これを実行すると、「アクセスが拒否されました」というエラー メッセージが表示されます。
3)最初にSUに入ってからスクリプトを実行しようとしましたが、suが呼び出されたときにtermuxが環境を失うため、「macchanger」が見つからないというエラーが発生します。そこで、su --preserve-environment と同等の、環境を維持した状態で tsu を呼び出して su を取得できる tsu ラッパーをインストールしました。
しかし、これは私が机から頭を叩き始めたところです。
termux ターミナルで次のようにすると:
tsu
./changeMAC.sh
ターミナルはただそこに座って、何もしません。次に「exit」と入力してリターン キーを押すと、「アクセスが拒否されました」というエラー メッセージが 3 つ表示されます。
エラーを回避しようとしました:
4) AutoInput を使用して、ユーザーのように termux に入力しましたが、拒否されました。
5) Tasker > Run Shell からシェル コマンドを直接実行しますが、macchanger パッケージが tasker シェルのスコープにインストールされていないため、これが機能していないと思われます。
6) su --preserve-environment を直接使用しますが、同じことが起こります!
私のスクリプトを要約すると、次のようになります。
\#!/data/data/com.termux/files/usr/bin/sh
sleep 1
ip link set dev wlan0 down
sleep 1
macchanger --random wlan0
sleep 1
ip link set dev wlan0 up
exit
しかし:
1) 標準権限では動作しません
2) tsu/su --preserve-environment を使用すると実行されないように見え、代わりに tsu インスタンスが終了するとエラーが発生します。実行前にインスタンスが終了するのを待っているかのようです...
3) tsu インスタンスから手動で実行すると正常に動作します。
Unix/Linux/Android の複雑さについて、これが機能しない理由を理解して修正するのに十分な知識がないと思います。
どんな助けでも大歓迎です。
一番、
H.
電話の詳細:
Magisk を根幹とする OnePlus 5
ElementalX カーネル
xXx NoLimits カスタム ROM
編集1:
https://gitlab.com/st42/termux-sudoから「sudo」を試しましたが、これには su が必要で、macchanger が見つからず、振り出しに戻ります。