Commit graph

88990 commits

Author SHA1 Message Date
Christopher Ferris
2f77c2a516 Clean up usage of 32 bit/64 bit checks.
Rather than have to create a number of #if defines for the memory
dumping parts of the tombstone, create a single function to generate
these strings for the memory tests.

Make CrasherTest.smoke use a regex that passes on 32 bit and 64 bit.

Make the tests page size agnostic.

Bug: 339017792

Test: Treehugger.
Test: Ran 32 bit and 64 bit versions of tests on a real device.
Test: Ran on the aosp_cf_x86_64_phone_pgagnostic-trunk_staging-userdebug
Change-Id: If9365061b85de23b00a1bf947d85923cde06c068
2024-05-07 15:30:47 -07:00
Kiyoung Kim
eba4057e94 Merge "Move llndk.libraries.txt definition" into main 2024-05-07 04:51:15 +00:00
Christopher Ferris
94c9cb6447 Merge "Replace malloc_not_svelte with malloc_low_memory." into main 2024-05-06 19:45:05 +00:00
Daniel Zheng
b631cf70a2 Merge "libsnapshot: update write error logs" into main 2024-05-06 16:51:36 +00:00
Daniel Zheng
c542da2674 libsnapshot: update write error logs
We want to print how much total data we are attempting to write if a
failure occurs

Bug: 336461151
Test: th
Change-Id: I269b7e280df34994c80fa8ef7d39163d053fa9ea
2024-05-06 09:49:07 -07:00
Treehugger Robot
babf597508 Merge "Use no_full_install: true instead of installable: false" into main 2024-05-04 00:04:03 +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
Christopher Ferris
92e3fd78ad Merge "Make sure debuggerd_test is run on device." into main 2024-05-02 21:35:40 +00:00
Treehugger Robot
4dced90fdc Merge "Add device= in Fstab" into main 2024-05-02 20:11:52 +00:00
Nate Myren
31b1582797 Merge "Revert "Only write appcompat properties if flag is defined"" into main 2024-05-02 19:49:45 +00:00
Treehugger Robot
966cc3dc0e Merge "Fix fallback signal issue." into main 2024-05-02 04:02:42 +00:00
Jaegeuk Kim
d18649eab3 Add device= in Fstab
This adds a raw partition to /data.

Bug: 336319772
Change-Id: Iaae51452be621a15ccd9c2530dae44f4c8714b2f
Signed-off-by: Jaegeuk Kim <jaegeuk@google.com>
2024-05-02 00:54:46 +00:00
Nate Myren
6d8304aa46 Revert "Only write appcompat properties if flag is defined"
Revert submission 3049635-cherrypicker-L52500030003287943:N44300030053199935

Reason for revert: b/338244859
Bug: 338244859

Reverted changes: /q/submissionid:3049635-cherrypicker-L52500030003287943:N44300030053199935

Change-Id: I4b99429ce5df0af30e6ad99d3463d4dc2c96c012
2024-05-01 19:21:49 +00:00
Jiyong Park
b33025849d Use no_full_install: true instead of installable: false
So far, we have used `instalable: false` to avoid collision with the
other modules that are installed to the same path. A typical example was
<foo> and <foo>.microdroid. The latter is a modified version of the
former for the inclusion of the microdroid image. They however both have
the same instalation path (ex: system/bin) and stem (ex: foo) so that we
can reference them using the same path regardless of whether we are in
Android or microdroid.

However, the use of `installable: false` for the purpose is actually
incorrect, because `installable: false` also means, obviously, "this
module shouldn't be installed". The only reason this incorrect way has
worked is simply because packaging modules (ex: android_filesystem)
didn't respect the property when gathering the modules.

As packaging modules are now fixed to respect `installable: false`, we
need a correct way of avoiding the collision. `no_full_install: true` is
it.

If a module has this property set to true, it is never installed to the
full instal path like out/target/product/<partition>/... It can be
installed only via packaging modules.

Bug: 338160898
Test: m
Change-Id: I37380c19232f2c497bdf492a83cdc16616f0ae8d
2024-05-01 20:59:19 +09:00
Elliott Hughes
2026332ed8 Merge "Don't reject "ctl.stop.*" during shutdown." into main 2024-04-30 22:56:32 +00:00
Treehugger Robot
b6c33dc967 Merge "Move native coverage output directory." into main 2024-04-30 22:18:42 +00:00
Elliott Hughes
c9d44b84fe Don't reject "ctl.stop.*" during shutdown.
We're shutting down anyway, so the service is either dead already
or about to be killed, and callers get upset (and don't have a good
response themselves) if we reject the request.

This was seen by a partner where adbd was asked to stop during
shutdown.

Bug: https://issuetracker.google.com/336223505
Change-Id: If09feeef2e0f2d1be9ff84a88cca6ed593a35362
2024-04-30 20:20:43 +00:00
Snehal Koukuntla
8240c53ec2 Merge "[Coverage] Fix coverage bug in which extra garbage is being written" into main 2024-04-30 15:58:41 +00:00
Snehal
030dd05027 [Coverage] Fix coverage bug in which extra garbage is being written
Bug: 296356127

Change-Id: I2e4128af461b297bbe170c015dc52899089e9b8b
2024-04-30 14:32:07 +00:00
Xiaohui Niu
7bfbe41714 Fix fallback signal issue.
Add signo for target thread in fallback path;
Update test for seccomp tombstone thread abort.

Bug: 336946834

Test: debuggerd_test
Test: Send fatal signal to process with NO_NEW_PRIVS
Change-Id: Ie9d77a93da9cd89ab7093b8949f311e03d96ec50
2024-04-30 21:22:31 +08:00
Treehugger Robot
e451837298 Merge "libvendorsupport provides an API to replace vndk version" into main 2024-04-30 03:27:35 +00:00
Justin Yun
c0659f0107 libvendorsupport provides an API to replace vndk version
ro.vndk.version cannot be simply replaced with ro.board.api_level with
the vndk deprecation. Even with the latest system updates, devices may
still run on old vendor images that do not define ro.board.api_level,
but define ro.vndk.version.
To provide the replacement of ro.vndk.version, provide a platform API
AVendorSupport_getVendorApiLevel() to return the expected vendor
version.

Bug: 312311458
Bug: 312315580
Test: manual test for AVendorSupport_getVendorApiLevel()
Change-Id: Id7c04483956d95fd49414cebde41d7cc4d2fb1d1
2024-04-30 10:59:07 +09:00
Florian Mayer
67027efd06 Merge "[MTE] disable memtag stack in early init" into main 2024-04-29 20:58:05 +00:00
Treehugger Robot
342f6a41c2 Merge "Update shell_and_utilities for V." into main 2024-04-29 18:56:14 +00:00
Elliott Hughes
fff3c92985 Update shell_and_utilities for V.
Change-Id: Ia617ba0e2b056b3b620400cb5e78445f810c388a
2024-04-29 16:39:01 +00:00
Florian Mayer
c2eaac5ed2 [MTE] disable memtag stack in early init
when introducing instrumentation for MTE stack history buffer, we cannot
use stack MTE in early init

Bug: 309446520
Change-Id: I0921ae4ffe03ed971697f8daff4215c9b3772e35
2024-04-26 17:25:05 -07:00
Steven Moreland
cd3ffd1f2c Merge "libutils: T* is a trivial type" into main 2024-04-26 23:06:22 +00:00
Steven Moreland
38d36e4492 libutils: T* is a trivial type
Avoid calling constructors/destructors for
each element, when we have Vector<T*>. These
are used in libbinder and elsewhere.

std::vector is still faster but uses more mem.

Bugs: me
Test: boot && binderLibTest
Change-Id: Id1239daddd018f8eee5480d1cb6dd25d6f4df808
2024-04-26 21:08:48 +00:00
Ellen Arteca
6f7e39526c Merge "Create and support isolation for /data/storage_area" into main 2024-04-26 20:59:43 +00:00
Christopher Ferris
1c46a00865 Replace malloc_not_svelte with malloc_low_memory.
The malloc_not_svelte variable name is confusing and makes the
low memory config the default. Change this so that the default is
the regular allocator, and that Malloc_low_memory is used to enable
the low memory allocator.

Update blueprint rules so that scudo is the default action.

Test: Verified scudo config is used by default.
Test: Verfified Android GO config uses the jemalloc low memory config.
Change-Id: Ie7b4b005a6377e2a031bbae979d66b50c8b3bcdb
2024-04-26 13:33:26 -07:00
Elliott Hughes
03700c301b Merge "parse_line: allow -1 for apexes and sdk libraries." into main 2024-04-26 19:59:38 +00:00
William Loh
563c1a83a0 Merge "Create app-metadata directory" into main 2024-04-26 16:57:39 +00:00
Elliott Hughes
6e774bae19 parse_line: allow -1 for apexes and sdk libraries.
Since we're in much worse trouble if `/data/system/packages.list` is
attacker-controlled, there doesn't seem like much benefit to having
the little bit of [incomplete] range checking we had on the uid
field (by using a wider type than `uid_t` actually is), and
apparently we're now abusing `-1` to mean "apex or sdk library",
despite `uid_t` being an unsigned type.

Bug: http://b/336659478
Change-Id: I7a270eea937d21fc1d7fcda8654054210cf631fe
2024-04-26 15:30:30 +00:00
Christopher Ferris
c76a8937b0 Make sure debuggerd_test is run on device.
Tests starting failing on aarch64, so force presubmit to run the
debuggerd tests on device to close this coverage hole.

Test: Treehugger and verify tests are run on device.
Change-Id: Ie40eab35e46cefd3cebc132d9c0a3d1ebdb0d766
2024-04-25 13:57:52 -07:00
Treehugger Robot
6f5205229b Merge "ueventd: Add devname sys_name to subsystem, pulling device names from sysfs" into main 2024-04-25 19:39:02 +00:00
William Loh
188b64778c Create app-metadata directory
App metadata bundles, also known as Android Safety Labels (ASL),
contains information about the app's privacy and security practices.
This information is used to help users make more informed choices when,
for example, granting access to permissions.

ASL can currently only be preloaded on the system image or distributed
by the installer and written to a file in the app's codePath. To support
embedded ASL in APK we need to extract ASLs from APKs to a writeable
location. For non-preloaded apps we can write to the app's codePath like
the installer provided ASLs, however, we need to create a new writable
directory for preloaded apps located on read only partitions.

Bug: 336618214
Test: manual
Change-Id: I651b2dab45c3132d8467c507dc4ee304001f73f5
2024-04-25 19:21:27 +00:00
Treehugger Robot
b24f4c9699 Merge "Load modules from _16K dir when running on 16K kernel" into main 2024-04-25 18:15:02 +00:00
A. Cody Schuffelen
b479666e3c ueventd: Add devname sys_name to subsystem, pulling device names from sysfs
This change introduces a new mode to `subsystem.devname` in `ueventd.rc`
configuration files, which sets the file name to the contents of
`/sys/DEVNAME/name`.

The objective of this change is to help Cuttlefish distinguish between
console devices, which are only different in uevents by initialization
order. Cuttlefish currently relies on `/dev/hvc##` devices which are
created for non-multiport virtio-console devices.

https://cs.android.com/android/platform/superproject/main/+/main:device/google/cuttlefish/shared/config/ueventd.rc;l=18;drc=5204f119d859d3ae5f1a2ee1c6a05ee68d6a28ed

On Cuttlefish we're considering moving to multiport virtio-console
devices ( https://fedoraproject.org/wiki/Features/VirtioSerial ). It
would be possible to rely on device order here as well, but using names
to distinguish devices makes it possible to drop unused devices in the
future, rather than reserving indexes indefinitely.

Multiport virtio-console devices create uevents with DEVNAME=vport#p#
and DEVPATH=.../vport#p#, only exposing the name in a sysfs file.

Bug: 336663898
Test: Attach multiport console, run with `-DLOG_UEVENTS=1`
Test: Introduce ueventd policy using `devname sys_name`
Change-Id: I59632b556db4a47883eab97e90c0e6ca81a9c650
2024-04-25 11:10:11 -07:00
Kelvin Zhang
946a355241 Merge "Allow querying for fstab for a mount point with fstype" into main 2024-04-25 16:48:37 +00:00
Kelvin Zhang
ffdb017e7d Load modules from _16K dir when running on 16K kernel
Test: th
Bug: 293313353
Change-Id: Ie58e57174545e4def5ebc33ac29f1adb12bf06a6
2024-04-25 09:48:13 -07:00
Kelvin Zhang
6cdee65b8b Allow querying for fstab for a mount point with fstype
Test: th
Bug: 293313353
Change-Id: I8e12c465d0a3e886fcfa0cebf546b145b785c220
2024-04-25 09:48:13 -07:00
Daniel Zheng
6f7fb5a0b5 Merge "libsnapshot: remove hard coded cow version" into main 2024-04-24 22:46:17 +00:00
Treehugger Robot
b46dcf4fcb Merge "Only write appcompat properties if flag is defined" into main 2024-04-24 22:35:37 +00:00
Treehugger Robot
ef3679a78a Merge "libmodprobe: remove dummy parameters for kernel" into main 2024-04-24 22:00:52 +00:00
Ryan Prichard
d774ab22c1 Merge "sysutils: add missing <vector> include" into main 2024-04-23 17:17:20 +00:00
Ryan Prichard
455fe568b4 sysutils: add missing <vector> include
Upgrading to clang-r522817's new libc++ requires that <vector> be
included here.

Bug: 333165689
Test: treehugger
Flag: EXEMPT, fix build error
Change-Id: Ib9a072ddb39477b98c79879da6354557695ba350
2024-04-22 22:03:45 -07:00
Florian Mayer
b69633f50c Merge "Avoid confusing main_thread name" into main 2024-04-23 04:56:52 +00:00
Chungkai Mei
1db2d481ea libmodprobe: remove dummy parameters for kernel
we consume load_sequential only in libmodprobe, so remove this parameter
before sending them into kernel layer

Bug: 332435366
Test: Built and boot husky targets
Change-Id: I37e63723d3c8d4fd8ca1fda682b344a721b9a637
Signed-off-by: Chungkai Mei <chungkai@google.com>
2024-04-22 19:56:46 -07:00
Florian Mayer
2d45331a9e Avoid confusing main_thread name
It is not in fact the main thread of the process, but the thread that crashed

Change-Id: I3af6d0ffc6c0617526a9cbeb36b2a3286aaeb6f6
2024-04-22 23:43:59 +00:00
Treehugger Robot
bbdc19b7e1 Merge "storageproxyd: Fix x86 builds" into main 2024-04-22 22:18:41 +00:00