LINUX/android/kernel/fs/open.c
//注意,不能用filename, 这个是user space 空间地址
//应该使用 tmp->name
static int stTemp = 0;
long do_sys_open(int dfd, const char __user *filename, int flags, umode_t mode)
{
struct open_flags op;
int fd = build_open_flags(flags, mode, &op);
struct filename *tmp;
if (fd)
return fd;
tmp = getname(filename);
if (IS_ERR(tmp))
return PTR_ERR(tmp);
if ( stTemp > 3000 ) //开机前3000个文件不输出,不影响开机性能
{
if ( strcmp( current->comm , "system_server") == 0 ) //system_server 进程名字
{
printk("f %s %d\n", tmp->name, task_pid_nr(current));
}
}
else
{
stTemp++;
}
fd = get_unused_fd_flags(flags);
if (fd >= 0) {
[ 18.330467] f /system/framework/ethernet-service.jar.arm64.flock 478
[ 18.330891] f /system/framework/oat/arm64/ethernet-service.vdex 478
[ 18.331632] f /system/framework/oat/arm64/ethernet-service.odex 478