Duress & Wasted For Developers Advanced

Contents

    Overview

    The Duress app is designed for discreetly triggering emergency alerts the Zero Trace Phone by broadcasting specific intent messages. The companion app, Wasted, acts as a receiver for these broadcasts, immediately executing predefined emergency procedures.

    Additionally, Tasker integration is possible, enabling extensive automation capabilities in response to a Duress trigger.


    Configuration & Usage

    Step 1: Configuring Duress App

    Open the Duress app and complete the fields as follows:

    • Action: Enter a unique intent action string.
    • Example: com.x13a.duress.TRIGGER_PANIC
    • Receiver: Specify the target receiver component explicitly from the Wasted app.
    • Example: com.x13a.wasted/.DuressReceiver
    • Key: Define a meaningful key for alert categorization.
    • Example: alert_level
    • Code: Provide a custom authentication or identifier code.
    • Example: DURESS_911
    • Value: Set the alert’s urgency or type.
    • Example: high
    • PIN/password or length: Enter a duress-specific PIN/password that is at least two characters longer than your standard PIN/password.
    • Example: If your normal PIN is 123456, your Duress PIN could be 12345678.

    Example Configuration:

    FieldExample
    Actioncom.x13a.duress.TRIGGER_PANIC
    Receivercom.x13a.wasted/.DuressReceiver
    Keyalert_level
    CodeDURESS_911
    Valuehigh
    PIN/password or length12345678

    Step 2: Setting Up the Wasted App Receiver

    To handle the broadcast from Duress, ensure the Wasted app has a configured broadcast receiver listening for your specified action.

    Java Broadcast Receiver (DuressReceiver.java)
    package com.x13a.wasted;
    
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.util.Log;
    
    public class DuressReceiver extends BroadcastReceiver {
    
        @Override
        public void onReceive(Context context, Intent intent) {
            if ("com.x13a.duress.TRIGGER_PANIC".equals(intent.getAction())) {
                String alertLevel = intent.getStringExtra("alert_level");
                String code = intent.getStringExtra("code");
                Log.d("DuressReceiver", "Alert received: " + alertLevel + ", Code: " + code);
    
                if ("high".equals(alertLevel) && "DURESS_911".equals(code)) {
                    triggerEmergencyProtocol(context);
                }
            }
        }
    
        private void triggerEmergencyProtocol(Context context) {
            // Implement your emergency action, e.g.,
            // send alerts, wipe sensitive data, lock device, etc.
        }
    }
    AndroidManifest.xml Configuration

    Add the receiver configuration to your AndroidManifest.xml:

    <receiver android:name=".DuressReceiver">
        <intent-filter>
            <action android:name="com.x13a.duress.TRIGGER_PANIC" />
        </intent-filter>
    </receiver>

    Integrating Tasker

    You can use Tasker as an alternative or complement to the Wasted app:

    Tasker Integration Steps:

    1. Configure Duress App:
    • Action: com.duress.TASKER_TRIGGER
    • Receiver: (Leave Blank)
    • Key: alert
    • Code: TASKER_DURESS
    • Value: true
    • PIN/password length: Normal PIN + 2 additional characters
    1. Tasker Profile:
    • Event: Intent Received (com.duress.TASKER_TRIGGER)
    1. Tasker Task:
    • Actions could include:
      • Sending emergency SMS with location (%LOC)
      • Getting GPS location
      • Recording audio

    Example Task Actions:

    • Send SMS (with %LOC)
    • Get GPS Location
    • Record Audio

    Permissions for Tasker:

    Ensure Tasker has necessary permissions enabled:

    • SMS, Calls, Location, Microphone, Storage, Notifications

    Practical Usage

    • When you enter your Duress PIN/password, the Duress app broadcasts the configured intent.
    • Wasted or Tasker immediately receives this broadcast and triggers the defined emergency protocol.

    Testing

    • Use Duress’s built-in “TEST” mode to confirm broadcast reception without executing emergency actions.
    • Monitor logs (adb logcat) for verification.

    Troubleshooting

    • Ensure intent action strings match exactly.

    Updated on June 7, 2026
    Was this article helpful?

    Leave a Reply

    Your email address will not be published. Required fields are marked *