Commit Graph

351 Commits

Author SHA1 Message Date
LoveSy 1fd49e4987 Make tmpfs mount of magic mount atomic
This avoid system libraries disappear temporarily during magic mount,
which causes some dynamic executables fails to run during post-fs-data.
2023-12-08 13:59:02 +08:00
LoveSy d49b02b274 Fix zygiskd not restart when zygote restarts 2023-12-07 20:44:44 +08:00
topjohnwu 1dcf325547 Minor cleanup 2023-12-03 19:32:58 +08:00
LoveSy 58aded31c2 Enable iter_intersperse 2023-11-29 23:47:51 +08:00
LoveSy 6f6b0ade06 Correct cpio's norm_path 2023-11-29 23:47:51 +08:00
topjohnwu c7083659aa Directly guard boot state with mutex 2023-11-27 17:40:58 +08:00
canyie 68442f38ac Misc changes
- actions: Update all actions/checkout references to v4
- magiskboot: Add missing new line to dtb help message
- docs: Update documents, fix some errors and remove outdated info
2023-11-17 13:58:41 -08:00
topjohnwu 8d5b9e5329 C++/Rust 2 way binding for MagiskD 2023-11-17 13:35:50 -08:00
topjohnwu 6c0966b795 Move some global state into Rust 2023-11-16 15:38:38 -08:00
topjohnwu 7c2e93d266 Introduce owned_fd 2023-11-16 15:38:38 -08:00
topjohnwu 49f241b77c Allow running scripts with incomplete env 2023-11-10 00:55:05 -08:00
topjohnwu cfb20b0f86 Zygisk refactoring part 2 2023-11-09 20:55:58 -08:00
topjohnwu 6d6f14fcb3 Use bitflags 2023-11-09 14:35:49 -08:00
topjohnwu 977c981265 Make sure native bridge is restored on daemon restart 2023-11-08 17:55:25 -08:00
topjohnwu ef48abf19d Reorganize zygisk code 2023-11-08 17:46:39 -08:00
topjohnwu 65c18f9c09 Restructure project files 2023-11-08 01:46:02 -08:00
残页 ecb31eed40 Prevent Zygisk from closing new fds created by Zygote itself 2023-11-08 00:34:38 -08:00
topjohnwu a80cadf587 Refactor hookJniNativeMethods
Utilize NativeBridgeRuntimeCallbacks we obtained from native bridge
to directly fetch and modify registered native JNI methods.
By doing so, we do not need to keep a copy of every single
JNINativeMethod registered in order to provide JNI hooking
functionality.

Co-authored-by: LoveSy <shana@zju.edu.cn>
2023-11-07 23:57:55 -08:00
LoveSy fce1bf2365 Obtain NativeBridgeRuntimeCallbacks for future use
NativeBridgeRuntimeCallbacks can be used for better JNI method hooking

Co-authored-by: topjohnwu <topjohnwu@gmail.com>
2023-11-07 16:56:40 -08:00
LoveSy cbc6d40b2c Clean up codes 2023-11-07 14:25:57 -08:00
LoveSy 9fbd079560 Refactor zygisk to use native bridge to inject
Co-authored-by: vvb2060 <vvb2060@gmail.com>
Co-authored-by: topjohnwu <topjohnwu@gmail.com>
2023-11-07 14:25:57 -08:00
LoveSy 42eb928054 Inject zygisk.rc for sync --zygisk-restart 2023-11-06 15:39:48 -08:00
topjohnwu 75e37be6f3 Do not need to check pkg in magisk_env 2023-11-05 23:02:40 -08:00
topjohnwu ac5ceb18c8 Guard log FIFO with SELinux 2023-11-04 23:59:11 -07:00
topjohnwu 72b39594d3 Always close logd_fd during fork 2023-11-04 02:36:14 -07:00
topjohnwu 16ae4aedf1 Remove usage of MAGISKTMP 2023-11-02 15:50:36 -07:00
topjohnwu 489100c755 Fix fd sanitization 2023-11-01 02:01:29 -07:00
topjohnwu da766f2a4e Do not go through magiskd for getting the log pipe 2023-11-01 02:01:18 -07:00
topjohnwu c81d7ff76c Remove unnecessary RefCell usage 2023-10-31 18:22:48 -07:00
topjohnwu a6e50d3648 Make log pipe a FIFO instead of anonymous pipe 2023-10-31 18:05:22 -07:00
topjohnwu a177846044 Better logging in recv_fds 2023-10-31 17:40:59 -07:00
topjohnwu 19a4e11645 Make tmpfs path static strings 2023-10-29 00:47:28 -07:00
topjohnwu 67cc36268e Simplify zygisk log pipe 2023-10-26 18:13:56 -07:00
LoveSy 9088b584f6 Use official argh 2023-10-25 15:14:16 -07:00
topjohnwu 985454afd4 Better logging 2023-10-24 16:41:49 -07:00
topjohnwu 1eeb2a34a1 Don't support alternative binary paths
The Magisk app will guide users through repair setup
2023-10-19 05:11:43 -07:00
topjohnwu 91c92051f1 Simplify C++ SELinux routines 2023-10-17 16:04:59 -07:00
topjohnwu 4b8a0388e7 Make SELinux support a feature 2023-10-17 13:29:15 -07:00
topjohnwu 66788dc58c Cleanup SELinux support 2023-10-16 17:38:44 -07:00
topjohnwu 36de62873a Fix error logging on the C++ side 2023-10-13 16:59:54 -07:00
topjohnwu 51e37880c6 Add repr(transparent) to guarantee soundness 2023-10-12 18:59:16 -07:00
topjohnwu 4b83c1e76c Cleanup messy error messages 2023-10-12 18:54:09 -07:00
topjohnwu 6d1e8d86cb Cleaner cstr code 2023-10-11 23:53:55 -07:00
topjohnwu eda8c70a80 Borrow value instead of moving in FsPath::from()
When accepting a value of AsRef<Utf8CStr> in FsPath::from(), the
existing code will move a value of Utf8CStrBufArr, creating a reference
that lives longer than the borrowing value, causing undefined behavior.

The issue is only visible on release builds, as more advanced
optimizations will be more aggressive re-using the stack of variables
that no longer lives.

Fix #7408
2023-10-11 23:48:54 -07:00
topjohnwu e774408782 Allow AVD hacks on release builds 2023-10-11 14:17:31 -07:00
topjohnwu 6076b52c48 Update libcxx 2023-10-03 17:22:25 -07:00
topjohnwu 79a1c39b30 Simplify fd sanitization 2023-09-28 20:38:16 -07:00
topjohnwu 5c92d39498 Enable Zygisk by default in emulators
Make sure CI tests Zygisk
2023-09-28 20:25:26 -07:00
topjohnwu 6e7a995716 Introduce UtfCString 2023-09-27 15:21:24 -07:00
topjohnwu a55d570213 Move more I/O operations into Rust 2023-09-27 02:28:43 -07:00