Android通过libc查看open文件

# bionic/libc/async_safe/include/async_safe/log.h

#define MYLOGD(tag, format, ...) async_safe_format_log(ANDROID_LOG_DEBUG, tag, format, __VA_ARGS__)
#define MYLOGE(tag, format, ...) async_safe_format_log(ANDROID_LOG_ERROR, tag, format, __VA_ARGS__)
#define MYLOGI(tag, format, ...) async_safe_format_log(ANDROID_LOG_INFO, tag, format, __VA_ARGS__)


# bionic/libc/bionic/open.cpp
int open(const char* pathname, int flags, ...) {
  mode_t mode = 0;

  if ((flags & O_CREAT) != 0) {
    va_list args;
    va_start(args, flags);
    mode = static_cast<mode_t>(va_arg(args, int));
    va_end(args);
  }

  int uid = getuid();
  if (uid > 10000)
  {
    MYLOGI("nop", "file %s uid %d", pathname, uid);
  }
  return __openat(AT_FDCWD, pathname, force_O_LARGEFILE(flags), mode);
}

效果:

posted @ 2021-09-17 11:55  梦过无声  阅读(330)  评论(0编辑  收藏  举报