Commit graph

2160 commits

Author SHA1 Message Date
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
Jiyong Park
6866041ff0 Proper mount namespace configuration for bionic
This CL fixes the design problem of the previous mechanism for providing
the bootstrap bionic and the runtime bionic to the same path.

Previously, bootstrap bionic was self-bind-mounted; i.e.
/system/bin/libc.so is bind-mounted to itself. And the runtime bionic
was bind-mounted on top of the bootstrap bionic. This has not only caused
problems like `adb sync` not working(b/122737045), but also is quite
difficult to understand due to the double-and-self mounting.

This is the new design:

Most importantly, these four are all distinct:
1) bootstrap bionic (/system/lib/bootstrap/libc.so)
2) runtime bionic (/apex/com.android.runtime/lib/bionic/libc.so)
3) mount point for 1) and 2) (/bionic/lib/libc.so)
4) symlink for 3) (/system/lib/libc.so -> /bionic/lib/libc.so)

Inside the mount namespace of the pre-apexd processes, 1) is
bind-mounted to 3). Likewise, inside the mount namespace of the
post-apexd processes, 2) is bind-mounted to 3). In other words, there is
no self-mount, and no double-mount.

Another change is that mount points are under /bionic and the legacy
paths become symlinks to the mount points. This is to make sure that
there is no bind mounts under /system, which is breaking some apps.

Finally, code for creating mount namespaces, mounting bionic, etc are
refactored to mount_namespace.cpp

Bug: 120266448
Bug: 123275379
Test: m, device boots, adb sync/push/pull works,
especially with following paths:
/bionic/lib64/libc.so
/bionic/bin/linker64
/system/lib64/bootstrap/libc.so
/system/bin/bootstrap/linker64
Change-Id: Icdfbdcc1efca540ac854d4df79e07ee61fca559f
2019-01-30 19:18:22 +09:00
chenbruce
d771740030 Add more comments for resolv apex.
Describe the link of resolv apex detailedly.

Bug: 119527674
Test: make; flash; lsof -p $(pidof netd)
Change-Id: I0f6038eb9950c6b862a257d0a6f35f19cb83a328
2019-01-30 17:03:09 +08:00
Martin Stjernholm
019d501145 Merge "Add libnativebridge.so link to vndk_lite linker config." am: 0b6d56e68b am: 8f13a7f400
am: 8da4c5243c

Change-Id: Icdcd1889df0031fc1541f623ca9539ede5287c56
2019-01-29 00:39:18 -08:00
Martin Stjernholm
626c7ca588 Add libnativebridge.so link to vndk_lite linker config.
Getting it back in line with the normal ld.config.txt. This was missed in
http://r.android.com/854740.

Test: Flash and boot on marlin
Bug: 119867084
Bug: 113373927
Change-Id: Ic7e482133250eda20ff2c94c27bdee30e015ab5c
2019-01-28 19:11:29 +00:00
chenbruce
919554343f Merge "Linker namespace configuration for the Resolv APEX." am: 2d3ef2a22f am: c114fa270d
am: 17cc1c07cc

Change-Id: I43bf5b8960003d5a012f87a349e680599bb8e792
2019-01-28 09:09:09 -08:00
Treehugger Robot
2d3ef2a22f Merge "Linker namespace configuration for the Resolv APEX." 2019-01-28 15:21:52 +00:00
Nicolas Geoffray
9fa65fc307 Merge "Make runtime namespace visible." am: 3ea7785ee9 am: 79c48f1a83
am: 5e3f606bf4

Change-Id: Id4dfdc3f7a7229ee8bfe315b9830432768fab467
2019-01-28 01:57:52 -08:00
Nicolas Geoffray
3ea7785ee9 Merge "Make runtime namespace visible." 2019-01-28 09:16:21 +00:00
chenbruce
aa87fd5f7d Linker namespace configuration for the Resolv APEX.
Support netd to load resolv Apex.
Switch namespaces when switching library paths between
/system and the APEX, so that internal library dependencies in both
locations are loaded from their own directory.

Bug: 119527674
Test: make; flash; lsof -p $(pidof netd)
Test: 1. manual test datacall/wifi work
      2. manual test tethering work
      3. system/netd/tests/runtests.sh
Change-Id: I3f69e85f2f529636f0ef29a2d9d71ad582c46dfb
2019-01-28 16:42:58 +08:00
Jiyong Park
6d7affb54f Merge "Remove permitted path for non-isolated namespace" am: ce17f19bc8 am: 8f6b3ed826
am: d7add90cd3

Change-Id: I08debb40a730cf511b1e02c21db46bd7dd29e305
2019-01-25 22:19:43 -08:00
Treehugger Robot
ce17f19bc8 Merge "Remove permitted path for non-isolated namespace" 2019-01-26 06:01:48 +00:00
Wei Wang
6379e920be Merge "Fix path for default prop" am: 3c2c9d8d43 am: 9155524429
am: e1c2e0d283

Change-Id: I467ca7aa10a9546d759f4232b56ef7eae1228f6f
2019-01-25 20:45:21 -08:00
Treehugger Robot
3c2c9d8d43 Merge "Fix path for default prop" 2019-01-26 04:22:37 +00:00
Jiyong Park
c84bbb0079 Remove permitted path for non-isolated namespace
No reason to have permitted path for non-isolated namespace.

Bug: 123303398
Test: N/A
Change-Id: Iaddb358efab7a2017c17f74ee53a9d711646b57c
2019-01-26 11:34:40 +09:00
Nicolas Geoffray
a9b4f2b66b Make runtime namespace visible.
So that ART can look it up by name.

Test: m && boots
Change-Id: Ib747a92e7decad2f9effe976a771a4eb0becc440
2019-01-26 01:06:43 +00:00
Dongwon Kang
61f1908142 Merge "Add mediametrics to ld.config.legacy.txt" am: 9819ade714 am: 1d80f81bd3
am: 22bfd8727c

Change-Id: I889f80ed5c9efb4e47cf2492f192b0f64df2223a
2019-01-25 14:10:43 -08:00
Dongwon Kang
9819ade714 Merge "Add mediametrics to ld.config.legacy.txt" 2019-01-25 21:40:33 +00:00
Neil Fuller
21c7e44754 Merge "Move APEX symlink creation to alternative module" am: e41489a9a1 am: 76ff6282e8
am: 8dd123cda9

Change-Id: I1728fe8f5688b4e60509b2ee7ede73bac11e4889
2019-01-25 11:09:36 -08:00
Neil Fuller
e41489a9a1 Merge "Move APEX symlink creation to alternative module" 2019-01-25 18:42:12 +00:00
Wei Wang
0d78bfbc09 Fix path for default prop
Bug: 123407630
Test: boot
Change-Id: Ia10ac6ad141e980abb07d7b37487f9de9ef64796
2019-01-25 10:30:47 -08:00