Learning AOSP - Android Linux Device Driver
-
Upload
nanik-tolaram -
Category
Technology
-
view
3.222 -
download
4
Transcript of Learning AOSP - Android Linux Device Driver
![Page 1: Learning AOSP - Android Linux Device Driver](https://reader035.fdocuments.us/reader035/viewer/2022081417/58f1e82f1a28abd0228b458f/html5/thumbnails/1.jpg)
Learning AOSPAndroid Linux Device Drivers22nd August 2013
@nanikjava
ozandroid.info
bit.ly/12r7yOr
![Page 2: Learning AOSP - Android Linux Device Driver](https://reader035.fdocuments.us/reader035/viewer/2022081417/58f1e82f1a28abd0228b458f/html5/thumbnails/2.jpg)
ANDROID & LINUX
![Page 3: Learning AOSP - Android Linux Device Driver](https://reader035.fdocuments.us/reader035/viewer/2022081417/58f1e82f1a28abd0228b458f/html5/thumbnails/3.jpg)
ANDROID LINUX DRIVERS Android core low level
Software & Hardware drivers (mostly software)
Minimum tasks performed
Access via framework layer or library
![Page 4: Learning AOSP - Android Linux Device Driver](https://reader035.fdocuments.us/reader035/viewer/2022081417/58f1e82f1a28abd0228b458f/html5/thumbnails/4.jpg)
MAINLINE VS VENDOR LINUX v3.3 driver merge (excl wakelock)
v3.5 wakelock merge
Patch prior to v3.5 (different directory)
Vendor “normally” releases Linux kernel
![Page 5: Learning AOSP - Android Linux Device Driver](https://reader035.fdocuments.us/reader035/viewer/2022081417/58f1e82f1a28abd0228b458f/html5/thumbnails/5.jpg)
ANDROID DRIVERS ashmem (mm/ashmem.c) binder (drivers/staging/android/binder.c) lowmemorykiller (drivers/staging/android/lowmemorykiller.c) ram_console (drivers/staging/android/ram_console.c) timed_gpio (drivers/staging/android/timed_gpio.c) usb – otg, adb, gadget, accessories, etc (drivers/usb/gadget) logger (drivers/staging/android/logger.c) alarm (drivers/staging/android/alarm.c) wakelock (kernel/power/wakelock.c)
![Page 6: Learning AOSP - Android Linux Device Driver](https://reader035.fdocuments.us/reader035/viewer/2022081417/58f1e82f1a28abd0228b458f/html5/thumbnails/6.jpg)
LAYERS INTERACTION
![Page 7: Learning AOSP - Android Linux Device Driver](https://reader035.fdocuments.us/reader035/viewer/2022081417/58f1e82f1a28abd0228b458f/html5/thumbnails/7.jpg)
BINDER Kernel
drivers/staging/binder.c
Framework frameworks/base/core/java/android/os/Binder.java frameworks/base/core/jni/android_util_Binder.java frameworks/native/cmds/servicemanager/binder.c frameworks/native/cmds/servicemanager/service_manager.c
Virtual Filesystem /sys/kernel/debug/binder → debugging /dev/binder → used internally by framework
![Page 8: Learning AOSP - Android Linux Device Driver](https://reader035.fdocuments.us/reader035/viewer/2022081417/58f1e82f1a28abd0228b458f/html5/thumbnails/8.jpg)
Kernel drivers/staging/android/logger.c
Framework frameworks/base/core/java/android/util/Log.java frameworks/base/core/jni/android_util_Log.cpp system/core/liblog/logd_write.c
Virtual Filesystem /dev/events /dev/main /dev/radio /dev/system
LOGGER
![Page 9: Learning AOSP - Android Linux Device Driver](https://reader035.fdocuments.us/reader035/viewer/2022081417/58f1e82f1a28abd0228b458f/html5/thumbnails/9.jpg)
USB
![Page 10: Learning AOSP - Android Linux Device Driver](https://reader035.fdocuments.us/reader035/viewer/2022081417/58f1e82f1a28abd0228b458f/html5/thumbnails/10.jpg)
LINUX CONFIG
CONFIG_ANDROID=y CONFIG_ANDROID_BINDER_IPC=y CONFIG_ASHMEM=y CONFIG_ANDROID_LOGGER=y CONFIG_ANDROID_TIMED_OUTPUT=y CONFIG_ANDROID_LOW_MEMORY_KILLER=y
![Page 11: Learning AOSP - Android Linux Device Driver](https://reader035.fdocuments.us/reader035/viewer/2022081417/58f1e82f1a28abd0228b458f/html5/thumbnails/11.jpg)
BENEFITS
Troubleshooting/Debugging
Extending framework and/or services
Helped in writing native code
![Page 12: Learning AOSP - Android Linux Device Driver](https://reader035.fdocuments.us/reader035/viewer/2022081417/58f1e82f1a28abd0228b458f/html5/thumbnails/12.jpg)
RESOURCES
source.android.com
androidxref.com
Source code