190 Commits

Author SHA1 Message Date
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
9aafc279d5 improve: use all threads for compiling (#118)
This commit speeds up the build process by almost 50% when building with github actions by using all system threads to compile ReZygisk.
2025-03-23 15:11:33 -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
ThePedroo
b0a296fc29 add: support for magic mount in KSU and APatch
This commit allows ReZygisk to u(n)mount mounted paths in KSU and APatch environments using magic mount.
2025-01-11 06:37:24 -03:00
ThePedroo
95073d9f4a fix: checking malloc against non NULL not NULL
This commit fixes an issue where one of the "malloc", a libc function to allocate dynamic memory, "if"s were checking its return against non-NULL instead of NULL, making it seem to have failed when it didn't.
2024-12-18 13:07:06 -03:00
JingMatrix
0671f2e497 improve: reset linker module counters
Two counters for module loading and unloading are introduced in the commit a2e83ab348. To remove linker traces of libzygisk.so and Zygisk modules, we should reset them properly.
2024-12-18 07:21:03 +01:00
JingMatrix
5e072bd919 improve: cache scanned virtual maps
Reading the file `/proc/self/maps` is detectable by the target process.
Hence, we should cache scanned virtual maps after `libart.so` is loaded for later plt hooks in the target process.
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
5e43e4a71b improve: hook pthread_attr_setstacksize
Relying on dlclose to unload libzygisk.so will block us to clean its trace in the solist.
This commit allows us to unmap libzygisk.so without using dlclose.
To call munmap, we use the function pthread_attr_setstacksize instead of pthread_attr_destroy, so that tail-call can still be applied here since it has the same signature as munmap.
2024-12-15 16:25:06 +01:00
Md Arif
060a1f3cf9 add: GrapheneOS support (#53)
This commit adds support for devices that run GrapheneOS by hooking on JNI methods they renamed.

Signed-off-by: Md Arif <111168803+sabamdarif@users.noreply.github.com>
2024-12-07 19:03:22 +00: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:
5d635e8c66
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
JingMatrix
9bcbec91aa improve: turn on CMAKE_EXPORT_COMPILE_COMMANDS
To make `clangd` work properly, one needs to make symbolic links
```
ln -sf $PWD/loader/build/tools/debug/arm64-v8a/compile_commands.json loader/build
```
2024-11-26 18:10:31 +01:00
ThePedroo
f4af759aab fix: free in garbage data pointer; fix: Zygiskd wrong message length
This commit fixes the issue where "free" would be executed in a pointer which has garbage data, leading to crashes. This was fixed by setting to NULL, so that it's clean.
It also fixes the issue where Zygiskd messages for "DAEMON_SET_INFO" would not count the NULL-terminator, causing crashes.
2024-11-12 20:38:28 -03:00
ThePedroo
f35680837e remove: non-working info in zygisk-ptraceXX info response
This commit removes information given in the response of info command of "zygisk-ptrace64" or "zygisk-ptrace32" that leads to failing builds, as it is not exported from monitor.cpp.
2024-11-10 23:28:33 -03: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
2c74ee3877 improve: module.prop parsing code; fix: deferecing a NULL pointer
This commit both improves the code that parses "module.prop" file of ReZygisk, reducing its complexity greatly and also making it smaller, and also fixes an issue where ReZygisk would deference a NULL pointer, leading to crashes in Zygiskd crash.
2024-11-10 23:11:46 -03:00
ThePedroo
380ef011a1 improve: status description spacing
This commit improves the spacing of the module status description.
2024-11-10 23:09:42 -03:00
ThePedroo
e23d1a53d0 remove: debug log
This commit removes logging used in development, which is not needed anymore.
2024-11-10 23:09:39 -03:00
ThePedroo
0352d9378b fix: few UBs; fix: missing error handler for malloc
This commit fixes some few UBs (Undefined Behaviors) based on numerous sanitizers, and also adds the missing error handling for a "malloc" call.
2024-11-10 23:09:33 -03:00
ThePedroo
6ca4b72762 improve: zygisk-ptrace speed by modifying compiler flags
This commit improves the "zygisk-ptrace" command speed by changing the compiler flags to use more brutal optimizations.
2024-11-10 23:08:41 -03:00
ThePedroo
6cc01fb548 improve: zygisk-ptrace's event parsing
This commit improves ptrace's event parsing by converting more C++ code to C.
2024-11-10 23:08:39 -03:00
ThePedroo
c2abef8826 fix: zygiskd companion, companion responses, write fd function and early client close
This commit fixes numerous issues in zygiskd code: The zygiskd companion code not loading the right entry, the companion not sending the correct responses, the write fd function not working properly and early client close when connecting to the companion.
2024-11-10 23:08:30 -03:00
ThePedroo
37a667ce2a improve: compilation commands
This commit improves the compilation commands resulting in even better sized releases.
2024-11-10 23:05:30 -03:00
ThePedroo
7d29fd821f fix: zygiskd c99 building process
This commit fixes building process of new zygiskd.
2024-11-10 23:05:28 -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
6187f34837 fix: code spacing
This commit fixes a minor spacing issue in the code.
2024-11-10 23:01:52 -03:00
ThePedroo
763e94b9b6 fix: Magisk app marking Zygisk as disabled
This commit fixes the regression added (by me) that doesn't set "ZYGISK_ENABLED" environment variable, making it mark Zygisk as disabled.
2024-08-15 00:38:25 -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
ThePedroo
fedf7f1c40 remove: duplicated logs
This commit removes duplication of logs in ptrace binaries.
2024-07-25 03:13:15 -03:00
ThePedroo
d53e2af6a7 fix: memory leak in dlerror error log
This commit fixes an memory leak when ReZygisk logs errors for "dlerror".
2024-07-25 03:10:39 -03:00
Captain Throwback
4b7178f1ea improve: genericize partition variable name (#25)
Since we use the same partition list for both KSU and AP,
make the vector name more generic.

Also rename the loop variable in ap function from ksu to ap
for consistency
2024-07-13 15:42:55 -03:00
ThePedroo
f68385be5d fix: ReZygisk break after first boot
This commit fixes the issue where ReZygisk would break after rebooting after first boot after flash.
2024-07-01 00:48:39 -03:00
ThePedroo
c9c15bf120 update: LSPlt
This commit updates LSPlt submodule.
2024-06-30 23:05:39 -03:00
ThePedroo
1a82399e86 improve: hiding
This commit improves hiding by moving monitor related files to /data/adb/rezygisk, where it's not accessable without root.
2024-06-30 23:04:45 -03:00
ThePedroo
df0f2ce5a2 update: LSPlt
This commit updates the LSPlt submodule.
2024-06-30 19:27:32 -03:00
ThePedroo
3451057d17 add: ignore modules in manager process
This commit adds the code to ignore running modules in the manager process.
2024-06-30 19:26:55 -03:00
ThePedroo
80c873c8a4 improve: TMP_PATH related code
This commit improves the code that decides which path will be for "TMP_PATH" variable.
2024-06-30 19:25:52 -03:00
ThePedroo
5da73dd053 fix: not umounting properly module.prop
This commit fixes the issue where module.prop wouldn't be umounted properly.
2024-06-30 19:25:24 -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
Pedro.js
4aa8b2f828 fix: description changer (#11)
This commit fixes the code that changes the description of the module.

fixes #10
2024-06-24 20:33:08 -03:00
ThePedroo
2017140e0e update: AppSpecializeArgs
This commit updates the AppSpecializeArgs to match newest one.
2024-06-22 23:19:37 -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
ThePedroo
d0da6efd79 update: some loader/ code to C
This commit changes some code from "loader" folder to use C keywords and not C++ only keywords.
2024-06-16 21:13:44 -03:00