Legal & Compliance

Privacy Policy - HAT

Privacy Policy

HAT (Heuristic Activity Tracker) Effective Date: May 26, 2026 Last Reviewed: May 26, 2026


The Short Version

HAT works entirely on your device. Nothing you do in the app is sent anywhere. The developer cannot see your timeline, your offline logs, your settings, or anything else you create in HAT — not because of policy, but because the app has no internet permission and no server infrastructure to receive it.

This policy explains in plain terms exactly what data HAT reads and stores locally, what it does not do, and what rights you have under the laws that may apply to you.


1. Who This Policy Covers

This policy applies to anyone who installs and uses HAT, regardless of where you are in the world or how you obtained the application (GitHub, F-Droid, direct APK, or any other distribution channel).

If you are a developer who has forked the source code and is running a modified version of HAT, this policy may not accurately describe your version’s behavior. Consult the privacy documentation for that fork.


2. About the Developer

HAT is developed and maintained by a single independent developer operating under the handle andromedvn.

The developer does not operate as a registered corporation. HAT is a free, open-source personal-use tool published under the GNU Affero General Public License version 3 (AGPL-3.0). The developer receives no revenue from HAT.


Under GDPR Article 2(2)(c), the regulation does not apply to processing of personal data by a natural person “in the course of a purely personal or household activity.” Using HAT to track your own screen time and daily habits is exactly that — a personal household activity. The developer does not receive, access, or process any data you generate. You are the sole data controller of everything HAT produces on your device.

Under Republic Act No. 10173 (Philippines Data Privacy Act 2012), and its Implementing Rules and Regulations, personal information processed exclusively for personal, household, or journalistic purposes is similarly excluded from the law’s full compliance regime. Your use of HAT to document your own daily schedule falls within this exclusion.

This does not mean your privacy is irrelevant — it means the legal relationship here is unusual. HAT is more like a local diary app than a service. Nobody reads your diary but you. This policy still matters because it sets clear expectations about how the software is built, what it touches on your device, and what would happen if those assumptions ever changed.


4. Data HAT Reads and Stores

4.1 Usage Access Data (via Android’s UsageStatsManager API)

HAT requires the Usage Access permission (android.permission.PACKAGE_USAGE_STATS). This is a system-level permission that Android requires you to grant manually through your device’s Settings — it cannot be requested via a standard runtime permission dialog.

When this permission is granted, HAT reads the following categories of data from the Android operating system:

HAT does not read:

This data is read from the OS on demand — when you open the app or navigate to a specific date — and is processed in memory to build your timeline. The raw OS event stream is not stored by HAT in any persistent form. Only derived data (the archived usage intervals described in Section 4.2) is saved to the local database.

4.2 Archived App Usage Intervals

Android retains raw usage event data for a limited window, typically between two weeks and several months depending on the device manufacturer and OS version. HAT’s optional background archive worker reads this data on a configurable schedule and saves it to a local SQLite database before the OS permanently deletes it.

What is stored per entry: package name, session start time (Unix milliseconds), and session end time (Unix milliseconds). Nothing else.

This data never leaves your device. It is stored in the application’s private internal storage (/data/data/andromedvn.heuristic.activity.tracker/), which other applications cannot read without root privileges.

4.3 Offline Activity Logs

When you manually label a gap in your timeline — recording that you were “Sleeping” from 11 PM to 7 AM, for example — HAT stores this entry in the local database with:

You wrote this. You own it. You can edit or delete it at any time from within the app.

4.4 Application Preferences and Settings

HAT stores your preferences using Android’s Jetpack DataStore library, in a file within the app’s private storage. These include:

None of this leaves your device.

4.5 Crash Logs and Diagnostic Events

HAT has a custom crash handler. When the app encounters an unhandled exception, it writes a crash report to a private file on your device. This report includes:

These files are stored in the application’s private storage and are not transmitted anywhere. They are readable only by you, through the Diagnostics screen in Settings, where you can export or delete them at any time.

These files exist so that if you want to report a bug, you can share the relevant log voluntarily. The developer cannot access them without your active cooperation.

4.6 Exported Vault Files

HAT’s “Backup Master Vault” feature exports a .zip file containing:

Once you export this file, it is saved to whatever location you choose on your device or connected storage. At that point, the file is entirely under your control. The developer has no involvement in, or access to, its contents. The vault is signed so that corrupt or tampered files can be detected on import — this protects you, not the developer.

4.7 Wallpaper Color (In-Memory, Not Stored)

When the “Dynamic Material” theme is active on Android 11 or earlier, HAT reads a compressed thumbnail of your current wallpaper to extract its dominant color. This extraction is performed entirely in memory. The wallpaper image is not stored to disk. The only thing that persists is the computed hex color value saved to your preferences — a small string like #3A7CA5.

On Android 12 and above, HAT uses the system’s native DynamicColors API instead, which derives theme colors without any wallpaper access.

4.8 Voluntary Communications (Support Email and GitHub)

When you contact the developer voluntarily — by emailing andromedvn@proton.me or by opening an issue on GitHub — you necessarily disclose your email address or GitHub username as part of that communication. This is the only circumstance in which the developer receives any identifying information about a user.

The following rules govern that information:

To request deletion of any support correspondence, email andromedvn@proton.me. The developer will make best efforts to delete stored communication within 30 days of such a request, subject to any legal obligation to retain it.


5. Data HAT Does Not Collect

To be explicit:


6. Data Security

The data HAT produces is protected by Android’s application sandboxing:

HAT does not apply encryption-at-rest to the local database. The database is protected by the OS sandbox. If you are concerned about physical device access, Android’s built-in file-based encryption (enabled by default on modern devices) provides an additional layer of protection independent of HAT.


7. Data Retention and Deletion

Your data is retained until you delete it. HAT offers several deletion paths:


8. Your Rights

8.1 All Users

Because all HAT data is local and you are the sole data controller, you exercise the following rights directly through the app without needing to contact anyone:

Right How to Exercise It in HAT
Access All data is visible in the app. Vault export gives you a complete copy.
Portability “Backup Master Vault” exports everything as a structured archive.
Erasure “Factory Reset Engine” or uninstall.
Correction Offline logs can be edited. Dismissed ghost sessions can be restored.
Restrict processing Revoke Usage Access permission in Android Settings.
Stop background processing Set Background History Sync to “Off” in Settings.

8.2 Users in the EEA — GDPR

Legal basis: To the extent GDPR applies to self-directed personal use (see Section 3), HAT processes data on the basis of your explicit consent, given when you grant the Usage Access permission. You may withdraw consent at any time by revoking this permission in Android Settings.

Data controller: For purposes of any residual processing the developer is considered to have involvement in — which, under HAT’s architecture, is none — contact: andromedvn@proton.me.

Right to lodge a complaint: You may file a complaint with the data protection supervisory authority in your EU member state.

International transfers: No data is transferred internationally. No data leaves your device.

Right not to be subject to automated decision-making: HAT’s heuristic engine processes your usage data to build your timeline, but this is software running locally on your device, producing output for you, not decisions made about you by a third party.

8.3 California Residents — CCPA/CPRA

HAT does not sell personal information. HAT does not share personal information for cross-context behavioral advertising. The developer collects no personal information about you in any form.

All rights under CCPA/CPRA — access, deletion, correction, and the right to opt out of sale or sharing — are exercised through the app itself. No request to the developer is needed.

For any CCPA-related inquiry: andromedvn@proton.me.

8.4 Philippine Users — Republic Act No. 10173

HAT’s developer operates from the Philippines. RA 10173 and its Implementing Rules are the primary governing framework for this policy.

Data subjects under RA 10173 have the following rights, exercisable as described:

Right How to Exercise
Right to be informed This policy fulfills that obligation.
Right to access Data is visible and exportable within the app.
Right to correction Edit offline logs within the app.
Right to erasure or blocking Factory Reset Engine or uninstall.
Right to data portability Vault export.
Right to object Revoke Usage Access in Android Settings.
Right to file a complaint National Privacy Commission (NPC) at privacy.gov.ph

Breach notification: Under RA 10173, personal information controllers must notify the NPC and affected data subjects within 72 hours of a data breach. Because the developer does not hold any user data, a breach of the developer’s systems would not expose HAT user data. A breach of your own device is outside the developer’s control or knowledge. If a security vulnerability in HAT’s code could expose stored data on a device, the developer commits to disclosing it publicly via the GitHub repository without undue delay.


9. Children’s Privacy

HAT is not directed at children under 13 (or under 18 where that is the applicable threshold). The app does not include features designed for children, and the developer does not knowingly collect data from children.

Because HAT stores all data locally and the developer cannot access any of it, the developer cannot verify user ages. Parental supervision of device usage and app installation is the appropriate safeguard — not developer-side age verification for an app that transmits nothing.

Concerns about HAT’s suitability for a minor: andromedvn@proton.me.


10. Android OS and Device Manufacturer Considerations

HAT’s data completeness depends on the Android OS and the device manufacturer’s firmware.

These are limitations of the platform, not gaps in privacy protection. They affect data completeness. No data is exposed to third parties because of them.


11. Changes to This Policy

If this policy changes in a way that reduces privacy protections — for example, if a future version of HAT added network connectivity — the updated policy will be published at https://andromedvn.github.io/HAT/PRIVACY.html, the “Effective Date” will be updated, and the change will be noted in the release notes for the corresponding app version.

Continued use of the app after an updated policy is published constitutes acceptance of the new terms. If you disagree with a change, uninstall the app.


12. Contact

Email: andromedvn@proton.me GitHub Issues: https://github.com/andromedvn/HAT/issues

Genuine privacy inquiries will receive a response within 30 days.


This policy was written to be read by people. If something here is unclear or seems inconsistent with how the app actually behaves, that gap matters — please report it.