A fully native Android download manager built entirely in Kotlin.
Multi-thread β’ HLS Streams β’ Torrent β’ Web Archive β’ Remote Control
- β¨ Features
- π± Screenshots
- ποΈ Architecture
- π οΈ Tech Stack
- π Quick Start
- βοΈ Configuration
- π Requirements
- π€ Contributing
- π License
- π¬ Contact
- π° Support
| Feature | Description |
|---|---|
| Multi-thread HTTP | Split files into parallel chunks for maximum speed (up to 16 threads) |
| Resumable downloads | Automatically resumes from exact byte position after interruption, app close, or device reboot |
| Session saving | Download progress persisted to disk; never lose progress |
| Smart queue | Configurable concurrent download limit; queue promotes automatically when a slot opens |
| Mirror / fallback URLs | Probes all mirrors on start, picks the fastest; auto-switches on failure |
| Adaptive buffer | Buffer size adjusts dynamically based on connection speed |
| Speed limiting | Token Bucket algorithm for smooth, configurable bandwidth cap per download |
- Full .m3u8 playlist support (VOD and Live streams)
- Auto-selects highest quality variant from master playlist
- Parallel segment downloading with configurable thread count
- AES-128 and SAMPLE-AES decryption β fetches key automatically
- Segments merged and converted to a single .mp4 file via FFmpeg
- Live stream recording β continuously downloads new segments until stream ends or manually stopped
- fMP4 / fragmented MP4 init segment support
- Audio and subtitle track extraction
| Feature | Description |
|---|---|
| .torrent file | Full parsing and downloading |
| Magnet links | Support with DHT metadata fetching |
| Multi-tracker | HTTP + UDP tracker announce |
| DHT discovery | Bootstrap nodes for peer finding |
| Piece verification | SHA-1 checksum validation |
| Per-file selection | Choose exactly which files to download |
| Peer management | Choking/unchoking algorithm with rarest-first piece selection |
| Endgame mode | Optimized completion for near-finished downloads |
- Full WebView browser with multi-tab support
- Automatic file interception β detects downloadable files via WebView + JavaScript bridge
- Monitors XHR, fetch, video/audio/source elements in real time
- Incognito mode β no history, cookies, or cache saved
- Desktop Site toggle
- Paste & Go from clipboard
- Intercepted files panel with one-tap download
- Quick access to popular websites
- Scrape any web page for downloadable links
- Detects: video, audio, archives, documents, HLS, DASH, torrents, subtitles, images, fonts, and more
- Filter by file type, extension, or filename keyword
- Select multiple links and batch download or queue
- Direct link to New Download dialog for custom configuration per link
- Save any website for offline viewing
- Single Page mode (fast) or Full Site crawl mode (recursive)
- Downloads HTML, CSS, JavaScript, images, fonts, and all assets
- Rewrites all internal links for correct offline rendering
- Configurable: max pages, concurrency, asset size limit, retries
- Cookie and custom header support for authenticated pages
- Optional HTML minification
- iframe crawling and hash route (SPA) support
- Turns your phone into a local HTTP server (port 8080)
- Control downloads from any PC browser on the same Wi-Fi
- Web UI with single URL download, bulk URL download, and request history
- Re-download or re-queue any past request from history
- Live server status and request counter
- Detects URLs copied to clipboard on demand
- Handles single URLs or multiple URLs in one paste
- Auto-detects download type (HTTP / HLS / torrent)
- Selection dialog for multi-URL clipboard content
| Status Code | Strategy |
|---|---|
| 403 | Rotates User-Agent, adds browser-like headers |
| 429 | Exponential back-off (5s β 120s) |
| 503 | Increasing delay with UA rotation |
| Timeout | Increasing delay up to 60s |
| 500-599 | Exponential back-off with retry limit |
- Pool of 8 User-Agent strings (Chrome, Firefox, Safari, curl, wget, Python)
- Cookie refresh on auth failures
- Schedule any download to start at a specific date and time
- Global time window setting β downloads only run within allowed hours
- AlarmManager with
setExactAndAllowWhileIdleβ fires even in Doze mode - Downloads auto-pause outside the window and resume when it opens
- Preset scheduling chips: Tonight, Midnight, Dawn
| Option | Description |
|---|---|
| Proxy | HTTP and SOCKS5 support |
| Cookies | Custom cookie header |
| HTTP Headers | Custom headers (one per line) |
| User-Agent | Custom user agent string |
| Checksum | MD5, SHA-1, SHA-256, SHA-512 |
| HTTP Method | GET, POST, etc. |
| Thread Count | Configurable per download |
| Max Speed | Bandwidth cap per download |
| Retries | Per-chunk retry count |
| Timeout | Connection timeout |
- Checks filesystem and download history before starting
- Options:
- Rename β auto-increments filename (file (1).mp4)
- Overwrite β replaces existing file
- Skip β cancels download
| Metric | Description |
|---|---|
| Overview | Total downloads, success rate, total saved, avg and peak speed |
| Monthly chart | Download volume per month |
| Hourly heatmap | Download distribution by hour of day |
| Speed history | Real-time speed graph for current download |
| Recent history | Last 200 downloads with status, size, and speed |
| Auto-purge | Data older than 30 days automatically removed |
- Dark space theme with electric cyan accent (
#00D4FF) - Built entirely with Jetpack Compose + Material3
- Animated progress bars with glow effects
- Thread visualizer β 3 modes: Segment Bar, Waveform, Grid
- Countdown badge for scheduled downloads
- Multi-select mode with batch delete
- Status badges with pulse animation
- Smooth animated transitions throughout
Screenshots coming soon β stay tuned!
app/src/main/java/com/had/downloader/
β
βββ MainActivity.kt β Entry point + permission gates
βββ AppModule.kt β Hilt dependency injection
β
βββ data/
β βββ model/
β β βββ Models.kt β Data classes, enums, extension functions
β βββ repository/
β βββ Database.kt β Room DB, DAOs, type converters
β βββ AnalyticsDao.kt β Analytics queries
β βββ AnalyticsRepository.kt β Analytics business logic
β
βββ service/
β βββ SmartDownloader.kt β Core multi-thread HTTP engine
β βββ HlsDownloader.kt β HLS/M3U8 stream downloader
β βββ TorrentEngine.kt β BitTorrent client
β βββ ScraperEngine.kt β Web page link extractor
β βββ VideoDetectionEngine.kt β Stream/media URL detector
β βββ WebArchiveEngine.kt β Website archiver/crawler
β βββ RemoteDownloadServer.kt β Local HTTP control server
β βββ ForegroundDownloadService.kt β Android foreground service
β βββ DownloadSchedulerService.kt β Scheduled download service
β βββ SmartRetryEngine.kt β Intelligent retry logic
β βββ DuplicateDetector.kt β Duplicate file detection
β βββ FileSizeFetcher.kt β HEAD/GET file info fetcher
β βββ ClipboardMonitor.kt β Clipboard URL detection
β βββ BrowserInterceptor.kt β WebView request interceptor
β βββ Scheduler.kt β AlarmManager scheduling
β βββ BootReceiver.kt β Resume downloads after reboot
β βββ DownloadAlarmReceiver.kt β Alarm trigger handler
β βββ TriggerReceiver.kt β Internal broadcast receiver
β
βββ ui/
βββ theme/
β βββ Theme.kt β Colors, typography, Material3 scheme
βββ components/
β βββ Components.kt β Shared UI components
β βββ ThreadVisualizer.kt β Download thread visualization
β βββ HlsProgressCard.kt β HLS segment progress display
βββ screens/
βββ MainScreen.kt β Main UI + navigation drawer
βββ MainViewModel.kt β Central ViewModel
βββ AnalyticsTab.kt β Analytics dashboard
βββ BrowserTab.kt β Built-in browser
βββ EnhancedBrowserTab.kt β Browser implementation
βββ TorrentTab.kt β Torrent management UI
βββ RemoteServerTab.kt β Remote server control UI
βββ WebArchiveTab.kt β Web archive UI
βββ SettingsDialog.kt β App settings
βββ AboutTab.kt β About + donate
βββ GuideTab.kt β Full in-app user guide
βββ SchedulePicker.kt β Schedule time picker
βββ PermissionScreen.kt β Storage permission gate
βββ ShareReceiverActivity.kt β Share intent handler
βββ ChunkSessionManager.kt β Download session persistence
| Technology | Purpose |
|---|---|
| Kotlin | 100% of the codebase |
| Jetpack Compose | Declarative UI framework |
| Material3 | Design system |
| Hilt / Dagger | Dependency injection |
| Room | Local database for download history |
| Kotlin Coroutines + Flow | Async operations and reactive state |
| FFmpeg Kit | HLS segment merging and MP4 conversion |
| AlarmManager | Exact scheduled downloads (Doze-safe) |
| WebView | Built-in browser with JS bridge |
| SharedPreferences | User preferences storage |
| Foreground Service | Background download execution |
| Broadcast Receiver | Boot completion and alarm triggers |
- Android Studio Hedgehog or newer
- JDK 17
- Android SDK 36
git clone https://github.com/batmanpriv/HyperAdvancedDownloader-Android.git
cd HyperAdvancedDownloader-AndroidOpen in Android Studio:
File β Open β select the HyperAdvancedDownloader-Android folder β wait for Gradle sync
Run on device:
Run β Run 'app'
Build release APK:
Build β Generate Signed Bundle/APK β APK
All settings are configurable from the in-app Settings screen:
| Setting | Default | Description |
|---|---|---|
| Default threads | 4 | Parallel chunks per download |
| Max concurrent | 2 | Simultaneous active downloads |
| Default proxy | β | HTTP or SOCKS5 proxy |
| Max speed | Unlimited | Bandwidth cap in bytes/s |
| Retries | 5 | Max retry attempts per chunk |
| Timeout | 30s | Connection timeout |
| Schedule window | Disabled | Allowed download hours |
| Save folder | Downloads/HAD | Default output directory |
| Gzip | Disabled | Enable gzip compression |
| Session resume | Enabled | Resume interrupted downloads |
| Requirement | Details |
|---|---|
| Android Version | 8.0+ (API 26+) |
| Architecture | arm64-v8a |
| Storage Permission | MANAGE_EXTERNAL_STORAGE (Android 11+) or WRITE_EXTERNAL_STORAGE (Android 10 and below) |
| Network | Internet access for downloads |
| Optional | Wi-Fi for Remote Server |
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow Kotlin coding conventions
- Write meaningful commit messages
- Update documentation for user-facing changes
- Test on multiple Android versions when possible
This project is licensed under the MIT License β see the LICENSE file for details.
| Platform | Link |
|---|---|
| GitHub | @batmanpriv |
| spect3rog@gmail.com | |
| Donate | coffeete.ir/specter |
If HAD has been useful to you, consider supporting its development:
bc1q00h2kl4uvwcvzp7zdl80yx97f0p8jv450qdzwc
TL1417xeaNrvU6La3N5Vgpye1e47i4zHUv
Built with β€οΈ entirely in Kotlin + Jetpack Compose
A fully Kotlin-based native Android app



