[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-1761":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":9,"totalLinesOfCode":9,"stars":12,"forks":13,"watchers":14,"openIssues":13,"contributorsCount":9,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":21,"hasPages":21,"topics":23,"createdAt":9,"pushedAt":9,"updatedAt":29,"readmeContent":30,"aiSummary":31,"trendingCount":15,"starSnapshotCount":15,"syncStatus":32,"lastSyncTime":33,"discoverSource":34},1761,"universal-installer","pass-with-high-score\u002Funiversal-installer","pass-with-high-score","A modern Android app for installing and managing APK packages with split APK support, silent install via Shizuku, and VirusTotal malware scanning.",null,"https:\u002F\u002Fgithub.com\u002Fpass-with-high-score\u002Funiversal-installer","Kotlin",372,18,7,0,37,57,233,111,3.84,false,"main",[24,25,26,27,28],"android","jetpack-compose","shizuku","installer","package-manager","2026-06-12 02:00:32","\u003Cdiv align=\"center\">\n  \u003Cimg src=\"fastlane\u002Fmetadata\u002Fandroid\u002Fen-US\u002Fimages\u002Ficon.png\" width=\"128\" height=\"128\">\n  \u003Ch1>Universal Installer\u003C\u002Fh1>\n  \u003Cp>\u003Cstrong>Universal Installer\u003C\u002Fstrong> is a modern Android package manager that handles what the default installer can't.\u003C\u002Fp>\n  \u003Cp>Install \u003Cstrong>APK, APKS, XAPK, APKM\u003C\u002Fstrong> (with split APKs and OBB files), download packages from URLs, manage installed apps, and silent-install via Shizuku — all in one Material 3 app.\u003C\u002Fp>\n  \u003Cbr>\u003Cbr>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpass-with-high-score\u002Funiversal-installer\u002Freleases\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Fpass-with-high-score\u002Funiversal-installer\">\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpass-with-high-score\u002Funiversal-installer\u002Freleases\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fdownloads\u002Fpass-with-high-score\u002Funiversal-installer\u002Ftotal\">\n  \u003C\u002Fa>\n  \u003Cbr>\u003Cbr>\n  \u003Ch4>Download\u003C\u002Fh4>\n  \u003Ca href=\"https:\u002F\u002Fplay.google.com\u002Fstore\u002Fapps\u002Fdetails?id=app.pwhs.universalinstaller\">\n    \u003Cimg src=\"https:\u002F\u002Fplay.google.com\u002Fintl\u002Fen_us\u002Fbadges\u002Fstatic\u002Fimages\u002Fbadges\u002Fen_badge_web_generic.png\" height=\"80\">\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Ff-droid.org\u002Fpackages\u002Fapp.pwhs.universalinstaller\">\n    \u003Cimg src=\"https:\u002F\u002Ffdroid.gitlab.io\u002Fartwork\u002Fbadge\u002Fget-it-on.png\" alt=\"Get it on F-Droid\" height=\"80\">\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpass-with-high-score\u002Funiversal-installer\u002Freleases\">\n    \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FNeoApplications\u002FNeo-Backup\u002F034b226cea5c1b30eb4f6a6f313e4dadcbb0ece4\u002Fbadge_github.png\" height=\"80\">\n  \u003C\u002Fa>\n  \u003Cbr>\u003Cbr>\n  \u003Ca href=\"https:\u002F\u002Fapt.izzysoft.de\u002Ffdroid\u002Findex\u002Fapk\u002Fapp.pwhs.universalinstaller\">\n    \u003Cimg src=\"https:\u002F\u002Fgitlab.com\u002FIzzyOnDroid\u002Frepo\u002F-\u002Fraw\u002Fmaster\u002Fassets\u002FIzzyOnDroidButtonGreyBorder_nofont.png\" height=\"54\" alt=\"Get it at IzzyOnDroid\">\n  \u003C\u002Fa>\n  \u003Cbr>\u003Cbr>\n  \u003Ca href=\"https:\u002F\u002Funiversal-installer.pwhs.app\u002F\">Website\u003C\u002Fa>\n  ·\n  \u003Ca href=\"https:\u002F\u002Funiversal-installer.pwhs.app\u002Fprivacy\">Privacy\u003C\u002Fa>\n  ·\n  \u003Ca href=\"https:\u002F\u002Funiversal-installer.pwhs.app\u002Fterms\">Terms\u003C\u002Fa>\n\u003C\u002Fdiv>\n\n---\n\n## Screenshots\n\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"fastlane\u002Fmetadata\u002Fandroid\u002Fen-US\u002Fimages\u002FphoneScreenshots\u002F1.jpg\" width=\"200\">\n  \u003Cimg src=\"fastlane\u002Fmetadata\u002Fandroid\u002Fen-US\u002Fimages\u002FphoneScreenshots\u002F2.jpg\" width=\"200\">\n  \u003Cimg src=\"fastlane\u002Fmetadata\u002Fandroid\u002Fen-US\u002Fimages\u002FphoneScreenshots\u002F3.jpg\" width=\"200\">\n  \u003Cimg src=\"fastlane\u002Fmetadata\u002Fandroid\u002Fen-US\u002Fimages\u002FphoneScreenshots\u002F4.jpg\" width=\"200\">\n  \u003Cimg src=\"fastlane\u002Fmetadata\u002Fandroid\u002Fen-US\u002Fimages\u002FphoneScreenshots\u002F5.jpg\" width=\"200\">\n    \u003Cimg src=\"fastlane\u002Fmetadata\u002Fandroid\u002Fen-US\u002Fimages\u002FphoneScreenshots\u002F6.jpg\" width=\"200\">\n\u003C\u002Fdiv>\n\n---\n\n## Features\n\n### Install\n\n* **Multi-format** — `.apk`, `.apks`, `.xapk`, `.apkm` with split APK handling (via [Ackpine](https:\u002F\u002Fackpine.solrudev.ru\u002F))\n* **Merge split APKs** — Group multiple individual `.apk` files (e.g. from a manual split extraction) into a single installation session. Perfect for installing apps served as a collection of separate splits.\n* **Modern Android Support** — Fully compatible with **Android 14, 15, 16**, and ready for **Android 17**. Fixes common parsing errors (e.g. `aconfig_flags.pb`) found on newer system versions.\n* **Package preview** — App name, icon, version, package, size, min\u002Ftarget SDK, supported ABIs, languages, permissions, OBB count, split count — shown in a bottom sheet before you commit\n* **Three local pick modes** — Find automatic (scans device storage), Browse packages (APK\u002FXAPK\u002FAPKS\u002FAPKM only), Browse all files\n* **Remote download** — Paste a URL, download package directly. Files land in `\u002Fsdcard\u002FDownload\u002FUniversalInstaller\u002F` with their Content-Disposition name so they're easy to re-find in any file manager\n* **Download history** — Every download is logged; re-install later, copy the source URL, or delete from the dedicated history screen\n* **Intent handling** — Open APK\u002FXAPK files from Chrome downloads, Gmail attachments, Telegram, or any file manager — even when the URL has no extension\n\n### OBB support\n\n* **Bundle-embedded OBBs** — XAPK\u002FAPKM\u002FAPKS archives containing `.obb` files are auto-detected and copied to `Android\u002Fobb\u002F\u003Cpackage>\u002F` after the APK installs\n* **Standalone attach** — Pick a base APK, then attach one or more `.obb` files via the preview sheet; they're installed alongside\n* **Runs in a foreground worker** — OBB copy survives app closure, with progress on the notification shade\n* **Three write strategies** — Falls back in order based on what the device permits:\n  1. Direct I\u002FO (pre-Android 11)\n  2. Shizuku (`shell` UID can write to any app's OBB dir on modern Android)\n  3. SAF tree grant (user grants access to `Android\u002Fobb\u002F\u003Cpkg>\u002F` once per package; reused on subsequent installs)\n\n### Security\n\n* **VirusTotal integration** — Auto SHA-256 hash lookup on every picked file; if VirusTotal doesn't know the file yet, optionally upload it for a full multi-engine scan (supports files up to 650 MB via VirusTotal's large-file endpoint)\n* **Clear verdict** — See engine counts (malicious \u002F suspicious \u002F harmless \u002F undetected) before you install\n\n### Shizuku & Root power-user features\n\nWhen Root access or Shizuku is enabled, unlocks:\n\n* **Silent install \u002F uninstall** — No system confirmation prompt\n* **Replace existing**, **Allow downgrade**, **Grant all requested permissions**, **Allow test packages**, **Bypass low target SDK block**, **Install for all users**\n* **Set install source** — Spoof the installer package name (Google Play, Aurora, F-Droid, Amazon, Samsung, Huawei, Xiaomi presets, or custom) so apps with \"installed from Play Store\" checks accept your sideload\n\n### Sync & Share (LAN File Server)\n\n* **Built-in HTTP server** — Share and manage your packages across a local Wi-Fi network from any browser\n* **Web dashboard** — Download APKs straight to your PC or upload new packages directly to your phone\n* **Live tracking** — Real-time progress updates visible inside the app as files transfer\n* **PIN security** — Set an optional 4–8 digit PIN code to restrict local access to your shared folder\n\n### Uninstall \u002F app manager\n\n* **Full app list** — Browse user apps (system apps optional)\n* **Rich metadata** — App name, package, version, APK size, first install date, last used time\n* **Sort** — By Name \u002F Size \u002F Installed date \u002F Last used — each with ascending\u002Fdescending toggle\n* **Batch select** — Long-press to enter selection mode, uninstall many at once\n* **Filter sheet** — Tap FAB for sort\u002Ffilter options; long-press FAB to scroll to top\n* **Usage access hint** — \"Last used\" sort prompts user to grant the Usage Access permission only when needed\n* **Uninstall logs** — Separate log screen for every uninstall attempt (success \u002F failure with reason)\n\n### Device utilities\n\n* **Storage card on Install screen** — At-a-glance internal storage usage (free \u002F total, color-coded warning at 75% \u002F 90%)\n* **Install history** — Every install attempt logged with app name, package, version, success\u002Ffailure, and error reason\n\n### Other\n\n* **Material 3** — Dynamic color + Light \u002F Dark \u002F System theme\n* **Multi-language** — Arabic, German, English, Spanish, French, Hindi, Indonesian, Italian, Japanese, Korean, Portuguese (BR), Russian, Turkish, Vietnamese, Chinese\n* **Progress notifications** — Download, install, and OBB copy all surface their progress in the notification shade\n\n---\n\n## Tech Stack\n\n* **Kotlin** + **Jetpack Compose** — UI\n* **[Ackpine](https:\u002F\u002Fackpine.solrudev.ru\u002F)** — Package install\u002Funinstall with split APK, Shizuku, and libsu plugins\n* **[Shizuku](https:\u002F\u002Fshizuku.rikka.app\u002F)** — Privileged operations via ADB\u002Froot\n* **Ktor** — HTTP client for VirusTotal and remote downloads\n* **WorkManager** — Foreground worker for OBB copy (survives app process death)\n* **Room** — Local DB for install \u002F uninstall \u002F download history\n* **Koin** — Dependency injection\n* **DataStore** — Preferences storage\n* **Coil 3** — App icon loading\n\n---\n\n## Build Instructions\n\n### Requirements\n\n* [Android Studio](https:\u002F\u002Fdeveloper.android.com\u002Fstudio)\n* Java 17+\n* Android SDK 36\n\n### Steps\n\n1. Clone the repository:\n   ```bash\n   git clone https:\u002F\u002Fgithub.com\u002Fpass-with-high-score\u002Funiversal-installer.git\n   cd universal-installer\n   ```\n2. Open the project in Android Studio\n3. Sync Gradle and run on a device (emulator works for most features except Shizuku-backed install)\n\n### Gradle\n\nUniversal Installer uses two product flavors: `store` (F-Droid\u002FPlay Store compliant, no bundled Root binaries) and `full` (All features, including Root backend).\n\n```bash\n# Debug builds\n.\u002Fgradlew assembleStoreDebug\n.\u002Fgradlew assembleFullDebug\n\n# Release builds\n.\u002Fgradlew assembleStoreRelease\n.\u002Fgradlew assembleFullRelease\n```\n\n### Fastlane\n\n```bash\n# Install dependencies\nbundle install\n\n# Build debug APK\nbundle exec fastlane build_debug\n\n# Build release APK\nbundle exec fastlane build_release\n\n# Deploy beta to Firebase App Distribution\nbundle exec fastlane beta\n\n# Deploy to Play Store internal track\nbundle exec fastlane deploy_internal\n\n# Bump version code\nbundle exec fastlane bump_version\n\n# Bump version code + name\nbundle exec fastlane bump_version version_name:\"2.0\"\n```\n\n---\n\n## Configuration\n\n### Shizuku (silent install, install source spoofing, OBB copy)\n\n1. Install [Shizuku](https:\u002F\u002Fshizuku.rikka.app\u002F) on your device\n2. Start the Shizuku service via ADB (or via the Shizuku app if rooted)\n3. Open Universal Installer → **Settings → Installation → Shizuku Backend** → grant permission when prompted\n4. Optional: enable **Set install source** to pick the installer package name apps will see\n\n### VirusTotal\n\n1. Get a free API key at [virustotal.com\u002Fgui\u002Fmy-apikey](https:\u002F\u002Fwww.virustotal.com\u002Fgui\u002Fmy-apikey)\n2. **Settings → Security → VirusTotal API Key** → paste key\n3. Every picked APK is hashed and looked up automatically; unknown files can be uploaded on demand from the preview sheet\n\n### Storage permissions (for OBB copy + device scan)\n\n* **Android 11+**: grant **All files access** when prompted (used for `Find automatic` device scan and for the direct-write OBB path). If you decline, OBB copy falls back to Shizuku or a per-package SAF tree grant\n* **Pre-Android 11**: falls back to legacy `READ\u002FWRITE_EXTERNAL_STORAGE`\n* **Usage access** (optional, Uninstall screen only): grant when you tap the \"Last used\" sort option — enables sorting and date metadata per row\n\n---\n\n## Contributing\n\nPull requests and issue reports are welcome. Help us improve Universal Installer!\n\n* Found a bug? [Open an issue](https:\u002F\u002Fgithub.com\u002Fpass-with-high-score\u002Funiversal-installer\u002Fissues)\n* Want a feature? Start a discussion or submit a PR\n* Translation fixes \u002F new locales also welcome\n\n---\n\n## Sponsor\n\nIf Universal Installer saves you time, consider supporting the project. Sponsorships help cover\nmaintenance, new features, and keeping the app free.\n\n[![Sponsor](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSponsor-%E2%9D%A4%EF%B8%8F-red?logo=github-sponsors)](https:\u002F\u002Fgithub.com\u002Fsponsors\u002Fpass-with-high-score)\n\n---\n\n## License\n\n[![GPL-3.0-only](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-GPL--3.0--only-blue.svg)](https:\u002F\u002Fspdx.org\u002Flicenses\u002FGPL-3.0-only.html)\n\nThis project is licensed under the **GNU General Public License v3.0 only (GPL-3.0-only)**.\nYou are free to use, modify, and distribute it.\nSee the full [LICENSE](LICENSE) file for details.\n\n---\n\n## Credits\n\n* Built and maintained by [Nguyen Quang Minh](https:\u002F\u002Fgithub.com\u002Fnqmgaming)\n\n---\n\n## Star History\n\n[![Star History Chart](https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=pass-with-high-score\u002Funiversal-installer&type=Date)](https:\u002F\u002Fwww.star-history.com\u002F#pass-with-high-score\u002Funiversal-installer&Date)\n","Universal Installer 是一款现代化的Android应用，用于安装和管理APK包，支持分包APK、通过Shizuku静默安装以及VirusTotal恶意软件扫描。该应用采用Kotlin编写，并使用Jetpack Compose构建用户界面，提供了一种流畅且直观的方式来处理多种格式的应用安装文件（如APK、APKS、XAPK、APKM），并能够自动合并分包APK进行安装。此外，它还允许从URL下载包，并通过Shizuku实现无需用户交互的后台安装过程。适用于需要频繁测试或管理多个版本应用程序的开发者，或是希望拥有更强大安装选项的高级用户。",2,"2026-06-11 02:45:51","trending"]