Lines Matching refs:is
3 Android Pony EXpress (APEX) is a container format introduced in Android Q
4 that is used in the install flow for lower-level system
21 manager is the central repository of information about apps and can only be
24 - The APK format (particularly the manifest) is designed for Android apps and
30 APEX manager, which is a service that manages APEX files.
34 This is the format of an APEX file.
40 At the top level, an APEX file is a zip file in which files are stored
57 version information. This information is generally also available in
61 `apex_manifest.json` is recommended over `AndroidManifest.xml` for new code and
64 `apex_payload.img` is an ext4 file system image backed by dm-verity. The image
65 is mounted at runtime via a loop device. Specifically, the hash tree and
70 `apex_pubkey` is the public key used to sign the file system image. At runtime,
71 this key ensures that the downloaded APEX is signed with the same entity
76 The APEX manager (or `apexd`) is a native daemon responsible for
77 verifying, installing, and uninstalling APEX files. This process is launched and
78 is ready early in the boot sequence. APEX files are normally pre-installed on
84 and is as follows.
86 1. An APEX file is downloaded via a package installer app, ADB, or other
89 the file is an APEX, the package manager transfers control to the APEX
92 1. If the APEX file is verified, the internal database of the APEX manager is
110 exact path where a specific APEX is mounted, so the files can be accessed.
119 The `AndroidManifest.xml` file inside an APEX file is minimal, consisting of the
142 the vbmeta descriptor appended to `apex_payload.img`) file is signed with a key.
143 Then, the entire APEX is signed using the
148 the vbmeta descriptor is installed. The APEX manager uses the public key to
150 different keys and is enforced both at build time and runtime.
155 partition is
159 If an APEX is present in a built-in partition, the APEX can be updated by
161 The new APEX is stored in `/data` and, similar to APKs, the newer version
163 the newer version of the APEX is only activated after reboot.
172 The performance of the loop driver and dm-verity is important in achieving
189 This version is only supported for devices that are upgraded from Android 9 to
191 required patches, a down-merge from the `android-4.4` branch is strongly
192 recommended. The following is a list of the required individual patches
243 the content in this section is subject to change.
246 The following is an example of `Android.bp` for an APEX named `apex.test`.
294 included when only `libFoo` is listed in the `native_shared_libs` property.
300 with a single ABI (that is, 32 bit only or 64 bit only), only libraries with the
306 - If the device is 32 bit only, only the 32-bit variant of the binary is
310 binary is installed.
311 - If the device is 64 bit only, then only the 64-bit variant of the binary is
315 binary is installed.
322 - `first`: Matches the primary ABI of the device. This is the default for
328 - `both`: Matches both ABIs. This is the default for
333 This example is for a device that supports 32/64 and doesn't prefer 32:
361 Sign each APEX with different keys. When a new key is required, create a
363 sign the APEX using the key. The public key is automatically included in the
388 key. The ID of the key used to sign an APEX is written in the APEX. At runtime,
399 - Not set: If no value is set, the APEX is signed with the certificate located
400 at `PRODUCT_DEFAULT_DEV_CERTIFICATE`. If no flag is set, the path defaults
402 - `<name>`: The APEX is signed with the `<name>` certificate in the same
404 - `:<name>`: The APEX is signed with the certificate that is defined by the
417 public/private key pairs. APK signing (specified by `certificate`) is required
418 because an APEX is an APK.
431 After reboot, the APEX is mounted at the `/apex/<apex_name>@<version>`
433 Among the mount paths, the one that corresponds to the latest version is
440 1. An OEM or ODM preloads an APEX under `/system/apex` when the device is
443 1. When an updated version of the APEX is installed in `/data/apex`, the path
480 start is delayed until the activation of the APEXs is complete.
505 For legacy devices, it is sometimes impossible or infeasible to update the old
507 without `CONFIG_BLK_DEV_LOOP=Y`, which is crucial for mounting the file system
510 Flattened APEX is a specially built APEX that can be activated on devices with
513 `my.apex` is installed to `/system/apex/my.apex/lib/libFoo.so`.
516 directory `/system/apex/my.apex` is directly bind-mounted to `/apex/name@ver`.
522 Note that flattened APEX is the default configuration for now. This means all
526 Also note that, mixing flattened and non-flattened APEXes in a device is NOT
527 supported. It should be either all non-flattened or all flattened. This is
543 installation. Verification is done only when packages are being installed.
544 Attackers can break the integrity of the installed packages unnoticed. This is
546 file systems whose integrity is protected by dm-verity for every I/O. Any
556 system image that is paired with a hash tree and a vbmeta descriptor. Without
557 dm-verity, an APEX in the `/data` partition is vulnerable to unintended
560 In fact, the `/data` partition is also protected by encryption layers such as
562 primary purpose is privacy, not integrity. When an attacker gains access to the
563 `/data` partition, there can be no further protection, and this again is a
576 One way to avoid the path change is to overlay the file contents in an APEX