Created by: summershrimp
This problem mainly caused by get_application_name_helper
thinks that ptraced child is also early_inject, we cannot resolve executable_path
by readlink("/proc/self/exe")
But, when we use -use_ptrace
to start child process, we can read
executable path from /proc/self/exe
correctly. And also ptraced child process have already been through system loader. So we consider ptraced child is not early_inject
.
After this, the inject_ptrace
(parent process) always get SIGILL
signal. After digging it out, it's caused by signal_arch_init
set
vfp_query_signal_handler
to handle SIGILL, but inject_ptrace
forget to pass this signal to child. So we just pass it.
Also, in order to debugging privload_early_inject
, I send SIGSTOP
to child process before detach and invoke gdb in detach_and_exec_gdb
.