topjohnwu
65c18f9c09
Restructure project files
2023-11-08 01:46:02 -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
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
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
4b83c1e76c
Cleanup messy error messages
2023-10-12 18:54:09 -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
topjohnwu
5d07d0b964
Do not support systems without SELinux
2023-09-27 02:28:43 -07:00
LoveSy
927cd571f8
Fix read_cert
crash when receive fd = -1
2023-09-18 22:32:32 -07:00
topjohnwu
dda8cc85c9
Use bytemuck
2023-09-14 13:10:09 -07:00
topjohnwu
6a59939d9a
Remove for_all_file
2023-09-13 18:09:16 -07:00
topjohnwu
0a2a590ab7
Use Utf8CStr for logging
2023-09-12 17:35:20 -07:00
topjohnwu
89aee6ffa7
Add more to the Utf8CStr family
...
Better C strings with path operations
2023-09-12 17:35:01 -07:00
topjohnwu
4fff2aa7d8
Fix proto read and write
2023-09-06 20:45:59 -07:00
topjohnwu
35b3c8ba5c
Cleanup persist props code
2023-09-06 15:52:14 -07:00
LoveSy
8d81bd0e33
resetprop: replace nanopb with quick-protobuf for persist
2023-09-05 22:20:57 -07:00
vvb2060
c6efb51f61
sulog: add more info
2023-08-02 21:18:05 -07:00
topjohnwu
a8c4a33e91
Avoid using trait object
2023-06-23 02:32:29 -07:00
topjohnwu
732a161b67
Minor cleanup
2023-06-22 02:23:27 -07:00
vvb2060
9929b25339
Move su request path to magisk tmp
2023-06-20 03:29:06 -07:00
topjohnwu
2359cfc480
Small refactor
2023-06-20 00:21:51 -07:00
topjohnwu
81493475f9
Directly use rust::Vec
2023-06-20 00:21:51 -07:00
topjohnwu
8abcccc262
Fix typo
2023-06-16 01:49:44 -07:00
LoveSy
a9c89cbbbb
Read certificate in Rust
...
Co-authored-by: topjohnwu <topjohnwu@gmail.com>
2023-06-16 01:49:44 -07:00
LoveSy
53257b6ea1
Fix find_apk_path
2023-06-15 04:09:45 -07:00
topjohnwu
d7d0a44693
Remove randomness from Magisk
2023-06-14 17:05:49 -07:00
topjohnwu
cb3ab63815
Replace all CStr usage to Utf8CStr
2023-06-12 13:57:15 -07:00
LoveSy
bf6359abaa
Fix release build
2023-06-10 13:10:54 -07:00
topjohnwu
f33f1d25d0
Move find_apk_path to Rust
2023-06-10 01:40:45 -07:00
topjohnwu
5e2ef1b7f4
Better bytes support in C++
2023-06-06 17:11:42 -07:00
topjohnwu
2a654e5d7f
Improve byte_data const correctness
2023-06-03 03:16:03 -07:00
topjohnwu
9ea9f01933
Resolve clippy errors and warnings
2023-05-31 01:08:33 -07:00
topjohnwu
c30fbdf145
Simplify logging code
2023-05-29 01:27:40 -07:00
vvb2060
dd93556ad8
Faster get magisk tmpfs path
2023-05-25 01:03:27 -07:00
topjohnwu
533aeadd38
Update cstr macro
2023-05-25 01:03:04 -07:00
topjohnwu
18d0cedbe2
Parse rule files with Rust
2023-05-24 19:11:56 -07:00
topjohnwu
8e8f01f8b5
Move project common code into include
2023-05-23 21:30:30 -07:00
topjohnwu
47d2d4e3a5
Update su cmdline parsing
2023-05-23 20:51:23 -07:00
topjohnwu
5627053b74
Move su folder into core
2023-05-23 01:36:25 -07:00
topjohnwu
0f666de5e6
Organize headers
2023-05-22 21:36:15 -07:00
topjohnwu
9fe8741a02
Export get_prop to Rust
2023-05-21 23:51:30 -07:00
topjohnwu
2bcf2e76f1
Generate cxx binding in build.rs
2023-05-19 15:16:54 -07:00
topjohnwu
91773c3311
Support only read properties from storage
2023-05-19 01:53:40 -07:00
topjohnwu
dc61033b2c
Support persist props bypassing property_service
2023-05-18 23:36:46 -07:00
topjohnwu
f8d62a4b6c
Move resetprop under core
2023-05-18 22:15:49 -07:00
topjohnwu
cd7a335d0f
Cleanup implementation
2023-05-18 20:26:20 -07:00
topjohnwu
f36b21bae5
Support get property context
...
Co-authored-by: canyie <a1364259@163.com>
Co-authored-by: vvb2060 <vvb2060@gmail.com>
2023-05-18 14:46:36 -07:00
topjohnwu
1be647a279
Put all FFI into same module
2023-05-16 02:41:39 -07:00
topjohnwu
22d05ca399
Update time handling code
2023-05-13 02:38:03 -07:00
LoveSy
b9e6937996
Make magisk node ro as well
2023-05-10 00:13:18 -07:00
topjohnwu
583ffc8177
Reduce cpp logging overhead
2023-05-09 19:14:08 -07:00
topjohnwu
7518092ad2
Implement logging purely in Rust
2023-05-09 18:54:38 -07:00
topjohnwu
d364554425
Remove unused code
2023-05-06 01:48:47 -07:00
vvb2060
9f7d410959
Use pathname local socket
2023-05-06 00:04:11 -07:00
vvb2060
bc94ea4334
Update SELinux policy
2023-05-06 00:04:11 -07:00
LoveSy
52a98cbd51
Temp workaround for module file context
2023-04-10 19:30:37 -07:00
topjohnwu
b4ae3493a6
Use ext4 partitions for preinit first
...
Fix #6841 , close #6847
2023-04-08 20:30:40 -07:00
残页
1a16004b20
Add help message for magisk --preinit-device
2023-04-08 18:32:34 -07:00
LoveSy
b505819ca2
Fix a typo
2023-04-04 12:28:08 -07:00
vvb2060
69529ac59c
Fix restorecon
2023-04-04 02:34:16 -07:00
topjohnwu
24ba4ab95b
Better AVD support
2023-04-04 02:04:49 -07:00
topjohnwu
762b70ba9d
Better string split implementation
2023-04-03 18:50:36 -07:00
LoveSy
15cab86152
Make module mirror read only
2023-04-02 22:03:02 -07:00
LoveSy
e893c13cf1
Unlink preinit device if bind mount fails
2023-03-23 00:40:13 -07:00
LoveSy
dba5020e4f
Refactor magiskrc
2023-03-22 17:53:15 -07:00
LoveSy
b9d0a3b3d4
Use partition name or devpath's name
2023-03-21 00:40:11 -07:00
topjohnwu
76405bd984
Add more comments
2023-03-21 00:40:11 -07:00
topjohnwu
4e2b88b3d0
Rename rules to preinit
...
It is possible that we will allow more preinit files for modules.
Rename the partition and folders from rules to preinit.
2023-03-21 00:40:11 -07:00
LoveSy
7048aa1014
Rename sepolicy.rules -> rules
2023-03-21 00:40:11 -07:00
LoveSy
1c2fcd14b5
Mount sepolicy.rules for migration
2023-03-21 00:40:11 -07:00
vvb2060
362eea741f
Refactor sepolicy.rules resolve native
...
Co-authored-by: LoveSy <shana@zju.edu.cn>
2023-03-21 00:40:11 -07:00
南宫雪珊
4709a32641
Fix mkdir
...
Co-authored-by: LoveSy <shana@zju.edu.cn>
2023-03-07 01:47:26 -08:00
LoveSy
981ccabbef
No support for partitions w/o symlink in /system
2023-03-06 05:23:40 -08:00
vvb2060
9e07eb592c
Fix make private before remount
2023-03-06 05:18:16 -08:00
topjohnwu
a1ce6f5f12
Fix race condition when switching root manager
...
Before this change, the root manager package name is only written into
the database after the repackaged APK is installed. In the time between
the repackaged APK being installed and the package name being written
into the database, if some operation calls `get_manager`, the Magisk
daemon will cache this result and ignore the repackaged APK, even if
the package name is set afterwards, because the cache won't be
invalidated. The result is that the repackaged manager APK will not be
recognized as the root manager, breaking the hide manager feature.
This race condition is more likely to happen when Zygisk is enabled,
because `get_manager` is called with a very high frequency in that case.
To fix the issue, we have to set the new package name into the database
BEFORE installing the repackaged APK. We also stop pruning the
database if the repackaged manager is not found, moving this logic into
the Magisk app. By doing so, we can guarantee that the instant after
the repackaged manager APK is installed, the Magisk daemon will
immediately pick it up and treat it as the root manager.
Another small optimization: when the requester is root, simply bypass
the whole database + manager package check. Since the Magisk app hiding
APK installation proces will call `su` several times to run `pm` under
different UIDs, doing this opimization will reduce the amount of
unnecessary database query + filesystem traversals.
2023-03-06 03:58:58 -08:00
LoveSy
1aade8f8a8
No greedy match to find parent mount point
...
This fixes /sys is considered as a parent mount point of /system
2023-03-03 11:09:03 -08:00
LoveSy
da36e5bcd5
Make worker private
2023-03-02 02:25:44 -08:00
南宫雪珊
3726eb6032
Deny init relabel to adb_data_file
...
Co-authored-by: 残页 <a1364259@163.com>
Co-authored-by: LoveSy <shana@zju.edu.cn>
2023-03-02 02:20:38 -08:00
vvb2060
4772868d6a
Move REMOUNT_ROOT
2023-03-02 02:05:38 -08:00
vvb2060
2a4aa95a6f
Identify tmpfs used by magisk
2023-02-26 14:23:11 -08:00
LoveSy
d7158131e4
No need to manually parse mount flags
2023-02-26 01:15:18 -08:00
topjohnwu
3d3082bc82
Minor optimizations
2023-02-26 01:14:10 -08:00
topjohnwu
744ebca206
Don't let inter_node upgrade to module_node
2023-02-25 22:05:50 -08:00