Так что я обычно не пишу, вместо этого трачу часы на форумах в поисках ответа - но я в полной растерянности.
Что я хочу сделать:
Очень просто на самом деле, я хочу скрипт, который автоматически изменит MAC-адрес на моем OnePlus 5, у меня уже есть все команды, необходимые для этого, и я могу легко выполнить его вручную , получая скрипт однако сделать это? Ох, мальчик ...
Что я пробовал:
Это команды, которые при запуске в 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» not found, так как termux теряет среду при вызове su. Поэтому я установил оболочку tsu, которая позволяет вам вызывать tsu и получать su с сохранением среды, эквивалентной su --preserve-environment.
Однако именно здесь я начал стучать головой по столу.
Если я сделаю следующее в терминале termux:
tsu
./changeMAC.sh
Терминал просто сидит там, ничего не делая. Если я тогда наберу «выход» и нажму «возврат», я получу три сообщения об отказе в доступе.
Я пытался обойти ошибку:
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.
Телефон:
OnePlus 5, root с помощью Magisk
ElementalX Kernel
xXx NoLimits Custom ROM
Редактировать 1:
Я пробовал 'sudo' из https://gitlab.com/st42/termux-sudo, однако для этого требуется su, который затем не может найти macchanger, и я вернулся к исходной точке.