Стандартный файловый менеджер Huawei не поддерживает протокол NFS из коробки, поэтому для подключения сетевых ресурсов требуются сторонние приложения или права суперпользователя. В отличие от SMB, который доступен в «Файлах» на EMUI 10+ и HarmonyOS, монтирование NFS-шар на уровне системы заблокированно производителем для обычных пользователей. Это ограничение заставляет владельцев устройств искать обходные пути для доступа к медиатекам на NAS или домашних серверах.
На практике существует два рабочих сценария: использование файловых менеджеров с встроенным NFS-клиентом в пользовательском пространстве и монтирование через терминал с правами root. Первый вариант подходит для просмотра видео и копирования документов, второй — для прозрачной работы любых приложений с сетевой папкой как с локальной. Выбор метода зависит от того, разблокирован ли загрузчик и установлен ли Magisk.
Почему на Huawei нет встроенной поддержки NFS
Оболочки EMUI и HarmonyOS ориентированы на массового потребителя, для которого протокол SMB/CIFS является стандартом домашних роутеров и Windows-сетей. Ядро Linux в Android поддерживает модуль nfs.ko, но в прошивках Huawei он либо отсутствует, либо не загружается без подписи. К тому же, политика безопасности Huawei запрещает монтирование файловых систем в глобальное пространство имен без привилегий CAP_SYS_ADMIN.
Даже если установить модуль ядра вручную, демон rpcbind и утилиты mount.nfs в стандартном окружении отсутствуют. Попытка выполнить команду mount -t nfs в Termux без рута завершится ошибкой Operation not permitted. Поэтому «родного» способа подключить NFS-шару через системный пикер файлов не существует — только пользовательское пространство приложений или полноценный root-доступ.
- 🔒 Отсутствует модуль ядра
nfs.koв штатной прошивке - 🚫 Нет бинарников
mount.nfsиrpcbindв/system/bin - 🛡 Политика SELinux блокирует монтирование в глобальный namespace
- 📱 Файловый менеджер «Файлы» поддерживает только SMB, FTP, WebDAV
Способ 1: Подключение через файловые менеджеры (без рута)
Самый простой путь — установить файловый менеджер с реализацией NFS-клиента на Java/Kotlin. Такие приложения работают в пользовательском пространстве, не требуют прав суперпользователя и корректно отображают сетевые папки в собственном интерфейсе. Лучшие на сегодня: Solid Explorer, MiXplorer (плагин SMB/NFS), Cx File Explorer и X-plore. Все они доступны в Google Play или через Aurora Store.
После установки нужно добавить новое подключение: выбрать протокол NFS, указать IP-адрес сервера, экспортируемую директорию (export path) и при необходимости логин/пароль или анонимный доступ. Важно: сервер должен разрешать подключения с insecure портов (высокие номера), так как Android-клиенты не могут биндиться на привилегированные порты < 1024 без рута. В /etc/exports на Linux-сервере добавьте опцию insecure для соответствующей шары.
☑️ Чек-лист настройки NFS в Solid Explorer
Внутри этих менеджеров можно смотреть видео через внешние плееры (MX Player, VLC), копировать файлы во внутреннюю память и даже стримить музыку. Ограничение: другие приложения (галерея, музыкальные плееры, офисные пакеты) не увидят эту шару, так как она не примонтирована в /mnt или /storage. Для полноценной интеграции нужен второй способ.
| Приложение | Поддержка NFSv3/4 | Кэширование | Цена |
|---|---|---|---|
| Solid Explorer | v3, v4 (частично) | Есть, настраиваемое | Платно (проба 14 дней) |
| MiXplorer + плагин | v3, v4, v4.1 | Продвинутое | Бесплатно (на XDA) |
| Cx File Explorer | v3 | Базовое | Бесплатно (реклама) |
| X-plore File Manager | v3 | Есть | Freemium |
⚠️ Внимание: Если файловый менеджер не видит файлы на шаре, проверьте права доступа на сервере. Для анонимного доступа экспорт должен иметь опциюall_squash,anonuid=65534,anongid=65534, и у пользователяnobodyдолжны быть права чтения на файловой системе.
Способ 2: Монтирование через терминал (требует Root)
Если загрузчик разблокирован и установлен Magisk, можно примонтировать NFS-шару в реальную файловую систему телефона. Это делает сетевую папку видимой для всех приложений: галерея покажет фото, видеоплееры — фильмы, а бэкап-утилиты — смогут писать бэкапы прямо на NAS. Нужен модуль Magisk «NFS Support» или вручную скомпилированный nfs.ko под ваше ядро + бинарники busybox с апплетом mount.nfs.
После установки модуля перезагрузитесь. Создайте точку монтирования: mkdir /data/local/tmp/nfs_share. Затем выполните монтирование через su:
su -c"mount -t nfs -o vers=3,proto=tcp,soft,timeo=50,retrans=3,rsize=32768,wsize=32768 192.168.1.100:/volume1/video /data/local/tmp/nfs_share"
Параметры soft,timeo=50,retrans=3 критичны для мобильной сети: они предотвращают зависание процессов при потере Wi-Fi, возвращая ошибку I/O вместо бесконечного ожидания. Для автозапуска добавьте скрипт в /data/adb/service.d/ или используйте приложение Tasker с событием «Wi-Fi Connected».
⚠️ Внимание: Монтирование в/sdcardили/storage/emulated/0сломает доступ к внутренней памяти и приведет к bootloop. Используйте только выделенные директории в/data/local/tmp/или/mnt/(если разрешено SELinux).
Подробности про SELinux контексты для NFS
На Android 10+ (EMUI 10+/HarmonyOS) SELinux в режиме Enforcing блокирует доступ к точке монтирования даже от root. Нужно либо переключить SELinux в Permissive (риск безопасности), либо создать политику через magiskpolicy: `allow fsd fsd: filesystem mount; allow fsd fsd: dir mounton; allow appdomain nfs_mount_point: dir { read write open };`. Это продвинутый уровень, для новичков проще пользоваться файловыми менеджерами.
Настройка сервера NFS для работы с Android
Проблемы часто кроются не в телефоне, а в конфигурации экспорта. Android-клиенты (и файловые менеджеры, и ядро) капризны к версии протокола и опциям аутентификации. Рекомендуется зафиксировать версию NFSv3 через vers=3 на клиенте и nfsvers=3 на сервере, так как реализация NFSv4 в пользовательском пространстве часто ломается на idmap-соответствии пользователей.
В /etc/exports (Linux/TrueNAS/OpenMediaVault) строка для анонимного чтения/записи должна выглядеть так: /volume1/video 192.168.1.0/24(rw,async,insecure,no_subtree_check,all_squash,anonuid=1000,anongid=1000). Здесь insecure обязателен для не-рутованных клиентов, all_squash мапит всех на одного пользователя (замените 1000 на UID вашего медиа-пользователя на NAS). На Synology/DSM настройте это в «Панель управления → Общие папки → Изменить → NFS-права → Создать → Squash: Map all users to admin».
- 🌐 Экспорт с опцией
insecureдля портов >1024 - 👤
all_squash+anonuid/anongidдля единых прав - 🔧 Фиксация
vers=3на клиенте для стабильности - 🛡 Открыть порты 111 (rpcbind), 2049 (nfs), 20048 (mountd) в фаерволе NAS
Типичные ошибки при подключении и их решение
Самая частая ошибка — «Permission denied» или «Access denied by server while mounting». Она означает, что IP телефона не в списке разрешенных хостов экспорта, или не совпадают UID/GID. Проверьте showmount -e 192.168.1.100 из Termux (нужен busybox) — он покажет доступные экспорты и права. Если команда висит — порт 111 (rpcbind) закрыт фаерволом.
Ошибка «Stale file handle» после пробуждения телефона — классика NFSv3 без блокировок. Лечится опциями soft,intr на клиенте и перемонтированием. В файловых менеджерах просто перезайдите в закладку. На рутованном телефоне помогает скрипт-вачдог, проверяющий mountpoint -q /mnt/nfs и делающий umount -l; mount... при потере связи.
⚠️ Внимание: Не используйте опциюhardбезintrна мобильном устройстве. При потере сети любой процесс, обращающийся к точке монтирования, уйдет в unkillable sleep (D-state), и телефон придется перезагружать кнопками.
Особенности работы NFS на HarmonyOS и EMUI
На новых версиях HarmonyOS 3.0/4.0 и EMUI 13/14 агрессивное управление питанием убивает фоновые соединения TCP через 5–10 минут после выключения экрана. Файловые менеджеры теряют хендл на шару, и при следующем открытии выдают ошибку «Network unreachable». Лечится добавлением приложения в «Защищенные приложения» (Battery → App launch → Manage manually → Run in background) и отключением «Интеллектуального экономии заряда» для конкретного менеджера.
Также на HarmonyOS Next (без AOSP) может не работать statx-системный вызов, который используют современные NFS-клиенты для получения атрибутов файлов. Симптом: папка открывается, но размер файлов показывает 0 байт, превью не генерируются. Обновление приложения-клиента или откат на NFSv3 с noac (no attribute caching) помогает обойти баг.
Добавьте файловый менеджер в «Белый список» автозапуска: Настройки → Батарея → Запуск приложений → Выберите менеджер → Отключите «Управлять автоматически» → Включите «Автозапуск», «Вторичный запуск», «Запуск в фоне». Это сохраняет TCP-сессию NFS при выключенном экране.
Альтернативы NFS для домашней сети
Если настройка NFS вызывает боль, рассмотрите SMBv2/v3 — он нативно поддерживается в «Файлах» Huawei (меню «Сетевое хранилище»), работает через тот же порт 445, не требует rpcbind и лучше переносит смену IP при роуминге Wi-Fi. Для медиа-стриминга отлично подходит WebDAV (порт 443/80) — его понимают все плееры и он проходит через любые прокси. SFTP через Termux или файловые менеджеры дает шифрование «из коробки», но медленнее на слабых процессорах NAS.
Для бэкапа фото/видео с телефона на NAS удобнее всего использовать специализированные синхронизаторы: Syncthing (P2P, без сервера), FolderSync (поддерживает SMB/WebDAV/SFTP/NFS) или нативное «Резервное копирование» Huawei на внешний USB-диск, а затем rsync с диска на NAS. Это снимает головную боль с монтированием и правами доступа.
Главный вывод: для разового просмотра контента достаточно Solid Explorer/MiXplorer без рута. Для системной интеграции (галерея, бэкапы, серверы) нужен Magisk + модуль NFS + грамотные опции монтирования soft/intr. SMB остается самым надежным «родным» протоколом на Huawei.
Часто задаваемые вопросы
Почему NFS-шара не видна в системном пикере файлов («Открыть файл» в приложениях)?
Пикер файлов (Storage Access Framework) показывает только документ-провайдеры, зарегистрированные в системе. Файловые менеджеры реализуют NFS внутри себя, но не экспортируют его как DocumentProvider. Root-монтирование в /storage/emulated/0/NFS тоже не сработает — система не сканирует эту точку для SAF. Решение: копируйте нужные файлы во внутреннюю память через менеджер перед открытием в целевом приложении.
Можно ли монтировать NFS на Huawei без разблокировки загрузчика?
Нет. Монтирование файловых систем в глобальный namespace требует привилегий CAP_SYS_ADMIN и загрузки модуля ядра nfs.ko. Без разблокировки загрузчика (OEM unlock) и установки Magisk получить эти права невозможно. Пользовательское пространство (файловые менеджеры) — единственный легальный путь.
Какой максимальный размер файла поддерживает NFS на Android?
Ограничение задает файловая система сервера и версия протокола. NFSv3 с LFS (Large File Support) позволяет файлы до 2^63 байт (8 ЭБ). На клиенте Android (64-бит) нет программных лимитов. Проблемы могут быть только у 32-битных файловых менеджеров на старых устройствах — они не откроют файлы >2 ГБ.
Почему видео лагает при воспроизведении с NFS через VLC/MX Player?
Сетевой буфер плеера меньше, чем у локального файла. В настройках VLC увеличьте «Кэш сетевого потока» (Network caching) до 2000–5000 мс. В MX Player: Настройки → Плеер → Сеть → Размер буфера. Также проверьте, не загружен ли канал Wi-Fi другими задачами — NFS очень чувствителен к джиттеру и потере пакетов.
Где найти актуальные модули Magisk для NFS под конкретное ядро Huawei?
Официального репозитория нет. Ищите на XDA Developers в разделе вашего устройства (например, «Mate 30 Pro ROMs & Development») темы с заголовком «NFS kernel module» или «Magisk NFS module». Часто модули собирают энтузиасты под конкретную версию прошивки (build number). Устанавливайте только под свою версию EMUI/HarmonyOS, иначе получите kernel panic.