• Home
Name Date Size #Lines LOC

..--

binder/06-Sep-2024-10162

Android.bpD06-Sep-20242.7 KiB106100

README.mdD06-Sep-20242 KiB7452

art_standalone_dexopt_chroot_setup_tests.xmlD06-Sep-20242.9 KiB5525

dexopt_chroot_setup.ccD06-Sep-202421.5 KiB580405

dexopt_chroot_setup.hD06-Sep-20241.9 KiB5927

dexopt_chroot_setup_fuzzer.ccD06-Sep-20241.1 KiB3211

dexopt_chroot_setup_main.ccD06-Sep-20241.3 KiB4419

dexopt_chroot_setup_test.ccD06-Sep-20246.8 KiB198137

README.md

1## dexopt_chroot_setup
2
3dexopt_chroot_setup is a component of ART Service. It sets up the chroot
4environment for Pre-reboot Dexopt, to dexopt apps on a best-effort basis before
5the reboot after a Mainline update or an OTA update is downloaded, to support
6seamless updates.
7
8It requires elevated permissions that are not available to system_server, such
9as mounting filesystems. It publishes a binder interface that is internal to ART
10Service's Java code.
11
12### Pre-reboot Dexopt file structure
13
14#### Overview
15
16```
17/mnt/pre_reboot_dexopt
18|-- chroot
19|   |-- system_ext
20|   |-- vendor
21|   |-- product
22|   |-- data
23|   |-- mnt
24|   |   |-- expand
25|   |   `-- artd_tmp
26|   |-- dev
27|   |-- proc
28|   |-- sys
29|   |-- metadata
30|   |-- apex
31|   `-- linkerconfig
32`-- mount_tmp
33```
34
35#### `/mnt/pre_reboot_dexopt`
36
37The root directory for Pre-reboot Dexopt, prepared by `init`.
38
39#### `/mnt/pre_reboot_dexopt/chroot`
40
41The root directory of the chroot environment for Pre-reboot Dexopt. It is the
42mount point of the `system` image. Created by `dexopt_chroot_setup`, and only
43exists for the duration of the Pre-reboot Dexopt.
44
45#### `/mnt/pre_reboot_dexopt/chroot/{system_ext,vendor,product}`
46
47Mount points of other readonly images.
48
49#### `/mnt/pre_reboot_dexopt/chroot/{data,mnt/expand,dev,proc,sys,metadata}`
50
51Same as the corresponding directories outside of chroot. These are read-write
52mounts.
53
54#### `/mnt/pre_reboot_dexopt/chroot/mnt/artd_tmp`
55
56An empty directory for storing temporary files during Pre-reboot Dexopt, managed
57by `artd`.
58
59#### `/mnt/pre_reboot_dexopt/chroot/apex`
60
61For holding the apex mount points used in the chroot environment, managed by
62`apexd`. Note that this is not the same as `/apex` outside of chroot.
63
64#### `/mnt/pre_reboot_dexopt/chroot/linkerconfig`
65
66For holding the linker config used in the chroot environment, managed by
67`linkerconfig`. Note that this is not the same as `/linkerconfig` outside of
68chroot.
69
70#### `/mnt/pre_reboot_dexopt/mount_tmp`
71
72An ephemeral directory used as a temporary mount point for bind-mounting
73directories "slave+shared".
74