Заставляем Android-приложения видеть и писать на внешнее хранилище в Chromebook

Важное: эти привязки влияют только на видимость папок в Android среде (ARC). Chrome OS будет по‑прежнему видеть внешний диск по‑отдельности и не покажет содержимое “Bound”.
Зачем это работает и краткая техническая модель
Коротко: мы используем bind-монты — механизм ядра Linux, который позволяет «прикрепить» одну директорию к другой точке в файловой иерархии. Android на Chrome OS видит только определённые пути (эмулированный sdcard в /run/arc/sdcard/…), поэтому если связать папку с внешнего носителя и нужную точку в emulated/0/Download, приложения увидят файлы, как если бы они хранились во внутренней папке.
Определения в одну строку:
- Bind‑монт: способ отобразить одну директорию в другую без копирования файлов.
- ARC: Android Runtime for Chrome — среда, где запускаются Android‑приложения на Chrome OS.
Ключевая мысль: мы не перемещаем файлы — мы создаём ссылку на них в дереве, доступном Android.
Что нужно знать заранее
- Требуется root через Crosh (sudo su).
- Привязки не сохраняются после перезагрузки — их нужно заново выполнить или автоматизировать (см. разделы ниже).
- Некоторые устаревшие или плохо поддерживаемые Android‑приложения могут видеть файлы, но не иметь права их открыть/изменить.
- Путь по умолчанию к внешнему диску в Chrome OS: /media/removable/UNTITLED (если диск переименован — используйте фактическое имя).
Шаг 1 — подготовка папок
- Откройте приложение «Файлы» Chrome OS и перейдите в Downloads.
- Создайте новую папку и назовите её Bound (можете выбрать любое имя, но подставляйте это имя в командах ниже).

- На внешнем носителе создайте папку с файлами, которые хотите открыть в Android (например, Screenshots).

Совет: используйте понятные имена и избегайте пробелов — это упростит составление команд.
Шаг 2 — открыть root shell и выполнить bind
- Нажмите Ctrl+Alt+T, чтобы открыть Crosh.
- Введите:
shell- Затем:
sudo suПосле ввода пароля у вас будет root‑оболочка.

- Выполните серию команд bind (подставьте свои имена):
mount --bind /media/removable/UNTITLED/Screenshots /run/arc/sdcard/default/emulated/0/Download/Bound
mount --bind /media/removable/UNTITLED/Screenshots /run/arc/sdcard/read/emulated/0/Download/Bound
mount --bind /media/removable/UNTITLED/Screenshots /run/arc/sdcard/write/emulated/0/Download/BoundПояснение: мы монтируем одну и ту же внешнюю папку в трёх местах, которые Android использует для разных режимов доступа (default/read/write). Это повышает вероятность корректной работы приложений.

Если у вас другое имя диска или папки, замените UNTITLED и Screenshots на реальные значения.
Пример скрипта для повторного исполнения
Если вам нужно часто восстанавливать привязки, создайте файл /mnt/stateful_partition/arc-bind.sh с таким содержимым (путь и права могут отличаться в зависимости от устройства):
#!/bin/sh
# Пример: запускать вручную после загрузки
mount --bind /media/removable/UNTITLED/Screenshots /run/arc/sdcard/default/emulated/0/Download/Bound
mount --bind /media/removable/UNTITLED/Screenshots /run/arc/sdcard/read/emulated/0/Download/Bound
mount --bind /media/removable/UNTITLED/Screenshots /run/arc/sdcard/write/emulated/0/Download/BoundСделайте его исполняемым:
chmod +x /mnt/stateful_partition/arc-bind.shЗапускайте скрипт из root‑оболочки после каждой перезагрузки:
sudo /mnt/stateful_partition/arc-bind.shВажно: автоматизация автозапуска требует дополнительных прав или изменения системных конфигураций, что может потребовать включения режима разработчика. Действуйте осторожно.
Шаг 3 — проверка и типичные проблемы
Ожидаемый результат: Android‑приложения (например, Галерея, файловые менеджеры) увидят папку Download/Bound и смогут открывать/сохранять файлы в неё.
Если приложение видит файлы, но не может открыть или изменить их:
- Проверьте права доступа на исходной папке на внешнем диске (chmod/chown не всегда применимы на FAT/ExFAT).
- Попробуйте другое приложение (некоторые старые приложения не поддерживают внешние файловые провайдеры).
- Убедитесь, что не включены ограничения безопасности приложения (Scoped Storage в новых версиях Android).
Если привязка пропадает после сна/пробуждения:
- Переподключите скрипт вручную.
- Проверьте логи dmesg и syslog (при наличии) для ошибок обращения к внешнему носителю.
Если диск называется иначе, можно найти имя так:
ls /media/removableЭто покажет список подключенных устройств и их меток.
Когда это не сработает — примеры и ограничения
- Приложения, использующие собственные движки чтения файлов (не через стандартные Android‑интерфейсы), могут не иметь доступа.
- Формат файловой системы: на FAT/ExFAT нет Unix‑прав — некоторые приложения ожидают POSIX‑совместимые права.
- Ограничения Scoped Storage в новых версиях Android могут блокировать запись в неожиданных сценариях.
- Привязки не выживают после перезагрузки без дополнительных действий.
Альтернативные подходы
- Использовать облачные хранилища (Google Drive, Dropbox) и синхронизировать нужные папки.
- Копировать нужные файлы во внутренний Download при необходимости (ручной перенос).
- Использовать Android‑приложение‑файловый менеджер с поддержкой внешних накопителей и системных API.
- Дождаться официальной поддержки SD‑карт Android на Chrome OS (в разработке у Google).
Проверочный список перед началом (Role‑based checklists)
Для пользователя:
- Убедитесь, что у вас есть резервная копия важных данных.
- Проверьте имя внешнего диска через /media/removable.
- Создайте папку Bound в Downloads.
Для администратора или технического специалиста:
- Проверьте, можно ли получить root через Crosh на конкретном устройстве.
- Подготовьте скрипт для восстановления bind (и документируйте шаги).
Мини‑методология: быстрый SOP
- Создать папку в Downloads (Bound).
- Создать папку на внешнем диске (например, Screenshots).
- Открыть Crosh → shell → sudo su.
- Выполнить три команды mount –bind, заменив пути.
- Проверить в Android‑приложении.
- Если нужно — сохранить команды в исполняемый скрипт.
Критерии приёмки:
- Android‑приложение видит папку Bound в /Download.
- Приложение может открыть и сохранить файл (если ожидается запись).
- Поведение стабильно после сна (по возможности) и приемлемо для пользователя.
Безопасность и приватность
- Bind‑монт не меняет содержимого файлов, но изменяет их видимость для Android‑среды. Любое приложение с доступом к папке сможет читать/записывать эти файлы.
- Оценивайте риск запуска неизвестных приложений, когда даёте доступ к внешним данным.
- На дисках с чувствительными данными рассмотрите шифрование перед подключением.
Совместимость и советы по миграции
- Поддерживается большинством Chromebook с Android Runtime, но конкретные пути могут немного различаться между сборками системы.
- Если Chrome OS обновляется, поведение ARC и пути к emulated/0 могут измениться — проверяйте и корректируйте скрипты.
Отладка и логирование — короткий чеклист
- Выполните ls -l целевой папки на внешнем диске.
- Проверьте, существуют ли точки монтирования в /run/arc/sdcard/*.
- Перезапустите Android‑приложение или устройство при проблемах с кешем.
- Посмотрите системные сообщения при помощи dmesg (при наличии прав).
Примеры использования и сценарии
- Хранение большого архива фотографий на SD и редактирование их Android‑приложением.
- Совместное использование папки с экспортами из младшего устройства (камера) и Android‑приложениями для быстрой обработки.

Изображение: пример приложения PicSayPro, показывающего содержимое папки Bound после привязки.
Заключение
Bind‑монты — практичный обходной путь, если нужно, чтобы Android‑приложения работали с внешним накопителем на Chromebook. Это не идеальное решение: требуется root, привязки не сохраняются автоматически и часть приложений может вести себя нестабильно. Тем не менее, для многих задач это самое быстрое и гибкое решение до появления полноценной поддержки SD‑карт в Android на Chrome OS.
Краткое руководство для начинающих:
- Создайте папку Bound в Downloads.
- Создайте папку на SD‑карте.
- Выполните три команды mount –bind в root‑shell Crosh.
- При необходимости автоматизируйте выполнение команд с учётом рисков.
Important: перед любыми изменениями делайте резервную копию данных и осторожно подходите к автоматизации, которая требует режима разработчика.
Сводка:
- Bind-монты дают Android доступ к внешним файлам через эмулированный sdcard.
- Решение работает хорошо в большинстве случаев, но имеет ограничения по совместимости и устойчивости после перезагрузки.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента