POS Simulator

Available

Boot a real Android terminal in an emulator — a PAX, Ingenico, Sunmi, Verifone or Kozen device with its own screen, memory, peripherals and spoofed build identity — and run your payment app against it without the hardware on your desk.

Overview

The POS Simulator boots an Android Virtual Device shaped like a specific payment terminal. You pick a vendor, model and variant; the simulator creates the AVD, applies the device’s screen, memory and peripheral profile, spoofs its ro.product.* build identity, and powers it on. Your APK then runs believing it is on that terminal.

It is a development and debugging rig, not a certification tool — but it is the real Android emulator underneath, so the app under test behaves as it would on the device.

POS Terminal window on the Device tab: a PAX A910S profile with Power on, Prepare AVD and Install APK actions, a green prerequisites checklist, the resolved device table and the spoofed ro.product identity
pos-simulator Device tab — prerequisites, resolved device and spoofed identity
📱

Terminal Catalog

PAX, Ingenico, Kozen, Newland, Sunmi, Verifone, NexGo, Castles and Telpo models, plus generic shapes, each with its own variants.

🎛️

Real Emulator Hardware

Memory, display, graphics, input, cameras and sensors written straight into the AVD’s config.ini.

🆔

Spoofed Identity

ro.product.manufacturer, brand, model, device and name set to the target terminal’s values.

🖨️

Peripheral Profile

Thermal printer, barcode scanner and PIN entry device described per model — dots per line, paper width, PIN block formats.

Prerequisite Checks

SDK, emulator binary, command-line tools, adb, system image and host ABI all validated before boot.

💳

Card Source

Software card profile, a real card through a PC/SC reader, or a serial link — configured per terminal.

Quick Start

  1. Create a terminal profile — Open POS Simulator and add a profile in the left rail.
  2. Pick the device — On the Device tab choose a manufacturer, a model, and the variant matching the unit you are targeting.
  3. Adjust hardware if needed — The Hardware tab carries the model’s defaults; override only what you need.
  4. Point at your SDK — On System & Boot confirm the Android SDK, system image and AVD name.
  5. LaunchLaunch POS Simulator opens the terminal window. Check the green prerequisites list, then Power on — the AVD is created if needed, booted, and given the device identity.
  6. Install your appInstall APK… pushes your build onto the running terminal.
Tip

Boot is fastest when the system image ABI matches your host — the prerequisites list reports arm64-v8a — hardware accelerated when it does.

Device Tab

The Device tab picks which terminal the emulator will pretend to be. It has four parts: a Vendor filter with a model/variant/SKU search, the Model grid, the Variant chooser, and a Resolved device summary of what the AVD will actually be built from.

POS Terminal Configuration on the Device tab, showing the vendor filter, a grid of terminal models from PAX, Ingenico, Kozen, Newland, Sunmi, Verifone, NexGo, Castles and Telpo, and the variant chooser with verified and unverified badges
pos-simulator Device tab — vendor, model and variant

Vendors in the catalog

PAX, Ingenico, Kozen, Newland, Sunmi, Verifone, NexGo, Castles Technology, Telpo, plus two generic shapes — a 720×1440 Android terminal and a 480×480 square one.

Variants

Variants of one model differ in screen, memory, peripherals or Android version. Each carries a confidence badge:

BadgeMeaning
VerifiedThe numbers came from a real adb probe against the hardware.
UnverifiedDerived from a datasheet. Vendors publish “5″ HD” and rarely the exact pixel dimensions or density bucket, so these are flagged rather than presented as fact.
Hardware onlyThe model has a hardware profile but no payment-SDK integration yet.

Hardware Tab

Every control here writes an actual key into the AVD’s config.ini, driven by the emulator’s own hardware-properties.ini schema — the property name sits under each label so you can see exactly what is being set. Values come from the selected model; anything you change is stored as an override and can be reset. A validation strip at the top of the tab reports problems at edit time rather than as a failed boot ten minutes later.

Memory and storage settings: RAM 2048, VM heap 0, internal storage 6G, SD card size 512M and SD card present enabled
pos-simulator Memory & Storage
Display settings: screen width 720, height 1280, density 320 dpi, 16-bit colour depth, portrait orientation and a multi-touch screen
pos-simulator Display
Graphics and CPU settings: hardware GPU enabled, GPU mode auto and 8 CPU cores
pos-simulator Graphics & CPU
Input settings: hardware keyboard on, hardware back and home keys, D-pad and trackball off
pos-simulator Input
Camera settings with the rear and front cameras both set to emulated
pos-simulator Cameras
Sensor toggles for accelerometer, gyroscope, GPS, battery, microphone, proximity and light, each labelled with its hw property key
pos-simulator Sensors
Note

Some changes can be patched into an existing AVD; others force a destructive recreate. The tab tells you which before you commit.

Peripherals Tab

What the terminal has bolted to it, beyond the Android hardware. The model supplies these; the tab lets you confirm or override them.

Peripherals
The device’s feature summary — contact and contactless readers, magnetic stripe, NFC, SAM slots, status LEDs, beeper, camera, cellular, GPS, Wi-Fi.
Thermal printer
Present, dots per line, paper width, greyscale support.
Barcode scanner
Present or absent.
PIN entry (PED)
Supported PIN block formats, DUKPT support, key slots, offline PIN.

System & Boot Tab

Where the Android toolchain lives and how the AVD boots.

Android SDK
SDK root and how it was found. The tab reports when all required tools are present.
System image
API level, tag (for example google_apis) and ABI, checked against the host ABI so you know whether boot will be hardware accelerated.
AVD & boot
AVD name and AVD home, plus cold boot every start, headless (-no-window), writable /system and SELinux permissive.
Spoofed device identity
The ro.product.manufacturer, brand, model, device and name values applied after boot — what an app reads when it asks which terminal it is running on.

Card & Host Tab

Where card data comes from, and where transactions are meant to go.

Card source
A software card profile, a real card through a PC/SC reader, a serial link, or loopback.
Software card profile
The card the terminal sees when the source is software.
PC/SC reader
Reader selection. The tab says so plainly when no PC/SC readers are attached to the machine.
Serial port
Port and baud rate.
Acquirer host
Host, port, Terminal ID and Merchant ID for the outgoing link.
Host uplink is not wired up yet

The acquirer host fields are stored on the profile, but the terminal does not yet send ISO 8583 to them — that arrives with the ISO 8583 uplink milestone. To exercise a host today, drive the Host Simulator directly.

The Terminal Window

Launch POS Simulator opens the terminal itself. Two tabs are live today; the rest are placeholders that name what they will hold and which milestone brings them.

TabStateWhat it holds
DeviceLivePower on / Prepare AVD / Install APK, the prerequisites checklist, the resolved device summary and the spoofed identity.
CardLiveThe card the terminal will present, from the configured card source.
SDK TracePendingEvery DAL call the payment app makes — interface, method, arguments, latency, result — with the matching APDU exchange beside it.
PIN PadPendingSoft keypad, PIN block format selector, and the live clear block, encrypted block, KSN and KCV.
ReceiptsPendingA thermal-paper roll rendering what the app printed, at this device’s dots per line, with paper-out and overheat fault injection.
ScannerPendingBarcode injection into the running app, with presets, history and a queue for scripted runs.
TransactionsPendingCompleted transactions with their EMV tags and the ISO 8583 request and response that carried them.
ScenariosPendingFault injection — card yanked mid-transaction, comm errors, PIN timeout, paper out, host no-response — plus scripted runs with deterministic replay.
LogsPendingBoot log, bridge frames and DAL calls in the shared log panel with filtering and auto-scroll.
Note

For chip-level cryptogram and TLV work today, pair the terminal with the APDU Simulator and the EMV & Card Tools.