Добрый день.
Все мы (ну или почти все) когда-то пользовались смартфонами под управлением ОС Symbian. Многим из нас не хватало функционала уже существующего ПО, и тогда на смартфоне появлялся Python и множество самописных программ на нём же. Такие программы назывались скриптами, а написать скрипт мог любой желающий, вооружившись одним лишь текстовым редактором.
Теперь же многие из нас обзавелись смартфонами, управляемыми ОС Android, которая, как известно, создана на базе ядра Linux.
А одной из отличительных особенностей GNU/Linux является bash — одна из наиболее популярных современных разновидностей командной оболочки UNIX.
Вооружаемся всем необходимым:
- во-первых, нам нужно получить права пользователя root;
- во-вторых, нам нужен эмулятор терминала — (требует Android 1.5+) или любой другой;
- в-третьих, нам нужен BusyBox — набор UNIX-утилит командной строки — (требует Android 1.6+) или любой другой;
- в-четвёртых, нам пригодится текстовый редактор — (требует Android 1.6+) или любой другой.
Опционально можно поставить , положив его в
/system/bin/.
Итак, весь необходимый софт установлен. Запустив эмулятор терминала, попробуем выполнить какую-нибудь команду, например, посмотрим информацию о системе:
sh-4.1$ uname -a
Linux localhost 2.6.35.7-CL709629 #10 PREEMPT Fri Apr 13 18:06:10 IST 2012 armv7l GNU/Linux
Особой пользы нам эта команда не принесла, попробуем выполнить что-нибудь более полезное.
Подробнее о командах вы можете узнать, например, в том же самом Advanced Bash-Scripting Guide или .
Наверное, сейчас нам пригодится новый пароль из, допустим, 30 случайно взятых символов (букв, цифр и знаков препинания):
sh-4.1$ tr -cd '[:punct:]+[:alnum:]' < /dev/urandom | fold -w30 | head -n1
{EMn!v'u<AqcAH'YD/U6bQ?>dS!W^d
СкриншотКак вы уже догадались, довольно неудобно каждый раз вводить в терминале такую команду. Поэтому, чуть-чуть изменив текст, мы создадим скрипт, который генерирует пароль указанной пользователем длины и НВПС сохраняет его в текстовый файл:
#!/system/bin/bash
tr -cd '[:punct:]+[:alnum:]' < /dev/urandom | fold -w $1 | head -n1 > /sd/pwd.txt
echo "Check /mnt/sdcard/external_sd/pwd.txt"
СкриншотСкрипт написан и сохранён. Пытаемся его выполнить, но результат не радует:
sh-4.1$ /sd/pwg.sh 15
sh: /sd/pwg.sh: Permission denied
А всё потому, что у нас карта памяти отформатирована в файловой системе FAT. (Есть предположение, что на носителе с файловой системой ext4 всё заработает искаропки). Посему кладём наш скрипт в
/system/xbin/, не забыв после этого разрешить системе его выполнение командой
chmod 777 /system/xbin/pwg.shили с помощью вашего любимого файл-менеджера.
Запускаем скрипт:
sh-4.1$ pwg.sh 50
Check /mnt/sdcard/external_sd/pwd.txt
СкриншотВсё работает, задача выполнена.
СкриншотБонус: можно заставить систему выполнять скрипт при загрузке, о чём подробнее написано .






..дружно ищем fork bomb и понимаем смысл отличного скрипта на баше.. =)
кстати, на андроиде такое не должно прокатить, там слишком малые ограничения выставлены
0 ответить