Commit graph

2180 commits

Author SHA1 Message Date
Martin Stjernholm
d8bb1d2f3c Merge "Add compat symlinks into the Runtime APEX for the ART binaries." am: 48c6d139b3 am: 542a73be66
am: 33f1fb107b

Change-Id: I53901b1231c3ff3ce78880813800b5966b57e736
2019-02-13 17:00:48 -08:00
Martin Stjernholm
7f77dbfe64 Add compat symlinks into the Runtime APEX for the ART binaries.
This is a precaution in case there are dependencies on the binaries in the
old location. b/124106384 tracks eliminating them (if any).

Test: Flash and check symlinks are there with adb shell ls -l system/bin
Test: adb shell system/bin/<binary>
Bug: 113373927
Bug: 124106384
Change-Id: Ib4102fe55117611f68184102e68a10ea47de0065
2019-02-13 15:10:11 +00:00
Martin Stjernholm
242440e79c Merge "Introduce a separate linker config section for native tests." am: 18de135031 am: 1ab2ba789f
am: 1f8c10c6b1

Change-Id: Ic677ee09e7595acac16b9b08acd301c4e2f8bb59
2019-02-13 02:55:31 -08:00
Martin Stjernholm
18de135031 Merge "Introduce a separate linker config section for native tests." 2019-02-13 10:32:29 +00:00
Logan Chien
172f147a64 Merge "Fix APEX run-time ld.config.txt for ASAN targets" am: 8540f50887 am: 321b1a6345
am: 5d42b599ef

Change-Id: Ie571a679d43de4f34f119647040bbacea6a4f010
2019-02-12 21:11:14 -08:00
Justin Yun
4e429dd370 Merge "Change search order for vendor processes in vndk_lite." am: 47e8300412 am: c8631a3e1f
am: 16826ca953

Change-Id: If404f2af92bb352186df50b35c5b29bd9bd32666
2019-02-12 19:50:13 -08:00
Logan Chien
8540f50887 Merge "Fix APEX run-time ld.config.txt for ASAN targets" 2019-02-13 02:24:08 +00:00
Justin Yun
023ff46e18 Change search order for vendor processes in vndk_lite.
Originally, vndk_lite does not include system/lib/vndk-* directory but
searching the required files in system/lib instead. However, in GSI,
they are using the vndk libs which has symbols than core variants.
To avoid this problem, allow the vendor processes in vndk_lite devices
to search system/lib prior to vndk libs.

Bug: 124063441
Test: Check boot for vndk_lite devices.
Change-Id: I89a72e9d43d6fb05f4b6d87bbd4500f8febfe970
2019-02-13 01:56:28 +00:00
Dongwon Kang
88e1ac5abe Merge "Exclude libvndksupport from APEXes." am: 0b4f2532a7 am: 1fd25add88
am: 6588014f98

Change-Id: Ia619ae950238d18f404b30ece8480ee8d96b7a19
2019-02-12 17:13:29 -08:00
Dongwon Kang
0b4f2532a7 Merge "Exclude libvndksupport from APEXes." 2019-02-13 00:40:53 +00:00
Martin Stjernholm
bcb5ba75a5 Introduce a separate linker config section for native tests.
There are tests that require access to both system and vendor libraries,
like what the linker sets up when there is no matching config section.

Test: atest cameraservice_test libsurfaceflinger_unittest perfprofd_test \
  inputflinger_tests (no new failures, but 3 old ones)
Test: Internal test can load libandroid.so
Bug: 124127405
Bug: 123700170

Change-Id: I4f5cb2e09bdf1ae510259198c08c252b41249d94
2019-02-12 18:45:37 +00:00
Logan Chien
f7b46a2eb1 Fix APEX run-time ld.config.txt for ASAN targets
This commit fixes the search paths for vendor binaries in ASAN targets.

Test: Boot aosp_walleye-userdebug to home screen
Change-Id: Id87ceee3c43098bd453f6fae4f32ea62355f922b
2019-02-12 20:02:05 +08:00
Jiyong Park
9d851839ca Merge "apexd is started much earlier to create loopback devices" am: 34f3660e2c am: bc08d9d207
am: e5633c18a4

Change-Id: I97743dea1fa022844b7dcf5f33a42bc240e81708
2019-02-11 19:53:43 -08:00
Dongwon Kang
9dff515bdb Exclude libvndksupport from APEXes.
Test: build, boot, and checked mount paths.
Bug: 123948402
Change-Id: I687dde4f3d1a7971f68c7c536de5002dcdaecfa4
2019-02-11 11:14:11 -08:00
Jiyong Park
407b000fe4 apexd is started much earlier to create loopback devices
This change fixes the problem that apexd is delaying the entire boot
sequence while waiting for the loopback devices to be created. The delay
was as big as 50 ms per a loopback device.

With this change, apexd is started much earlier: from "on post-fs-data"
to "on init". When it is first started, it scans /system/apex to
determine the number of APEXes and creates that number of loopback
devices priori. Since then it enters into the binder loop.

When the data partition is mounted, init lets apexd to initiate the
apexd boot sequence where APEXes in /data is scanned, verified, and
activated. Since the creation of the loopback devices were requested far
before, it is very likely that dev nodes for the devices are ready at
this moment (even if not, this isn't a lose).

Bug: 123404717
Bug: 123772265
Test: compare boot times.
init_zygote_START_TIME_avg is improved from 2831ms to 2622ms on blueline
Change-Id: I12450cee44aa4d17a11def62261c2f82d3f2c718
2019-02-09 14:42:38 +09:00
Joel Fernandes
915a112b95 Merge changes from topic "memfd-support" am: 3133b695e0 am: b03663ebdf
am: e3b45e5c31

Change-Id: Id23b2e9a60e290c6401c9dc69a718e908fc19557
2019-02-07 06:31:53 -08:00
Joel Fernandes
3133b695e0 Merge changes from topic "memfd-support"
* changes:
  init: set the sys.use_memfd property to false
  Add support for memfd
2019-02-07 14:17:13 +00:00
Suren Baghdasaryan
3377db0fe8 Merge "libprocessgroup: Fix file mode parsing that requires octal values" am: 3a22225ac6 am: 71eee1e10c
am: 642b89df0f

Change-Id: I02f2d9d1a6fb2281405f034d8374ee9dde5b072b
2019-02-06 21:14:50 -08:00
Joel Fernandes
ae7f052328 init: set the sys.use_memfd property to false
The sys.use_memfd property is set by default to false in Android
to temporarily disable memfd, till vendor and apps are ready for it.
The main issue: either apps or vendor processes can directly make ashmem
IOCTLs on FDs they receive by assuming they are ashmem, without going
through libcutils. Such fds could have very well be originally created with
libcutils hence they could be memfd. Thus the IOCTLs will break.

Set default value of sys.use_memfd property to true once the issue is
resolved, so that the code can then self-detect if kernel support is present
on the device. The property can also set to true from adb shell, for
debugging.

Bug: 113362644

Change-Id: I0f572ef36cac2a58fe308ddb90bbeffbecdaed3b
Signed-off-by: Joel Fernandes <joelaf@google.com>
2019-02-07 00:40:22 +00:00
Suren Baghdasaryan
c760231891 libprocessgroup: Fix file mode parsing that requires octal values
JSON supports only decimal values and therefore file mode which should
use octal values has to be represented as strings. Fix the implicit
octal-to-decimal conversion and convert from string to octal in the code.

Bug: 111307099
Test: confirmed by verifying correct file permissions

Change-Id: I3ef9de0aea259f93bf74efeffca72d37d4740e15
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
2019-02-06 21:01:41 +00:00
Nikita Ioffe
575be95c44 Merge "apexd: Create top-level /data/apex folders at boot" am: 4fdc2ce2bb am: 2d3aeba767
am: d52ed3f08f

Change-Id: Iacd68739f2868b9f0cb77bfae6e7a12b6a9ef3bd
2019-02-06 09:24:40 -08:00
Treehugger Robot
4fdc2ce2bb Merge "apexd: Create top-level /data/apex folders at boot" 2019-02-06 16:58:23 +00:00
Nikita Ioffe
bc744dc98f apexd: Create top-level /data/apex folders at boot
- package manager needs to read from /data/apex/active, hence 0750
- both /data/apex/backups and /data/apex/sessions are internal to apexd,
  hence 0700

Bug: 123927167
Fixes: 123927167
Test: apex_e2e_tests, flashall -w & checked folders were created
Change-Id: I06c28328afe4945d082acd890401651bd37fcb20
2019-02-06 11:49:46 +00:00
Anton Hansson
68eff143c6 Merge "Fix asan paths in ld.config" am: a13b119c3d am: 1464eebca3
am: 4d3b18c515

Change-Id: I90ef79370e8e8a8d79991e7cdb779c5886b47045
2019-02-05 08:57:55 -08:00
Anton Hansson
a13b119c3d Merge "Fix asan paths in ld.config" 2019-02-05 16:28:05 +00:00
Anton Hansson
f59e72952e Merge "Remove product_services rules if it's merged away" am: b40f72d0ba am: 38d914132d
am: 04f3b9c9ea

Change-Id: Ib84cedf07300e8e12d2f7f0dbef0885fa98b8cac
2019-02-05 08:17:42 -08:00
Anton Hansson
b40f72d0ba Merge "Remove product_services rules if it's merged away" 2019-02-05 16:00:44 +00:00
Anton Hansson
2dae6f035e Fix asan paths in ld.config
As of Id663c5f284e3b4fc65ed8cb8c2da6bcf6542e034, the asan libs
are in the TARGET_COPY_OUT_X subpath of the /data/asan/ dir, rather
than just 'x' unconditionally.

Test: presubmit
Change-Id: I3a515791e237ad10703415ea532c7a089660d8e9
2019-02-05 12:36:58 +00:00
Anton Hansson
74e8d18a0b Remove product_services rules if it's merged away
TARGET_COPY_OUT_PRODUCT_SERVICES can be equal to
TARGET_COPY_OUT_PRODUCT, in which case the ld.config
lines containing PRODUCT_SERVICES are redundant.

Test: make and diff
Change-Id: I1dc24eb49d37f1ab0faa6eecdb0ccc974321f4ac
2019-02-05 12:27:43 +00:00
Martin Stjernholm
c1f712be3c Merge "Some tests are run from /data/local/tmp, and they need proper namespaces." am: 31fd0ba559 am: fc2c45cc62
am: 555ce45093

Change-Id: If075bf2245ac07c3848f169f02536df9a57b1ade
2019-02-05 03:20:15 -08:00
Martin Stjernholm
4a7138fe37 Some tests are run from /data/local/tmp, and they need proper namespaces.
Bug: 123700170
Test: atest cameraservice_test libcompositionengine_test librenderengine_test libsurfaceflinger_arc_test libsurfaceflinger_unittest perfprofd_test inputflinger_tests
Change-Id: Id3c628175c0037944ccc0d53a2d5327e688ef99e
2019-02-04 14:10:31 +00:00
Suren Baghdasaryan
82b72a5667 libprocessgroup: Add support for task profiles
Abstract usage of cgroups into task profiles that allows for changes
in cgroup hierarchy and version without affecting framework codebase.
Rework current processgroup and sched_policy API function implementations
to use task profiles instead of hardcoded paths and attributes.
Mount cgroups using information from cgroups.json rather than from init.rc

Exempt-From-Owner-Approval: already approved in internal master

Bug: 111307099
Test: builds, boots

Change-Id: If5532d6dc570add825cebd5b5148e00c7d688e32
Merged-In: If5532d6dc570add825cebd5b5148e00c7d688e32
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
2019-02-03 16:48:35 +00:00
Suren Baghdasaryan
503cf84f76 rootdir: Add cgroups and task profiles description files
Add cgroups.json and task_profiles.json file to be places under /etc/ on
the device to describe cgroups to be mounted and task profiles that
processes can request. This adds additional layer of abstraction between
what a process wants to achieve and how system implements that request.

Bug: 111307099
test: builds, boots

Change-Id: If92f011230ef5d24750e184bad776f30ba226f86
Merged-In: If92f011230ef5d24750e184bad776f30ba226f86
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
2019-02-02 21:28:05 -08:00
Suren Baghdasaryan
192aee782d libprocessgroup: Add support for task profiles
Abstract usage of cgroups into task profiles that allows for changes
in cgroup hierarchy and version without affecting framework codebase.
Rework current processgroup and sched_policy API function implementations
to use task profiles instead of hardcoded paths and attributes.
Mount cgroups using information from cgroups.json rather than from init.rc

Bug: 111307099
Test: builds, boots

Change-Id: If5532d6dc570add825cebd5b5148e00c7d688e32
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
2019-02-02 05:53:20 +00:00
Suren Baghdasaryan
b1db592226 rootdir: Add cgroups and task profiles description files
Add cgroups.json and task_profiles.json file to be places under /etc/ on
the device to describe cgroups to be mounted and task profiles that
processes can request. This adds additional layer of abstraction between
what a process wants to achieve and how system implements that request.

Bug: 111307099
test: builds, boots

Change-Id: If92f011230ef5d24750e184bad776f30ba226f86
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
2019-02-02 05:53:07 +00:00
Xiaoyong Zhou
4edb10b6b0 Merge "Loads fsverity keys" am: 59a0149939 am: 818546b32c
am: 0b764ce566

Change-Id: I2981a6a8162cbd79e161f1c3d02f6aa10aff7ede
2019-02-01 03:15:50 -08:00
Treehugger Robot
59a0149939 Merge "Loads fsverity keys" 2019-02-01 10:57:30 +00:00
Jesse Hall
5a470dbbf9 Merge "Search/permit /vendor/${LIB}/hw in sphal namespace" am: afc2ac106a am: e9e72c0a04
am: a63b03a3c2

Change-Id: I33021f16c204e282a0a3294b568a17196ea737f8
2019-01-31 22:09:16 -08:00
Jesse Hall
bdebda2bba Search/permit /vendor/${LIB}/hw in sphal namespace
The vulkan runtime loads drivers into the sphal namespace and relies
on them being in the sphal search path so that it doesn't have to
hardcode /vendor/${LIB}/hw.

These paths used to be allowed, but were removed by commit 2498e1b
because they were believed not to be required. Things didn't break
immediately because the vulkan runtime has a (supposed to be
temporary) fallback to hw_get_module, which loads from
/vendor/${LIB}/hw using absolute paths.

Bug: 123600276
Test: Launch Vulkan app on device with hw_get_module disabled
Change-Id: I07ac43bc9d2d877d8f427058b2d62c62d065c558
2019-01-31 18:13:03 -08:00
Martin Stjernholm
b024cac947 Merge "Make libnative*.so from the Runtime APEX libs accessible to vendor binaries." am: d664c9d952 am: 27b6f13af2
am: 601a7c37d1

Change-Id: Ia6ec7ce93391b0f63fe64ecae95bbadaf2b027d2
2019-01-31 13:51:23 -08:00
Xiaoyong Zhou
66e2127c47 Loads fsverity keys
This CL calls mini-keyctl to load fsverity keys.

Bug: 112038861
Test: cat /proc/keys
Change-Id: I3b7cf85c2f64116a56349c54ed5fa4e8cf14a730
2019-01-31 13:48:04 -08:00
Treehugger Robot
d664c9d952 Merge "Make libnative*.so from the Runtime APEX libs accessible to vendor binaries." 2019-01-31 21:15:28 +00:00
Pete Bentley
a358fbe73e Merge "Export libjavacore into the conscrypt linker namespace." am: 43c17b0c03 am: e29eba6ce1
am: a47bd41419

Change-Id: Ic6c52c442e379232d20f57dfc6eb45c658b4cd06
2019-01-31 11:47:49 -08:00
Martin Stjernholm
60b259b93a Make libnative*.so from the Runtime APEX libs accessible to vendor binaries.
Test: Flash and boot
Test: Boot test on internal tree
Bug: 119840313
Change-Id: I7c87519f94af2eeef9ebfd0d1e46e7bfca8df5c5
2019-01-31 17:03:16 +00:00
Pete Bentley
7b967bf6cf Export libjavacore into the conscrypt linker namespace.
Needed to allow access to AsynchronousCloseMonitor.

Bug: 123121395
Bug: 122881655
Test: atest CtsLibcoreOkHttpTestCases:com.squareup.okhttp.CallTest
Change-Id: I1c73a9beb7a083a61ed52e437d7377b2486a34f7
2019-01-31 11:06:41 +00:00
Jiyong Park
06a982691c Proper mount namespace configuration for bionic am: 6866041ff0 am: 43505e3f22
am: 9829a8c5aa

Change-Id: I624273bf06ad96dfee5def80dc16050c52a7a640
2019-01-30 21:29:34 -08:00
Jiyong Park
43505e3f22 Proper mount namespace configuration for bionic
am: 6866041ff0

Change-Id: I2bcb6f2d3e855f1c8b7c3df36c8c3c1ca9e88a4e
2019-01-30 20:59:10 -08:00
Treehugger Robot
a15f385821 Merge changes from topic "move_bionic_to_apex3"
* changes:
  Handle adb sync with Bionic under /bionic
  Proper mount namespace configuration for bionic
2019-01-31 04:46:49 +00:00
chenbruce
770bdd9ebe Merge "Add more comments for resolv apex." am: dd70df2e69 am: 38944bba7f
am: 8a3db3d4fb

Change-Id: I13200df139dfd08d6d93b579daf89a1cd53cc51b
2019-01-30 06:21:55 -08:00
Treehugger Robot
dd70df2e69 Merge "Add more comments for resolv apex." 2019-01-30 13:56:30 +00:00