Пишу антивор на чистой оболочке с помощью termux. Включил подсветку кнопками громкости и хочу отправить фото "вора" себе в переписку в соцсети ВКонтакте. Я слушаю нажатие кнопки питания при выключенном экране и тайком делаю фото передней и задней камерой и скриншот. Далее хочу отправить фото в ВК с помощью PHP. Так как мне нужно слушать щелчки, я использую getevent
команду.
script -q -c 'getevent /dev/input/event5' /dev/null | while read code; do
while read line; do
if [ $line -eq 0 ]; then
carr=( $code )
code1="${carr[0]}"
code2="${carr[1]}"
code3="${carr[2]}"
if [ $code1 -eq 0001 ]; then
if [ $code2 -eq 0074 ]; then
if [ $code3 -eq 00000001 ]; then
time=$(date +%d.%m.%Y_%H:%M:%S)
/data/data/com.termux/files/usr/bin/termux-camera-photo -c 1 /data/data/com.termux/files/usr/bin/q/$time.front.jpg
/data/data/com.termux/files/usr/bin/termux-camera-photo -c 0 /data/data/com.termux/files/usr/bin/q/$time.back.jpg
screencap -p /data/data/com.termux/files/usr/bin/q/$time.scr.jpg
/data/data/com.termux/files/usr/bin/tsu
/data/data/com.termux/files/usr/bin/php /data/data/com.termux/files/usr/bin/vkup.php
fi
fi
fi
fi
done</sys/class/leds/lcd-backlight/brightness
done
vkup.php
<?php echo "contact!"; ?>
Чтобы запустить его первым, я пишу
su
Затем его скрипт находится в /system/bin
protect
Получение ошибки
CANNOT LINK EXECUTABLE: library "libandroid-glob.so" not found page record for 0xb674008c was not found (block_size=64)
Если я пишу последовательно в командной строке
tsu
/data/data/com.termux/files/usr/bin/php /data/data/com.termux/files/usr/bin/vkup.php
Или
su
tsu
/data/data/com.termux/files/usr/bin/php /data/data/com.termux/files/usr/bin/vkup.php
Оно работает. Но в скрипте не работает. tsu
Я также заметил, что при изменении команды
$ tsu
bash-4.4#
Наверное в скрипте надо это учитывать? Или проблема в чем-то другом? Большое спасибо!!!
Когда вы запускаете команды в интерактивном режиме, вы не запускаете tsu
, не даете ему завершиться, а затем запускаете php
команду. Вы запускаете php
команду внутри tsu
оболочки. Вам нужно использовать -c
опцию, чтобы tsu
указать, какую команду запускать:
/data/data/com.termux/files/usr/bin/tsu -c '/data/data/com.termux/files/usr/bin/php /data/data/com.termux/files/usr/bin/vkup.php'
Вы можете увидеть более полное объяснение по этому вопросу о переполнении стека . Хотя здесь обычно приветствуются вопросы сценариев оболочки конечного пользователя, как только вы начнете задавать вопросы, на которые программисты смогут лучше ответить, вы, скорее всего, найдете помощь в SO.
Использовать
tsu -e
Эта опция -e
сохраняет вашу среду и должна быть достаточной для запуска вашего скрипта без ошибок.
Также обратите внимание, что tsu
это похоже на Linux su
, который открывает другую оболочку вместо запуска команды.
Повелитель огня
пользователь191256
Повелитель огня
пользователь191256
Повелитель огня
пользователь191256