Android 12.0新增自定义HIDL问题记录

代码

流程和代码可以参考这位大佬的

https://blog.csdn.net/learnframework/article/details/134621556

主要记录发现的问题以及解决方式。

1.首先最外层的bp不要使用update-makefiles.sh 去生成 ,基本上interface下面的文件夹都会被影响,可能会导致编译问题。

bp使用ir目录下面的直接改一下就行了。这里我也贴一下

java 复制代码
hidl_interface {
    name: "android.hardware.hidltest@1.0",
    root: "android.hardware",
    srcs: [
        "ITest.hal",
    ],
    interfaces: [
        "android.hidl.base@1.0",
    ],
    gen_java: true,
}

2.然后编译时候的第一个报错

No more HIDL interfaces can be added to Android. Please use AIDL

修改 system/tools/hidl/build/hidl_interface.go:498

allAospHidlInterfaces末尾新增

"android.hardware.hidltest@1.0": true,

  1. 第二个报错 If this is a new package, add it to the latest framework compatibility matrix.
    往compatibility_matrix.6.xml和compatibility_matrix.current.xml添加hdil配置。
java 复制代码
  <hal format="hidl" optional="true">
        <name>android.hardware.hidltest</name>
        <version>1.0</version>
        <interface>
            <name>ITest</name>
            <instance>default</instance>
        </interface>
    </hal>

现在可以编译通过了,便于修改后直接编译打包。在device/generic/goldfish/vender.mk添加一下。我这里用的target就是模拟器的

lunch sdk_phone_x86_64

java 复制代码
PRODUCT_PACKAGES += \
    android.hardware.audio.service \
    android.hardware.hidltest@1.0-service

最后就是selinux的配置,按照patch来就,由于大佬文章是图片,这里我贴一下新增的文件的内容

system/sepolicy/vendor/hal_hidltest_default.te

java 复制代码
type hidltest, domain;
type hidltest_hwservice,hwservice_manager_type;
type hidltest_exec, exec_type, vendor_file_type, file_type;
hwbinder_use(hidltest);
init_daemon_domain(hidltest)
add_hwservice(hidltest, hidltest_hwservice)

allow hidltest hwservicemanager_prop:file {map read open getattr};
allow hidltest system_file:dir {read open getattr search};

最后结果

相关推荐
CYRUS_STUDIO16 分钟前
LLVM 全面解析:NDK 为什么离不开它?如何亲手编译调试 clang
android·编译器·llvm
NewChapter °17 分钟前
如何通过 Gitee API 上传文件到指定仓库
前端·vue.js·gitee·uni-app
CYRUS_STUDIO22 分钟前
静态分析神器 + 动态调试利器:IDA Pro × Frida 混合调试实战
android·逆向
g_i_a_o_giao3 小时前
Android8 binder源码学习分析笔记(一)
android·java·笔记·学习·binder·安卓源码分析
翻滚丷大头鱼3 小时前
android 四大组件—BroadcastReceiver
android
人生游戏牛马NPC1号3 小时前
学习 Android (二十) 学习 OpenCV (五)
android·opencv·学习
2501_916008894 小时前
uni-app iOS 日志与崩溃分析全流程 多工具协作的实战指南
android·ios·小程序·https·uni-app·iphone·webview
文 丰4 小时前
【AndroidStudio】官网下载免安装版,AndroidStudio压缩版的配置和使用
android
WillWolf_Wang4 小时前
Linux 编译 Android 版 QGroundControl 软件并运行到手机上
android·linux·智能手机
fatiaozhang95274 小时前
数码视讯TR100-OTT-G1_国科GK6323_安卓9_广东联通原机修改-TTL烧录包-可救砖
android·xml·电视盒子·刷机固件·机顶盒刷机