Binder
文章平均质量分 88
fighting-shiny
Android系统开发攻城狮
展开
-
Android 12 S 自定义Hal服务selinux权限添加
如果遇到如下错误,应该是漏了添加。自定义hal服务添加可参考。原创 2023-06-13 17:08:41 · 1540 阅读 · 5 评论 -
Unknown exception code: 1 msg null
此接口在aidl中用的是boolean,而C++Bn端中用的是bool,虽都是布尔类型,两者是有区别的,通过将getIPDMotorMovingState返回值修改成了int解决此问题。点击按键后,通过AIDL与Native service进行了通信。getIPDMotorMovingState函数返回值是布尔类型,导致了此问题。点击IPD调节按键,按键频繁了会触发此错误,不频繁则不会引起此问题。原创 2023-06-13 13:30:12 · 131 阅读 · 1 评论 -
Android 12 S HIDL Service创建流程
HIDL 这个机制的目的,主要是为了把框架(framework)与 HAL 进行隔离,使得框架部分可以直接被覆盖、更新,而不需要重新对 HAL 进行编译。HAL 的部分将会放在设备的 /vendor 分区中,并且是由设备供应商(vendors)或 SOC 制造商来构建。这使得框架部分可以通过 OTA 方式更新,同时不需要重新编译 HAL。这种设计被称为Treble机制,从Android 8.0引入。原创 2023-04-28 17:47:06 · 3087 阅读 · 6 评论 -
Android 12 S Native Service的创建流程
其中需注意的是IInterface中的纯虚方法,在Bn和Bp去实现的时候,要一模一样。include/CustomizeManagerService.h中新增如下内容。CustomizeManagerService.cpp中新增如下内容。在customize下新增目录include用于存放头文件。新增目录名:customize。原创 2023-04-23 15:53:22 · 988 阅读 · 14 评论 -
Android 12 S ServiceManager原理
ServiceManager是Binder通信的核心部分,提供服务注册以及查询的功能。在 Android 11 之前的版本里,它是直接使用 open、mmap、ioctl 等 api 与 binder 驱动交互。而从 Android 11 开始,ServiceManager放弃使用这些较底层的接口,转向 libbinder 库和 AIDL。原创 2023-04-23 14:26:07 · 1497 阅读 · 3 评论