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 be12345678.
Example Configuration:
| Field | Example | 
|---|---|
| Action | com.x13a.duress.TRIGGER_PANIC | 
| Receiver | com.x13a.wasted/.DuressReceiver | 
| Key | alert_level | 
| Code | DURESS_911 | 
| Value | high | 
| PIN/password or length | 12345678 | 
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:
- 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
- Tasker Profile:
- Event: Intent Received (com.duress.TASKER_TRIGGER)
- Tasker Task:
- Actions could include:
- Sending emergency SMS with location (%LOC)
- Getting GPS location
- Recording audio
 
- Sending emergency SMS with location (
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.

 
															 
															















































