Learning AOSP - Android Linux Device Driver

2,240
-1

Published on

Presentation for Android Australia Sydney group on 22/August/2013 at fishburners.org

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,240
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
61
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Learning AOSP - Android Linux Device Driver

  1. 1. Learning AOSP Android Linux Device Drivers 22nd August 2013 August 2013 @nanikjava ozandroid.info bit.ly/12r7yOr
  2. 2. ANDROID & LINUX
  3. 3. ANDROID LINUX DRIVERS  Android core low level  Software & Hardware drivers (mostly software)  Minimum tasks performed  Access via framework layer or library
  4. 4. 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
  5. 5. 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)
  6. 6. LAYERS INTERACTION
  7. 7. 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
  8. 8.  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
  9. 9. USB
  10. 10. 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
  11. 11. BENEFITS  Troubleshooting/Debugging  Extending framework and/or services  Helped in writing native code
  12. 12. RESOURCES  source.android.com  androidxref.com  Source code
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×