mirror of
https://github.com/topjohnwu/Magisk.git
synced 2024-12-18 22:17:40 +00:00
1232113772
Only try to read preference through content provider when the app is fresh install and a previous package ID is set. Also catch all Exceptions to prevent crashing the app. This prevents malicious settings injection and crashes when multiple manager is installed. Fix #3542
100 lines
3.4 KiB
XML
100 lines
3.4 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
xmlns:tools="http://schemas.android.com/tools"
|
|
package="com.topjohnwu.magisk">
|
|
|
|
<uses-permission android:name="android.permission.INTERNET"/>
|
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
|
<uses-permission
|
|
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
|
|
android:maxSdkVersion="29" />
|
|
|
|
<application
|
|
android:icon="@drawable/ic_launcher"
|
|
android:name="a.e"
|
|
android:allowBackup="false"
|
|
tools:ignore="UnusedAttribute,GoogleAppIndexingWarning">
|
|
|
|
<!-- Splash -->
|
|
<activity
|
|
android:name="a.c"
|
|
android:theme="@style/SplashTheme">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MAIN" />
|
|
<category android:name="android.intent.category.LAUNCHER" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.APPLICATION_PREFERENCES" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<!-- Main -->
|
|
<activity android:name="a.b" />
|
|
|
|
<!-- Superuser -->
|
|
<activity
|
|
android:name="a.m"
|
|
android:directBootAware="true"
|
|
android:excludeFromRecents="true"
|
|
android:exported="false"
|
|
tools:ignore="AppLinkUrlError">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.VIEW"/>
|
|
<category android:name="android.intent.category.DEFAULT"/>
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<!-- Receiver -->
|
|
<receiver
|
|
android:name="a.h"
|
|
android:directBootAware="true">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.REBOOT" />
|
|
<action android:name="android.intent.action.LOCALE_CHANGED" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.PACKAGE_REPLACED" />
|
|
<action android:name="android.intent.action.PACKAGE_FULLY_REMOVED" />
|
|
|
|
<data android:scheme="package" />
|
|
</intent-filter>
|
|
</receiver>
|
|
|
|
<!-- DownloadService -->
|
|
<service android:name="a.j" />
|
|
|
|
<!-- FileProvider -->
|
|
<provider
|
|
android:name="a.p"
|
|
android:authorities="${applicationId}.provider"
|
|
android:directBootAware="true"
|
|
android:exported="false"
|
|
android:grantUriPermissions="true">
|
|
</provider>
|
|
|
|
<!-- Hardcode GMS version -->
|
|
<meta-data
|
|
android:name="com.google.android.gms.version"
|
|
android:value="12451000" />
|
|
|
|
<!-- Initialize WorkManager on-demand -->
|
|
<provider
|
|
android:name="androidx.work.impl.WorkManagerInitializer"
|
|
android:authorities="${applicationId}.workmanager-init"
|
|
tools:node="remove" />
|
|
|
|
<!-- We don't invalidate Room -->
|
|
<service
|
|
android:name="androidx.room.MultiInstanceInvalidationService"
|
|
tools:node="remove"/>
|
|
|
|
<!-- We don't use Device Credentials -->
|
|
<activity
|
|
android:name="androidx.biometric.DeviceCredentialHandlerActivity"
|
|
tools:node="remove" />
|
|
|
|
</application>
|
|
|
|
</manifest>
|