Skip to content

Install Options & Parameters ​

Install options are advanced flags passed to Android PackageInstaller. They can be saved in a profile or changed temporarily from the install dialog extended menu. The matching AOSP constants are mostly defined in PackageManager.java and are applied through PackageInstaller.SessionParams.

INFO

Install flags are requests to the system, not guarantees. Android version, ROM policy, authorizer, and whether InstallerX is a system package manager all affect the final result.

Common Options ​

  • Allow Test: maps to INSTALL_ALLOW_TEST and installs APKs marked with testOnly.
  • Install For All Users: maps to INSTALL_ALL_USERS and installs the package for every Android user on the device. This can override a profile's target user setting.
  • Allow Downgrade: maps to INSTALL_ALLOW_DOWNGRADE / INSTALL_REQUEST_DOWNGRADE and allows installing a lower version over a newer one. Android 15+ usually requires Root or system package manager mode.
  • Grant All Requested Permissions: maps to INSTALL_GRANT_RUNTIME_PERMISSIONS and grants requested runtime permissions after install. Special permissions such as All Files Access, Accessibility, and notification listener access are not granted automatically.
  • Bypass Low Target SDK Block: maps to INSTALL_BYPASS_LOW_TARGET_SDK_BLOCK and allows apps targeting old SDK versions on Android versions that normally block them.
  • Request Update Ownership: maps to INSTALL_REQUEST_UPDATE_OWNERSHIP and requests that Android treats this installer as the future update owner.

Storage and Source Flags ​

  • Internal Storage: maps to INSTALL_INTERNAL and forces installation to internal storage.
  • External Storage: maps to INSTALL_EXTERNAL and forces installation to external storage where supported. This is only available on older Android versions.
  • Install request from ADB: maps to INSTALL_FROM_ADB and tells Android the install request came from ADB.
  • Disable Verification: maps to INSTALL_DISABLE_VERIFICATION and disables package verification during install. This is not InstallerX signature verification.

These flags are mostly useful for testing or ROM-specific workflows. They may be ignored by modern Android builds.

Advanced PackageInstaller Flags ​

  • Instant App: maps to INSTALL_INSTANT_APP and installs the package as an instant app.
  • Don't Kill App: maps to INSTALL_DONT_KILL_APP and avoids killing the main app when installing split features.
  • Full App: maps to INSTALL_FULL_APP and marks the package as a full app, often used when upgrading an instant app.
  • Allocate Aggressive: maps to INSTALL_ALLOCATE_AGGRESSIVE and tells the system the package is important to system health or security when reclaiming storage.
  • Virtual Preload: maps to INSTALL_VIRTUAL_PRELOAD and marks the package as a virtual preload.
  • APEX: maps to INSTALL_APEX and marks the package as an APEX package.
  • Enable Rollback: maps to INSTALL_ENABLE_ROLLBACK and allows rollback metadata for future rollback flows.
  • Staged: maps to INSTALL_STAGED and installs as a staged session.
  • Dry Run: maps to INSTALL_DRY_RUN and verifies without installing on supported Android versions.
  • Disable Allowed APEX Update Check: maps to INSTALL_DISABLE_ALLOWED_APEX_UPDATE_CHECK and skips allowed APEX update checks on supported Android versions.

Only use these when you understand the Android PackageInstaller behavior behind them.

Split and Multi-APK Defaults ​

  • Select all splits by default: select every split APK instead of InstallerX's best-fit split set.
  • Select all APKs by default during batch install: select every APK when a single install session contains multiple APK files.

For APKS, APKM, and XAPK files, the default best-fit behavior is usually safer because it matches language, density, ABI, and feature splits to the current device.

Signature and Compatibility ​

When Core Patch or similar system-level hooks are enabled, Android may no longer block installs with mismatched or unverifiable signatures. That means an app store using InstallerX could silently replace an app with a differently signed build, such as auto-updating a development build to an official release.

Each profile offers two blocking policies:

  • Block Signature Mismatch: block updates signed differently from the installed version.
  • Block Unknown Signature: block installs whose signature cannot be verified.

Both blocks are disabled for new profiles. When enabled, a matching risk stops the request before it reaches Android and reports failure to the caller. The failure dialog may offer a one-time bypass. Review existing profiles after upgrading or restoring settings.

Control analysis under Settings → Installer settings → Signature checks. App signature analysis is enabled by default; split package signature analysis is disabled by default.

Streaming installs

Streaming cannot perform full APK signature verification. Block Signature Mismatch cannot take effect on this path; different certificates or uncertain compatibility follow Block Unknown Signature. Choose Full download in Network settings when full analysis is required.

Disabling an app-level block does not bypass Android's final signature verification. When using Core Patch or similar changes to system verification, check package sources and signature details carefully.

Released under the GPL-3.0 License.