Search code examples
androiddalvikandroid-contexttelephony

Android Telephony Stack and Dalvik process contexts


I am in the process of understanding the telephony stack in Android, and I would like you to confirm or dismiss a conclusion that I made:

  • The entire internal java telephony stack, i.e. ril (java side), com.android.internal.telephony.* classes and default Android phone app are running inside the same dalvik virtual machine?

Reading the source it seems that the (very limited) exposed telephony API through TelephonyManger, SmsManager, PhoneStateListener, and friends, performs IPC to the phone app dalvik process using the AIDL interfaces ITelephony, ISms, IPhoneStateListener, etc.

Is this correctly understood, and can you elaborate on my understanding if possible? :)


Solution

  • Yes the telephony stack that exists in the framework is instantiated by the phone app. The phone app is set up as a persistent process, so the system starts it early in boot and makes sure it stays running.

    The phone app is at packages/apps/Phone. Its manifest package name (and thus the name of the process it runs in) is com.android.phone.