Shelter/app/src/main/AndroidManifest.xml

81 lines
4.1 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.typeblog.shelter">
<uses-feature android:name="android.software.device_admin" android:required="true"/>
<uses-feature android:name="android.software.managed_users" android:required="true"/>
<!--<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS"/>-->
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:maxSdkVersion="25"
android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<application
android:name=".ShelterApplication"
android:allowBackup="false"
android:icon="@mipmap/ic_launcher_egg"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_egg_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<!-- The main activity for UI -->
<activity android:name=".ui.MainActivity"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- The Settings activity -->
<activity android:name=".ui.SettingsActivity"
android:label="@string/settings" />
<!-- An activity that wraps intents that cross the profile boundary -->
<!-- Needed because only cross-profile Activity intents are supported -->
<activity android:name=".ui.DummyActivity"
android:excludeFromRecents="true"
android:theme="@android:style/Theme.Translucent.NoTitleBar">
<intent-filter>
<action android:name="net.typeblog.shelter.action.FINALIZE_PROVISION" />
<action android:name="net.typeblog.shelter.action.START_SERVICE" />
<action android:name="net.typeblog.shelter.action.TRY_START_SERVICE" />
<action android:name="net.typeblog.shelter.action.INSTALL_PACKAGE" />
<action android:name="net.typeblog.shelter.action.UNINSTALL_PACKAGE" />
<action android:name="net.typeblog.shelter.action.UNFREEZE_AND_LAUNCH" />
<action android:name="net.typeblog.shelter.action.PUBLIC_UNFREEZE_AND_LAUNCH" />
<action android:name="net.typeblog.shelter.action.PUBLIC_FREEZE_ALL" />
<action android:name="net.typeblog.shelter.action.FREEZE_ALL_IN_LIST" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<!-- Implementation of the device policy controller -->
<receiver android:name=".receivers.ShelterDeviceAdminReceiver"
android:label="@string/device_admin_label"
android:description="@string/device_admin_desc"
android:permission="android.permission.BIND_DEVICE_ADMIN">
<meta-data android:name="android.app.device_admin"
android:resource="@xml/device_admin" />
<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
<action android:name="android.app.action.DEVICE_ADMIN_DISABLED" />
<action android:name="android.app.action.PROVISION_MANAGED_PROFILE" />
</intent-filter>
</receiver>
<!-- Core service running on both the main profile and the work profile -->
<!-- Actions like cloning / freezing apps will be performed by this service -->
<service android:name=".services.ShelterService"
android:exported="true"
android:permission="android.permission.BIND_DEVICE_ADMIN"/>
<!-- A hack service to ensure every ShelterService is killed when App is removed -->
<!-- from recent tasks -->
<service android:name=".services.KillerService" />
</application>
</manifest>