Commit Graph

234 Commits

Author SHA1 Message Date
topjohnwu 1443a5b175 Use mmap_data more widely 2021-11-30 01:50:55 -08:00
topjohnwu 2d82ad93dd Macro -> template 2021-11-29 19:56:37 -08:00
topjohnwu 24984ea4f2 Optimize stream for full-file writes 2021-11-23 18:08:14 -08:00
topjohnwu 048b2af0fc Improve zopfli encoder
Write in chunks for CLI compression
2021-11-23 16:50:08 -08:00
topjohnwu 5787aa1078 Stream should always write all bytes 2021-11-21 06:05:59 -08:00
topjohnwu d8b9265484 Pull out buffer-chunk logic into separate class 2021-11-21 06:05:55 -08:00
topjohnwu e1b63d7dec Initialize mt19937 statically in function
This reduces startup time
2021-11-16 03:20:07 -08:00
topjohnwu 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
topjohnwu 7496d51580 Make zygiskd ABI aware 2021-10-23 14:38:30 -07:00
topjohnwu 770b28ca30 Build on API 21 headers 2021-10-20 03:17:42 -07:00
topjohnwu d0fc372ecd Implement Zygisk companion process 2021-10-17 04:36:18 -07:00
topjohnwu 7b25e74418 Simplify get manager app info logic 2021-09-17 02:07:32 -07:00
topjohnwu 706a492218 Update denylist config implementation 2021-09-16 05:27:34 -07:00
topjohnwu 3b8ce85092 Enable Zygisk 2021-09-15 01:59:43 -07:00
topjohnwu de2306bd12 Proper incremental builds
Auto generate flag.h for precise rebuilding
2021-09-07 19:35:28 -07:00
vvb2060 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
LoveSy 0dad06cdfe Fix meizu compatibility 2021-08-28 21:03:12 -07:00
vvb2060 79e8962854 Support bootconfig
https://android-review.googlesource.com/c/platform/system/core/+/1615298
2021-08-28 20:50:17 -07:00
topjohnwu 4771c2810b Significantly better AVD support 2021-08-26 03:09:56 -07:00
topjohnwu 0cd99712fa Implement cached thread pool 2021-08-24 02:39:54 -07:00
topjohnwu 171d68ca72 Connect to magiskd log daemon 2021-08-22 03:26:48 -07:00
topjohnwu 6f9c3c4ff3 Refactor hook.cpp 2021-08-19 01:54:12 -07:00
topjohnwu 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
topjohnwu cf8f042a20 Cleanup magiskboot cpio code 2021-08-13 04:53:11 -07:00
topjohnwu 844bc2d808 Remove unused code 2021-08-13 03:30:58 -07:00
topjohnwu 27f7fa7153 Extend stream support 2021-08-13 02:08:56 -07:00
topjohnwu 0d977b54f7 Revise logging code 2021-08-12 03:26:54 -07:00
topjohnwu 00a1e18959 Store all native JNI methods in data structures 2021-08-01 14:35:16 -07:00
topjohnwu 01b985eded Remove more pre SDK 21 stuffs 2021-04-09 21:29:42 -07:00
Shaka Huang 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
topjohnwu 66e30a7723 Build libc++ ourselves 2021-03-25 01:00:10 -07:00
vvb2060 6865652125 Fix process name in MagiskHide
close #3997
2021-03-24 04:43:45 -07:00
vvb2060 0783f3d5b6 Fix mount rules dir
close #4006
2021-03-13 21:10:02 -08:00
topjohnwu 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
Shaka Huang 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
topjohnwu 79140c7636 Proper xxread and xwrite implementation 2021-01-17 01:42:45 -08:00
topjohnwu 67e2a4720e Fix xxread false negatives
Fix #3710
2021-01-16 21:43:53 -08:00
topjohnwu f2cb3c38fe Update mmap implementation
Always map memory as writable, but private when read-only
2021-01-12 22:50:55 -08:00
topjohnwu d2acd59ea8 Minor code refactoring 2021-01-12 00:07:48 -08:00
topjohnwu b36e6d987d Reorganize MagiskHide code
Prepare for zygote injection hiding
2021-01-10 17:11:00 -08:00
topjohnwu 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
topjohnwu cd23d27048 Fix remote_write implementation 2021-01-06 21:56:29 -08:00
topjohnwu 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
topjohnwu f9bde347bc Convert indentation to spaces
The tab war is lost
2020-12-30 22:11:24 -08:00
topjohnwu 8e61080a4a Preparation for hiding isolated processes 2020-12-30 15:55:53 -08:00
topjohnwu db4f78d463 Unblock signals before executing commands 2020-12-27 15:05:39 -08:00
topjohnwu eee7f097e3 Make post-fs-data scripts block at most 35 secs 2020-12-17 16:54:53 -08:00
topjohnwu 2a694596b5 Better error handling and logging 2020-12-05 10:23:49 -08:00
topjohnwu f152e8c33d Directly log to log file 2020-12-03 20:15:18 -08:00
topjohnwu 797ba4fbf4 Make sure all logging ends with newline 2020-12-02 00:55:22 -08:00