LoveSy
b6ea5b8984
Fix SYSTEM_ROOT not passed to boot patch
2023-03-02 23:39:50 -08:00
LoveSy
f59fbd5dca
Filter duplicate mount points
...
This prevents umounting existing overlay mount points
2023-03-02 14:33:50 -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
7dbfba76bf
Umount by tmpfs id
2023-02-26 14:23:11 -08:00
vvb2060
2a4aa95a6f
Identify tmpfs used by magisk
2023-02-26 14:23:11 -08:00
LoveSy
a1a87c9956
Get rid of vtable hook
2023-02-26 04:59:21 -08:00
vvb2060
2c53356bfd
Remove unexpected files
2023-02-26 03:47:38 -08:00
topjohnwu
85d9756f62
Update Zygisk API documentation
2023-02-26 03:16:13 -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
topjohnwu
92077ebe53
Refactor module and node implementation
2023-02-25 18:19:46 -08:00
LoveSy
78ca682bc5
Always mount tmpfs for dirs
...
https://android-review.googlesource.com/c/platform/system/core/+/928592
2023-02-25 18:19:46 -08:00
LoveSy
af01a36296
Refactor magic mount to support overlayfs
...
Previously, magic mount creates its own mirror devices and mount
mirror mount points. With these mirror mount points, magic mount
can get the original files and directory trees. However, some
devices use overlayfs to modify some mount points, and thus after
magic mount, the overlayed files are missing because the mirror
mount points do not contain the overlayed files. To address this
issue and make magic mount more compatible, this patch refactors
how magic mount works.
The new workflows are as follows:
1. make MAGISKTMP a private mount point so that we can create the
private mount points there
2. for mirror mount points, we instead of creating our own mirror
devices and mount the mirror mount points, we "copy" the
original mount points by recursively mounting /
3. to prevent magic mount affecting the mirror mount points, we
recursively set the mirror mount points private
4. to trace the mount points we created for reverting mounts, we
again make the mirror mount points shared, and by this way we
create a new peer group for each mirror mount points
5. as for tracing the newly created tmpfs mount point by magic
mount, we create a dedicated tmpfs mount point for them, namely
worker mount point, and obviously, it is shared as in a newly
created peer group for tracing
6. when reverting mount points by magic mount, we can then trace
the peer group id and unmount the mount points whose peer group
ids are created by us
The advantages are as follows:
1. it is more compatible, (e.g., with overlayfs, fix #2359 )
2. it can mount more partitions for which previous implementation
cannot create mirror mount points (fix #3338 )
2023-02-25 18:19:46 -08:00
LoveSy
97ed1b16d0
Fix gzip decompression
2023-02-20 18:26:04 -08:00
残页
ae34659b26
No kernel repack if it isn't patched at all
...
It turns out that decompressing and recompressing the kernel is enough to break booting on many devices that use MT6763.
Fix #5124 , fix #6204 , fix #6566
Co-authored-by: LoveSy <shana@zju.edu.cn>
Co-authored-by: 南宫雪珊 <vvb2060@gmail.com>
2023-02-17 15:00:14 -08:00
LoveSy
79a85f5937
Use mountinfo for revert unmount
2023-02-17 12:36:19 -08:00
LoveSy
b249832571
Use statfs to check rootfs
...
This helps support adb remount
2023-02-12 22:49:27 -08:00
LoveSy
577b5912af
Fix SKIP_FD_SANITIZATION false positive
...
Fix #6523
2023-02-12 00:40:09 -08:00
LoveSy
9e8c68af12
Refactor sepolicy.rules resolve
...
We resolve available partitions for sepolicy.rules when patching
boot and bind mount the partition by magiskinit.
For older devices, the previous logic won't work because the part name
is never readable.
Co-authored-by: topjohnwu <topjohnwu@gmail.com>
2023-02-12 00:36:38 -08:00
shìwēi nguyen
03418ddcbf
run module uninstall.sh on Magisk uninstallation
2023-02-09 20:36:58 -08:00
LoveSy
220a1c84ce
Zygisk v4 module's plt commit should not use regex
2023-02-09 20:19:53 -08:00
vvb2060
7a9e6d2ad2
Remove unexpected /sbin/overlay.d
2023-02-09 20:08:59 -08:00
canyie
6ecc04a4df
Fix auto install stub
2023-01-23 01:55:28 +08:00
LoveSy
0329f00129
Upgrade LSPlt
...
Fix #6533
2023-01-20 19:29:55 +08:00
topjohnwu
cd8a2edefb
Reduce unnecessary formatting
2023-01-20 14:41:34 +08:00
LoveSy
4318ab5cd2
Reuse tmpfs for magic mount
...
As we already have a tmpfs (magisktmp), we can reuse them for
magic mount
2023-01-20 03:49:40 +08:00
topjohnwu
3517e6d752
Handle nullptr char* in Rust
2023-01-20 03:45:16 +08:00
LoveSy
67845f9c21
Clear sepolicy rules when disable/remove modules
...
Co-authored-by: topjohnwu <topjohnwu@gmail.com>
2023-01-19 04:25:44 +08:00
Kian-Meng Ang
f562710438
Fix typos
...
Found via `codespell -S *.xml,*.kt,./native/src/external -L crate,bu`
2023-01-18 16:35:37 +08:00
vvb2060
e836909c50
umount old hijack binary
2023-01-18 13:06:17 +08:00
topjohnwu
8f7d6dfb77
Cleanup unused functions
2023-01-12 23:17:41 +08:00
canyie
e73f87b758
Update LSPlt
2023-01-12 01:18:56 +08:00
topjohnwu
636223b289
Cleanup APIs
2023-01-10 02:42:45 +08:00
LoveSy
aa0a2f77cf
Add inode plt hook APIs
2023-01-10 02:42:45 +08:00
LoveSy
37b81ad1f6
Refine module preparation return value
2022-12-26 17:17:41 -08:00
topjohnwu
57d83635c6
Check stub.xz existence
2022-12-26 16:07:04 -08:00
vvb2060
ad0e6511e1
Stop embedding stub.apk in magiskinit
2022-12-26 16:07:04 -08:00
LoveSy
5763a3d908
Support replacing existing .rc by overlay.d
...
Co-authored-by: topjohnwu <topjohnwu@gmail.com>
2022-12-26 03:28:10 -08:00
topjohnwu
a848783b97
Guard boot stages more precisely
...
Close #6468 , fix #6148
2022-12-26 00:04:58 -08:00
LoveSy
4d876f0145
Support detecting safemode by ro.sys.safemode
2022-12-24 15:16:53 -08:00
LoveSy
bdfedea4e0
Close missing fd
...
Fix #6463
2022-12-24 15:16:27 -08:00
topjohnwu
dadae20960
Remove unused implementations
2022-12-23 17:20:39 -08:00
LoveSy
4ed34cd648
Eliminate unnecessarily copy on magiskinit
...
This patch reuses the abused /data tmpfs for magisktmp
2022-12-23 17:03:16 -08:00
残页
33f5154269
Inject binaries into /system if sbin not accessible
...
Some Android 11+ devices have the /sbin partition but not accessible by the global shell (`PATH` doesn't contain `/sbin`). Not only custom ROMs but also some stock ROMs have the same behavior so I believe it is something we need to deal with.
Fix #6427 , fix #4309 , fix #5728 , fix #3593
2022-12-13 13:54:55 -08:00
topjohnwu
ed37ddd570
Stricter validation
2022-11-22 14:47:37 -08:00
LoveSy
cd5384f13e
Fix crashes whenever a zygisk module has ver > 4
2022-11-22 14:47:37 -08:00
LoveSy
11b2ddbad8
Fix zygisk v4 ApiTable abi
...
Also refactor some code to let the compiler check the abi
Co-authored-by: topjohnwu <topjohnwu@gmail.com>
2022-11-22 11:49:31 -08:00
topjohnwu
cf9957ce4d
Properly detect SysUI appId
...
Fix #6322
2022-11-01 02:04:50 -07:00
topjohnwu
44643ad7b3
Restrict pointer aliasing
...
Close #6354 , close #6353
2022-10-31 16:35:33 -07:00
topjohnwu
616adc22e1
Support Linux < 3.6
2022-10-31 16:00:42 -07:00
残页
a468fd946d
Fix #6314
2022-10-11 13:01:34 -07:00
topjohnwu
c3b4678f6e
Properly detect SysUI
2022-10-10 21:28:13 -07:00
残页
44cfe94e4d
Always cleanup init LD_PRELOAD hooks
...
Fix #6296
2022-10-03 08:26:33 -07:00
topjohnwu
095d821240
Don't use xopen in readlink
2022-09-25 16:35:28 -07:00
topjohnwu
48f829b76e
Minor refactoring
2022-09-21 03:09:46 +02:00
topjohnwu
af99c1b843
Don't crash when nullptr paired with len = 0
2022-09-15 16:56:22 -07:00
topjohnwu
c6646efe68
Move all xwrap to Rust
2022-09-15 01:17:05 -07:00
canyie
9474750bdf
Close fd of erroneous daemon socket connections
2022-09-13 04:29:29 -07:00
LoveSy
e86db0bd61
Reset stack guard after fork from Zygote
2022-09-13 04:18:34 -07:00
topjohnwu
a66a3b7438
Make sure logs are always ended with newline
2022-09-09 04:29:50 -07:00
topjohnwu
44029875a6
Add new API exemptFd
2022-09-09 03:27:19 -07:00
topjohnwu
ccf21b0992
Zygisk code refactor
2022-09-07 13:48:20 -07:00
topjohnwu
4e14dab60a
Specialize does not need to close logd_fd
2022-09-06 03:01:39 -07:00
topjohnwu
6e299018a4
Preserve logd_fd after specialization
...
Also add more comments regarding FD checks
2022-09-02 01:49:17 -07:00
topjohnwu
555a54ec53
Avoid doing any unmounts for SysUI
2022-08-31 00:15:15 -07:00
topjohnwu
1565bf5442
Make Zygisk API 0BSD
2022-08-30 01:58:40 -07:00
topjohnwu
14b830027b
Cleanup zygisk headers
2022-08-30 01:40:14 -07:00
topjohnwu
38325e708e
Make private applets hidden
2022-08-27 14:50:28 -07:00
topjohnwu
646260ad6d
Fix typo
2022-08-27 05:27:23 -07:00
topjohnwu
d1d26f4481
Fix building individual applet
2022-08-27 05:06:28 -07:00
vvb2060
77d8445bfd
Avoid hardcode package name
2022-08-24 03:18:55 -07:00
topjohnwu
a54114f149
Pre-grant permissions if possible
2022-08-23 05:09:50 -07:00
vvb2060
c2f96975ce
Pre grant as much as possible
2022-08-23 01:33:10 -07:00
topjohnwu
4737c5117a
Update to ONDK r25.2
2022-08-19 16:26:25 -07:00
topjohnwu
9806b38d8e
Introduce zygisk loader
...
Use a separate library for 1st stage
2022-08-19 04:49:19 -07:00
topjohnwu
34dd9eb7d6
More Rust
2022-08-19 02:21:52 -07:00
topjohnwu
4d9b7e7114
More Rust
2022-08-15 11:53:51 -07:00
topjohnwu
40aab13601
Make IDE recognize we are targeting Android
2022-08-09 14:09:39 -07:00
topjohnwu
4c0f72f68f
Move part of libbase to Rust
2022-08-08 22:53:37 -07:00
残页
1735a713cb
Use ANDROID_DLEXT_FORCE_LOAD
to load second stage if possible
...
Fix #6095
2022-08-08 02:43:19 -07:00
残页
52ba6d11bc
Don't let remote errors crash Zygisk
...
Fix #6095
2022-08-07 05:09:46 -07:00
topjohnwu
7357a35f8d
Fix build errors
2022-08-07 05:03:18 -07:00
Acetylcholine
aeb7fd7cb3
Fix denylist add_list
...
Signed-off-by: ACh Sulfate <xenonhydride@gmail.com>
Co-authored-by: John Wu <topjohnwu@gmail.com>
2022-08-07 04:48:47 -07:00
topjohnwu
1b4a6850b8
Ensure parent folders exist before extract
2022-08-07 04:06:18 -07:00
canyie
1d0b873950
Fix sepolicy attribute
rule parsing
...
Fix #6166
2022-08-07 03:35:50 -07:00
canyie
e8787b5cfd
Fix UB when remote process died
...
If remote process died, `xreadlink` fails and leaves `buf` uninitialized. Then the daemon calls `str_ends`, creates a temp `std::string_view` with the uninitialized buffer and undefined behavior occurs.
2022-08-02 12:54:54 -07:00
topjohnwu
b496923cbb
Update Cargo.toml
2022-07-24 06:14:49 -07:00
topjohnwu
759d196aad
Update cxx.rs
2022-07-24 05:45:23 -07:00
topjohnwu
a7ab8216ce
Proper build scripts
2022-07-24 05:39:14 -07:00
topjohnwu
b9e89a1a2d
Restructure the native module
...
Consolidate all code into the src folder
2022-07-23 13:51:56 -07:00
vvb2060
c7c9fb9576
Restore context before copy
...
fix magiskpolicy context
2022-07-23 03:57:43 -07:00
vvb2060
8b095de04d
Fix app_zygote context
2022-07-23 03:14:44 -07:00
vvb2060
d4b9ef736d
Check magisk32 exists
2022-07-23 02:41:36 -07:00
vvb2060
00d3cb0908
magisk_node: check target exists
2022-07-23 02:40:13 -07:00
vvb2060
d35072d4e6
Match app_zygote by context
2022-07-23 02:39:28 -07:00
topjohnwu
4264ae49c0
Format with rustfmt
2022-07-22 03:56:09 -07:00
LoveSy
3906fe75dc
Clean up code
2022-07-21 00:52:28 -07:00