topjohnwu
6dfe9df9e2
Run cargo fmt
2025-07-02 19:23:46 -07:00
Wang Han
7b2d40987c
Refactor magisk bins injection logic
...
Magisk binary mounting logic is not very clear now. In this commit, it
is rewritten in a more robust way. Now it has following cases in mind:
1) Device has a su binary, magisk need to overlay it
2) Choose the PATH with least files to reduce bind mount
3) Filter path which is not suitable
2025-07-01 02:16:16 -07:00
Wang Han
3a37e8c9c5
Don't clone attributes for magisk symlinks
...
This avoids use existing attributes for su, which will obviously break
magisk functions.
2025-07-01 02:16:16 -07:00
Wang Han
810174ef73
Ignore set_context() error if magisktmp is /sbin
...
recreate_sbin() will bind mount original files in /sbin to tmpfs /sbin,
so we have no choice but just log here to let the loop continue.
2025-06-30 17:39:54 -07:00
Wang Han
39f2940bd1
Skip symlink in restore_tmpcon()
...
If magisktmp is /sbin, there may exist files which is symlink to files in
root dir. As root is RO, setcontext will fail and break iterating loop.
2025-06-16 11:09:33 -07:00
topjohnwu
1460317ebd
Cleanup C++ headers
2025-06-16 02:25:38 -07:00
topjohnwu
b36066bbcd
Run clippy fix
2025-06-10 16:34:38 -07:00
topjohnwu
65d1c5827c
Update dependencies
2025-06-10 16:33:06 -07:00
Wang Han
0b494ed7df
Avoid throwing error if chmod a symlink
...
It is possible that we want to clone attributes of a regular file to a
symlink. In this case, we don't need to error out if chmod fails. Just
skip it.
2025-06-06 17:08:34 -07:00
Wang Han
0e86d4dbcb
Fix file pointer leak on error path
2025-06-03 00:34:52 -07:00
Wang Han
5e050d7456
Check binary existence before injecting zygisk bins
2025-06-03 00:33:40 -07:00
topjohnwu
898580bf90
Update dependencies
2025-06-02 19:51:12 -07:00
topjohnwu
d8cf42af16
Reduce unstable feature usage
2025-05-30 11:11:36 -07:00
topjohnwu
8c79d66b7b
Update ONDK r28.4
2025-05-30 01:53:26 -07:00
Wang Han
fada8b148a
Ensure manager can always bypass su access policy
...
This fixes https://github.com/topjohnwu/Magisk/issues/9050 .
2025-05-21 16:14:46 -07:00
topjohnwu
dc0acea47c
Remove C++ I/O streams
2025-05-20 03:26:00 -07:00
topjohnwu
78d1200608
Migrate all compression code to Rust
2025-05-20 03:26:00 -07:00
topjohnwu
527bbc0368
Migrate module mounting to Rust
2025-05-20 03:24:43 -07:00
topjohnwu
0c4b8afbc5
Simplify JNI hooking code
2025-05-17 02:05:21 -07:00
topjohnwu
2215088973
Remove unused files in native directory
2025-05-15 13:48:12 -07:00
topjohnwu
4f4b1ff885
Add sepolicy.rule patching tests
2025-05-13 14:08:54 -07:00
topjohnwu
287316842c
Fix Android M sepolicy reading
2025-05-13 12:28:10 -07:00
topjohnwu
9684a35cab
Use rust::String::c_str to ensure nil termination
2025-05-09 16:02:46 -07:00
Wang Han
a20a2a8fa0
Recognize Samsung custom policy version path
2025-05-09 11:03:58 -07:00
topjohnwu
a2896be4a6
Cargo fmt
...
[skip ci]
2025-05-08 23:29:27 -07:00
LoveSy
e9220a28d9
Use splice to pump tty to avoid userspace copying
2025-05-08 23:20:46 -07:00
topjohnwu
00c1b36837
Support generating files for C++ IDE
2025-05-07 22:18:44 -07:00
topjohnwu
03e034795d
Implement Ord and PartialOrd for Utf8CStr familiy
2025-05-05 11:33:33 -07:00
LoveSy
79c0fafe43
Fix cleanup pre-init mount
2025-05-05 11:00:39 -07:00
vvb2060
86da917174
core: fix mkdirs
2025-05-02 16:39:46 -07:00
topjohnwu
22884e173a
Implement reboot in Rust
2025-04-28 17:22:14 -07:00
topjohnwu
d1829308e9
Move more daemon_start code into Rust
2025-04-28 17:22:14 -07:00
topjohnwu
73840f8721
Migrate selinux.cpp to selinux.rs
2025-04-28 17:22:14 -07:00
topjohnwu
c7d1af9805
Stop using PathBuf in package.rs
2025-04-28 17:22:14 -07:00
topjohnwu
4ad26d3dfb
Better path methods
2025-04-28 17:22:14 -07:00
topjohnwu
0c70b7670c
Cleanup dir implementations
2025-04-28 17:22:14 -07:00
topjohnwu
f44d044095
Remove Utf8CStrBuffer
2025-04-28 17:22:14 -07:00
topjohnwu
5c1cb13472
Remove AsUtf8CStr trait
2025-04-28 17:22:14 -07:00
topjohnwu
3327fc668e
Remove FsPath and FsPathMnt trait
...
Directly use Utf8CStr
2025-04-28 17:22:14 -07:00
topjohnwu
610945ac54
Remove open_fd macro
2025-04-28 17:22:14 -07:00
Howard Wu
6ba1685ade
Fix some seopt log
2025-04-22 03:25:21 -07:00
topjohnwu
e02b5f7868
Rename cstr_buf to cstr::buf
2025-04-22 03:21:00 -07:00
topjohnwu
ab2e5d1e7e
Make FsPathBuf a trait and rename to FsPathBuilder
2025-04-22 03:21:00 -07:00
topjohnwu
f3fef7bfe4
Make FsPath a trait
2025-04-22 03:21:00 -07:00
topjohnwu
c34c7838bb
Cleanup cstr implementation
2025-04-22 03:21:00 -07:00
topjohnwu
c8a16b0e0c
Remove unused code
2025-04-16 17:13:03 -07:00
topjohnwu
14f9ed91a1
Remove unused methods
2025-04-15 11:35:31 -07:00
topjohnwu
7a207d4ccf
Only accept UTF-8 directory entries
2025-04-15 10:26:22 -07:00
topjohnwu
92a42d901f
Move most implementation into Directory
2025-04-15 10:26:22 -07:00
topjohnwu
084d89fcce
Create Utf8CStrBuffer type
2025-04-15 10:26:22 -07:00