Android монтирование сетевой папки windows

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

Поэтому сегодня я расскажу о двух приложениях, которые позволят монтировать всего в 1-2 тапа пальцем. На одно из них я уже давал ссылку в предыдущем посте.

Обновил скрипт cifs.sh — теперь использование стало более наглядным: для добавления шар достаточно изменить переменные USER, PASS, SERV, SERVNAME и SHARE в строках 44-48, и добавить новый блок в case. Добавлено монтирование в режиме только-чтение в зависимости от используемого пользователя (строка 18, опционально).

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

Поэтому сегодня я расскажу о двух приложениях, которые позволят монтировать всего в 1-2 тапа пальцем. На одно из них я уже давал ссылку в предыдущем посте.

CifsManager

Android Market | market:// | 4PDA

Описание есть на форуме 4PDA, поэтому подробно останавливаться на этом приложении я не буду.

Стоит только отметить правильный порядок модулей в опции Path to cifs.ko (видно на скриншоте).

А так же при создании шары не забудьте в опциях вбить iocharset=utf8,file_mode=0777,dir_mode=0777

Прямо из приложения можно открыть установленным файловым менеджером подключенный ресурс, что плюс.

А минус — нет бэкапа опций на SD, потому что их достаточно много. Так что при, например, перепрошивке, всё нужно будет вбивать заново (если не пользоваться прогами для бэкапа).

Но главное — оно работает, и позволяет монтировать в 2 тапа пальцем по экрану: запуск приложения + тап по нужной шаре.

GScript

Это приложение предназначено не именно для монтирования, а для запуска вообще любых скриптов. Также поддерживает создание ярлыков, что и позволяет монтировать шары в один тап.

Имеются функции и сохранения/загрузки скриптов с SD-карты.

Полезные скрипты можно найти в теме на XDA.

Ну а теперь к монтированию.

Можно было бы, конечно, просто вбить все команды из предыдущего поста: insmod, mount и unount. Но это всё равно долго и нудно (особенно если подключаемых ресурсов несколько), поэтому я для себя решил наговнокодить скрипт, чтобы все нужные команды были в одном обычном sh-файле, который можно будет запускать не только из GScript, но и при необходимости из терминала.

cifs.sh:

<input … >
старый вариант скрипта, новый смотрите ниже

#!/system/bin/sh</p>

export PATH=/data/data/berserker.android.apps.sshdroid/home/bin:$PATH

case $1 in

«m»)

if mount | grep -Fq ‘unc=\192.168.1.1\share,username=USER’

then

echo «UnMounting //server/share …»

umount -f -l /mnt/sdcard/cifs/share

echo «//server/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 «//server/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

;;

На первом скриншоте видно, что перед скриптом стоит команда sh, что позволяет запускать его с SD-карты в FAT32, где невозможно сделать chmod +x.

Зачем при этом у меня такой длинный путь к файлу, я напишу как-нибудь потом…

Теперь пара слов о самом скрипте.

Результат работы показан на втором скриншоте, после того как скрипт отработал окно автоматически закрывается.

Несколько пустых echo добавлено чтобы появляющийся поп-ап не закрывал вывод.

При запуске без параметров происходит загрузка всех модулей, l — список модулей, r — выгрузка, m — список смонтированных шар (только в cifs.sh v2.0).

m

c — монтирование/размонтирование; если шара смонтирована, происходит размонтирование, и наоборт.

ВАЖНО:

Скрипт использует grep, поэтому должен быть установлен BusyBox.

Исправьте переменную PATH, указав правильный путь до grep!

Также (хотя это и не будет влиять на запуск из-под GScript), исправьте/проверьте путь до интерпретатора sh в 1 строке.

Добавляя другие аргументы в case (например, m1, m2 и т.д) можно подключать несколько шар, или одну под разными юзерами. Естественно всё ограничивается лишь вашей фантазией.

Это решение мне показалось лучше в первую очередь тем, что скрипт можно легко редактировать, просто открыв в текстовом редакторе при подключении смартфона как USB-диска, или через SSH.

Как-нибудь позже я напишу об организации в Android одной среды как при запуске терминала, так и при подключении по SSH.

А пока что — с наступающим, юзернеймы! Ведь до 2012-го осталось меньше суток

UPD 05.05.2012, 15:12:

Обновил скрипт cifs.sh — теперь использование стало более наглядным: для добавления шар достаточно изменить переменные USER, PASS, SERV, SERVNAME и SHARE в строках 44-48, и добавить новый блок в case. Добавлено монтирование в режиме только-чтение в зависимости от используемого пользователя (строка 18, опционально).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#!/system/bin/sh
 
#######	cifs.sh v2.0 (05.05.2012) by Shumaher
#######	http://blog.shumaher.net.ru/kak-montirovat-setevye-diski-windows-v-android-bez-konsoli/
################################################################
 
SCRIPTVER='cifs.sh v2.0 (05.05.2012) by Shumaher'
 
export PATH=/data/data/berserker.android.apps.sshdroid/home/bin:$PATH
 
func ()
{
DIRBASE="/mnt/sdcard/cifs"
DIR="$DIRBASE/$SERVNAME/$SHARE"
SHAREPATH="//$SERV/$SHARE"
PATTERN="unc=\\\\$SERV\\$SHARE,username=$USER"
 
if [ $USER == "read-only-user" ]	# пользователь для монтирования в read-only
then
RW="ro"
else
RW="rw"
fi
 
if mount | grep -Fq -- "$PATTERN"
then
echo "UnMounting $SHAREPATH ..."
umount -f -l $DIR && \
echo "$SHAREPATH unmounted for $USER!"
else
echo "Mounting $SHAREPATH ..."
mount -t cifs -o $RW,iocharset=utf8,username=$USER,password=$PASS,file_mode=0777,dir_mode=0777 $SHAREPATH $DIR && \
echo "$SHAREPATH mounted for $USER!"
fi
}
 
echo $SCRIPTVER
echo
echo
 
case $1 in
 
	"c")		# данные для подключения к серверу, блок начиная с этой строки до ;; можно копировать, меняя аргумент "c"
USER="user"
PASS="password"
SERV="192.168.1.1"
SERVNAME="comp"
SHARE="share"
func			# func не удалять!
	;;		# копировать до этой строки включительно
 
	"l")
lsmod
        ;;
 
	"m")
if mount | grep -- "type cifs"
then 
mount | grep -- "type cifs"
else
echo "No mounted shares found!"
fi
	;;
 
	"r")
cd /mnt/sdcard/cifs/modules/$(uname -r)/ && \
 
insmod -r nls_utf8 && \
insmod -r cifs && \
insmod -r slow-work && \
echo "*.ko unloaded!"
        ;;
 
	*)
cd /mnt/sdcard/cifs/modules/$(uname -r)/ && \
 
insmod slow-work.ko && \
insmod cifs.ko && \
insmod nls_utf8.ko && \
echo "*.ko loaded!"
mkdir /lib
ln -s ../mnt/sdcard/cifs/modules/ /lib/ && \
echo "Link to /lib created!"
	;;
 
esac
 
echo
echo
echo
echo
echo
echo

Originally published at Shumaher’s_Blog. You can comment here or there.

Купил недавно себе планшет Samsung Galaxy Tab Pro 10.1 LTE SM-T525 и захотелось дома смотреть на нём фильмы и другие файлы с моего сетевого диска, расшаренного через samba. Для этого в ядре должна быть поддержка CIFS и не только… в андроиде начиная с версии 4.2 это оказалось нетривиальной задачей.

1. Суть проблемы с пользовательскими монтированиями

Дело в том, что с версии 4.2 в Adnroid ввели многопользовательский режим и вместе с ним все файловые системы теперь монтируются как Slave, это приводит к тому, что файловая система смонтированная одним пользователем, не видна другим пользователям.
В виртуальной машине Dalvik андроида с версии 4.2 в файле vm/Init.cpp есть такой код:

if (mount("rootfs", "/", NULL, (MS_SLAVE | MS_REC), NULL) == -1) {
	        SLOGE("Failed to mount() rootfs as MS_SLAVE: %s", strerror(errno));
	        return -1;
}

Этот код монтирует рутовую файловую систему с флагами MS_SLAVE и MS_REC, это означает что файловые системы, смонтированные внутри / будут также монтироваться по умолчанию с флагом MS_SLAVE и доступны только пользователям их смонтировавшим и их дочерним процессам. Для решения этой проблемы, пользователем mkasick с xda-developers был предложен следующий патч для ядра в функции do_mount:

--- kernel_orig/fs/namespace.c  2014-01-23 15:34:18.000000000 +1100
+++ kernel/fs/namespace.c       2014-04-11 15:18:22.258114000 +1100
@@ -2141,6 +2141,21 @@
        if (data_page)
                ((char *)data_page)[PAGE_SIZE - 1] = 0;

+#ifdef CONFIG_RESTRICT_ROOTFS_SLAVE
+       /* Check if this is an attempt to mark "/" as recursive-slave. */
+       if (strcmp(dir_name, "/") == 0 && flags == (MS_SLAVE | MS_REC)) {
+               static const char storage[] = "/storage";
+               long res;
+               /* Mark /storage as recursive-slave instead. */
+               if ((res = do_mount(NULL, (char *)storage, NULL, (MS_SLAVE | MS_REC), NULL)) == 0) {
+                       return 0;       
+               } else {
+                       pr_warn("Failed to mount %s as MS_SLAVE: %ld\n", storage, res);
+               }
+               /* Fallback: Mark rootfs as recursive-slave as requested. */
+       }
+#endif
+
        /* ... and get the mountpoint */
        retval = kern_path(dir_name, LOOKUP_FOLLOW, &path);
        if (retval)

Суть патча в том, что мы перехватываем вызов do_mount для / с флагами MS_SVALE и MS_REC и не даём их установить. Но для работы андроида эти флаги необходимы для пользовательских файловых систем в /storage, иначе система у меня просто не грузится. Поэтому мы вызываем do_mount(NULL, (char *)storage, NULL, (MS_SLAVE | MS_REC), NULL)) == 0). Чтобы последний вызов работал, /storage должна быть точкой монтирования, а не просто директорией, поэтому в файле init.rc в рамдиске, где происходит создание директории /storage необходимо туда смонтировать tmpfs

mkdir /storage 0050 root sdcard_r
mount tmpfs tmpfs /storage mode=0050,uid=0,gid=1028

После этих манипуляций, точки монтирования за пределами /storage будут видны всем пользователям.

2. Сборка ядра

Для начала необходимо добавить поддержку CIFS в Linux ядро. Это можно сделать двумя способами: скомпилировать модуль для ядра cifs, либо добавить поддержку cifs в само ядро. Первый способ лучше, т.к. не надо будет прошивать новое ядро и терять гарантию на некоторых аппаратах.
Ядро моего планшета оказалось собрано без поддержки модулей, так что мне пришлось пересобирать и прошивать новое ядро:
Для сборки ядра необходимо:
а) Машина на Linux
б) Исходники ядра для вашего девайса, для Самсунга берём здесь opensource.samsung.com
в) Toolchain для сборки, берём тут developer.android.com/tools/sdk/ndk/index.html
Для сборки ядра создаём директорию ~/android, и распаковываем внутри неё исходники ядра в директорию kernel, android-ndk в android-ndk-r9

mkdir ~/android
cd ~/android
tar xjf android-ndk-r9d-linux-x86_64.tar.bz2
unzip SM-T525_SEA_KK_Opensource.zip
mkdir kernel
cd kernel
tar xzf ../Kernel.tar.gz

Теперь применяем патч для исправления проблемы с пустыми точками монтирования

shared_rootfs.patch

--- kernel_orig/fs/namespace.c	2014-01-23 15:34:18.000000000 +1100
+++ kernel/fs/namespace.c	2014-04-11 15:18:22.258114000 +1100
@@ -2141,6 +2141,21 @@
 	if (data_page)
 		((char *)data_page)[PAGE_SIZE - 1] = 0;
 
+#ifdef CONFIG_RESTRICT_ROOTFS_SLAVE
+	/* Check if this is an attempt to mark "/" as recursive-slave. */
+	if (strcmp(dir_name, "/") == 0 && flags == (MS_SLAVE | MS_REC)) {
+		static const char storage[] = "/storage";
+		long res;
+		/* Mark /storage as recursive-slave instead. */
+		if ((res = do_mount(NULL, (char *)storage, NULL, (MS_SLAVE | MS_REC), NULL)) == 0) {
+			return 0;	
+		} else {
+			pr_warn("Failed to mount %s as MS_SLAVE: %ld\n", storage, res);
+		}
+		/* Fallback: Mark rootfs as recursive-slave as requested. */
+	}
+#endif
+
 	/* ... and get the mountpoint */
 	retval = kern_path(dir_name, LOOKUP_FOLLOW, &path);
 	if (retval)
--- kernel_orig/fs/Kconfig	2014-01-23 15:34:17.000000000 +1100
+++ kernel/fs/Kconfig	2014-04-10 19:29:30.990114000 +1100
@@ -292,4 +292,29 @@
 source "fs/nls/Kconfig"
 source "fs/dlm/Kconfig"
 
+config RESTRICT_ROOTFS_SLAVE
+ 	bool "Android: Restrict rootfs slave mountspace to /storage"
+ 	help
+ 	  Restrict slave mountspace so Dalvik apps can mount system-wide volumes
+ 
+ 	  Android 4.2 implements multi-user storage using per-process mount
+ 	  namespaces.  Everything under "/" (the entire filesystem hierarchy) is
+ 	  marked as a recursive-slave mountspace for all zygote instances.  This is
+ 	  done so that user-storage sandbox mounts under /storage/emulated are hidden
+ 	  from other apps and users.  Unfortunately this means that any Dalvik app
+ 	  (actually, any program whose clone/fork ancestry includes a Dalvik zygote,
+ 	  which is everything except services spawned directly from init) cannot
+ 	  mount system-wide volumes.
+ 
+ 	  This option restricts rootfs-slave calls to /storage (and
+ 	  /mnt/shell/emulated) so that Dalvik apps can mount system-wide volumes
+ 	  elsewhere (with appropriate permission, as in earlier versions of Android),
+ 	  while retaining full multi-user storage compatibility.  It is made
+ 	  available as a kernel-based workaround for instances where libdvm can not
+ 	  be modified.
+ 
+ 	  This option requires that a tmpfs volume is mounted as /storage in
+ 	  Android init.rc.  If this volume is unavailable, then we fall back to the
+ 	  previous behavior of marking the entire filesystem hierarchy as slave.
+
 endmenu

patch -p1 < shared_rootfs.patch

Далее необходимо прописать переменные окружения и подготовить конфигурационный файл ядра, для моего самсунга это делается так:

export CROSS_COMPILE="~/android/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/arm-linux-androideabi-"
export ARCH="arm"

make mrproper
make VARIANT_DEFCONFIG=msm8974_sec_picassoeur_defconfig msm8974_sec_defconfig SELINUX_DEFCONFIG=selinux_defconfig

Данная команда создаст файл .config, далее необходимо выполнить команду make menuconfig и перейти в раздел File Systems -> Network File Systems и отметить пункт CIFS support (в случае сборки модуля, необходимо отметить буквой M) и отмечаем RESTRICT_ROOTFS_SLAVE в разделе File Systems

Далее выходим клавишей Esc и сохраняем конфигурацию. Теперь собираем ядро командой make -j3 (вместо цифры 3 указываем количество ядер процессора+1)
На этом сборка ядра окончена.

3. Сборка boot.img для прошивки

Теперь необходимо прошить новое ядро в планшет. Для этого необходимо собрать образ boot.img в который входит ядро, ramdisk и device tree для чипов Qualcomm.
Для начала нам надо получить родной ramdisk, для этого распаковываем оригинальную прошивку (это обычный tar) и достаём оттуда файл boot.img

tar xf T525XXUANB2_T525SERANA6_T525XXUANA7_HOME.tar.md5 boot.img

Для распаковки boot.img понадобится пакет bootimg_tools
Скачиваем его в ~/android, и распаковываем командой split_boot файл boot.img

mkdir ~/adndroid/bootimg_tools
cd ~/adnroid/bootimg_tools
unzip ../bootimg_tools_7.8.13.zip
./split_boot ../boot.img

и получаем распакованный ramdisk в директории boot/ramdisk
Теперь необходимо поправить пару файлов в рамдиске для перевода Selinux в permissive mode и для монтирования /storage как tmpfs
В файле init.rc ищем строчку setsebool debugfs 1 и заменяем её на

setsebool debugfs 0
setenforce 0

Далее ищем строку setprop selinux.reload_policy 1 и меняем её на setprop selinux.reload_policy 0
Для монтирования /storage как tmpfs ищем строчку mkdir /storage 0751 root sdcard_r и после неё добавляем

mount tmpfs tmpfs /storage mode=0050,uid=0,gid=1028

Также в файле defaul.prop меняем ro.secure=1 на ro.secure=0 и ro.adb.secure=1 на ro.adb.secure=0

Теперь собираем ramdisk назад

./repack_ramdisk boot/ramdisk ramdisk.cpio.gz
cp boot/ramdisk.cpio.gz ~/android/kernel

Далее для сборки нам ещё необходим файл dt.img, он генерируется утилитой dtbTool которая идёт в комплекте с ядром

cd ~/android/kernel
./tools/dtbTool -o dt.img -s 2048 -p ./scripts/dtc/ ./arch/arm/boot/

Теперь, когда есть всё необходимое для сборки boot.img, начинаем саму сборку при помощи утилиты mkbootimg (поставляется так же с ядром)

./tools/mkbootimg --kernel ./arch/arm/boot/zImage --ramdisk ramdisk.cpio.gz --cmdline 'console=null androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x37 ehci-hcd.park=3' --base 0x00000000 --pagesize 2048 --ramdisk_offset 0x02000000 --tags_offset 0x01E00000 --dt dt.img -o boot.img

Всё, файл boot.img готов. Для прошивки его через Odin, делаем из него boot.tar.md5

tar -H ustar -c boot.img > boot.tar
md5sum -t boot.tar >> boot.tar
mv boot.tar boot.tar.md5

Теперь прошиваем его через Odin

На Samsung есть проблема, что с катомным ядром перестаёт работать wifi, лечится это правкой файла build.prop на рабочей системе. Необходимо заменить строчку ro.securestorage.support=true на ro.securestorage.support=false

4. Настройка ПО для монтирования

Для монтирования шар будем использовать программу CifsManager

Тут есть несколько нюансов в настройке:
а) В cifs на ядре 3.4 что-то поломали, и теперь он не обрабатывает параметр device команды mount, т.е. конструкция вида
mount -t cifs //pc/share /mnt больше не работает, монтируемую шару необходимо указывать в параметре unc, т.е. предыдущая команда будет выглядеть так:

mount -t cifs -o unc=\\\\pc\\share none /mnt

б) Теперь про точку монтирования. Как писалось выше, если мы будем монтировать внутри /storage, то такая шара будет пустая для других приложений, если же монтировать куда-то вне /storage, то большинство приложений её не смогут открыть, т.к. позволяют открывать файлы только внутри карты памяти. Выход есть. Внутренняя память /storage/emulated/0 на самом деле лежит в /data/media/0, а /storage/emulated/0 — это эмуляция fat32 для этой директории. Так что мы смело можем можем монтировать например в /data/media/0/cifs и увидим нашу шару в фйловом менеджере в internal storage.
в) Есть ещё нигде не описанный нюанс, команда mount -t cifs почему то игнорирует параметры, идущие после password, например в команде

mount -t cifs -o unc=\\\\pc\\share,username=user,password=123,sec=ntlmssp none /data/media/0/cifs

параметр sec=ntlmssp не будет обработан. Поэтому, если для подключения к шаре необходим пароль, то в CifsManager поле Password оставляем пустым, а пароль пишем в поле Options в самый конец, как на скриншоте выше.
г) Для корректной работы с русскими буквами в именах файлов, необходимо добавить опцию iocharset=utf8

Теперь монтируем шару в CifsManager и наслаждаемся!

Использовались материалы из следующих источников:
www.ibm.com/developerworks/ru/library/l-mount-namespaces
forum.xda-developers.com/showthread.php?p=36889027
www.netzgewitter.com/2013/10/troubleshoot-cifs-on-android

В этой статье — о том, как подключить ваш телефон или планшет на Android к локальной сети Windows. Даже если у вас нет никакой локальной сети, а компьютер дома всего один (но подключен к роутеру), все равно эта статья будет полезна.

Подключившись к локальной сети, вы сможете иметь доступ к сетевым папкам Windows на вашем Android устройстве. То есть, например, для того, чтобы посмотреть фильм, необязательно его будет скидывать на телефон (его можно воспроизвести прямо из сети), также облегчается и передача файлов между компьютером и мобильным устройством.

Перед подключением

Примечание: руководство применимо в том случае, когда и ваше Android устройство и компьютер подключены к одному Wi-Fi роутеру.

Прежде всего, нужно настроить на компьютере локальную сеть (даже если компьютер только один) и предоставить доступ по сети к нужным папкам, например, с видео и музыкой. О том, как это сделать, я подробно написал в предыдущей статье: Как настроить локальную сеть LAN в Windows.

В дальнейшей инструкции я буду исходить из того, что все, описанное в указанной выше статье уже выполнено.

Подключение Android к Windows LAN

В своем примере для подключения к локальной сети с Андроид я буду использовать бесплатное приложение файловый менеджер ES Проводник (ES Explorer). На мой взгляд, это лучший файловый менеджер на Android и, помимо прочего, в нем есть все необходимое для того, чтобы получить доступ к сетевым папкам (и далеко не только это, например, вы можете подключиться ко всем популярным облачным сервисам, в том числе и с разными аккаунтами).

Скачать бесплатно файловый менеджер для Android ES Проводник вы можете из магазина приложений Google Play https://play.google.com/store/apps/details?id=com.estrongs.android.pop

После установки, запустите приложение и перейдите на вкладку подключения к сети (ваше устройство при этом должно быть подключено по Wi-Fi через тот же роутер, что и компьютер с настроенной локальной сетью), переход между вкладками легко осуществляется с помощью свайпа (жест пальцем с одной стороны экрана до другой).

Далее у вас есть два варианта действий:

  1. Нажать кнопку Scan, тогда произойдет автоматический поиск компьютеров в сети (если нужный компьютер найден, можете сразу прервать поиск, иначе он может продолжаться долго). 
  2. Нажать кнопку «Создать» и указать параметры вручную. При ручном указании параметров, если вы настраивали локальную сеть по моей инструкции, имя пользователя и пароль не понадобятся, зато нужен будет внутренний адрес IP компьютера в локальной сети. Лучше всего, если вы укажете на самом компьютере статический IP в подсети роутера, в противном случае при включении и выключении компьютера, он может изменяться. 

После подключения, вы сразу получите доступ ко всем сетевым папкам, к которым такой доступ разрешен и сможете выполнять с ними нужные действия, например, как уже говорилось, проигрывать видео, музыку, смотреть фотографии или что-то еще на ваше усмотрение.

Как видите, подключение Android устройств к обычной локальной сети Windows — совсем не сложная задача.

Quick Links

  • Sharing Folders on Windows 7

  • Accessing Shared Folders on Android

Want to play videos from your computer on your Android, without the hassle of copying them to your device’s internal storage? Share a folder over the network with Windows. You can copy files back and forth over Wi-Fi, too.

Android doesn’t include built-in functionality for connecting to Windows shared folders or HomeGroups, but it’s pretty easy to set up. We’ve also covered using Plex, a dedicated streaming solution, but this is even simpler.

Sharing Folders on Windows 7

To share a folder and make it accessible from Android, you’ll need to share it with “Everyone.”

To do this, navigate to the folder you want to share, click the Share with menu, and select Specific people.

image

Enter “Everyone” in the box and click the Add button.

sshot-4

By default, Everyone will only have Read permissions – if you also want to copy files from your Android to the shared folder, you can change the permission level to Read/Write.

Click the Share button after configuring your permissions.

image

Next, go to the Network and Sharing Center. Click Start, type “Network and Sharing” and press Enter to quickly open it.

image

In the Advanced sharing settings, you may want to disable password-protected sharing. If you disable password-protected sharing, only folders you share with “Everyone” will be accessible without a password.

You can also try leaving password-protected sharing enabled, in which case you’ll need to enter user account credentials before connecting to your shared folder on Android. This may work, although I couldn’t get it to work, myself.

image

To access the shared folder on Android, we’ll use ES File Explorer. It’s high-quality, free, and supports Windows shared folders with the SMB protocol.

From ES File Explorer’s main screen, swipe from the right to the left to access the LAN section. You can also tap the Local option at the top left corner of the screen and select LAN in the list.

image

Tap the New button on the toolbar in the LAN Shares section and select Scan to scan your network for PCs sharing files. You can also tap New and select Server to enter your computer’s IP address manually.

image

After the scan is complete, tap a computer to view its shared files. If ES File Explorer finds your computer but continues scanning for more computers, tap the screen to stop the scan process.

image

Log in as Anonymous if you disabled password-protected sharing earlier. If you didn’t, try to log in with your Windows username and password – this never worked for me, however.

image

Browse to the folder you shared in your computer’s file system. I shared my user account’s Videos folder, so I’d tap Users, tap my user account’s name, and tap Videos.

While we can see other shares like C$ here, they aren’t accessible. We’d see an error message if we tried to access them anonymously.

image

Tap a video, music file, image, text file, or any other type of file to view it. You can also long-press a file to view a menu and optionally copy it to your device.

image

If you tap a file type Android supports – such as an MP4 video file – it will open immediately and start streaming to your device.

image

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Windows 2000 языковая панель
  • Создание виртуального образа windows xp
  • C windows system32 sppextcomobjhook dll что это
  • Восстановление удаленных файлов windows 10 recovery
  • Как убрать заставку с экрана компьютера на windows 10 при входе в систему