Skip to main content

Distinguishing a Virtualized Device from a Physical Device

Our customers sometimes ask about how their scripts and apps can determine if they're running on a Corellium device.

In this article, we discuss a few methods depending on your device type.

Checking an iOS Device from Its Command Line

All virtualized iOS devices start with CORELLIUM, for example, CORELLIUM-I13PM.

You can check the device serial number in the iOS console using the code ioreg -w0 -l | grep IOPlatformSerialNumber.

The response will look similar to "IOPlatformSerialNumber" = "CORELLIUM-I13PM" on virtualized iOS devices.

Finding the device serial in the console

Checking an iOS Device from Its Display

  1. Open the Settings app and navigate to General then About.
  2. Notice that the virtual devices' serial number includes "CORELLIUM".

Checking an iOS Device from a macOS Command Line

You can also identify virtualized devices using a connected macOS computer with the following steps:

  1. Go to the Connect tab and set up the VPN connection. We recommend the OpenVPN client Viscosity for macOS.
  2. Download the USBFlux dmg from the Connect tab, install the app, then start the service.
  3. Install the iMobileDevice library with brew install libimobiledevice.
  4. Check the connected device's serial number using ideviceinfo | grep ^SerialNumber.
  5. You will see responses like SerialNumber: CORELLLLIUM-I13PM in the terminal.

Finding the device serial with a Mac

Checking from an Android Device Command Line

There are at least three methods to distinguish Corellium devices using the command line.

Android Method 1

You can determine the Android device manufacturer in the Android console using getprop ro.product.manufacturer. The response will be Corellium on virtualized Android devices.

Finding the device serial with ADB 1

Android Method 2

A second method for Android is to search the list of installed packages for the corellliumdhelper package.

The command pm list packages | grep corellium should return package:com.corellium.corelliumdhelper on virtualized devices.

Android Method 3

A third method is to search for prop files matching the appropriate model name.

Running this command:

find . -name '*.prop' 2>/dev/null -exec grep -HIn 'Corellium Generic' '{}' ';'

will include the following response in the output:

./system/product/etc/build.prop:8:ro.product.product.model=Corellium Generic
./system/system_ext/etc/build.prop:8:ro.product.system_ext.model=Corellium Generic
./vendor/vendor_dlkm/etc/build.prop:8:ro.product.vendor_dlkm.model=Corellium Generic
./vendor/odm_dlkm/etc/build.prop:8:ro.product.odm_dlkm.model=Corellium Generic

Finding the device serial with ADB 2

Alternatively, switching first to the superuser with su then running the command will return six prop files instead of four:

./system/product/etc/build.prop:8:ro.product.product.model=Corellium Generic
./system/system_ext/etc/build.prop:8:ro.product.system_ext.model=Corellium Generic
./vendor/vendor_dlkm/etc/build.prop:8:ro.product.vendor_dlkm.model=Corellium Generic
./vendor/odm/etc/build.prop:8:ro.product.odm.model=Corellium Generic
./vendor/odm_dlkm/etc/build.prop:8:ro.product.odm_dlkm.model=Corellium Generic
./vendor/build.prop:8:ro.product.vendor.model=Corellium Generic

Finding the device serial with ADB 3

Checking an Android Device from Its Display

Follow these steps to determine visually if Corellium is virtualizing an Android device:

  1. Load an Android device to its home screen. We are using a Generic Android device running firmware version 12.0.0 for this example.

Load an Android device to its home screen

  1. Swipe up from the bottom of the screen to open the list of apps.

Swipe up from the bottom of the screen to open the list of apps.

  1. Open the Settings app.

Open the Settings app

  1. Scroll down to the bottom of the Settings menu and the "About emulated device" section.

Scroll down to the bottom of the Settings

  1. Scroll down to see that the Device name is "Corellium Generic," the phone number is "+1-555-123-4567," the SIM status is "Corellium," and the Model is "Corellium Generic."

Scroll down to see the Device name