Jelajahi Sumber

feat: 移除 AndroidManifest.xml 中不必要的权限

f-dev 1 Minggu lalu
induk
melakukan
3acf75b862
1 mengubah file dengan 44 tambahan dan 31 penghapusan
  1. 44 31
      android/app/src/main/AndroidManifest.xml

+ 44 - 31
android/app/src/main/AndroidManifest.xml

@@ -1,64 +1,77 @@
-<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools">
 
 
-    <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"/>
-    <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
-    <uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE"/>
+    <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" />
+    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
+    <uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE" />
     <!-- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> -->
     <!-- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> -->
-    <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
-    <uses-permission android:name="android:activate_vpn"/>
-    <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" tools:ignore="ProtectedPermissions"/>
-
+    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
     <!-- 仅在 Android 10 及以下版本需要存储权限 -->
     <!-- 仅在 Android 10 及以下版本需要存储权限 -->
-    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="29"/>
-    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="29"/>
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
+        android:maxSdkVersion="29" />
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
+        android:maxSdkVersion="29" />
 
 
     <queries>
     <queries>
         <intent>
         <intent>
-            <action android:name="android.intent.action.VIEW"/>
-            <data android:scheme="https"/>
+            <action android:name="android.intent.action.VIEW" />
+            <data android:scheme="https" />
         </intent>
         </intent>
     </queries>
     </queries>
 
 
     <queries>
     <queries>
         <intent>
         <intent>
-            <action android:name="android.intent.action.MAIN"/>
-            <category android:name="android.intent.category.LAUNCHER"/>
+            <action android:name="android.intent.action.MAIN" />
+            <category android:name="android.intent.category.LAUNCHER" />
         </intent>
         </intent>
     </queries>
     </queries>
 
 
     <queries>
     <queries>
         <intent>
         <intent>
-            <action android:name="android.intent.action.MAIN"/>
-            <category android:name="android.intent.category.APP_BROWSER"/>
+            <action android:name="android.intent.action.MAIN" />
+            <category android:name="android.intent.category.APP_BROWSER" />
         </intent>
         </intent>
     </queries>
     </queries>
 
 
-    <application android:name=".App" android:allowBackup="false" android:enableOnBackInvokedCallback="false" android:fullBackupContent="false" android:hardwareAccelerated="true" android:icon="@mipmap/launcher_icon" android:label="FlashLink VPN" android:requestLegacyExternalStorage="true" android:usesCleartextTraffic="true" tools:targetApi="tiramisu">
-        <activity android:name=".MainActivity" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" android:exported="true" android:hardwareAccelerated="true" android:launchMode="singleTop" android:theme="@style/LaunchTheme" android:windowSoftInputMode="adjustResize">
+    <application android:name=".App" android:allowBackup="false"
+        android:enableOnBackInvokedCallback="false" android:fullBackupContent="false"
+        android:hardwareAccelerated="true" android:icon="@mipmap/launcher_icon"
+        android:label="FlashLink VPN" android:requestLegacyExternalStorage="true"
+        android:usesCleartextTraffic="true" tools:targetApi="tiramisu">
+        <activity android:name=".MainActivity"
+            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
+            android:exported="true" android:hardwareAccelerated="true"
+            android:launchMode="singleTop" android:theme="@style/LaunchTheme"
+            android:windowSoftInputMode="adjustResize">
             <!-- Specifies an Android theme to apply to this Activity as soon as
             <!-- Specifies an Android theme to apply to this Activity as soon as
                  the Android process has started. This theme is visible to the user
                  the Android process has started. This theme is visible to the user
                  while the Flutter UI initializes. After that, this theme continues
                  while the Flutter UI initializes. After that, this theme continues
                  to determine the Window background behind the Flutter UI. -->
                  to determine the Window background behind the Flutter UI. -->
-            <meta-data android:name="io.flutter.embedding.android.NormalTheme" android:resource="@style/NormalTheme"/>
+            <meta-data android:name="io.flutter.embedding.android.NormalTheme"
+                android:resource="@style/NormalTheme" />
             <intent-filter>
             <intent-filter>
-                <action android:name="android.intent.action.MAIN"/>
-                <category android:name="android.intent.category.LAUNCHER"/>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
             </intent-filter>
         </activity>
         </activity>
 
 
-        <service android:name=".XRayService" android:directBootAware="true" android:exported="false" android:foregroundServiceType="specialUse" android:label="@string/app_name" android:permission="android.permission.BIND_VPN_SERVICE" android:process=":vpn_service">
+        <service android:name=".XRayService" android:directBootAware="true" android:exported="false"
+            android:foregroundServiceType="specialUse" android:label="@string/app_name"
+            android:permission="android.permission.BIND_VPN_SERVICE" android:process=":vpn_service">
             <intent-filter>
             <intent-filter>
-                <action android:name="android.net.VpnService"/>
+                <action android:name="android.net.VpnService" />
             </intent-filter>
             </intent-filter>
-            <meta-data android:name="android.net.VpnService.SUPPORTS_ALWAYS_ON" android:value="false"/>
-            <property android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE" android:value="vpn"/>
+            <meta-data android:name="android.net.VpnService.SUPPORTS_ALWAYS_ON"
+                android:value="false" />
+            <property android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE"
+                android:value="vpn" />
         </service>
         </service>
         <!-- Don't delete the meta-data below.
         <!-- Don't delete the meta-data below.
              This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
              This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
-        <meta-data android:name="flutterEmbedding" android:value="2"/>
-        <meta-data android:name="channel" android:value="${CHANNEL}"/>
+        <meta-data android:name="flutterEmbedding" android:value="2" />
+        <meta-data android:name="channel" android:value="${CHANNEL}" />
     </application>
     </application>
     <!-- Required to query activities that can process text, see:
     <!-- Required to query activities that can process text, see:
          https://developer.android.com/training/package-visibility and
          https://developer.android.com/training/package-visibility and
@@ -67,8 +80,8 @@
          In particular, this is used by the Flutter engine in io.flutter.plugin.text.ProcessTextPlugin. -->
          In particular, this is used by the Flutter engine in io.flutter.plugin.text.ProcessTextPlugin. -->
     <queries>
     <queries>
         <intent>
         <intent>
-            <action android:name="android.intent.action.PROCESS_TEXT"/>
-            <data android:mimeType="text/plain"/>
+            <action android:name="android.intent.action.PROCESS_TEXT" />
+            <data android:mimeType="text/plain" />
         </intent>
         </intent>
     </queries>
     </queries>
 </manifest>
 </manifest>