🛠 Discovering I/O on PlugMate
Objectives
This tutorial aims to understand the PlugMate's secure architecture and explore how internal applications interact with peripherals via virtualization. Unlike a classic Raspberry Pi, the PlugMate does not expose physical GPIO pins. The goal is to master the isolation concept: applications run in an encrypted environment (PlugOS) and do not directly access host hardware, but use secure virtual interfaces.
Required Hardware
- A PlugMate (TrustKernel) with 4 GB RAM and 128 GB storage.
- A compatible computer or smartphone (Android, iOS, Windows, macOS, or Linux).
- The official PlugMate host client installed on the host device.
- A high-quality USB-C cable to ensure stable encrypted connection.
- A developer account enabled on the PlugMate (via system settings).
Steps
- Connection and Startup: Insert the PlugMate into the host's USB-C port. Launch the client app. Wait approximately 24 seconds for PlugOS to fully start. You will see the hardened Android 14 home screen.
- Access System Settings: Navigate to *Settings* > *About Phone*. Tap *Build Number* 7 times to enable developer options. Return to the main menu and enter *Developer Options*.
- Enable USB Debugging: Enable the *USB Debugging* option. This step is crucial to allow secure communication between your host and the PlugMate for development. Note that the system firewall may request explicit permission during the first ADB (Android Debug Bridge) connection.
- Explore Virtual Peripherals: Open a "Terminal" or "File Manager" type app preinstalled or installed via the secure store. Type the command
ls /devto list devices. You will observe entries like/dev/virtual_gpsor/dev/virtual_camera. These interfaces are secure bridges to host sensors, without raw direct access.
- Test Keyboard Input: Open a simple text editor. Type on the host's virtual or physical keyboard. Observe that characters appear in the PlugMate application. This confirms that the USB-C channel transmits input events in an encrypted and isolated manner.
Verification
To validate functionality, verify that data typed in the PlugMate text editor is not visible in host applications, ensuring strict isolation. Additionally, ensure the duress PIN is configured in security settings to erase keys in case of physical coercion.
Going Further
Explore the PlugOS API documentation to create applications that use virtual location. Note that the PlugMate does not work on Intel Macs or Windows ARM.