Dust.z3r0

Kill-switch. Full factory reset.

A small Android app. Safe PIN for settings. Duress PIN that looks the same — then wipes the whole phone when Device Owner is armed. No chat. No Tor. No cloud. Built by S3CT0R Z3R0.

Arm it

Dust.z3r0 is a package you keep, not an account. Verify once, enrol Device Owner on hardware you accept losing, then live with one unlock field for both PINs.

  1. Install the APK

    Sideload Dust.z3r0 on a throwaway or dedicated Android. Not on Play Store. Keep the APK, SHA256SUMS, and signature together.

  2. Enrol Device Owner

    Remove accounts that block ownership, enable USB debugging, install the APK, then set Device Owner over adb. Full steps under Enrolment. The app shows Armed only when ownership is real.

  3. Set dual PINs

    Safe PIN opens settings. Duress PIN looks the same until wipe starts. Optional QS tile, USB-while-locked, and SMS triggers stay off until you arm them.

Separate product from Dark.z3r0 — no messenger stack, no shared vault. S3CT0R appears here and in About only. Device Owner enrolment is detailed under Enrolment.

In the product

Android client. Quiet chrome. Gold on void. Illustrative UI — not a live Device Owner session. Click a screen to enlarge.

Lock
Settings
Trust

Download

Android sideload APK plus matching source. Free package — no licence key, no in-app checkout.

Verify

Before you install, check the hash and the PGP signature against the published sz-01 key. Also compare the APK signing certificate to the fingerprint below. Keys are listed on Contact and PGP.

Release sums · sz-01
1CF9 C4D4 013B A15D 7765 640C 61CB 4BD7 D6B3 341E
APK signing certificate · SHA-256
C3:75:28:BB:27:43:2F:2F:05:40:F7:87:9B:49:67:93:EA:C4:E1:DE:1E:E2:A5:7A:69:F1:B1:82:DA:30:84:97
  1. Import /keys/sz-01.asc and confirm the fingerprint above.
  2. Download the APK, source zip, SHA256SUMS, and SHA256SUMS.asc from the same release folder.
  3. Check the signature: gpg --verify SHA256SUMS.asc SHA256SUMS
  4. Check the hash (PowerShell): Get-FileHash .\Dust.z3r0-0.1.1.apk -Algorithm SHA256 — match the line in SHA256SUMS.
  5. Confirm the APK signer SHA-256 matches the certificate fingerprint (apksigner / keytool).

Enrolment

Full factory reset only works when Dust.z3r0 is Device Owner. Until then the UI shows Not enrolled and the duress PIN will not wipe. Prefer a factory-fresh or throwaway device for first tests — wipe is irreversible.

Before you start

  1. Android 8 or newer (app minimum SDK 26).
  2. On the phone: Settings → About phone → tap Build number seven times to unlock Developer options (wording varies by OEM).
  3. Developer options → enable USB debugging. Connect the phone to a computer with adb available (Android SDK platform-tools).
  4. Confirm the device is visible: adb devices — you should see your serial as device(accept the RSA prompt on the phone if asked).

1. Remove accounts that block Device Owner

Android refuses set-device-owner when certain accounts or owners are already present. Clear them first.

  1. Settings → Accounts (or Users & accounts) → remove Google accounts and other signed-in accounts on this user.
  2. Remove any work profile / managed profile if one exists.
  3. There must be no existing device owner or device admin that already owns the device. A clean factory reset is the reliable path if enrolment keeps failing.

2. Install Dust.z3r0

Verify the APK hash against Verify first. Then install (use the release filename you downloaded):

  1. adb install -r Dust.z3r0-0.1.1.apk
  2. Confirm the package is present: adb shell pm path io.s3ct0r.dustz3r0

3. Set Device Owner over adb

The component name must match the installed app exactly:

  1. adb shell dpm set-device-owner io.s3ct0r.dustz3r0/.admin.DustDeviceAdminReceiver
  2. Success typically prints Success: Device owner set to package io.s3ct0r.dustz3r0 (wording may vary slightly by Android version).

4. Confirm Armed in the app

  1. Open Dust.z3r0 on the phone.
  2. Complete first-run if needed: set safe PIN and duress PIN (must differ, minimum 6 characters).
  3. Unlock with the safe PIN.
  4. Settings status should read Armed — Device Owner is active and duress will factory-reset.
  5. If it still says Not enrolled, tap Recheck enrolment. If it stays Not enrolled, the dpm command did not take — fix accounts and retry from step 1.

If enrolment fails

  • Not allowed to set the device owner — accounts, work profile, or an existing owner are still present. Remove them or factory-reset the phone and start again.
  • App shows Not enrolled after a claimed success — wrong component name, install failed, or you opened a different build than the one you enrolled.
  • Wipe failed / not armed — Dust is not Device Owner; re-run dpm set-device-owner after clearing blockers.

Removing Device Owner (dev only)

On many builds, Device Owner is sticky and a factory reset is the real exit. For development only:

  1. adb shell dpm remove-active-admin io.s3ct0r.dustz3r0/.admin.DustDeviceAdminReceiver

Honest limits

  • Full factory reset needs Device Owner. Without enrolment the UI stays honest: Not enrolled — duress will not wipe.
  • Stock Android: Dust cannot bind to the system lock PIN. Open the app or a trigger (QS tile, USB, SMS) to wipe.
  • GrapheneOS: use the OS lock-screen duress PIN for that surface. Dust remains for Device Owner wipe and triggers on stock.
  • SMS wipe needs cell signal and a secret you treat like a password. Spoofing of a leaked secret is possible.
  • Wipe is irreversible. No recovery. Test only on disposable hardware or an emulator you can recreate.
  • iOS cannot do full-device wipe from a normal sideloaded app. Dust.z3r0 is Android-only.

Built by S3CT0R Z3R0 · s3ct0rz3r0.io