topjohnwu
be433fa667
Use Rust for formatting
...
The fprintf implementation included in crt0 is too rudimental
2024-02-26 00:26:23 -08:00
topjohnwu
0ccd6e7381
Fix fread and fwrite implementation
2024-02-25 23:20:30 -08:00
topjohnwu
907bbbda41
Remove usage of patched static lib
2024-02-25 22:11:34 -08:00
topjohnwu
4393bc077d
Implement string routines
2024-02-25 21:12:19 -08:00
topjohnwu
365b373480
Make it easy to build without crt0
2024-02-24 22:32:22 -08:00
topjohnwu
47e6dd286d
Minor fixes
2024-02-24 22:00:09 -08:00
topjohnwu
0dbaf52566
Make all platforms build properly
2024-02-24 05:10:54 -08:00
topjohnwu
66f49dfab5
Remove unnecessary lock usage
2024-02-24 04:20:28 -08:00
topjohnwu
f8967e9274
Implement strerror
2024-02-24 04:02:46 -08:00
topjohnwu
a4f008fde5
Reorganize files
2024-02-24 03:41:22 -08:00
topjohnwu
e9980c778b
Implement stub functions
2024-02-24 03:41:03 -08:00
topjohnwu
06b6fb0c33
Add setenv
2024-02-24 03:27:09 -08:00
topjohnwu
38cb3d4105
Add dirent implementation
2024-02-24 03:26:53 -08:00
topjohnwu
db99caf258
Use execve directly
2024-02-24 01:47:11 -08:00
topjohnwu
39dbffadfe
Complete stdio
2024-02-24 01:28:58 -08:00
topjohnwu
b7505c3c9c
Remove fopen usage in magiskinit
2024-02-24 00:45:07 -08:00
topjohnwu
3185e5a7ca
Introduce string/mem functions
2024-02-23 23:56:31 -08:00
topjohnwu
e0cbe28711
Add the generic syscall function
2024-02-23 18:41:39 -08:00
topjohnwu
66cee19cea
Add printf and sscanf family
2024-02-23 17:44:12 -08:00
topjohnwu
2ec29ade79
Add all missing syscalls
2024-02-23 14:35:12 -08:00
topjohnwu
c865d4e187
Add memory allocator
2024-02-22 21:22:27 -08:00
topjohnwu
a42a0a53ce
Declare more symbols
2024-02-22 21:22:27 -08:00
topjohnwu
6d79de7d71
Initial crt0 implementation
...
Builds but cannot link, missing a lot of symbols
2024-02-22 21:22:27 -08:00
topjohnwu
18c45ae289
Update cxx and Rust dependencies
2024-02-02 14:35:30 -08:00
LoveSy
356ee1febd
Code clean up
2024-01-30 11:07:37 -08:00
LoveSy
cc044ccc4c
Fix zygisk unload
2024-01-30 11:07:37 -08:00
LoveSy
9c638cc463
Remove rust workaround
2024-01-29 15:07:21 -08:00
topjohnwu
308c9999fa
Properly detect package changes
2024-01-28 00:42:43 -08:00
topjohnwu
930bb8687f
Minor zygisk refactoring
2024-01-25 00:17:47 -08:00
topjohnwu
f2c4288d2d
Run pthread_atfork only once
...
Close #7704
2024-01-25 00:17:05 -08:00
残页
94d3daeadf
Fix Sony init.real check
2024-01-17 16:09:50 -08:00
LoveSy
79334b7702
One stage zygisk loading
2024-01-11 16:19:39 -08:00
LoveSy
df66458db6
Check full path of init.rc instead of its dir
...
Some devices has `/system/etc/init/hw` but has no init.rc in it.
2024-01-11 16:18:57 -08:00
LoveSy
97705704e2
install or uninstall apk asynchronously
2024-01-11 16:16:36 -08:00
topjohnwu
65207f96c8
Create custom cxx binding to Utf8CStr
2023-12-26 23:10:55 +08:00
topjohnwu
1057cb3e3c
Set serial on Rust binding
2023-12-24 04:36:58 +08:00
topjohnwu
2dd23b2518
Update system_properties
2023-12-24 04:36:58 +08:00
topjohnwu
48b1c26dc8
Prevent race condition in wait
2023-12-23 06:33:12 +08:00
topjohnwu
f1e0bc3e4a
Use platform implementation if possible
2023-12-23 06:24:20 +08:00
topjohnwu
38527cd58f
Slightly change wait usage and API
2023-12-23 06:23:29 +08:00
LoveSy
e94d65b4b2
Add resetprop -w
for waiting property change
...
It's very easy to wait for property change both in Java and C++,
but it's not the case in shell script. With this patch, developers
can now easily to wait for property change, just like what we have
in `.rc` files, and to wait for boot complete.
2023-12-23 00:12:42 +08:00
LoveSy
27ece3c7df
Keep mirror shared before magic mount
...
This allows mounting during post-fs-data be kept after magic mount
2023-12-22 21:39:03 +08:00
LoveSy
06687abffc
Fix magisk --stop by making mirror shared
...
Previously mirror is private and then unshared to zygote, which
makes magisk --stop cannot propagate umount mirror to zygote.
2023-12-22 21:39:03 +08:00
vvb2060
deedb462a0
Hide magisk internal mount point
2023-12-22 21:38:15 +08:00
Wang Han
1ef3f6e13b
Remove useless rule for prctl PR_SET_MM
...
* There is no use-case for it now.
2023-12-22 00:36:06 +08:00
topjohnwu
e30bda6c8d
Rebase libsepol to AOSP main
2023-12-21 19:23:02 +08:00
vvb2060
00e9d76a5a
Revert "Avoid doing any unmounts for SysUI"
2023-12-20 17:23:17 +08:00
LoveSy
f41994cb52
Skip svc for ro properties
...
ro properties' triggers should only be triggered once, otherwise it
may undefined behaviour.
This patch avoids triggering ro properties' actions again when using
resetprop to modify them.
Co-authored-by: 5ec1cff <ewtqyqyewtqyqy@gmail.com>
2023-12-18 16:21:08 +08:00
topjohnwu
a003336497
Update system_properties for pre Android 10
2023-12-18 16:21:08 +08:00
LoveSy
401090d6fe
Avoid zygiskd restarts when boot-complete
2023-12-18 16:21:08 +08:00
LoveSy
90dcc1cd30
Do not always zero initialize for rust resize vec
2023-12-18 16:21:08 +08:00
LoveSy
2ac464b186
Only compress regular file
2023-12-18 16:21:08 +08:00
LoveSy
8b7fae278b
Support compressing during cpio backup
2023-12-18 16:21:08 +08:00
LoveSy
98861f0b5a
Clone dir attr for tmpfs in advance
2023-12-13 03:28:30 +08:00
topjohnwu
e35925d520
Properly version zygisk APIs
2023-12-13 03:27:38 +08:00
Kieron Quinn
685a2d2101
Fixes for Android 14 QPR2 B2
...
Added new method signatures and arguments
2023-12-13 00:16:54 +08:00
LoveSy
f7e471616d
Fix clone_attr for newly created dirs
2023-12-10 23:37:47 +08:00
canyie
1fe9ede940
Update selinux to disable validation for policydb
2023-12-08 16:50:45 +08:00
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
LoveSy
d47e70cfaa
Fix native symbol strips
...
`ndkVersion` is also needed by app for striping native symbols.
Set it in `setupCommon` instead.
2023-12-04 00:37:09 +08:00
topjohnwu
1dcf325547
Minor cleanup
2023-12-03 19:32:58 +08:00
LoveSy
4e99997013
Upgrade AGP
2023-12-02 15:25: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