Introduction
Enlyzr ("we", "our", or "us") provides MyActiveTask, an app for Android that runs automations you set up: when conditions you chose become true, it carries out the actions you listed. This Privacy Policy explains what the app stores, what can leave your device and why, and which permissions the app asks for.
MyActiveTask has no user accounts and shows no advertising. We run no server for it, and the app sends nothing to us. It connects to the servers and devices that you enter; the exceptions are named below.
Information the app stores
Everything you enter is kept on your device, in the app's private storage:
- Your automations: their names, conditions and action steps. Conditions can hold names of Wi-Fi networks, names or addresses of Bluetooth devices, the coordinates and radius of a place, addresses of devices on your network and MQTT topics. Action steps can hold web addresses with their headers and bodies, MQTT topics and payloads, hardware addresses for Wake-on-LAN, the apps to open and notification texts.
- Your servers and settings: the fwknop targets (host, port, access string, user name, key and HMAC key), the MQTT broker settings (host, port, client ID, user name and password), the list of trusted Wi-Fi names, the host of the optional VPN health probe, and the secret token for external triggers if you switch them on.
- History: the last 50 activations, deactivations and failures, each with its time, the name of the automation and the reason. A reason names the condition that changed and the value that changed it: for example the Wi-Fi network, the connected Bluetooth devices, the distance from a place you entered, or the text of an MQTT message. The app also remembers which automations are active, and when a "run once" or cooldown setting last took effect.
All of this is stored encrypted. Each stored value is encrypted with an AES-256-GCM key that is held in the Android Keystore of your device.
What is used but not kept:
- Status log: the Status screen shows a log of what the app did and why. It can name networks, Bluetooth devices, the hosts of your servers and VPN addresses. It is held in memory only (the latest 1000 entries) and is gone when the app's process ends. Many of its lines are also written to Android's system log on the device, which can be read from a computer with developer tools.
- Wi-Fi name, connection, battery: read while the automation service runs, to test your conditions. The current values are held in memory.
- Bluetooth devices, screen and lock state, devices on your network: read only while an enabled automation has a condition that needs them.
- Your position: read only while an enabled automation has a geofence condition, about every five minutes, to work out the distance to the place you entered. The last position is held in memory and dropped when no geofence is in use any more. The position itself is not stored; the history and the log record the distance to the place you entered.
- Installed apps: to let you pick an app for a step, the app reads the names and icons of the apps that can be started from your home screen. The list is shown to you and is not stored.
- QR codes: when you import a server's settings from a picture, the app reads the picture you pick, decodes it on the device and keeps only the settings found in it.
The names of your first automations are given to your home screen app, as shortcuts on the app's icon.
Files the app writes for you. When you export a backup, share an automation or share the log, the app writes the file into its cache folder and hands it to the app you choose. That copy stays in the cache folder until the next export replaces it or you clear the app's cache.
Android backup. Your settings are not part of Android's backup: the app has Android's automatic backup switched off, and the file that holds everything listed above is excluded from cloud backup and from transfer to a new device. To move your settings, use the app's own export and import.
What leaves your device
The app uses the network to carry out what you set up. Each of the following happens only if you created the matching condition, action or setting:
- Port knock (fwknop): one UDP packet to the server you entered. The packet is encrypted and signed with the keys of that server. It carries the user name of the target, the time, the access string that says which port to open, and the address to open it for.
- Public address lookup: only for a target whose "Allowed IP" is set to Resolve. Before each knock the app then asks the service
api.ipify.org, over HTTPS, for the public IP address of your connection, and puts the answer into the knock. That service is not ours; it sees your IP address, as every server you contact does. Resolve is not the default, but settings imported from a QR code can select it. With Source or Explicit the lookup never happens. - VPN: MyActiveTask does not carry your VPN traffic. It asks the separate app OpenVPN for Android, on your device, to connect or disconnect a profile, reads the names of your profiles from it and follows its connection state.
- VPN health probe: if you enter a probe host in Setup, the app opens an empty TCP connection to it through the VPN: once a minute while an automation with "Reconnect VPN if it drops or stalls" holds the VPN up, and when a step or the diagnosis checks that the VPN is healthy.
- HTTP request (webhook): the app sends the request you wrote, with its address, headers and body, to the address you entered. Addresses that start with
http://are sent unencrypted, and the editor warns about them. With "Trust self-signed certificates" switched on for a step, the certificate of that one server is not checked. - MQTT: if you enable it, the app keeps a connection to your broker while the automation service runs. It logs in with the user name and password you entered, subscribes to the topics of your MQTT conditions and publishes what your publish steps say. Without TLS all of this, the password included, travels unencrypted; the settings screen warns about it.
- Wake-on-LAN: a broadcast packet with the hardware address of the device to wake, on your local network.
- Device on network: about every 30 seconds while the phone is on Wi-Fi, a ping or a TCP connection to the address you entered.
- Name lookups: a host name you entered is looked up through the DNS server of the network you are on, as for any connection.
- Open URL and Launch app: the app hands a link, or the request to start, to another app on your device. What that app then sends is up to that app.
Variables. In the text of a webhook, an MQTT message, a link or a notification you can write placeholders that the app replaces with current values: the Wi-Fi name, the connection type, the battery level, the names and addresses of connected Bluetooth devices, the time, and your latitude and longitude. Such a value leaves your device only where you put its placeholder into an action that sends something. Latitude and longitude are filled in only while a geofence condition is in use.
Files you share. Sharing the log, exporting a backup and sharing a single automation are your own actions; the file goes to the app you pick in Android's share dialog. A backup "with keys" contains all your secrets. If you enter a passphrase it is encrypted with it (AES-256-GCM); if you leave the passphrase blank it is plain text. "Config only (no keys)" and a shared automation leave out the fwknop keys, the MQTT user name and password, the trigger token, the values of headers that carry a credential and MQTT payloads. They still contain Wi-Fi names, coordinates, host names and any token written into an address or a request body.
Triggers from other apps. This is off unless you switch it on. Then another app on your device can start one of your enabled automations by name if it presents the secret token shown in Setup. The app sends nothing back to it.
Links. The About screen, the list of open-source licences and the Setup screen contain links, to our website, to the projects' pages and to the Google Play page of OpenVPN for Android. They open in your browser or in Google Play, and only when you tap them.
Permissions and what they are used for
- Network access (internet, network state, Wi-Fi state; on Android 10 and 11 also "change network state"): to make the connections listed above and to know which network the phone is on.
- Location, precise and approximate, also in the background: Android shows the name of the connected Wi-Fi only to apps with the location permission, and while the app is not on screen only with "Allow all the time". The app uses the permission to read the Wi-Fi name, and for geofence conditions.
- Nearby devices (Bluetooth): to read the names and addresses of connected Bluetooth devices, for Bluetooth conditions.
- Notifications: for the permanent notification of the automation service, for failure alerts and for your own Notify steps.
- Foreground service, run at startup, prevent phone from sleeping: to keep the service that watches your conditions running, and to start it again after a restart of the phone or an update of the app.
- Do Not Disturb access: only for steps that change the ringer or Do Not Disturb.
- Display over other apps: only so that a Launch app or Open URL step can start another app while MyActiveTask is in the background. The app draws nothing over other apps.
- Control of OpenVPN for Android: to start and stop your VPN profile in that app.
- Modify secure system settings: only for the step that switches wireless debugging on or off. Android does not offer this permission on the phone; it takes effect only if you grant it yourself from a computer.
The app does not ask for the camera permission. The flashlight step only switches the light. Scanning a QR code with the camera is done by Google's scanner, described in the next section.
Third-party services
MyActiveTask contains no advertising, and we have built no analytics and no crash reporting into it.
- Google code scanner. To scan a QR code with the camera, the app uses the code scanner of Google Play services, which belongs to Google's ML Kit. The camera picture is handled by Google Play services, not by MyActiveTask; the app receives only the text of the code. This component is Google's software and is part of the app whether or not you use the scanner. It includes Google's own mechanism for sending technical usage and diagnostic data about the scanner to Google, and Google Play services may download the scanner module when the app is installed. What Google collects is described in Google's terms and privacy information for ML Kit; we do not receive it. A QR code can also be imported from a saved picture, which is decoded on your device with the open-source library ZXing, or the settings can be typed in.
- api.ipify.org. A public service run by a third party. It is contacted only in the Resolve mode described above.
- OpenVPN for Android. A separate app by another developer that you install yourself. MyActiveTask controls it on your device; your VPN traffic is handled by that app and by your VPN server.
- Your own servers and services. The fwknop server, the MQTT broker, the targets of your webhooks and the devices on your network receive what your automations send them. What they record is under your control or that of their operators.
Children's privacy
MyActiveTask is a network tool and is not directed at children. We do not knowingly collect personal information from children or from any other user.
Data deletion
Nothing is stored with us, so there is nothing we could delete for you. You remove the data on your device by:
- Deleting single items in the app: an automation, a target or a trusted network each have a delete button, and the Status screen has a button that clears the log. The history of the last 50 events cannot be cleared on its own.
- Clearing the app's data through your device's Settings > Apps > MyActiveTask > Storage > Clear storage
- Uninstalling the application from your device
Either of the last two removes everything the app stored on your device. Files you exported or shared are copies outside the app; delete them where you saved or sent them. Anything your automations sent to your own servers stays there until you delete it there.
Changes to this policy
We may update this Privacy Policy from time to time. Any changes will be reflected in the "Last updated" date at the top of this policy. We encourage you to review this policy periodically.
Contact us
If you have any questions about this Privacy Policy, please contact us at enlyzr@gmail.com.