Android Application Penetration Testing

Android Components

Three of the four component types—activities, services, and broadcast receivers—are activated by an asynchronous message called an intent.

Activating Components

Intents bind individual components to each other at run-time (you can think of them as the messengers that request an action from other components), whether the component belongs to your app or to other.

Broadcast Receiver

Broadcast receivers don’t display a user interface, they may create a status bar notification to alert the user when a broadcast event occurs.

Also read Android Application Penetration Testing – Part 1

System Events

An application can be registered to receive broadcasts occurred by system events such as BOOT COMPLETE, SMS RECEIVED, BATTERY LOW, etc. When an application is registered for an SMS RECEIVED event, its receiver will be invoked every time a new SMS is received.

Custom Broadcasts

Apart from the system-generated events, an application also can generate custom broadcast intents for which we can register a receiver.

More commonly, though, a broadcast receiver is just a “gateway” to other components and is intended to do a very minimal amount of work.

For instance, it might initiate a service to perform some work based on the event.An application may register a receiver for the low battery message for example, and change its behavior based on that information.

Example:

A broadcast receiver “MyBroadCastReceiver” is registered in the AndroidManifest.xml file.Broadcast receivers are generally registered in the following format. The code seems insecure since the receiver is exported.

Android Application Penetration Testing

Also Read Android Application Penetration Testing – Part 2

Services

A service is a component that runs in the background to perform long-running operations or to perform work for remote processes.

A service does not provide a user interface, neither component, such as an activity, can start the service and let it run or bind to it in order to interact with it.

For example, a service might play music in the background while the user is in a different application, or it might fetch data over the network without blocking user interaction with an activity.

The three different types of services:

Scheduled-A service is scheduled when an API such as the Job Scheduler, introduced in Android 5.0 (API level 21), launches the service.

Started– A service is started when an application component (such as an activity) calls start Service ().

Bound– A service is bound when an application component binds to it by calling bind Service ().

Service in the manifest Declare all services in your application’s manifest file, just as for activities and other components.

<Manifest … >

<application … >
<service android: name=”.Example Service” />

</application>
</manifest>

Android Application Penetration Testing
          Services

Activity

To be simple an activity represents a single screen with a user interface. For Example, one activity for Login and another activity after login has been successful.

Activity serves as the entry point for a user’s interaction with an app and is also central to how a user navigates within an app or between apps.

Also Read Android Application Penetration Testing – Part 3

The Activity class provides a number of callbacks that allow the activity to know that a state has changed: that the system is creating, stopping, or resuming an activity, or destroying the process in which the activity resides.

Android Application Penetration Testing
                    Example of activities

Content Provider

Content Provider component supplies data from one application to others on request.

You can store the data in the file system, a Sq-Lite database, on the web, or any other persistent storage location your app can access.

Through the content provider, other apps can query or even modify the data (if the content provider allows it).

Content Provider is useful in cases when an app wants to share data with another app.

Android Application Penetration Testing

Also Read Android Application Penetration Testing – Part 4