Viktor De Pasquale
016e28383b
Added animated progressbar
2019-11-04 16:58:39 +01:00
Viktor De Pasquale
f1427e9279
Updated hide item layout
2019-11-04 16:45:54 +01:00
Viktor De Pasquale
169e9ab5ad
Updated hide fragment layout and design of the filter window
2019-11-04 16:02:23 +01:00
topjohnwu
472cde29b8
Allow non supported Magisk to use Magisk Manager
...
Close #1576
2019-11-04 03:24:27 -05:00
topjohnwu
26618f8d73
Don't do broadcast tests from app
...
Running broadcast tests from the app does not accurately verifies
whether the broadcasts can be delivered when the app is not running in
the foreground, which is why we are running the test.
The only sane way to verify broadcasts is to trigger the broadcast test
directly from the daemon on boot complete. If it is not deliverable,
then activity mode shall be chosen.
In the meantime, cleanup AndroidManifest.xml
2019-11-03 17:01:09 -05:00
topjohnwu
6f7c13b814
Refactor JarMap
2019-11-03 04:45:35 -05:00
topjohnwu
0c9feedb37
Support restarting app when obfuscated
2019-11-03 02:55:22 -05:00
Viktor De Pasquale
dad52724db
Updated hide fragment with more robust filtering UI
2019-11-02 18:31:20 +01:00
osm0sis
c85b1c56af
signing: fixes for bootimg hdr_v1 and hdr_v2
...
- increase SignBoot bootimg header version maximum from 4 to 8 (upstream AOSP is already at 3) and make a variable for future ease
- hdr read size of 1024 bytes was too small as hdr_v1 and hdr_v2 have increased the used header page areas to 1632 and 1648 bytes, respectively, so raise this to the minimum page size of 2048 and also make a variable for future ease
- do not return "not signed" for all caught exceptions, show StackTrace for future debugging then still return false for script purposes
- correct "test keys" boot image signing strings (scripts and app) to "verity keys"
2019-11-02 00:27:56 -04:00
topjohnwu
4cd154675f
Random dname
2019-11-01 18:52:37 -04:00
Viktor De Pasquale
24e2c3a5e9
Removed unused icons
2019-11-01 21:30:29 +01:00
Viktor De Pasquale
85f293a44e
Updated policy colors and internal ids
2019-11-01 21:10:00 +01:00
Viktor De Pasquale
7d5555f82e
Added safety notice and support section description
2019-11-01 19:02:30 +01:00
Viktor De Pasquale
6720725d27
Added clarifying tooltips and captions
2019-11-01 18:12:52 +01:00
Viktor De Pasquale
fe5c65d798
Fixed use of RxBus for toggling policies
2019-11-01 17:58:42 +01:00
Viktor De Pasquale
d8d72f92b3
Fixed policy toggle being impossible to cancel
2019-11-01 14:47:59 +01:00
topjohnwu
10ce11d671
Fix config/locale issues
...
Close #1977
2019-10-31 17:13:06 -04:00
Viktor De Pasquale
5e089451af
Added loaders to superuser and hide
2019-10-31 20:53:57 +01:00
Viktor De Pasquale
6aa22267f4
Updated Hide screen to be fully functioning
...
...although still misses search :(
2019-10-31 20:34:07 +01:00
topjohnwu
0f34457a10
Directly store strings in viewmodel
2019-10-31 15:33:13 -04:00
Viktor De Pasquale
f76c020dd7
Added implementation of hide screen
...
Very much wip and doesn't work at all
2019-10-30 21:58:42 +01:00
Viktor De Pasquale
86551909fc
Added safe mode notice to modules screen
2019-10-30 17:59:03 +01:00
Viktor De Pasquale
588e94c11d
Updated locations of certain elements
...
Settings are now only on home screen as it directly relates to what user might want to do. It is highly unlikely that they would jump from any other screen to settings.
Log is no longer main destination as it's not used very widely; it's been moved to Superuser screen. This screen now encapsulates all root-related stuff.
Home screen is now strictly info-based, except install buttons, of course.
2019-10-30 17:11:42 +01:00
topjohnwu
31e003bda5
Fix bug in version detection
2019-10-30 05:24:22 -04:00
topjohnwu
fdf04f77f2
Send bitmap to notifications and shortcuts
...
On API 23+, the platform unifies the way to handle drawable
resources across processes: all drawables can be passed via Icon.
This allows us to send raw bitmap to the system without the need to
specify a resource ID. This means that we are allowed to NOT include
these drawable resources within our stub APK, since our full APK can
draw the images programmatically and send raw bitmaps to the system.
2019-10-30 01:02:53 -04:00
Viktor De Pasquale
93c422dce6
Added post-merge fixes
2019-10-29 16:52:42 +01:00
Viktor De Pasquale
7d6eebdae3
Fixed unreasonable change resulting in major breakage all around the app
2019-10-29 16:50:01 +01:00
Viktor De Pasquale
f11bb609c9
Merge remote-tracking branch 'john/master' into feature/redesign
...
# Conflicts:
# app/build.gradle
# app/src/main/java/com/topjohnwu/magisk/ClassMap.kt
# app/src/main/java/com/topjohnwu/magisk/Info.kt
# app/src/main/java/com/topjohnwu/magisk/extensions/XAndroid.kt
# app/src/main/java/com/topjohnwu/magisk/ui/SplashActivity.kt
# app/src/main/java/com/topjohnwu/magisk/ui/settings/SettingsFragment.kt
# app/src/main/java/com/topjohnwu/magisk/utils/DataBindingAdapters.kt
2019-10-29 15:53:53 +01:00
topjohnwu
5e87483f34
Move addAssetPath to shared
2019-10-29 07:37:19 -04:00
topjohnwu
ee447bc4ce
Improve Keygen yet again
2019-10-26 21:11:32 -04:00
topjohnwu
7693024c29
Replace general resources with platform
2019-10-26 19:23:57 -04:00
topjohnwu
626507093a
Don't need to wrap another layer of context
2019-10-26 15:37:12 -04:00
Viktor De Pasquale
ee7d297ca8
Partially reverted developer section changes
2019-10-26 21:14:01 +02:00
Viktor De Pasquale
a70c0174e1
Added device info card
2019-10-26 21:03:25 +02:00
Viktor De Pasquale
da707afa3f
Updated install ui to better fit app's theme
2019-10-26 17:40:29 +02:00
Viktor De Pasquale
a41597431c
Added more information to magisk/manager cards
2019-10-26 17:33:27 +02:00
Viktor De Pasquale
d0b817381e
Added "caching" of the safetynet response
2019-10-26 16:03:07 +02:00
Viktor De Pasquale
df3a37b0a3
Updated developer section to be horizontally scrollable instead of vertically
...
In order to make room for more information
2019-10-26 12:41:34 +02:00
Viktor De Pasquale
3cc5cb3123
Updated the install flow
...
Now the binary is downloaded after user selects a method. It also shows download progress as the file's being downloaded
2019-10-25 19:13:54 +02:00
Viktor De Pasquale
8a2872afa4
Removed pre-download while installing magisk
2019-10-25 17:46:20 +02:00
Viktor De Pasquale
85941c4729
Removed lol code
2019-10-25 15:40:46 +02:00
topjohnwu
97a691ce2f
Improve keygen for signing repackaged manager
2019-10-24 13:04:15 -04:00
Viktor De Pasquale
82eeefb544
Added system version to the details section for safetynet checks
2019-10-24 18:40:15 +02:00
topjohnwu
9d948f2c2b
Temporary disable verification when hiding app
...
For some reason, Google Play Protect randomly blocks our self-signed
repackaged Magisk Manager APKs. Since we are root, the sky is our
limit, so yeah, disable package verification temporarily when installing
patched APKs, LOLz
Close #1979
2019-10-24 12:23:03 -04:00
Viktor De Pasquale
f6061ba00e
Fixed bottom navigation popping up when it shouldn't
2019-10-24 18:07:36 +02:00
Viktor De Pasquale
9e3afcfe7a
Added safetynet implementation
2019-10-24 18:00:51 +02:00
topjohnwu
0b87108174
Move things around
2019-10-24 05:21:42 -04:00
topjohnwu
7fc7809cfc
More precise channel targeting
2019-10-24 04:25:05 -04:00
topjohnwu
c30be20e49
Minor CachedValue fix
2019-10-24 04:02:01 -04:00
topjohnwu
25c64db0a1
Treat outdated stub as outdated manager
2019-10-24 03:54:16 -04:00
topjohnwu
676e9c6593
Provide upgrade path for stubs
2019-10-24 02:47:40 -04:00
topjohnwu
d459859361
Show stub version
2019-10-24 00:54:40 -04:00
topjohnwu
294db93fde
Copy instead of move
...
We might be copying from CE to DE storage, which cannot be moved
2019-10-23 17:20:55 -04:00
Viktor De Pasquale
21f2f86cb8
Added safetynet implementation
...
The implementation itself was moved from fragment to self contained event. The result resolution might be moved to the event as well
2019-10-23 21:17:53 +02:00
Viktor De Pasquale
04576ca828
Added install implementation
2019-10-23 19:14:39 +02:00
Viktor De Pasquale
067cb0cd9d
Fixed magisk button states
2019-10-23 16:20:01 +02:00
topjohnwu
5133e5910e
Don't relaunch app immediately
2019-10-23 07:12:00 -04:00
topjohnwu
45c1f6bc27
Fix restore manager when running as stub
2019-10-23 06:43:08 -04:00
topjohnwu
0d31e5c8b1
Properly migrate update channels when repackaging
2019-10-23 06:41:25 -04:00
topjohnwu
f8fcaadb5b
Hide manager with stub if feasible
2019-10-23 05:50:06 -04:00
topjohnwu
0b5fd3ee76
Only allow hide/restore app if connected
2019-10-23 05:43:01 -04:00
topjohnwu
71136d7347
Manually trigger broadcast tests if necessary
2019-10-22 16:04:20 -04:00
topjohnwu
a18c552ddf
Guard env state behind cached objects
2019-10-22 15:37:55 -04:00
Viktor De Pasquale
17fb8f2298
Added new magisk install flow
2019-10-22 20:46:09 +02:00
Viktor De Pasquale
d2e171eabc
Added a way to listen to download service from homepage and behave accordingly
2019-10-22 17:29:45 +02:00
Viktor De Pasquale
e50094af80
Added install fragment
2019-10-22 16:29:01 +02:00
Viktor De Pasquale
93edf72993
Rationalize download failure
2019-10-22 16:26:28 +02:00
Viktor De Pasquale
a230d63cf9
Fixed having an error doesn't inform external listeners
2019-10-22 16:22:28 +02:00
topjohnwu
9656878ef3
Actually apply the input name
2019-10-22 05:06:17 -04:00
Viktor De Pasquale
7ded7de39a
Added custom dialog for setting app's name after repackaging
2019-10-22 04:52:19 -04:00
topjohnwu
0f74e89b44
Introduce component agnostic communication
...
Usually, the communication between native and the app is done via
sending intents to either broadcast or activity. These communication
channels are for launching root requests dialogs, sending root request
notifications (the toast you see when an app gained root access), and
root request logging.
Sending intents by am (activity manager) usually requires specifying
the component name in the format of <pkg>/<class name>. This means parts
of Magisk Manager cannot be randomized or else the native daemon is
unable to know where to send data to the app.
On modern Android (not sure which API is it introduced), it is possible
to send broadcasts to a package, not a specific component. Which
component will receive the intent depends on the intent filter declared
in AndroidManifest.xml. Since we already have a mechanism in native code
to keep track of the package name of Magisk Manager, this makes it
perfect to pass intents to Magisk Manager that have components being
randomly obfuscated (stub APKs).
There are a few caveats though. Although this broadcasting method works
perfectly fine on AOSP and most systems, there are OEMs out there
shipping ROMs blocking broadcasts unexpectedly. In order to make sure
Magisk works in all kinds of scenarios, we run actual tests every boot
to determine which communication method should be used.
We have 3 methods in total, ordered in preference:
1. Broadcasting to a package
2. Broadcasting to a specific component
3. Starting a specific activity component
Method 3 will always work on any device, but the downside is anytime
a communication happens, Magisk Manager will steal foreground focus
regardless of whether UI is drawn. Method 1 is the only way to support
obfuscated stub APKs. The communication test will test method 1 and 2,
and if Magisk Manager is able to receive the messages, it will then
update the daemon configuration to use whichever is preferable. If none
of the broadcasts can be delivered, then the fallback method 3 will be
used.
2019-10-21 13:59:04 -04:00
Viktor De Pasquale
8a014ff786
Added most of the remaining functionality for Magisk install dialog
2019-10-21 19:22:16 +02:00
Viktor De Pasquale
dc09ec7598
Added theme mode picker dialog
...
Redesigned settings' selector for dark mode a bit
2019-10-20 17:28:18 +02:00
Viktor De Pasquale
27fb0474d5
Added more standard night-mode system
2019-10-20 17:27:39 +02:00
Viktor De Pasquale
7f0a87742a
Fixed design issues in dialogs
...
Dark theme not being properly implemented
Icons were not set
2019-10-20 17:26:00 +02:00
Viktor De Pasquale
47e236788c
Added uninstall dialog
2019-10-20 16:47:02 +02:00
topjohnwu
325d9a0b86
Generate keys for signing hidden Magisk Manager
2019-10-20 06:56:33 -04:00
Viktor De Pasquale
236ad57608
Added showing download progress in the home ui
2019-10-20 12:40:50 +02:00
Viktor De Pasquale
6d03798314
Added internal download pseudo broadcasts
2019-10-20 12:40:26 +02:00
Viktor De Pasquale
44f7c9a545
Added animations for toolbar transitions
2019-10-20 11:14:49 +02:00
Viktor De Pasquale
b910db322b
Fixed snackbar behavior in contrast with bottom navigation
2019-10-20 10:57:29 +02:00
Viktor De Pasquale
c44a942fb7
Added entry for safetynet attestation
2019-10-19 22:28:01 +02:00
Viktor De Pasquale
d713ad3499
Added "advanced" install options for installing magisk
2019-10-19 22:14:23 +02:00
Viktor De Pasquale
7c6d85221d
Updated policy items design
2019-10-19 21:07:06 +02:00
Viktor De Pasquale
b66b82a6e9
Added logic to superuser screen
2019-10-19 20:51:28 +02:00
Viktor De Pasquale
fcbf56e93a
Added superuser screen implementation
...
* partially
2019-10-18 19:38:55 +02:00
Viktor De Pasquale
512f533a80
Added hide fragment for future use
2019-10-18 17:04:41 +02:00
Viktor De Pasquale
96ef9cdbee
Fixed insets not being implicitly asked for by the framework resulting in no coverage for other than main fragments
2019-10-18 16:39:08 +02:00
Viktor De Pasquale
28fcbbcf7b
Added basic preferences to settings
2019-10-17 19:26:35 +02:00
Viktor De Pasquale
0f4326151f
Added titles
2019-10-17 19:26:25 +02:00
Viktor De Pasquale
e0e27774ad
Added remaining stubs for the redesign
2019-10-17 18:57:00 +02:00
Viktor De Pasquale
1223b48b2c
Fixed dialog automatically dismissing itself
2019-10-17 15:52:52 +02:00
Viktor De Pasquale
d8338f0b48
Fixed event duplication
2019-10-17 15:47:11 +02:00
Viktor De Pasquale
38019f7f42
Added env check to homepage
2019-10-17 15:37:10 +02:00
topjohnwu
78daa2eb62
Do not use string resources for app label
...
This not only simplifies hiding stub APKs (no resource IDs involved),
but also opens the opportunity to allow users to customize whatever
app name they want after it is hidden.
2019-10-17 04:47:46 -04:00
topjohnwu
40eda05a30
Make main app fully independent from the stub
...
- Skip 0x7f01XXXX - 0x7f05XXXX resource IDs in the main app; they are
reserved for stub resources
- Support sending additional data from host to guest
- Use resource mapping passed from host when they are being sent
to the system framework (notifications and shortcuts)
2019-10-17 02:55:42 -04:00
topjohnwu
9f9de8c43b
Obfuscate WorkManager components
...
Remove unused components and hack the context sent into WorkManager
2019-10-16 17:03:55 -04:00
Viktor De Pasquale
23978ef4d2
Updated bottom padding for home fragment
2019-10-16 19:04:37 +02:00
Viktor De Pasquale
3b4cb23112
Fixed error in navigation implementation
2019-10-16 18:53:38 +02:00
Viktor De Pasquale
974cb1167f
Added post-merge fixes
2019-10-16 17:53:35 +02:00
Viktor De Pasquale
6ccbc272c6
Merge remote-tracking branch 'john/master' into feature/redesign
...
# Conflicts:
# app/build.gradle
# app/src/main/AndroidManifest.xml
# app/src/main/java/com/topjohnwu/magisk/model/events/ViewEvents.kt
# app/src/main/java/com/topjohnwu/magisk/model/navigation/MagiskNavigationEvent.kt
# app/src/main/java/com/topjohnwu/magisk/ui/SplashActivity.kt
# app/src/main/java/com/topjohnwu/magisk/ui/settings/SettingsFragment.kt
# app/src/main/java/com/topjohnwu/magisk/view/MagiskDialog.kt
# app/src/main/res/layout/dialog_magisk_base.xml
2019-10-16 17:33:54 +02:00
Viktor De Pasquale
0eb28c3265
Added navigation delegation to bypass default one
...
By making a delegate like such we protect ourselves against intrusions in views' logic
2019-10-16 17:27:11 +02:00
Viktor De Pasquale
2daa131fb2
Added layout behavior to dismiss toolbars when scrolling
2019-10-16 16:08:07 +02:00
Viktor De Pasquale
51247d36c5
Added disabled state for sections where unrooted user shouldn't have access
2019-10-16 15:47:41 +02:00
topjohnwu
a910c8ccd8
Support stub APK upgrades
2019-10-16 05:07:29 -04:00
topjohnwu
43bda2d4a4
Allow component classname obfuscation
2019-10-16 04:38:31 -04:00
topjohnwu
5ffb9eaa5b
Support loading Magisk Manager from stub on 9.0+
...
In the effort of preventing apps from crawling APK contents across the
whole installed app list to detect Magisk Manager, the solution here
is to NOT install the actual APK into the system, but instead
dynamically load the full app at runtime by a stub app. The full APK
will be stored in the application's private internal data where
non-root processes cannot read or scan.
The basis of this implementation is the class "AppComponentFactory"
that is introduced in API 28. If assigned, the system framework will
delegate app component instantiation to our custom implementation,
which allows us to do all sorts of crazy stuffs, in our case dynamically
load classes and create objects that does not exist in our APK.
There are a few challenges to achieve our goal though. First, Java
ClassLoaders follow the "delegation pattern", which means class loading
resolution will first be delegated to the parent loader before we get
a chance to do anything. This includes DexClassLoader, which is what
we will be using to load DEX files at runtime. This is a problem
because our stub app and full app share quite a lot of class names.
A custom ClassLoader, DynamicClassLoader, is created to overcome this
issue: it will always load classes in its current dex path before
delegating it to the parent.
Second, all app components (with the exception of runtime
BroadcastReceivers) are required to be declared in AndroidManifest.xml.
The full Magisk Manager has quite a lot of components (including
those from WorkManager and Room). The solution is to copy the complete
AndroidManifest.xml from the full app to the stub, and our
AppComponentFactory is responsible to construct the proper objects or
return dummy implementations in case the full APK isn't downloaded yet.
Third, other than classes, all resources required to run the full app
are also not bundled with the stub APK. We have to call an internal API
`AssetManager.addAssetPath(String)` to add our downloaded full APK into
AssetManager in order to access resources within our full app. That
internal API has existed forever, and is whitelisted from restricted
API access on modern Android versions, so it is pretty safe to use.
Fourth, on the subject of resources, some resources are not just being
used by our app at runtime. Resources such as the app icon, app label,
launch theme, basically everything referred in AndroidManifest.xml,
are used by the system to display the app properly. The system get these
resources via resource IDs and direct loading from the installed APK.
This subset of resources would have to be copied into the stub to make
the app work properly.
Fifth, resource IDs are used all over the place in XMLs and Java code.
The resource IDs in the stub and full app cannot missmatch, or
somewhere, either it be the system or AssetManager, will refer to the
incorrect resource. The full app will have to include all resources in
the stub, and all of them have to be assigned to the exact same IDs in
both APKs. To achieve this, we use AAPT2's "--emit-ids" option to dump
the resource ID mapping when building the stub, and "--stable-ids" when
building the full APK to make sure all overlapping resources in full
and stub are always assigned to the same ID.
Finally, both stub and full app have to work properly independently.
On 9.0+, the stub will have to first launch an Activity to download
the full APK before it can relaunch into the full app. On pre-9.0, the
stub should behave as it always did: download and prompt installation
to upgrade itself to full Magisk Manager. In the full app, the goal
is to introduce minimal intrusion to the code base to make sure this
whole thing is maintainable in the future. Fortunately, the solution
ends up pretty slick: all ContextWrappers in the app will be injected
with custom Contexts. The custom Contexts will return our patched
Resources object and the ClassLoader that loads itself, which will be
DynamicClassLoader in the case of running as a delegate app.
By directly patching the base Context of ContextWrappers (which covers
tons of app components) and in the Koin DI, the effect propagates deep
into every aspect of the code, making this change basically fully
transparent to almost every piece of code in full Magisk Manager.
After this commit, the stub app is able to properly download and launch
the full app, with most basic functionalities working just fine.
Do not expect Magisk Manager upgrades and hiding (repackaging) to
work properly, and some other minor issues might pop up.
This feature is still in the early WIP stages.
2019-10-14 03:49:17 -04:00
Viktor De Pasquale
37fa227fb5
Added refreshing upon connection restore
2019-10-12 16:30:18 +02:00
topjohnwu
06dc6df270
Allow dalvik runtime to load snet
2019-10-11 03:58:04 -04:00
topjohnwu
ff8460b361
Update dependencies
2019-10-11 03:29:55 -04:00
topjohnwu
674d272eaa
Support pre-5.0 without GMS
...
Fix #1912
2019-10-11 01:46:15 -04:00
topjohnwu
04920883ea
Change code for handling tar files
2019-10-10 15:07:45 -04:00
Viktor De Pasquale
ee06aed94b
Updated toolbar and bottom bar design implementation
...
TBD:
Both toolbars should move away from the screen when scrolling
2019-10-10 17:34:06 +02:00
topjohnwu
4a45ba3c14
Update magisk_files commit hashes
2019-10-08 14:53:04 -04:00
Viktor De Pasquale
4292ddd0ae
Added custom install dialogs
2019-10-08 20:29:55 +02:00
Viktor De Pasquale
0e33632e79
Added package name when it differs from the default one
2019-10-08 18:30:23 +02:00
Viktor De Pasquale
a9b20dae33
Fixed showing update information
2019-10-08 18:29:58 +02:00
Viktor De Pasquale
3ea28b0afb
Fixed permission event not being executed
2019-10-07 22:58:14 -04:00
Viktor De Pasquale
2b3cc28966
Fixed snackbar not showing up for dumping files
2019-10-07 22:58:14 -04:00
Viktor De Pasquale
751642b39a
Fixed back button not working on flash screen
2019-10-07 22:58:14 -04:00
Viktor De Pasquale
e595937740
Added versions to home screen
...
To overview (when updatable)
- It is very hard to spot a difference in versions so versions are now regarded as commit messages (after dash [-]) when applicable
- This will result in more clear, understandable text
- Bleeding edge (canary) user would see:
ffed229 > ffe02ed or 19.4 > ffe02ed
as opposed to:
19.4-ffed229 (19404)
19.5-ffe02ed (19501)
- Regular beta+ user would see:
19.4 > 19.5
To bottom of the screen
- This change is with respect to regular user. They don't care which version they run as long as they know that "up-to-date" is a gold standard
- It takes tons of real-estate on the screen which takes away the glance-ability from the overview.
2019-10-07 20:09:12 +02:00
Viktor De Pasquale
8999a57f06
Added in-app settings shortcut from system settings
2019-10-06 12:20:05 +02:00
Viktor De Pasquale
8024089bde
Added indication of whether the manager is hidden
2019-10-06 12:06:31 +02:00
Viktor De Pasquale
5e01f785ae
Added handling for state with no connection
2019-10-06 12:06:09 +02:00
Viktor De Pasquale
f1dcecc6cf
Added link opening on homepage
2019-10-05 22:04:03 +02:00
Viktor De Pasquale
fe1ce08a6c
Added self-handling event types
2019-10-05 21:53:33 +02:00
Viktor De Pasquale
1d64ddb7f5
Fixed dimensions and padding throughout the homescreen
2019-10-05 12:53:40 +02:00
Viktor De Pasquale
823b121cc7
Added support section content
2019-10-05 12:42:27 +02:00
Viktor De Pasquale
149d35c687
Updated strings
2019-10-05 11:39:33 +02:00
Viktor De Pasquale
6afcc83955
Added logic to redesigned home
...
(partially)
2019-10-04 19:36:26 +02:00
Viktor De Pasquale
277d8773f2
Added automated loading to new compat-based redesign
2019-10-04 19:35:22 +02:00
Viktor De Pasquale
f161cf8b0a
Removed no-root state
2019-10-04 18:56:35 +02:00
Viktor De Pasquale
cb2a1e57fe
Added text switchers for descriptions
2019-10-04 17:56:30 +02:00
Viktor De Pasquale
1396faf433
Added animated icon for magisk (and its uninstall)
2019-10-04 17:12:28 +02:00
Viktor De Pasquale
dc8d2ae683
Added basic navigation
2019-10-03 19:38:57 +02:00
Viktor De Pasquale
4820a6e01c
Updated toolbar to look more android-like
2019-10-03 18:41:04 +02:00
Viktor De Pasquale
57a9b5bc0c
Added home screen
2019-10-03 17:31:45 +02:00
Viktor De Pasquale
8c224da5d5
Added compat layer for activities and fragments
...
This change is made so logic is not placed within the "old" base substrate. Changes made in the redesign could potentially affect the already working part which we obviously do not want.
2019-10-03 16:42:47 +02:00
Viktor De Pasquale
14e49f3c80
Added redesign base
...
... also basic switching to redesign was added, haha
2019-10-02 19:42:38 +02:00
topjohnwu
5b7ddbbb01
Fix status report UI
2019-09-30 15:32:28 -04:00
Viktor De Pasquale
6352fbb3b2
Added additional sorting for installed modules
2019-09-30 14:07:14 -04:00
topjohnwu
d3f49334e2
Move function as extension
2019-09-28 12:17:34 -04:00
topjohnwu
5c5625911d
Fix back button behavior
2019-09-28 05:01:25 -04:00
topjohnwu
6a10cc9c55
Remove dependency Dexter
2019-09-28 04:23:21 -04:00
topjohnwu
6b317f918e
Rename base class names
2019-09-28 03:50:11 -04:00
topjohnwu
08b528dc4f
Reorganize classes
...
- Move base classes to its own package
- Move most logic out of MagiskActivity to MainActivity
2019-09-28 03:37:24 -04:00
topjohnwu
fc886a5a47
Merge Teanity into sources
2019-09-28 01:56:16 -04:00
topjohnwu
0cb90e2e55
Update BasePreferenceFragment
2019-09-27 19:54:03 -04:00
Viktor De Pasquale
578a50b464
Added hiding actions on notifications typed "Download"
2019-09-26 03:15:46 -04:00
topjohnwu
debd1d7d54
Update canary channel links
2019-09-24 03:09:02 -04:00
topjohnwu
3f057367e3
Update dependencies
2019-09-12 12:50:44 -04:00
topjohnwu
d73f39c706
Fix manager update after hidden
...
Fix #1828
2019-09-09 17:24:29 -04:00
topjohnwu
86481c74ff
Allow user to select recovery mode
...
Close #1674
2019-09-08 00:44:26 -04:00
topjohnwu
5b937fb1fa
Random changes
2019-09-05 11:36:48 -04:00
topjohnwu
ff828116bc
Only cache magisk zips
2019-09-05 11:26:35 -04:00
topjohnwu
a6126c5eda
Cosmetic changes
2019-08-23 03:05:41 +08:00
topjohnwu
85d9bd9106
Fix compile errors
2019-08-23 00:30:21 +08:00
Viktor De Pasquale
39e9622205
Fixed magisk version
...
Added refreshing versions before and after the request to remote
2019-08-22 08:03:17 +02:00
topjohnwu
84f0ff2fad
Fix manager package name database management
2019-08-12 03:31:59 -07:00
topjohnwu
e6561e5f84
Fix XML parsing Kotlin error
2019-08-12 03:14:51 -07:00
topjohnwu
5fa452aa74
Multiple minor changes
2019-08-12 01:54:33 -07:00
topjohnwu
2225ccb146
Flush settings to persistent storage
2019-08-12 00:05:19 -07:00
topjohnwu
5aafc78847
Cleanup const
2019-08-11 23:53:43 -07:00
topjohnwu
0d03833cff
Name module zips with version code
2019-08-11 22:46:39 -07:00
topjohnwu
a797d5d396
Update snet extension
2019-08-08 04:18:32 -07:00
topjohnwu
f2494374f8
Eliminate any traces of Java in app
2019-08-08 00:59:23 -07:00
topjohnwu
48395ba860
Remove unused files
2019-08-08 00:29:27 -07:00
topjohnwu
5ba5f5f94e
Observe network connnectivity
...
Observe internet connectivity will ping google.com
2019-08-07 22:26:44 -07:00
topjohnwu
42ce6fd334
Workaround stupid Moshi proguard rules
2019-08-07 22:26:25 -07:00
Viktor De Pasquale
3c7ece1605
Fixed not showing current version
...
Current version was not displaying under circumstances that involve loss of connection. Versions are displayed whether the device is connected or not.
2019-08-07 03:07:18 -07:00
Viktor De Pasquale
870efc49ea
Fixed using mapping function incorrectly
2019-08-07 03:07:18 -07:00
Viktor De Pasquale
085ede6d93
Added simple ui blocks for whenever connection drops out
2019-08-07 03:07:18 -07:00
Viktor De Pasquale
4ef19d17da
Added a flag for connection status
...
Reactively updated flag which only checks whether the "data" / "wifi" / "ethernet" is plugged in or enabled. If the user connects to the wifi but has no actual connection, the app will never know.
Please refrain from using other access methods (like pinging a host), it can get picked up by a VPN or other methods and possibly expose MM.
2019-08-07 03:07:18 -07:00
topjohnwu
223913c30a
Remove unnecessary App usage
2019-08-05 00:21:38 -07:00
topjohnwu
010e4de4e1
Introduce DynamicClassLoader
2019-08-04 23:49:09 -07:00
topjohnwu
8f07747452
Remove net module
2019-08-04 18:33:20 -07:00
topjohnwu
eb5ce5be1e
Fix saving logs
...
Fix #1722
2019-08-04 14:17:01 -07:00
topjohnwu
71d855e836
Cleanup more code
2019-08-04 13:47:14 -07:00
topjohnwu
33b7ab593c
Migrate PatchAPK to Kotlin
2019-08-04 13:00:27 -07:00
topjohnwu
7cfab33ebb
Make sure DownloadService always start with app context
2019-08-02 01:21:22 -07:00
topjohnwu
1ababc8c7f
RepoDB does not need to run on main thread
2019-08-02 01:20:16 -07:00
topjohnwu
1f75e63c37
Fix crashes in MarkdownWindow
...
Fix #1628
2019-08-02 01:16:04 -07:00
topjohnwu
cb3f9b9740
More tweaking to Rx pipeline
2019-08-01 23:08:58 -07:00
topjohnwu
9784353223
Fix ActivityTracker
...
Koin does not support nullable types
2019-07-29 04:18:05 -07:00
topjohnwu
7d93ca5c73
Modernize MagiskInstaller
2019-07-29 04:05:54 -07:00
topjohnwu
ac20063e86
Disable cache for Magisk Manager
2019-07-29 03:56:35 -07:00
topjohnwu
debaec32af
Remove old download progress update system
2019-07-29 00:42:53 -07:00
topjohnwu
0e9b71e7a9
Show notification on error
2019-07-29 00:37:01 -07:00
topjohnwu
85f5ff3c14
Download Magisk Manager via new service
2019-07-29 00:26:18 -07:00
topjohnwu
c15f80b33f
Improve Rx pipeline
2019-07-28 14:49:06 -07:00
topjohnwu
b2e6ba3c4a
Move no thanks from dialogs
2019-07-28 03:54:46 -07:00
topjohnwu
b16f696b0e
Cleanups
2019-07-28 03:47:07 -07:00
topjohnwu
9adfb382e8
Only launch FlashActivity if app is foreground
2019-07-28 03:38:27 -07:00
topjohnwu
44368383f4
Fix fetching repo ordering
2019-07-28 02:21:55 -07:00
topjohnwu
d1ff7e0ffe
Move extensions to its own package
2019-07-28 02:10:22 -07:00
topjohnwu
42e7db8d13
Modernize Repo class for Magisk modules
...
- Use Kotlin
- Use Room database
- Use retrofit for networking
- Use RxJava pipeline for repo updating
2019-07-28 01:54:34 -07:00
topjohnwu
0c17ea5755
Migrate Magisk Modules to Kotlin
2019-07-27 15:46:44 -07:00
topjohnwu
cdaff5b39c
Update module download pipeline
2019-07-26 02:26:02 -07:00
topjohnwu
0aebc0a8e3
Use new service to download uninstall.zip
2019-07-25 03:10:24 -07:00
topjohnwu
c3a89f589e
Download to proper filename
2019-07-25 01:54:42 -07:00
topjohnwu
971cd73fb3
Dismiss notification on error
2019-07-25 01:37:47 -07:00
topjohnwu
1947860d61
Dismiss notification after flashing
2019-07-25 01:05:06 -07:00
topjohnwu
55aaa421e8
Directly download to target location
2019-07-23 01:31:59 -07:00
topjohnwu
a8932706d8
Consolidate Magisk download subject
2019-07-23 00:55:12 -07:00
topjohnwu
a97972aac0
Update notification once per second
2019-07-23 00:33:28 -07:00
topjohnwu
094c3d559a
Minor fixes and cleanups
2019-07-22 01:49:21 -07:00
topjohnwu
6fb032b3c2
Clean ups
2019-07-20 22:37:34 -07:00
topjohnwu
8ca188f4d4
Stream and process module zips
2019-07-20 21:04:06 -07:00
topjohnwu
746a1d8d59
Directly download to magisk.zip for flashing
2019-07-20 14:57:03 -07:00
Viktor De Pasquale
f6045bf8b5
Added custom dialog for download location only
2019-07-20 14:57:03 -07:00
Viktor De Pasquale
e83f40d5c5
Added actions for opening files in the file browser
...
No icons are added at this time, so crashes might occur
2019-07-20 14:57:03 -07:00
Viktor De Pasquale
e5118418b2
Added option to have custom download location
...
The location is automatically added to list of supported paths for caching
2019-07-20 14:57:03 -07:00
Viktor De Pasquale
7cd814d917
Updated service to use extra transformer so the service itself is not plagued by unnecessary code
2019-07-20 14:57:03 -07:00
Viktor De Pasquale
78282c1a49
Removed unused entry
2019-07-20 14:57:03 -07:00
Viktor De Pasquale
fd4214ccf3
Fixed minor bugs regarding notification cancellation
2019-07-20 14:57:03 -07:00
Viktor De Pasquale
0785945635
Added appending installers to modules
2019-07-20 14:57:03 -07:00
Viktor De Pasquale
967bdeae7b
Updated service architecture and extracted useful tools to separate class
2019-07-20 14:57:03 -07:00
Viktor De Pasquale
452db51669
Updated flash location so it's one layer deeper preventing accidental cache deletion
2019-07-20 14:57:03 -07:00
Viktor De Pasquale
5875ced367
Fixed launching activities on newer systems
2019-07-20 14:57:03 -07:00
Viktor De Pasquale
fbac6bcfd0
Fixed substrate handling multiple downloads at once
2019-07-20 14:57:03 -07:00
Viktor De Pasquale
0dcd3ece9d
Updated downloading modules
2019-07-20 14:57:03 -07:00
Viktor De Pasquale
224fff89e3
Updated object usage for module subjects
2019-07-20 14:57:03 -07:00
Viktor De Pasquale
22e73644f9
Added option to run service in foreground right away
2019-07-20 14:57:03 -07:00
Viktor De Pasquale
6a0f6ab319
Updated magisk installer so it uses predownloaded file
2019-07-20 14:57:03 -07:00
Viktor De Pasquale
88a394836f
Replaced all install methods with the download service
2019-07-20 14:57:03 -07:00
Viktor De Pasquale
f822c1c2e4
Added default to flash configuration
2019-07-20 14:57:03 -07:00
Viktor De Pasquale
1d16d980b3
Added second slot flashing capability
2019-07-20 14:57:03 -07:00
Viktor De Pasquale
501b18f986
Added default value to magisk subject
2019-07-20 14:57:03 -07:00
Viktor De Pasquale
21ed759e53
Removed duplicate helper
2019-07-20 14:57:03 -07:00
Viktor De Pasquale
8d50dfd93c
Fixed overwriting file in download mode
...
Added prevention of copying itself to itself
2019-07-20 14:57:03 -07:00
Viktor De Pasquale
51e40dd98c
Fixed crashes caused by file exposure beyond app bounds
2019-07-20 14:57:03 -07:00
Viktor De Pasquale
b2048379af
Fixed uris so in case there's no additional the data one (with zips) is selected instead
2019-07-20 14:57:03 -07:00
Viktor De Pasquale
011539f6f1
Added permission requirements for using service
2019-07-20 14:57:03 -07:00
Viktor De Pasquale
5457c3803f
Added remaining methods of installation/flashing/uninstall to service
...
Updated parameters of patching step and fixed new ordered flashing format
2019-07-20 14:57:03 -07:00
Viktor De Pasquale
b3d777bb6c
Updated configuration to hold data when necessary
2019-07-20 14:57:03 -07:00
Viktor De Pasquale
12e00c3054
Updated method naming scheme
...
Added new configurations
Added flashing methods and annotated viewModel's uri as deprecated in function
2019-07-20 14:57:03 -07:00
Viktor De Pasquale
9542ca773f
Added new CompoundDownloadService which will encapsulate all downloads and should manage post-download events as well
...
As of now it's still in a development stage and isn't connected to anything
2019-07-20 14:57:03 -07:00
Viktor De Pasquale
8af832a496
Added several calls to FlashActivity so it manages its launch parameters by itself
...
Its reach will be deepened further in the future commits
2019-07-20 14:57:03 -07:00
Viktor De Pasquale
6836130fda
Added overloaded method call for progress notification so it accepts foreign context
2019-07-20 14:57:03 -07:00
Viktor De Pasquale
724893879f
Added option to intercept progress while copying files
2019-07-20 14:57:03 -07:00
Viktor De Pasquale
188ea2644a
Updated downloading magisk to pull the zip from cache if eligible
2019-07-08 11:40:02 -07:00
osm0sis
b1e63f0f14
Manager: fix ModulesFragment reboot menu
...
- correct 'booloader' typo breaking bootloader entry
- remove extra bootloader entry Shell.su line which is unnecessary since it's covered by reboot()
- revert to using `reboot recovery` for recovery entry since `svc power reboot recovery` triggers a very disconcerting "Factory data reset" reboot dialog on many devices
- add Reboot to EDL mode option for good measure
2019-06-27 04:09:41 -04:00
Viktor De Pasquale
5dd677756f
Fixed multiple fetch tasks running at once
...
Disposing wouldn't help since the shell doesn't appear to handle concurrency well
2019-06-21 00:36:37 -07:00
Viktor De Pasquale
b77c590910
Fixed the searchView being collapsed after searching through it
...
Now they have their state synced with viewModel to allow continuity
2019-06-21 00:36:37 -07:00
Viktor De Pasquale
7e5f2822ae
Fix superuser fragment crashes
...
Fix superuser screen encountering inconsistencies when refreshing the data rapidly
2019-06-21 00:36:01 -07:00
topjohnwu
bf9ac8252b
Cleanup UpdateInfo
2019-06-16 16:47:30 -07:00
topjohnwu
4a3f5dc619
Cleanups
2019-06-16 14:35:51 -07:00
Viktor De Pasquale
ca156befbd
Fixed mapping generic pairs to policy crashing when no policy is found
...
The policy (app) is now deleted when found invalid (uninstalled)
2019-06-16 16:50:08 -04:00
Viktor De Pasquale
4db41e2ac4
Added attempted fix for parsing data off default thread
2019-06-16 16:50:08 -04:00
Viktor De Pasquale
982a43fce1
Moved diff computation of policy list to the background thread
2019-06-16 16:50:08 -04:00
Viktor De Pasquale
dd76a74e1c
Fixed fast scroll button crashing while scrolling to undefined position
2019-06-16 16:50:08 -04:00
Viktor De Pasquale
074b1f8c61
Added one-click scroll to the bottom
2019-06-12 16:08:02 +02:00
topjohnwu
326eee8c83
Migrate a lot of classes to Kotlin
2019-06-12 03:29:38 -07:00
topjohnwu
00bff4912e
Use svc for reboot if feasible
...
Close #1488
2019-06-12 00:55:21 -07:00
Viktor De Pasquale
0ce1720516
Fixed magisk log screen lines having multiple lines
2019-06-11 21:52:03 -07:00
topjohnwu
1d54c5144e
Fix background update checks
2019-06-10 21:25:42 -07:00
topjohnwu
7756e10779
Rewrite configs with Kotlin delagate properties
2019-06-10 04:37:56 -07:00
topjohnwu
3e58d502d0
Update SettingsFragment to Kotlin
2019-06-09 03:04:37 -07:00
topjohnwu
1c8846dc57
Make PreferenceModel an interface
2019-06-08 16:30:12 -07:00
topjohnwu
2f320c7239
Update ClassMap
2019-06-08 15:34:15 -07:00
topjohnwu
e799918ab6
Update update check service
2019-06-08 15:28:59 -07:00
topjohnwu
86c4928e0f
Fix locale settings
...
AppCompatActivity changed its impl again...
2019-06-08 02:11:10 -07:00
topjohnwu
0293eb5c51
Never refetch magisk version dynamically
2019-06-08 01:44:02 -07:00
topjohnwu
1ee75b6aa6
Download snet package without legacy impl
2019-06-08 01:39:22 -07:00
topjohnwu
4b30b224b5
Remove separate constant class
2019-06-08 00:41:03 -07:00
topjohnwu
16b232d2a3
Enable okhttp logging in debug only
2019-06-07 02:03:17 -07:00
topjohnwu
3f3b1f5b1d
Sort policy with app name
2019-06-07 01:24:54 -07:00
topjohnwu
cec017b7bf
More MagidkDB fixes
2019-06-07 01:05:54 -07:00
topjohnwu
caa9df86bc
Switch to R8 friendly room-runtime
2019-06-07 00:17:00 -07:00
topjohnwu
f417389a7a
Fix magisk database code in app
2019-06-06 00:39:24 -07:00
Viktor De Pasquale
d1dfda405f
Removed Kotpref and replaced it with PreferenceModel
2019-06-04 00:59:57 -07:00
topjohnwu
80d834fb55
Use kotshi instead of moshi-kotlin-codegen
2019-06-01 13:18:11 -07:00
topjohnwu
4122ebe18f
Remove unused Room database code
2019-06-01 02:20:40 -07:00
topjohnwu
4a73d634e0
Tidy things up
2019-05-31 21:46:59 -07:00
topjohnwu
373dc10a40
Use moshi code-gen
2019-05-31 21:46:42 -07:00
Ian Macdonald
ed43ec8ea2
Populate Config variables based on update channel parameters.
...
With thanks to @diareuse.
2019-05-31 20:48:21 -07:00
topjohnwu
c0d1ce96d1
Cleanup
2019-05-30 01:05:48 -07:00
topjohnwu
b31d3802eb
Properly force refresh
2019-05-29 23:45:18 -07:00
Viktor De Pasquale
be1228c3b4
Reverted removing UpdateRepos temporarily
2019-05-29 18:40:16 +02:00
Viktor De Pasquale
f392afe87f
Added error message in case Markdown window fails to load
2019-05-25 19:20:36 +02:00
Viktor De Pasquale
6a243ec7bc
Fixed inconsistent displaying of repos and improved their sorting
2019-05-25 18:09:45 +02:00
Viktor De Pasquale
8cd3b603df
Fixed cached repos not being ordered by settings
2019-05-25 18:03:32 +02:00
Viktor De Pasquale
6e1aefe6d8
Added feature that prevents repositories from being downloaded every single time that user requests to show Module/Download fragment unless requested by user
2019-05-25 16:42:34 +02:00
Viktor De Pasquale
1c90b6eca3
Fixed notification popping up every time update is scheduled
2019-05-25 16:33:55 +02:00
Viktor De Pasquale
c33cf9f878
Fixed stable channel asking for custom URL when previously selected
2019-05-25 16:15:08 +02:00
Viktor De Pasquale
4fd0fe3194
Fixed repo not being correctly marked as jsonclass hence it crashed when fetching obfuscated
2019-05-24 15:51:18 +02:00
Viktor De Pasquale
cc74593ddd
Removed useless constructor parameter from home vm
2019-05-24 15:50:20 +02:00
Viktor De Pasquale
77470c7cfa
Updated koin
2019-05-24 12:28:57 +02:00
Viktor De Pasquale
f0a734fdab
Fixed clearing cache crashing due to operations on main thread
2019-05-24 12:28:40 +02:00
Viktor De Pasquale
076e5cea3b
Fixed selection not persisting throughout root requests
2019-05-23 20:01:47 +02:00
Viktor De Pasquale
8515971ccf
Fixed deleting "one-time" root requests whilst removing outdated
2019-05-23 19:18:16 +02:00
Viktor De Pasquale
d86fb033ea
Fixed conditions being inaccurately represented
2019-05-23 19:17:41 +02:00
Viktor De Pasquale
df78fd2d41
Fixed setting custom channels and switching between official ones being broken
2019-05-23 18:11:23 +02:00
Viktor De Pasquale
dabe6267b9
Fixed error that prevented flashing
2019-05-23 16:50:31 +02:00
Viktor De Pasquale
0119ebddbe
Added back clearing repository cache
2019-05-23 15:28:05 +02:00
Viktor De Pasquale
80855e89ec
Merge remote-tracking branch 'john/master' into development
...
# Conflicts:
# app/build.gradle
# app/src/main/java/com/topjohnwu/magisk/model/receiver/GeneralReceiver.kt
# app/src/main/java/com/topjohnwu/magisk/ui/hide/HideViewModel.kt
# app/src/main/java/com/topjohnwu/magisk/ui/home/HomeViewModel.kt
2019-05-13 16:50:08 +02:00
Viktor De Pasquale
0850401dc4
Fixed crash where new application asks for root access
2019-05-13 15:56:27 +02:00
Viktor De Pasquale
337fda2023
Removed unnecessary classes
2019-05-13 15:41:46 +02:00
Viktor De Pasquale
64f238191e
Converted constants to kotlin
2019-05-13 15:39:33 +02:00
Viktor De Pasquale
eb169cb133
Converted classmap to kotlin
2019-05-13 15:34:53 +02:00
topjohnwu
80cd85b061
Try to use broadcast for su logging and notify
...
In commit 8d4c407
, native Magisk always launches an activity for
communicating with Magisk Manager. While this works extremely well,
since it also workaround stupid OEMs that blocks broadcasts, it has a
problem: launching an activity will claim the focus of the device,
which could be super annoying in some circumstances.
This commit adds a new feature to run a broadcast test on boot complete.
If Magisk Manager successfully receives the broadcast, it will toggle
a setting in magiskd so all future su loggings and notifies will always
use broadcasts instead of launching activities.
Fix #1412
2019-05-13 02:01:10 -07:00
Viktor De Pasquale
92789c3113
Added caching repositories to device
2019-05-12 20:21:55 +02:00
Viktor De Pasquale
c1c677e161
Removed old database helper
2019-05-12 19:45:07 +02:00
Viktor De Pasquale
2fe917ff82
Fixed updating values with sql
2019-05-12 19:42:05 +02:00
Viktor De Pasquale
0e6c205732
Fixed snackbar for changed su states being incorrect
2019-05-12 18:56:42 +02:00
Viktor De Pasquale
125ae0a173
Fixed conditions in sql queries
2019-05-12 18:34:28 +02:00
Viktor De Pasquale
0245e13591
Removed usage of old database object
2019-05-12 18:00:58 +02:00
Viktor De Pasquale
d546733287
Removed direct static usages of database from app
2019-05-12 17:25:26 +02:00
Viktor De Pasquale
c275326d59
Removed direct static usages of database from app
2019-05-12 16:56:56 +02:00
Viktor De Pasquale
d4561507b8
Raised deprecation level on old database
2019-05-12 14:37:24 +02:00
topjohnwu
62db65bf18
Reset SafetyNet status on refresh
2019-05-11 01:55:44 -07:00
topjohnwu
d5371f752c
Sort hide targets by app name
2019-05-11 01:53:37 -07:00
topjohnwu
a5f5e94115
Always reload string from resource
2019-05-11 01:50:01 -07:00
Viktor De Pasquale
2624706c69
Added missing repositories
2019-05-10 19:13:15 +02:00
Viktor De Pasquale
d39d885ec2
Removed repo db helper
2019-05-10 18:21:07 +02:00
Viktor De Pasquale
d83c744725
Replaced base settings fragment by its kotlin counterpart
2019-05-10 17:54:24 +02:00
Viktor De Pasquale
843995cdb9
Removed Event for good
...
http://bit.ly/2Ymrm61
2019-05-10 17:34:53 +02:00
Viktor De Pasquale
9491ba77e0
Removed locale manager loading languages in advance
...
Instead they are loaded on demand
2019-05-10 17:30:25 +02:00
Viktor De Pasquale
58a449d437
Merge branch 'remote-master' into development
...
# Conflicts:
# app/src/main/java/com/topjohnwu/magisk/di/ViewModelsModule.kt
# app/src/main/java/com/topjohnwu/magisk/ui/home/HomeViewModel.kt
# app/src/main/java/com/topjohnwu/magisk/utils/XString.kt
2019-05-10 16:43:37 +02:00
Viktor De Pasquale
7f55e0f05b
Fixed picking up wrong locale for dates
2019-05-10 16:41:31 +02:00
Viktor De Pasquale
67c3f40adb
Fixed language won't change in certain views unless app restarts
2019-05-10 16:22:03 +02:00
topjohnwu
ff7a0ba599
Force apply preferred locale in applyOverrideConfiguration
...
Close #1442
2019-05-10 00:19:28 -07:00
Viktor De Pasquale
21be2f46f3
Moved fetch/toggle logic for hiding to repo
...
Fixed sorting
2019-05-09 18:21:38 +02:00
Viktor De Pasquale
a6e7680212
Fixed logs being bugged down by unreliable code
2019-05-09 17:38:13 +02:00
Viktor De Pasquale
e79e744e08
Fixed magisk db not returning stuff due to bad syntax
2019-05-09 17:13:02 +02:00
Viktor De Pasquale
7abdac72a4
Replaced log calls from magiskdb to repo
2019-05-09 17:01:34 +02:00
Viktor De Pasquale
90d85eaf7d
Removed update repos as it can be done via repository
2019-05-09 15:56:06 +02:00
Viktor De Pasquale
7538f89b56
Removed unnecessary calls from splash
2019-05-07 15:45:27 +02:00
Viktor De Pasquale
7c755a3991
Removed events from modules / replaced with retrofit/rx
2019-05-07 15:41:56 +02:00
Viktor De Pasquale
10e903c9fc
Added direct fetch from network and fixed build issues
2019-05-06 20:12:31 +02:00
Viktor De Pasquale
b018124226
Added (ported back) features from initial design [retrofit,moshi,kotpref]
...
Marked most of the old classes using Networking as deprecated to clearly visualise their future removal
2019-05-06 19:03:28 +02:00
Viktor De Pasquale
0167bd76f1
Removed unnecessary overriding of observable list and replaced it copy function within observable changed callback
2019-05-05 11:33:17 -07:00
Viktor De Pasquale
79d704008b
Fixed rewritten java code being java-styled in kotlin
...
Fixed accessing kotlin code illegally via companion helper
2019-05-05 11:33:17 -07:00
Viktor De Pasquale
0a703585b0
Fixed items in navView not being checked
2019-05-05 11:33:17 -07:00
Viktor De Pasquale
5d632d0d90
Removed unnecessary overriding of observable list and replaced it copy function within observable changed callback
2019-05-05 12:46:28 +02:00
Viktor De Pasquale
4eecaea601
Fixed rewritten java code being java-styled in kotlin
...
Fixed accessing kotlin code illegally via companion helper
2019-05-05 12:17:32 +02:00
Viktor De Pasquale
63055818ec
Fixed items in navView not being checked
2019-05-05 11:50:27 +02:00
topjohnwu
a0cfce7cbc
Rewrite FlashZip in Kotlin
2019-05-03 04:42:57 -04:00
topjohnwu
8b7144c986
Rewrite ZipUtils in Kotlin
2019-05-03 04:10:27 -04:00
topjohnwu
d3f5f5ee59
Rewrite RootUtils in Kotlin
2019-05-03 03:36:39 -04:00
topjohnwu
a2a3c7f438
Collect both STDOUT and STDERR for logs
2019-05-03 02:05:51 -04:00
Viktor De Pasquale
4496f82d5b
Added scrolling to latest items while flashing
...
Since the adapter might be set _after_ the request, as there is no guaranteed order, it's done with waiting recursion yuck
2019-05-03 00:50:46 -04:00
Viktor De Pasquale
09d531557d
Fixed requesting permissions off main thread
2019-05-03 00:50:46 -04:00
Viktor De Pasquale
7fee82f731
Fixed shell long dumping to UI
2019-05-03 00:50:46 -04:00
Viktor De Pasquale
475054c48a
Fixed backpress not working
2019-05-03 00:50:46 -04:00
topjohnwu
d1ed502e03
Multidex debug only
2019-05-02 14:06:08 -04:00
topjohnwu
b25c49725f
Sort hidden items on the top
2019-05-02 06:38:42 -04:00
topjohnwu
b245782c7e
Always show hidden apps
2019-05-02 06:16:58 -04:00
topjohnwu
88c4f72b37
Remove Butterknife
2019-05-02 04:06:59 -04:00
topjohnwu
abbcdf91a5
Remove SafetyNet.java
2019-05-02 03:45:15 -04:00
topjohnwu
4bb81f35d7
Rename MagiskFragment to HomeFragment
2019-05-02 03:21:46 -04:00
topjohnwu
ff20267b3f
Remove redundent classes
2019-05-02 02:42:00 -04:00
topjohnwu
2813d2031a
Merge branch 'WIP'
2019-05-02 02:03:20 -04:00
topjohnwu
0893ac3141
No more old module exists
2019-05-01 01:23:07 -04:00
Viktor De Pasquale
db218407b0
Fixed wrong link for github source
2019-04-27 12:13:30 +02:00
Viktor De Pasquale
d52210dd90
(Re)Added animations and shortcut endpoints
...
Fixed first backpress closing the app instead of showing default fragment
2019-04-27 12:09:49 +02:00
Viktor De Pasquale
f3cd9a096a
Removed old Base[Activity/Fragment]
2019-04-27 11:49:25 +02:00
Viktor De Pasquale
e426090a18
Fixed checkboxes on homescreen not writing values to static fields
2019-04-27 11:43:55 +02:00
Viktor De Pasquale
cbe64fd559
Removed unnecessary assets
2019-04-27 11:38:31 +02:00
Viktor De Pasquale
a9b00dd537
Updated deprecation statements and moved components init after attaching base context
...
This needed to be done in order to get the Koin working as it requires injection before calling onCreate
2019-04-27 11:27:42 +02:00
Viktor De Pasquale
52eb059515
Fixed items in superuser not disappearing when deleted
2019-04-26 21:29:13 +02:00
Viktor De Pasquale
52c83b2916
Updated su screen with new arch
...
Added new Dialog for further use
2019-04-26 21:23:58 +02:00
Viktor De Pasquale
750c42caf1
Added annotations for marking code with it's current state
2019-04-26 19:33:42 +02:00
Viktor De Pasquale
14ff22fbcd
Updated flash screen with new arch
2019-04-24 20:28:41 +02:00
Viktor De Pasquale
07eb7dda2d
Added permission request event
2019-04-24 19:34:40 +02:00
Viktor De Pasquale
d4058175b4
Fixed list query not being disposed so it could occasionally crash due to several changes rewriting each other
2019-04-22 18:28:40 +02:00
Viktor De Pasquale
2de984ae24
Added division of the modules section to updatable, installed and not installed
2019-04-22 18:20:23 +02:00
Viktor De Pasquale
6df7006b36
Cleaned up unnecessary classes
2019-04-22 17:03:21 +02:00
Viktor De Pasquale
aceb3ee863
Rewritten flashing internal modules to model
...
This is done in an effort to separate flash activity to smaller pieces.
2019-04-22 16:59:59 +02:00
Viktor De Pasquale
11d716a3c8
Updated splash screen with new arch
2019-04-22 16:00:48 +02:00
Viktor De Pasquale
7cc8c014eb
Updated log screen with new arch
2019-04-22 14:11:41 +02:00
Viktor De Pasquale
a181fa0652
Fixed updating lists being to heavy for the UI thread
...
Moved list diff recalculation to the computing thread instead
2019-04-22 09:30:38 +02:00
Viktor De Pasquale
3f748b4d2a
Fixed search in magisk hide not being case insensitive
2019-04-22 08:58:23 +02:00
Viktor De Pasquale
683450f9c6
Added search functionality to repos (downloads)
2019-04-22 08:57:32 +02:00
Viktor De Pasquale
adbd47a36c
Updated modules and repos screen
...
Screens are merged via common viewModel, all data are immediately accessible to both of them
2019-04-20 23:44:08 +02:00
Viktor De Pasquale
ce693aa5e9
Updated policy items so listeners are not indirectly set to them and kept out of the instance of the parent object
2019-04-19 19:22:18 +02:00
Viktor De Pasquale
ad80804461
Cleaned up usage of rx subscribers
2019-04-19 16:43:44 +02:00
Viktor De Pasquale
2d55632430
Merge remote-tracking branch 'john/WIP' into development
...
# Conflicts:
# gradle/wrapper/gradle-wrapper.properties
2019-04-19 16:34:15 +02:00
Viktor De Pasquale
e81f00ef1a
Updated Hide screen with new arch
2019-04-19 16:32:01 +02:00
topjohnwu
71ce0de606
Make debug buildable
2019-04-19 02:11:22 -04:00
Viktor De Pasquale
f76015d714
Fixed options menus appearing on screens that they shouldn't
2019-04-18 16:00:54 +02:00
Viktor De Pasquale
7e5e14163c
Fixed titles not setting to activity toolbar
2019-04-18 15:51:02 +02:00
Viktor De Pasquale
bcd1064e94
Updated superuser fragment to new arch
...
Fixed theme issues along the way
2019-04-17 18:27:03 +02:00
Viktor De Pasquale
8a8441c875
Added failure callback to fingerprint dialog
2019-04-17 18:20:53 +02:00
Viktor De Pasquale
15aa813416
Migrated to compat shared prefs and fixed it not reacting to changes
...
Added back dark theme
2019-04-17 14:03:25 +02:00
Viktor De Pasquale
605faccffd
Merge remote-tracking branch 'john/master' into development
...
# Conflicts:
# app/build.gradle
# app/src/main/java/com/topjohnwu/magisk/App.java
# app/src/main/java/com/topjohnwu/magisk/model/adapters/ReposAdapter.java
# app/src/main/java/com/topjohnwu/magisk/model/update/UpdateCheckService.java
# app/src/main/java/com/topjohnwu/magisk/ui/MainActivity.java
# app/src/main/java/com/topjohnwu/magisk/ui/SplashActivity.java
# app/src/main/java/com/topjohnwu/magisk/ui/flash/FlashActivity.java
# app/src/main/java/com/topjohnwu/magisk/ui/home/MagiskFragment.java
# app/src/main/java/com/topjohnwu/magisk/ui/log/LogFragment.java
# app/src/main/java/com/topjohnwu/magisk/ui/surequest/SuRequestActivity.java
# app/src/main/java/com/topjohnwu/magisk/utils/ValueSortedMap.java
# app/src/main/java/com/topjohnwu/magisk/view/dialogs/InstallMethodDialog.java
# app/src/main/java/com/topjohnwu/magisk/view/dialogs/MagiskInstallDialog.java
# app/src/main/java/com/topjohnwu/magisk/view/dialogs/ManagerInstallDialog.java
# build.gradle
2019-04-16 19:40:34 +02:00
Viktor De Pasquale
79f2d08c81
Fixed new fragment not clearing menu in toolbar
2019-04-16 19:26:53 +02:00
Viktor De Pasquale
0568ae5391
Fixed dependencies on old base
2019-04-16 19:21:20 +02:00
Viktor De Pasquale
5330dda9f8
Removed redundant casts
2019-04-16 19:03:52 +02:00
Viktor De Pasquale
ebab126579
Replaced xml navigation with self-handled
2019-04-16 19:00:32 +02:00
Viktor De Pasquale
9a968e0584
Added leanback activity that implements several functions which custom dialogs depend on
2019-04-15 20:26:22 +02:00
Viktor De Pasquale
ffec64d209
Added safetynet to the rewritten home fragment
2019-04-15 19:48:07 +02:00
Viktor De Pasquale
f332746188
Fixed current version showing null when magisk is not installed
2019-04-15 15:57:23 +02:00
Viktor De Pasquale
b2fa5b551e
Added hiding of UI elements when no root access is detected
2019-04-14 13:17:51 +02:00
Viktor De Pasquale
6b045eadef
Added env fix prompt
2019-04-14 12:55:03 +02:00
Viktor De Pasquale
147264822c
Fixed leaking base instance to the event listener
2019-04-14 12:29:07 +02:00
Viktor De Pasquale
796c16237d
Fixed same events not being able to propagate consecutively
2019-04-14 12:21:04 +02:00
Viktor De Pasquale
861ad9881c
Updated design of the front page (with removed cards and added dividers)
...
Also updated material library and injected backported styles which were incompatible with the current UI for the most part and as it was over-carded all cards were removed and replaced with flat UI components.
This change is temporary and *will* be redone to the final redesign, in other words this is sufficient for the transition period.
All themers should refrain from trying to theme the app until the redesign is done. It will break your efforts with every other release.
2019-04-14 11:51:47 +02:00
Viktor De Pasquale
9bb4dfad13
Added back version checking (and version boxes) after transitioning homepage to MVVM
...
Fixed several errors caused along the way
2019-04-14 11:00:29 +02:00
Viktor De Pasquale
bd00ae8ede
Updated Magisk fragment to Kotlin
...
Exported old update card to special xml include where binding takes care of everything that had to be done in code beforehand.
Added several easing functions and enums.
Backported some classes and functions from the old fork
Expect major breakage. Literally nothing works as the functionality needs to be implemented
2019-04-13 00:14:37 +02:00
topjohnwu
a6395d35db
Refactor with AS 3.5
2019-04-12 01:58:42 -04:00
Viktor De Pasquale
a028cd5cec
Updated locations of nearly all files
...
This has been done in preparations for rewrite to kotlin and upcoming design changes.
Nothing should be broken but use caution.
2019-04-12 01:44:55 -04:00
Viktor De Pasquale
0efaddff23
Added binding between navigation view and navigation components
...
Removed bunch of code focusing on the hamburger not being stationary
2019-04-11 21:17:54 +02:00
Viktor De Pasquale
94ba7cb0c5
Added navigation endpoints
2019-04-11 20:10:14 +02:00
Viktor De Pasquale
2d58c725e0
Added koin, databinding and navigation components
...
Converted App class and Main activity to Kotlin. With that refactored fields within App class to allow lazy initialization
BEWARE: at this point the navigation is very much broken, won't let you anywhere beyond home screen
2019-04-11 20:01:49 +02:00
Viktor De Pasquale
bea5308ab7
Updated locations of nearly all files
...
This has been done in preparations for rewrite to kotlin and upcoming design changes.
Nothing should be broken but use caution.
2019-04-11 18:03:23 +02:00
topjohnwu
8d4c407201
Directly communicate with Activity
...
Since Android Q does not allow launching activities from the background
(Services/BroadcastReceivers) and our native process is root, directly
launch activities and use it for communication between native and app.
The target activity is not exported, so non-root apps cannot send an
intent to fool Magisk Manager. This is as safe as the previous
implementation, which uses protected system broadcasts.
This also workaround broadcast limitations in many ROMs (especially
in Chinese ROMs) which blocks the su request dialog if the app is
frozen/force stopped by the system.
Close #1326
2019-04-10 23:35:31 -04:00
topjohnwu
53c5ca59b6
Cleanup SuLogger
2019-04-10 18:09:41 -04:00
topjohnwu
679db97209
Always run su requests in new tasks
2019-04-10 18:05:19 -04:00
topjohnwu
fbdd72273e
Restructure SuRequestActivity
2019-04-10 17:02:32 -04:00
topjohnwu
0165602515
More cleanups
2019-04-10 13:54:33 -04:00
topjohnwu
96127f8bd1
Lock orientation in SuRequestActivity
...
Fix #1302 , close #1318
2019-04-10 05:36:02 -04:00
topjohnwu
48879df2da
Some cleanups
2019-04-10 05:15:20 -04:00
topjohnwu
b067a5bb13
Use root to launch su request Activity on Q
2019-04-10 05:03:26 -04:00
topjohnwu
6128c24f96
Drastically improve module download service
2019-04-10 02:00:48 -04:00
topjohnwu
e0424fdba3
Remove patch format options
...
Output format will be the same as input
2019-04-09 04:37:34 -04:00
topjohnwu
7219947237
Update libsu
...
Close #1314
2019-04-08 21:05:11 -04:00
topjohnwu
b72004e9cc
Move methods
2019-04-08 17:35:32 -04:00
topjohnwu
f187213568
Run update check service only in background
2019-04-08 17:35:32 -04:00
topjohnwu
fc0df84edd
Keep track of foreground activity
2019-04-08 17:35:32 -04:00
topjohnwu
da3937ff4e
Reboot after env_fix
2019-04-06 01:56:47 -04:00
topjohnwu
ced9b4a8ee
Default to beta channel if detected
2019-04-05 20:48:19 -04:00
topjohnwu
c10b376575
Support patching full ODIN firmware
2019-04-04 07:27:43 -04:00
topjohnwu
ceb21ced2b
Small changes
2019-04-04 02:30:03 -04:00
topjohnwu
036b5acf42
Update Markwon to 3.0.0
2019-04-02 23:58:19 -04:00
topjohnwu
a9c90718d6
Update some dependencies
2019-04-02 01:50:25 -04:00
topjohnwu
1cd45b53b1
Support recovery based Magisk
...
Some devices (mainly new Samsung phones we're talking here...) using
A only system-as-root refuse to load ramdisk when booted with boot
no matter what we do. With many A only system-as-root devices, even
though their boot image is kernel only, we can still be able to add
a ramdisk section into the image and force the kernel to use it as
rootfs. However the bootloader on devices like the S10 simply does
not load anything within boot image into memory other than the kernel.
This gives as the only option is to install Magisk on the recovery
partition. This commits adds proper support for these kind of scenarios.
2019-03-30 00:49:48 -04:00
topjohnwu
d22c7de79a
Don't care minMagiskVersion
...
It will be sanitized by magiskbot anyways
2019-03-29 10:25:07 -04:00
topjohnwu
8049b08918
More precise new installer detection
2019-03-28 06:33:24 -04:00
topjohnwu
d08b1a6639
Remove com.google.android.gms from default list
...
It seems that even adding this to the list doesn't 100% works on all
devices out there, and some even reported crashes on several Google
services. Disable it for now and do further investigations in the future.
2019-03-27 21:33:04 -04:00
topjohnwu
10f50e2401
Revert to old behavior on old MagiskHide versions
2019-03-27 20:43:38 -04:00
topjohnwu
4859ee2da9
Inject module-installer.sh if new format is detected
2019-03-24 06:20:57 -04:00
topjohnwu
b45db44ad9
Update transitions
2019-03-24 04:29:09 -04:00
topjohnwu
e25ce63872
Remove AppUtils
2019-03-24 02:16:19 -04:00
topjohnwu
162eeaa0a6
Improve repo adapter
2019-03-24 02:02:34 -04:00
topjohnwu
f36ce905aa
Improve repo adapter
...
Fix #435
2019-03-23 23:18:26 -04:00
topjohnwu
8ac3aaf36c
Rename Topic -> Event
2019-03-23 21:58:42 -04:00
topjohnwu
f5f7fd9132
Add com.android.google gms to default hide list
...
Close #1235
2019-03-23 04:39:34 -04:00
topjohnwu
db06038548
Fix Magisk installation
2019-03-22 02:48:42 -04:00
topjohnwu
ecb33d3176
Cleanup scripts
2019-03-22 02:32:21 -04:00
topjohnwu
1d9359d563
Fix additional setup
2019-03-20 03:20:02 -04:00
topjohnwu
981e90cc32
Don't remove SafetyNet from hide list
2019-03-14 07:00:36 -04:00
topjohnwu
650b2ce6b1
Fix config bugs
2019-03-13 15:25:53 -04:00
topjohnwu
ecf3d30349
Only show expansion when necessary
2019-03-13 08:15:02 -04:00
topjohnwu
15ddd0e284
More MagiskHide list UI improvements
2019-03-13 07:49:12 -04:00
topjohnwu
18ac6b270f
Make Expandable more extensible
2019-03-13 06:12:02 -04:00
topjohnwu
3e35de9b39
Small UI improvements
2019-03-13 05:11:18 -04:00
topjohnwu
1e24c72c11
Use our own existing implementation
2019-03-13 01:37:35 -04:00
vvb2060
217564963d
New MagiskHide UI
2019-03-12 17:20:08 -04:00
topjohnwu
771e500468
Use dark theme by default
2019-03-11 07:39:01 -04:00