Block reference / Device Management

Change device

Change what the phone says it is: its name, its model and brand, its screen size and density.

Only inWarpX Phone

Change device makes the phone present itself differently. Its name, screen size and density change without root and stay until changed back. Its model, brand and the rest of what an app reads as the device need a rooted phone with Magisk or KernelSU, and last only until the phone restarts. Nothing here touches the IMEI or any other identifier the phone's network sees.

Change device sets the phone's name and, on a rooted phone, the model every app reads. About phone shows both.
The Change device block's settings, filled in as in the example below.

Settings

Device name

The phone's name, as About phone shows it and Bluetooth announces it; the Devices list takes the new name too. Letters, digits, spaces and . , ( ) + - / only. Empty keeps the name it has.

ExamplePixel-07
Model

Keep the phone's own, one of six real phones (Samsung Galaxy S23, Samsung Galaxy A54 5G, Google Pixel 8, Google Pixel 7a, Xiaomi 13, Redmi Note 12), One of these, at random (picked again on every run), or Written out… to type each value. Anything but keep needs root.

ExampleGoogle Pixel 8
Brandwhen Model is Written out…

The brand an app reads, ro.product.brand. Any of these custom boxes left empty is not changed.

Examplesamsung
Manufacturerwhen Model is Written out…

The maker, ro.product.manufacturer.

Examplesamsung
Modelwhen Model is Written out…

The model name, ro.product.model. After the change the block reads it back and fails if the phone still reports the old one.

ExampleSM-S911B
Device codewhen Model is Written out…

The device's code name, ro.product.device.

Exampledm1q
Product namewhen Model is Written out…

The product name, ro.product.name.

Exampledm1qxxx
Build fingerprintwhen Model is Written out…

The build fingerprint, ro.build.fingerprint. Empty keeps the phone's own, which is usually best: a fingerprint that does not match the phone's real Android build stands out more than none. The presets leave it alone for that reason.

Example
Screen size

Keep it, The screen's own to undo an earlier change, or Width × height to set a size in pixels. No root needed.

ExampleKeep it
Width (px)when Screen size is Width × height

The width in pixels, from 240 to 4320.

Example1080
Height (px)when Screen size is Width × height

The height in pixels, from 240 to 7680.

Example2400
Density

Keep it, The screen's own to undo an earlier change, or dpi to set the density. No root needed.

ExampleKeep it
Density (dpi)when Density is dpi

The density in dots per inch, from 80 to 800.

Example420
Delay (ms)

A wait after the block finishes, before the next one starts. One number such as 1000, or a range such as 1000,3000 for a random wait in that range on each run.

Example0

Every block also has the shared block settings — a description, Disable block and what to do on an error. Fields that take text accept data from earlier blocks.

What it hands on

Writes no variable. It hands on the model it set, or the name when the model was kept, as {{prevBlockData}}. Every part asked for is tried; if any did not take, the block fails with a message naming each one, such as profile: needs root (Magisk or KernelSU, for resetprop).

Example: Make a rooted test phone present itself as a Pixel 8

  1. Start
  2. Change device
  3. Close all apps
  4. Get device property
Where Change device sits in the example workflow.
  1. Pick the rooted phone in the toolbar's phone menu.
  2. Add a Change device block. Set Device name to Pixel-07 and Model to Google Pixel 8; leave Screen size and Density on Keep it.
  3. Add a Close all apps block, so apps start again and read the new model.
  4. Add a Get device property block with Property set to Model and Variable name model.
  5. Click Run. The first time, Magisk asks on the phone to grant the shell root; allow it.
  6. Open Logs: the last block wrote Pixel 8 into model.

Good to know

  • The model, brand, manufacturer, device code, product name and fingerprint are read-only on Android except to resetprop, which Magisk and KernelSU have. On a phone without root, or whose root has no resetprop, that part fails and says so; the name, size and density asked for in the same block still change.
  • The model and the rest last until the phone restarts. The name, screen size and density stay until a block or a person changes them back.
  • Apps read what the phone is when they start. One that was already running keeps seeing the old model until it is stopped and started again.
  • With every setting on keep and Device name empty, the block fails with Nothing to change.
  • Renaming needs the phone online, since the name is the phone's own and not only WarpX Phone's label for it.
  • Before a run of a workflow somebody else made — from the Appstore, a file or the assistant — WarpX Phone shows what this block will do and asks first. Workflows you set up in your own editor never ask.

See also

  • Get device property — Read one fact about the phone, such as its model, Android version, battery level or IP.
  • Phone identity — Put the phone on a proxy, and set its location, time zone and language, all at once.
  • Close all apps — Stop every app in Recents and every installed app still running, except those you keep.
  • ADB command — Run a command in the phone's shell, as adb shell does, and keep what it prints.