Commit graph

88810 commits

Author SHA1 Message Date
Peter Collingbourne
4a57c8f4f2 adb: Do not use fs_config unless we are root (try 3).
This enables fs_config for /data when pushing files as root. Also,
without this, adb push to /tmp fails as the shell user.

When pushing to a directory that does not have an explicit
fs_config, such as /data/local/tmp or /tmp, use the original
file mode. Because adb copies u permissions into g and o
(and in general because the umask on the host may have
made these files world writable), this requires adding more
fs_config entries to cover directories that may contain dex files
i.e. /{odm,product,system,system_ext,vendor}/{framework,app,priv-app}
to avoid hitting a SecurityException caused by writable dex files, e.g.

04-01 21:22:16.980 10110  4815  4815 E AndroidRuntime: FATAL EXCEPTION: main
04-01 21:22:16.980 10110  4815  4815 E AndroidRuntime: Process: android.test.app.system_priv, PID: 4815
04-01 21:22:16.980 10110  4815  4815 E AndroidRuntime: java.lang.SecurityException: Writable dex file '/system/priv-app/loadlibrarytest_system_priv_app/loadlibrarytest_system_priv_app.apk' is not allowed.
04-01 21:22:16.980 10110  4815  4815 E AndroidRuntime:  at dalvik.system.DexFile.openDexFileNative(Native Method)
04-01 21:22:16.980 10110  4815  4815 E AndroidRuntime:  at dalvik.system.DexFile.openDexFile(DexFile.java:406)

Bug: 171233429
Bug: 311263616
Change-Id: I18f70095c793d08a25ff59e1851f6dc7648ce4dc
2024-04-01 15:18:49 -07:00
Justin Yun
d49456a11f Merge "Avoid duplicated definition in llndk-versioning.h" into main 2024-03-20 00:17:15 +00:00
Treehugger Robot
f52256ea25 Merge "trusty: rpmb_dev: Use socket from init and update init script" into main 2024-03-19 21:28:30 +00:00
Treehugger Robot
b03f02bca4 Merge "toolbox/libmodprobe: add toolbox to vendor_ramdisk" into main 2024-03-19 20:08:30 +00:00
Arve Hjønnevåg
294ba38082 trusty: rpmb_dev: Use socket from init and update init script
Stop creating a socket on a persistent filesystem and use a socket
created by init in /dev/socket/ instead.

Many init script changes to make rpmb_dev.rc usable on cuttlefish.

Test: Build and run aosp_cf_x86_64_phone_trusty_vm-trunk_staging-userdebug
Bug: 309007107
Change-Id: Idc830211b3298d25bbb310dcb7489dd89fe5afc6
2024-03-19 20:02:34 +00:00
Mitch Phillips
da9ec0cd05 Merge "[MTE] Implement permissive (recoverable) MTE for apps" into main 2024-03-19 19:06:13 +00:00
Florian Mayer
effe539c30 Merge "Do not chmod ANRs" into main 2024-03-19 18:25:42 +00:00
Elliott Hughes
0fee60a79a Merge "Use _Fork()." into main 2024-03-19 14:48:20 +00:00
Mitch Phillips
31407917f8 [MTE] Implement permissive (recoverable) MTE for apps
Extends the recoverable native crash handling support to also allow for
MTE crashes to be recovered from in apps. Backs onto the existing
GWP-ASan recoverable handling.

At least for system/core, I've renamed the (now) generic "recoverable
crash" variables to remove the notion of GWP-ASan.

Permissive MTE should no longer crash an app, and crashes are still
visible in the AppExitInfo API and tombstones.

Test: atest CtsTaggingHostTestCases
Bug: 328793166
Change-Id: I4c6ffa85af0e0d9b72d0ccd606bb6e1ca464cfff
2024-03-19 11:26:02 +01:00
Justin Yun
0fb8da9a05 Avoid duplicated definition in llndk-versioning.h
Non-vendor modules may define llndk versioning macros manually. Avoid
redefining the macros if they are already defined outside of
llndk-versioning.h header.

Bug: 302113279
Test: m && m cts

Change-Id: Ibf984f2f2eed3594c824f2e97e17f2698e0515dd
2024-03-19 16:42:26 +09:00
Daniel Zheng
550a176551 Merge "libsnapshot: reserve 16x space for ops" into main 2024-03-19 07:34:57 +00:00
Daniel Zheng
8e6ab87328 libsnapshot: reserve 16x space for ops
We have updated logic for v3 cow we should allow non-data ops to be
cached at 16x the amount of data ops. Changing the reserve size to match
this.

Test: th
Change-Id: I825ffef4e1a2ce4eb5c105d266bf95cb3d776ed9
2024-03-19 00:34:15 -07:00
Florian Mayer
e95d781041 Do not chmod ANRs
The code was only meant for native tombstones. It might be a good idea
to make ANRs also readable by shell / adb, but in that case we have to
do more changes to make sure all files in /data/anr are. We can revert
if we implement that

Test: m
Bug: 329827513
Change-Id: Ic98c452ca500fe766a70173bef4ac1ea57438989
2024-03-18 17:19:51 -07:00
Treehugger Robot
0b671f4432 Merge "dmctl: add report of IMA" into main 2024-03-18 16:59:31 +00:00
Junki Min
c8dc7ffd5e toolbox/libmodprobe: add toolbox to vendor_ramdisk
toolbox and libmodprobe are required for module loading before
first stage init begin.

BUG: 329807942
Signed-off-by: Junki Min <joonki.min@samsung.com>
Change-Id: Icf04888e602b012758ebf353ed8e4aff2585fd07
2024-03-18 17:35:26 +09:00
Jeongik Cha
4df565db4c Merge "Declare init.*.rc modules in Android.bp" into main 2024-03-18 01:25:16 +00:00
Treehugger Robot
a17fa25959 Merge "Remove bionic dependency from llndk-versioning.h" into main 2024-03-18 00:11:43 +00:00
Jaegeuk Kim
9459f7c09c dmctl: add report of IMA
This adds an option "ima" in dmctl.

$ dmctl ima product-verity
Targets in the device-mapper table for product-verity:
0-7463768: verity, target_name=verity,target_version=1.9.0,hash_failed=V,verity_version=1,data_device_name=254:4,hash_device_name=254:4,verity_algorithm=sha256,root_digest=d7af9fcb04d184219ba5477b97bb2bbc89fd23a46e03d1dea31d674cc4934769,salt=19d4f2345adfc8b7cc22a3c2f21dd413e5020fc7920a08a33f46f3c61492dfcc,ignore_zero_blocks=y,check_at_most_once=n,verity_mode=restart_on_corruption;

Change-Id: I057970b6c786b3f9a394b4919f5f5115b27cbc08
Signed-off-by: Jaegeuk Kim <jaegeuk@google.com>
2024-03-15 16:34:20 -07:00
Treehugger Robot
a09542807f Merge "toolbox/modprobe: Use libmodprobe to load modules from FILE" into main 2024-03-15 23:32:52 +00:00
Will McVicker
7d400f9d8c toolbox/modprobe: Use libmodprobe to load modules from FILE
When a file is provided (via --all=FILE), let's use libmodprobe to load
the modules. This let's us use the logic in libmodprobe to parse the
provided modules load file -- FILE. The functional differences include:

 - Removes the FILE parsing logic in modprobe.
 - Returns early if FILE doesn't exist.
 - Adds Dirname(FILE) to mod_dirs which means libmodprobe will parse the
   modules.* files inside Dirname(FILE). Previously, modprobe would only
   parse the modules.* files in the mod_dirs passed in by `-d DIR`. If
   no directories were provided, we would fallback to the default
   /lib/modules path. This patch removes the mod_dirs.empty() fallback
   path when --all=FILE is used. It's unlikely anyone uses `--all=FILE`
   without `-d DIR` unless FILE is inside the fallback path --
   /lib/modules.

Test: verified lsmod on pixel 6
Bug: 324018983
Change-Id: I8d241832f2a1f18d14207e3e3777e015c1ddb25f
2024-03-15 14:58:31 -07:00
Dennis Shen
a8a6d67f29 Merge "Revert "start aconfig storage daemon"" into main 2024-03-15 19:16:42 +00:00
Android Culprit Assistant
71179955f7 Revert "start aconfig storage daemon"
This revert was created by Android Culprit Assistant. The culprit was identified in the following culprit search session (http://go/aca-get/2def2bc9-4177-4451-930d-96612adf7d95).

Change-Id: I232a36309883bff892fff5a5d43fd1432d7f1c6e
2024-03-15 19:06:14 +00:00
Treehugger Robot
090f45f3c8 Merge "Add missing header." into main 2024-03-15 18:21:11 +00:00
Justin Yun
47f9182e49 Remove bionic dependency from llndk-versioning.h
llndk-versioning.h only defines macros for LLNDK versioning.
Remove unused bionic header.

Bug: 302113279
Test: lunch cf_x86_64-trunk_staging-userdebug && m && m cts
Change-Id: I8d3ebbd765a223a2241e1a0bc95c84d726bacb9d
2024-03-15 23:05:09 +09:00
Krzysztof Kosiński
eaf7d77e7e Add missing header.
Protobuf 22.x no longer includes <unordered_map>, so it has to
be included explicitly.

Bug: 329747255
Test: presubmit
Change-Id: Icd5055e242e4f58029caf80cbb321222c612a9d0
2024-03-15 06:44:39 +00:00
Jeongik Cha
3652004432 Declare init.*.rc modules in Android.bp
Bug: 322088967
Test: build
Change-Id: Idd8cc0a9fdbcda1d8129056efc0afadc663b955b
2024-03-15 13:49:39 +09:00
Dennis Shen
e7abebc01d Merge "start aconfig storage daemon" into main 2024-03-14 12:17:53 +00:00
Nikita Ioffe
13db31040f Merge changes from topic "derive-microdroid-vendor-dice-node" into main
* changes:
  Add a step to derive microdroid vendor dice node
  Move ForkExecveAndWaitForCompletion to util.h
  Mount /microdroid_resources as tmpfs
2024-03-14 11:20:06 +00:00
Treehugger Robot
9bceea5a7f Merge "Define macros for LLNDK versioning" into main 2024-03-14 05:58:32 +00:00
Dennis Shen
07afcabf67 start aconfig storage daemon
Bug: b/312444587
Test: m and launch AVD
Change-Id: I92946fc4ec2100d995300c58ef6045ae5b40f13a
2024-03-13 19:16:29 +00:00
Bart Van Assche
f21e60282e Merge "Make foreground and background I/O priority different" into main 2024-03-13 16:15:20 +00:00
Nikita Ioffe
1e114e677b Add a step to derive microdroid vendor dice node
The derivation happens in the derive_microdroid_vendor_dice_node binary
which first_stage_init forks and execvs.

Since the derivation requires talking to the dice driver, its
initialisation is also moved to the first stage init.

The derivation happens before the microdroid vendor partition is
verified & mounted. This should be safe because the first_stage_init
will fail the boot if the verification of the microdroid vendor
partition fails.

Bug: 287593065
Test: run microdroid with and without vendor partition
Test: atest MicrodroidTests
Change-Id: I0d83772eb98a56c315617e66ec64bd03639cfde6
2024-03-13 15:24:44 +00:00
Nikita Ioffe
fe7b83faea Move ForkExecveAndWaitForCompletion to util.h
In the follow up patch this function will also be used in
first_stage_init.

Bug: 287593065
Test: m
Change-Id: Id805f8523596c26ed262d89aa652b27184b612c1
2024-03-13 14:44:46 +00:00
Nikita Ioffe
2384e8abfe Mount /microdroid_resources as tmpfs
This will be used to store the new dice chain generated during
first_stage_init phase in case Microdroid VM is launched with
microdroid vendor partition.

Bug: 287593065
Test: atest MicrodroidTests
Test: start Microdroid VM & check microdroid_resources exists
Change-Id: I40677376bfed14d813ad51c78db6109b2d76d1d1
2024-03-13 14:39:08 +00:00
Treehugger Robot
0c2301240a Merge changes I68f7d46b,I5d5278ab into main
* changes:
  toolbox/modprobe: Fix failure due to blocklist
  libmodprobe: Make IsBlocklisted() public
2024-03-13 05:27:59 +00:00
Bart Van Assche
7f3fe0aaf2 Make foreground and background I/O priority different
The default I/O priority is "best effort" so the combination of "none"
and "restrict-to-be" is not sufficient to make foreground and background
I/O priorities different. This CL makes sure that foreground and
background I/O priorities are different.

As one can see, this CL has the intended effect in Cuttlefish:
$ adb -s 0.0.0.0:6520 shell 'cd /dev/blkio && grep -aH . blkio.prio.class background/blkio.prio.class'
blkio.prio.class:promote-to-rt
background/blkio.prio.class:restrict-to-be

Bug: 186902601
Change-Id: I24d30d360280d8c398684b0b5e88635f658ff870
Signed-off-by: Bart Van Assche <bvanassche@google.com>
2024-03-12 13:30:40 -07:00
Florian Mayer
c923ea5a6d Merge "Update test for more accurate memtag_handle_longjmp" into main 2024-03-12 18:12:46 +00:00
Veena Arvind
fe7e089a7c Merge "Scan for quiescent in sub reason and details" into main 2024-03-12 17:46:54 +00:00
Veena Arvind
b46e5e6d0b Scan for quiescent in sub reason and details
Bug: 326526460
Test: manual (b/320369923#comment19)
Change-Id: I702841bf1afa6a04318b8233eb6ddb89c46b7ad5
2024-03-11 22:23:09 +00:00
Jiakai Zhang
a08ad4b1e5 Merge changes from topic "snapshotctl_prop" into main
* changes:
  Make snapshotctl also log to logd.
  Allow other processes to run snapshotctl through init.
2024-03-11 16:55:25 +00:00
Justin Yun
f8292344cd Define macros for LLNDK versioning
__INTRODUCED_IN_LLNDK(vendor_api_level) is for the LLNDK APIs
introduced in the vendor_api_level. It is ignored for non-vendor
modules.

API_LEVEL_AT_LEAST(sdk_api_level, vendor_api_level) is used as a
statement for 'if' to guard the API callers. For example:

if API_LEVEL_AT_LEAST(__ANDROID_API_V__, 202404) {
  new_api_for_V_and_202404();
} else {
  fallback_function();
}

Bug: 302113279
Test: build trunk-staging and next configurations
Change-Id: I60d40655b1f8afdfa5c69b2ac4be2205f8057bea
2024-03-11 20:24:07 +09:00
Jiakai Zhang
6480d875b5 Make snapshotctl also log to logd.
Since http://r.android.com/2994274, snapshotctl can be run by init.
Therefore, we need it to log to logd for better debuggability.

Bug: 311377497
Test: adb shell setprop sys.snapshotctl.map requested
Test: adb shell setprop sys.snapshotctl.unmap requested
Change-Id: I287ecf77d45fb9e6c44bea36e14d2624029afea5
2024-03-08 18:56:13 +00:00
Jiakai Zhang
22ddb0aec5 Allow other processes to run snapshotctl through init.
Running snapshotctl involves talking to gsid, which requires the UID to
be 0. To allow other processes to run snapshotctl without running as the
root user, this change adds system properties "sys.snapshotctl.map" and
"sys.snapshotctl.unmap" that proxy snapshotctl calls.

Bug: 311377497
Test: adb shell setprop sys.snapshotctl.map requested
Test: adb shell setprop sys.snapshotctl.unmap requested
Change-Id: Ia29dde30021a94511b8e699c2c8f3816b851bf5c
2024-03-08 18:53:47 +00:00
Florian Mayer
1fef1b1359 Update test for more accurate memtag_handle_longjmp
Change-Id: Ie5482d343c37ee8cf57a8ce105a0c8a363e5761e
2024-03-07 17:12:57 -08:00
Will McVicker
b9dead1a75 toolbox/modprobe: Fix failure due to blocklist
When a module is blocklisted, LoadWithAliases() will return an error
indicating the module failed to load. When the blocklist is requested
(via the -b parameter), let's not return an error if a blocklisted
module fails to load.

Test: verified lsmod on pixel 6
Bug: 324018983
Change-Id: I68f7d46bf9fd99e4b4e51ef92ea71686907f1125
2024-03-07 15:01:59 -08:00
Will McVicker
2d3658a421 libmodprobe: Make IsBlocklisted() public
This allows tools like modprobe to check if a module is blocklisted.

Test: verified lsmod on pixel 6
Bug: 324018983
Change-Id: I5d5278ab056e58a4ee103db94b573928cbeb5c5f
2024-03-07 15:01:54 -08:00
Snehal Koukuntla
b2bfb972e8 Merge "[Metrics] Add helper data structures to parse metrics messages" into main 2024-03-07 09:11:31 +00:00
Xin Li
ba485e7f71 Merge "Merge Android 14 QPR2 to AOSP main" into main 2024-03-07 06:10:51 +00:00
Michael Hoisie
1140355bde Merge "Remove the redundant libcutils_sockets_test" into main 2024-03-07 06:01:19 +00:00
Treehugger Robot
6c6b9e33d6 Merge "Skip initializing ro.vendor.api_level if already defined" into main 2024-03-07 03:42:14 +00:00