A full-fledged Android application backup solution with cloud integration. This app allows users to extract and backup APKs from their installed applications and store them securely in Google Drive.
- 📱 Extract APKs from installed applications
- 🔒 Secure Google Drive integration for cloud backup
- 📋 List all installed applications with details
- 🔍 Search and filter applications
- 🎨 Material Design 3 with dynamic theming
- 🌙 Dark mode support
- 📊 Progress tracking for backup operations
- 🔄 Batch backup operations
- 🎯 Android 12+ support
- Language: Kotlin
- UI Framework: Jetpack Compose
- Architecture: MVVM with Clean Architecture
- Dependency Injection: Hilt
- Cloud Storage: Google Drive API
- Authentication: Google Sign-In
- Background Processing: Kotlin Coroutines
- Local Storage: Android Storage Access Framework
- Android Studio Hedgehog (2023.1.1) or newer
- JDK 11 or newer
- Android SDK with minimum API level 24
- Google Cloud Console account
- Go to the Google Cloud Console
- Create a new project or select an existing one
- Enable the following APIs:
- Google Drive API
- Google Sign-In API
- Create OAuth 2.0 credentials:
- Go to "Credentials"
- Click "Create Credentials" > "OAuth client ID"
- Choose "Android" as application type
- Add your package name and SHA-1 signing certificate fingerprint
-
Clone the repository:
git clone https://github.com/YadavYashvant/ApkExtractor.git
-
Configure Google Services:
- Copy
google-services.template.json
togoogle-services.json
- Replace the placeholder values with your Google Cloud project credentials
- Copy
-
Update OAuth Client ID:
- Open
Config.kt
- Replace the
OAUTH_CLIENT_ID
value with your OAuth client ID - An example Config.kt file can be written as follows -
package com.yashvant.zyptra.util object Config { const val OAUTH_CLIENT_ID = "OAUTH_CLIENT_ID" const val DRIVE_SCOPE = "https://www.googleapis.com/auth/drive.file" }
- Open
-
Generate SHA-1:
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
Add this SHA-1 to your Google Cloud Console project.
-
Sync project with Gradle files
- Open the project in Android Studio
- Wait for the Gradle sync to complete
- Run the app on an emulator or physical device
The app follows Clean Architecture principles with MVVM pattern:
app/
├── data/
│ ├── model/
│ ├── repository/
│ └── storage/
├── di/
├── service/
├── ui/
│ ├── screens/
│ ├── theme/
│ └── viewmodel/
└── util/
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- Add support for app data backup
- Implement backup scheduling
- Add backup encryption
- Support for multiple cloud storage providers
- Implement batch restore functionality
- Add backup version control
This project is licensed under the MIT License - see the LICENSE file for details