ISRAPDA
CifsManager — монтированиe и использованиe сетевых ресурсов
Модератор: zar013
Даритель
CifsManager — монтированиe и использованиe сетевых ресурсов
Сообщение igor7 » 18.10.2010, 18:38
Обнаружил очень полезную, имхо, програмку.
CifsManager. Программа позволяет подключать (монтировать, выражаясь языком Линукса) сетевые реурсы и использовать их локально. К примеру, не нужно будет каждый раз подключать девайс к копу кабелем USB, для того чтобы скопировать что либо на девайс,- достаточно лишь подключить сетевой ресурс и копировать локально, с помощью какого-нибудь файл менеджера. Или же, ступая по следам вот этой темы: http://forum.israpda.com/viewtopic.php?f=122&t=9776, можно просматривать видео или слушать музыку, которая находится на одном из компов в Вашей локальной сети. Все что будет далее описано, касается только HTC Desire, для других девайсов,- гугль Вам в помощь.
Что нужно для работы программы:
1. Прежде всего нужна домашняя сеть, настроенная соответствующим образом
2. Рутованный девайс, прошивка Фройо 2.2 с Сенсом.
3. Кернел (ядро) версии 2.6.32.15.ххх с поддержкой CIFS (cifs.ko) и опционально UTF8 (nls_utf8.ko) для корректного отображения кирилицы в названиях папок и файлов.
4. Опционально (но желательно) S-OFF на Вашем девайсе. Это облегчает жизнь иногда.
Итак, по первому пункту я думаю все понятно, по второму — нет рута и/или последнего Фройо 2.2 с Сенсом — не о чем говорить.
По третьему пункту — нужно сделать несколько проверок:
1. Идем в Settings >> About Phone >> Software Information и проверяем версию ядра. Если у Вас версия отличная от 2.6.32.15.ххх можно будет прошить уже готовое ядро самостоятельно, но об этом позже.
У большинстава,- те кто использует кастомные прошивки или последню офф. с рутом, версия ядра должна совпадать.
2. Если с ядром все в порядке, нужно проверить поддерживает ли оно CIFS. Для этого файл менеджером (я к примеру, использую Root Explorer) идем в /system/lib/modules и проверям наличие файлов
cifs.ko и опционально nls_utf8.ko.
Для тех, у кого все необходимое на месте, — можно скачать программу с маркета, установить и настроить. У кого этих файлов на месте не оказалось, есть несколько вариантов как их заиметь.
Вариант номер 1 : Еще раз внимательно проверяем версию Вашего ядра. Если у Вас 2.6.32.15-gd96f2c0 или 2.6.32.15-gf9c0527, считайте что Вам повезло. Берeм приатаченные файлики, для Вашего ядра соответственно:
Если все сделали правильно, в папке /system/lib/modules должны появиться заветные файлы.
Вариант номер 2 : У Вашей прошивки не те, ядра, которые описаны выше, но все остальное в соответствии с требованиями. Можно сделать две вещи,- или попытаться установить модули для ядра 2.6.32.15-gf9c0527, — сам не пробовал, и не уверен, что это сработает. но и не навредит если есть нандроид бэкап. Или сделать проще — пройти в эту тему, взять там готовое ядро и прошить его как любой апдейт из рековери меню (не забываем делать нандроид бэкап перед этой процедурой)
С подготовкой мы закончили ,- самое время установить программу. Качаем из маркета:
192.168.10.100/C$ — сетевой ресурс, к которому мы хотим подключитья.
/mnt/cifs/D$ — место, где будет смонтирован (подключен) сетевой ресурс. Полный путь для файл менеджера: /mnt/cifs/D$
username — пользователь, который имеет право доступа к сетевому ресурсу
password — без коментариев
iocharset=utf8 — если есть соответствующий модуль, будет поддержка русского в именах файлов и папок.
Сохраняем настройки, делаем тап на только что созданной строке и наблюдаем за подключением к сетевому ресурсу. Теперь любым файловым менеджером, у которого есть доступ к системным папкам, идем в /mnt/cifs/D$ и копируем необходимые файлы на девайс.
Для простого доступа к системным ресурсам этого вполне достаточно, но если нужно проигрывать фильмы и слушать музыку по сети, эти настройки не подойдут. Все дело в том, что я не видел еще ни одного плеера который умеет заходить в системные папки. Поэтому нам просто напросто нужно смонтировать сетевой ресурс на SDCARD. Для этого делаем все как на скриншете:
Монтирование сетевого ресурса на карту памяти
Ну и теперь дело за малым, — смотреть кино или слушать музыку. Сетевая папка смонтирована прямно на карте памяти!
Можно немного улучшить функционал программы. По дефолту программа умеeт ассоциироваться с EStrongs File Explorer или Astro File Manager. Т.е если Вы установите одну из этих програм, по тапу на смонтированном ресурсе, он будет сразу окрываться в соответствующей программе (я использовал EStrongs File Explorer). Далее находим файл, который хотим посмотреть/послучать, длинный тап по нему, и Вам предложат на выбор несколько программ установленых в системе, которые умеют проигрывать данный тип файлов:
EStrongs File Explorer
Источник
Добавляем поддержку монтирования Windows шар в Android
Купил недавно себе планшет Samsung Galaxy Tab Pro 10.1 LTE SM-T525 и захотелось дома смотреть на нём фильмы и другие файлы с моего сетевого диска, расшаренного через samba. Для этого в ядре должна быть поддержка CIFS и не только… в андроиде начиная с версии 4.2 это оказалось нетривиальной задачей.
1. Суть проблемы с пользовательскими монтированиями
Дело в том, что с версии 4.2 в Adnroid ввели многопользовательский режим и вместе с ним все файловые системы теперь монтируются как Slave, это приводит к тому, что файловая система смонтированная одним пользователем, не видна другим пользователям.
В виртуальной машине Dalvik андроида с версии 4.2 в файле vm/Init.cpp есть такой код:
Этот код монтирует рутовую файловую систему с флагами MS_SLAVE и MS_REC, это означает что файловые системы, смонтированные внутри / будут также монтироваться по умолчанию с флагом MS_SLAVE и доступны только пользователям их смонтировавшим и их дочерним процессам. Для решения этой проблемы, пользователем mkasick с xda-developers был предложен следующий патч для ядра в функции do_mount:
Суть патча в том, что мы перехватываем вызов do_mount для / с флагами MS_SVALE и MS_REC и не даём их установить. Но для работы андроида эти флаги необходимы для пользовательских файловых систем в /storage, иначе система у меня просто не грузится. Поэтому мы вызываем do_mount(NULL, (char *)storage, NULL, (MS_SLAVE | MS_REC), NULL)) == 0). Чтобы последний вызов работал, /storage должна быть точкой монтирования, а не просто директорией, поэтому в файле init.rc в рамдиске, где происходит создание директории /storage необходимо туда смонтировать tmpfs
После этих манипуляций, точки монтирования за пределами /storage будут видны всем пользователям.
Для начала необходимо добавить поддержку CIFS в Linux ядро. Это можно сделать двумя способами: скомпилировать модуль для ядра cifs, либо добавить поддержку cifs в само ядро. Первый способ лучше, т.к. не надо будет прошивать новое ядро и терять гарантию на некоторых аппаратах.
Ядро моего планшета оказалось собрано без поддержки модулей, так что мне пришлось пересобирать и прошивать новое ядро:
Для сборки ядра необходимо:
а) Машина на Linux
б) Исходники ядра для вашего девайса, для Самсунга берём здесь opensource.samsung.com
в) Toolchain для сборки, берём тут developer.android.com/tools/sdk/ndk/index.html
Для сборки ядра создаём директорию
/android, и распаковываем внутри неё исходники ядра в директорию kernel, android-ndk в android-ndk-r9
Теперь применяем патч для исправления проблемы с пустыми точками монтирования
Далее необходимо прописать переменные окружения и подготовить конфигурационный файл ядра, для моего самсунга это делается так:
Данная команда создаст файл .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
Для распаковки boot.img понадобится пакет bootimg_tools
Скачиваем его в
/android, и распаковываем командой split_boot файл boot.img
и получаем распакованный ramdisk в директории boot/ramdisk
Теперь необходимо поправить пару файлов в рамдиске для перевода Selinux в permissive mode и для монтирования /storage как tmpfs
В файле init.rc ищем строчку setsebool debugfs 1 и заменяем её на
Далее ищем строку setprop selinux.reload_policy 1 и меняем её на setprop selinux.reload_policy 0
Для монтирования /storage как tmpfs ищем строчку mkdir /storage 0751 root sdcard_r и после неё добавляем
Также в файле defaul.prop меняем ro.secure=1 на ro.secure=0 и ro.adb.secure=1 на ro.adb.secure=0
Теперь собираем ramdisk назад
Далее для сборки нам ещё необходим файл dt.img, он генерируется утилитой dtbTool которая идёт в комплекте с ядром
Теперь, когда есть всё необходимое для сборки boot.img, начинаем саму сборку при помощи утилиты mkbootimg (поставляется так же с ядром)
Всё, файл boot.img готов. Для прошивки его через Odin, делаем из него 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, т.е. предыдущая команда будет выглядеть так:
б) Теперь про точку монтирования. Как писалось выше, если мы будем монтировать внутри /storage, то такая шара будет пустая для других приложений, если же монтировать куда-то вне /storage, то большинство приложений её не смогут открыть, т.к. позволяют открывать файлы только внутри карты памяти. Выход есть. Внутренняя память /storage/emulated/0 на самом деле лежит в /data/media/0, а /storage/emulated/0 — это эмуляция fat32 для этой директории. Так что мы смело можем можем монтировать например в /data/media/0/cifs и увидим нашу шару в фйловом менеджере в internal storage.
в) Есть ещё нигде не описанный нюанс, команда mount -t cifs почему то игнорирует параметры, идущие после password, например в команде
параметр sec=ntlmssp не будет обработан. Поэтому, если для подключения к шаре необходим пароль, то в CifsManager поле Password оставляем пустым, а пароль пишем в поле Options в самый конец, как на скриншоте выше.
г) Для корректной работы с русскими буквами в именах файлов, необходимо добавить опцию iocharset=utf8
Теперь монтируем шару в CifsManager и наслаждаемся!
Источник
Cifs клиент android настройка
Для функционирования программы необходимы права root пользователя.
Краткое описание:
Монтирование и использование сетевых ресурсов локально.
Описание:
Программа написана для монтирования и использования сетевых ресурсов на девайсе(локально) (к примеру: просмотр видео без ошибки «не поддерживается потоковая передача»)
необходимо : root
ядро с поддержкой CIFS (cifs.ko)
Android >= 1.6
нашёл программку на просторах ресурса XDA,
уже доступна в маркете.
для поддержки кириллицы в опциях надо ввести iocharset=utf8 но работает это тлько с ядрами с поддержкой utf8
у Wildmonk’s есть ядра с поддержкой UTF8 (кириллицы) (если не ошибся — только для Nexus one)
В версии 1.5 есть возможность загрузки нескольких модулей (указывать через двоеточие), пример:
/system/lib/modules/nls_utf8.ko:/system/lib/modules/cifs.ko
То есть возможно загружать сначала русские буквы, а потом сеть.
Перед тем как задавать вопрос — поищите по теме свой девайс!
ming39
Что-бы получить права полные, с удалением файлов, в свойствах через запятую пишем file_mode=0777
Кто с другими девайсами знаете где нарыть ядра с поддержкой UTF8 — пишите. прикреплю 😉
Пишите в ветке мануалы и давайте ссылки на сырцы. будет время — добавлю в шапку. (если сдублируете сообщение в личку — супер,быстрее перекину в шапку
При добавлении шары в cifsmanager вводим путь к шаре, точку монтирования (лучше в /sdcard/cifs/), в поле options пишем «iocharset=utf8» без кавычек. Если шара доступна в сети (с других машин) без ввода логина/пароля — имя пользователя guest, пароль пустой. Иначе нужно ввести данные учетной записи для этой шары.
Если не получается получить доступ к шаре на win-системе (при монтировании возникает ошибка mount permission denied) — копать в сторону включения учетной записи гостя, для висты и 7ки в центре управления сетями и общим доступом отключить общий доступ с парольной защитой.
Есть у меня на ZTE Blade от Билайна (E400) уже имелась папка /system/lib/modules/, но, как оказалось, в ней нужно создать папку 2.6.32.9-perf
затем, я сее для удобства создал файлик для автоматического запуска некоторых команд для подготовки файлов:
Затем, делаем скрипт исполняемым и запускаем:
Если Всё в порядке, то сначала просто выведется несколько пустых строчек, а затем ещё несколько непустых, в которых, если модули в порядке, будет:
Скачать файлы модулей: ZTE_Blade__ZTE_V9__kernel_2.6.32.9_perf___cifs__slow_work__tun__nls_utf8_.ko_mod
ules.rar
Ах, да, чуть не забыл.
В CIFSManager выставляем в опциях все галки, а в пункте Path to cifs.ko[:modpath]*
пишем:
Создаём шару и в опциях пишем (пример для виндовых шар):
И ещё совет. Кто пользует XP и какого-то безпарольного пользователя, имеющего доступ к расшаренному ресурсу, чтобы шара открывалась без пароля, только с именем пользователя, лезем в Пуск/Настройки/Панель управления/Администрирование/Локальные политики безопасности. Или Пуск/Выполнить и пишем: secpol.msc
Там ищем Параметры безопасности/Локальные политики/Параметры безопасности и в списке справа почти в конце пункт «Учетные записи: ограничить использование пустых паролей только для консольного входа», дважды щелкаем мышкой и выбираем Отключить и затем жмём «Ок».
У меня Galaxy S (rooted)
2.1 ECLAIR.XWJM7
Kernel 2.6.29 [email protected] #2
Cifsmanager всегда пишет «no such device». Перепробовал все версии cifs.ko, какие только есть.
Сегодня смог подключить сетевую шару с помощью adb.
cifs.ko у меня находится на sdcard в /sdcard/cifs/cifs.ko.
Cifs.ko пришлось загрузить через adb:
После этого Cifsmanager без вопросов примонтировал шару.
[quote name=»Святитель Киприц» date=»18.09.2010, 10:09″ post=5222961]Плохой новостью стало, что те файлы, которые имеют в названии кирилицу, мало того, что вопросительными знаками отображаются, так они еще и не открываются программами.
Решилось: закинул nls_utf8.ko в ту же папку, где у меня валяется cifs.ko и прописал в опциях как сказано здесь:
Всё заработало, русские буквы видны и все запускается!
Its works!
Прикрепил файлы, которые я использовал, может кому пригодятся: cifs.ko и nls_utf8.ko.
Cifs.zip
сначала обязательно нужно загрузить slow-work.ko, только потом сifs.ko
например
insmod slow-work.ko
insmod cifs.ko
поддержка utf8 уже есть в ядре, так что с опцией iocharset=utf8 русские имена папок и файлов показываются нормальноFroyo.zip
проверил на прошивке JPO — работает на ура.
HTC Wildfire S версия ядра 2.6.35.10-ga66971c
(zombierzn)Cifs.ko для Wildfire с версией ядра 2.6.29-6fb59e13 (WildPuzzleROM v7.1).
В архиве 2 файла (cifs.ko и nls_utf8.ko). Второй нужен для того чтоб русские файлы нормально отображались. Файлы надо положить в /system/lib/modules/.
Так и не понял как сделать в программе чтоб инициализировался не только cifs.ko но и nls_utf8.ko, поэтому делал в GScript.
Для монтирования:
,iocharset=utf8 -t cifs
— пароль, удаленная шара (напр. \\192.168.1.2\share), — папка на коммуникаторе (напр. \sdcard\share).
где — смонтированная папка на коммуникаторе.
При создании скриптов в GScript надо поставить галку «Needs SU?».
В GScript можно вынести ярлыки скриптов на рабочий стол и получится едва ли не удобнее чем в программе этой.
Надеюсь кому нибудь пригодится:)
buzz_2.6.29_6fb59e13.zip
Добавлю: Вполне вероятно что прога не умеет правильно находить куда впихнуть модуль или не корректно обращяется к busybox и команде insmod. поэтому можно пользоваться выше описанным способом,либо 1 раз через ADB или тот-же Gscript\ASE выполнить «insmod».
по поводу
Я новичок в андроиде. Сделал так. Зашел на форум xda и ввел поиском cifs desire. Там была тема http://forum.xda-developers.com/showthread.php?p=7713599 сравнил номер ядра, мой! Скопировать в system/lib/modules не получилось какая-то засада как с подменой hosts, даже с рутом не дает это сделать. Ну фиг с ним. Создал на карте папку /sdcard/cifs/ и кинул туда cifs.ko, дальше просто, в настройках программы выбираем load via insmod и указываем путь к cifs.ko.
— там в архиве был еще какой-то nls с utf-8, что такое не понял, думаю для поддержки кириллицы в путях, но как использовать не понятно.
— тут на форуме еще была ссылка на cifs моего ядра от официальной 2.2 я его не тестил, поскольку все и так работает.
Немного добавлю.
собрано для ядра 2.6.32.15 и немного не догнал что за значения arm-eabi-4.4.0 — может это на Десайре что обозначает?
как использовать:
качаем cifs_bravo_stockfroyo.zip ( 108.82 КБ )
далее входим в Рекавери(?) (Десайра не имею — не могу нормально обьяснить что это значит)
далее в программе при настройке шары,в последнем пунктике вводим iocharset=utf8
в принципе должно работать. кто с Десайром попробуйте и отпишитесь.
1) Во первых надо найти модули cifs.ko, nls_utf8.ko для версии ядра вашего девайса.
Ищем по шапке темы, на xda-developers.com. Если непонятно для какой версии найденные модули, ищем внутри них строчку «vermagic=». Если полное соответствие — ура, если совпадает только числовая часть (например у вас 2.6.32.15-xxxxxxxx, а найдена 2.6.32.15-yyyyyyyy) — hex-редактором правим в каждом ko файле yyyyyyyy на xxxxxxxx. Если нет и таких, можно попробовать поискать для других устройств с тем же типом процессора.
2) копируем модули на флешку в /sdcard/cifs
3) через терминал (я использовал встроенный в SUFBS) задаем правильные права файлам
su
chmod 644 /sdcard/cifs/*.ko
Подготовка закончена.
Через терминал и su загружаем модули:
insmod /sdcard/cifs/cifs.ko
insmod /sdcard/cifs/nls_utf8.ko
Эти команды надо будет делать после каждой перезагрузки устройства. Чтобы не писать их терминале каждый раз, поставил GScript Lite и оформил в виде скрипта. Как вариант, можно грузить их автоматически через modprobe.
Теперь можно запускать cifsmanager и настраивать шары.
При добавлении шары в cifsmanager вводим путь к шаре, точку монтирования (лучше в /sdcard/cifs/), в поле options пишем «iocharset=utf8» без кавычек. Если шара доступна в сети (с других машин) без ввода логина/пароля — имя пользователя guest, пароль пустой. Иначе нужно ввести данные учетной записи для этой шары.
Если не получается получить доступ к шаре на win-системе (при монтировании возникает ошибка mount permission denied) — копать в сторону включения учетной записи гостя, для висты и 7ки в центре управления сетями и общим доступом отключить общий доступ с парольной защитой.
Источник