Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

# SessionParams

*** ** * ** ***

```
open class SessionParams : Parcelable
```

|---|---|
| [kotlin.Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html) ||
| ↳ | [android.content.pm.PackageInstaller.SessionParams](https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#) |

Parameters for creating a new `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.Session`.

## Summary

| Constants ||
|---|---|
| static [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#MODE_FULL_INSTALL:kotlin.Int` Mode for an install session whose staged APKs should fully replace any existing APKs for the target app. |
| static [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#MODE_INHERIT_EXISTING:kotlin.Int` Mode for an install session that should inherit any existing APKs for the target app, unless they have been explicitly overridden (based on split name) by the session. |
| static [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#PERMISSION_STATE_DEFAULT:kotlin.Int` Value is passed by the installer to `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setPermissionState(kotlin.String,%20kotlin.Int)` to set the state of a permission. |
| static [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#PERMISSION_STATE_DENIED:kotlin.Int` Value is passed by the installer to `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setPermissionState(kotlin.String,%20kotlin.Int)` to set the state of a permission. |
| static [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#PERMISSION_STATE_GRANTED:kotlin.Int` Value is passed by the installer to `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setPermissionState(kotlin.String,%20kotlin.Int)` to set the state of a permission. |
| static [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#USER_ACTION_NOT_REQUIRED:kotlin.Int` This value is passed by the installer to `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setRequireUserAction(kotlin.Int)` to indicate that user action is not required for this install. |
| static [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#USER_ACTION_REQUIRED:kotlin.Int` This value is passed by the installer to `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setRequireUserAction(kotlin.Int)` to indicate that user action is required for this install. |
| static [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#USER_ACTION_UNSPECIFIED:kotlin.Int` This value is passed by the installer to `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setRequireUserAction(kotlin.Int)` to indicate that user action is unspecified for this install. |

| Inherited constants ||
|---|---|
| From class `https://developer.android.com/reference/kotlin/android/os/Parcelable.html#` |---|---| | `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/android/os/Parcelable.html#CONTENTS_FILE_DESCRIPTOR:kotlin.Int` Descriptor bit used with `https://developer.android.com/reference/kotlin/android/os/Parcelable.html#describeContents()`: indicates that the Parcelable object's flattened representation includes a file descriptor. <br /> | | `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/android/os/Parcelable.html#PARCELABLE_WRITE_RETURN_VALUE:kotlin.Int` Flag for use with `https://developer.android.com/reference/kotlin/android/os/Parcelable.html#writeToParcel(android.os.Parcel,%20kotlin.Int)`: the object being written is a return value, that is the result of a function such as "`Parcelable someFunction()`", "`void someFunction(out Parcelable)`", or "`void someFunction(inout Parcelable)`". Some implementations may want to release resources at this point. <br /> | ||

| Public constructors ||
|---|---|
| `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#SessionParams(kotlin.Int)(mode: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)` Construct parameters for a new package install session. |

| Public methods ||
|---|---|
| open [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#describeContents()()` Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. |
| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setAppIcon(android.graphics.Bitmap)(appIcon: https://developer.android.com/reference/kotlin/android/graphics/Bitmap.html#?)` Optionally set an icon representing the app being installed. |
| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setAppLabel(kotlin.CharSequence)(appLabel: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-char-sequence/index.html?)` Optionally set a label representing the app being installed. |
| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setAppPackageName(kotlin.String)(appPackageName: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html?)` Optionally set the package name of the app being installed. |
| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setApplicationEnabledSettingPersistent()()` Request to keep the original application enabled setting. |
| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setAutoInstallDependenciesEnabled(kotlin.Boolean)(enableAutoInstallDependencies: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)` Optionally indicate whether missing SDK or static shared library dependencies should be automatically fetched and installed when installing an app that wants to use these dependencies. |
| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setAutoRevokePermissionsMode(kotlin.Boolean)(shouldAutoRevoke: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)` Sets whether permissions should be auto-revoked if this package is unused for an extended periodd of time. |
| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setDontKillApp(kotlin.Boolean)(dontKillApp: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)` Requests that the system not kill any of the package's running processes as part of a `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#MODE_INHERIT_EXISTING:kotlin.Int` session in which splits being added. |
| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setExtensionParams(android.os.PersistableBundle)(extensionParams: https://developer.android.com/reference/kotlin/android/os/PersistableBundle.html#)` Optionally called to provide a set of parameters to pass directly to the developer verification service provider (a.k.a., the verifier) to provide any additional context regarding the pending verification. |
| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setInstallLocation(kotlin.Int)(installLocation: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)` Provide value of `https://developer.android.com/reference/kotlin/android/content/pm/PackageInfo#installLocation:kotlin.Int`, which may be used to determine where the app will be staged. |
| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setInstallReason(kotlin.Int)(installReason: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)` Set the reason for installing this package. |
| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setInstallScenario(kotlin.Int)(installScenario: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)` Sets the install scenario for this session, which describes the expected user journey. |
| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setInstallerPackageName(kotlin.String)(installerPackageName: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html?)` Set the installer package for the app. |
| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setMultiPackage()()` Set this session to be the parent of a multi-package install. |
| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setOriginatingUid(kotlin.Int)(originatingUid: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)` Sets the UID that initiated the package installation. |
| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setOriginatingUri(android.net.Uri)(originatingUri: https://developer.android.com/reference/kotlin/android/net/Uri.html#?)` Optionally set the URI where this package was downloaded from. |
| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setPackageSource(kotlin.Int)(packageSource: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)` Optionally indicate the package source of the app being installed. |
| open [PackageInstaller.SessionParams](https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setPermissionState(kotlin.String,%20kotlin.Int)(permissionName: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html, state: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)` Sets the state of permissions for the package at installation. |
| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setReferrerUri(android.net.Uri)(referrerUri: https://developer.android.com/reference/kotlin/android/net/Uri.html#?)` Optionally set the URI that referred you to install this package. |
| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setRequestUpdateOwnership(kotlin.Boolean)(enable: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)` Optionally indicate whether the package being installed needs the update ownership enforcement. |
| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setRequireUserAction(kotlin.Int)(requireUserAction: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)` Optionally indicate whether user action should be required when the session is committed. |
| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setSize(kotlin.Long)(sizeBytes: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html)` Optionally indicate the total size (in bytes) of all APKs that will be delivered in this session. |
| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setUnarchiveId(kotlin.Int)(unarchiveId: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)` Used to set the unarchive ID received as part of an `https://developer.android.com/reference/kotlin/android/content/Intent.html#ACTION_UNARCHIVE_PACKAGE:kotlin.String`. |
| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setWhitelistedRestrictedPermissions(kotlin.collections.MutableSet)(permissions: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-set/index.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html!>?)` Sets which restricted permissions to be allowlisted for the app. |
| open [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#writeToParcel(android.os.Parcel,%20kotlin.Int)(dest: https://developer.android.com/reference/kotlin/android/os/Parcel.html#, flags: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)` Flatten this object in to a Parcel. |

| Properties ||
|---|---|
| static [Parcelable.Creator](https://developer.android.com/reference/kotlin/android/os/Parcelable.Creator.html#)\<[PackageInstaller.SessionParams](https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#)!\>! | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#CREATOR:android.os.Parcelable.Creator` <br /> |
| static [MutableSet](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-set/index.html)\<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)!\> | `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#RESTRICTED_PERMISSIONS_ALL:kotlin.collections.MutableSet` Special constant to refer to all restricted permissions. |

## Constants

### MODE_FULL_INSTALL

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
static val MODE_FULL_INSTALL: Int
```

Mode for an install session whose staged APKs should fully replace any existing APKs for the target app.

    Value: 1

### MODE_INHERIT_EXISTING

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
static val MODE_INHERIT_EXISTING: Int
```

Mode for an install session that should inherit any existing APKs for the target app, unless they have been explicitly overridden (based on split name) by the session. For example, this can be used to add one or more split APKs to an existing installation.

If there are no existing APKs for the target app, this behaves like `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#MODE_FULL_INSTALL:kotlin.Int`.

    Value: 2

### PERMISSION_STATE_DEFAULT

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
static val PERMISSION_STATE_DEFAULT: Int
```

Value is passed by the installer to `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setPermissionState(kotlin.String,%20kotlin.Int)` to set the state of a permission. This indicates no preference by the installer, relying on the device's default policy to set the grant state of the permission.

    Value: 0

### PERMISSION_STATE_DENIED

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
static val PERMISSION_STATE_DENIED: Int
```

Value is passed by the installer to `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setPermissionState(kotlin.String,%20kotlin.Int)` to set the state of a permission. This indicates the installers wants to deny the permission by default to the package being installed. The user and other actors in the system may still be able to grant the permission after installation.

    Value: 2

### PERMISSION_STATE_GRANTED

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
static val PERMISSION_STATE_GRANTED: Int
```

Value is passed by the installer to `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setPermissionState(kotlin.String,%20kotlin.Int)` to set the state of a permission. This indicates the installers wants to automatically grant the permission to the package being installed. The user and other actors in the system may still be able to deny the permission after installation.

    Value: 1

### USER_ACTION_NOT_REQUIRED

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
static val USER_ACTION_NOT_REQUIRED: Int
```

This value is passed by the installer to `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setRequireUserAction(kotlin.Int)` to indicate that user action is not required for this install.

    Value: 2

### USER_ACTION_REQUIRED

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
static val USER_ACTION_REQUIRED: Int
```

This value is passed by the installer to `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setRequireUserAction(kotlin.Int)` to indicate that user action is required for this install.

    Value: 1

### USER_ACTION_UNSPECIFIED

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
static val USER_ACTION_UNSPECIFIED: Int
```

This value is passed by the installer to `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setRequireUserAction(kotlin.Int)` to indicate that user action is unspecified for this install. `requireUserAction` also defaults to this value unless modified by `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#setRequireUserAction(kotlin.Int)`

    Value: 0

## Public constructors

### SessionParams

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
SessionParams(mode: Int)
```

Construct parameters for a new package install session.

| Parameters ||
|---|---|
| `mode` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html): one of `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#MODE_FULL_INSTALL:kotlin.Int` or `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#MODE_INHERIT_EXISTING:kotlin.Int` describing how the session should interact with an existing app. |

## Public methods

### describeContents

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun describeContents(): Int
```

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. For example, if the object will include a file descriptor in the output of `https://developer.android.com/reference/kotlin/android/os/Parcelable.html#writeToParcel(android.os.Parcel,%20kotlin.Int)`, the return value of this method must include the `https://developer.android.com/reference/kotlin/android/os/Parcelable.html#CONTENTS_FILE_DESCRIPTOR:kotlin.Int` bit.

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | a bitmask indicating the set of special object types marshaled by this Parcelable object instance. Value is either `0` or - `https://developer.android.com/reference/kotlin/android/os/Parcelable.html#CONTENTS_FILE_DESCRIPTOR:kotlin.Int` |

### setAppIcon

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun setAppIcon(appIcon: Bitmap?): Unit
```

Optionally set an icon representing the app being installed. This should be roughly `https://developer.android.com/reference/kotlin/android/app/ActivityManager.html#getLauncherLargeIconSize()` in both dimensions.

| Parameters ||
|---|---|
| `appIcon` | [Bitmap](https://developer.android.com/reference/kotlin/android/graphics/Bitmap.html#)?: This value may be `null`. |

### setAppLabel

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun setAppLabel(appLabel: CharSequence?): Unit
```

Optionally set a label representing the app being installed. This value will be trimmed to the first 1000 characters.

| Parameters ||
|---|---|
| `appLabel` | [CharSequence](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-char-sequence/index.html)?: This value may be `null`. |

### setAppPackageName

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun setAppPackageName(appPackageName: String?): Unit
```

Optionally set the package name of the app being installed. It's strongly recommended that you provide this value when known, so that observers can communicate installing apps to users.

If the APKs staged in the session aren't consistent with this package name, the install will fail. Regardless of this value, all APKs in the app must have the same package name.

| Parameters ||
|---|---|
| `appPackageName` | [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)?: This value may be `null`. |

### setApplicationEnabledSettingPersistent

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun setApplicationEnabledSettingPersistent(): Unit
```

Request to keep the original application enabled setting. This will prevent the application from being enabled if it was previously in a disabled state.

### setAutoInstallDependenciesEnabled

Added in [API level 36](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  
Deprecated in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun setAutoInstallDependenciesEnabled(enableAutoInstallDependencies: Boolean): Unit
```

**Deprecated:** *The automatic dependency installation feature is no longer supported.*

Optionally indicate whether missing SDK or static shared library dependencies should be automatically fetched and installed when installing an app that wants to use these dependencies.

This feature is enabled by default. Note that in the case of a multi-package installation session, no dependencies will be automatically installed even if this field is set to true.

| Parameters ||
|---|---|
| `enableAutoInstallDependencies` | [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html): `true` to enable auto-installation of missing SDK or static shared library dependencies, `false` to disable and fail immediately if dependencies aren't already installed. |

### setAutoRevokePermissionsMode

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  
Deprecated in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun setAutoRevokePermissionsMode(shouldAutoRevoke: Boolean): Unit
```

**Deprecated:** *No longer used*

Sets whether permissions should be auto-revoked if this package is unused for an extended periodd of time. It's disabled by default but generally the installer should enable it for most packages, excluding only those where doing so might cause breakage that cannot be easily addressed by simply re-requesting the permission(s). If user explicitly enabled or disabled it via settings, this call is ignored.

| Parameters ||
|---|---|
| `shouldAutoRevoke` | [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html): whether permissions should be auto-revoked. |

### setDontKillApp

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun setDontKillApp(dontKillApp: Boolean): Unit
```

Requests that the system not kill any of the package's running processes as part of a `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#MODE_INHERIT_EXISTING:kotlin.Int` session in which splits being added. By default, all installs will result in the package's running processes being killed before the install completes.

| Parameters ||
|---|---|
| `dontKillApp` | [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html): set to `true` to request that the processes belonging to the package not be killed as part of this install. |

### setExtensionParams

Added in [API level 36.1](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun setExtensionParams(extensionParams: PersistableBundle): Unit
```

Optionally called to provide a set of parameters to pass directly to the developer verification service provider (a.k.a., the verifier) to provide any additional context regarding the pending verification. The structure of this bundle will be specific to the implementation of the verifier, so callers can determine the verifier by calling `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller#getDeveloperVerificationServiceProvider()`.

| Parameters ||
|---|---|
| `extensionParams` | [PersistableBundle](https://developer.android.com/reference/kotlin/android/os/PersistableBundle.html#): This value cannot be `null`. |

### setInstallLocation

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun setInstallLocation(installLocation: Int): Unit
```

Provide value of `https://developer.android.com/reference/kotlin/android/content/pm/PackageInfo#installLocation:kotlin.Int`, which may be used to determine where the app will be staged. Defaults to `https://developer.android.com/reference/kotlin/android/content/pm/PackageInfo#INSTALL_LOCATION_INTERNAL_ONLY:kotlin.Int`.

### setInstallReason

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun setInstallReason(installReason: Int): Unit
```

Set the reason for installing this package.

The install reason should be a pre-defined integer. The behavior is undefined if other values are used.

| Parameters ||
|---|---|
| `installReason` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html): Value is one of the following: - `https://developer.android.com/reference/kotlin/android/content/pm/PackageManager#INSTALL_REASON_UNKNOWN:kotlin.Int` - `https://developer.android.com/reference/kotlin/android/content/pm/PackageManager#INSTALL_REASON_POLICY:kotlin.Int` - `https://developer.android.com/reference/kotlin/android/content/pm/PackageManager#INSTALL_REASON_DEVICE_RESTORE:kotlin.Int` - `https://developer.android.com/reference/kotlin/android/content/pm/PackageManager#INSTALL_REASON_DEVICE_SETUP:kotlin.Int` - `https://developer.android.com/reference/kotlin/android/content/pm/PackageManager#INSTALL_REASON_USER:kotlin.Int` |

**See Also**

- `https://developer.android.com/reference/kotlin/android/content/pm/PackageManager#INSTALL_REASON_UNKNOWN:kotlin.Int`
- `https://developer.android.com/reference/kotlin/android/content/pm/PackageManager#INSTALL_REASON_POLICY:kotlin.Int`
- `https://developer.android.com/reference/kotlin/android/content/pm/PackageManager#INSTALL_REASON_DEVICE_RESTORE:kotlin.Int`
- `https://developer.android.com/reference/kotlin/android/content/pm/PackageManager#INSTALL_REASON_DEVICE_SETUP:kotlin.Int`
- `https://developer.android.com/reference/kotlin/android/content/pm/PackageManager#INSTALL_REASON_USER:kotlin.Int`

### setInstallScenario

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun setInstallScenario(installScenario: Int): Unit
```

Sets the install scenario for this session, which describes the expected user journey.

| Parameters ||
|---|---|
| `installScenario` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html): Value is one of the following: - `https://developer.android.com/reference/kotlin/android/content/pm/PackageManager#INSTALL_SCENARIO_DEFAULT:kotlin.Int` - `https://developer.android.com/reference/kotlin/android/content/pm/PackageManager#INSTALL_SCENARIO_FAST:kotlin.Int` - `https://developer.android.com/reference/kotlin/android/content/pm/PackageManager#INSTALL_SCENARIO_BULK:kotlin.Int` - `https://developer.android.com/reference/kotlin/android/content/pm/PackageManager#INSTALL_SCENARIO_BULK_SECONDARY:kotlin.Int` |

### setInstallerPackageName

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun setInstallerPackageName(installerPackageName: String?): Unit
```

Set the installer package for the app. By default this is the app that created the `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller` object. Note: Only applications with `https://developer.android.com/reference/kotlin/android/Manifest.permission.html#INSTALL_PACKAGES:kotlin.String` permission are allowed to set an installer that is not the caller's own installer package name, otherwise it will cause a `https://developer.android.com/reference/kotlin/java/lang/SecurityException.html#` when creating the install session.

| Parameters ||
|---|---|
| `installerPackageName` | [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)?: The name of the installer package, its length must be less than `255`, otherwise it will be invalid. This value may be `null`. |

### setMultiPackage

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun setMultiPackage(): Unit
```

Set this session to be the parent of a multi-package install. A multi-package install session contains no APKs and only references other install sessions via ID. When a multi-package session is committed, all of its children are committed to the system in an atomic manner. If any children fail to install, all of them do, including the multi-package session.

### setOriginatingUid

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun setOriginatingUid(originatingUid: Int): Unit
```

Sets the UID that initiated the package installation. This is informational and may be used as a signal for anti-malware purposes.

### setOriginatingUri

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun setOriginatingUri(originatingUri: Uri?): Unit
```

Optionally set the URI where this package was downloaded from. This is informational and may be used as a signal for anti-malware purposes.

| Parameters ||
|---|---|
| `originatingUri` | [Uri](https://developer.android.com/reference/kotlin/android/net/Uri.html#)?: This value may be `null`. |

**See Also**

- `https://developer.android.com/reference/kotlin/android/content/Intent.html#EXTRA_ORIGINATING_URI:kotlin.String`

### setPackageSource

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun setPackageSource(packageSource: Int): Unit
```

Optionally indicate the package source of the app being installed. This is informational and may be used as a signal by the system. An installer should specify `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller#PACKAGE_SOURCE_OTHER:kotlin.Int` if no other package source constant adequately reflects the source for this session. The default value is `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller#PACKAGE_SOURCE_UNSPECIFIED:kotlin.Int`.

| Parameters ||
|---|---|
| `packageSource` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html): Value is one of the following: - `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller#PACKAGE_SOURCE_UNSPECIFIED:kotlin.Int` - `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller#PACKAGE_SOURCE_STORE:kotlin.Int` - `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller#PACKAGE_SOURCE_LOCAL_FILE:kotlin.Int` - `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller#PACKAGE_SOURCE_DOWNLOADED_FILE:kotlin.Int` - `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller#PACKAGE_SOURCE_OTHER:kotlin.Int` |

### setPermissionState

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun setPermissionState(
    permissionName: String, 
    state: Int
): PackageInstaller.SessionParams
```

Sets the state of permissions for the package at installation.

<br />

Granting any runtime permissions require the `android.Manifest.permission#INSTALL_GRANT_RUNTIME_PERMISSIONS` permission to be held by the caller. Revoking runtime permissions is not allowed, even during app update sessions.

<br />

Holders without the permission are allowed to change the following special permissions:

<br />

On platform `https://developer.android.com/reference/kotlin/android/os/Build.VERSION_CODES.html#UPSIDE_DOWN_CAKE:kotlin.Int`:

- `https://developer.android.com/reference/kotlin/android/Manifest.permission.html#USE_FULL_SCREEN_INTENT:kotlin.String`

Install time permissions, which cannot be revoked by the user, cannot be changed by the installer.

<br />

See [Permissions on Android](https://developer.android.com/guide/topics/permissions/overview) for more information.

| Parameters ||
|---|---|
| `permissionName` | [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html): The permission to change state for. This value cannot be `null`. |
| `state` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html): Either `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#PERMISSION_STATE_DEFAULT:kotlin.Int`, `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#PERMISSION_STATE_GRANTED:kotlin.Int`, or `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#PERMISSION_STATE_DENIED:kotlin.Int` to set the permission to. Value is one of the following: - `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#PERMISSION_STATE_DEFAULT:kotlin.Int` - `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#PERMISSION_STATE_GRANTED:kotlin.Int` - `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#PERMISSION_STATE_DENIED:kotlin.Int` |

| Return ||
|---|---|
| `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#` | This object for easier chaining. This value cannot be `null`. |

### setReferrerUri

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun setReferrerUri(referrerUri: Uri?): Unit
```

Optionally set the URI that referred you to install this package. This is informational and may be used as a signal for anti-malware purposes.

| Parameters ||
|---|---|
| `referrerUri` | [Uri](https://developer.android.com/reference/kotlin/android/net/Uri.html#)?: This value may be `null`. |

**See Also**

- `https://developer.android.com/reference/kotlin/android/content/Intent.html#EXTRA_REFERRER:kotlin.String`

### setRequestUpdateOwnership

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun setRequestUpdateOwnership(enable: Boolean): Unit
```

Optionally indicate whether the package being installed needs the update ownership enforcement. Once the update ownership enforcement is enabled, the other installers will need the user action to update the package even if the installers have been granted the `https://developer.android.com/reference/kotlin/android/Manifest.permission.html#INSTALL_PACKAGES:kotlin.String` permission. Default to `false`. The update ownership enforcement can only be enabled on initial installation. Set this to `true` on package update is a no-op. Note: To enable the update ownership enforcement, the installer must have the `https://developer.android.com/reference/kotlin/android/Manifest.permission.html#ENFORCE_UPDATE_OWNERSHIP:kotlin.String` permission.   
Requires `https://developer.android.com/reference/kotlin/android/Manifest.permission.html#ENFORCE_UPDATE_OWNERSHIP:kotlin.String`

### setRequireUserAction

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun setRequireUserAction(requireUserAction: Int): Unit
```

Optionally indicate whether user action should be required when the session is committed.

Defaults to `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#USER_ACTION_UNSPECIFIED:kotlin.Int` unless otherwise set. When unspecified for installers using the `https://developer.android.com/reference/kotlin/android/Manifest.permission.html#REQUEST_INSTALL_PACKAGES:kotlin.String` permission will behave as if set to `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#USER_ACTION_REQUIRED:kotlin.Int`, and `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#USER_ACTION_NOT_REQUIRED:kotlin.Int` otherwise. When `requireUserAction` is set to `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#USER_ACTION_REQUIRED:kotlin.Int`, installers will receive a `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller#STATUS_PENDING_USER_ACTION:kotlin.Int` callback once the session is committed, indicating that user action is required for the install to proceed.

For installers that have been granted the `https://developer.android.com/reference/kotlin/android/Manifest.permission.html#REQUEST_INSTALL_PACKAGES:kotlin.String` permission, user action will not be required when all of the following conditions are met:

- `requireUserAction` is set to `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#USER_ACTION_NOT_REQUIRED:kotlin.Int`.
- The app being installed targets:
  - `https://developer.android.com/reference/kotlin/android/os/Build.VERSION_CODES.html#Q:kotlin.Int` or higher on Android S (`https://developer.android.com/reference/kotlin/android/os/Build.VERSION_CODES.html#S:kotlin.Int`)
  - `https://developer.android.com/reference/kotlin/android/os/Build.VERSION_CODES.html#R:kotlin.Int` or higher on Android T (`https://developer.android.com/reference/kotlin/android/os/Build.VERSION_CODES.html#TIRAMISU:kotlin.Int`)
  - `https://developer.android.com/reference/kotlin/android/os/Build.VERSION_CODES.html#S:kotlin.Int` or higher on Android U (`https://developer.android.com/reference/kotlin/android/os/Build.VERSION_CODES.html#UPSIDE_DOWN_CAKE:kotlin.Int`)
  - `https://developer.android.com/reference/kotlin/android/os/Build.VERSION_CODES.html#TIRAMISU:kotlin.Int` or higher on Android V (`https://developer.android.com/reference/kotlin/android/os/Build.VERSION_CODES.html#VANILLA_ICE_CREAM:kotlin.Int`)
  - `https://developer.android.com/reference/kotlin/android/os/Build.VERSION_CODES.html#UPSIDE_DOWN_CAKE:kotlin.Int` or higher on Android B (`https://developer.android.com/reference/kotlin/android/os/Build.VERSION_CODES.html#BAKLAVA:kotlin.Int`)
  - `https://developer.android.com/reference/kotlin/android/os/Build.VERSION_CODES.html#VANILLA_ICE_CREAM:kotlin.Int` or higher on Android C (`https://developer.android.com/reference/kotlin/android/os/Build.VERSION_CODES.html#CINNAMON_BUN:kotlin.Int`)
- The installer is:
  - The `https://developer.android.com/reference/kotlin/android/content/pm/InstallSourceInfo#getUpdateOwnerPackageName()` of an existing version of the app (in other words, this install session is an app update) if the update ownership enforcement is enabled.
  - The `https://developer.android.com/reference/kotlin/android/content/pm/InstallSourceInfo#getInstallingPackageName()` of an existing version of the app (in other words, this install session is an app update) if the update ownership enforcement isn't enabled.
  - Updating itself.
- The installer declares the `https://developer.android.com/reference/kotlin/android/Manifest.permission.html#UPDATE_PACKAGES_WITHOUT_USER_ACTION:kotlin.String` permission.

Note: The target API level requirement will advance in future Android versions. Session owners should always be prepared to handle `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller#STATUS_PENDING_USER_ACTION:kotlin.Int`.

| Parameters ||
|---|---|
| `requireUserAction` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html): whether user action should be required. Value is one of the following: - `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#USER_ACTION_UNSPECIFIED:kotlin.Int` - `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#USER_ACTION_REQUIRED:kotlin.Int` - `https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.SessionParams#USER_ACTION_NOT_REQUIRED:kotlin.Int` |

### setSize

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun setSize(sizeBytes: Long): Unit
```

Optionally indicate the total size (in bytes) of all APKs that will be delivered in this session. The system may use this to ensure enough disk space exists before proceeding, or to estimate container size for installations living on external storage.
**See Also**

- `https://developer.android.com/reference/kotlin/android/content/pm/PackageInfo#INSTALL_LOCATION_AUTO:kotlin.Int`
- `https://developer.android.com/reference/kotlin/android/content/pm/PackageInfo#INSTALL_LOCATION_PREFER_EXTERNAL:kotlin.Int`

### setUnarchiveId

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun setUnarchiveId(unarchiveId: Int): Unit
```

Used to set the unarchive ID received as part of an `https://developer.android.com/reference/kotlin/android/content/Intent.html#ACTION_UNARCHIVE_PACKAGE:kotlin.String`.

The ID should be retrieved from the unarchive intent and passed into the session that's being created to unarchive the app in question. Used to link the unarchive intent and the install session to disambiguate.

### setWhitelistedRestrictedPermissions

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun setWhitelistedRestrictedPermissions(permissions: MutableSet<String!>?): Unit
```

Sets which restricted permissions to be allowlisted for the app. Allowlisting is not granting the permissions, rather it allows the app to hold permissions which are otherwise restricted. Allowlisting a non restricted permission has no effect.

Permissions can be hard restricted which means that the app cannot hold them or soft restricted where the app can hold the permission but in a weaker form. Whether a permission is `https://developer.android.com/reference/kotlin/android/content/pm/PermissionInfo#FLAG_HARD_RESTRICTED:kotlin.Int` or `https://developer.android.com/reference/kotlin/android/content/pm/PermissionInfo#FLAG_SOFT_RESTRICTED:kotlin.Int` depends on the permission declaration. Allowlisting a hard restricted permission allows the app to hold that permission and allowlisting a soft restricted permission allows the app to hold the permission in its full, unrestricted form.

Permissions can also be immutably restricted which means that the allowlist state of the permission can be determined only at install time and cannot be changed on updated or at a later point via the package manager APIs.

Initially, all restricted permissions are allowlisted but you can change which ones are allowlisted by calling this method or the corresponding ones on the `https://developer.android.com/reference/kotlin/android/content/pm/PackageManager`. Only soft or hard restricted permissions on the current Android version are supported and any invalid entries will be removed.

| Parameters ||
|---|---|
| `permissions` | [MutableSet](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-set/index.html)\<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)!\>?: This value may be `null`. |

**See Also**

- `https://developer.android.com/reference/kotlin/android/content/pm/PackageManager#addWhitelistedRestrictedPermission(kotlin.String,%20kotlin.String,%20kotlin.Int)`
- `https://developer.android.com/reference/kotlin/android/content/pm/PackageManager#removeWhitelistedRestrictedPermission(kotlin.String,%20kotlin.String,%20kotlin.Int)`

### writeToParcel

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun writeToParcel(
    dest: Parcel, 
    flags: Int
): Unit
```

Flatten this object in to a Parcel.

| Parameters ||
|---|---|
| `dest` | [Parcel](https://developer.android.com/reference/kotlin/android/os/Parcel.html#): The Parcel in which the object should be written. This value cannot be `null`. |
| `flags` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html): Additional flags about how the object should be written. May be 0 or `https://developer.android.com/reference/kotlin/android/os/Parcelable.html#PARCELABLE_WRITE_RETURN_VALUE:kotlin.Int`. Value is either `0` or a combination of the following: - `https://developer.android.com/reference/kotlin/android/os/Parcelable.html#PARCELABLE_WRITE_RETURN_VALUE:kotlin.Int` |

## Properties

### CREATOR

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
static val CREATOR: Parcelable.Creator<PackageInstaller.SessionParams!>!
```

### RESTRICTED_PERMISSIONS_ALL

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
static val RESTRICTED_PERMISSIONS_ALL: MutableSet<String!>
```

Special constant to refer to all restricted permissions.