Fix inconsistent class identifier

This commit is contained in:
solohsu 2019-03-16 15:41:02 +08:00
parent e2fb9709e4
commit 20fce38004
2 changed files with 7 additions and 3 deletions

View File

@ -42,7 +42,10 @@ public class HookerDexMaker {
public static final String METHOD_NAME_SETUP = "setup";
public static final TypeId<Object[]> objArrayTypeId = TypeId.get(Object[].class);
private static final String CLASS_DESC_PREFIX = "L";
private static final String CLASS_NAME_PREFIX = "ed_";
/**
* Note: this identifier is used in native codes to pass class access verification.
*/
private static final String CLASS_NAME_PREFIX = "EdHooker_";
private static final String FIELD_NAME_HOOK_INFO = "additionalHookInfo";
private static final String FIELD_NAME_METHOD = "method";
private static final String PARAMS_FIELD_NAME_METHOD = "method";

View File

@ -52,8 +52,9 @@ static bool onIsInSamePackageCalled(void *thiz, void *that) {
std::string storage1, storage2;
const char *thisDesc = (*getDesc)(thiz, &storage1);
const char *thatDesc = (*getDesc)(that, &storage2);
if (strstr(thisDesc, "EdHooker") != nullptr
|| strstr(thatDesc, "EdHooker") != nullptr
// Note: these identifiers should be consistent with those in Java layer
if (strstr(thisDesc, "EdHooker_") != nullptr
|| strstr(thatDesc, "EdHooker_") != nullptr
|| strstr(thisDesc, "com/elderdrivers/riru/") != nullptr
|| strstr(thatDesc, "com/elderdrivers/riru/") != nullptr) {
return true;