arlingkin/dalim

andriod app limiter data uses

Kotlin

0

19 commits

updated Sep 17, 2026

See the code

See what people are saying (1)

SourceMessageScoreDate

I built and shipped a signed Android app entirely from my phone (4GB RAM) — using a Linux desktop running inside a proot container on the phone itself, plus a free AI coding agent for the heavy lifting (r/SideProject)

Saya bikin dalim (**DAtaLIMit)** app pembatas data internet Android — bukan dari laptop, tapi dari Oppo A18, HP entry-level dengan RAM 4GB (extended jadi 4+4GB pakai virtual RAM) dan ROM 128GB. Nggak ada Android Studio, nggak ada laptop nganggur buat compile. Setup-nya: → Tiny Container…

0

Sep 19, 2026

README

Data Limit (dalim)

🇮🇩 Bahasa Indonesia? Baca → indonesia.md

CI Build Release

Track your data usage on Android and automatically enforce a budget you configure: daily, weekly, or monthly. The interface is bilingual — switch between English and Bahasa Indonesia in the app's LANGUAGE setting.

A normal app cannot kill the mobile radio. When the limit is hit the app locks the whole screen with a full-screen data gate — over whatever app you're in — until you explicitly allow more data.


Download

Latest build is a production release, signed with the release keystore. Install on Android 8.0+ (API 26).

VersionTypeDownload
v0.3.1Production · signeddatalimit-0.3.1-signed.apk

Earlier testing builds (v0.2.x-pre, unsigned / debug-signed) are still available on the releases page.

Features

AreaDetails
Budget typesDaily · Weekly · Monthly
Window stylesFixed (midnight reset) / Rolling 24 h
DashboardUsed / Limit / Remaining gauge, RX & TX, last check time
GateFull-screen blocking overlay over any app + re-popping full-screen alert, "+100 MB" escape hatch
AutostartMonitoring resumes after reboot
PermissionsOne-tap flow for Usage Access, Overlay, Notifications
LanguageEnglish · Bahasa Indonesia (in-app switch)

Permissions explained

PermissionWhy
PACKAGE_USAGE_STATSRead exact mobile/Wi-Fi totals
SYSTEM_ALERT_WINDOWShow the blocking data-gate overlay
POST_NOTIFICATIONSDisplay high-priority alerts
FOREGROUND_SERVICE + dataSyncKeep the counter running in background
RECEIVE_BOOT_COMPLETEDAuto-start monitoring after reboot

Building locally

# Requires Android SDK (Android Studio is the easiest way)
./gradlew :app:assembleDebug
# output: app/build/outputs/apk/debug/app-debug.apk

Or run gradle wrapper --gradle-version 8.7 first to generate gradlew.

To build a signed release you need the release keystore and its credentials (they are injected as DALIM_KEYSTORE_* environment variables — never committed):

export DALIM_KEYSTORE_FILE=/path/to/dalim-release.jks
export DALIM_KEYSTORE_PASSWORD=...
export DALIM_KEY_ALIAS=dalim
export DALIM_KEY_PASSWORD=...
./gradlew :app:assembleRelease
# output: app/build/outputs/apk/release/app-release.apk

CI / Release

Every push to main (or manual Run) builds a signed release APK via GitHub Actions, using the release keystore restored from repository secrets (DALIM_KEYSTORE_RELEASES plus DALIM_KEYSTORE_PASSWORD, DALIM_KEY_ALIAS, DALIM_KEY_PASSWORD), and publishes it as a full GitHub release (v0.3.1 and later) with a SHA256SUMS.txt checksum.

Roadmap

  • Optional root/system module to actually disable the radio
  • Per-app data breakdown
  • Alerts at 80 % / 90 %
  • Scheduling (e.g. "weekend unlimited")
  • Export/import of configuration

© 2026 arlingkin. — arlingkin.vercel.app

License

AGPL-3.0 – see LICENSE in the repository root.

Contributors

PyGuy2

12 commits

arlingkin

7 commits

arlingkin/dalim

andriod app limiter data uses

Kotlin

0

19 commits

updated Sep 17, 2026

See the code

See what people are saying (1)

SourceMessageScoreDate

I built and shipped a signed Android app entirely from my phone (4GB RAM) — using a Linux desktop running inside a proot container on the phone itself, plus a free AI coding agent for the heavy lifting (r/SideProject)

Saya bikin dalim (**DAtaLIMit)** app pembatas data internet Android — bukan dari laptop, tapi dari Oppo A18, HP entry-level dengan RAM 4GB (extended jadi 4+4GB pakai virtual RAM) dan ROM 128GB. Nggak ada Android Studio, nggak ada laptop nganggur buat compile. Setup-nya: → Tiny Container…

0

Sep 19, 2026

README

Data Limit (dalim)

🇮🇩 Bahasa Indonesia? Baca → indonesia.md

CI Build Release

Track your data usage on Android and automatically enforce a budget you configure: daily, weekly, or monthly. The interface is bilingual — switch between English and Bahasa Indonesia in the app's LANGUAGE setting.

A normal app cannot kill the mobile radio. When the limit is hit the app locks the whole screen with a full-screen data gate — over whatever app you're in — until you explicitly allow more data.


Download

Latest build is a production release, signed with the release keystore. Install on Android 8.0+ (API 26).

VersionTypeDownload
v0.3.1Production · signeddatalimit-0.3.1-signed.apk

Earlier testing builds (v0.2.x-pre, unsigned / debug-signed) are still available on the releases page.

Features

AreaDetails
Budget typesDaily · Weekly · Monthly
Window stylesFixed (midnight reset) / Rolling 24 h
DashboardUsed / Limit / Remaining gauge, RX & TX, last check time
GateFull-screen blocking overlay over any app + re-popping full-screen alert, "+100 MB" escape hatch
AutostartMonitoring resumes after reboot
PermissionsOne-tap flow for Usage Access, Overlay, Notifications
LanguageEnglish · Bahasa Indonesia (in-app switch)

Permissions explained

PermissionWhy
PACKAGE_USAGE_STATSRead exact mobile/Wi-Fi totals
SYSTEM_ALERT_WINDOWShow the blocking data-gate overlay
POST_NOTIFICATIONSDisplay high-priority alerts
FOREGROUND_SERVICE + dataSyncKeep the counter running in background
RECEIVE_BOOT_COMPLETEDAuto-start monitoring after reboot

Building locally

# Requires Android SDK (Android Studio is the easiest way)
./gradlew :app:assembleDebug
# output: app/build/outputs/apk/debug/app-debug.apk

Or run gradle wrapper --gradle-version 8.7 first to generate gradlew.

To build a signed release you need the release keystore and its credentials (they are injected as DALIM_KEYSTORE_* environment variables — never committed):

export DALIM_KEYSTORE_FILE=/path/to/dalim-release.jks
export DALIM_KEYSTORE_PASSWORD=...
export DALIM_KEY_ALIAS=dalim
export DALIM_KEY_PASSWORD=...
./gradlew :app:assembleRelease
# output: app/build/outputs/apk/release/app-release.apk

CI / Release

Every push to main (or manual Run) builds a signed release APK via GitHub Actions, using the release keystore restored from repository secrets (DALIM_KEYSTORE_RELEASES plus DALIM_KEYSTORE_PASSWORD, DALIM_KEY_ALIAS, DALIM_KEY_PASSWORD), and publishes it as a full GitHub release (v0.3.1 and later) with a SHA256SUMS.txt checksum.

Roadmap

  • Optional root/system module to actually disable the radio
  • Per-app data breakdown
  • Alerts at 80 % / 90 %
  • Scheduling (e.g. "weekend unlimited")
  • Export/import of configuration

© 2026 arlingkin. — arlingkin.vercel.app

License

AGPL-3.0 – see LICENSE in the repository root.

Contributors

PyGuy2

12 commits

arlingkin

7 commits

Languages

Kotlin

97.3%

Shell

2.7%