Стандартный файловый менеджер 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

Выполнено: 0 / 5

Внутри этих менеджеров можно смотреть видео через внешние плееры (MX Player, VLC), копировать файлы во внутреннюю память и даже стримить музыку. Ограничение: другие приложения (галерея, музыкальные плееры, офисные пакеты) не увидят эту шару, так как она не примонтирована в /mnt или /storage. Для полноценной интеграции нужен второй способ.

ПриложениеПоддержка NFSv3/4КэшированиеЦена
Solid Explorerv3, v4 (частично)Есть, настраиваемоеПлатно (проба 14 дней)
MiXplorer + плагинv3, v4, v4.1ПродвинутоеБесплатно (на XDA)
Cx File Explorerv3БазовоеБесплатно (реклама)
X-plore File Managerv3Есть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 на Huawei вы используете?
Файловый менеджер (Solid Explorer, MiXplorer)
Termux + Root (mount -t nfs)
Автоматизация через Tasker/Magisk
Еще не настраивал, читаю статью

Особенности работы 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.