Commit Graph

46 Commits

Author SHA1 Message Date
ThePedroo b94ea0c5f5 improve: port ptracer to C
This commit ports the C++ to C99 from zygisk-ptracer code, allowing a ~3x size reduce in its binary.
2025-04-16 02:02:26 -03:00
ThePedroo 1a3f497e1a improve: port common code to C
This commit ports even more C++ code to C99, now, the codes available in the "common" folder.
2025-04-14 00:54:24 -03:00
ThePedroo 5b3d9c75fd remove: open file helpers
This commit remove the `open_...` and `xopen_...` helpers, making the code simpler and more direct.
2025-04-12 23:26:17 -03:00
ThePedroo 4625587ea9 improve: ELF utils and SoList code
This commit improves the code related to ELF and SoList, porting them to C.
2025-04-08 16:26:19 -03:00
ThePedroo 52885faf8b remove: dl.cpp file and replace with "dlopen"
This commit replaces DlopenMem for dlopen, removing the need for "dl.cpp" file.
2025-04-05 15:52:47 -03:00
Pedro.js 886e2f8396 improve: mounting system, compatibility; remove: logging on release (#111)
This commit adds numerous improvements to the state of hidden'ility of ReZygisk, and also for compatibility. Recommended to check #111 for more information.
2025-03-29 12:17:57 -03:00
Reveny 92e2f528a9 add: Android 9 support (#117)
This commit makes ReZygisk load Zygisk libraries directly, not utilizing memfd, as it doesn't exist in older versions of Android.
2025-03-22 19:12:24 -03:00
JingMatrix 0671f2e497 improve: reset linker module counters
Two counters for module loading and unloading are introduced in the commit https://cs.android.com/android/_/android/platform/bionic/+/a2e83ab34845759f0999d0ec88f4cdf558c0a9f5. To remove linker traces of libzygisk.so and Zygisk modules, we should reset them properly.
2024-12-18 07:21:03 +01:00
JingMatrix 2814aaf67f remove: unnecessary memory mapping renaming
Note that it is impossible to hide injecting trace of virtual memory maps from the hooked target process.
ReZygisk will only focus on removing its trace for approcess that are not hooked by modules.
2024-12-18 07:19:41 +01:00
JingMatrix b7138d6353 add: drop soinfo for libzygisk.so
1. fix typo vsdo -> vdso and allow this symbol to be not found, which is the case for the 32bit linkers on some devices
2. use soinfo_free to fully remove the soinfo record of libzygisk.so
3. set `soinfo.size = 0` to avoid the library being unmapped while removing its soinfo record
4. add more debug logs for troubleshooting
2024-12-15 16:28:49 +01:00
JingMatrix 6c41a8188d improve: drop soinfo records of loaded modules
In Bionic linker, the `soinfo` structure has a field `next`, which points to the next loaded library in a linked list consisting of all loaded libraries.
Hence, an injected process can easily find all loaded libraries.
Previously in ReZygisk, module library records are hidden by setting the `pathname` field to be empty, which is futile but easier to detect.
Current idea of dropping record can be found in the following commit:
https://github.com/RikkaApps/Riru/commit/5d635e8c66a018b5086f28e083b18b0d0656022b
2024-12-06 00:02:29 +01:00
JingMatrix 3d79939d7b fix: linker64 static symbols lookup with suffix
On Android 15+ in some devices, the symbol names of some static variables such as `solist`, has a `llvm` suffix in its exported name.
Current commit handles this case and close #63 as fixed.
2024-12-06 00:02:26 +01:00
ThePedroo b1d118d120 fix: missing pid and running in zygote_info structure
This commit fixes the issue where the commit that added "pid" (pid_t) and "running" (bool) members to the "zygote_info" structure, a structure that stores the response given by Zygiskd about its state, wasn't added, leading to failing buildings.
2024-11-10 23:19:21 -03:00
ThePedroo ba7d044611 fix: additional new line in some logs
This commit fixes the issue where some loggings would add an additional new line.
2024-11-10 23:11:49 -03:00
ThePedroo 3d2125d6c0 improve: ReZygisk status saving
This commit improves how ReZygisk saves its status.
2024-11-10 23:01:54 -03:00
ThePedroo 75a004f9d5 add: additional information to ptrace command
This commit adds more information to the ptrace command to allow better integration with external features.
2024-08-10 13:43:14 -03:00
Pedro.js af96b85a91 add: maps hiding (#13)
This commit adds maps hiding. This commit is taken from Reveny's PR, for more information, see #9.

solves #9
2024-06-26 19:38:34 -03:00
Matt 2047bdb1bf add: APatch support (#4)
This commit adds support for APatch.
2024-06-22 23:13:29 -03:00
Pedro.js 678d886343 improve: CLI and code (#3)
This commit improves the CLI of ReZygisk, allowing the use of important information like PID of the daemons. Also improves the code of the loaders ptracer.
2024-06-20 22:53:13 -03:00
5ec1cff 9a95377d7b fix injector cannot get tmp path 2024-01-05 10:37:48 +08:00
Nullptr 043cfd93d6 No hardcode temp dir 2024-01-04 03:44:57 +08:00
5ec1cff cbd0f0f0c3 refine mount prop 2024-01-02 23:39:26 +08:00
5ec1cff 5c8a67657c use /debug_ramdisk 2024-01-02 18:03:17 +08:00
5ec1cff 49886d9485 Fixes for Android 14 QPR2 B2 (https://github.com/topjohnwu/Magisk/pull/7620) 2023-12-12 13:05:10 +08:00
5ec1cff 4f81f09a67 randomize init control socket & add shortcut (/data/adb/modules/zygisksu/bin/zygisk-ctl) 2023-12-08 20:20:59 +08:00
5ec1cff 9c34c671fa restart zygiskd when zygote restart 2023-12-08 11:41:40 +08:00
5ec1cff 9e48f18247 Randomize tmp path 2023-11-27 10:23:03 +08:00
5ec1cff ba8c313122 Merge branch 'art2' into new-pt
# Conflicts:
#	loader/src/Android.mk
#	loader/src/external/Android.mk
#	loader/src/injector/hook.cpp
#	module/src/customize.sh
#	zygiskd/Cargo.toml
#	zygiskd/src/utils.rs
#	zygiskd/src/watchdog.rs
2023-11-08 15:33:15 +08:00
5ec1cff add1c65626 make compiler happy 2023-11-04 16:39:21 +08:00
5ec1cff f5e0a418c9 WIP 2023-11-03 11:41:28 +08:00
5ec1cff a2af28dc6f add 32 bit support back & fix x86-64 support & fix jni hook restore (#59)
* Add back 32 bit support & some fix

* fix system server crash on android 10

* Refine code

---------

Co-authored-by: Nullptr <noreply@nullptr.icu>
2023-10-24 15:27:21 +08:00
Nullptr 8c0d5b5395 Drop 32 bit support 2023-10-20 19:23:40 +08:00
Nullptr 5f2dd50703 Replace native bridge with fuse + ptrace 2023-10-20 14:04:44 +08:00
5ec1cff 00f0a6e3fa several changes (#21)
* umount for ksu 10763

Signed-off-by: 5ec1cff <ewtqyqyewtqyqy@gmail.com>

* Add crashdump sepolicy

Signed-off-by: 5ec1cff <ewtqyqyewtqyqy@gmail.com>

* Add more information about debug

Signed-off-by: 5ec1cff <ewtqyqyewtqyqy@gmail.com>

* daemonize zygiskd companion

Signed-off-by: 5ec1cff <ewtqyqyewtqyqy@gmail.com>

* create zygiskd if crash

Signed-off-by: 5ec1cff <ewtqyqyewtqyqy@gmail.com>

* injector: use ANDROID_DLEXT_USE_LIBRARY_FD to load module

Signed-off-by: 5ec1cff <ewtqyqyewtqyqy@gmail.com>

* zygiskd: use file as module fd instead of memfd on debug build

Signed-off-by: 5ec1cff <ewtqyqyewtqyqy@gmail.com>

* use OwnedFd

Signed-off-by: 5ec1cff <ewtqyqyewtqyqy@gmail.com>

* dlopen: no need to create ns

Signed-off-by: 5ec1cff <ewtqyqyewtqyqy@gmail.com>

---------

Signed-off-by: 5ec1cff <ewtqyqyewtqyqy@gmail.com>
2023-05-19 18:28:56 +08:00
Nullptr b7bed4ad35 Fix pltHookCommit 2023-03-23 19:54:45 +08:00
Nullptr 87cf885070 No hex patch 2023-03-20 17:36:59 +08:00
Nullptr 57d3d8a0ba Refine unmount 2023-02-18 19:14:15 +08:00
Nullptr 814476ea7a Log to zygiskd 2023-02-08 14:49:32 +08:00
Nullptr 70f56910cb Refine codes 2023-02-02 17:05:30 +08:00
Nullptr 581506a1b5 Fix random crash 2023-02-02 14:59:21 +08:00
Nullptr 94b56e1b2f Change log tag 2023-02-02 14:56:28 +08:00
Nullptr 335a1c3437 Preload modules 2023-01-31 18:40:49 +08:00
Nullptr d7877ea959 Fix fd ownership 2023-01-31 15:04:01 +08:00
5ec1cff b8678720fb Zygisk injector (#1)
* fix x86

* add lsplt

* transplant from zygisk

* api v4

Signed-off-by: 5ec1cff <ewtqyqyewtqyqy@gmail.com>

* Remove redundant logs

Signed-off-by: 5ec1cff <ewtqyqyewtqyqy@gmail.com>

---------

Signed-off-by: 5ec1cff <ewtqyqyewtqyqy@gmail.com>
2023-01-31 15:03:01 +08:00
Nullptr 851c7120ec Add flashable module 2023-01-30 16:38:53 +08:00
Nullptr 70024cc082 Add injector 2023-01-29 22:41:57 +08:00