Commit Graph

1373 Commits

Author SHA1 Message Date
43c1105d62 Use dedicated thread for writing logfile 2021-03-09 02:40:12 -08:00
b693d13b93 Proper implementation of cgroup migration
https://www.kernel.org/doc/Documentation/admin-guide/cgroup-v1/cgroups.rst
https://www.kernel.org/doc/Documentation/admin-guide/cgroup-v2.rst
2021-03-07 01:55:19 -08:00
39982d57ef Fix logging implementation
- Block signals in logging routine (fix #3976)
- Prevent possible deadlock after fork (stdio locks internally)
  by creating a new FILE pointer per logging call (thread/stack local)
2021-03-06 13:55:30 -08:00
851404205b Update NDK to r21e 2021-03-02 23:18:44 -08:00
117ae71025 Use custom class instead of std::map 2021-03-02 23:16:10 -08:00
027ec70262 Patch AVB structures
Disable vbmeta verification in flags
2021-03-02 20:37:37 -08:00
55fdee4d65 Use memmem for searching byte patterns 2021-02-28 14:37:12 -08:00
0d42f937dd Refactor magiskboot 2021-02-28 14:37:12 -08:00
ac8372dd26 Add cgroup2 path
https://android-review.googlesource.com/c/platform/system/core/+/1585101
2021-02-26 21:36:58 -08:00
ba1ce16b8b Fix error in pure 64-bit environment
In Android S preview, there’s no 32-bit libraries in x86_64 system image for emulator.

Signed-off-by: Shaka Huang <shakalaca@gmail.com>
2021-02-22 03:28:54 -08:00
ccb55205e6 Fix pre 21 support 2021-02-20 03:38:39 -08:00
b76c80e2ce Fix apex path 2021-02-14 13:37:38 -08:00
501bc9f438 Restore init from backup rather than symlink
Because of course Samsung don't follow AOSP norms.
I mean, why would they?
2021-02-13 16:43:06 -08:00
2963747d14 Fix LZ4_LG format decompression
Fix #3802, fix #3722, fix #3770, fix #3635, fix #3787, close #3812
2021-02-07 17:40:59 -08:00
f1295cb7d6 Fix root on Android 7.0 and lower 2021-01-26 02:16:11 -08:00
b1dbbdef12 Remove unneeded busybox redirection 2021-01-25 00:23:42 -08:00
3e479726ec Fix legacy rootfs devices 2021-01-25 00:19:10 -08:00
5113f6d375 Fix stop magiskhide 2021-01-23 18:13:15 -08:00
317336f771 Add isolated processes log 2021-01-23 17:31:11 -08:00
61d52991f1 Update BusyBox 2021-01-21 00:35:22 -08:00
d2bc2cfcf8 Install both 32 and 64 bit binaries 2021-01-18 12:37:08 -08:00
5a71998b4e Stop embedding magisk in magiskinit 2021-01-18 04:25:26 -08:00
42278f12ff Fix typo in init daemon 2021-01-18 04:13:54 -08:00
79140c7636 Proper xxread and xwrite implementation 2021-01-17 01:42:45 -08:00
1f4c595cd3 Revert to old su -c behavior 2021-01-16 23:59:31 -08:00
67e2a4720e Fix xxread false negatives
Fix #3710
2021-01-16 21:43:53 -08:00
f5c2d72429 Also log pid and tid 2021-01-16 16:10:47 -08:00
13fbf397d1 Isolated processes might still be hide-able 2021-01-15 20:22:49 -08:00
04c53c3578 Legacy SAR: use a simpler method to detect is_two_stage 2021-01-15 02:44:40 -08:00
51bc27a869 Avoid F2FS like a plague 2021-01-15 02:24:11 -08:00
71b083794c Maintain global mount list 2021-01-14 21:14:54 -08:00
b100d0c503 Revert DTB fstab changes 2021-01-14 19:48:00 -08:00
76061296c9 Let MagiskBoot handle dtb fstab patching 2021-01-14 06:20:12 -08:00
bb303d2da1 Remove old unused code 2021-01-14 05:59:53 -08:00
c91c070343 Re-enable DTB table rebuilding 2021-01-14 05:45:05 -08:00
aec06a6f61 Get proper total image size 2021-01-14 03:55:27 -08:00
e8ba671fc2 Guard all injection features behind a global flag 2021-01-13 20:07:23 -08:00
1860e5d133 Dynamically find libselinux.so path 2021-01-13 19:41:57 -08:00
f2cb3c38fe Update mmap implementation
Always map memory as writable, but private when read-only
2021-01-12 22:50:55 -08:00
9a28dd4f6e Implement MagiskHide through code injection 2021-01-12 03:28:00 -08:00
d2acd59ea8 Minor code refactoring 2021-01-12 00:07:48 -08:00
eb21c8b42e Code cleanups 2021-01-11 02:19:10 -08:00
70d67728fd Add global toggle for ptrace monitor 2021-01-10 19:27:54 -08:00
e546884b08 Remove isolated process handling in ptrace
Impossible to achieve only through ptrace
2021-01-10 17:18:42 -08:00
b36e6d987d Reorganize MagiskHide code
Prepare for zygote injection hiding
2021-01-10 17:11:00 -08:00
53c3dd5e8b Auto track JNI method hooks 2021-01-10 05:07:17 -08:00
da723b207a Allow 3rd party code to load pre-specializing
Magisk's policy is to never allow 3rd party code to be loaded in the
zygote daemon process so we have 100% control over injection and hiding.
However, this makes it impossible for 3rd party modules to run anything
before process specialization, which includes the ability to modify the
arguments being sent to these original nativeForkAndXXX methods.

The trick here is to fork before calling the original nativeForkAndXXX
methods, and hook `fork` in libandroid_runtime.so to skip the next
invocation; basically, we're moving the responsibility of process
forking to our own hands.
2021-01-10 01:25:30 -08:00
e050f77198 Don't hook SystemProperties#set
Doesn't seem necessary
2021-01-09 20:39:59 -08:00
540b4b7ea9 Update pre/post hooks implementation 2021-01-09 17:41:25 -08:00
bbef22daf7 More macro magic to automate more code 2021-01-09 04:28:26 -08:00