Commit Graph

228 Commits

Author SHA1 Message Date
e1b63d7dec Initialize mt19937 statically in function
This reduces startup time
2021-11-16 03:20:07 -08:00
528601d25a Fix integer overflow and workaround seccomp
- Use ftruncate64 instead of ftruncate to workaround seccomp
- Cast uint32_t to off64_t before making it negative

Note: Using ftruncate with a modern NDK libc should actually be
fine as the syscall wrapper in bionic will use ftruncate64 internally.
However, since we are using the libc.a from r10e built for Gingerbread,
seccomp wasn't a thing back then, and also the ftruncate64 symbol is
missing; we have to create our own wrapper and call it instead on
32-bit ABIs.

Props to @jnotuo for discovering the overflow bug and seccomp issue

Fix #3703, close #4915
2021-11-10 03:07:20 -08:00
7496d51580 Make zygiskd ABI aware 2021-10-23 14:38:30 -07:00
770b28ca30 Build on API 21 headers 2021-10-20 03:17:42 -07:00
d0fc372ecd Implement Zygisk companion process 2021-10-17 04:36:18 -07:00
7b25e74418 Simplify get manager app info logic 2021-09-17 02:07:32 -07:00
706a492218 Update denylist config implementation 2021-09-16 05:27:34 -07:00
3b8ce85092 Enable Zygisk 2021-09-15 01:59:43 -07:00
de2306bd12 Proper incremental builds
Auto generate flag.h for precise rebuilding
2021-09-07 19:35:28 -07:00
f324252681 Use isolated devpts if kernel support
kernel version >= 4.7 or CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
2021-08-29 02:45:49 -07:00
0dad06cdfe Fix meizu compatibility 2021-08-28 21:03:12 -07:00
79e8962854 Support bootconfig
https://android-review.googlesource.com/c/platform/system/core/+/1615298
2021-08-28 20:50:17 -07:00
4771c2810b Significantly better AVD support 2021-08-26 03:09:56 -07:00
0cd99712fa Implement cached thread pool 2021-08-24 02:39:54 -07:00
171d68ca72 Connect to magiskd log daemon 2021-08-22 03:26:48 -07:00
6f9c3c4ff3 Refactor hook.cpp 2021-08-19 01:54:12 -07:00
003fea52b1 Remove all non-Magisk hiding code
Magisk no longer interferes with any signals/info that were not created
or caused by Magisk itself.
2021-08-18 02:01:54 -07:00
cf8f042a20 Cleanup magiskboot cpio code 2021-08-13 04:53:11 -07:00
844bc2d808 Remove unused code 2021-08-13 03:30:58 -07:00
27f7fa7153 Extend stream support 2021-08-13 02:08:56 -07:00
0d977b54f7 Revise logging code 2021-08-12 03:26:54 -07:00
00a1e18959 Store all native JNI methods in data structures 2021-08-01 14:35:16 -07:00
01b985eded Remove more pre SDK 21 stuffs 2021-04-09 21:29:42 -07:00
3da318b48e Fix random return value of faccessat() in x86
faccessat() should return 0 when success, but it returns random number with errno == 0 in x86 platform.

It’s a side effect of commit bf80b08b5f when magisk binaries ‘corretly’ linked with library of API16 .. lol

Co-authored-by: John Wu <topjohnwu@gmail.com>
2021-04-04 03:04:09 -07:00
66e30a7723 Build libc++ ourselves 2021-03-25 01:00:10 -07:00
6865652125 Fix process name in MagiskHide
close #3997
2021-03-24 04:43:45 -07:00
0783f3d5b6 Fix mount rules dir
close #4006
2021-03-13 21:10:02 -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
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
79140c7636 Proper xxread and xwrite implementation 2021-01-17 01:42:45 -08:00
67e2a4720e Fix xxread false negatives
Fix #3710
2021-01-16 21:43:53 -08:00
f2cb3c38fe Update mmap implementation
Always map memory as writable, but private when read-only
2021-01-12 22:50:55 -08:00
d2acd59ea8 Minor code refactoring 2021-01-12 00:07:48 -08:00
b36e6d987d Reorganize MagiskHide code
Prepare for zygote injection hiding
2021-01-10 17:11:00 -08:00
4060c2107c Add preliminary zygote code injection support
Prototyping the injection setup and a clean "self unloading" mechanism.
2021-01-06 22:21:17 -08:00
cd23d27048 Fix remote_write implementation 2021-01-06 21:56:29 -08:00
5f2e22a259 Support remote function call with ptrace
End up not used for anything, but keep it for good
2021-01-02 21:29:45 -08:00
f9bde347bc Convert indentation to spaces
The tab war is lost
2020-12-30 22:11:24 -08:00
8e61080a4a Preparation for hiding isolated processes 2020-12-30 15:55:53 -08:00
db4f78d463 Unblock signals before executing commands 2020-12-27 15:05:39 -08:00
eee7f097e3 Make post-fs-data scripts block at most 35 secs 2020-12-17 16:54:53 -08:00
2a694596b5 Better error handling and logging 2020-12-05 10:23:49 -08:00
f152e8c33d Directly log to log file 2020-12-03 20:15:18 -08:00
797ba4fbf4 Make sure all logging ends with newline 2020-12-02 00:55:22 -08:00
0064b01ae0 Trim out \r from string
Fix #3490
2020-11-15 06:30:29 -08:00
afebe734b8 Fix several things regarding scripting 2020-11-07 14:36:13 -08:00
4c94f90e5d Templatize function callbacks 2020-11-03 01:16:55 -08:00
ffb4224640 Don't use reserved symbols 2020-11-03 01:12:33 -08:00
4fd04e62af Remove compressed ramdisk support
It is causing more issues than it addresses
2020-09-24 02:49:09 -07:00
43146b8316 Update su request process
Due to changes in ec3705f2ed, the app can
no longer communicate with the dameon through a socket opened on the
daemon side due to SELinux restrictions. The workaround here is to have
the daemon decide a socket name, send it to the app, have the app create
the socket server, then finally the daemon connects to the app through
the socket.
2020-06-19 03:52:25 -07:00