906b4aad9e
Introduce a new communication method between Magisk and Magisk Manager. Magisk used to hardcode classnames and send broadcast/start activities to specific components. This new method makes no assumption of any class names, so Magisk Manager can easily be fully obfuscated. In addition, the new method connects Magisk and Magisk Manager with random abstract Linux sockets instead of socket files in filesystems, bypassing file system complexities (selinux, permissions and such)
105 lines
3.6 KiB
XML
105 lines
3.6 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.VIBRATE" />
|
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
|
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
|
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
|
|
|
<application
|
|
android:name="a.a"
|
|
android:theme="@style/AppTheme"
|
|
tools:ignore="GoogleAppIndexingWarning">
|
|
|
|
<!-- Activities -->
|
|
|
|
<activity
|
|
android:name="a.b"
|
|
android:configChanges="orientation|screenSize"
|
|
android:exported="true" />
|
|
<activity
|
|
android:name="a.c"
|
|
android:configChanges="orientation|screenSize"
|
|
android:exported="true"
|
|
android:theme="@style/SplashTheme">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MAIN" />
|
|
<category android:name="android.intent.category.LAUNCHER" />
|
|
</intent-filter>
|
|
</activity>
|
|
<activity
|
|
android:name="a.d"
|
|
android:theme="@style/AppTheme.StatusBar" />
|
|
<activity
|
|
android:name="a.e"
|
|
android:theme="@style/AppTheme.StatusBar"/>
|
|
<activity
|
|
android:name="a.f"
|
|
android:configChanges="keyboardHidden|orientation|screenSize"
|
|
android:screenOrientation="nosensor"
|
|
android:theme="@style/AppTheme.StatusBar" />
|
|
<activity
|
|
android:name="a.g"
|
|
android:theme="@style/AppTheme.Translucent" />
|
|
|
|
<!-- Superuser -->
|
|
|
|
<activity
|
|
android:name="a.p"
|
|
android:excludeFromRecents="true"
|
|
android:launchMode="singleTask"
|
|
android:taskAffinity="internal.superuser"
|
|
android:theme="@style/SuRequest" />
|
|
|
|
<activity
|
|
android:name=".superuser.RequestActivity"
|
|
android:excludeFromRecents="true"
|
|
android:launchMode="singleTask"
|
|
android:taskAffinity="internal.superuser"
|
|
android:theme="@style/AppTheme.Translucent" />
|
|
|
|
<receiver android:name=".superuser.SuReceiver" />
|
|
|
|
<!-- Receiver -->
|
|
|
|
<receiver android:name="a.h">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
|
</intent-filter>
|
|
</receiver>
|
|
<receiver android:name="a.i">
|
|
<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>
|
|
<receiver android:name="a.j" />
|
|
<receiver android:name="a.k" />
|
|
<receiver android:name="a.l">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.LOCALE_CHANGED" />
|
|
</intent-filter>
|
|
</receiver>
|
|
|
|
<!-- Service -->
|
|
|
|
<service
|
|
android:name="a.m"
|
|
android:exported="true"
|
|
android:permission="android.permission.BIND_JOB_SERVICE" />
|
|
<service
|
|
android:name="a.n"
|
|
android:exported="true"
|
|
android:permission="android.permission.BIND_JOB_SERVICE" />
|
|
|
|
<!-- Hardcode GMS version -->
|
|
<meta-data
|
|
android:name="com.google.android.gms.version"
|
|
android:value="12451000" />
|
|
|
|
</application>
|
|
|
|
</manifest> |