81 lines
4.1 KiB
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> |