SlideShare a Scribd company logo
Android internals
     Egor Elizarov
     SPbSU 2012
Legal info
   Android internals by Egor Elizarov is licensed under a
    Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License

   You are free to
      – copy, distribute, display, and perform the work
      – make derivative works
   Under the following conditions
       – Attribution. You must give the original author credit
       – Share Alike. If you alter, transform, or build upon this work, you may
         distribute the resulting work only under a license identical to this one
   All pictures and trademarks are the property of their respective owners. Use of
    these trademarks and pictures is subject to owners permissions.
   Corrections, suggestions, contributions and translations are welcome!



                                          2                                 Egor Elizarov SPbSU 2012
Lecture 10



                          Debugging / profiling
                          WiFi / Bluetooth / RIL



                                                   yegor.yelizarov(at)gmail.com

Rev: 1.1                                          http://vk.com/android_internals
Last update: 06/01/2012


                                    3                              Egor Elizarov SPbSU 2012
Previous time
   Suspend/Resume process
   Android PM main components
   Android Input subsystem
   *.kl, *.kcm, *.idc configuration files
   Sensor subsystem
   Input noise reduction approaches
   Android data storage


                                  4          Egor Elizarov SPbSU 2012
Useful host/target configuration




               5            Egor Elizarov SPbSU 2012
Debugging/profiling agenda


    Very good presentation about debugging &
    profiling by Tim Bird

    Most popular approaches

    Tools covered by Tim in brief

    Few words about not covered approaches


                          6                    Egor Elizarov SPbSU 2012
Debugging approaches




         7             Egor Elizarov SPbSU 2012
Logging

    logcat – obtaining android log
    – For both C/C++ (LOGE) & Java (Log.e) code
    – Have rich formatting options


    dmesg – obtatining kernel log
    – printk()
    – Extra logs from userspace through /dev/kmsg


    Stdio redirection
    – For both Java (log.redirect-stdio) & Native (xargs) code

                                8                         Egor Elizarov SPbSU 2012
GNU debugger (gdb)

    DDD can be used as graphic backend

    On target
    
        $ gdbserver :1234 --attach pid
    
        Or $gdbserver :1234 /system/bin/app

●
    On host
    
        $ adb forward tcp:1234 tcp:1234 && gdbclient app :1234 app
    
        Or $ arm-eabi-gdb
    
        # file ./out/target/product/generic/symbols/system/bin/app_process
    
        # set solib-search-path
        ./out/target/product/generic/symbols/system/lib
    
        # target remote target_ip:1234

                                      9                            Egor Elizarov SPbSU 2012
Google debuggers


    Fastboot
    – Protocol & tool to communicate with host over USB
    – Install images, erase partitions, booting from host
    – Supported in UBoot


    ADB
    – Remote shell, install, file copy, etc.
    – Work over Network/USB



                                      10                    Egor Elizarov SPbSU 2012
Tracing & dumping

    Strace
    – Shows system calls for a process (or set of processes)


    Dalvik Debug Monitor Servic (DDMS)
    – Integrated into Eclipse
    – Provides port-forwarding services, screen capture on the device,
      thread and heap information on the device, logcat and much more


    Dumpsys / Dumpstate
    – Dumps huge amounts of information about the system, including
      status, counts and statistics
    – Dumpsys show status information from Android service

                                    11                           Egor Elizarov SPbSU 2012
Virtual Network Computing


    VNC - Graphical desktop sharing system

    Transmits input events from host to target

    Transmits screen updates from target to host

    On target
    – androidvncserver &


    On host
    – vncviewer target_ip:5901


                                 12              Egor Elizarov SPbSU 2012
Profiling approaches




         13            Egor Elizarov SPbSU 2012
CPU and memory statistics

    Common profiling workflow



    Smem
    – Analyze of system-wide memory usage


    OProfile
    – CPU usage statistic for both kernel & userspace
    – Monitors execution point periodically
    – Should be enabled in kernel

                                    14                  Egor Elizarov SPbSU 2012
Tracing


    Bootchart
    – Analyze system booting process
    – init should be recompiled to add Bootchart support


    TraceView
    – Java methods tracing
    – Can be used with DDMS




                                   15                      Egor Elizarov SPbSU 2012
Benchmarks


    Rowboat bench
    – Set of benchmarks for CPU, 2D, 3D, etc.
    – Developed by Rowboat team


    0xbench
    – Another set of benchmarks
    – Developed by 0xlab team


    Lots of benchmarks in Google Play

                                   16           Egor Elizarov SPbSU 2012
Linux Trace Toolkit next generation


    Work for both kernel and userspace

    Useful to debug threads and processes

    Allow to trace only some events

    Allow userspace events (/mnt/debugfs/ltt/write_event)

    Kernel patches + ltt-control + ltt-viewer


                               17                      Egor Elizarov SPbSU 2012
Add LTTng support to Android




             18         Egor Elizarov SPbSU 2012
Different tricks

    Activity Manager - control applications
    – am start -a android.intent.action.MAIN -n
      com.android.camera/com.android.camera.Camera &


    input keyevent X – send keyboard events

    sendevent – send touch events

    setprop/getprop - control system properties

    sqlite - access database

    start/stop - restart whole system
                                     19                Egor Elizarov SPbSU 2012
WiFi in Android


    Supports IEEE 802.11 abgn

    Supports both IPv4 and IPv6

    Based on customized wpa_supplicant

    Wifi drivers compiled as modules (Wifi HAL
    can changed to support built-in drivers)


                         20                 Egor Elizarov SPbSU 2012
Wifi subsystem




      21         Egor Elizarov SPbSU 2012
Porting Wifi driver




         22           Egor Elizarov SPbSU 2012
Bluetooth in Android


    Bluetooth is covered by IEEE 802.15.1

    Android BT is based on the BlueZ stack

    Android provides subset of BlueZ functionality

    Android supports point-to-point and multiple-
    point connections

    Supports maximum 9 simultaneous connections

                          23                   Egor Elizarov SPbSU 2012
Bluetooth workflow




        24           Egor Elizarov SPbSU 2012
Bluetooth subsystem




         25           Egor Elizarov SPbSU 2012
RIL in Android


    Most devices have separate Radio Frequency
    module for signal strength measurement etc.

    Modem often have own CPU with running OS
    (Ex: Mentor Nucleus)

    Usually have firmware

    Often kernel interface to these devices is PPP

                            26                  Egor Elizarov SPbSU 2012
RIL subsystem




      27        Egor Elizarov SPbSU 2012
Next Time





    Exam




               28      Egor Elizarov SPbSU 2012
Useful links


    http://vk.com/android_internals


    http://elinux.org/images/c/c9/Android-tips-and-tricks-2010-10.pdf


    http://developer.android.com/guide/developing/debugging/index.html


    http://source.android.com/tech/debugging/native-memory.html


    http://developer.android.com/guide/developing/debugging/ddms.
    html




                                  29                          Egor Elizarov SPbSU 2012
Useful links (2)


    http://code.google.com/p/android-vnc-server/wiki/README


    http://softteco.blogspot.com/2011/03/android-low-level-shell-
    click-on-screen.html


    http://lttng.org/


    http://softteco.blogspot.com/2011/03/android-low-level-shell-
    click-on-screen.html


    http://www.kandroid.org/online-pdk/guide/telephony.html


                                 30                         Egor Elizarov SPbSU 2012
Thanks to


    Sergey Matyukevich for review and advices
    (www.linkedin.com/pub/sergey-
    matyukevich/31/889/769)

    Nikolay F. Fominykh for review and advices

    Vladimir Barinov for review and advices
    (http://www.linkedin.com/pub/vladimir-
    barinov/2a/18a/bab)


                            31                   Egor Elizarov SPbSU 2012

More Related Content

What's hot

Android internals 01 - Basic concepts of mobile platforms (rev_1.1)
Android internals 01 - Basic concepts of mobile platforms (rev_1.1)Android internals 01 - Basic concepts of mobile platforms (rev_1.1)
Android internals 01 - Basic concepts of mobile platforms (rev_1.1)
Egor Elizarov
 
Android internals 00 - Introduction (rev_1.1)
Android internals 00 - Introduction (rev_1.1)Android internals 00 - Introduction (rev_1.1)
Android internals 00 - Introduction (rev_1.1)
Egor Elizarov
 
Learning AOSP - Android Linux Device Driver
Learning AOSP - Android Linux Device DriverLearning AOSP - Android Linux Device Driver
Learning AOSP - Android Linux Device Driver
Nanik Tolaram
 
Android Booting Sequence
Android Booting SequenceAndroid Booting Sequence
Android Booting Sequence
Jayanta Ghoshal
 
Android 10 Internals Update
Android 10 Internals UpdateAndroid 10 Internals Update
Android 10 Internals Update
Opersys inc.
 
OWF12/PAUG Conf Days Alternative to google's android emulator, daniel fages, ...
OWF12/PAUG Conf Days Alternative to google's android emulator, daniel fages, ...OWF12/PAUG Conf Days Alternative to google's android emulator, daniel fages, ...
OWF12/PAUG Conf Days Alternative to google's android emulator, daniel fages, ...Paris Open Source Summit
 
Exoplayer 2
Exoplayer  2Exoplayer  2
Exoplayer 2
TSE-JU LIN(Louis)
 
Android 10
Android 10Android 10
Brillo / Weave Internals
Brillo / Weave InternalsBrillo / Weave Internals
Brillo / Weave Internals
Opersys inc.
 
Memory Management in Android
Memory Management in AndroidMemory Management in Android
Memory Management in Android
Opersys inc.
 
The Android graphics path, in depth
The Android graphics path, in depthThe Android graphics path, in depth
The Android graphics path, in depth
Chris Simmonds
 
Customizing AOSP For Different Embedded Devices And Integration at Applicatio...
Customizing AOSP For Different Embedded Devices And Integration at Applicatio...Customizing AOSP For Different Embedded Devices And Integration at Applicatio...
Customizing AOSP For Different Embedded Devices And Integration at Applicatio...
ijafrc
 
Android Things: Android for IoT
Android Things: Android for IoTAndroid Things: Android for IoT
Android Things: Android for IoT
Opersys inc.
 
Droidcon uk2012 androvm
Droidcon uk2012 androvmDroidcon uk2012 androvm
Droidcon uk2012 androvm
dfages
 
Multimedia on android
Multimedia on androidMultimedia on android
Multimedia on android
Ramesh Prasad
 
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...Opersys inc.
 
Embedded Android Workshop with Nougat
Embedded Android Workshop with NougatEmbedded Android Workshop with Nougat
Embedded Android Workshop with Nougat
Opersys inc.
 
Development environment
Development environmentDevelopment environment
Development environment
maamir farooq
 
Android Things Internals
Android Things InternalsAndroid Things Internals
Android Things Internals
Opersys inc.
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
Opersys inc.
 

What's hot (20)

Android internals 01 - Basic concepts of mobile platforms (rev_1.1)
Android internals 01 - Basic concepts of mobile platforms (rev_1.1)Android internals 01 - Basic concepts of mobile platforms (rev_1.1)
Android internals 01 - Basic concepts of mobile platforms (rev_1.1)
 
Android internals 00 - Introduction (rev_1.1)
Android internals 00 - Introduction (rev_1.1)Android internals 00 - Introduction (rev_1.1)
Android internals 00 - Introduction (rev_1.1)
 
Learning AOSP - Android Linux Device Driver
Learning AOSP - Android Linux Device DriverLearning AOSP - Android Linux Device Driver
Learning AOSP - Android Linux Device Driver
 
Android Booting Sequence
Android Booting SequenceAndroid Booting Sequence
Android Booting Sequence
 
Android 10 Internals Update
Android 10 Internals UpdateAndroid 10 Internals Update
Android 10 Internals Update
 
OWF12/PAUG Conf Days Alternative to google's android emulator, daniel fages, ...
OWF12/PAUG Conf Days Alternative to google's android emulator, daniel fages, ...OWF12/PAUG Conf Days Alternative to google's android emulator, daniel fages, ...
OWF12/PAUG Conf Days Alternative to google's android emulator, daniel fages, ...
 
Exoplayer 2
Exoplayer  2Exoplayer  2
Exoplayer 2
 
Android 10
Android 10Android 10
Android 10
 
Brillo / Weave Internals
Brillo / Weave InternalsBrillo / Weave Internals
Brillo / Weave Internals
 
Memory Management in Android
Memory Management in AndroidMemory Management in Android
Memory Management in Android
 
The Android graphics path, in depth
The Android graphics path, in depthThe Android graphics path, in depth
The Android graphics path, in depth
 
Customizing AOSP For Different Embedded Devices And Integration at Applicatio...
Customizing AOSP For Different Embedded Devices And Integration at Applicatio...Customizing AOSP For Different Embedded Devices And Integration at Applicatio...
Customizing AOSP For Different Embedded Devices And Integration at Applicatio...
 
Android Things: Android for IoT
Android Things: Android for IoTAndroid Things: Android for IoT
Android Things: Android for IoT
 
Droidcon uk2012 androvm
Droidcon uk2012 androvmDroidcon uk2012 androvm
Droidcon uk2012 androvm
 
Multimedia on android
Multimedia on androidMultimedia on android
Multimedia on android
 
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
 
Embedded Android Workshop with Nougat
Embedded Android Workshop with NougatEmbedded Android Workshop with Nougat
Embedded Android Workshop with Nougat
 
Development environment
Development environmentDevelopment environment
Development environment
 
Android Things Internals
Android Things InternalsAndroid Things Internals
Android Things Internals
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 

Viewers also liked

RIL and Android Telephony
RIL and Android TelephonyRIL and Android Telephony
RIL and Android Telephony
Leaf Johnson
 
Android Radio Layer Interface
Android Radio Layer InterfaceAndroid Radio Layer Interface
Android Radio Layer InterfaceChun-Yu Wang
 
Android telephony stack
Android telephony stackAndroid telephony stack
Android telephony stackDavid Marques
 
Android Telephony Manager and SMS
Android Telephony Manager and SMSAndroid Telephony Manager and SMS
Android Telephony Manager and SMSJussi Pohjolainen
 
Telephony API
Telephony APITelephony API
Telephony API
Rashad Aliyev
 
Making Linux do Hard Real-time
Making Linux do Hard Real-timeMaking Linux do Hard Real-time
Making Linux do Hard Real-time
National Cheng Kung University
 
Labmeeting - 20150211 - Novel End-to-End Voice Encryption Method in GSM System
Labmeeting - 20150211 - Novel End-to-End Voice Encryption Method in GSM SystemLabmeeting - 20150211 - Novel End-to-End Voice Encryption Method in GSM System
Labmeeting - 20150211 - Novel End-to-End Voice Encryption Method in GSM System
Syuan Wang
 
Psi android telephony_case_study_v10
Psi android telephony_case_study_v10Psi android telephony_case_study_v10
Psi android telephony_case_study_v10Primesoftinc
 
Encrypted Voice Communications
Encrypted Voice CommunicationsEncrypted Voice Communications
Encrypted Voice Communications
sbwahid
 
Android Crash analysis and The Dalvik Garbage collector – Tools and Tips
Android Crash analysis and The Dalvik Garbage collector – Tools and TipsAndroid Crash analysis and The Dalvik Garbage collector – Tools and Tips
Android Crash analysis and The Dalvik Garbage collector – Tools and Tips
DroidConTLV
 
Android Application Development of NFC Peer-to-Peer Mode
Android Application Development of NFC Peer-to-Peer ModeAndroid Application Development of NFC Peer-to-Peer Mode
Android Application Development of NFC Peer-to-Peer Mode
Chun-Kai Wang
 
Voice encryption for gsm using arduino
Voice encryption for gsm using arduinoVoice encryption for gsm using arduino
Voice encryption for gsm using arduinoiruldaworld
 
FYP: Peer-to-Peer Communications Framework on Android Platform
FYP: Peer-to-Peer Communications Framework on Android PlatformFYP: Peer-to-Peer Communications Framework on Android Platform
FYP: Peer-to-Peer Communications Framework on Android Platformwebuiltit
 
Authentication and Ciphering
Authentication and CipheringAuthentication and Ciphering
Authentication and CipheringSokunth Che
 

Viewers also liked (16)

RIL and Android Telephony
RIL and Android TelephonyRIL and Android Telephony
RIL and Android Telephony
 
Android Radio Layer Interface
Android Radio Layer InterfaceAndroid Radio Layer Interface
Android Radio Layer Interface
 
Android telephony stack
Android telephony stackAndroid telephony stack
Android telephony stack
 
Android Telephony Manager and SMS
Android Telephony Manager and SMSAndroid Telephony Manager and SMS
Android Telephony Manager and SMS
 
Telephony API
Telephony APITelephony API
Telephony API
 
Making Linux do Hard Real-time
Making Linux do Hard Real-timeMaking Linux do Hard Real-time
Making Linux do Hard Real-time
 
Labmeeting - 20150211 - Novel End-to-End Voice Encryption Method in GSM System
Labmeeting - 20150211 - Novel End-to-End Voice Encryption Method in GSM SystemLabmeeting - 20150211 - Novel End-to-End Voice Encryption Method in GSM System
Labmeeting - 20150211 - Novel End-to-End Voice Encryption Method in GSM System
 
Psi android telephony_case_study_v10
Psi android telephony_case_study_v10Psi android telephony_case_study_v10
Psi android telephony_case_study_v10
 
Encrypted Voice Communications
Encrypted Voice CommunicationsEncrypted Voice Communications
Encrypted Voice Communications
 
Kernel modules
Kernel modulesKernel modules
Kernel modules
 
Android presentation
Android presentationAndroid presentation
Android presentation
 
Android Crash analysis and The Dalvik Garbage collector – Tools and Tips
Android Crash analysis and The Dalvik Garbage collector – Tools and TipsAndroid Crash analysis and The Dalvik Garbage collector – Tools and Tips
Android Crash analysis and The Dalvik Garbage collector – Tools and Tips
 
Android Application Development of NFC Peer-to-Peer Mode
Android Application Development of NFC Peer-to-Peer ModeAndroid Application Development of NFC Peer-to-Peer Mode
Android Application Development of NFC Peer-to-Peer Mode
 
Voice encryption for gsm using arduino
Voice encryption for gsm using arduinoVoice encryption for gsm using arduino
Voice encryption for gsm using arduino
 
FYP: Peer-to-Peer Communications Framework on Android Platform
FYP: Peer-to-Peer Communications Framework on Android PlatformFYP: Peer-to-Peer Communications Framework on Android Platform
FYP: Peer-to-Peer Communications Framework on Android Platform
 
Authentication and Ciphering
Authentication and CipheringAuthentication and Ciphering
Authentication and Ciphering
 

Similar to Android internals 10 - Debugging/Profiling, Bluetooth/WiFI/RIL (rev_1.1)

Droidcon 2011: Gingerbread and honeycomb, Markus Junginger, Greenrobot
Droidcon 2011: Gingerbread and honeycomb, Markus Junginger,  GreenrobotDroidcon 2011: Gingerbread and honeycomb, Markus Junginger,  Greenrobot
Droidcon 2011: Gingerbread and honeycomb, Markus Junginger, Greenrobot
Droidcon Berlin
 
Android Audio & OpenSL
Android Audio & OpenSLAndroid Audio & OpenSL
Android Audio & OpenSL
Yoss Cohen
 
Discover System Facilities inside Your Android Phone
Discover System Facilities inside Your Android Phone Discover System Facilities inside Your Android Phone
Discover System Facilities inside Your Android Phone
National Cheng Kung University
 
Lecture02web 140phpapp01
Lecture02web 140phpapp01Lecture02web 140phpapp01
Lecture02web 140phpapp01
letuan9999
 
Kandroid for nhn_deview_20131013_v5_final
Kandroid for nhn_deview_20131013_v5_finalKandroid for nhn_deview_20131013_v5_final
Kandroid for nhn_deview_20131013_v5_finalNAVER D2
 
Droidcon 2013 France - Android Platform Anatomy
Droidcon 2013 France - Android Platform AnatomyDroidcon 2013 France - Android Platform Anatomy
Droidcon 2013 France - Android Platform AnatomyBenjamin Zores
 
Android development beginners faq
Android development  beginners faqAndroid development  beginners faq
Android development beginners faq
Khirulnizam Abd Rahman
 
Core Android
Core AndroidCore Android
Core Android
Dominik Helleberg
 
Andriod
Andriod Andriod
Andriod
Chayan Upadhyay
 
Introduction to Test Execution Automation Framework for Embedded Systems
Introduction to Test Execution Automation Framework for Embedded SystemsIntroduction to Test Execution Automation Framework for Embedded Systems
Introduction to Test Execution Automation Framework for Embedded Systems
HiroshiMisawa
 
Android crash debugging
Android crash debuggingAndroid crash debugging
Android crash debugging
Ashish Agrawal
 
Android porting for dummies @droidconin 2011
Android porting for dummies @droidconin 2011Android porting for dummies @droidconin 2011
Android porting for dummies @droidconin 2011
pundiramit
 
Improve Android System Component Performance
Improve Android System Component PerformanceImprove Android System Component Performance
Improve Android System Component Performance
National Cheng Kung University
 
Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!
Codemotion
 
Hacking Android OS
Hacking Android OSHacking Android OS
Hacking Android OS
Jimmy Software
 
All your legos are belong to Us Gr8Conf.EU 2015
All your legos are belong to Us Gr8Conf.EU 2015All your legos are belong to Us Gr8Conf.EU 2015
All your legos are belong to Us Gr8Conf.EU 2015
Ryan Vanderwerf
 
ABS 2012 - Android Device Porting Walkthrough
ABS 2012 - Android Device Porting WalkthroughABS 2012 - Android Device Porting Walkthrough
ABS 2012 - Android Device Porting Walkthrough
Benjamin Zores
 
X Means Y
X Means YX Means Y
X Means Y
CommonsWare
 
Useful USB Gadgets on Linux
Useful USB Gadgets on LinuxUseful USB Gadgets on Linux
Useful USB Gadgets on Linux
Gary Bisson
 
Embedded Android
Embedded AndroidEmbedded Android
Embedded Android
晓东 杜
 

Similar to Android internals 10 - Debugging/Profiling, Bluetooth/WiFI/RIL (rev_1.1) (20)

Droidcon 2011: Gingerbread and honeycomb, Markus Junginger, Greenrobot
Droidcon 2011: Gingerbread and honeycomb, Markus Junginger,  GreenrobotDroidcon 2011: Gingerbread and honeycomb, Markus Junginger,  Greenrobot
Droidcon 2011: Gingerbread and honeycomb, Markus Junginger, Greenrobot
 
Android Audio & OpenSL
Android Audio & OpenSLAndroid Audio & OpenSL
Android Audio & OpenSL
 
Discover System Facilities inside Your Android Phone
Discover System Facilities inside Your Android Phone Discover System Facilities inside Your Android Phone
Discover System Facilities inside Your Android Phone
 
Lecture02web 140phpapp01
Lecture02web 140phpapp01Lecture02web 140phpapp01
Lecture02web 140phpapp01
 
Kandroid for nhn_deview_20131013_v5_final
Kandroid for nhn_deview_20131013_v5_finalKandroid for nhn_deview_20131013_v5_final
Kandroid for nhn_deview_20131013_v5_final
 
Droidcon 2013 France - Android Platform Anatomy
Droidcon 2013 France - Android Platform AnatomyDroidcon 2013 France - Android Platform Anatomy
Droidcon 2013 France - Android Platform Anatomy
 
Android development beginners faq
Android development  beginners faqAndroid development  beginners faq
Android development beginners faq
 
Core Android
Core AndroidCore Android
Core Android
 
Andriod
Andriod Andriod
Andriod
 
Introduction to Test Execution Automation Framework for Embedded Systems
Introduction to Test Execution Automation Framework for Embedded SystemsIntroduction to Test Execution Automation Framework for Embedded Systems
Introduction to Test Execution Automation Framework for Embedded Systems
 
Android crash debugging
Android crash debuggingAndroid crash debugging
Android crash debugging
 
Android porting for dummies @droidconin 2011
Android porting for dummies @droidconin 2011Android porting for dummies @droidconin 2011
Android porting for dummies @droidconin 2011
 
Improve Android System Component Performance
Improve Android System Component PerformanceImprove Android System Component Performance
Improve Android System Component Performance
 
Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!
 
Hacking Android OS
Hacking Android OSHacking Android OS
Hacking Android OS
 
All your legos are belong to Us Gr8Conf.EU 2015
All your legos are belong to Us Gr8Conf.EU 2015All your legos are belong to Us Gr8Conf.EU 2015
All your legos are belong to Us Gr8Conf.EU 2015
 
ABS 2012 - Android Device Porting Walkthrough
ABS 2012 - Android Device Porting WalkthroughABS 2012 - Android Device Porting Walkthrough
ABS 2012 - Android Device Porting Walkthrough
 
X Means Y
X Means YX Means Y
X Means Y
 
Useful USB Gadgets on Linux
Useful USB Gadgets on LinuxUseful USB Gadgets on Linux
Useful USB Gadgets on Linux
 
Embedded Android
Embedded AndroidEmbedded Android
Embedded Android
 

Recently uploaded

Azure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHatAzure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHat
Scholarhat
 
How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17
Celine George
 
Normal Labour/ Stages of Labour/ Mechanism of Labour
Normal Labour/ Stages of Labour/ Mechanism of LabourNormal Labour/ Stages of Labour/ Mechanism of Labour
Normal Labour/ Stages of Labour/ Mechanism of Labour
Wasim Ak
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
Sandy Millin
 
"Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe..."Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe...
SACHIN R KONDAGURI
 
Language Across the Curriculm LAC B.Ed.
Language Across the  Curriculm LAC B.Ed.Language Across the  Curriculm LAC B.Ed.
Language Across the Curriculm LAC B.Ed.
Atul Kumar Singh
 
Acetabularia Information For Class 9 .docx
Acetabularia Information For Class 9  .docxAcetabularia Information For Class 9  .docx
Acetabularia Information For Class 9 .docx
vaibhavrinwa19
 
Digital Artifact 2 - Investigating Pavilion Designs
Digital Artifact 2 - Investigating Pavilion DesignsDigital Artifact 2 - Investigating Pavilion Designs
Digital Artifact 2 - Investigating Pavilion Designs
chanes7
 
Supporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxSupporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptx
Jisc
 
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
Nguyen Thanh Tu Collection
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
Mohd Adib Abd Muin, Senior Lecturer at Universiti Utara Malaysia
 
The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
Vivekanand Anglo Vedic Academy
 
Chapter -12, Antibiotics (One Page Notes).pdf
Chapter -12, Antibiotics (One Page Notes).pdfChapter -12, Antibiotics (One Page Notes).pdf
Chapter -12, Antibiotics (One Page Notes).pdf
Kartik Tiwari
 
The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
heathfieldcps1
 
Embracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativeEmbracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic Imperative
Peter Windle
 
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBCSTRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
kimdan468
 
Marketing internship report file for MBA
Marketing internship report file for MBAMarketing internship report file for MBA
Marketing internship report file for MBA
gb193092
 
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
Levi Shapiro
 
Best Digital Marketing Institute In NOIDA
Best Digital Marketing Institute In NOIDABest Digital Marketing Institute In NOIDA
Best Digital Marketing Institute In NOIDA
deeptiverma2406
 
Unit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdfUnit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdf
Thiyagu K
 

Recently uploaded (20)

Azure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHatAzure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHat
 
How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17
 
Normal Labour/ Stages of Labour/ Mechanism of Labour
Normal Labour/ Stages of Labour/ Mechanism of LabourNormal Labour/ Stages of Labour/ Mechanism of Labour
Normal Labour/ Stages of Labour/ Mechanism of Labour
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
 
"Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe..."Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe...
 
Language Across the Curriculm LAC B.Ed.
Language Across the  Curriculm LAC B.Ed.Language Across the  Curriculm LAC B.Ed.
Language Across the Curriculm LAC B.Ed.
 
Acetabularia Information For Class 9 .docx
Acetabularia Information For Class 9  .docxAcetabularia Information For Class 9  .docx
Acetabularia Information For Class 9 .docx
 
Digital Artifact 2 - Investigating Pavilion Designs
Digital Artifact 2 - Investigating Pavilion DesignsDigital Artifact 2 - Investigating Pavilion Designs
Digital Artifact 2 - Investigating Pavilion Designs
 
Supporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxSupporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptx
 
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
 
The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
 
Chapter -12, Antibiotics (One Page Notes).pdf
Chapter -12, Antibiotics (One Page Notes).pdfChapter -12, Antibiotics (One Page Notes).pdf
Chapter -12, Antibiotics (One Page Notes).pdf
 
The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
 
Embracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativeEmbracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic Imperative
 
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBCSTRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
 
Marketing internship report file for MBA
Marketing internship report file for MBAMarketing internship report file for MBA
Marketing internship report file for MBA
 
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
 
Best Digital Marketing Institute In NOIDA
Best Digital Marketing Institute In NOIDABest Digital Marketing Institute In NOIDA
Best Digital Marketing Institute In NOIDA
 
Unit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdfUnit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdf
 

Android internals 10 - Debugging/Profiling, Bluetooth/WiFI/RIL (rev_1.1)

  • 1. Android internals Egor Elizarov SPbSU 2012
  • 2. Legal info  Android internals by Egor Elizarov is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License  You are free to – copy, distribute, display, and perform the work – make derivative works  Under the following conditions – Attribution. You must give the original author credit – Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one  All pictures and trademarks are the property of their respective owners. Use of these trademarks and pictures is subject to owners permissions.  Corrections, suggestions, contributions and translations are welcome! 2 Egor Elizarov SPbSU 2012
  • 3. Lecture 10 Debugging / profiling WiFi / Bluetooth / RIL yegor.yelizarov(at)gmail.com Rev: 1.1 http://vk.com/android_internals Last update: 06/01/2012 3 Egor Elizarov SPbSU 2012
  • 4. Previous time  Suspend/Resume process  Android PM main components  Android Input subsystem  *.kl, *.kcm, *.idc configuration files  Sensor subsystem  Input noise reduction approaches  Android data storage 4 Egor Elizarov SPbSU 2012
  • 5. Useful host/target configuration 5 Egor Elizarov SPbSU 2012
  • 6. Debugging/profiling agenda  Very good presentation about debugging & profiling by Tim Bird  Most popular approaches  Tools covered by Tim in brief  Few words about not covered approaches 6 Egor Elizarov SPbSU 2012
  • 7. Debugging approaches 7 Egor Elizarov SPbSU 2012
  • 8. Logging  logcat – obtaining android log – For both C/C++ (LOGE) & Java (Log.e) code – Have rich formatting options  dmesg – obtatining kernel log – printk() – Extra logs from userspace through /dev/kmsg  Stdio redirection – For both Java (log.redirect-stdio) & Native (xargs) code 8 Egor Elizarov SPbSU 2012
  • 9. GNU debugger (gdb)  DDD can be used as graphic backend  On target  $ gdbserver :1234 --attach pid  Or $gdbserver :1234 /system/bin/app ● On host  $ adb forward tcp:1234 tcp:1234 && gdbclient app :1234 app  Or $ arm-eabi-gdb  # file ./out/target/product/generic/symbols/system/bin/app_process  # set solib-search-path ./out/target/product/generic/symbols/system/lib  # target remote target_ip:1234 9 Egor Elizarov SPbSU 2012
  • 10. Google debuggers  Fastboot – Protocol & tool to communicate with host over USB – Install images, erase partitions, booting from host – Supported in UBoot  ADB – Remote shell, install, file copy, etc. – Work over Network/USB 10 Egor Elizarov SPbSU 2012
  • 11. Tracing & dumping  Strace – Shows system calls for a process (or set of processes)  Dalvik Debug Monitor Servic (DDMS) – Integrated into Eclipse – Provides port-forwarding services, screen capture on the device, thread and heap information on the device, logcat and much more  Dumpsys / Dumpstate – Dumps huge amounts of information about the system, including status, counts and statistics – Dumpsys show status information from Android service 11 Egor Elizarov SPbSU 2012
  • 12. Virtual Network Computing  VNC - Graphical desktop sharing system  Transmits input events from host to target  Transmits screen updates from target to host  On target – androidvncserver &  On host – vncviewer target_ip:5901 12 Egor Elizarov SPbSU 2012
  • 13. Profiling approaches 13 Egor Elizarov SPbSU 2012
  • 14. CPU and memory statistics  Common profiling workflow  Smem – Analyze of system-wide memory usage  OProfile – CPU usage statistic for both kernel & userspace – Monitors execution point periodically – Should be enabled in kernel 14 Egor Elizarov SPbSU 2012
  • 15. Tracing  Bootchart – Analyze system booting process – init should be recompiled to add Bootchart support  TraceView – Java methods tracing – Can be used with DDMS 15 Egor Elizarov SPbSU 2012
  • 16. Benchmarks  Rowboat bench – Set of benchmarks for CPU, 2D, 3D, etc. – Developed by Rowboat team  0xbench – Another set of benchmarks – Developed by 0xlab team  Lots of benchmarks in Google Play 16 Egor Elizarov SPbSU 2012
  • 17. Linux Trace Toolkit next generation  Work for both kernel and userspace  Useful to debug threads and processes  Allow to trace only some events  Allow userspace events (/mnt/debugfs/ltt/write_event)  Kernel patches + ltt-control + ltt-viewer 17 Egor Elizarov SPbSU 2012
  • 18. Add LTTng support to Android 18 Egor Elizarov SPbSU 2012
  • 19. Different tricks  Activity Manager - control applications – am start -a android.intent.action.MAIN -n com.android.camera/com.android.camera.Camera &  input keyevent X – send keyboard events  sendevent – send touch events  setprop/getprop - control system properties  sqlite - access database  start/stop - restart whole system 19 Egor Elizarov SPbSU 2012
  • 20. WiFi in Android  Supports IEEE 802.11 abgn  Supports both IPv4 and IPv6  Based on customized wpa_supplicant  Wifi drivers compiled as modules (Wifi HAL can changed to support built-in drivers) 20 Egor Elizarov SPbSU 2012
  • 21. Wifi subsystem 21 Egor Elizarov SPbSU 2012
  • 22. Porting Wifi driver 22 Egor Elizarov SPbSU 2012
  • 23. Bluetooth in Android  Bluetooth is covered by IEEE 802.15.1  Android BT is based on the BlueZ stack  Android provides subset of BlueZ functionality  Android supports point-to-point and multiple- point connections  Supports maximum 9 simultaneous connections 23 Egor Elizarov SPbSU 2012
  • 24. Bluetooth workflow 24 Egor Elizarov SPbSU 2012
  • 25. Bluetooth subsystem 25 Egor Elizarov SPbSU 2012
  • 26. RIL in Android  Most devices have separate Radio Frequency module for signal strength measurement etc.  Modem often have own CPU with running OS (Ex: Mentor Nucleus)  Usually have firmware  Often kernel interface to these devices is PPP 26 Egor Elizarov SPbSU 2012
  • 27. RIL subsystem 27 Egor Elizarov SPbSU 2012
  • 28. Next Time  Exam 28 Egor Elizarov SPbSU 2012
  • 29. Useful links  http://vk.com/android_internals  http://elinux.org/images/c/c9/Android-tips-and-tricks-2010-10.pdf  http://developer.android.com/guide/developing/debugging/index.html  http://source.android.com/tech/debugging/native-memory.html  http://developer.android.com/guide/developing/debugging/ddms. html 29 Egor Elizarov SPbSU 2012
  • 30. Useful links (2)  http://code.google.com/p/android-vnc-server/wiki/README  http://softteco.blogspot.com/2011/03/android-low-level-shell- click-on-screen.html  http://lttng.org/  http://softteco.blogspot.com/2011/03/android-low-level-shell- click-on-screen.html  http://www.kandroid.org/online-pdk/guide/telephony.html 30 Egor Elizarov SPbSU 2012
  • 31. Thanks to  Sergey Matyukevich for review and advices (www.linkedin.com/pub/sergey- matyukevich/31/889/769)  Nikolay F. Fominykh for review and advices  Vladimir Barinov for review and advices (http://www.linkedin.com/pub/vladimir- barinov/2a/18a/bab) 31 Egor Elizarov SPbSU 2012