所以我通常不发帖,而是花几个小时在论坛上寻找答案——但我完全不知所措。
我想做的事:
真的很简单,我想要一个能够自动更改我的 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 可以自动生成这个地址。(我没有 Unix-foo 以编程方式生成 MAC 地址)。
所以我按时间顺序做了以下操作:
1)使用这些命令在 nano 中创建了一个脚本。
2) 使用 chmod +x changeMAC.sh 使脚本可执行
这会在执行时给出“拒绝访问”错误消息。
3) 首先尝试进入 SU,然后执行脚本,这会给出一个“macchanger”未找到错误,因为在调用 su 时 termux 会丢失环境。所以我安装了 tsu 包装器,它允许您调用 tsu 并在维护环境的情况下获取 su,相当于 su --preserve-environment。
然而,这就是我开始把头从桌子上撞下来的地方。
如果我在 termux 终端中执行以下操作:
tsu
./changeMAC.sh
终端只是坐在那里,什么都不做。如果我然后键入“exit”并按回车键,我会收到三个“Access Denied”错误消息。
我试图规避错误:
4) 使用 AutoInput 像用户一样输入 termux,但它拒绝这样做。
5) 直接从 Tasker > Run Shell 执行 shell 命令,但我怀疑这不起作用,因为 macchanger 包没有安装在 tasker shell 的范围内。
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。
电话详情:
OnePlus 5,植根于 Magisk
ElementalX 内核
xXx NoLimits 自定义 ROM
编辑1:
我已经从https://gitlab.com/st42/termux-sudo尝试了“sudo”,但是这需要 su,然后找不到 macchanger,我又回到了原点。