Как монтировать сетевые диски Windows в Android без консоли (часть 2)

В прошлый раз я написал, как монтировать расшаренные папки Windows в Android-смартфон: о сборке необходимого модуля cifs.ko и зависимостей для него. Само монтирование было сделано при помощи стандартной команды mount, но каждый раз открывать эмулятор терминала и вводить длинные команды, конечно же, мягко говоря, не очень удобно. Поэтому сегодня я расскажу о двух приложениях, которые позволят монтировать всего в 1-2 тапа пальцем. На одно из них я уже давал ссылку в предыдущем посте.

CifsManager

CifsManagerAndroid Market | market:// | 4PDA Описание есть на форуме 4PDA, поэтому подробно останавливаться на этом приложении я не буду. Стоит только отметить правильный порядок модулей в опции Path to cifs.ko (видно на скриншоте). А так же при создании шары не забудьте в опциях вбить iocharset=utf8,file_mode=0777,dir_mode=0777 Прямо из приложения можно открыть установленным файловым менеджером подключенный ресурс, что плюс. А минус — нет бэкапа опций на SD, потому что их достаточно много. Так что при, например, перепрошивке, всё нужно будет вбивать заново (если не пользоваться прогами для бэкапа). Но главное — оно работает, и позволяет монтировать в 2 тапа пальцем по экрану: запуск приложения + тап по нужной шаре.

GScript

GScript - Edit Script GScript - cifs.sh
Lite: Android Market | market:// | 4PDA Full: Android Market | market:// Это приложение предназначено не именно для монтирования, а для запуска вообще любых скриптов. Также поддерживает создание ярлыков, что и позволяет монтировать шары в один тап. Имеются функции и сохранения/загрузки скриптов с SD-карты. Полезные скрипты можно найти в теме на XDA. Ну а теперь именно к монтированию. Можно было бы, конечно, просто вбить все команды из предыдущего поста: insmod, mount и unount. Но это всё равно долго и нудно (особенно если подключаемых ресурсов несколько), поэтому я для себя решил наговнокодить скрипт, чтобы все нужные команды были в одном обычном sh-файле, который можно будет запускать не только из GScript, но и при необходимости из терминала. cifs.sh:
 #!/system/bin/sh   export PATH=/data/data/berserker.android.apps.sshdroid/home/bin:$PATH  case $1 in  	"m") if mount | grep -Fq 'unc=\192.168.1.1\E,username=USER' then 	echo "UnMounting //cifs/share ..." 	umount -f -l /mnt/sdcard/cifs/share 	echo "//cifs/share unmounted for USER!" 	echo 	echo 	echo 	echo 	echo 	echo else 	echo "Mounting //server/share ..." 	mount -t cifs -o ro,iocharset=utf8,username=USER,password=PASS,file_mode=0777,dir_mode=0777 //192.168.1.1/share /mnt/sdcard/cifs/share && \ 	echo "//cifs/share mounted for USER!" 	echo 	echo 	echo 	echo 	echo 	echo fi 	;;          "l") lsmod && \ echo echo echo echo echo echo         ;;          "r") cd /mnt/sdcard/cifs/modules/$(uname -r)/ && \  modprobe -r nls_utf8 && \ modprobe -r cifs && \ modprobe -r slow-work && \ echo "*.ko unloaded!" echo echo echo echo echo echo         ;;  	*) cd /mnt/sdcard/cifs/modules/$(uname -r)/ && \  modprobe slow-work.ko && \ modprobe nls_utf8.ko && \ modprobe cifs.ko && \ echo "*.ko loaded!" echo echo echo echo echo echo 	;;  esac   
На первом скриншоте видно, что перед самим скриптом стоит команда sh, что позволяет запускать с SD-карты в FAT32, где невозможно сделать chmod +x. Зачем при этом у меня такой длинный путь к скрипту, я напишу как-нибудь потом... Теперь пара слов о самом скрипте. Результат работы показан на втором скриншоте, после того как скрипт отработал окно автоматически закрывается. Несколько пустых echo добавлено чтобы появляющийся поп-ап не закрывал вывод. При запуске без параметров происходит загрузка всех модулей, l — список, r — выгрузка. m — монтирование/размонтирование; если шара смонтирована, происходит размонтирование, и наоборт. ВАЖНО: Скрипт использует grep, поэтому должен быть установлен BusyBox. Исправьте переменную PATH, указав правильный путь до grep! Также (хотя это и не будет влиять на запуск из-под GScript), исправьте/проверьте путь до интерпретатора sh в 1 строке. Добавляя другие аргументы в case (например, m1, m2 и т.д) можно подключать несколько шар, или одну под разными юзерами. Естественно всё ограничивается лишь вашей фантазией. Это решение мне показалось лучше в первую очередь тем, что скрипт можно легко редактировать, просто открыв в текстовом редакторе при подключении смартфона как USB-диска, или через SSH. Как-нибудь позже я напишу об организации в Android одной среды как при запуске терминала, так и при подключении по SSH. А пока что — с наступающим, юзернеймы! Ведь до 2012-го осталось меньше суток :-)

Комментарии

Популярные сообщения из этого блога

Как восстановить подключение к сетевым дискам в Windows

Как отключить MTP в Android

Идеальная регистрация на сайте