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_TESTand installs APKs marked withtestOnly. - Install For All Users: maps to
INSTALL_ALL_USERSand 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_DOWNGRADEand 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_PERMISSIONSand 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_BLOCKand allows apps targeting old SDK versions on Android versions that normally block them. - Request Update Ownership: maps to
INSTALL_REQUEST_UPDATE_OWNERSHIPand requests that Android treats this installer as the future update owner.
Storage and Source Flags
- Internal Storage: maps to
INSTALL_INTERNALand forces installation to internal storage. - External Storage: maps to
INSTALL_EXTERNALand forces installation to external storage where supported. This is only available on older Android versions. - Install request from ADB: maps to
INSTALL_FROM_ADBand tells Android the install request came from ADB. - Disable Verification: maps to
INSTALL_DISABLE_VERIFICATIONand 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_APPand installs the package as an instant app. - Don't Kill App: maps to
INSTALL_DONT_KILL_APPand avoids killing the main app when installing split features. - Full App: maps to
INSTALL_FULL_APPand marks the package as a full app, often used when upgrading an instant app. - Allocate Aggressive: maps to
INSTALL_ALLOCATE_AGGRESSIVEand tells the system the package is important to system health or security when reclaiming storage. - Virtual Preload: maps to
INSTALL_VIRTUAL_PRELOADand marks the package as a virtual preload. - APEX: maps to
INSTALL_APEXand marks the package as an APEX package. - Enable Rollback: maps to
INSTALL_ENABLE_ROLLBACKand allows rollback metadata for future rollback flows. - Staged: maps to
INSTALL_STAGEDand installs as a staged session. - Dry Run: maps to
INSTALL_DRY_RUNand verifies without installing on supported Android versions. - Disable Allowed APEX Update Check: maps to
INSTALL_DISABLE_ALLOWED_APEX_UPDATE_CHECKand 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.