topjohnwu
70fd03d5fc
Rearchitect logging
2022-07-06 01:16:08 -07:00
topjohnwu
2e52875b50
Move all logging into Rust
2022-07-05 21:13:09 -07:00
topjohnwu
b4863eb51b
Setup logging infra in the Rust side
2022-07-01 04:54:00 -07:00
topjohnwu
2e51fe20a1
Move things to the correct location
2022-05-30 02:09:07 -07:00
topjohnwu
d0c4226997
Proper package state management
2022-05-29 23:31:57 -07:00
topjohnwu
490a784993
Handle zygote restarts
2022-05-28 22:39:44 -07:00
topjohnwu
351f0269ae
Install stub if necessary
2022-05-19 22:54:49 -07:00
topjohnwu
975b1a5e36
Prune unused UIDs from su policies
2022-05-18 01:55:58 -07:00
topjohnwu
9968af0785
Move all permission check into daemon.cpp
2022-03-01 03:15:38 -08:00
topjohnwu
be7586137c
Reduce C++ wizardry
2022-03-01 03:15:38 -08:00
LoveSy
7999b66c3c
Refactor daemon connection
2022-03-01 03:15:38 -08:00
topjohnwu
21d7db0959
Add new Zygisk API to get module dir
2022-01-14 03:10:02 -08:00
topjohnwu
ea75a09f95
Make zygisk survive zygote restarts
...
Close #4777
2021-10-27 01:53:16 -07:00
topjohnwu
8d0dc37ec0
Use SO_PEERSEC to get client secontext
2021-10-19 23:46:38 -07:00
topjohnwu
6f54c57647
Allow fork in thread pool
2021-10-17 04:24:25 -07:00
topjohnwu
c8ac6c07b0
Load Zygisk modules
2021-10-13 04:52:02 -07:00
topjohnwu
f1b6c9f4aa
Refresh uid_map on package.xml change
2021-09-20 04:42:06 -07:00
topjohnwu
3fb72a4d20
Support polling on multiple fds
2021-09-18 14:40:12 -07:00
topjohnwu
706a492218
Update denylist config implementation
2021-09-16 05:27:34 -07:00
topjohnwu
65b0ea792e
MagiskHide is no more
2021-09-12 12:40:34 -07:00
topjohnwu
4771c2810b
Significantly better AVD support
2021-08-26 03:09:56 -07:00
topjohnwu
171d68ca72
Connect to magiskd log daemon
2021-08-22 03:26:48 -07:00
topjohnwu
bade4f2c6a
Make xhook log as Magisk
2021-08-22 03:26:48 -07:00
topjohnwu
9b3efffba9
Use magiskd to setup files
2021-08-18 03:44:32 -07:00
topjohnwu
003fea52b1
Remove all non-Magisk hiding code
...
Magisk no longer interferes with any signals/info that were not created
or caused by Magisk itself.
2021-08-18 02:01:54 -07:00
topjohnwu
2b17c77195
Make Zygisk 1st class citizen
2021-08-17 23:57:49 -07:00
topjohnwu
20860da4b4
Cleaner daemon handlers
2021-08-11 22:57:08 -07:00
topjohnwu
e8ba671fc2
Guard all injection features behind a global flag
2021-01-13 20:07:23 -08:00
topjohnwu
9a28dd4f6e
Implement MagiskHide through code injection
2021-01-12 03:28:00 -08:00
topjohnwu
eb21c8b42e
Code cleanups
2021-01-11 02:19:10 -08:00
topjohnwu
f9bde347bc
Convert indentation to spaces
...
The tab war is lost
2020-12-30 22:11:24 -08:00
topjohnwu
086059ec30
Make sure boot stages are mutually exclusive
2020-12-15 03:40:37 -08:00
topjohnwu
dead74801d
Setup log file when manually starting daemon
2020-12-04 01:07:47 -08:00
topjohnwu
f152e8c33d
Directly log to log file
2020-12-03 20:15:18 -08:00
topjohnwu
d625beb7f3
Update --remove-modules
implementation
2020-10-11 18:30:03 -07:00
topjohnwu
6abd9aa8a4
Add new --install-module command
...
Close #2253
2020-09-26 16:50:41 -07:00
topjohnwu
4497e0aaca
Don't expose module_list
2020-05-18 05:36:02 -07:00
topjohnwu
c3e045e367
Use daemon state to determine late prop hiding
2020-05-18 05:21:47 -07:00
topjohnwu
501d3e6c32
Maintain global daemon status
2020-05-18 05:18:49 -07:00
topjohnwu
97db49a57b
Move vendor property manipulation to late start
2020-05-17 15:01:37 -07:00
topjohnwu
a5d7c41d20
Support Safe Mode detection
...
When detecting device is booting as Safe Mode, disable all modules and
MagiskHide and skip all operations. The only thing that'll be available
in this state is root (Magisk Manager will also be disabled by system).
Since the next normal boot will also have all modules disabled, this can
be used to rescue a device in the case when a rogue module causes
bootloop and no custom recovery is available (or recoveries without
the ability to decrypt data).
2020-05-08 00:45:11 -07:00
topjohnwu
5fd574a14f
Fix --remove-modules command
2020-04-30 01:27:48 -07:00
topjohnwu
a73e7e9f99
Introduce new module mount implementation
...
Rewrite the whole module mounting logic from scratch.
Even the algorithm is different compared to the old one.
This new design focuses on a few key points:
- Modular: Custom nodes can be injected into the mount tree.
It's the main reason for starting the rewrite (needed for Android 11)
- Efficient: Compared to the existing implementation, this is the most
efficient (both in terms of computation and memory usage) design I
currently can come up with.
- Accurate: The old mounting logic relies on handling specifically every
edge case I can think of. During this rewrite I actually found some
cases that the old design does not handle properly. This new design is
architected in a way (node types and its rankings) that it should
handle edge cases all by itself when constructing mount trees.
2020-04-18 02:00:48 -07:00
topjohnwu
e0a281583d
Preparation for dynamic tmpfs path
2020-04-12 05:34:56 -07:00
topjohnwu
a0998009c1
Small native code reorganization
2020-03-09 01:50:30 -07:00