Library / SDK
zacharee/InstallWithOptions avatar
zacharee/InstallWithOptions

Install with Options: ADB-grade APK installs without a PC

Simple-ish app using Shizuku to install APKs on-device with advanced options

3,289 stars165 forksKotlinMIT

At a glance

What is it?
Install with Options is a Kotlin Android app that routes package installs through Shizuku to reach shell permissions, exposing flags like test-only installs, downgrades and split APKs. It is deliberately small, and several of those flags stop working on Android 14 and later.
Who is it for?
Adopt Install with Options if you sideload regularly on Android 11 or later, already run Shizuku, and want the install flags that normally require a desktop ADB session. Do not adopt it if you need to install into a Work Profile whose creator blocks debugging features, if you are on a Mediatek device running Shizuku 13.6.0, or if you expect the installer package name to be honoured on Android 14 and later.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 22 days ago.
What is it written in?
Mainly Kotlin, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The install flags Android hides behind ADB

Android's package installer exposes a set of flags that the Settings UI never surfaces. Installing a test-only build, downgrading a package, or installing an APK whose target SDK is below the platform's minimum all require the shell user, which normally means connecting a PC, enabling USB debugging and running adb install with extra arguments. Install with Options moves that workflow onto the phone itself. It is aimed at people who sideload often enough that fetching a laptop each time is friction: testers, people running builds from CI, and users who keep older app versions around on purpose. The README frames the scope narrowly, calling it an app with a simple purpose: more advanced app installs without needing to use ADB. That narrowness is the design, not an accident. The project explicitly points users who want more toward InstallerX Revived, which it describes as including the features of Install with Options and a lot more. The README states the app needs Android 11 or later for the full on-device experience.

How Shizuku gives the app shell-level package installs

The mechanism is Shizuku rather than root. Shizuku starts a process under the shell user through ADB or wireless debugging once, and apps that bind to it can call system APIs with shell privileges. Install with Options uses that channel to reach the package installer service with arguments the normal app process cannot pass. The README says the app should be compatible with the original Shizuku and any forks using different package names or hiding themselves, so the binding is not tied to one package identity. Two capabilities fall out of this. Split APK sets, which are the normal packaging for modern apps, can be installed as one session, and multiple separate apps can be queued in a batch. Everything runs in the app's own UI, so the flags are presented as options rather than command-line arguments. The trade-off is a dependency chain: no Shizuku process, no elevated installs. The app is a client of Shizuku, and when Shizuku is not running or is killed by the system, the install path degrades.

Installing Install with Options and running a first install

There is no build-from-source instruction in the README. It points to two distribution channels: GitHub Releases and IzzyOnDroid. The IzzyOnDroid listing gives the package name, which is useful if you want to confirm what you are installing.

text
dev.zwander.installwithoptions

Get the APK from the GitHub Releases page linked in the README, or from the IzzyOnDroid repository at apt.izzysoft.de/fdroid/index/apk/dev.zwander.installwithoptions. Install it the way you install any sideloaded APK, which means allowing installs from unknown sources for whatever app is doing the installing.

Shizuku has to be running before the app can do anything useful. Start Shizuku through its own app, then open Install with Options and grant it the Shizuku permission when prompted. After that, pick an APK or a split APK set through the app's file picker and select the options you want before confirming. The README's screenshots show the option list as checkboxes next to the install action. On a Mediatek device, the README warns that Shizuku 13.6.0 does not work; either downgrade to 13.5.4 or use a fork such as thedjchi's Shizuku.

Where the options stop working: Android 14 and later

Several of the advertised capabilities are version-gated, and the README is unusually direct about it. Downgrading is the clearest case. On Android 14 and later, the README states that downgrading an app only works with root or if the app was compiled with debugging or test mode enabled, and that this applies even when the Allow Downgrade option is selected. The option exists; the platform refuses the install anyway on a normal release build. The installer package name has a similar ceiling. In Android 14, Google restricted what the shell user may set: ADB can still set the installer package field but not the originating package field. The README says there is no workaround, so any workflow that depended on spoofing the originating package is broken on Android 14 or later. The Bypass Low Target SDK Block option is not a general fix either. That flag was only added to Android in Android 14, so it does not appear on Android 13 or below, and the low target SDK block itself only arrived in base Android in 14. If old apps fail to install on an older Android release, the cause is something else.

Errors the app cannot fix, and one it can

INSTALL_FAILED_UPDATE_INCOMPATIBLE with signatures do not match is the hardest stop. Android compares the signature of the installed app with the one being installed, and the README states plainly that without root and specific system patches there is no workaround: the old version must be uninstalled first. It also rules out a common misreading of the app's own UI, noting that the Disable Verification option will not bypass signature verification and only disables basic package verification so certain special APKs can install. INSTALL_FAILED_NO_MATCHING_ABIS is a packaging problem, not a permissions one. Native libraries are compiled per CPU architecture, so an ARM-only APK will not install on an x86 or amd64 device, and ARM64 devices can reject apps whose native libraries are ARM32-only as newer chipsets drop that support. INSTALL_FAILED_USER_RESTRICTED can come from an Android skin that limits sideloading, in which case the README points at Developer Options entries such as Install via USB and USB Debugging (Security Settings). The one case with a real fix is Work Profile installs. The error Shell does not have permission to access user X appears when a profile created by something like Shelter or TestDPC blocks debugging. Disabling the Disallow debugging features user restriction, which TestDPC exposes under User restrictions, resolves it. If the profile creator offers no such toggle, the README says to ask its developer.

Install with Options versus InstallerX Revived

The README names its own alternative, which is rare and useful. InstallerX Revived is described as an advanced package installation manager that includes the features of Install with Options and a lot more. The difference is scope rather than mechanism: both are Shizuku-based installers, but InstallerX Revived carries a broader feature set, while Install with Options is intentionally kept simple. That makes the choice about how much installer you want on your phone. If you install an APK occasionally and want the few flags that ADB would give you, the smaller surface is easier to reason about. If you want an installer that manages more of the process, the README's own recommendation is to use InstallerX Revived instead. Note that neither app can override the platform restrictions described above; a larger feature set does not restore the originating package field on Android 14.

Maintenance, licence and upgrade cost

The repository is not archived, and the last push was on 2026-09-09. Releases are spaced rather than frequent: 0.9.0 on 2025-09-21, 0.9.1 on 2026-01-31 and 0.9.2 on 2026-03-14. That cadence matters for expectations. Android platform changes are what break this class of app, and the README's own notes about Android 14 restrictions show how quickly an option can become decorative. Upgrades are cheap in practice: the app ships through GitHub Releases and IzzyOnDroid, and there is no server component or database to migrate, so a new APK replaces the old one. The CHANGELOG.md at the repository root is where version-to-version changes are recorded, and it is the file to read before upgrading if you depend on a specific flag. The project is MIT licensed, which permits use, modification and redistribution provided the copyright notice and permission notice are retained. That is a statement about the licence text, not advice about your situation; if you plan to redistribute a modified build, read the LICENSE file in the repository.

Editorial conclusion

Adopt Install with Options if you sideload regularly on Android 11 or later, already run Shizuku, and want the install flags that normally require a desktop ADB session. Do not adopt it if you need to install into a Work Profile whose creator blocks debugging features, if you are on a Mediatek device running Shizuku 13.6.0, or if you expect the installer package name to be honoured on Android 14 and later. Before relying on it, verify your Android version against the option you actually need: the low target SDK bypass only appears on Android 14, downgrades need root or a debug-built target on Android 14 and later, and Disable Verification does not bypass signature checks. Check the 0.9.2 release notes for changes since 0.9.0 before you replace an older build.

Frequently asked questions

What is Install with Options?

It is an Android app that uses Shizuku to install APKs with advanced options, so you can do test-only installs, downgrades and other shell-level installs without connecting a PC. It also handles split APKs and batch installs of multiple separate apps.

How do I use Install with Options with Shizuku?

Start Shizuku first, then open Install with Options and grant it Shizuku permission when prompted. After that, select an APK or split APK set in the app and choose the install options you want before confirming.

Is Install with Options safe to use?

The app runs with shell permissions through Shizuku, so it can perform installs that a normal app cannot. The README does not make a safety claim; what it does document is that the app is distributed through GitHub Releases and IzzyOnDroid, and that the source is MIT licensed and available in the repository.

What is a good alternative to Install with Options?

The README itself points to InstallerX Revived, an advanced package installation manager that includes the features of Install with Options and more. Install with Options is intentionally kept simple, so the README suggests InstallerX Revived if you need the extra features.

Official sources

  1. Issues
  2. License: MIT
  3. README
  4. Releases
  5. zacharee/InstallWithOptions on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/zacharee-installwithoptions.svg)](https://hysenlabs.com/projects/zacharee-installwithoptions)