apk(点击下载) / AndroidManifest.xml


<?xml version="1.0" encoding="utf-8"?>
<manifest android:versionCode="211013" android:versionName="2.11.13.Meta" android:compileSdkVersion="35" android:compileSdkVersionCodename="15" package="com.github.metacubex.clash.meta" platformBuildVersionCode="35" platformBuildVersionName="15"
  xmlns:android="http://schemas.android.com/apk/res/android">
    <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="35" />
    <uses-feature android:name="android.software.leanback" android:required="false" />
    <uses-feature android:name="android.hardware.touchscreen" android:required="false" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE" />
    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <permission android:label="@string/receive_clash_broadcasts" android:name="com.github.metacubex.clash.meta.permission.RECEIVE_BROADCASTS" android:protectionLevel="privileged|signature" android:description="@string/receive_broadcasts_of_clash" />
    <uses-permission android:name="com.github.metacubex.clash.meta.permission.RECEIVE_BROADCASTS" />
    <application android:theme="@style/BootstrapTheme" android:label="@string/application_name" android:icon="@mipmap/ic_launcher" android:name="com.github.kr328.clash.MainApplication" android:allowBackup="true" android:supportsRtl="true" android:banner="@mipmap/ic_banner" android:extractNativeLibs="true" android:fullBackupContent="@xml/full_backup_content" android:networkSecurityConfig="@xml/network_security_config" android:roundIcon="@mipmap/ic_launcher_round" android:appComponentFactory="androidx.core.app.CoreComponentFactory">
        <meta-data android:name="releaseName" android:value="@string/release_name" />
        <meta-data android:name="releaseCode" android:value="@integer/release_code" />
        <activity android:label="@string/launch_name" android:name="com.github.kr328.clash.MainActivity" android:exported="true" android:launchMode="singleTop" android:configChanges="uiMode">
            <intent-filter>
                <action android:name="android.intent.action.APPLICATION_PREFERENCES" />
                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.service.quicksettings.action.QS_TILE_PREFERENCES" />
            </intent-filter>
        </activity>
        <activity-alias android:name="com.github.kr328.clash.MainActivityAlias" android:exported="true" android:targetActivity="com.github.kr328.clash.MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
                <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity-alias>
        <activity android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" android:label="@string/external_control_activity" android:name="com.github.kr328.clash.ExternalControlActivity" android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="clash" />
                <data android:scheme="clashmeta" />
                <data android:host="install-config" />
            </intent-filter>
            <intent-filter>
                <action android:name="com.github.metacubex.clash.meta.action.START_CLASH" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <intent-filter>
                <action android:name="com.github.metacubex.clash.meta.action.STOP_CLASH" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <intent-filter>
                <action android:name="com.github.metacubex.clash.meta.action.TOGGLE_CLASH" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <activity android:label="@string/application_broken" android:name="com.github.kr328.clash.ApkBrokenActivity" android:exported="false" android:configChanges="uiMode" />
        <activity android:label="@string/application_crashed" android:name="com.github.kr328.clash.AppCrashedActivity" android:exported="false" android:launchMode="singleTask" android:configChanges="uiMode" />
        <activity android:label="@string/profiles" android:name="com.github.kr328.clash.ProfilesActivity" android:exported="false" android:configChanges="uiMode" />
        <activity android:label="@string/create_profile" android:name="com.github.kr328.clash.NewProfileActivity" android:exported="false" android:configChanges="uiMode" />
        <activity android:label="@string/profile" android:name="com.github.kr328.clash.PropertiesActivity" android:exported="false" android:configChanges="uiMode" />
        <activity android:label="@string/proxy" android:name="com.github.kr328.clash.ProxyActivity" android:exported="false" android:configChanges="uiMode" />
        <activity android:label="@string/providers" android:name="com.github.kr328.clash.ProvidersActivity" android:exported="false" android:configChanges="uiMode" />
        <activity android:label="@string/logs" android:name="com.github.kr328.clash.LogsActivity" android:exported="false" android:configChanges="uiMode" />
        <activity android:label="@string/logcat" android:name="com.github.kr328.clash.LogcatActivity" android:exported="false" android:configChanges="uiMode" />
        <activity android:label="@string/settings" android:name="com.github.kr328.clash.SettingsActivity" android:exported="false" android:configChanges="uiMode" />
        <activity android:label="@string/network" android:name="com.github.kr328.clash.NetworkSettingsActivity" android:exported="false" android:configChanges="uiMode" />
        <activity android:label="@string/app" android:name="com.github.kr328.clash.AppSettingsActivity" android:exported="false" android:configChanges="uiMode" />
        <activity android:label="@string/override" android:name="com.github.kr328.clash.OverrideSettingsActivity" android:exported="false" android:configChanges="uiMode" />
        <activity android:label="@string/meta_features" android:name="com.github.kr328.clash.MetaFeatureSettingsActivity" android:exported="false" android:configChanges="uiMode" />
        <activity android:label="@string/access_control_packages" android:name="com.github.kr328.clash.AccessControlActivity" android:exported="false" android:configChanges="uiMode" />
        <activity android:label="@string/help" android:name="com.github.kr328.clash.HelpActivity" android:exported="false" android:configChanges="uiMode" />
        <activity android:label="@string/files" android:name="com.github.kr328.clash.FilesActivity" android:exported="false" android:configChanges="uiMode" />
        <service android:label="@string/clash_logcat" android:name="com.github.kr328.clash.LogcatService" android:exported="false" android:foregroundServiceType="specialUse">
            <property android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE" android:value="explanation_for_special_use" />
        </service>
        <service android:label="@string/launch_name" android:icon="@drawable/ic_logo_service" android:name="com.github.kr328.clash.TileService" android:permission="android.permission.BIND_QUICK_SETTINGS_TILE" android:exported="true">
            <intent-filter>
                <action android:name="android.service.quicksettings.action.QS_TILE" />
            </intent-filter>
        </service>
        <receiver android:name="com.github.kr328.clash.RestartReceiver" android:enabled="false" android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
            </intent-filter>
        </receiver>
        <receiver android:name="com.github.kr328.clash.DialerReceiver" android:exported="true">
            <intent-filter>
                <action android:name="android.provider.Telephony.SECRET_CODE" />
                <data android:scheme="android_secret_code" android:host="\ 252746382" />
            </intent-filter>
        </receiver>
        <service android:label="@string/clash_meta_for_android" android:name="com.github.kr328.clash.service.ClashService" android:exported="false" android:process=":background" android:foregroundServiceType="specialUse">
            <property android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE" android:value="explanation_for_special_use" />
        </service>
        <service android:label="@string/clash_meta_for_android" android:name="com.github.kr328.clash.service.TunService" android:permission="android.permission.BIND_VPN_SERVICE" android:exported="false" android:process=":background" android:foregroundServiceType="specialUse">
            <property android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE" android:value="explanation_for_special_use" />
            <intent-filter>
                <action android:name="android.net.VpnService" />
            </intent-filter>
        </service>
        <service android:name="com.github.kr328.clash.service.RemoteService" android:exported="false" android:process=":background" />
        <service android:name="com.github.kr328.clash.service.ProfileWorker" android:exported="false" android:process=":background" android:foregroundServiceType="specialUse">
            <property android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE" android:value="explanation_for_special_use" />
        </service>
        <provider android:name="com.github.kr328.clash.service.FilesProvider" android:permission="android.permission.MANAGE_DOCUMENTS" android:exported="true" android:process=":background" android:authorities="com.github.metacubex.clash.meta.files" android:grantUriPermissions="true">
            <intent-filter>
                <action android:name="android.content.action.DOCUMENTS_PROVIDER" />
            </intent-filter>
        </provider>
        <provider android:name="com.github.kr328.clash.service.StatusProvider" android:exported="false" android:process=":background" android:authorities="com.github.metacubex.clash.meta.status" />
        <provider android:name="com.github.kr328.clash.service.PreferenceProvider" android:exported="false" android:process=":background" android:authorities="com.github.metacubex.clash.meta.settings" />
        <receiver android:name="com.github.kr328.clash.service.ProfileReceiver" android:permission="com.github.metacubex.clash.meta.permission.RECEIVE_BROADCASTS" android:enabled="true" android:exported="true" android:process=":background">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
                <action android:name="android.intent.action.TIME_SET" />
                <action android:name="android.intent.action.TIMEZONE_CHANGED" />
            </intent-filter>
            <intent-filter>
                <action android:name="{applicationId}.intent.action.PROFILE_REQUEST_UPDATE" />
                <data android:scheme="uuid" />
            </intent-filter>
        </receiver>
        <provider android:name="androidx.startup.InitializationProvider" android:exported="false" android:authorities="com.github.metacubex.clash.meta.androidx-startup">
            <meta-data android:name="androidx.emoji2.text.EmojiCompatInitializer" android:value="androidx.startup" />
            <meta-data android:name="androidx.lifecycle.ProcessLifecycleInitializer" android:value="androidx.startup" />
            <meta-data android:name="androidx.profileinstaller.ProfileInstallerInitializer" android:value="androidx.startup" />
        </provider>
        <service android:name="androidx.room.MultiInstanceInvalidationService" android:exported="false" android:directBootAware="true" />
        <receiver android:name="androidx.profileinstaller.ProfileInstallReceiver" android:permission="android.permission.DUMP" android:enabled="true" android:exported="true" android:directBootAware="false">
            <intent-filter>
                <action android:name="androidx.profileinstaller.action.INSTALL_PROFILE" />
            </intent-filter>
            <intent-filter>
                <action android:name="androidx.profileinstaller.action.SKIP_FILE" />
            </intent-filter>
            <intent-filter>
                <action android:name="androidx.profileinstaller.action.SAVE_PROFILE" />
            </intent-filter>
            <intent-filter>
                <action android:name="androidx.profileinstaller.action.BENCHMARK_OPERATION" />
            </intent-filter>
        </receiver>
    </application>
</manifest>