so 文件加载过程

so文件加载流程

image

记载步骤

  1. java 加载
    loadLibrary=>doLoad=>nativeLoad

  2. native 加载

  • 初始化阶段
  • 加载到内存
    1. 打开so文件
    2. 映射so到内存空间
    3. 解析 dynamic section
  • 链接阶段

3.so加载关键函数
dlopen -> 打开so文件
dlsym -> 获取JNI_Onload函数地址,调用该函数
dlerror -> 处理错误

4.初始化
init
init_array

5.常用类
log

6.root权限
读写内存数据-》内存页属性的修改 -〉 r/w/x chmod 777

7.下断点时机 (init init_array) JNI_OnLoad

注意:so加载了program header 没有加载session header