-- README for frameworks/opt/telephony --

This directory contains telephony libraries which function as the
implementation code for APIs in TelephonyManager, SubscriptionManager,
SmsManager and others.

These libraries run in the com.android.phone process and exist to support
telephony services created by the user’s apps (generally carrier apps), or by
the system. This includes making phone calls, sending SMS/MMS, and connecting
to data. Many APIs are plumbed down to the radio through HIDL calls defined in
hardware/interfaces/radio/ hardware/interfaces/radio/config and return values
that are sent back up as responses.

We define several AIDL interfaces in frameworks/base/telephony/ which we
implement in this directory and packages/services/Telephony. This IPC scheme
allows us to run public API code in the calling process, while the
telephony-related code runs in the privileged com.android.phone process. Such
implementations include PhoneInterfaceManager, SubscriptionManagerService and
others.

The declaration of the com.android.phone process is in
packages/services/telephony and the top-level application class is PhoneApp,
which initializes everything else.

-- Testing --

Unit tests are found in frameworks/opt/telephony/tests and can be
run on a device connected through ADB with the command:

	atest FrameworksTelephonyTests

Tests can also be run individually or by class:

	atest <testClassName
	atest <testClassName>#<testMethodName>

For more on atest run `atest --help`
