Shelter Андроид приложение для изоляции приложений в отдельно созданном профиле, но в версии Android 10 у Shelter есть проблема с расшариванием файлов между профилями - фича в оригинале называется file shuttle, и оно не работает.
Shelter - Free and Open Source Android App, доступно на F-Droid, а в Google Play замечен не был.
Shelter | F-Droid - Free and Open Source Android App Repository
Shelter is a Free and Open-Source (FOSS) app that leverages the "Work Profile" feature of Android to provide an isolated space that you can install or clone apps into.
For a full description, please read from the Git repository of Shelter. A summary is provided below.
The main use-cases of Shelter include:
- Installing apps inside a work profile for isolation
- "Freeze" apps inside the work profile to prevent them from running or being woken up when you are not actively using them
- Installing two copies of the same app on the same deviceNote that Shelter depends on the Work Profile feature of the Android system, so any bugs related to Work Profiles in the Android-derived system you are using will affect Shelter. In addition, Shelter can only be as secure as the Work Profile implementation.
Shelter file shuttle not work
Проблема с перемещением файлов между основным и рабочим профилями в shelter появилась начиная с версии Андроид 10. Во всех остальных версиях Андроидоф 9,11,12 file shuttle арбайтен без проблем.
Проблема заключается в том, что данную фичу в Андроид 10 нельзя активировать из-за её недоступности:
Проблема неразрешима по сегодняшний день - android shelter file shuttle not work:
- File shuttle not available #97
...
riedel commented on Feb 19, 2020
I switched to Island where this is working in q. One could do a careful code review in the differences
Похожие проблемы по ссылкам:
- Cannot access Shelter file sytem under Android 10 #142
- (Probably bug) Can't disable file shuttle on Android 10 #147 (даже так бывает)
Второй геммор заключается в том, что даже при активной фиче (маст хэв права на доступ к файлам для обоих Shelter из основного и рабочего профилей) перемещение файлов возможно только с помощью некоего файлового менеджера Файлы из Google Play:
В качестве решения намечено несколько вариантов:
- Переход на другое приложение (ака Island);
- Создание костыля в виде ФТП моста;
- Использование microSD карты.
Переход на другое приложение (ака Island)
Нужно так понимать, что вариант смены Shelter на любое аналогичное приложение повлечёт за собой переустановку всех приложений в новый рабочий профиль, а это приличный геморр если старый рабочий профиль был прилично напакован.
С чего начать миграцию
Переход начинается с Uninstalling-га, и для выбравших этот путь стоит отметить, что автор программы рекомендует ПЕРВЫМ ДЕЛОМ удалить рабочий профиль из настроек Settings -> Accounts, а уже после удалять само приложение Shelter.
GitHub - PeterCxy/Shelter: SThis repository is a mirror of https://gitea.angry.im/PeterCxy/Shelter
...
UninstallingTo uninstall Shelter, please delete the work profile first in Settings -> Accounts, and then uninstall the Shelter app normally.
Вероятно кто-то предпочтёт начать миграцию не сразу с удаления, а с резервных копий рабочего профиля, а это длинная история о способах их создания и выходит за рамки тематики данного поста.
Удалив Shelter у нас есть два кандидата на его замену - это Island и Insular клон Island:
Island на замену Shelter
Доступно из Google Play
На острове вы можете:
* Изолировать приложение, для защиты конфиденциальности.
* Приложение-клон, для параллельного запуска.
* Заморозить приложение, чтобы полностью заблокировать его фоновое поведение.
* Скрыть приложение по разным причинам.
* Используйте VPN только на одной стороне или разные VPN на обеих сторонах.
......Чтобы полностью удалить и удалить Island , сначала выберите «Уничтожить остров» в «Настройках - Настройки области действия - Остров». Если вы уже удалили приложение Island, пожалуйста, "Удалить рабочий профиль" в вашем устройстве "Настройки - Учетные записи".
===== РАЗРЕШЕНИЯ =====
DEVICE-ADMIN: привилегия администратора устройства требуется для создания пространства острова (рабочего профиля), которое служит фундаментальной функциональностью острова. Он будет явно запрошен для вашего согласия.
PACKAGE_USAGE_STATS: требуется для правильного распознавания рабочего состояния приложений. Он будет явно запрошен для вашего согласия.
Мы никогда не будем собирать данные, относящиеся к вашей конфиденциальности, пожалуйста, прочитайте нашу политику конфиденциальности для более подробной информации.
Однако, на странице автора программы обещаны немалые проблемы, а также, что This beta version
и may be dangerous on some Android devices
:
What is “Island”
...
The limitations of “Managed Mainland”:You can no longer create new Island space after Managed Mainland is activated. It’s suggested to setup Island space before activating this mode.
On Android version prior to 7.1, app backup (e.g. Cloud backup for app data with Google Drive) will stop working. (Android 7.1+ is not affected)Managed Mainland could only be setup manually (Setup Guide) at present.
DISCLAIMER
This beta version may be dangerous on some Android devices, it may cause boot-loop and even brick your device. The purpose of closed beta exclusive for advanced users is to widely test and improve the device compatibility. Don’t install it on your daily device and remember to BACKUP FIRST.
Короче, стрёмный кандидат для замены Shelter...
Insular клон Island
Insular | F-Droid - Free and Open Source Android App Repository
Insular is a FLOSS fork of Island.
With Insular, you can:Isolate your Big Brother apps
Clone and run multiple accounts simutaniuosly
Freeze or archive apps and prevent any background behaviors
Unfreeze apps on-demand with home screen shortcuts
Re-freeze marked apps with one tap
Hide apps
Selectively enable (or disable) VPN for different group of apps
Prohibit USB access to mitigate attacks with physical accessIf your device is incompatible or not encrypted, you can skip this limitation manually. Please refer to the XDA post for details.
To uninstall and remove Insular completely, please first "Destroy Insular" in Settings - Setup - Click the recycle-bin icon besides Insular. If you have already uninstalled Insular app, please "Remove work profile" in your device "Settings - Accounts".PERMISSIONS
DEVICE-ADMIN: Device administrator privilege is required to create the Insular space (work profile), which serves as the fundamental functionality of Insular. It will be explicitly requested for your consent.
PACKAGE_USAGE_STATS: Required to correctly recognize the running state of apps. It will be explicitly requested for your consent.
We will never collect any data and Insular have no Internet permission. Please read our privacy policy for more details.
Differences from Island
all blobs (gms, crashlytics, etc) are removed to comply with F-droid's policy
Internet access of this app is removed because we just don't need it
All features are preserved and will be synced upon Island's updates
Вроде как улучшенная и модернизированная версия Island.
Ни Island, ни Insular ставить я не буду во избежание геморра с переустановкой и настройкой туевой хучи приложений рабочего профиля.
Кроме того, совсем не факт, что Island/Insular лишены данной и не добавят новой проблемы!
Потому, переходу на другое приложение (ака Island) я предпочитаю следующие два варианта...
Создание костыля в виде ФТП моста
Для костыля в виде ФТП моста потребуется, совсем почти ничего, ФТП-сервант и любой файловый менеджер поддерживающий монтирование ФТП - в качестве которых предлагается:
- primitive ftpd | F-Droid - Free and Open Source Android App Repository
- Material Files | F-Droid - Free and Open Source Android App Repository
- Ghost Commander | F-Droid - Free and Open Source Android App Repository
primitive ftpd
Запускаем primitive ftpd и в секции Тип хранилища, кликнув по пункту Android Storage Access Framework (SAF), выбираем каталог ФТП с которым будет работать сервант и даём права на доступ - перезапускать сервер необязательно.
Далее можем видеть предупреждение:
Как работает SAF
Андроид попросит выбрать каталог, который будет доступен с сервера. Переодически разрешение будет отзываться и потребуется выбирать каталог снова.
И похожет, что разрешение отзывается при каждом следующем запуске primitive ftpd, как в рабочем так и в основном профилях. Следовательно, при каждом следующем запуске primitive ftpd нужно будет снова выбирать каталог и предоставлять права доступа!
Потом открываем настройки и выбираем желаемые:
- Имя пользователя (логин);
- Пароль;
- Запускаемые серверы;
- Порт/Защищённый порт.
По-умолчанию primitive ftpd "биндица" (вешаетца, прослушивает) на всех интерфейсах (127.0.0.1, 192.168.1.xxx, и т.д.), но можно приказать ему прослушивать только один из них, например только 127.0.0.1 и в таком случае сделать авторизацию анонимной - для этого нужно указать ИП-адрес в IP to bind to.
Но для паралельного доступа к рабочему профилю, как в нутри гаджета, так и с наружи, можно оставить настройки по-умолчанию.
Следующие настройки особой погоды не делают:
Выходим из настроек и запускаем сервант кликнув на треугольник в верхней части окна.
Далее нужно настроить файловый менеджер, из обилия которых мне больше всего понравились Material Files и Ghost Commander.
Material Files
Добавить накопитель:
Выбираем тип сервера:
Вводим данные сервера, адрес/порт/логин/пароль:
Если при попытке доступа из-вне через FileZilla выдаётся ошибка Ошибка: Unable to open .: no such file or directory, или в файловом менеджере Material files выпадет ошибка java8.nio.file.NoSuchFileException
Значит забыли в primitive ftpd выбрать Тип хранилища, кликнув по пункту Android Storage Access Framework (SAF), выбирать каталог ФТП и дать права на доступ.
Ghost Commander
Открываем домашнюю страницу Ghost Commander:
Выбрав из списка SFTP сервер (FTP сервер, кому как), заполняем форму данными для авторизации на сервере, адрес/порт/логин/пароль:
Подключившись на все вопросы отвечаем АГА:
Дальше должны увидеть список папок сервера:
А если при повторных подключениях начнёт запрашивать пароль:
Значит снова слетели права на каталог сервера в primitive ftpd - снова выбрать Тип хранилища, кликнув по пункту Android Storage Access Framework (SAF), выбирать каталог ФТП и дать права на доступ.
Использование microSD карты
microSD карта, которая в устройстве установлена в качестве внешнего хоронилища, а НЕ дополнительной памяти устройства, - по умолчанию должна быть доступна для чтения/записи из любого профиля (основного и/или рабочего).
Единственное условие - установка microSD карты в качестве внешнего хранилища (съёмного носителя), никаких дополнительных манипуляций нетребуется.