-
-
[求助] 关于Anroid hook art
-
发表于: 2017-5-13 17:00 2986
-
小弟新手, 在开发app的时候,遇到日志:
Failed to open dex files from /data/app/myapp/base.apk because: Failure to verify dex file '/data/app/myapp/base.apk': Duplicate interface: myinterface
经过查询代码,发现是来自这个地方的日志
2037 for (uint32_t i = 1; i < size; i++) { 2038 uint32_t idx1 = interfaces->GetTypeItem(i).type_idx_; 2039 for (uint32_t j =0; j < i; j++) { 2040 uint32_t idx2 = interfaces->GetTypeItem(j).type_idx_; 2041 if (UNLIKELY(idx1 == idx2)) { 2042 ErrorStringPrintf("Duplicate interface: '%s'", dex_file_->StringByTypeIdx(idx1)); 2043 return false; 2044 } 2045 } 2046 } 因为日志只打出来了idx1 的信息, 但我同时也需要idx2的信息 来确定到底是哪两个接口重复了。 现在有两种解决方法: 1,编译android 代码 ,修改这个地方的逻辑,比如变成 ErrorStringPrintf("Duplicate interface: '%s', '%s'", dex_file_->StringByTypeIdx(idx1), ); 但是这种方法,首先要下载android 源码,并且要编译,耗时不可谓不长,并且硬件条件有限,没有多余的200G linux空间来做 2,用Hook 或者调试 如果可以,这个方案比较能接受
因此我想问的是,这个方案2可行么,可行的话?
赞赏
赞赏
雪币:
留言: