Android Linker Entry
通过实际编译的库文件,来反推linker entry。
app进程入口
众所周知,android的app进程,都是通过zygote fork出来的,而zygote进程的exec文件为(64位系统):app_process64。
从aosp编译出的系统,通过readelf查看app_process64的program headers可见:
xuwakao@chiefhsing-PC:~/android-11.0.0_r29/out/target/product/crosshatch$ ~/Android/Sdk/ndk/20.0.5594570/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/aarch64-linux-android/bin/readelf -l ./system/bin/app_process64
Elf file type is DYN (Shared object file)
Entry point 0x3000
There are 12 program headers, starting at offset 64
Program Headers:
Type Offset

本文详细探讨了Android系统的Linker入口,从app进程的入口点开始,解析linker64的入口地址,深入到__dl__start源码,并分析了ld script如何指定程序入口,揭示了Android进程启动的内在机制。
最低0.47元/天 解锁文章
1270

被折叠的 条评论
为什么被折叠?



