-
-
[求助]so文件中添加新section遇到问题
-
发表于:
2018-3-28 16:45
2640
-
各位大佬,小菜在so中添加新的section过程中计算so文件的内存映射末尾地址时的结果比源文件的so的大小要小,libnative-lib.so的大小是972132字节,计算出的内存映射大小,128016,麻烦大佬们指导一下,对了,这个so文件是我运行时/build/intermediates中的so文件,并不是打包所生成的so。
内存映射大小计算函数
public static int align(int addr,int align) {
if (align>addr) {
return addr;
}
int offset=addr%align;
int b=addr+(align-offset);
return b;
}
添加新段方法
public static byte[] makeNewSection(byte[] src) {
byte[] name = newSectionName.getBytes();
byte[] newSrc =new byte[sectionAddr+newSectionNameLen+newSectionSize];
System.out.println(src.length);
System.out.println(sectionAddr+newSectionNameLen+newSectionSize);
newSrc=Utils.write2byte(newSrc, 0, src);
newSrc=Utils.write2byte(newSrc, sectionAddr, name);
return newSrc;
}
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课