(Continuation of frida/frida-gum#117.)
As described by @stevielavern:
When using Java.method.overload(...), the full name of native types must be used and not the letters representing these types in Java signatures. For instance int instead of I, byte instead of B, etc.
But when the parameter is an array of a native type, the letter must be used and not the full name.
For instance, if the method is method(int x, int y[]), overload must be used like this: method.overload("int", "[I") and not with [int orint[].
While not a big issue, this can be misleading/counter-intuitive.
A simpler way to avoid any confusion could be to use the signature of the method in overload(), for instance for the previous example I[I.
(Continuation of frida/frida-gum#117.)
As described by @stevielavern:
When using
Java.method.overload(...), the full name of native types must be used and not the letters representing these types in Java signatures. For instanceintinstead ofI,byteinstead ofB, etc.But when the parameter is an array of a native type, the letter must be used and not the full name.
For instance, if the method is
method(int x, int y[]), overload must be used like this:method.overload("int", "[I")and not with[intorint[].While not a big issue, this can be misleading/counter-intuitive.
A simpler way to avoid any confusion could be to use the signature of the method in
overload(), for instance for the previous exampleI[I.