'Android Kernel space drivers
I am new to Android.
I have a question which is stuck in my mind all the time.
In android, we have framework which is written in Java. Then HAL which is written in C, these layers are glued through JNI layers. This part i understood.
Then say a driver (Example Camera driver), that should run in Kernel space.
Basically, as far I know, we shall use system call to invoke Camera device driver.
But in Android, I am cannot find any such IOCTL calls, where they are using a term called HIDL.
I don't know how the flow is going from User space calls to Kernel space driver call.
Could somebody clarify this?
Regards Prasath S.
Solution 1:[1]
HIDL is a system for communicating between code bases that may be compiled independently. It specifies data structures and method signatures,which are organized in interfaces that are collected into packages.
For more info about HIDL you can refer official site :-
https://source.android.com/devices/architecture/hidl/
For understanding flow from Userspace calls to Kernel space driver call I think, below stack overflow links may more helpful to you :-
Solution 2:[2]
framework(java)--call-->hidl_client(java/c)--binder-->hidl_server(c)(hal.so)--systemcall(ioctl)-->kernel--->driver(c)-->hardware(reg)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Janvi Vyas |
| Solution 2 | LiuYunli |
