GithubHelp home page GithubHelp logo

petercxy / shelter Goto Github PK

View Code? Open in Web Editor NEW
2.2K 2.2K 179.0 1.33 MB

SThis repository is a mirror of https://gitea.angry.im/PeterCxy/Shelter

Home Page: https://gitea.angry.im/PeterCxy/Shelter

License: GNU General Public License v3.0

Java 97.96% Shell 0.53% AIDL 1.51%

shelter's Introduction

Shelter

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.

Downloads

  • F-Droid (Signed by F-Droid)
  • Custom F-Droid Repository (Signed by PeterCxy, contains latest development versions):
    • Click here to add from your phone
    • Or scan the following QR-code:
    • Or setup manually:
      • Url: https://fdroid.typeblog.net
      • Fingerprint: 1A 7E 44 6C 49 1C 80 BC 2F 83 84 4A 26 38 78 87 99 0F 97 F2 F3 79 AE 7B 10 96 79 FE AE 3D BC 8C

You cannot switch between versions listed above that have different signature without uninstalling Shelter first.

Features

  • 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 device

Discussion & Support

The GitHub Issue list and pull requests are not checked regularly. Please use the mailing list instead.

Caveats & Known Issues

  • Some caveats and known issues are discussed during the setup process of Shelter. Please read through text in the setup wizard carefully.
  • Shelter is only as safe as the Work Profile implementation of the Android OS you are using. For details, see https://support.google.com/work/android/answer/6191949?hl=en

State of the Project, Feature Requests, etc.

Since Shelter simply makes use of the Work Profile APIs exposed by Android, there is a limited set of features that are possible to implement via the app. As we do not intend on leveraging (or "abusing") adb privileges, the features of Shelter can only be a strict subset of the exposed, unprivileged APIs.

As a result, we do not intend on adding a lot of new features to Shelter going forward, unless there is to be big changes in the capabilities of work profile APIs. Shelter is currently in an effective maintenance mode. Nevertheless, the author is still committed to regularly adapting Shelter to all new Android versions as soon as possible after they are released -- this includes upgrading the target SDK level, adapting to any new features or restrictions introduced by the new Android version, updating all dependencies, and so on. The author still relies on Shelter for his daily life, so Shelter will not become abandonware in the forseeable future.

Contributing

Translation status

Uninstalling

To uninstall Shelter, please delete the work profile first in Settings -> Accounts, and then uninstall the Shelter app normally.

shelter's People

Contributors

alecsamaria avatar am97 avatar benjats07 avatar bobh-official avatar broncotc avatar bsodpk avatar daniel-jirca avatar dynamicwork avatar enolp avatar faysale13 avatar fei1yang avatar gnuhead-chieb avatar guildem avatar hermann-san avatar igorkalinowskyi avatar ihfandicahyo avatar inflationsbereinigt avatar lar3s avatar ling0412 avatar melnele avatar nhman482 avatar omegaplexx avatar petercxy avatar radagio avatar rauferd avatar sakci avatar tonymanou avatar triallax avatar unbiaseduser-github avatar vonarian avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

shelter's Issues

没有自动把谷歌框架搞进去

没有自动把谷歌框架搞进去,许多软件打不开,试了island能自动把谷歌框架搞进去

还有能不能查看复制系统级的app?

手机是1+6,刷的unofficial los16

请问 Shelter 有批量解冻和冻结的功能吗?

我正在使用 Island,在工作区安装了几十个App,平时绝大多数App都是冻结状态,使用时才解冻。但有些时候需要解冻大量App(如检测升级App时),而 Island 没有批量解冻和冻结的功能,导致要点击几百下才行,实在不是愉快的体验。
请问 Shelter 有批量解冻和冻结的功能吗?如没有可否加入?

[feature request] include tor routing

As it is said in the readme, this app is for example to use big brother apps or apps which don't respect the privacy of it's user.
So in my opinion it would be create if I were able to route within shelter apps through the tor network.

Maybe this is related to #27.

I hope it is understandable and clear what i tried to express;)

Edit:
Probably this could be done by making it possible to route the traffic through an vpn and I can select from the list of installed VPNs ?
So if I install orbot in the mainland I could select apps to use orbot as a VPN service.
Understandable?

Isolation problems with Gboard

I try to isolate Google keyboard (Gboard) but after starting it and try to finish the setup I got a massage that the app is running outside the workprofile
any ways to fix that?

LineageOS 15.1
OnePlus 2

Update Icon

When app in shelter update icon, the shortcut can't update.

Whatsapp calls not working persistently

When making whatsapp calls from the sheltered app, i frequently run into the issue of not hearing my correspondent as well as my correspondent not hearing me.

After rebooting my device is usually works for one or two times. :/

It is interesting to note, that recording audio messages works persistently.

Those permissions are granted to sheltered whatsapp:

  • Camera
  • Contacts
  • Microphone
  • Phone
  • Storage

Island is FOSS too

JFYI: https://github.com/oasisfeng/island
Thus this is incorrect:

Q: Why not use Island by OasisFeng, the creator of Greenify?
A: Simply because it is not an FOSS app and it bundles with non-free SDKs. Note that this doesn't necessarily mean that Island has anti-features like tracking (and I don't think it has either), it's just that I wrote Shelter as an FOSS replacement of it. There is no other reason why one would prefer Shelter over Island except for this one.

But I still prefer Shelter, since Island contains non-free analytic libraries (Crashlytics, Firebase, Google Analytics).

Solution to MIUI crash

Since MIUI has a strange system integrity check, the Android work's default clone list will break it, plz add an extra list to fix this.

Support Can't install on LOS 14.1

Hi I use a Samsung Galaxy S6 edge with LOS 14.1 and I'm not able to install the app via F-droid. It shows me a notification: no compatible version.

Is Android 8 or higher required because I couldn't found anything in the readme.
At the moment Island works on this phone.

Thanks in advance

[feature request] batch unfreeze/launch shortcut

It would be nice to be able to unfreeze several apps with one shortcut.
For example, when I use a specific app I also need orbot and the gallery.
At the moment I need to go to the homesreen three times.
Wished behavior would be to have a shortcut which unfreeze and launches all three apps at once.

Thanks for your effort - great app!

How to update cloned apps?

First of all, thank you very much for Shelter. It's a great FOSS Sandboxing solution for non-root Android users.

I am having some trouble (understanding) how to update cloned apps. Suppose I have cloned an app to my work profile; how do I update the clone?

I saw that I can also remove the Original app while keeping the clone, but then the question still remains: How to update the clone?

Thank you!

Privacy guard for apps in shelter

Hello, it seems like Privacy Guard for Lineage OS 15.1 doesn't work for the apps inside shelter (or at least I can't access their settings). If I go to settings - security & privacy - trust - privacy guard then the apps inside shelter don't show up. If I go under the advanced tab they do show up:

https://i.imgur.com/dJpx11g.png

Messenger lite and google maps is in shelter

If I press on Messenger lite the settings look like this:

https://i.imgur.com/pNuZ260.png

I've tried to copy Android's settings app into shelter (it says it succeeded), but it doesn't show up.

Is this a limitation in Android? Lineage OS? Shelter?

Google account sync automatically can not open

I enabled gapps core : " com.google.android.gsf", "com.google.android.gms", "com.google.android.feedback", "com.google.android.backuptransport", "com.android.vending", "com.google.android.syncadapters.calendar", "com.google.android.syncadapters.contacts",
now ,I can add google accounts in work profile. but I cannot open their sync automatically. some app as keep cannot work correctly.

Here is my commits:

  1. install GApps core when start service.
  2. add more permissions and dependencies for google play service api
  3. implement menu to set sync automatically.

What do I need to do more? thx.

Make clear that Shelter needs to be in internal storage to grant admin rights.

It would be nice to get some error message, or add a notice in documents that shelter needs to be in internal storage to grant administrator rights.

DeviceAdminAdd: java.lang.IllegalArgumentException: Only apps in internal storage can be active admin: ComponentInfo{net.typeblog.shelter/net.typeblog.shelter.receivers.ShelterDeviceAdminReceiver}

[bug] afwall settings lost

I have some apps only running in the shelter. And if I configure the afwall settings for this app after a freeze and a reboot the afwall settings are lost.

As I can't configure an app in afwall without installed in the mainland I first need to reinstall the app in the mainland, than set the afwall settings for the sheltered version of the app and then i can youse the app again.

I think this is related to shelter because for example orbot works fine.

Still thanks, and now ne issues today 😉

[nice to have;)] dark theme

As I use a blacked theme for my OLED device it would be nice to have a black theme available.

Beside thanks for the File shuttle, that's awesome!!!

[feature request] multiselect for action

In the setup process or sometimes later on it would be helpful to have the ability to apply an action to a multiselected number of apps.
For example multiselect some apps and than

  • create a shortcut for them
  • unfreeze and launch them
  • freeze them
  • untill issue with afwall isn't closed also clone to mainland would be helpful

Documentation on launchers

I'm currently unable to find any documentation on how the shortcuts made by the shelter application differ from those in the work profile tab in the launcher. The icons are different and I'm assuming the freeze magic doesn't work with that, but I'd rather like to read it clearly written somewhere.

Will update documentation for information. 😉

Freeze vs. turning off Work Profile

Not sure I understand Freezing, and I don't see it explained anywhere. I thought that just turning off the Work Profile (via settings or the quick tile) would close the apps and their background processes.

Is there an advantage of one over the other?

Android 6 Marshmallow support?

Are there any plans on enabling this app for Android 6.0.1++ as Island seems to be or would it be too complex to support another version.

Asking cause BlackBerry Priv won't get OS upgrade anymore.

UX: Users should not be able to skip the setup dialog

1.0, Mate9/Oreo

If I don't press Continue and touch outside the dialogue, I can access the Settings view, but when I press ZZZ:

D AndroidRuntime: Shutting down VM
E AndroidRuntime: FATAL EXCEPTION: main
E AndroidRuntime: Process: net.typeblog.shelter, PID: 23679
E AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{net.typeblog.shelter/net.typeblog.shelter.ui.DummyActivity}: java.lang.IllegalStateException: Cannot find an intent in other profile
E AndroidRuntime:        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3194)
E AndroidRuntime:        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3302)
E AndroidRuntime:        at android.app.ActivityThread.-wrap12(Unknown Source:0)
E AndroidRuntime:        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1891)
E AndroidRuntime:        at android.os.Handler.dispatchMessage(Handler.java:108)
E AndroidRuntime:        at android.os.Looper.loop(Looper.java:166)
E AndroidRuntime:        at android.app.ActivityThread.main(ActivityThread.java:7425)
E AndroidRuntime:        at java.lang.reflect.Method.invoke(Native Method)
E AndroidRuntime:        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
E AndroidRuntime:        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)
E AndroidRuntime: Caused by: java.lang.IllegalStateException: Cannot find an intent in other profile
E AndroidRuntime:        at net.typeblog.shelter.a.d.a(Unknown Source:65)
E AndroidRuntime:        at net.typeblog.shelter.ui.DummyActivity.onCreate(Unknown Source:522)
E AndroidRuntime:        at android.app.Activity.performCreate(Activity.java:7372)
E AndroidRuntime:        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1218)
E AndroidRuntime:        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3147)
E AndroidRuntime:        ... 9 more
W ActivityManager:   Force finishing activity net.typeblog.shelter/.ui.DummyActivity
W ActivityManager:   Force finishing activity net.typeblog.shelter/.ui.MainActivity

Am I missing something?

[bug] No short cut created

When I try to add a unfreeze/launch shortcut for same apps it works (for example: orgzly, kolab ...) and for same it does not work (audible
...)

VPN system wide

Is it possible to use the same VPN for both main and work profile? As it is now I've to clone openvpn and connect twice.

[Feature Request] Support directly installing APK

Currently to install an app into the Work profile you have to do one of the following:

  • install an app, then clone it
  • clone an app store (F-Droid) into it, then install from the store

the ability to directly install an APK through Shelter into the Work profile would greatly simplify that process.

Detect availbility of Managed Profile by resolving the Intent instead of DevicePolicManager API

1.0, Mate9/Oreo

E AndroidRuntime: FATAL EXCEPTION: main
E AndroidRuntime: Process: net.typeblog.shelter, PID: 23543
E AndroidRuntime: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.app.action.PROVISION_MANAGED_PROFILE (has extras) }
E AndroidRuntime:        at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1981)
E AndroidRuntime:        at android.app.Instrumentation.execStartActivity(Instrumentation.java:1636)
E AndroidRuntime:        at android.app.Activity.startActivityForResult(Activity.java:4751)
E AndroidRuntime:        at android.support.v4.app.f.startActivityForResult(Unknown Source:10)
E AndroidRuntime:        at android.app.Activity.startActivityForResult(Activity.java:4691)
E AndroidRuntime:        at android.support.v4.app.f.startActivityForResult(Unknown Source:10)
E AndroidRuntime:        at net.typeblog.shelter.ui.i.onClick(Unknown Source:58)
E AndroidRuntime:        at android.support.v7.app.AlertController$b.handleMessage(Unknown Source:23)
E AndroidRuntime:        at android.os.Handler.dispatchMessage(Handler.java:108)
E AndroidRuntime:        at android.os.Looper.loop(Looper.java:166)
E AndroidRuntime:        at android.app.ActivityThread.main(ActivityThread.java:7425)
E AndroidRuntime:        at java.lang.reflect.Method.invoke(Native Method)
E AndroidRuntime:        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
E AndroidRuntime:        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)

Am I missing an app?

Adding apps to auto freeze

It is not clear how the apps in this list get populated. Neither is it displayed nor an option to add apps

Shelter does not detect enabled work profile on Samsung S9, crashes

I was recently updating to Shelter v1.4 from 1.3 on my Samsung S9. The unfreeze shortcuts suddenly stopped working. When I tried to access the App, it closed immediately and greeted me with a toast message saying:

screenshot_20190301-083500_samsung experience home

The work profile is still active. I disabled and reenabled it, tried again, reinstalled Shelter, tried again... always getting the message above.

Model: SM-G960F
Software: Stock Firmware (Android 9 "Pie")
Security Patches: 01. February 2019

Thanks in advance. If you need further info, just ask :)

Unable to create complete work profile on Moto G5+

I am attempting to use shelter on a Moto G5+, yet the profile creation is incomplete. When executing Shelter, it gets to the point of Please wait while we prepare Shelter profile for you ... and goes no further. Upon looking in settings, I see that a work profile was created yet not complete.

In settings:

Work
Managed by Shelter

Work profile isn't available yet

Is there a manual way using adb to create the profile for Shelter? Is there any information I can grab for you to help find the cause?

Thank you.

P.S. I can confirm that Shelter works on an LG G7. That may be useful if you want to create a list of reportedly working devices.

[Feature Request] Allow changing permissions of Google apps

Setup

Shelter: 1.3
Phone: Samsung A5 (2017)
Samsung Experience: 9.0
Workspace: 3.1
Knox: 3.1; API level 25; TIMA 3.3.0
Android: 8.0.0
Android Kernel: 3.18.14

Issue

Currently, many Google apps in the Shelter Workspace, such as Google Play Services, have fixed permissions that cannot be changed. Attempting to change it results in the following prompt:

Unable to perform action
You do not have permission to perform this action. Contact your organization's IT administrator for more information.

The administrator is correctly shown to be Shelter, and this is indeed only a problem in the Workspace. I can change permissions or disable Google Play Services (for example) outside of the Workspace with no problem.

Why is this problematic?

Well, Google Play Services, for one, requires many permissions, such as camera and microphone access, that are huge privacy concerns. Although one can switch off the Workspace, it is desirable that those permissions are not provided even when the Workspace is switched on.

Proposed Solution

One or both of the following could be implemented:

  1. Allow changing the permissions of those apps.
  2. Have a main switch inside Shelter to turn on or off specific permissions. For instance, something like "Allow apps in Workspace to access camera" could be useful.

Comments

It is possible that this is a limitation of Workspace that cannot be circumvented.

[Feature] Ability to hide certain apps inside shelter

It would be nice to have some functionality to hide certain apps inside shelter's app list. With a combination of this feature and auto-freezing, we can have incognito apps which we may not want other users to see.

Just an idea that is worth keeping in mind 😄

The new clone app haven't a root access

I use CheatDroid to edit some parameters of my apps. When I clone an app with Shelter, CheatDroid doesn't show me the new cloned app. I tried to clone CheatDroid, but it doesn't find a root permission.
Any solutions?
THX

Whatsapp is not sheltered

I cloned Whatsapp to shelter but could access gallery which is outside the shelter. Is it because Whatsapp is using some non standard ways of accessing?

In any case, I think it would be nice to have a log to see what has been requested by an app and whether it's accepted or denied. This would indirectly serve as proof that it works ( XprivacyLua does that in Pro version)

[feature request] no icon with shortcut enabled

Hi it would be great if I created a shortcut for an app, to not create an app icon when the app is unfreezed via the shortcut.

Because I use a icon set and also if there is no space on that Homescreen a new one is created and it jumps to that new Homescreen - pretty annoying ;)

LineageOs 16 work profile setup crash

I got work profile setup crash on my xiaomi mi 8 with LOS16 installed.
I've the log. But still new with the github and dont know how to attach it.

请问可以将已冻结的应用在工作区显示图标么

您好,我目前将大部分的国内应用安装在工作区内,平常都处在自动冻结的状态。现在每次打开应用时需要打开shelter在选择需要的应用或者就是在桌面上放置快捷方式,不知能不能增加个开关用于保留已冻结应用在工作区的图标。

Shelter on Verizon Samsung phones?

Hi, I have a US Verizon Samsung Galaxy S7 Edge (SM-G935V) running a Verizon/Samsung version of Android Oreo. Is the Shelter app known to run safety on such device? I haven't found any native user accessible settings for "work account/work profile" (has Samsung settings menu, not stock Android) so in light of caveats am seeking advice before launching the Shelter app.

[Feature Request/Question] Disposable apps

Is it possible to implement so-called disposable apps? The closest thing is MIUI Dual Apps feature. You can clone an app, use it, then clear its data and on next launch the app will think that you're using a new device. I guess, all the device identifiers change after cleanup.

For example, every standard guest profile also has different identifiers and looks like a new device for any app. But it's RAM-hungry and somewhat slow and clunky compared to the 'work profile' implementation of apps isolation.

[feature request] update apps inside work profile

This is a request/question since I'm not sure if it already exists or not. Can apps be updated from Google Play within the work profile, or are they entirely separate from the main profile? Thanks, this app is amazing and was exactly what I was looking for for quite some time.

开启了以后提示工作模式被您关闭

删除了重新开启软件设置也不行,手机是三星S10+,但是工作模式应该是开启的。其他没修改,就是安装开启了软件然后自动设置完毕之后,下一次进入就会这样

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.