Commit graph

3258 commits

Author SHA1 Message Date
Dennis Shen
52d2446b4e Deprecate cc_binary aconfigd and the controlling flag
cc_binary aconfigd is replaced with rust_binary aconfigd-system. The
replacement is flag guarded and is already in TF full for more than a
week. Thus delete the flag and deprecate old cc_binary aconfigd.

Test: m
Change-Id: Ib128adc2ef8178e02222f77e6b89bcc7ac83c1da
2024-11-26 15:26:52 +00:00
Shin Kawamura
640e32478f Merge "Fix permission of zram writeback and idle file" into main 2024-11-22 03:58:13 +00:00
Akilesh Kailash
35ab96a423 Add prefetch directory in /metadata
Bug: 362507272
Test: Verify directory is created in /metadata
Change-Id: Ie1c2312f405d4b41e06a248e4d2b93cd8fc62a93
Signed-off-by: Akilesh Kailash <akailash@google.com>
2024-11-21 05:59:54 -08:00
Shintaro Kawamura
b912e3e548 Fix permission of zram writeback and idle file
The default permission of "/sys/block/zram0/idle" and
"/sys/block/zram0/writeback" are "0200".

Adding read permission to the files does not make sense because reading
those files fail as EIO error.

We should keep permission as minimum as possible.

Bug: 117682284
Bug: 375432468
Test: ls -la /sys/block/zram0

Change-Id: I11ed5d9eee257002f4698edcd81de39d2c317ea1
2024-11-21 16:28:34 +09:00
Gabriel Biren
6105d9dc8a Create the mainline supplicant directory
during initialization.

Bug: 365585450
Test: Manual test - verify that the mainline
      supplicant can add/remove interfaces
Change-Id: Ib41b361a8b032c04586f108be9d1933214934286
2024-11-18 20:24:58 +00:00
Ted Bauer
3c700588c7 Start aconfigd_system processes in init.rc
aconfigd_system is replacing aconfigd. Which one executes is toggled
by RO flag enable_system_aconfigd_rust, introduced in https://android-review.googlesource.com/q/topic:%22switch-to-aconfigd-system%22.

Bug: 378079539
Test: m
Change-Id: I6a04c38e9ef22da2b230046ddace73d6f7e39652
2024-11-08 17:45:16 +00:00
Jooyung Han
03429accee init: mount tracefs before apexd-bootstrap
This removes the error log when apexd-bootstrap starts:

  cutils-trace: Error opening trace file: No such file or directory (2)

Bug: 376150518
Test: boot-time trace shows apexd-bootstrap
  see https://source.android.com/docs/core/perf/boot-times#systrace
Change-Id: I5feaece50663a602b61377cee034060fd30217f9
2024-10-29 16:28:33 +09:00
David Anderson
097b607ac6 Merge "init: Issue a wipe on boot if trade-in mode was active." into main 2024-10-18 21:55:09 +00:00
Treehugger Robot
499643e456 Merge "init: Remove schedtune support" into main 2024-10-09 20:45:29 +00:00
T.J. Mercier
50fd822149 init: Remove schedtune support
Schedtune was an out of tree cgroup controller present in Android
kernels up to 4.19. It was replaced with uclamp and the cpu controller.
Now that 4.19 is EOL and unsupported, and schedtune is not present in
any supported Android kernels, remove the userspace support for
schedtune.

Bug: 362504801
Change-Id: Iab7b7295d1fb443209d5868ac5c65dca0aabfbab
2024-10-04 14:53:27 +00:00
Rob Barnes
da77c2e1dc Change owner of ACPI BERT tables to system
Changes the owner of the following files to system:system:

* /sys/firmware/acpi/tables
* /sys/firmware/acpi/tables/BERT
* /sys/firmware/acpi/tables/data/BERT

This allows the bert_collector deamon to read these files for error reporting.

Bug: 357626966
Test: m && atest bert_collector_test

Change-Id: Iba3a169f1851566ee6fed6d41b538dae448bf811
2024-10-03 13:54:52 +00:00
David Anderson
6f451a9c8c init: Issue a wipe on boot if trade-in mode was active.
This modifies first-stage init to check for /metadata/tradeinmode/wipe
as soon as /metadata is mounted. If the file exists, we issue a request
to the bootloader to reboot to recovery and wipe /data. Since this also
wipes /metadata, the wipe indicator will be removed too.

In case some kind of failure happens in recovery, this also implements a
quick-and-dirty counter mechanism to fallback to the recovery menu.

Bug: 307713521
Test: touch /metadata/tradeinmode/wipe && adb reboot
Change-Id: I2d05903cadcdadf9c05f6736454db790a9e6b5bb
2024-10-02 20:19:08 -07:00
Maciej Żenczykowski
b4b3950e52 Fix the trigger name for loading bpf programs.
The trigger name should be load-bpf-programs, not load_bpf_programs.

Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I00cff0a3dd971de39dfc3226b140be972854ea28
2024-09-23 21:34:33 +00:00
Maciej Żenczykowski
3e8f0b53e4 Merge "start netd earlier" into main 2024-09-23 21:16:05 +00:00
Maciej Żenczykowski
e60b760e74 start netd earlier
In this change we're moving the asynchronous netd startup ahead of
the async statd and *synchronous* update_verifier.

This is desirable as we want a netd failure (which could
happen due to some mainline incompatibility wrt. bpf
or mainline shipped shared libs: resolver or netd updatable)
to be considered a signal for a bad boot.

It's still asynchronous though, so it's not ideal.

Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ib3e252f085f569864feddaf20ac80858a3bb969d
2024-09-23 21:15:01 +00:00
Inseob Kim
65daca3b88 Merge "Mount /mnt/vm earlier" into main 2024-09-20 08:01:56 +00:00
Inseob Kim
f5af00e79f Mount /mnt/vm earlier
To support early VM in the init stage.

Bug: 331320802
Test: boot and check /mnt/vm
Change-Id: If6f20a616ad24ae194e6fae292c9be200b63185b
2024-09-13 14:02:10 +09:00
Justin Yun
807ab25891 Define linker.config.json as a filegroup
The linker.config.json file is required for soong to generate a
system image.

Bug: 365670526
Test: lunch aosp_cf_x86_64_phone_soong_system-trunk_staging-userdebug
      && m
Change-Id: I86389e4143cd2fc08b812d50962bf7ec007894ab
2024-09-12 18:32:47 +09:00
Nelson Li
c1ad204f85 Rename system/core/rootdir/Android.mk to create_root_structure.mk
Since Soong currently doesn't support the `install_directory`
functionality, this file cannot be directly converted to Android.bp.
Moreover, the main content of `system/core/rootdir/Android.mk` is to
create directories and symlinks for the root file system. Therefore,
we'll first rename it and move it to build/core/main.mk for handling.

In addition, consolidate the handling of `meta-lic` related parts into
build/core/tasks/meta-lic.mk.

Bug: 353642907
Test: m -j init.environ.rc
Change-Id: I356c4b05c56b02b0243c12dbeddd4653ba4e137c
2024-09-10 06:50:19 +00:00
Inseob Kim
715dd707c4 Move adb_keys to product partition
/adb_keys will be moved to /product/etc/security as it's a
product-specific file. To prevent regression, /adb_keys will be a
symlink to the new location.

Bug: 353430323
Test: boot and connect adb with ADB_VENDOR_KEYS
Change-Id: I3dd200a1583be8f99bd5c30ecfed1bdc544ca783
2024-08-28 15:47:33 +09:00
Nick Kralevich
1220d17108 init.rc: Fix entropy pool initialization
Init is responsible for initializing the /dev/[u]random entropy
pool, to ensure that high quality random numbers are available
to all Android processes. Previously Android mixed in data
from /system/etc/prop.default, which included properties which
differed on a device-by-device basis. That file no longer exists,
and init generates the following error at boot:

  init: Command 'copy /system/etc/prop.default /dev/urandom'
  action=init (/system/etc/init/hw/init.rc:106) took 0ms and
  failed: Could not read input file '/system/etc/prop.default':
  open() failed: No such file or directory

Instead of reading a property file, this change modifies init.rc
to read from /proc/bootconfig. The bootconfig file contains
per-device data which was previously on the command line, such
as androidboot.serialno. Additionally, it contains device-class
information such as androidboot.hardware,
androidboot.hardware.platform, and data which frequently churns
such as androidboot.vbmeta.digest. These help ensure that the
random number initialization is at least unique on a per
device-class basis.

Relying on /proc/bootconfig accomplishes the same goal that
relying on /system/etc/prop.default was intended to accomplish.
And /proc/bootconfig is in a more stable location than
/system/etc/prop.default, hopefully preventing future regressions.

Bug: 361624398
Test: Device boots and error above goes away
Change-Id: Id5c891e871217d62ff6517c5804b4acc2d723622
2024-08-23 11:17:41 -07:00
Jooyung Han
148f602f23 init: clean up unused Service[List]::post_data
post_data was used by Userspace Reboot, which was removed.

Bug: 293377020
Test: atest CtsInitTestCases
Change-Id: I1a5bf328f62b8afbe58eef62c64689471e6b018c
2024-08-19 14:30:37 +09:00
Treehugger Robot
50a5cc57fe Merge "Convert ramdisk_node_list to Android.bp" into main 2024-08-16 14:51:15 +00:00
Nelson Li
560cb93d9e Convert ramdisk_node_list to Android.bp
`ramdisk_node_list` is a hardcoded dependency in
`build/make/core/Makefile`, but it only serves as an input for
generating `ramdisk.img` and isn't installed on the device.

Therefore, we can directly use a `filegroup` and set
`export_to_make_var` for use in build/make/core/Makefile.

In addition, since there are no `Android.mk` files in the
subdirectories of `system/core/rootdir/`,
`include (callall−makefiles−under,(LOCAL_PATH))` can also be
deleted.

Bug: 359423289
Test: m -j $(PRODUCT_OUT)/ramdisk.img
Change-Id: Ia2bf636bfd7917bf7044d9726b4b52932bb161c8
2024-08-15 11:36:12 +08:00
Rick Yiu
673e6bb089 Create a new group for foreground of multi-window
In multi-window mode, currently the focused window will be top-app,
and others will be foreground. However, the cpu resource we assign to
typical foreground group may not meet the performance need of those
windows. Therefore, create a new group for them so that we could
distinguish their performance need.

Bug: 200769420
Test: group created
Change-Id: I84c61f9ed4d167e156dafb7a816b6482e80a8523
2024-08-15 01:29:48 +00:00
Jooyung Han
b29f0dcb5b Merge changes I00deb50c,I82650277 into main
* changes:
  Clean up userspace-reboot (#2)
  Clean up userspace-reboot
2024-08-12 00:40:07 +00:00
Jooyung Han
e34549af33 Clean up userspace-reboot
The feature was deprecated last year.

Bug: 292469129
Test: atest CtsInitTestCases
Change-Id: I826502770ab3fa566be57a33829f1103efa893fb
2024-08-09 15:58:53 +09:00
Inseob Kim
b6e4179dab Add /mnt/vm and mount tmpfs onto it for early VM
It will be used as a storage for early boot virtmgr.

Bug: 354059281
Test: boot and check /mnt/vm
Change-Id: I4a0c604161356b631c21913a0f8c3f2d796a3c65
2024-08-09 15:20:18 +09:00
Inseob Kim
3ce6cb9b6e Refactor init.environ.rc to append than replace
Bug: 353429422
Test: boot
Change-Id: Ibd432fa39fc75f8b49ae26fbc6b74f11fb3f771d
2024-08-02 15:55:39 +09:00
Inseob Kim
b7fa335ed8 Reland "Migrate init.environ.rc module to Soong"
Makefile module still remains to handle post install commands. We're
going to move that to somewhere else as a followup.

Relanding with a fix for hwasan build.
HWADDRESS_SANITIZER_GLOBAL_OPTIONS is set by Soong's MakeVars, so we
can't refer the variable on soong config modules. Instead, as the
variable is hard-coded, this change hard-codes options in Android.bp.

Bug: 353429422
Test: boot cuttlefish w/ and w/o USE_SOONG_DEFINED_SYSTEM_IMAGE
Test: boot shiba with SANITIZE_TARGET=hwaddress
Change-Id: I4f61d7f800e0563c49dec0151d4a648ce9814bc9
2024-08-01 03:30:56 +00:00
Liana Kazanova
bd153e76db Revert "Migrate init.environ.rc module to Soong"
Revert submission 3197177-init_environ_rc_soong

Reason for revert: DroidMonitor: Potential culprit for b/356587212 - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted.

Reverted changes: /q/submissionid:3197177-init_environ_rc_soong

Change-Id: I3834d7f76f4baef747f3536167ad9bd2d2a474b4
2024-07-31 17:56:36 +00:00
Inseob Kim
fcbb743d86 Migrate init.environ.rc module to Soong
Makefile module still remains to handle post install commands. We're
going to move that to somewhere else as a followup.

Bug: 353429422
Test: boot with and without USE_SOONG_DEFINED_SYSTEM_IMAGE
Change-Id: I85ec048e6e57981ad4496ea90762aa34bd9a5ca1
2024-07-31 13:10:41 +09:00
Treehugger Robot
d909570786 Merge "init: set a new trigger when a vold checkpoint is committed" into main 2024-07-22 09:12:29 +00:00
Mike McTernan
b525463558 init: set a new trigger when a vold checkpoint is committed
Add post-fs-data-checkpointed trigger when vold completes checkpointing
after an OTA update.

Bug: 350362101
Test: ABTD
Change-Id: I647a73a942174015b46c5f40bd8f8d3347977ecd
2024-07-19 16:40:23 +00:00
Treehugger Robot
196a802384 Merge "Convert asan.options and asan_extract to Android.bp" into main 2024-07-18 05:26:06 +00:00
Nelson Li
b335f4d4be Convert asan.options and asan_extract to Android.bp
In the original Android.mk, `asan.option` is only enabled when
"address" is present in SANITIZE_TARGET.
`asan_extract` is only enabled when `SANITIZE_TARGET_SYSTEM` is `true`
and `address` is present in SANITIZE_TARGET.

However, in the normal build system design, a module should `not`
decide when it should be enabled.
Therefore, the `ifeq` condition should be directly removed during
conversion.

The correct approach is:
Wait until converting `init.environ.rc`, then use `select` or similar
methods to determine whether it should use `asan.option` or
`asan_extract`.

Bug: 353164536
Test: SANITIZE_TARGET=address m init.environ.rc
      SANITIZE_TARGET_SYSTEM=true SANITIZE_TARGET=address m init.environ.rc
Change-Id: I69af3199536a3ba9f54dcfa198295826303e2d22
2024-07-17 14:50:16 +08:00
Nelson Li
2c2f3294b7 Convert *-developer-gsi.avbpubkey to Android.bp
Use `soong_config_module_type` to install `*-developer-gsi.avbpubkey`
to either `ramdisk` or `vendor_ramdisk` based on the value of
`BOARD_MOVE_GSI_AVB_KEYS_TO_VENDOR_BOOT` in each device.

In build/soong/android/paths.go's modulePartition() function, there is
already logic to construct `vendor_ramdisk` and `ramdisk` partitions
based on the different values of
`BOARD_MOVE_RECOVERY_RESOURCES_TO_VENDOR_BOOT` and
`BOARD_USES_RECOVERY_AS_BOOT`. And the logic is identical to the
original Android.mk.

Therefore, this change only needs to determine whether the avb public
keys should be placed in `vendor_ramdisk` or `ramdisk` based on the
value of `BOARD_MOVE_GSI_AVB_KEYS_TO_VENDOR_BOOT`. The rest of the
judgment logic can be ignored.

Bug: 347636127
Test: 1) lunch aosp_cf_x86_64_phone && m q-developer-gsi.avbpubkey
      2) check it installed to vendor_ramdisk/first_stage_ramdisk/avb/
      3) lunch yukawa && m q-developer-gsi.avbpubkey
      4) check it installed to ramdisk/avb/q-developer-gsi.avbpubkey
Change-Id: I6de1a038261f2feeae4504d8097c7392b166848d
2024-07-17 13:34:46 +08:00
Bart Van Assche
0b2f24ceb1 Merge "Revert "Make foreground and background I/O priority different"" into main 2024-06-11 23:14:34 +00:00
Bart Van Assche
4cb11951e2 Revert "Make foreground and background I/O priority different"
It has been reported that CL "Make foreground and background I/O
priority different" causes Android devices equipped with eMMC storage
to reboot if there is sufficient I/O activity. Hence revert commit
7f3fe0aaf2.

Bug: 186902601
Bug: 342034992
Change-Id: I4fa9c782eb0e801b410cb358e20fe41acebe1094
Signed-off-by: Bart Van Assche <bvanassche@google.com>
2024-06-11 20:17:44 +00:00
Kiyoung Kim
fb30388ac1 Merge "Make public.libraries.android.txt available to filesystem" into main 2024-06-10 04:02:16 +00:00
Greg Kaiser
f2064c3a0d Update zygote32 rc file to match others
In I3aad4b4b1d2f54db9e7ba86db8a655d8552bad0a we set MaxPerformance
for zygote64_32, and in I7fcceeb22b722c2164b9acf0b517a32ce34731fd
we synced up zygote64 to match this.

However, this change never made it into the zygote32 rc file,
which we fix here.

Bug: 324014808
Test: Basic testing on 32-bit device
Change-Id: I6f0c4490330d05551952fd5d844e02a6b638ca68
2024-06-06 19:11:27 +00:00
Allen Hair
1c5b2fd454 Merge "Revert "Move native coverage output directory."" into main 2024-06-04 23:37:03 +00:00
Allen Hair
f28b9a8b88 Revert "Move native coverage output directory."
This reverts commit 65430f8de6.

Reason for revert: Checking to see if this is the root cause for b/342673274.

Change-Id: I9bb319e73443e57b4ac0b61f5209048d5eb7e6c0
2024-06-03 19:14:52 +00:00
Kiyoung Kim
ed92eabfbb Make public.libraries.android.txt available to filesystem
public.libraries.android.txt was not installable as it was used only
from microdroid. However, this module can also be used from system
image, as there is no difference from the content. This change marks the
module as no_full_install, so it can be installed in the system image
defined in Android.bp

Bug: 343357947
Test: AOSP CF build succeeded
Change-Id: I15fd47b173b5b718972a6ee18b3aecb58826909c
2024-05-30 16:06:43 +09:00
Kiyoung Kim
d301af07bf Merge "Move sanitizer.libraries.txt definition into Soong" into main 2024-05-24 00:39:00 +00:00
Dennis Shen
230f639275 init.rc: add a new maps dir under /metadata/aconfig dir
Bug: b/312444587
Test: m and avd
Change-Id: Idf19d314b51cc409e58d6a2f2ae1831bfc3d717d
2024-05-22 13:30:26 +00:00
Dennis Shen
208fccdae8 init.rc: set up init.rc for aconfigd to initialize mainline storage
aconfigd-mainline-init is the service target to initialize mainline
storage files. aconfigd is the service target to start aconfigd socket
for incoming messages.

Bug: b/312444587
Test: m and avd
Change-Id: Ic8052eaf933501da3371812c482ad816ec353b27
2024-05-17 00:56:29 +00:00
Kiyoung Kim
5bec4e0cdd Move sanitizer.libraries.txt definition into Soong
Currently sanitizer.libraries.txt module is defined from Makefile, while
all logics to create the list of modules is implmented within the Soong.
This change moves sanitizer.libraries.txt module definition into Soong,
so it can be generated without sharing list of modules over Make
variable.

Bug: 339131599
Test: AOSP CF build succeeded, with same list of modules in
/system/etc/sanitizer.libraries.txt
Change-Id: I25cd4cf55b0a0992d05990d1b67869435f37de93
2024-05-07 05:56:08 +00:00
Kiyoung Kim
eba4057e94 Merge "Move llndk.libraries.txt definition" into main 2024-05-07 04:51:15 +00:00
Kiyoung Kim
ef637fd13c Move llndk.libraries.txt definition
Previously llndk.libraries.txt definition was located in VNDK along with
other vndk related libraries.txt files. As of VNDK deprecation, all
other VNDK libraries.txt files are being removed, and there is no need
to keep llndk.libraries.txt whtin the VNDK project, as LLNDK is not
VNDK. This change moves definition of llndk.libraries.txt into system
core project, to keep with other files installed in /system/etc.

Bug: 328994089
Test: AOSP CF build succeeded
Change-Id: I1535ebbab514ecf81a044c0e5ac4472f964f4312
2024-05-03 16:09:43 +09:00