Тема: Перенос данных Android на карту памяти / общий доступ с нативными
В этом сообщении мои рассуждения по теме.
Могу в чем-то ошибаться, исправляйте, если что
Отдельно спасибо Sailfish OS за классическую реализацию fstab, в отличие от всяких Android!
Есть известная проблема, которая заключается в том, что из-за прав доступа Android-приложения не всегда корректно работают с файлами пользователя:
* нативные приложения работают от пользователя nemo в группе nemo
* Android-приложения работают от пользователя 10045 (не существующего?) и группы sdcard_rw
Причем, в качестве некоторой "песочницы" для Android-приложений используется директория /sdcard (точнее, /data/sdcard, на которую указывает симлинк /sdcard).
Появилась идея монтировать в эту папку файловую систему, которая не контролирует доступ к файлам.
Да, есть условная угроза безопасности, но совершенно не критично для музыки, видео, картинок и прочего хлама, создаваемого с помощью Alien Dalvik.
Самый простой и вполне работающий способ - монтировать fat32.
Но это как-то не здорово.
Особенно если учесть, что у меня есть свободная microsd на 64 ГБ.
Увы, поддержки exfat сейчас в Sailfish OS нет.
Ничего связанного с bindfs в pkcon не обнаружилось, но оказалось, что он находит и устанавливает пакет acl с утилитами для работы с (не поверите!) ACL.
Я подумал, что, значит, можно управлять правами, отформатировал карточку в btrfs и попытался подключать ее с опцией acl. Увы, не монтируется с такой опцией почему-то, только noacl.
Так что, пока моя карточка разбита на два раздела:
* fat32 на 32 ГБ, который монтируется в /data/sdcard
* brtfs на остальное пространство, который монтируется в /home
И сделаны перенаправления для папок с мультимедиа из /data/sdcard в /home/nemo.
Костыльность такого решения очевидна, но как лучше сделать не придумал.
fstab выглядит так
UUID=0f8a2490-53ed-4ff6-ba34-b81df3430387 / btrfs defaults,autodefrag,noatime 0 0
#UUID=0f8a2490-53ed-4ff6-ba34-b81df3430387 /home btrfs subvol=@home 0 0
UUID=0f8a2490-53ed-4ff6-ba34-b81df3430387 /swap btrfs subvol=@swap 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs defaults 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
/dev/mmcblk1p1 /data/sdcard vfat defaults,umask=000,utf8 0 0
/dev/mmcblk1p2 /home btrfs space_cache,compress,noatime,ssd_spread,noacl 0 0
/data/sdcard/Audiobooks /home/nemo/Audiobooks none bind 0 0
/data/sdcard/Documents /home/nemo/Documents none bind 0 0
/data/sdcard/Downloads /home/nemo/Downloads none bind 0 0
/data/sdcard/Music /home/nemo/Music none bind 0 0
/data/sdcard/Pictures /home/nemo/Pictures none bind 0 0
/data/sdcard/Playlists /home/nemo/Playlists none bind 0 0
/data/sdcard/Public /home/nemo/Public none bind 0 0
/data/sdcard/Templates /home/nemo/Templates none bind 0 0
/data/sdcard/Videos /home/nemo/Videos none bind 0 0
QKit - инструментарий для быстрого кроссплатформенного создания приложений на QML.
FAQ по Nokia N9 - читаем, пополняем.
Прежде, чем задать вопрос, воспользуйтесь поиском!