ShizuStore

Universal Installer

pass-with-high-score

1.18.0 · GitHub

Download APK
Installer & app stores Android 7.0+ 2 weeks ago GPL-3.0
800 ShizuStore
83.3k GitHub
1.5k Stars
3 MB Size

More about this app

Install and manage APK packages with split APK support, silent install via Shizuku, and VirusTotal malware scanning

Universal Installer Icon

Universal Installer

A modern, powerful Android package manager and sideloading tool for Phones, Android TV, and Wear OS.

Latest Release Downloads License

Download

Google Play F-Droid IzzyOnDroid GitHub Release

Website ยท Privacy ยท Terms


Supported Platforms

Platform Module Description
๐Ÿ“ฑ Phone & Tablet :app Material 3 UI, dynamic colors & spring animations
๐Ÿ“บ Android TV :tv D-pad navigation, 10-foot UI with QR code pairing & remote receive
โŒš Wear OS :wearos Wear Compose UI for smartwatch package management & install

Supported Formats

  • Single APK: .apk
  • Split APK Bundles: .apks, .xapk, .apkm, .apk+
  • Manual Splits: Merge multiple individual .apk files into a single installation session
  • Game Data: Automatic extraction & background placement of .obb expansion files

Key Features

  • โšก Flexible Installation Backends:

    • Standard system installer, Shizuku, and Root (libsu). On phones and tablets, Porter can serve the Shizuku engine too.
    • Silent install and uninstall without prompts.
    • Privileged controls: allow downgrade, bypass minimum SDK restrictions, grant permissions, install for all users, and spoof installer package names (Google Play, F-Droid, Aurora Store, Amazon, etc.).
  • ๐Ÿ“ฆ Seamless OBB Support:

    • Auto-extracts .obb files from XAPK/APKM archives directly to Android/obb/<package>/.
    • Attach standalone OBB files to APK installs.
    • Multi-tier write strategy: Direct I/O, Shizuku, or Storage Access Framework (SAF).
  • ๐Ÿ›ก๏ธ VirusTotal Security:

    • Automatic SHA-256 hash lookup before install.
    • Engine detection breakdown (malicious, suspicious, clean).
    • On-demand file upload scan for unindexed packages (up to 650 MB).
  • ๐ŸŒ Local Sharing & Send to TV:

    • Built-in HTTP server and web dashboard for transferring APKs from PC or mobile browser.
    • Push packages directly to Android TV via QR code scanning.
    • Optional PIN security for local network access.
  • ๐Ÿ—‚๏ธ App Manager:

    • Inspect installed user & system apps with rich details (SDK targets, size, permissions, signatures).
    • Sort and filter by name, install date, size, or last used time.
    • Batch uninstall with detailed status logs.
  • ๐Ÿ“ฅ Remote Downloader & Intake:

    • Download APK packages directly from web URLs with download history.
    • Deep-link and intent handling to open packages from browsers, messaging apps, and file managers.

Tech Stack


Project Structure

โ”œโ”€โ”€ app/        # Android Phone & Tablet application
โ”œโ”€โ”€ tv/         # Android TV application
โ”œโ”€โ”€ wearos/     # Wear OS smartwatch application
โ”œโ”€โ”€ core/       # Shared engine (package parsing, installers, storage, networking)
โ””โ”€โ”€ updater/    # In-app update checking logic

Building from Source

Prerequisites

  • Android Studio Ladybug or newer
  • JDK 17+
  • Android SDK 36

Build Commands

# Build Phone app (open-source flavor)
./gradlew :app:assembleOpensourceDebug

# Build Android TV app
./gradlew :tv:assembleDebug

# Build Wear OS app
./gradlew :wearos:assembleDebug

# Build all debug variants
./gradlew assembleDebug

Note: The play flavor of :app requires app/src/play/google-services.json (see docs/FIREBASE.md). Without it, build the opensource flavor.


Contributing & License

Close

How Shizuku is used

Can silently install and uninstall apps, manage apps, copy game data and set default installer via `Shizuku`

This is an AI-assisted analysis of Shizuku-related usages in the app's public source code. It is best effort, so it may not catch every single usage.

How this app uses Shizuku

Shizuku lets this installer perform silent installs and privileged app management without system prompts.

  • Install apps silently: APKs and split APKs install in the background through a privileged install session, with options for replacing existing apps, downgrades, granting permissions, installing for all users and spoofing the installer name.
  • Install for specific user: installs can target a chosen user or work profile by creating a package session for that user and committing it with pm install-commit through Shizuku.
  • Uninstall apps silently: user apps uninstall in the background through a privileged session without confirmation, with options for system apps and targeting the main user.
  • Remove or disable system apps: system apps that cannot be removed normally are uninstalled for the main user with pm uninstall --user 0 through Shizuku, or disabled with pm disable-user --user 0 instead.
  • Enable or disable apps: any app, including the system package installer, can be frozen or re-enabled with pm disable-user --user 0 and pm enable through Shizuku.
  • Force stop and launch apps: running apps can be stopped with am force-stop and launched with monkey through Shizuku from the management list.
  • Clear app data: cache, data and game files for an app can be wiped with pm clear through Shizuku.
  • Speed up new installs: freshly installed apps can be optimized with cmd package compile through Shizuku.
  • Harden install sources: install permission can be revoked from other apps with appops set ... REQUEST_INSTALL_PACKAGES ignore through Shizuku.
  • Copy game data files: bundled OBB data is written to shared storage by creating the folder with mkdir -p and piping bytes through cat in a Shizuku shell process, with cleanup by rm -f on failure.
  • Pick install target user: all device users and work profiles are listed through the system user service via Shizuku so installs can target a specific user.
  • Become default installer: the app can register itself as the preferred handler for APK files through the system package service via Shizuku.

Android APIs or commands used

  • android.content.pm.PackageInstaller
  • IUserManager.getUsers
  • IPackageManager.addPreferredActivity
  • IPackageManager.clearPackagePreferredActivities
  • IPackageManager.queryIntentActivities
  • IPackageManager.setApplicationEnabledSetting
  • IPackageInstaller.openSession
  • IPackageInstallerSession.openWrite
  • pm uninstall --user 0
  • pm disable-user --user 0
  • pm enable
  • pm clear
  • pm install-commit
  • am force-stop
  • appops set
  • cmd package compile -m speed -f
  • monkey -p
  • mkdir -p
  • cat >
  • rm -f
  • sh -c

Notable details

Without Shizuku the app still installs with the normal system installer and session flow, and OBB files can be written directly or with a folder grant.

Close

Changelog

What's new for version 1.18.0

๐Ÿ“ฑ Phone (App)

  • Added optional OBB and media data expansion backup into .xapk
  • Improved app update tracking and installation state detection
  • Added shimmer loading skeleton on updates list
  • Standardized installer error states and onboarding flow
  • UI and navigation bar inset refinements
  • Added Bengali (bn) language support

๐Ÿ“บ Android TV

  • Fixed app freezing when opening add app dialog
  • Aligned updates category filters for TV remote navigation
  • Added Bengali (bn) language support
  • Stability improvements and bug fixes

โŒš Wear OS

  • Integrated analytics and error diagnostics
  • Added Bengali (bn) language support
  • Watch UI refinements and stability improvements
Close

Permissions

15 permissions requested

  • android.permission.QUERY_ALL_PACKAGES
  • android.permission.REQUEST_INSTALL_PACKAGES
  • android.permission.REQUEST_DELETE_PACKAGES
  • android.permission.MANAGE_EXTERNAL_STORAGE
  • android.permission.READ_EXTERNAL_STORAGE
  • android.permission.INTERNET
  • android.permission.ACCESS_NETWORK_STATE
  • android.permission.POST_NOTIFICATIONS
  • android.permission.WRITE_EXTERNAL_STORAGE
  • android.permission.VIBRATE
  • android.permission.WAKE_LOCK
  • android.permission.RECEIVE_BOOT_COMPLETED
  • android.permission.FOREGROUND_SERVICE
  • app.pwhs.universalinstaller.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
  • moe.shizuku.manager.permission.API_V23
Close