Awd DriveRouter Android is a sophisticated mobile file management application designed to bridge multiple cloud storage services into a single, cohesive experience. Built with Kotlin and Jetpack Compose, it provides an intelligent routing layer for your files, supporting seamless browsing, multi-account management, and background synchronization across various providers including Google Drive, OneDrive, Dropbox, Box, WebDAV, and SFTP.
- ✨ Key Features
- 📷 Screenshots
- ☁️ Supported Providers & Setup Guide
- 📁 Architecture & Tech Stack
- 🚀 Getting Started
- 🛠️ Developer Guide
- ⚙️ Troubleshooting
⚠️ Disclaimer- 📄 License
- 🔀 Unified Cloud Management: Connect and navigate multiple cloud accounts (Google Drive, OneDrive, Dropbox, Box, WebDAV, SFTP) from a single intuitive interface.
- 📤 Intelligent Routing: Automatically distribute uploads across providers based on smart strategies like "Largest Free Space" or "Round Robin".
- 📂 Professional File Explorer: Full-featured manager with multi-selection, batch actions, internal PDF preview, and native app integration.
- 🔄 Automatic Background Backup: Folder sync running reliably in the background via Android Foreground Services.
- 🔒 Secure Credential Storage: Uses Android's EncryptedSharedPreferences to store OAuth tokens and server credentials securely at rest.
- 🎨 Material 3 Design: Fully responsive UI with support for Dynamic Color, Dark/Light modes, and bilingual support (EN/ID).
| Home File Explorer | Navigation Drawer | Auto Backup |
|---|---|---|
![]() Home File Explorer |
![]() Navigation Drawer |
![]() Auto Backup |
| Upload Strategy | Cloud Accounts | File Upload |
|---|---|---|
![]() Upload Strategy |
![]() Cloud Accounts |
![]() File Upload |
In the Android app, go to Settings → Cloud Provider Settings to view your app identity details (Package Name, SHA-1 (HEX), SHA-1 (Base64), and Redirect URIs) with 1-click copy buttons.
| Provider | Type | Provider Console Link | Setup & Credentials Flow |
|---|---|---|---|
| Google Drive | OAuth 2.0 | Google Cloud Console | 1. Create OAuth Client ID (Desktop app) -> Copy Client ID & Client Secret to App Settings. 2. Use http://localhost as the default redirect URI. |
| OneDrive | OAuth 2.0 | Microsoft Entra | 1. Register App in Entra admin center. 2. Add Public client/native platform with Redirect URI: http://localhost. 3. Copy Application (client) ID into App Settings. |
| Dropbox | OAuth 2.0 | Dropbox Console | 1. Create app with Scoped Access (files.content.read/write).2. Register Redirect URI: awd-driverouter://dropbox-auth3. Copy App Key into App Settings. |
| Box | OAuth 2.0 | Box Console | 1. Create Custom App (User Authentication OAuth 2.0). 2. Register Redirect URI: awd-driverouter://box-auth3. Copy Client ID & Client Secret into App Settings. |
| WebDAV | Protocol | - | Direct connection. Enter Server URL, Username, and Password directly in the Connect Account dialog. |
| SFTP (SSH) | Protocol | - | Direct connection. Enter Host/IP, Port (default 22), Username, and Password in the Connect Account dialog. |
- UI: Jetpack Compose (Material 3)
- Asynchronous: Kotlin Coroutines & Flow
- Dependency Injection: Hilt
- Local Database: Room (Caching metadata & account records)
- Security: EncryptedSharedPreferences (MasterKey)
- Networking: Retrofit, OkHttp, Sardine (WebDAV), SSHJ (SFTP)
- Architecture: MVVM with Clean Architecture principles
- Android device running Android 8.0 (API 26) or higher.
- Cloud provider API credentials (for Google, OneDrive, Dropbox, or Box).
- Download the latest APK from the Releases page.
- Install the APK on your device (ensure "Install from Unknown Sources" is enabled).
awd-driverouter-android/
├── app/ # Main Android application module
│ ├── src/main/java/com/awd/driverouter/
│ │ ├── data/ # Repository, DAO, and Provider implementations
│ │ ├── di/ # Hilt modules
│ │ ├── domain/ # Business models and provider interfaces
│ │ ├── ui/ # Jetpack Compose screens and viewmodels
│ │ └── util/ # Formatting and helper utilities
│ └── build.gradle.kts # Module dependencies
├── docs/screenshots/ # Screenshots for documentation
├── gradle/ # Gradle wrapper
└── README.md # English Documentation
- Clone the repository:
git clone https://github.com/putuwahyu29/awd-driverouter-android.git
- Open in Android Studio (Iguana or newer).
- Build the project:
./gradlew assembleDebug
- OAuth Callback Issues: Ensure you are using the correct Desktop app (Google) or Public client/native (OneDrive) type. These types use
http://localhostwhich is automatically handled by the app. - Google Drive Error: If you get an error, ensure you created a Desktop app credential and copied BOTH the Client ID and Client Secret correctly.
- OneDrive Error: Ensure you selected Accounts in any organizational directory and personal Microsoft accounts during registration to allow personal account login.
This project is an independent open-source development. It is not officially endorsed by Google, Microsoft, Dropbox, Box, or any other service provider mentioned. Users are responsible for ensuring compliance with each provider's Terms of Service.
This project is licensed under the MIT License. See the LICENSE file for details.
Made with ❤️ by I Putu Agus Wahyu Dupayana






