Skip to content

Commit b24c379

Browse files
JackyAnnMygodmadeyecyber386Goooler
authored
sync (#1)
* Allow user to keep data when uninstalling (shadowsocks#2506) * Update README.md * Update dependencies * Add cargo clean task * Enable LTO * Speed up rebuild * Update issue templates with labels * Update dependencies * Fix output name second attempt * Update NDK * Ensure cargoBuild is ran before mergeJniLibFolders * Bump version * Refine release build process * Refine gradle files * Add RUST_BACKTRACE * Use rethrowAsSocketException * Suppress write errors to protect_path * Update shadowsocks-rust * Bump version * Improve accessibility * Rename cipher plain to none * Revert "Add RUST_BACKTRACE" This reverts commit fdff88e. ndk-stack should be used instead. * Use cp.cloudflare.com for connectivity test Credits: https://www.v2ex.com/t/656983#r_8748918 * Update dependencies * Remote DNS setting is enabled unconditionally * Show more information on conflicting plugins Because one of you feckers just cannot learn to be decent. * Add support for PTR queries * Prevent querying PTR on custom Network * Suppress network unspecified exceptions * Handle IOException while reading * Refine handling duplicate plugins * Use any address as default DNS * Suppress EACCES for ProtectWorker * Clean up unused code * Do not suppress IOException * Disable UDP relay if plugin is enabled and no fallback * Remove unnecessary isExperimental * Update dependencies * Fix unchecked cast * Do not use WorkManager in device storage * Remove unnecessary directBootAware overloading * Suppress BadConfigurationProvider * Disable RemoveWorkManagerInitializer lint for apps * Update to Android 11 beta 1 * Request QUERY_ALL_PACKAGES for mobile * Refine code style * Fix ambiguous coroutineContext * Downgrade coroutines * Update dependencies * Deprecate using Handler * Fix shadowsocks#2546 * Only match exported plugins * Update dependencies * Update dependencies * Migrate to ML kit for scanning QR code Fixes shadowsocks#2548. * Make scanner immersive * Lock orientation to prevent camera recreation * Fix missing Serializable declaration * Add missing serialVersionUID * Update dependencies * Partially migrate to ActivityResultContracts AlertDialogFragment will be migrated after the API goes stable. * Add ActionBar to oss activity * Add ActionBar to details activity * Refine Scanner * Bump version * Update dependencies * Suppress cancellation exceptions * Skip processing if EOS is reached * Refine PTR compat * Fix shadowsocks#2557 * Fix shadowsocks#2562 * Update Android gradle * Set VPN flag properly Refine shadowsocks#2562. * Drop support for Android Lollipop * Update dependencies * Remove UDP upstream DNS support. Fix shadowsocks#2564 shadowsocks#2518 * Update shadowsocks-rust * Update dependencies * Decouple main dependencies from plugin lib * Simplify code * Add missing type * Update dependencies * Deprecate old backup mechanism for Android 5- * Update leanback theme to appcompat * Use singleTask launchMode * Fix build * Bump version * Update dependencies * Update dependencies * Bump plugin lib version to 2.0.0 * Add isV2 to PluginManager.InitResult * Pass a value with the VPN option, if plugin version < 2.0 * Switch to __android_vpn * Remove unnecessary parentheses * Update shadowsocks-rust * Bump version * Clean up and bump version * Revert camera-view back to alpha17 * Bump version * Update dependencies * Migrate away from deprecated APIs with core 1.3.0-alpha05 * Clean up code * Refine code style * Remove old ciphers. Fix shadowsocks#2621 * Enable single-threaded * Update shadowsocks-rust to 1.8.23 * Use Parcelize for TrafficStats * Fix platform insets on API 29- * Fix shadowsocks#2623 * Update barcode-scanning * Fix shadowsocks#2571 * Refine error message * Refine shadowsocks#2571 * Limit open sockets to 256 in UDP association. Fix shadowsocks#2625 * Bump version * Fix little problem of profile switching * Update shadowsocks-rust to 1.9.0 (shadowsocks#2622) * Fix shadowsocks#2638 * Bump version * Switch to local UDP DNS resolver (shadowsocks#2635) * Switch to the local UDP DNS resolver * Update shadowsocks-rust * Revert the rustup commands * Fix shadowsocks#2642 * Fix the ByteBuffer allocation * Update shadowsocks-rust * Revert to local UDS resolver Fix shadowsocks#2650 * Check deprecated ciphers (shadowsocks#2651) * Bump version * Fix shadowsocks#2301 * Bump version * Remove the non-ietf chacha20 and salsa20 ciphers * Fix shadowsocks#2665 * Update dependencies * Fix deprecation of kotlin extensions * Remove unused gcm work library for API 23+ * Use work-multiprocess * Refine code style * Update dependencies (shadowsocks#2672) * Update dependencies * Refine code style * Bump gradle to 6.8.2 * Drop packet if out of buffer * Refine error message * Enlarge the buffer size of a UDP connection * Bump version * Ignore all exceptions whilst updating subscriptions * Refine the JSON config file for ss-rust 1.10 * Refine the code style * Update shadowsocks-rust to v1.10.3 * Fix shadowsocks#2679 * Update dependencies Fixes shadowsocks#2699. * Fix deprecation of adapterPosition * Bump plugin to 2.0.1 * Migrate AlertDialogFragment to fragment result API * Remove useless dependency update * Migrate the rest to fragment result API * Remove unused field * Prevent crashing on shitty ROMs * Add search tool for profiles (shadowsocks#2682) * Suppress logging unsupported query type errors * Ignore if connection was prematurely closed * Use default udp_timeout=300 instead Refine shadowsocks#2625. * Mark underlyingNetwork as volatile Attempts at addressing shadowsocks#2667. * Fixed required targetFragments for preference * Downgrade gradle plugin * Update shadowsocks-rust and add back some ciphers Fix shadowsocks#2705 and shadowsocks#2663. * Update dependencies * Check plugin properly Fix shadowsocks#2667. * Check crypto before init * Make code style more Kotlin * Update core and remove workaround * Refine search to respect locale * Double fixes touch target * Resolve server name dynamically always (shadowsocks#2731) Fixes shadowsocks#2722. * Bump version * Downgrade fragment to 1.3.2 Fixes shadowsocks#2733. * Make plugin library depend on minimum version instead * Enable Parallel GC * Set useLegacyPackaging * Update the maven publish plugin (shadowsocks#2734) 1. Remove the unnecessary custom URL 2. Replace jcenter with mavenCentral * Handle illegal profiles properly * Fix windows build failed shadowsocks#2666 shadowsocks#2711 * Allowed build under msys2 or cygwin * Update dependencies * Bring back semitransparent TV app via build variants (shadowsocks#2741) This creates two variants for tv, freedom containing the original design, and google containing one matching Google's nonsense guideline. The former should be published on GitHub and elsewhere. Revert "Revert "Revert "Revert "Revert "Make app fullscreen to match guidelines""""" This reverts commit 0c67ac6. * Fix typo * Show full proxied apps mode to compensate for missing title * Use MaterialAlertDialogBuilder * Add progress indicator to ServiceButton * Remove elevation from progress * Only show progress for connecting * Only show progress when connecting is taking too long * Bump version * Update dependencies * Update sdk to S * Use registerBestMatchingNetworkCallback * Use OsConstants.ENONET * Deal with new requirements * Use main thread for default network callback on API 26+ * Remove unused code * Fix duplicate authentication * Update dependencies * Bump version * More stupid Android 6 bugs * Update dependencies * Downgrade leanback-preference * Update to API 31 * Remove STORAGE permission on Android 10+ * Update dnsjava * Ensure that redirects are always followed Fixes shadowsocks#2786, shadowsocks#2791. * Update dependencies * Update to AGP 7.0.2 * Fix lint * Update dependencies * Fix shadowsocks#2803 * Remove extra file * v5.2.6 * Revert "Show full proxied apps mode to compensate for missing title" This reverts commit d21cf7b. Fixes shadowsocks#2806. * Add linkedin.com to gfwlist * Fix Codacy badge * Update dependencies * Update .gitignore ignore DS_Store * Just to satisfy the obsessive-compulsive disorder :-) * Update shadowsocks-rust Update rust dependency * add new ciphers feature, and reorder cipher name * Modify acl rules * Update config.yml try to fix up the rust build error * enable armv8, neon feathures for hardware acceleration. * Fix the missing springAnimator * Update shadowsocks-rust to v1.15.0-alpha.5 * Bump version * Update translations Fixes shadowsocks#2867. * Add German and Ukrainian translations * Misc fixes * Fix order * Use system resolver * Update dependencies * Declare POST_NOTIFICATIONS * Protect sensitive profile information when copied * Add support for monochrome icons (not recommended) * Declare supported languages * Require authentication for closing service * Support skipping animation in StatsBar * Downgrade AGP * Misc fixes * Turn on fun switch * Remove useless code * Bump version * Fix the compile error shadowsocks#2930 (shadowsocks#2935) Make checking python version code compatible with windows and *nix Redefine the python version detection code Co-authored-by: Mygod <[email protected]> Co-authored-by: Mygod <[email protected]> Co-authored-by: Max Lv <[email protected]> Co-authored-by: cyber386 <[email protected]> Co-authored-by: Goooler <[email protected]> Co-authored-by: SquallATF <[email protected]> Co-authored-by: dev4u <[email protected]>
1 parent 1e5aabf commit b24c379

File tree

370 files changed

+45368
-35678
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

370 files changed

+45368
-35678
lines changed

.circleci/config.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
version: 2
2+
jobs:
3+
build:
4+
working_directory: ~/code
5+
docker:
6+
- image: shadowsocks/android-ndk-go
7+
environment:
8+
GRADLE_OPTS: -Dorg.gradle.workers.max=1 -Dorg.gradle.daemon=false -Dkotlin.compiler.execution.strategy="in-process"
9+
steps:
10+
- checkout
11+
- run: git submodule update --init --recursive
12+
- run: rustup default nightly-2022-08-28
13+
- run: cd core/src/main/rust/shadowsocks-rust && rustup target add armv7-linux-androideabi aarch64-linux-android i686-linux-android x86_64-linux-android
14+
- restore_cache:
15+
key: jars-{{ checksum "build.gradle.kts" }}
16+
- run:
17+
name: Run Build and Tests
18+
command: ./gradlew assembleDebug check -PCARGO_PROFILE=debug
19+
- save_cache:
20+
paths:
21+
- ~/.gradle
22+
- ~/.android/build-cache
23+
key: jars-{{ checksum "build.gradle.kts" }}
24+
- store_artifacts:
25+
path: mobile/build/outputs/apk
26+
destination: apk/mobile
27+
- store_artifacts:
28+
path: tv/build/outputs/apk
29+
destination: apk/tv
30+
- store_artifacts:
31+
path: core/build/reports
32+
destination: reports/core
33+
- store_artifacts:
34+
path: mobile/build/reports
35+
destination: reports/mobile
36+
- store_artifacts:
37+
path: plugin/build/reports
38+
destination: reports/plugin
39+
- store_artifacts:
40+
path: tv/build/reports
41+
destination: reports/tv

.github/FUNDING.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
github: [Mygod]
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help us improve
4+
title: ''
5+
labels: bug
6+
assignees: ''
7+
8+
---
9+
10+
Please read contributing guidelines. Thanks.
11+
12+
**Describe the bug**
13+
A clear and concise description of what the bug is.
14+
15+
**To Reproduce**
16+
Steps to reproduce the behavior:
17+
1. Go to '...'
18+
2. Click on '....'
19+
3. Scroll down to '....'
20+
4. See error
21+
22+
**Expected behavior**
23+
A clear and concise description of what you expected to happen.
24+
25+
**Screenshots**
26+
If applicable, add screenshots to help explain your problem.
27+
28+
**Smartphone (please complete the following information):**
29+
- Android/Chrome OS version: [e.g. "7.0.0_r14" or "71.0.3578.94 (32-bit)", more detailed description is preferred]
30+
- Device: [e.g. Google Pixel XL]
31+
- Version: [e.g. version code "v3.0.0" or commit ID "a073f85"]
32+
- Last version that did not exhibit the issue: [not applicable]
33+
34+
**Configuration**
35+
Put an `x` inside the [ ] that applies.
36+
37+
* [ ] IPv4 server address
38+
* [ ] IPv6 server address
39+
* [ ] Client IPv4 availability
40+
* [ ] Client IPv6 availability
41+
* Encrypt method:
42+
* Route
43+
* [ ] All
44+
* [ ] Bypass LAN
45+
* [ ] Bypass China
46+
* [ ] Bypass LAN & China
47+
* [ ] GFW List
48+
* [ ] China List
49+
* [ ] Custom rules
50+
* [ ] IPv6 route
51+
* [ ] Apps VPN mode
52+
* [ ] Bypass mode
53+
* Remote DNS: 8.8.8.8
54+
* [ ] DNS over UDP
55+
* Plugin configuration (if applicable):
56+
* [ ] Auto Connect
57+
* [ ] TCP Fast Open
58+
* If you're not using VPN mode, please supply more details here:
59+
60+
**Additional context**
61+
Add any other context about the problem here.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea for this project
4+
title: ''
5+
labels: enhancement
6+
assignees: ''
7+
8+
---
9+
10+
Please read contributing guidelines. Thanks.
11+
12+
**Is your feature request related to a problem? Please describe.**
13+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
14+
15+
**Describe the solution you'd like**
16+
A clear and concise description of what you want to happen.
17+
18+
**Describe alternatives you've considered**
19+
A clear and concise description of any alternative solutions or features you've considered.
20+
21+
**Additional context**
22+
Add any other context or screenshots about the feature request here.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
name: Questions/Support requests/Other
3+
about: You should probably use the forum
4+
title: ''
5+
labels: question
6+
assignees: ''
7+
8+
---
9+
10+
Please use the forum at https://discourse.shadowsocks.org/c/implementations/shadowsocks-android instead. Your issue will probably be closed.

.github/doc-json.md

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
# Documentation for JSON format
2+
3+
shadowsocks-android accepts processing Shadowsocks configs through JSON files.
4+
This documentation is targeted towards Shadowsocks server maintainers, who might need to distribute server configs through subscription JSON files, which is supported since [v5.0.0](https://github.com/shadowsocks/shadowsocks-android/releases/tag/v5.0.0).
5+
6+
## `Profile` JSON object
7+
8+
In general, shadowsocks-android respects [the specification at shadowsocks.org](https://shadowsocks.org/en/config/quick-guide.html).
9+
A JSON object is recognized as a `Profile` (i.e. a valid server config), if all of the following required fields are present and valid:
10+
11+
* `server`
12+
* `server_port`
13+
* `password`
14+
* `method`
15+
16+
These fields have the same meaning as specified by shadowsocks.org.
17+
The specification at shadowsocks.org additionally specifies two additional fields, which is not used by shadowsocks-android:
18+
19+
* `local_port`: This field is configured globally through "SOCKS5 proxy port".
20+
* `timeout`: This field is hardcoded to 600 in shadowsocks-android (however, it is only used as a write timeout, so long idle connections like GMS heartbeat are allowed).
21+
22+
Additionally, shadowsocks-android accepts the following optional fields:
23+
24+
* `plugin`: shadowsocks-android plugin ID or [alias](https://github.com/shadowsocks/shadowsocks-android/pull/2431).
25+
* `plugin_opts`: Plugin options [as specified in shadowsocks.org](https://shadowsocks.org/en/spec/Plugin.html).
26+
* `remarks`: "Profile Name". (also used by [shadowsocks-windows](https://github.com/shadowsocks/shadowsocks-windows))
27+
* `udp_fallback`: "UDP Fallback", should be a `Profile` JSON object or null.
28+
29+
The following optional fields are "Feature Settings" in shadowsocks-android, if omitted, their values will be copied from currently selected profile:
30+
31+
* `route`: "Route", should be one of `all`, `bypass-lan`, `bypass-china`, `bypass-lan-china`, `gfwlist`, `china-list`, `custom-rules`.
32+
* `ipv6`: "IPv6 Route", Boolean.
33+
* `proxy_apps`: "Apps VPN mode", is a JSON object with the following fields:
34+
- `enabled`: Boolean.
35+
- `bypass`: Boolean, whether the app specified should be bypassed or proxied.
36+
- `android_list`: An array of strings, specifying a list of Android app [package names](https://developer.android.com/studio/build/application-id).
37+
* `udpdns`: "Send DNS over UDP", Boolean.
38+
39+
`Profile` objects can have additional fields, which will be ignored by shadowsocks-android.
40+
41+
42+
## Parsing/Importing JSON
43+
44+
shadowsocks-android imports JSON using the following logic, which should support all reasonable formats of JSON files containing `Profile`s, including `gui-config.json` used by shadowsocks-windows.
45+
46+
1. On input a JSON file, try to recognize it as a `Profile`.
47+
2. If input is an object and all the required fields of a `Profile` is present, return the parsed `Profile`.
48+
3. Otherwise if input is an object, recursively search for `Profile`s in each field and return all found `Profile`s.
49+
4. Otherwise if input is an array, recursively search for `Profile`s for each element and return all found `Profile`s.
50+
5. Conclude that there is no `Profile` in input.
51+
52+
In general, subscription JSON file can be in any structure, as long as they contain the `Profile` JSON objects recognized by the above procedure.
53+
54+
55+
## Exporting JSON
56+
57+
The easiest way to write JSON files is to configure them in shadowsocks-android and export the JSON file using the app.
58+
The output will be a JSON file consisting of a JSON array with all the `Profile`s.
59+
60+
61+
## Subscription update behavior
62+
63+
In shadowsocks-android, `Profile` is indexed by the triple `(server, server_port, remarks)`.
64+
If two `Profile`s share the exact same triple, they will be treated as the exact same `Profile`, despite possibly having different plugins, passwords, or even encryption methods.
65+
66+
When doing subscription updates,
67+
68+
* If an old `Profile` shares the same triple as a new `Profile`, the following field in the old `Profile` will be updated: `password`, `method`, `plugin`, `plugin_opts`, `udp_fallback`.
69+
This ensures that user configured feature settings and traffic stats are preserved.
70+
* If two `Profile` across all the subscriptions share the exact same triple, the behavior is undefined.
71+
Please avoid this if possible.
72+
73+
74+
## Appendix: Sample exported JSON file
75+
76+
```json
77+
[
78+
{
79+
"server": "198.199.101.152",
80+
"server_port": 8388,
81+
"password": "u1rRWTssNv0p",
82+
"method": "aes-256-cfb",
83+
"remarks": "Example 1"
84+
},
85+
{
86+
"server": "198.199.101.12",
87+
"server_port": 8388,
88+
"password": "u1rRWTssNv0p",
89+
"method": "aes-256-cfb",
90+
"plugin": "v2ray",
91+
"plugin_opts": "host=www.example.com",
92+
"remarks": "Example 2",
93+
"route": "bypass-lan-china",
94+
"remote_dns": "dns.google",
95+
"ipv6": true,
96+
"metered": false,
97+
"proxy_apps": {
98+
"enabled": true,
99+
"bypass": true,
100+
"android_list": [
101+
"com.eg.android.AlipayGphone",
102+
"com.wudaokou.hippo",
103+
"com.zhihu.android"
104+
]
105+
},
106+
"udpdns": false
107+
}
108+
]
109+
```

.github/faq.md

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,6 @@ Crash: [Submit an issue](https://github.com/shadowsocks/shadowsocks-android/issu
1212

1313
Use [Tasker](http://tasker.dinglisch.net/) integration.
1414

15-
### How to add QR code from local gallery?
16-
17-
Scan it with a third-party scanner like [QuickMark Barcode Scanner](https://play.google.com/store/apps/details?id=tw.com.quickmark) and click the `ss` url.
18-
19-
2015
### Why is NAT mode deprecated?
2116

2217
1. Requiring ROOT permission;
@@ -31,14 +26,18 @@ The exclamation mark in the Wi-Fi/cellular icon appears because the system fails
3126

3227
1. Some ROM has broken VPNService implementation, especially for IPv6;
3328
2. Some ROM has aggressive (or called broken) background service killing policy;
34-
3. Some ROM like [Flyme](https://github.com/shadowsocks/shadowsocks-android/issues/1589) has **very** broken direct boot support;
29+
3. Some ROM like [Flyme](https://github.com/shadowsocks/shadowsocks-android/issues/1821) is basically broken **in every way possible**;
3530
4. If you have Xposed framework and/or battery saver apps, it's likely that this app wouldn't work well with these either.
3631

37-
* Fixes for MIUI: [#772](https://github.com/shadowsocks/shadowsocks-android/issues/772) [#888](https://github.com/shadowsocks/shadowsocks-android/issues/888)
32+
* Fixes for MIUI: [#772](https://github.com/shadowsocks/shadowsocks-android/issues/772)
33+
* Fixes for EMUI: [#888](https://github.com/shadowsocks/shadowsocks-android/issues/888)
3834
* Fixes for Huawei: [#1091 (comment)](https://github.com/shadowsocks/shadowsocks-android/issues/1091#issuecomment-276949836)
3935
* Related to Xposed: [#1414](https://github.com/shadowsocks/shadowsocks-android/issues/1414)
4036
* Samsung and/or Brevent: [#1410](https://github.com/shadowsocks/shadowsocks-android/issues/1410)
37+
* Another Samsung: [#1712](https://github.com/shadowsocks/shadowsocks-android/issues/1712)
38+
* Samsung with GMS: [#2138](https://github.com/shadowsocks/shadowsocks-android/issues/2138)
4139
* Don't install this app on SD card because of permission issues: [#1124 (comment)](https://github.com/shadowsocks/shadowsocks-android/issues/1124#issuecomment-307556453)
40+
* `INTERACT_ACROSS_USERS` permission missing: [#1184](https://github.com/shadowsocks/shadowsocks-android/issues/1184)
4241

4342
### How to pause Shadowsocks service?
4443

@@ -58,12 +57,6 @@ More details: https://kb.adguard.com/en/android/solving-problems/battery
5857

5958
Allow this app to consume background data in app settings.
6059

61-
### Why Camera permission is required on devices below Android 6.0?
62-
63-
To scan the QR code through the integrated QR scanner.
64-
65-
By the way, upgrade your Android system already.
66-
6760
### How to use Transproxy mode?
6861

6962
1. Install [AFWall+](https://github.com/ukanth/afwall);

.github/faq.ru.md

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,6 @@
1212

1313
Использйте интеграцию с [Tasker](http://tasker.dinglisch.net/).
1414

15-
### Как добавить QR код из локальной галереи?
16-
17-
Отсканируйте его при помощи стороннего сканера, например [QuickMark Barcode Scanner](https://play.google.com/store/apps/details?id=tw.com.quickmark) и нажмите на `ss` ссылку.
18-
19-
2015
### Почему режим NAT более не поддерживается?
2116

2217
1. Требуются ROOT права;
@@ -30,14 +25,18 @@
3025
### Почему мой ROM не поддерживается?
3126

3227
1. Некоторые ROM используют неправильную реализацию службы VPN, особенно IPv6;
33-
2. Некоторые ROM используют агрессивную (или так называемую неправильную) фоновую службу с ошибочной политикой остановки;
34-
3. Если вы используете фреймворк Xposed и/или приложения для энергосбережения, вероятно наше приложение не будет нормально работать с ними.
28+
2. Некоторые ROM используют агрессивную (или так называемую испорченную) неправильную политику остановки фоновых служб;
29+
3. Некоторые ROM, такие как [Flyme](https://github.com/shadowsocks/shadowsocks-android/issues/1821) просто не работают **в любом случае**;
30+
4. Если вы используете фреймворк Xposed и/или приложения для энергосбережения, вероятно наше приложение не будет нормально работать с ними.
3531

36-
* Иправления для MIUI: [#772](https://github.com/shadowsocks/shadowsocks-android/issues/772)
32+
* Исправления для MIUI: [#772](https://github.com/shadowsocks/shadowsocks-android/issues/772)
33+
* Исправления для EMUI: [#888](https://github.com/shadowsocks/shadowsocks-android/issues/888)
3734
* Иправления для Huawei: [#1091 (комментарий)](https://github.com/shadowsocks/shadowsocks-android/issues/1091#issuecomment-276949836)
38-
* Вызванные из-за Xposed: [#1414](https://github.com/shadowsocks/shadowsocks-android/issues/1414)
35+
* Связанные с Xposed: [#1414](https://github.com/shadowsocks/shadowsocks-android/issues/1414)
3936
* Samsung и/или Brevent: [#1410](https://github.com/shadowsocks/shadowsocks-android/issues/1410)
37+
* Ещё Samsung: [#1712](https://github.com/shadowsocks/shadowsocks-android/issues/1712)
4038
* Не устанавливайте это приложение на SD карту, из-за проблем с разрешениями: [#1124 (комментарий)](https://github.com/shadowsocks/shadowsocks-android/issues/1124#issuecomment-307556453)
39+
* Отсутствует разрешение `INTERACT_ACROSS_USERS`: [#1184](https://github.com/shadowsocks/shadowsocks-android/issues/1184)
4140

4241
### Как приостановить службу Shadowsocks?
4342

@@ -49,21 +48,15 @@
4948

5049
Так как Shadowsocks работает со всем траффиком устройства, заряд батареи используемый другими приложениями также считается за тот, что использует Shadowsocks. Таким образом использование батареи Shadowsocks'ом равен сумме всей активности устройства в сети. Shadowsocks сам по себе в общем-то является приложением связанного процесса ввода/вывода на современных Android устройствах, которое, ожидаемо, не потребляет значительного количества энергии.
5150

52-
Так что если вы заметите значительное увеличение потребляемой энергии после того, как вы использовали Shadowsocks, это скорее всего вызванно другими приложениями. Например, сервисы Google Play могут потреблять больше энергии после того, как подключатся к Google, и т.д.
51+
Так что если вы заметите значительное увеличение потребляемой энергии после того, как вы использовали Shadowsocks, это скорее всего вызванно другими приложениями. Например, сервисы Google Play могут потреблять больше энергии после того, как смогут подключиться к Google, и т.д.
5352

5453
Больше информации: https://kb.adguard.com/en/android/solving-problems/battery
5554

5655
### Оно прекрасно работает при Wi-Fi но не может подключиться через сотовую связь?
5756

5857
Разрешите этому приложению передачу данных в фоновом режиме в настройках приложения.
5958

60-
Если у вас оперератор Yota, то измените точку доступа APN с `yota.ru` на `client.yota.ru`
61-
62-
### Почему требуется разрешение камере на устройствах младше Android 6.0?
63-
64-
Чтобы сканировать QR код через встроенный QR сканер.
65-
66-
Кстати, обновите уже свою версию Android.
59+
Если у вас оперератор Yota, то увы, но они запрещают P2P-траффик, коим является (или просто определяется фильтрами оператора как P2P-траффик) Shadowsocks. Оператор не будет предпринимать никаких действий для решения данной проблемы.
6760

6861
### Как использовать режим Transproxy (прозрачный прокси)?
6962

.github/issue_template.md

Lines changed: 0 additions & 44 deletions
This file was deleted.

0 commit comments

Comments
 (0)