Currently, inline_unhooker is not used in the code.
We still fix the logic to avoid confusion.
There is no feasible way to determinate if the parameter original is a
valid function pointer or a `const char` pointer.
We suppose it as a char pointer in the first step.
Even if dladdr could not find function name for an address given by
art_symbol_resolver, we should still process inline hook.
Close#32 as completed, close#39 as merged
Requested by #14, a switch is added to the release version.
Patch of msvamp rejected in original repository
mywalk added ui interface
Co-authored-by: mywalk <66966897+mywalkb@users.noreply.github.com>
1. Remove the usage of `tstring` since it is removed in the upstream.
2. In commit aa98da5, the return value of android::ResStringPool::setup
was mistaken.
3. We should also set a proper symbol resolver for native_api.
Open the parasitic manager using WebUI of KernelSU / APtach.
In the future the web page could become an alternative manager,
without parasitic manager at all.
See https://github.com/mywalkb/LSPosed_mod/issues/65 for details.
Co-authored-by: mywalk <66966897+mywalkb@users.noreply.github.com>
Note that RS_SUCCESS = 0 is removed in the commit
f4643b8d14d7cc94516b446ca77d952d0b986d50
of https://github.com/jmpews/Dobby
The CMake option DOBBY_GENERATE_SHARED is removed, we use dobby_static
explicitly.
Convert ScopedLocalRef to its reference, otherwise we get error:
no viable conversion from 'ScopedLocalRef<_jobject *>' (aka 'lsplant::ScopedLocalRef<_jobject *>') to 'jobject' (aka '_jobject *')
To make `clangd` work properly, one may need to make symbolic links
```
cd daemon
ln -sf $PWD/build/tools/debug/arm64-v8a/compile_commands.json build
```
Support for stripped library as libart.
We thus need to parse a new section `.gnu_debugdata`, compressed
with xz library, which is in elf header of the library.
After in memory decompression, new elf header is parsed to find
the section `.symtab`.
Co-authored-by: mywalk <66966897+mywalkb@users.noreply.github.com>
From Android 14 QPR3 and forward, the classloader of injected app (com.android.shell)
does not contain the apk manager, so in hook getClassLoader there is a new check when
it got a negative response the apk manager is injected in classloader, so parasitic
manager can start correctly.
Co-authored-by: mywalk <66966897+mywalkb@users.noreply.github.com>
1. Use JDK 21
2. Update android plugins for JDK 21
3. Update gradle wrapper
The new R8 engine will change more class names than before, we thus
need to save those needed ones.