Exploring ADB Shell Commands#

Muhammed Abdullah

June 01, 2025

1 min read

Tried out ADB commands to explore and interact with my old Android device. Part of an ongoing deep-dive—looking into how apps behave, triggering intents, and inspecting packages.

I’m exploring lower-level Android internals with an eye toward writing applications in C and possibly doing AArch64 cross-compilation in the future.

I’ve previously written a few Android applications in Java during my college days—those notes can be found here.

ABD Basic Commands#

List the devices#

$ adb devices

Hang the system#

$ adb shell
RMX1807:/ $ am hang

Activity manager (am)#

See ADB IntentSpec for options.

Option

Description

-a

Action (e.g., android.intent.action.VIEW)

-d

Data URI (e.g., -d http://example.com)

-t

MIME type (e.g., -t text/plain)

-c

Category (e.g., android.intent.category.LAUNCHER)

-n

Component name (pkg/.Activity)

-e

Add string extra (-e key value)

--ez

Add boolean extra (--ez key true)

--esn

Add null extra

--activity-clear-top

Clears existing activity on top

--activity-single-top

Reuses existing instance if already on top

1. Open an Intent#

$ adb shell
RMX1807:/ $ am start -n com.intsig.camscanner/.CaptureActivity
RMX1807:/ $ am start -a android.intent.action.VIEW

2. Open Camera#

$ adb shell
RMX1807:/ $ am start -a android.media.action.IMAGE_CAPTURE

3. Open the app color reflexer#

RMX1807:/ $ am start -n com.colorreflexer/.MainActivity

4. Starting any other app like Cam Scanner#

Scan the activities:

RMX1807:/ $ dumpsys package com.intsig.camscanner | grep -i activity
Result#
Activity Resolver Table:
        ...
        99d05e7 com.intsig.camscanner/.MainMenuActivity filter 5e46134
        ...
        89d36d7 com.intsig.camscanner/.openapi.OCROpenApiActivity filter 70cc191
        9442cce com.intsig.camscanner/.Scan2PDFActivity filter 4fc7f64
        82f0d01 com.intsig.camscanner/.DocumentActivity filter 6005ca0
        529f832 com.intsig.camscanner/.ImageScannerActivity filter efa541e
        ...

Open camera scanning:

RMX1807:/ $ am start -n com.intsig.camscanner/.CaptureActivity

Open main menu:

RMX1807:/ $ am start -n com.intsig.camscanner/.MainMenuActivity
Result#
Starting: Intent { cmp=com.intsig.camscanner/.MainMenuActivity }

5. Starting Chrome#

RMX1807:/ $ am start -n com.android.chrome/com.google.android.apps.chrome.Main

Starting chrome with a URL:

RMX1807:/ $ am start -a android.intent.action.VIEW -d "http://example.com" -n com.android.chrome/com.google.android.apps.chrome.Main

Taking a screenshot#

RMX1807:/ $ screencap /sdcard/screen.png

And the screenshot is located in Phone/screen.png.

Open a Camera and click a picture#

RMX1807:/ $ am start -a android.media.action.IMAGE_CAPTURE

This opens the camera, but doesn’t trigger the capture. To simulate a tap:

RMX1807:/ $ wm size
Physical size: 1080x2340
RMX1807:/ $ input tap 540 512