Все мы (ну или почти все) когда-то пользовались смартфонами под управлением ОС Symbian. Многим из нас не хватало функционала уже существующего ПО, и тогда на смартфоне появлялся Python и множество самописных программ на нём же. Такие программы назывались скриптами, а написать скрипт мог любой желающий, вооружившись одним лишь текстовым редактором.
Теперь же многие из нас обзавелись смартфонами, управляемыми ОС Android, которая, как известно, создана на базе ядра Linux. А одной из отличительных особенностей GNU/Linux является bash — одна из наиболее популярных современных разновидностей командной оболочки UNIX.
Цитата: Advanced Bash-Scripting Guide
Shell — это командная оболочка. Но это не просто промежуточное звено между пользователем и операционой системой, это еще и мощный язык программирования. Программы на языке shell называют сценариями, или скриптами. Фактически, из скриптов доступен полный набор команд, утилит и программ Unix. Если этого недостаточно, то к вашим услугам внутренние команды shell — условные операторы, операторы циклов и пр., которые увеличивают мощь и гибкость сценариев. Shell-скрипты исключительно хороши при программировании задач администрирования системы и др., которые не требуют для своего создания полновесных языков программирования.
Вооружаемся всем необходимым:
во-первых, нам нужно получить права пользователя root;
во-вторых, нам нужен эмулятор терминала — этот (требует Android 1.5+) или любой другой;
в-третьих, нам нужен BusyBox — набор UNIX-утилит командной строки — этот (требует Android 1.6+) или любой другой;
в-четвёртых, нам пригодится текстовый редактор — этот (требует Android 1.6+) или любой другой.
Итак, весь необходимый софт установлен. Запустив эмулятор терминала, попробуем выполнить какую-нибудь команду, например, посмотрим информацию о системе:
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 случайно взятых символов (букв, цифр и знаков препинания):
Как вы уже догадались, довольно неудобно каждый раз вводить в терминале такую команду. Поэтому, чуть-чуть изменив текст, мы создадим скрипт, который генерирует пароль указанной пользователем длины и НВПС сохраняет его в текстовый файл:
А всё потому, что у нас карта памяти отформатирована в файловой системе FAT. (Есть предположение, что на носителе с файловой системой ext4 всё заработает искаропки). Посему кладём наш скрипт в
/system/xbin/
, не забыв после этого разрешить системе его выполнение командой
Насчет активного развития- посмотрите в сторону SL4A, там, кстати, не только питон поддерживается, на нашем сайте тоже тема есть
Стоит у меня SL4A, про поддержку других скриптовых языков в курсе. После освоения shell думаю попробовать свои силы в Perl: знаменитый скрипт из одной строки, регэкспы и всё такое...
да я выкладывал на питон написанную. сшел он и есть сшел. спасибо за статью. ругаться не надо товарищи типа "почему тут генератор пароля?". Статья подразумевает что читать ее будет технически осведомленный человек, посмотрев простой пример легко сделает нужное для себя. Это просто пример. ------------- Добавлено в 00.13: скажу больше - заинтересованных тут нет вообще. тема мертвая. да и к тому же плюс питона на смарте был в возможности писать на нем же. а сейчас пиши себе хоть на ява без пк.
Направление разработки? Не виделв обменнике ни одной программмына Python для ведроида. К чему быэто?
одна есть). Другое дело, что это пишется для личного пользования, ибо, все, что можно, на джаве уже написано. Преимущество- скорость разработки, уже можно прямо на смарте упаковать, доступ ко многим системным функциям. Насчет активного развития- посмотрите в сторону SL4A, там, кстати, не только питон поддерживается, на нашем сайте тоже тема есть, правда уже не те времена, заинтересованных в этом здесь мало осталось.
Все-же, при всем уважении к shell, мне кажется, у python на Android возможностей побольше будет
Правильно кажется. При сравнении возможностей полноценного языка программирования, который поддерживает ООП, и языка управления системой преимущество будет не у последнего. Зато он значительно проще. Например, чтобы с помощью питона оценить общий размер папки \"/sd/Books\", нужно будет рекурсивно пройтись по ней, сложить размеры всех лежащих в ней файлов и вывести. Или же выполнить команду \"du /sd/Books/\". И т.д, и т.п. Плюс shell интегрирован в систему в отличие от Python — сколько времени займёт у среднего пользователя написание на питоне полнофункционального аналога программы \"mount\" или \"ifconfig\"?
dimy44
к тому же это направление активно развивается.
Направление разработки? Не видел в обменнике ни одной программмы на Python для ведроида. К чему бы это? Если ошибаюсь, поправьте.
Camogyp
А зачем нам пригодится новый пароль такой?
Например, можно не отходя от кассы сменить свой старый относительно простой пароль на относительно сложный новый...
Куда более полезные команды в терминале su, chmod, chown, cp, cat, logcat, dmesg, grep, mount, df и прочие.. Лучше бы на примере их показал, а не генерация ни кому не нужного пароля. к примеру вот жизненная ситуация, необходимо из терминала произвести действия над файлами из system, но он только на чтение... (к примеру с компа через adb, ну так удобнее делать всё, нежели на самом телефоне каким-нить SU файл менеджером): abd shell mount -o rw, remount -t yaffs2 /dev/block/mtdblock3 /system тоже самое можно выполнить и в терминале на самом телефоне, только убрать в начале adb shell
можно поглядеть сколько осталось места да ничках, как разбиты они (например для HTC, если забыли какой поставили hboot), достаточно набрать df ну и так далее, более жизненные ситуации показать, а то генерация пароля.. =)
Все-же, при всем уважении к shell, мне кажется, у python на Android возможностей побольше будет, к тому же это направление активно развивается. А shell... Ну, конечно, имеет место быть, но, честно говоря, не впечатлило. Это всего-лишь имхо, за статью спасибо.
..дружно ищем fork bomb и понимаем смысл отличного скрипта на баше.. =)
кстати, на андроиде такое не должно прокатить, там слишком малые ограничения выставлены
0 ответить