Android13 新增 Stable AIDL接口

2024-06-04 5583阅读

问题描述:

我需要在netd aidl 中添加新的接口:

设置网卡MAC地址:

void setHardwareAddress(in @utf8InCpp String iface, in @utf8InCpp String hwAddr);

背景:

Android 10 添加了对稳定的 Android 接口定义语言 (AIDL) 的支持,这是一种跟踪由 AIDL 接口提供的应用编程接口 (API)/应用二进制接口 (ABI) 的新方法。稳定的 AIDL 与 AIDL 的主要区别如下:

在构建系统使用 aidl_interfaces 定义接口。
接口只能包含结构化数据。对于代表所需类型的 Parcelable,系统会根据其 AIDL 定义自动创建,并自动对其进行编组和解组。
可以将接口声明为“稳定”接口(向后兼容)。声明之后,会在 AIDL 接口旁的一个文件中对这些接口的 API 进行跟踪和版本编号。
 

添加以后:使用如下指令编译模块

mmm /frameworks/libs/net/common/netd

报错提示说需要更新api:

API dump for the current version of AIDL interface setHardwareAddress does not exist.

Run m netd_aidl_interface-update-api or add unstable: true to the build rule for the interface if it does not need to be versioned

我们按照提示更新api:

make netd_aidl_interface-update-api 更新当前api 此命令执行成会更新如下目录下的aidl文件

QSSI.13\frameworks\libs\net\common\netd\aidl_api\netd_aidl_interface\current 

Android13 新增 Stable AIDL接口 第1张

因为我们是在原来的aidl文件内新增的接口, 所以我们需要使用如下指令重新生成一个version 的api

make netd_aidl_interface-freeze-api 此命令会生成新的版本号的api:之前最大是10,更新以后多了11

QSSI.13\framew


    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]