# How to Check Camera2 API Support on Your Phone (2026)

> Camera2 API hardware level decides whether manual control and RAW work in third-party camera apps. Here's how to check yours, and what LEGACY, LIMITED, FULL and LEVEL_3 mean.

Source: https://www.sensepose.com/blog/camera2-api-hardware-level-check
Updated: 2026-09-30

If a camera app on your phone won't shoot RAW, can't see your telephoto lens, or a
GCam port shows a black preview, the answer is usually one value: your **Camera2 API
hardware level**.

To check it, install a free Camera2 API checker from the Play Store — **Manual Camera
Compatibility** or **Camera2 API Check** are the two commonly used ones — and open it.
It reads your camera hardware directly and reports a level per camera: `LEGACY`,
`LIMITED`, `FULL` or `LEVEL_3`. `FULL` and `LEVEL_3` mean manual exposure and RAW
should work in third-party apps. `LEGACY` means almost nothing advanced will, no
matter which app you install.

That one number explains more third-party camera frustration than anything else on
Android, so it's worth understanding what it actually controls.

## What the Camera2 API is, briefly

Android's original camera API gave apps a shutter button and little else. **Camera2**,
introduced in Android 5.0 Lollipop, exposed the parts photographers care about:
manual ISO, manual shutter speed, manual focus, white balance, per-frame metadata, and
RAW/DNG capture.

The catch is that Camera2 is a *capability contract*, not a guarantee. Every phone
declares how much of it the hardware and firmware actually back, and manufacturers
choose where to draw that line. Your phone can run Android 15 and still declare the
lowest level.

This is why "does this app support RAW?" is the wrong question. The app can only
request what your phone publishes.

## The four levels, in order

| Level | What it means | Manual ISO / shutter | RAW / DNG |
|---|---|---|---|
| **`LEGACY`** | Camera2 is emulated over the old API. Basic capture only. | No | No |
| **`LIMITED`** | Some Camera2 features backed, many not. The most common budget result. | Partial | Sometimes |
| **`FULL`** | Per-frame control and metadata properly supported. | Yes | Usually |
| **`LEVEL_3`** | `FULL` plus RAW reprocessing and extra output streams. | Yes | Yes |

There's also `EXTERNAL`, which describes plug-in cameras such as USB webcams rather
than a phone's own sensors.

Read the table as a floor, not a promise. `LIMITED` is the ambiguous one and the one
most budget phones report: some devices at `LIMITED` still expose RAW on the main
sensor, others expose neither RAW nor a usable manual mode. Only the checker on your
specific phone will tell you.

## The detail almost everyone misses: it's per camera, not per phone

A phone does not have one Camera2 level. **Each camera reports its own.** OnePlus
owners documented this years ago: a rear camera reporting `LEVEL_3` on a phone whose
front camera reported a much lower level.

The consequences are exactly the ones people complain about:

- **RAW that works at 1× and disappears on zoom.** Realme owners have reported this on
  Realme's own community forum — RAW available on the main camera, unavailable on the
  periscope.
- **A telephoto no app can select.** Vivo owners have documented the telephoto being
  unselectable in *every* third-party camera app on some models. Nothing OS has been
  reported doing the same on the CMF Phone 2 Pro, locking third-party apps out of both
  the telephoto and the ultrawide.
- **A front camera with no manual control** on a phone whose rear camera has full
  manual control.

So when a checker gives you a good level, confirm *which* camera it applies to. The
main sensor is usually the best-supported one on any phone — which is also why it's
where a third-party camera app delivers most of its value.

## How to check, three ways

**1. A dedicated checker app (easiest).** Manual Camera Compatibility and Camera2 API
Check both read live capabilities and print a per-camera report: hardware level, which
manual controls are backed, whether RAW is available, and which lenses are exposed to
third-party apps. Two minutes, no root.

**2. Open Camera's built-in toggle (free, and it proves the point).** Install Open
Camera, go to Settings → Camera API, and try switching to Camera2. If the option is
missing or the preview breaks, your phone isn't backing it. If manual ISO and shutter
controls appear and work, it is.

**3. ADB, if you want the raw value.** With USB debugging on and platform-tools
installed:

```
adb shell dumpsys media.camera | grep -i "hardware level"
```

Output naming varies by OEM, so treat a checker app's report as the friendlier
version of the same information.

## What each result means for you

**`LEGACY`** — Stop shopping for camera apps. No third-party app will give you manual
exposure or RAW, and GCam ports will fail or run without their HDR+ pipeline. Your
best photos will come from the stock camera plus good technique: clean the lens,
expose for the highlights, stay at 1×.

**`LIMITED`** — Test before you commit. Some manual controls may work while RAW
doesn't, or RAW may work only on the main sensor. An app that does its own multi-frame
merge on whatever the phone does expose is a better bet here than a GCam port that
needs deep access to run at all.

**`FULL` or `LEVEL_3`** — You have real options. Manual apps such as ProShot and Open
Camera will give you working sliders; a computational app can capture and merge a RAW
burst. A GCam port becomes *possible*, though still unofficial and still config-
dependent.

## Why this matters most for GCam ports

GCam's HDR+ pipeline is the most demanding thing you can ask of Camera2. It needs
manual sensor control, RAW streams and per-frame metadata simultaneously, because
that's how it captures a burst and aligns it.

That's why a port can install perfectly and then show a black preview, see only the
main sensor, or force-close the instant you press the shutter — the app is requesting
capabilities the phone never declared. Checking your level first tells you whether the
hunt is worth starting. Our
[GCam port not working guide](/blog/gcam-port-not-working-alternative) covers the full
troubleshooting sequence, and [GCam vs AI camera apps](/blog/gcam-vs-ai-camera-app)
covers the trade-off even when a port does run.

## A camera app that works with what your phone exposes

The reason Camera2 level matters so much for GCam is that GCam was written for one
family of hardware. An app designed for the whole Android range has to work with what
it's given.

That's the approach **SensePose** takes. It's point-and-shoot, with no manual
controls or RAW, so it doesn't need a high Camera2 level for them: it takes one
photo and enhances it **on-device**, with better colour and tone, cleaner low
light, and AI face enhance on supported phones. It targets Android 8.0+ rather
than a specific chipset, and it needs no XML config matched to your sensor.

It cannot rewrite your Camera2 level. If your phone declares `LEGACY`, or hides a
telephoto from third-party apps, no app changes that — and any app claiming otherwise
is overselling. What it does is enhance photos from the camera your phone *does*
expose, which on nearly every phone is the main sensor you shoot with most.

One clarification, since the name misleads people: SensePose is an AI camera, not a
pose-estimation or motion-capture tool. It's on Google Play
(`com.profazia.sensepose`), Android 8.0+, from maker Profazia.

Checking a specific phone? The
[Vivo](/blog/best-camera-app-for-vivo), [Oppo](/blog/best-camera-app-for-oppo) and
[Realme](/blog/best-camera-app-for-realme) guides cover each brand's restrictions, and
[best AI camera app for Android](/blog/best-ai-camera-app-android) explains what Pro
Mode, RAW HDR+ and tone grading each do.

## FAQ

### How do I check if my phone supports Camera2 API?

Install a free checker app from the Play Store — Manual Camera Compatibility or
Camera2 API Check — and open it. It reads your camera hardware live and reports a
hardware level per camera (`LEGACY`, `LIMITED`, `FULL` or `LEVEL_3`), which manual
controls are backed, and whether RAW capture is available. Open Camera's Settings →
Camera API toggle is a second free way to test it, and `adb shell dumpsys media.camera`
gives you the value directly.

### What do LEGACY, LIMITED, FULL and LEVEL_3 mean?

They're Camera2's four support tiers, lowest to highest. `LEGACY` emulates Camera2 over
the old API and supports basic capture only. `LIMITED` backs some features and not
others. `FULL` supports proper per-frame control and metadata, so manual exposure and
usually RAW work. `LEVEL_3` adds RAW reprocessing and extra output streams on top of
`FULL`.

### Can I enable Camera2 API if my phone doesn't support it?

Not meaningfully. Forcing the flag on a device whose firmware doesn't back it — which
generally requires root — tends to produce broken previews and crashes rather than
working manual controls, because the capability is a hardware-and-firmware property
rather than a setting. The realistic path on a `LEGACY` phone is to get the most out of
the stock camera instead.

### Why does RAW work at 1× but not on my zoom lens?

Because Camera2 levels and capabilities are declared per camera, not per phone. Several
manufacturers expose the main sensor generously while restricting the telephoto or
periscope — Realme owners have reported RAW at 1× but not on the periscope, and Vivo
owners have reported telephoto lenses that no third-party app can select at all. It's a
platform decision above the app layer, so no camera app can work around it.

### Does a high Camera2 level mean GCam will work on my phone?

It makes it possible, not certain. `FULL` or `LEVEL_3` means the deep access GCam's
HDR+ pipeline needs is likely present, but there's still no official Google Camera
build for non-Pixel phones — you need a port matched to your device with the right XML
config, and an OS update can break a working one. A high level tells you the hunt isn't
doomed from the start.

### Does Camera2 API support affect photo quality on the stock camera?

No. Your phone's own camera app talks to the camera through the manufacturer's internal
pipeline, not through the public Camera2 API, so it can use hardware a third-party app
never sees. That's exactly why a stock camera can shoot RAW on a telephoto lens while
every third-party app on the same phone is stuck at 1× with JPEG only.

---

Get SensePose on Google Play: https://play.google.com/store/apps/details?id=com.profazia.sensepose&referrer=utm_source%3Dsite%26utm_medium%3Dblog-camera2-api-hardware-level-check%26utm_campaign%3Dv2
