Есть Android и куча видео в папке на компьютере с Windows. Как смотреть видео не перекачивая фильмы на SD-карту? Можно подключить папку напрямую. Но в ядре нет поддержки smbfs/cifs, зато есть поддержка nfs. Установим на Windows nfs сервер и подключим в Android папку с фильмами.
Для работы нам понадобится доступ к устройству через терминал. Можно поставить терминальную программку на Android, но отсутствие физической клавиатуры портит всё удовольствие. Поэтому воспользуемся утилитой adb из комплекта Android SDK.
Я не люблю подключать устройство через USB порт если есть WiFi. Но для работы adb по WiFi нужна утилита ADB over WiFi Widget (или adbWireless). Поставьте ее из маркета.
Добавьте виджет ADB over WiFi на домашний экран, ткните его. После некоторых раздумий виджет показывает нам куда нужно подключаться. В моем случае это: 192.168.0.35:8000. Подключаемся из Windows консоли и открываем консоль андроида:
Чтобы узнать какие файловые системы поддерживает ваше ядро выполним команду:
Как видим поддержка nfs присутствует.
Теперь установим nfs сервер. Для Windows существует несколько серверов как платных, так и бесплатных. Мы будем ставить сервер Cygwin.
Скачиваем программу установки. Выбираем следующие пакеты: nfs-server, sunrpc, cygrunsrv. Еще желательно поставить редактор для правки файлов из консоли, например nano.
Открываем Cygwin Bash Shell, ссылка на него есть в главном меню Windows.
Добавляем в /etc/exports строку:
Теперь можно подключаться к любой папке на диске c:.
Отключаем наследование прав доступа NT. Для этого раскомментируем строку в /etc/fstab и добавим в опции noacl:
Для вступления настроек в силу загрываем консоль Cygwin и открываем её снова. Проверяем:
Опция noacl есть — порядок.
Запускаем установку сервисов.
Скрипт будет задавать много вопросов. На все отвчаем да, кроме одного:
Можно установить сервис и под административным аккаунтом, но у меня работает и под системным.
Скрипт установил три Windows-сервиса: portmap, nfsd, mountd. Запускаем их:
Теперь на Windows работает nfs сервер.
Ставим из маркета программку GScript Lite. Она умеет запускать скрипты и, к тому же, бесплатна.
Добавляем в программу два скрипта.
mount_video.sh — для подключения папки:
В моем случае ip-адрес компа 192.168.0.2, видео папка расположена в c:\downloads\video, поменяйте скрипт в соответствии с вашими настройками.
umount_video.sh — для отключения:
Можно вбить текст вручную в GScript, либо создать скрипты на компе и перенести с помощью adb.
Расскажу про второй способ. Допустим вы сохранили скрипты в папке C:\android-sdk-windows\tools, выполняем:
Заходим в GScript на андроиде, добавляем скрипты, программа должна увидеть их.
Осталось только запустить mount_video.sh и вуаля, плейер может играть видео из /sdcard/video.
P.S. Все вышеприведенное тестировалось на планшете Zenithink ZT-180
Для работы нам понадобится доступ к устройству через терминал. Можно поставить терминальную программку на Android, но отсутствие физической клавиатуры портит всё удовольствие. Поэтому воспользуемся утилитой adb из комплекта Android SDK.
Я не люблю подключать устройство через USB порт если есть WiFi. Но для работы adb по WiFi нужна утилита ADB over WiFi Widget (или adbWireless). Поставьте ее из маркета.
Добавьте виджет ADB over WiFi на домашний экран, ткните его. После некоторых раздумий виджет показывает нам куда нужно подключаться. В моем случае это: 192.168.0.35:8000. Подключаемся из Windows консоли и открываем консоль андроида:
C:\android-sdk-windows\tools>adb connect 192.168.0.35:8000 * daemon not running. starting it now on port 5037 * * daemon started successfully * connected to 192.168.0.35:8000 C:\android-sdk-windows\tools>adb shell #
Чтобы узнать какие файловые системы поддерживает ваше ядро выполним команду:
# cat /proc/filesystems nodev sysfs nodev rootfs nodev bdev nodev proc nodev tmpfs nodev sockfs nodev pipefs nodev anon_inodefs nodev rpc_pipefs nodev inotifyfs nodev devpts ext3 ext2 cramfs nodev ramfs vfat msdos nodev nfs romfs yaffs yaffs2 #
Как видим поддержка nfs присутствует.
Теперь установим nfs сервер. Для Windows существует несколько серверов как платных, так и бесплатных. Мы будем ставить сервер Cygwin.
Установка Cygwin nfs сервера
Скачиваем программу установки. Выбираем следующие пакеты: nfs-server, sunrpc, cygrunsrv. Еще желательно поставить редактор для правки файлов из консоли, например nano.
Открываем Cygwin Bash Shell, ссылка на него есть в главном меню Windows.
Добавляем в /etc/exports строку:
/cygdrive/c (rw,no_root_squash)
Теперь можно подключаться к любой папке на диске c:.
Отключаем наследование прав доступа NT. Для этого раскомментируем строку в /etc/fstab и добавим в опции noacl:
none /cygdrive cygdrive binary,noacl,posix=0,user 0 0
Для вступления настроек в силу загрываем консоль Cygwin и открываем её снова. Проверяем:
micdelt@station ~ $ mount C:/cygwin/bin on /usr/bin type ntfs (binary,auto) C:/cygwin/lib on /usr/lib type ntfs (binary,auto) C:/cygwin on / type ntfs (binary,auto) C: on /cygdrive/c type ntfs (binary,noacl,posix=0,user,noumount,auto)
Опция noacl есть — порядок.
Запускаем установку сервисов.
micdelt@station ~ $ nfs-server-config
Скрипт будет задавать много вопросов. На все отвчаем да, кроме одного:
Do you want to run nfsd under a separate user account? (yes/no) no
Можно установить сервис и под административным аккаунтом, но у меня работает и под системным.
Скрипт установил три Windows-сервиса: portmap, nfsd, mountd. Запускаем их:
micdelt@station ~ $ cygrunsrv --start portmap micdelt@station ~ $ cygrunsrv --start nfsd micdelt@station ~ $ cygrunsrv --start mountd
Теперь на Windows работает nfs сервер.
Монтирование папок в Android
Ставим из маркета программку GScript Lite. Она умеет запускать скрипты и, к тому же, бесплатна.
Добавляем в программу два скрипта.
mount_video.sh — для подключения папки:
mkdir /sdcard/video busybox mount -t nfs -o nolock,vers=2 192.168.0.2:/cygdrive/c/downloads/video /sdcard/video
В моем случае ip-адрес компа 192.168.0.2, видео папка расположена в c:\downloads\video, поменяйте скрипт в соответствии с вашими настройками.
umount_video.sh — для отключения:
busybox umount /sdcard/video
Можно вбить текст вручную в GScript, либо создать скрипты на компе и перенести с помощью adb.
Расскажу про второй способ. Допустим вы сохранили скрипты в папке C:\android-sdk-windows\tools, выполняем:
C:\android-sdk-windows\tools>adb shell mkdir /sdcard/gscript C:\android-sdk-windows\tools>adb push mount_video.sh /sdcard/gscript/ C:\android-sdk-windows\tools>adb push umount_video.sh /sdcard/gscript/
Заходим в GScript на андроиде, добавляем скрипты, программа должна увидеть их.
Осталось только запустить mount_video.sh и вуаля, плейер может играть видео из /sdcard/video.
P.S. Все вышеприведенное тестировалось на планшете Zenithink ZT-180