Commit Graph
57 Commits
Author SHA1 Message Date
Mygod 870fd9e652 Move custom-rules.acl to PublicDatabase
Less files to backup. Less constants to keep track of.
2017-12-16 23:50:54 -08:00
Mygod e5cd145b24 Remove unnecessary bypassHostnames in Acl
Fix #1505
2017-12-16 22:38:47 -08:00
Mygod 11dd7112c3 Implement plugin entirely in Kotlin 2017-12-16 16:07:01 -08:00
Mygod d7a11eaa3b Implement direct boot awareness
To do direct boot, important files need to be moved to device storage (i.e. not as safe storage). The only thing sensitive is user credentials (server settings in each profile) and the config file passed to libss-*.so. In order to implement direct boot, at least the active profile has to be moved/copied to device storage.

This commit keeps profile information (and temporary data used by ProfileConfigFragment) and Shadowsocks config in credential storage and move everything else to device storage. In order to make direct boot work, active profile is also copied into device storage and Shadowsocks config file is created in device storage during direct boot. Cleanup of those information is also implemented.

Fixes #1457.

NB:

* `android:directBootAware` can't be used on application element. That seems to be used by system apps.
* Works fine with multi-user;
* Old GSM files are not migrated (see App.kt) to device storage.
2017-12-15 15:36:19 -08:00
Mygod 14ac54c2de Add support for Auto Backup for Apps 2017-12-15 12:21:30 -08:00
Max Lv 96c86b2441 Make QR code dialog public #1500 2017-12-14 20:04:37 -08:00
Mygod 30b56c97ea Add more tests, fix lint errors and add check to travis 2017-12-14 14:55:00 -08:00
Mygod 9352f2dfe7 Fix SubnetTest 2017-12-14 12:41:09 -08:00
Mygod 9a2643ec2c Add missing error message 2017-12-14 12:00:13 -08:00
Mygod 5c2d548dee Reduce the number of default methods 2017-12-14 12:00:13 -08:00
Mygod 2fa8bc7f41 Refine #1500 2017-12-14 12:00:13 -08:00
Mygod 94527ea460 Refine #1497 2017-12-14 12:00:13 -08:00
Mygod 9259789fb9 Refine #1481 2017-12-14 12:00:13 -08:00
Max Lv b88f836616 Refine #1489 2017-12-13 23:35:10 +08:00
Max Lv c3bbd09ef3 Fix #1500 2017-12-13 22:32:37 +08:00
Max Lv ea7ede033d Fix #1497 2017-12-13 02:06:20 -08:00
Max Lv 956443ef28 Fix the shortcut #1481 2017-12-12 23:45:22 -08:00
Max Lv 9aa0a4e3c5 Fix a potential issue in localSocket 2017-12-11 10:51:17 +08:00
Max Lv aa53318408 Refine #1489 2017-12-10 22:51:18 +08:00
Max Lv 5bc7200d21 Fix the exception when addAllowedApplication 2017-12-09 23:02:45 +08:00
Mygod f5a8513b00 Refine padding in profile item 2017-12-08 17:59:17 -08:00
Mygod 97e93552c6 Always proxy the app itself
No need to keep a confusing option. Fix #1484.
2017-12-08 17:37:11 -08:00
Mygod 497a74760d Refine #1489 2017-12-08 17:24:29 -08:00
Max Lv 3c62d70650 Fix #1489 2017-12-08 12:05:52 +08:00
Mygod efae2f02d0 Refrain from calculating hardcoded dimensions 2017-12-07 00:05:18 -08:00
Mygod d5c1455a00 Replace Toast.position with TooltipCompat 2017-12-06 23:57:17 -08:00
Mygod 9fd86fe8b8 Fix #1487 2017-12-06 23:38:41 -08:00
Mygod 6608355e63 Fix a crash when reordering profiles 2017-12-06 23:25:54 -08:00
Mygod b622545c4b Remove the useless sleep 2017-12-06 21:58:48 -08:00
Mygod c124e1e8ef Misc refinements
* Refine Kotlin codes;
* Support RTL;
* Use VectorDrawable for notification;
* Remove redundant resources;
* Better IDE integration.
2017-12-06 19:46:26 -08:00
Mygod f49d3cb443 Save LocalSocket instance from getting GC 2017-12-06 19:01:35 -08:00
Mygod baa2fdeb1f Refine profile item layout 2017-12-06 18:06:43 -08:00
Mygod 334cd5ea1e Fix issues with keeping compatibility with old databases 2017-12-06 17:32:39 -08:00
Mygod 6ee86a20e1 Fix GridLayout on Android 4.4 2017-12-06 17:23:29 -08:00
Mygod 82276fe77f Fix default profile not displayed on first launch 2017-12-06 16:57:51 -08:00
Mygod c013284b1b Fix LocalSocketListener on debug builds
I have no idea what I'm doing. Somebody please explain.
2017-12-06 16:57:40 -08:00
Mygod 8e126511de Revert "Remove file socket on thread finishes"
This reverts commit 8c55630e9b.
2017-12-06 16:31:06 -08:00
Mygod 8c55630e9b Remove file socket on thread finishes 2017-12-06 16:22:18 -08:00
Mygod b808920e6c Fix EBADF error caused by race condition 2017-12-06 16:08:44 -08:00
Mygod e19e629487 Move catch blocks to child classes
This reverts commit 07a48bc20b and f870093c94.
2017-12-06 16:07:37 -08:00
Mygod 79d2290d28 Use thread with exception handling in GuardedProcess 2017-12-06 15:18:49 -08:00
Max Lv 07a48bc20b Refine the local socket closing logic 2017-12-06 02:42:59 -08:00
Max Lv f870093c94 Fix EBADF error with proguard 2017-12-05 23:16:29 -08:00
Max Lv 9fc1a4e0ad Fix the release build 2017-12-05 22:18:03 +08:00
Mygod c9e6563e43 Fix a naming issue 2017-12-03 10:35:03 -08:00
Mygod 3e8b254118 Initial draft for porting this project to Gradle + Kotlin
This is one of my stupidest idea ever.
2017-12-03 10:20:57 -08:00
Mygod 8c33345a1f Use Gericop's preference library (#1471)
* New SimpleMenuPreference;
* More Oreo-like preference style;
* I'm tired of fixing all those bugs;
* Remove NumberPickerPreference which nobody likes.
2017-11-30 20:10:47 -08:00
Mygod dc2a5ca19c Use SIGKILL to kill old processes
Fix #1455.

Note that in later Android versions, only processes under same uid will be listed and this will be quite efficient.
2017-11-18 02:10:34 -08:00
Mygod 8b57b53788 Misc refinements 2017-07-29 14:36:51 +08:00
Max Lv 52499f5c2d Add local DNS to dns list. #1281 2017-07-19 16:22:03 +08:00