You can't hex patch an int hex value to a void function like you have done here...
private void SetHpLength(float length) { }
To edit the float parameter in this function you need to hook it, not hex patch
Sorry I use Aide not Android Studio so not sure about tutorial. You can try searching on here, as for the error you're getting I'm not sure what else to suggest. "App is not compatible with your phone" error is usually due to architecture compatibility.
What about your offsets etc? Are they dumped from the 64bit version of the game you're modding, is your lib.so file in a folder called arm64-v8a or armeabi-v7a?
In your main.cpp, make sure your code/offsets are under this line...
#if defined(__aarch64__) //To compile this code for arm64 lib...
It's likely you have a device which chip supports 64bit only (like the Snapdragon 8 Gen 3) meaning you can only install 64bit apk's.
The solution would be to change your lgl project to arm64-v8a
There's a method in that class called "IsEmemy" which is probably a bool with an int parameter to check the team color. It might be better to use that instead of "get_Team"
Looks like it uses enum which is the same as int to determine the team color.
I could be wrong but I'd hook it like this...
int (*General_get_Team)(void *instance);
Then use it in in a hook like so...
void (*old_Update)(void *instance);
void Update(void *instance) {
if(instance!=NULL) {...
I could be wrong but I'd imagine it would be something like this...
bool (*get_isLocalPlayer)(void *instance);
void (*old_ESP_Update)(void *instance);
void ESP_Update(void *instance) {
if(instance!=NULL) {
bool isLocal = get_isLocalPlayer(instance);
if(ESP) {...
Is there an update function in the same class? Then you could do it like this...
void (*set_orthographic)(void *instance, bool value);
void (*setorthographicSize)(void *instance, float value);
void (*old_Update)(void *instance);
void Update(void *instance) {
if(instance!=NULL) {...
AFAIK you need an Update or similar function to hook void to. Since you're hooking a method and not a field offset you could use an update function from a different class. It really depends on the game. Is there not an update function in the same class as public void Charge?
It could be...
You need to hook void Jump through a void Update function. Look to see if there is Update, LateUpdate, or FixedUpdate in the same class then you can hook it like this...
bool AlwaysJump;
void (*Jump)(void *instance);
void (*old_Update)(void *instance);
void Update(void *instance) {...
You need to hook an update function from the class then hook void addPoints(int pointsToAdd) {} through that like this....
bool AddPoints;
void (*addPoints)(void *instance, int value);
void (*old_Update)(void *instance);
void Update(void *instance) {
if(instance!=NULL) {...
The 3rd parameter in the method you're hooking (NormalDamage) is enemy, you need to define the enemy class there, the 4th parameter (1.0) is the multiplier, I've just put 1.0 but you can change it to whatever you want.
What game are you modding