Answering prompts on your phone
The “poison0 agent” app shows the prompts and notices of the poison0 agent on your computer as notifications on your phone: Memory protection, exec0 and leak0. You answer right on the phone, even when it is not on the same network.
Available for Android.
What the phone shows
| Situation | On the phone |
|---|---|
| Memory protection holds an unclear change to a memory or instruction file | Prompt with Keep or Reject. |
| exec0 checks a tool call that can cause harm | Prompt with Block or Allow. |
| leak0 checks whether an agent passes on a secret such as an API key | Prompt with Block or Allow. |
| Memory protection rolls back a dangerous change | Notice with reason and file, without buttons. |
| leak0 blocks a secret leak | Notice without buttons. |
| You answer on the computer | The notification closes. |
| Nobody answers before the time runs out | Block applies, as on the computer. |
Prompts go only to the phones of the person whose agent asks. Administrators never receive prompts and cannot pair a phone.
Requirements
- Android 12 or later
- Screen lock: PIN, pattern or password
- Cloud mode on the computer, see Cloud or private
- Your own account on the computer, not root or administrator
- At most 5 phones per computer
Installing the app
The app comes as an APK (Android installation file), not through Google Play.
- Download the APK on your computer.
- Compute its SHA-256 value (the file's checksum, commands below) and compare it with the value on the download page.
- Copy the file to the phone with a USB cable and open it in the “Files” app.
- Allow installing from this source, tap “Install” and withdraw the permission afterwards.
| System | Compute the SHA-256 |
|---|---|
| macOS | shasum -a 256 <file>.apk |
| Linux | sha256sum <file>.apk |
| Windows (PowerShell) | Get-FileHash <file>.apk -Algorithm SHA256 |
Pairing a phone
- On the computer, run
poisonzero mobile pairin a terminal of your desktop session, withoutsudoand not over SSH. - Scan the QR code that the computer shows in a window with the app.
- Compare the 6-digit code on the phone with the code on the card on the computer.
- If both match, confirm on the computer with your system sign-in, otherwise cancel.
- Allow notifications for the app.
- Validity: The QR code is valid for 5 minutes and for one phone. Do not show it to anyone.
- Cancel: Ctrl+C in the terminal.
- System sign-in: On macOS and Linux an administrator's, on Windows that of your own Windows account.
- Log: Every new pairing is logged and announced on the computer.
| Command | Effect |
|---|---|
poisonzero mobile pair | Starts pairing |
poisonzero mobile list | Lists your paired phones with their ID |
poisonzero mobile unpair <id> | Unpairs one phone |
poisonzero mobile unpair all | Unpairs all your phones |
Answering prompts
Block and Reject take one tap, straight from the notification. Allow and Keep need your fingerprint, face or screen lock every time. The first answer counts, on the computer or on the phone.
| Prompt | macOS and Linux | Windows |
|---|---|---|
| exec0: Tool call | Block, Allow | Block only |
| exec0: Rule override | Block only | Block only |
| leak0: Secret | Block, Allow | Block, Allow |
| Memory protection | Keep, Reject | Keep, Reject |
| Memory protection, shortened for the phone | Reject only | Reject only |
Where only Block or Reject is listed, Allow or Keep is possible only on the computer. Reason: The phone may allow only what the system sign-in at pairing covers.
Unpairing and lost phones
| Where | How |
|---|---|
| In the app | Under “Paired computers”, tap “Unpair” |
| On the computer | poisonzero mobile unpair <id> or poisonzero mobile unpair all |
| In the console | An administrator revokes the pairing in the device details |
Phone lost: Run poisonzero mobile unpair all or ask your administrator to do it. Even before that, Allow is possible only with your fingerprint, face or screen lock. Administrators see paired phones, but no prompts.
Security
- End-to-end encrypted and signed: Our relay (forwarding server) passes on only encrypted data and cannot read a prompt.
- Unmodified phone: Pairing needs a locked bootloader and unmodified Android (Verified Boot), not root or a custom ROM.
- Only the original app: With key attestation (Android confirms where the keys come from), the computer checks that the keys sit in secure hardware and belong to the unmodified app signed by us.
Troubleshooting
| Problem | Fix |
|---|---|
| No or late notification | Allow notifications including the “Approval requests” channel and turn off battery optimisation for the app. |
| Pairing code expired | Run poisonzero mobile pair again. |
| No window and no card appear on the computer | Sign in on the computer and run the command in the desktop session, not over SSH. |
| Pairing refused as administrator | Run it without sudo under your own account. |
| Pairing fails after scanning | Only the original app on an unmodified phone pairs. |
| Approval key no longer valid, for example after removing the screen lock | Unpair and pair again. |
| Maximum number of paired phones reached | Unpair a phone with poisonzero mobile unpair <id>. |
Read next
More: Answering the prompt on the computer, when the poison0 agent asks and cloud or private.