So you want to have a new HAL loaded for an existing driver Or you would like both a new driver written and its matching HAL?
I think we could install .so's and call dlopen's from NDK but all of that requires the device to be 'rooted' I couldnt think of a way where what you say is possible on a non-rooted device that is already in market. (I am not an expert BTW so not sure other experts may chime in). thanks Sujai. On Tue, Jul 3, 2012 at 8:31 PM, Thomas Moore <[email protected]>wrote: > Perfect, thanks! That is a really great writeup. > > So if I wanted to implement some kind of device that doesn't follow the > supported behavior or interfaces expected by the upper services (say for > example a sensor that is not one of the types > used in Android), can I load in a hardware library and interact with my > device directly through the HAL from within an application? Would this be > done through the NDK maybe? > It seems like some of the applications for custom kernels must do > something like this as from what I can tell their modded drivers have > additional functionality than is expected by Android. > > Thanks, > Tom > > On Tuesday, 3 July 2012 11:52:28 UTC+10, Sujai Antony wrote: >> >> Hi, >> For the high level stuff, I made a brief post around this topic. >> Please see if you find it useful: >> http://sujaiantony.wordpress.**com/2012/06/25/an-android-101-** >> hardware-and-hal/<http://sujaiantony.wordpress.com/2012/06/25/an-android-101-hardware-and-hal/> >> >> >> The ti-wiki page I mentioned in the Reference section has a nice step by >> step explanation on writing a new driver. >> >> thanks >> Sujai. >> sujaiantony.wordpress.com >> >> On Mon, Jul 2, 2012 at 6:42 PM, Thomas Moore <[email protected]>wrote: >> >>> Hi guys, >>> >>> I have a fairly high level question about the steps to go through when >>> adding a new device driver. From what I can tell, drivers consist of a >>> kernel portion and then a shared library in the AOSP that gets used by the >>> HAL. What I am >>> wondering is how the HAL accesses the *.so libraries. If I was to add a >>> new camera driver for example, do I need to name it libcamera so that it >>> gets picked up by the HAL or is there a way to specify a new name and link >>> it in? >>> >>> Also can applications access the hardware directly or do they always >>> need to go through the higher level services? For example, if I were to add >>> a new kind of sensor, do I need to somehow add this in to the sensor >>> service to use the APIs in my app >>> or can I do a dlopen() and interact with the hardware that way? >>> >>> Thanks! >>> >>> -- >>> unsubscribe: >>> android-porting+unsubscribe@**googlegroups.com<android-porting%[email protected]> >>> website: >>> http://groups.google.com/**group/android-porting<http://groups.google.com/group/android-porting> >>> >> >> -- > unsubscribe: [email protected] > website: http://groups.google.com/group/android-porting > -- unsubscribe: [email protected] website: http://groups.google.com/group/android-porting
