Commit graph

3038 commits

Author SHA1 Message Date
Kalesh Singh
3182e9c2a2 init: Take wakelock on zygote restart
If the framework is restarting (and cannot yet aquire
wakelocks to block suspend). Take a kernel wakelock
to allow the system to make sufficient progress before
autosuspend can be triggered.

The wakelock is later disable when the framework has
and invokeds enableAutosuspend() on the suspend service.

Bug: 255898234
Bug: 265513788
Bug: 266077359
Test: adb shell "echo mem > /sys/power/state && killall system_server"
Change-Id: Id8cff6564ef05d8c22a8264c51dd313263cb6a9d
Merged-In: Id8cff6564ef05d8c22a8264c51dd313263cb6a9d
2023-01-25 14:22:42 -08:00
Sanjana Sunil
9f99f0ed0f Merge "Create misc_ce and misc_de mirror storage" into tm-qpr-dev 2022-11-15 18:37:07 +00:00
Pete Bentley
046a809a90 Add AID for PRNG seeder daemon.
Also adjust permissions on /dev/hw_random to allow prng_seeder group
read access.

Manual testing protocol:
* Verify prng_seeder daemon is running and has the
  correct label and uid/gid.
* Verify prng_seeder socket present and has correct
  label and permissions
* Verify no SELinux denials
* strace a libcrypto process and verify it reads seeding
  data from prng_seeder (e.g. strace bssl rand -hex 1024)
* strace seeder daemon to observe incoming connections
  (e.g. strace -f -p `pgrep prng_seeder`)
* Kill daemon, observe that init restarts it
* strace again and observe clients now seed from new instance

Bug: 243933553
Test: Manual - see above
Change-Id: I4d526844b232fc2a1fa5ffd701ca5bc5c09e7e96
Merged-In: I4d526844b232fc2a1fa5ffd701ca5bc5c09e7e96
(cherry picked from commit 6cb61610e6)
2022-10-05 00:11:56 +01:00
Sanjana Sunil
da291cf362 Create misc_ce and misc_de mirror storage
Create a mirror directory for misc_ce and misc_de storage by bind
mounting the respective directories. This is done for the defaul null
volume only, and other volumes are handled at a later staged.

When an SDK sandbox process is spawned and data isolation needs to
occur, the sdksandbox directories present in the misc directories will
be used to bind mount from, after tmpfs is mounted on the original.

Bug: 214241165
Test: atest GtsSdkSandboxInprocessTests
Ignore-AOSP-First: Will cherry pick based on other CLs in the topic

Change-Id: Icb1dc7d7fbd53a5c3853acf2f9d4d75b278d7295
Merged-In: Icb1dc7d7fbd53a5c3853acf2f9d4d75b278d7295
2022-09-15 11:11:11 +00:00
Jooyung Han
b0bb60cb16 Prepare /data/property before load_persist_props
Without the directory (this happens on the very first boot),
load_persist_props can't create an initial version of
/data/property/persistent_properties (probably empty). This leads to
persisting all in-memory "persist.*" properties later when a persistent
property is set. This is regression from Android S because persistent
props from, for example, build.prop will be persisted even when there's
no process to explicitly setprop.

Bug: 242264580
Bug: 243958304
Test: launch cuttlefish and verify that there's no props from build.prop
Merged-In: I5819a97750e4d5d1ee5a7c308bf944c7aeab2f90
Change-Id: I5819a97750e4d5d1ee5a7c308bf944c7aeab2f90
(cherry picked from commit 9561496303)
2022-08-31 06:21:06 +00:00
Christopher Ferris
c5ad522fef Revert "Add support for only starting 64 bit zygote."
This reverts commit da94c7f650.

Reason for revert: It appears this change slows down boot on normal devices.

Technically, this change is not necessary, but it prevents starting the secondary and having it throw an error in the only run 64 bit zygote config. But it's easier to throw the error than slow down boot up.

Bug: 238971179

Test: Verified that on a 64 with 32 config, the secondary zygote
Test: starts but exits.
Change-Id: I7ab0496a402db83e70168d52e5d5911b82a3b06a
Merged-In: I7ab0496a402db83e70168d52e5d5911b82a3b06a
(cherry picked from commit 3fa3f861d4)
2022-07-15 00:57:54 +00:00
Christopher Ferris
70052ec848 Add support for only starting 64 bit zygote.
This is part of the changes that will allow creating a single
system image but a different set of properties will either
start or not start the secondary zygote.

Bug: 227482437

Test: Verified that secondary doesn't start with same system image
Test: with ro.zygote set to zygote64 and abilists set appropriately.
Test: Verified that secondary does not start when restarting netd.
Test: Verified that secondary does start with same system image
Test: with ro.zygote set to zygote64_32 and abilists set appropriately.
Test: Verified that secondary does start when restarting netd.
Test: Verified that a 64 bit device only starts the primary.
Test: Verified that a 32 bit device only starts the primary.
Change-Id: Id37a223c73f9a61868b2e26450ef4b6964f7b496
Merged-In: Id37a223c73f9a61868b2e26450ef4b6964f7b496
2022-07-13 20:00:50 +00:00
TreeHugger Robot
7e778c1350 Merge "Update the encryption rule of /data/bootanim to DeleteIfNecessary" into tm-dev 2022-05-13 23:21:41 +00:00
Josh Yang
86b08e5efd Update the encryption rule of /data/bootanim to DeleteIfNecessary
Directories should always be encrypted unless there is a specific reason
they can't be.  /data/bootanim is unencrypted without a specific reason,
so fix it to be encrypted.  It is too late to use encryption=Require.
However, the contents of this directory doesn't need to be preserved on
updates, so we can use encryption=DeleteIfNecessary instead of
encryption=Attempt.

Bug: 232299581
Test: build succeeds
Change-Id: Iae80043f3957a053d47ab4754c42b1fdc8e696b3
Merged-In: I17bcb901ad533cada4e0aa061196fc94d7b213ec
2022-05-13 17:03:22 +00:00
Pete Bentley
8a9b9820e5 Remove setenvs when running boringssl_self_test.
No longer needed as the code to generate flag files based on
this environment variable is removed in Android 13.

Bug: 231946889
Test: Build and boot,
Change-Id: I8ce57619aa4d1e6457f3f864bf5e403f727c040c
(cherry picked from commit ba830eb81b)
Merged-In: I8ce57619aa4d1e6457f3f864bf5e403f727c040c
2022-05-13 17:42:53 +01:00
William Escande
e41474eae5 Set the aptx as provided by system
Aptx and aptx-Hd are both vendor libs in system_ext.
In order to load their dependencies from a compatible environement
Bluetooth need to setup the linker

Fix: 231967310
Test: atest net_test_stack_a2dp_native
Test: Log analyze after bluetooth boot
Tag: #refactor
Ignore-AOSP-First: Apex only on tm and below
Change-Id: I752e65889a42fe3378f51bd0821c2958ed9b5a7d
2022-05-11 21:14:41 -07:00
Daeho Jeong
bc752d279f Merge "init.rc: increase readahead window multiplier for POSIX_FADV_SEQUENTIAL files" into tm-dev 2022-05-04 15:37:48 +00:00
Daeho Jeong
2a7bd96c19 init.rc: increase readahead window multiplier for POSIX_FADV_SEQUENTIAL files
Set readahead window multiplier for POSIX_FADV_SEQUENTIAL files as 16 to
enhance file read performance like a language package loading.

Bug: 192011293
Test: adb shell cat /dev/sys/fs/by-name/userdata/seq_file_ra_mul
Signed-off-by: Daeho Jeong <daehojeong@google.com>
Change-Id: I7f7e4339651be2d6aa99b07bcb12ab62136a940e
Merged-In: I7f7e4339651be2d6aa99b07bcb12ab62136a940e
2022-05-02 10:52:11 -07:00
Alan Stokes
34ee0c931c Delete stale Virtualization image files
Delete all files and directories under
/data/misc/virtualizationservice at boot. Originally they were owned
by the virtualizationservice user; we now run as system, and don't
have permission to remove them after boot.

Bug: 230056726
Test: Create fake stale dir+file, see them deleted
Ignore-AOSP-First: Needed in T, will CP to aosp
Change-Id: I5ff7d055aeeb25ba7693e50876d6b8a830c4bf51
2022-04-28 10:57:36 +01:00
Jiyong Park
1a2dbd917e Remove stale files in /data/misc/virtualizationservice
[1] changed the UID of the virtualizationservice daemon and
/data/misc/virtualizationservice directory to `system`. However, this
can cause a permission denial issue when the directory has stale files
when the device was running a build before [1] and an OTA to [1] (or
above) is attempted. The daemon tries to delete the stale files - which
must have been still labeled as old UID and thus the daemon has no
privileged to delete them.

Fixing this issue by ensuring that the directory is always empty by
init.

[1] https://android-review.googlesource.com/c/platform/packages/modules/Virtualization/+/2059527

Bug: 230056726
Test: watch TH
Merged-In: I61c0297503347932b14b83859bec9ff82628336f
Change-Id: I61c0297503347932b14b83859bec9ff82628336f
2022-04-25 09:47:12 +09:00
Jiyong Park
93c66bbd89 Virtualizationservice is owned by the system UID
Previously, virtualizationservice had its own UID
`virtualizationservice`. As a result, crosvm, which is spawed by
virtualizationservice`, also run as the UID. However, that prevented us
from applying task profiles to the crosvm process because joining a
process to a cgroup requires system UID.

To fix that, virtualizationservice now runs as system UID. As a result,
this directory that virtualizationservice accesses has to change its
owner and group to system.

Bug: 223790172
Bug: 216788146
Test: watch TH

Change-Id: I2bdf49e99f1841bf77ff046b0c2455064b174e0a
2022-04-15 00:05:38 +09:00
Jiyong Park
5b178328a3 /dev/[kvm|vhost-vsock] are owned by system
/dev/kvm and /dev/vhost-vsock are used by crosvm. Previously, it ran as
a custom UID `virtualizationservice`. However, this prevented us from
applying task profiles to the crosvm process because joining a process
to a cgroup requires system UID.

Now, crosvm (and its parent virtualizationservice as well) runs in
system UID. Therefore, the ownership of two device files are also
updated accorgly.

BUG=b:216788146
BUG=b:223790172
Test: watch TH

Change-Id: I1f63a12532d3a2cb5724291dbbb40210bd7c9203
2022-04-15 00:05:38 +09:00
Kalesh Singh
cb965e093c Merge "Set Multi-Gen LRU enabled based on experiment prop" 2022-04-12 13:48:48 +00:00
Kalesh Singh
bd42559beb Set Multi-Gen LRU enabled based on experiment prop
Experiments can enable/disable MG-LRU using the
persist.device_config.mglru_native.lru_gen_enabled property
which will update the coresponding sysfs control to enable or
disable this feature in the kernel.

Test: adb shell device_config put mglru_native lru_gen_config [none, core, ...]
Test: verify MG RLU is enabled/disabled: cat /sys/kernel/mm/lru_gen/enabled
Bug: 227651406
Bug: 228525049
Change-Id: I0708df8c78a85359d5cb6d5b167836768029380e
2022-04-08 13:54:10 -07:00
Shikha Panwar
4b91af7d24 [Init] Create dir for odsign metrics
This is required so that system_server can read/delete the file(s) in
/data/misc/odsign/metrics & report to statsd

Note the group change in odsign directory was required so that
system_server can get the execute permission to read file in the sub dir

Test: adb shell ls -l /data/misc/odsign/metrics
Bug: 202926606
Change-Id: I6dd80e05bbfb9daf4aa3e996fc22bba1de8bd2ce
2022-04-06 17:51:08 +00:00
Bart Van Assche
159563561a Revert "Migrate the blkio controller to the v2 cgroup hierarchy"
Revert "Migrate the blkio controller to the cgroup v2 hierarchy"

Revert "Migrate the blkio controller to the cgroup v2 hierarchy"

Revert "Migrate the blkio controller to the cgroup v2 hierarchy"

Revert submission 1962326-blkio-cgroup-v2

Reason for revert: This set of changes is suspected to have caused a redfin boot time regression for the git_tm-dev branch.

Reverted Changes:
Id18d876b6:Migrate the blkio controller to the cgroup v2 hier...
I7dfa52136:Migrate the blkio controller to the v2 cgroup hier...
I5336167be:Migrate the blkio controller to the cgroup v2 hier...
I3f0131d8f:Migrate the blkio controller to the cgroup v2 hier...
Ibb62b2d4d:Migrate the blkio controller to the cgroup v2 hier...

Bug: 227382327
Bug: 227389363
Change-Id: I6c8183ed1c3044c8947c4fca07799deff98101b3
2022-03-30 14:58:20 +00:00
Bart Van Assche
07f6c82a4c Migrate the blkio controller to the v2 cgroup hierarchy
This patch preserves the following parameter values:
* Foreground BFQ weight:      100
* Foreground CFQ group_idle:    0
* Foreground CFQ weight:     1000
* Background BFQ weight:       10
* Background CFQ group_idle:    0
* Background CFQ weight:      200

The foreground BFQ weight in task_profiles.json is the default BFQ
weight. From
https://www.kernel.org/doc/Documentation/block/bfq-iosched.txt:
"weight (namely blkio.bfq.weight or io.bfq-weight): the weight of the
group inside its parent. Available values: 1..10000 (default 100). The
linear mapping between ioprio and weights, described at the beginning
of the tunable section, is still valid, but all weights higher than
IOPRIO_BE_NR*10 are mapped to ioprio 0."

Bug: 213617178
Test: Booted Android in Cuttlefish and ran the following test:
Test: adb -e shell cat /sys/fs/cgroup/*/*/io.bfq.weight | sort | uniq -c
Test: 22 default 10
Test: 98 default 100
Change-Id: I7dfa521363a316592852fecce9192708c7a90514
Signed-off-by: Bart Van Assche <bvanassche@google.com>
2022-03-28 20:56:15 +00:00
Eric Biggers
0c9413d883 Merge "init.rc: remove commented-out code that set vold.post_fs_data_done" 2022-03-22 03:42:23 +00:00
Eric Biggers
881ca51a84 init.rc: remove commented-out code that set vold.post_fs_data_done
The "vold.post_fs_data_done" system property was only used by FDE, which
is no longer supported, and this code was commented out anyway.

Bug: 208476087
Change-Id: Ib9346d14368c77058a598e5c4f5f2ed72f5a5316
2022-03-21 22:15:53 +00:00
Florian Mayer
daedc740c9 Add etc to hwasan-postsubmit
Test: Run tests under HWASan.
Bug: 193568145
Change-Id: I0edc35a73fe6760ffe52127d246fde4fe3980bbc
2022-03-18 21:38:47 +00:00
Treehugger Robot
4c7dc7bd1d Merge changes from topic "sys_rootdisk"
* changes:
  Init: add dev.mnt.blk.bootdevice to access device sysfs
  init: mount_handler: detect main block device more reliably
  init.rc: use /sys/class/block instead of /sys/devices/virtual/block
2022-03-16 22:44:01 +00:00
Jaegeuk Kim
120f6b260c Init: add dev.mnt.blk.bootdevice to access device sysfs
This patch adds a new property, 'dev.mnt.root.<mount_point>', which provides,
for example of /data,

1. dm-N
  dev.mnt.dev.data = dm-N
  dev.mnt.blk.data = sdaN or mmcblk0pN
  dev.mnt.rootdisk.data = sda or mmcblk0

2. sdaN or mmcblk0pN
  dev.mnt.dev.data = sdaN or mmcblk0pN
  dev.mnt.blk.data = sdaN or mmcblk0pN
  dev.mnt.rootdisk.data = sda or mmcblk0

Signed-off-by: Jaegeuk Kim <jaegeuk@google.com>
Change-Id: I0a58a62d416f966f26b5de04112c2f9a7eceb22c
2022-03-14 16:59:52 -07:00
Juhyung Park
852111eea4 init.rc: use /sys/class/block instead of /sys/devices/virtual/block
/sys/class/block covers all of dm-[0-9], sd[a-z], mmcblk[0-9].
Use it instead of /sys/devices/virtual/block, which only covers dm
devices.

This allows f2fs tunings to be applied more reliably regardless of
how the userdata partition is set up.

Do note that while everything under /sys/devices/virtual/block are
expected to have correct SELinux labels by AOSP, some under
/sys/class/block are not as it's symlinked to platform-specific paths,
and it is up to the vendors to label them correctly.

Test: Confirm entries under /dev/sys aren't dangling and cp_interval,
      gc_urgent_sleep_time, iostat_enable and discard_max_bytes are
      all set up properly under FBE, FDE and unencrypted.
Change-Id: I089af5bc068445f33919df6659671e50456d49f9
Signed-off-by: Juhyung Park <qkrwngud825@gmail.com>
2022-03-06 00:31:20 -08:00
Pirama Arumuga Nainar
9868487540 Set '%c' in LLVM_PROFILE_FILE for continuous mode
Bug: http://b/194128476

If CLANG_COVERAGE_CONTINUOUS_MODE is set, enable continuous mode by
adding '%c' to LLVM_PROFILE_FILE.

Test: CLANG_COVERAGE_CONTINUOUS_MODE m and verify continuous mode works.
Change-Id: I8ace01f2aeaef62857e73308b04a535739171b53
2022-03-04 12:47:55 -08:00
Colin Cross
86b6db0b0f Merge "Use sanitizer paths exported by make" 2022-02-18 03:39:26 +00:00
Colin Cross
21527e9794 Use sanitizer paths exported by make
The clang prebuilts now provide a single module with per-architecture
variants instead of a module per architecture, which means the module
name doesn't match the installed file name.  Use the file names
exported from Soong instead of the module names.

Bug: 220019988
Test: m out/target/produuct/coral/system/etc/sanitizer.libraries.txt
Change-Id: I12e7e988ce60d928987db8611883e67f2ecdee87
2022-02-17 11:19:48 -08:00
Peter Collingbourne
15a20e3906 Merge "Reland "Add a core configuration that disables the zygote."" 2022-02-17 18:37:21 +00:00
Peter Collingbourne
d22ff8a93a Reland "Add a core configuration that disables the zygote."
In targets that do not include a zygote binary, attempting to start the
zygote service will result in repeated service restarts. Avoid this by
providing a way for targets to opt out of declaring a zygote service.

The fvp_mini target does not have a zygote, so apply this opt-out to
that target.

Relanding after fixing breakage on an internal branch.

Bug: 217455793
Change-Id: Ic26f76142afb5f700bd7b12359d62feb2652b617
2022-02-15 16:03:35 -08:00
Bob Badour
3332e2127a Declare license metadata for copied files.
Bug: 151177513

Test: m nothing reportmissinglicenses
Change-Id: I2d06c042e41eda55930ea3b49efd9f27e35bc520
2022-02-12 21:20:41 -08:00
Jordan Demeulenaere
13041ef021 Merge "Revert "Add a core configuration that disables the zygote."" 2022-02-07 14:53:40 +00:00
Jordan Demeulenaere
09dacde8ab Revert "Add a core configuration that disables the zygote."
Revert "Add a core configuration that disables the zygote."

Revert submission 1964759-master-I4f918502e611e950fa039e4e2ed817c97b928ba2

Reason for revert: b/217993447
Reverted Changes:
I4f918502e:Add a core configuration that disables the zygote....
I4f918502e:Add a core configuration that disables the zygote....
I4f918502e:Add a core configuration that disables the zygote....

Change-Id: I9dc73c6338ed158bd712324b99ae9e3cd4a36424
2022-02-07 09:05:29 +00:00
Treehugger Robot
a1a2c257f3 Merge "Add a core configuration that disables the zygote." 2022-02-04 23:52:33 +00:00
Ramji Jiyani
273c0184b1 system_dlkm: add unguarded mount point
Always create system_dlkm mountpoint like
vendor_dlkm and odm_dlkm; as some CF mixed
tests are using the dynamic partition to boot
with builds with no system_dlkm which causes
avd boot failures.

Bug: 217511547
Test: TH
Signed-off-by: Ramji Jiyani <ramjiyani@google.com>
Change-Id: Ibf32127df22898706db02400addaa0f1193c105c
2022-02-02 19:45:22 +00:00
Ramji Jiyani
86175ef960 system_dlkm: Fix flag for mount point guard
Replace /system_dlkm mount guard flga from
BOARD_USES_SYSTEM_DLKM_PARTITION to
BOARD_USES_SYSTEM_DLKMIMAGE. board_config.mk
and other tools are using this format of image
name to auto generate code to prevent duplication.

Bug: 200082547
Test: TH
Signed-off-by: Ramji Jiyani <ramjiyani@google.com>
Change-Id: Ie4dc899509cf42afb553936e6dbf69d5ce234d01
2022-02-02 02:34:46 +00:00
Ken Chen
d30232369d Merge "[NETD-BPF#27] Require libnetd_updatable.so from APEX" 2022-01-31 22:48:06 +00:00
Peter Collingbourne
1414e3cc77 Add a core configuration that disables the zygote.
In targets that do not include a zygote binary, attempting to start the
zygote service will result in repeated service restarts. Avoid this by
providing a way for targets to opt out of declaring a zygote service.

The fvp_mini target does not have a zygote, so apply this opt-out to
that target.

Change-Id: I4f918502e611e950fa039e4e2ed817c97b928ba2
2022-01-27 20:18:39 -08:00
Suren Baghdasaryan
2e7799a4d3 init.rc: Set permissions to cgroup.procs files
Set permissions to cgroup.procs files in cgroup hierarchies similar to
permissions for tasks files so that SetProcessProfiles can access them.

Bug: 215557553
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: Id0c82288392146c8d536d273790a0252580c4203
2022-01-25 00:05:47 +00:00
Ken Chen
8e89f648ee [NETD-BPF#27] Require libnetd_updatable.so from APEX
Add libnetd_updatable.so as dependency of platform. The library will be
used by Netd. Linker config is required if a library in mainline module
is linked by platform.

Bug: 202086915
Test: m; flash; boot

Change-Id: I97183f022b229e788184a979d1a211968295563d
2022-01-21 08:42:15 +00:00
Pirama Arumuga Nainar
dbd3883b9b Revert "Enable continuous coverage: use '%c' specifier in LLVM_PROFILE_FILE"
Bug: http://b/194128476
Bug: http://b/210012154

This reverts commit e59f0f66fc.

Coverage metrics dropped for ~10 of the 40 modules.  There are also
regressions in mainline when running tests on older platform builds.

Test: presubmit
Change-Id: I50a011f68dcdc25883a68701c51e7e2aabc5a7dc
2022-01-18 13:15:54 -08:00
Yi-yo Chiang
1eeee3db1a Merge "Remove unused rootdir/avb/*-gsi.avbpubkey modules" 2022-01-11 06:57:25 +00:00
Pirama Arumuga Nainar
f9a54a86ec Merge "Enable continuous coverage: use '%c' specifier in LLVM_PROFILE_FILE" 2022-01-10 22:36:57 +00:00
Yi-Yo Chiang
0c99f93351 Remove unused rootdir/avb/*-gsi.avbpubkey modules
They were moved to test/vts-testcase

Bug: 176869478
Test: presubmit
Change-Id: I4f4f1c50e624125c839161d83e28f051099e6ec0
2022-01-10 14:25:42 +00:00
Yi-Yo Chiang
88e0f4abdb Move *-gsi_avbpubkey filegroup to vts directory
Bug: 176869478
Test: presubmit
Change-Id: I41cf85bb2f3b5270fcb848fc07e9145d26adcc18
2022-01-07 18:27:15 +08:00
Josh Yang
ef76c8103d Create /data/bootanim folder in init.rc.
This folder is used to host bootanim data files.

Bug: 210757252
Test: /data/bootanim is correctly created.
Change-Id: I5019a92df4526865d53797bfd93cd68c3e6d2886
2021-12-23 14:55:40 -08:00
Ramji Jiyani
856817afe0 Merge "Create /system_dlkm mount point for GKI modules." 2021-12-16 02:41:24 +00:00