Browse Source

New default rules

世界 4 years ago
parent
commit
0d86450705

+ 5 - 0
app/src/main/assets/analysis.txt

@@ -0,0 +1,5 @@
+domain:appcenter.ms
+domain:app-measurement.com
+domain:firebase.io
+domain:crashlytics.com
+domain:google-analytics.com

+ 1 - 1
app/src/main/java/io/nekohasekai/sagernet/database/DataStore.kt

@@ -116,7 +116,7 @@ object DataStore : OnPreferenceDataStoreChangeListener {
     var directDns by configurationStore.string(Key.DIRECT_DNS) { "https+local://223.5.5.5/dns-query" }
     var enableDnsRouting by configurationStore.boolean(Key.ENABLE_DNS_ROUTING)
     var enableFakeDns by configurationStore.boolean(Key.ENABLE_FAKEDNS)
-    var hosts by configurationStore.string(Key.DNS_HOSTS) { "domain:googleapis.cn googleapis.com" }
+    var hosts by configurationStore.string(Key.DNS_HOSTS)
 
     var securityAdvisory by configurationStore.boolean(Key.SECURITY_ADVISORY) { true }
     var rulesProvider by configurationStore.stringToInt(Key.RULES_PROVIDER)

+ 18 - 0
app/src/main/java/io/nekohasekai/sagernet/database/ProfileManager.kt

@@ -204,6 +204,18 @@ object ProfileManager {
                     outbound = -2
                 )
             )
+            createRule(
+                RuleEntity(
+                    name = app.getString(R.string.route_opt_block_analysis),
+                    domains = app.assets.open("analysis.txt").use {
+                            it.bufferedReader()
+                                .readLines()
+                                .filter { it.isNotBlank() }
+                                .joinToString("\n")
+                        },
+                    outbound = -2,
+                )
+            )
             var country = Locale.getDefault().country.lowercase()
             var displayCountry = Locale.getDefault().displayCountry
             if (country in arrayOf(
@@ -220,6 +232,12 @@ object ProfileManager {
             } else {
                 country = Locale.CHINA.country.lowercase()
                 displayCountry = Locale.CHINA.displayCountry
+                createRule(
+                    RuleEntity(
+                        name = app.getString(R.string.route_play_store, displayCountry),
+                        domains = "domain:googleapis.cn",
+                    ), false
+                )
                 createRule(
                     RuleEntity(
                         name = app.getString(R.string.route_bypass_domain, displayCountry),

+ 2 - 0
app/src/main/res/values/strings.xml

@@ -143,6 +143,7 @@
     <string name="empty_route">Empty Route</string>
     <string name="empty_route_notice">Set some rules before saving</string>
     <string name="route_bypass_domain">Domain rule for %s</string>
+    <string name="route_play_store">Play store rule for %s</string>
     <string name="route_bypass_ip">IP rule for %s</string>
     <string name="route_reset">Reset</string>
     <string name="route_reverse">Reverse Proxy</string>
@@ -157,6 +158,7 @@
     <string name="route_not_asset">Not an asset file: excepted .dat, but %s</string>
     <string name="route_opt_bypass_lan">Bypass LAN</string>
     <string name="route_opt_block_ads">Block ADs</string>
+    <string name="route_opt_block_analysis">Block analysis</string>
     <string name="domain_strategy">Domain Resolution Strategy</string>
     <string name="traffic_sniffing">Enable Traffic Sniffing</string>
     <string name="enable_mux">Enable Multiplexer</string>