topjohnwu
55c3ee3a6f
Move Zygisk code out of module.cpp
2025-07-07 13:43:11 -07:00
vvb2060
ff18cb8e70
su: support drop capabilities
2025-07-03 02:42:08 -07:00
topjohnwu
37a9724a54
Apply clippy fix
2025-07-02 21:20:14 -07:00
topjohnwu
d660401063
Treat magisk symlinks differently
2025-07-02 21:20:14 -07:00
topjohnwu
88541d6f49
Fix file attribute copy in module mounting logic
...
Due to various reasons, we cannot directly mount module files in /data
into the real paths. Instead we bind mount the module root directory and
remount this mirror with specific mount-point flags. Relevant to this
bug, the module mount is mounted as read-only, which means the file
attribute copy operation could fail in certain configurations.
The fix here is to always copy file attributes into writable locations,
so either in the tmpfs worker directory, or in the module directory
under /data.
A new test case is added to make sure this regression will no longer
happen again in the future.
Fix #9139
2025-07-02 19:23:46 -07:00
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
Wang Han
5e050d7456
Check binary existence before injecting zygisk bins
2025-06-03 00:33:40 -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
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
4f4b1ff885
Add sepolicy.rule patching tests
2025-05-13 14:08:54 -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
LoveSy
79c0fafe43
Fix cleanup pre-init mount
2025-05-05 11:00:39 -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
0c70b7670c
Cleanup dir implementations
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
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
7a207d4ccf
Only accept UTF-8 directory entries
2025-04-15 10:26:22 -07:00
topjohnwu
084d89fcce
Create Utf8CStrBuffer type
2025-04-15 10:26:22 -07:00
topjohnwu
7bd901273c
Provide richer error messages
...
Make sure most syscall/libc calls results are mapped to OsResult
that can produce more detailed error messages.
2025-04-15 00:18:48 -07:00
topjohnwu
c0a1fb77be
Code cleanup
2025-04-11 14:48:01 -07:00
LoveSy
4864c1112a
no pty for -c by default, and add -i to force pty
2025-04-11 13:21:10 -07:00
LoveSy
9ddeab034b
Fix wrong tty pump
...
See #1463
2025-04-11 13:21:10 -07:00
LoveSy
c4847ed288
Move pts to rust, and avoid using thread
2025-04-11 13:21:10 -07:00
topjohnwu
9c7d359093
Optimize and format imports
...
[skip ci]
2025-04-08 09:57:09 -07:00
topjohnwu
2aba7247a9
Skip stub APK install on emulator
...
Reduce test flakiness
2025-03-26 13:15:12 -07:00
topjohnwu
e0a356b319
Introduce mount helper methods
2025-03-24 17:26:03 -07:00
Wang Han
52ef1d1cb2
Simplify matching selinux context of child zygote ( #8845 )
2025-03-11 01:27:15 -07:00
topjohnwu
c90e73ccec
Migration to Edition 2024
2025-03-07 02:35:25 -08:00
topjohnwu
a43c1267d8
Update Cargo.toml
2025-03-07 02:35:25 -08:00
topjohnwu
c6c1a17ae6
Address several clippy warnings
2025-03-03 02:15:14 -08:00
topjohnwu
b6b34f7612
Fix overlay.d context preservation
2025-02-27 01:57:25 -08:00
topjohnwu
363410e1c0
Introduce cstr_buf helper functions
2025-02-17 11:32:21 -08:00
topjohnwu
fc2ef21660
Introduce path! macro for FsPath
2025-02-17 01:46:19 -08:00
topjohnwu
63231d97ce
Properly handle db downgrades
2025-02-16 17:01:36 -08:00