Talk this topic through with an AI

You get an answer from the documentation and the page it comes from.

Phone app

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.

~4 min read · Phone app

Available for Android.

What the phone shows

SituationOn the phone
Memory protection holds an unclear change to a memory or instruction filePrompt with Keep or Reject.
exec0 checks a tool call that can cause harmPrompt with Block or Allow.
leak0 checks whether an agent passes on a secret such as an API keyPrompt with Block or Allow.
Memory protection rolls back a dangerous changeNotice with reason and file, without buttons.
leak0 blocks a secret leakNotice without buttons.
You answer on the computerThe notification closes.
Nobody answers before the time runs outBlock 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.

  1. Download the APK on your computer.
  2. Compute its SHA-256 value (the file's checksum, commands below) and compare it with the value on the download page.
  3. Copy the file to the phone with a USB cable and open it in the “Files” app.
  4. Allow installing from this source, tap “Install” and withdraw the permission afterwards.
SystemCompute the SHA-256
macOSshasum -a 256 <file>.apk
Linuxsha256sum <file>.apk
Windows (PowerShell)Get-FileHash <file>.apk -Algorithm SHA256
If the value differs, do not install the APK. Download it again and verify it again.

Pairing a phone

  1. On the computer, run poisonzero mobile pair in a terminal of your desktop session, without sudo and not over SSH.
  2. Scan the QR code that the computer shows in a window with the app.
  3. Compare the 6-digit code on the phone with the code on the card on the computer.
  4. If both match, confirm on the computer with your system sign-in, otherwise cancel.
  5. 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.
CommandEffect
poisonzero mobile pairStarts pairing
poisonzero mobile listLists your paired phones with their ID
poisonzero mobile unpair <id>Unpairs one phone
poisonzero mobile unpair allUnpairs 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.

PromptmacOS and LinuxWindows
exec0: Tool callBlock, AllowBlock only
exec0: Rule overrideBlock onlyBlock only
leak0: SecretBlock, AllowBlock, Allow
Memory protectionKeep, RejectKeep, Reject
Memory protection, shortened for the phoneReject onlyReject 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.

No answer means Block. A timeout, a notification that never arrives or a switched-off phone lets nothing through.

Unpairing and lost phones

WhereHow
In the appUnder “Paired computers”, tap “Unpair”
On the computerpoisonzero mobile unpair <id> or poisonzero mobile unpair all
In the consoleAn 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

ProblemFix
No or late notificationAllow notifications including the “Approval requests” channel and turn off battery optimisation for the app.
Pairing code expiredRun poisonzero mobile pair again.
No window and no card appear on the computerSign in on the computer and run the command in the desktop session, not over SSH.
Pairing refused as administratorRun it without sudo under your own account.
Pairing fails after scanningOnly the original app on an unmodified phone pairs.
Approval key no longer valid, for example after removing the screen lockUnpair and pair again.
Maximum number of paired phones reachedUnpair a phone with poisonzero mobile unpair <id>.

More: Answering the prompt on the computer, when the poison0 agent asks and cloud or private.