user17441393
user17441393

Reputation:

Creating a Custom Android ROM

I am preparing to build a custom Android ROM and I have come across some misunderstandings that I need clarified before moving forward. My Android ROM will be rebranded and I would like to customize the OS stack but I am not sure I fully understand the concept of HAL(Hardware abstraction layer). I understand that I can create kernel modules to extend the OS but I am not sure what the HAL purpose is within the stack. How does the HAL and the kernel interact if at all?

What is the HAL? When is the HAL implemented?

Another layer of the stack I am looking at is the Android System Services layer. Would it be possible to add / modify a system service on the stack? If so, would I need to create a Binder IPC for the System Service to be called from the application framework?

I have read the documentation from the AOSP website but that is where my misunderstandings is coming from.

If anyone can help me overcome these shortcomings I would greatly appreciate it!

Upvotes: 0

Views: 312

Answers (1)

Ethan Joseph
Ethan Joseph

Reputation: 305

Ok, so I can answer your question about HAL but not so much about messing with Android services.

HAL is basically all of the files in the /dev directory on Linux systems. These files communicate with the kernel module/driver when you write to it. This basically, if the driver of the certain device you want to write to allows it, allows you to communicate with the device from a very high level point. Take a look into basic tutorials about writing kernel modules and udev. In the case of building Android though, you probably won't have to mess around with this and know it through and through unless you are making custom kernels and stuff.

Upvotes: 0

Related Questions