Androidbinderhandle是如何生成的?
创始人
2024-10-06 12:03:39
0

在 Android Binder 中,binder_handle_t 被定义为 uint32_t 类型。它通常是通过调用 open_driver() 函数来获取的。open_driver() 函数的源代码如下:

#ifndef NO_BINDER_OPEN_DRIVER static int open_driver() { int fd;

if (s_fd >= 0) {
    return s_fd;
}

#if defined(HAVE_ANDROID_OS) fd = open("/dev/binder", O_RDWR); if (fd >= 0) { goto success; } fd = open("/dev/binder", O_RDONLY); if (fd >= 0) { goto success; } #elif defined(HAVE_ANDROID_OSLO) fd = open("/dev/hwbinder", O_RDWR); if (fd >= 0) { goto success; } fd = open("/dev/hwbinder", O_RDONLY); if (fd >= 0) { goto success; } #else // platform without binder #endif

ALOGE("binder: open failed");
return -1;

success: fcntl(fd, F_SETFD, FD_CLOEXEC); return s_fd = fd; } #endif // NO_BINDER_OPEN_DRIVER

上面的代码中,通过 open() 函数打开 "/dev/binder" 或者 "/dev/hwbinder" 设备,并将打开的文件描述符返回。如果打开失败则返回 -1。如果打开成功,则在成功的分支中将文件描述符设置关闭时自动释放,并将其保存在静态变量 s_fd 中,并将 s_fd 的值作为函数的返回值返回。这个 s_fd 就是 binder 驱动的打开文件描述符,在接下来的操作中可以使用它向 binder 驱动发送命令或者接收命令。

相关内容

热门资讯

6分钟辅助!hhpoker是真... 6分钟辅助!hhpoker是真的假的,hhpoker真的有透视吗,演示教程(真是有挂)1、每一步都需...
第七分钟辅助!we poker... 第七分钟辅助!we poker插件,we poker免费辅助器,手筋教程(有挂方式)暗藏猫腻,小编详...
七分钟辅助!aa poker辅... 七分钟辅助!aa poker辅助包,pokemmo脚本辅助器下载,讲义教程(有挂秘籍)1、pokem...
第四分钟辅助!wepoker辅... 第四分钟辅助!wepoker辅助器安装包定制,aapoker透视脚本,大纲教程(有挂总结)所有人都在...
第四分钟辅助!wpk透视辅助靠... 第四分钟辅助!wpk透视辅助靠谱吗,wepoker透视苹果系统,诀窍教程(有挂猫腻);运wepoke...
七分钟辅助!aapoker透视... 七分钟辅助!aapoker透视脚本入口,wejoker开挂,学习教程(有挂教程)1、打开软件启动之后...
第四分钟辅助!淘宝买wepok... 第四分钟辅助!淘宝买wepoker透视有用吗,wpk俱乐部怎么作弊,积累教程(有挂规律)1、下载好淘...
6分钟辅助!we-poker软... 6分钟辅助!we-poker软件,购买的wpk辅助在哪里下载,积累教程(有挂技巧)购买的wpk辅助在...
第2分钟辅助!如何下载wepo... 第2分钟辅助!如何下载wepoker安装包,newpoker怎么安装脚本,教程书教程(今日头条)1、...
4分钟辅助!wepoker钻石... 4分钟辅助!wepoker钻石怎么看底牌,wepoker辅助器有哪些功能,法门教程(有挂详细)该软件...