Commit Graph

2492 Commits

Author SHA1 Message Date
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
Dongwon Kang 0095e35fdd Add mediametrics to ld.config.legacy.txt
Test: TH
Bug: 119675363
Change-Id: Ic2fa2cf1931b40f0f476e8be797aa0db9a2582b7
2019-01-25 09:26:17 -08:00
Justin Yun 6f0d756bec Merge "vndk: workaround for building ld.config.<ver>.txt" am: c6792c3643 am: 9483b21143
am: d4628bec66

Change-Id: Ie58af30ae0864cb9a750282e3f201dd405b002e0
2019-01-25 08:15:37 -08:00
Justin Yun 5579bf14f6 vndk: workaround for building ld.config.<ver>.txt
ld.config.27.txt requires additional search paths for vendor
processes. Substitute '#VNDK27#' when building ld.config.<ver>.txt.
If <ver> equals 27, remove '#VNDK27#'. Otherwise, remove whole line
that starts with '#VNDK27#'.

Bug: 123209911
Bug: 123390078
Test: build ld.config.27.txt
Change-Id: Ie3a284ab39f17fa2f9a3285e080b2ba0da3663dc
2019-01-25 19:49:19 +09:00
Nicolas Geoffray 42ec8b24b5 Merge "Add APEX namespaces in ld.config.legacy.txt." am: 0e964ad1e8 am: dcdbd53a2b
am: 390f961d2a

Change-Id: Ia5f891d1981db2a12cab44541809f03d0787bdb5
2019-01-25 02:02:41 -08:00
Nicolas Geoffray 0e964ad1e8 Merge "Add APEX namespaces in ld.config.legacy.txt." 2019-01-25 09:44:20 +00:00
Ray Essick aba9905402 Merge "give media apex access to libmediametrics" am: 6a92b5c9c3 am: 8123770797
am: ea4d6d33ab

Change-Id: I04f534befefa7362ee977d515c8b823997a44720
2019-01-25 00:46:14 -08:00
Ray Essick baa0ce3785 give media apex access to libmediametrics
Bug: 112555455
Test: build, ctsmedia
Change-Id: I5455449533a6647fb2b4f617728ae693b2156fb9
2019-01-24 19:45:00 -08:00
Nicolas Geoffray ad12560306 Add APEX namespaces in ld.config.legacy.txt.
Used by chrome-os and potentially automotive.

Test: m
Bug: 123092860
Bug: 123303398
Change-Id: I21d166d5866da2049aa5383ce856df329332e2a8
2019-01-24 21:20:47 +00:00
Neil Fuller 48a92d715d Move APEX symlink creation to alternative module
Move APEX symlink creation to alternative module, one that
is targeted at /system not /. Also added comments to reflect
the tenuous connection between the module chosen and the
symlink creation.

Tested with:
rm -rf out/target/product/taimen/system \
  && make droid \
  && ls -l out/target/product/taimen/system/usr

Test: See above
Bug: 122985829
Bug: 123333111
Change-Id: I841dd42827ac2e082505ebf039f40fd394514e54
2019-01-24 13:01:38 +00:00
Jiyong Park 51460dba19 Merge "Add search paths for asan build" am: 6b6259a083 am: 8e206db77b
am: b00159449f

Change-Id: Ib9138ee5707a66226a04b704e804079b195da606
2019-01-24 04:46:34 -08:00
Treehugger Robot 6b6259a083 Merge "Add search paths for asan build" 2019-01-24 12:23:36 +00:00
Neil Fuller 254becca98 Merge "Add a symlink for the ICU .dat file" am: 792fd03955 am: 9ce21c1911
am: 88d1451e98

Change-Id: I72f26533024f4202b69cb8893288c38cc15dc95f
2019-01-24 02:36:05 -08:00
Neil Fuller 792fd03955 Merge "Add a symlink for the ICU .dat file" 2019-01-24 10:02:26 +00:00
Jiyong Park 59e355c441 Add search paths for asan build
Bug: 123292626
Test: aosp_cf_x86_pasan boots
Change-Id: Ifdc86285cbb2d7eb2b1e39983981e7b81aec59c9
2019-01-24 15:08:06 +09:00
Justin Yun 8d43e3b369 Merge "vndk: do not use prebuilt ld.config.<ver>.txt" am: e72308c6b1 am: 2ab4e5a353
am: e1ae4b40c5

Change-Id: Ida915f98b5b87b1c5ea31cb0d18d83f39d186f8b
2019-01-23 19:24:12 -08:00
Treehugger Robot e72308c6b1 Merge "vndk: do not use prebuilt ld.config.<ver>.txt" 2019-01-24 02:47:06 +00:00
Chris Wailes e45bda10e2 Added a new socket to Zygote init scripts.
This change adds new socket declarations to the init scripts for the
Zygote processes.  This socket is used for communication between the
System Server and the Blastula pool.

Bug: 68253328
Topic: zygote-prefork
Test: build image; flash device; launch apps
Change-Id: I5dbb87770b1a3100c6c122bb39ca854006bb0b0d
Merged-In: I5dbb87770b1a3100c6c122bb39ca854006bb0b0d
2019-01-23 13:37:27 -08:00
Martin Stjernholm ba01a4cc5b Merge changes from topic "runtime-ld-configs" am: d35c4ccc40 am: 00f2f79179
am: 432c4cd11f

Change-Id: Ia1a199a51a601e38180f44b18842b79b348d5bab
2019-01-23 10:00:01 -08:00
Martin Stjernholm d35c4ccc40 Merge changes from topic "runtime-ld-configs"
* changes:
  Make libdexfile_external.so accessible from binaries and libraries in /system.
  The runtime namespace needs to be visible since libopenjdk is loaded through dlopen().
2019-01-23 17:03:12 +00:00
Martin Stjernholm c02464ced9 Make libdexfile_external.so accessible from binaries and libraries in /system.
There are dependencies on libdexfile_external from some central libraries
that are widely used (b/123186083).

One example is vendor/bin/hw/android.hardware.media.omx@1.0-service, which
requries the link from "system" to "runtime" in the [vendor] section.

The direct dependants are libunwindstack and simpleperf, so it's enough to
link from namespaces containing /system/{lib,lib64,bin}.

Test: Flash and boot
Test: Flash and boot with Runtime APEX enabled (http://r.android.com/q/topic:art-move-libs-to-runtime-apex)
Bug: 123186083
Bug: 113373927
Change-Id: I081aa7392c875202acdaf1185c2ff28e17ac7e76
2019-01-23 15:45:59 +00:00
Neil Fuller f40156d69c Add a symlink for the ICU .dat file
The ICU .dat file was moved into the runtime APEX file
in commit b6d855f081c232309961f31c7c7c8a76abf79c3c.
There are some apps that know the old location and its
absence causes them to fail.

This change adds a symlink from the old directory to
the new directory. The ICU .dat file changes its name
with every ICU major release so this is simpler than
linking the file itself.

Bug: 119293618
Bug: 120853401
Bug: 122985829
Test: make droid / inspect output
Test: Confirm broken app works on an internal master build
Change-Id: I452dcb5e52975011c9ebd3db2caa621bbefedaf3
2019-01-23 12:03:48 +00:00
Justin Yun ebe4e2404b vndk: do not use prebuilt ld.config.<ver>.txt
Regardless of VNDK version, use template ld.config.txt instead of
using prebuilt ld.config.txt.

Bug: 74658756
Bug: 123209911
Test: PRODUCT_EXTRA_VNDK_VERSIONS=27 m -j vndk_snapshot_package
Change-Id: I0eb527b71e56c555079c524542508a093bf53111
2019-01-23 19:22:29 +09:00
Nicolas Geoffray 119e95b3b6 Merge "Conscrypt should only link against bionic." am: 1cab2c6bec am: 31e937429c
am: 06710823aa

Change-Id: Ic884d79df46b625e78f1b0bda03a368322bcef50
2019-01-23 01:30:49 -08:00
Martin Stjernholm 1fc8a55ba7 The runtime namespace needs to be visible since libopenjdk is loaded through dlopen().
Test: Flash and boot
Test: Flash and boot with Runtime APEX enabled (http://r.android.com/q/topic:art-move-libs-to-runtime-apex)
Bug: 113373927

Change-Id: I555ea988f56d1ee8e7488997a923207de044630f
2019-01-22 18:32:09 +00:00
Chris Wailes ca11579b6c Added a new socket to Zygote init scripts.
This change adds new socket declarations to the init scripts for the
Zygote processes.  This socket is used for communication between the
System Server and the Blastula pool.

Bug: 68253328
Change-Id: I5dbb87770b1a3100c6c122bb39ca854006bb0b0d
Topic: zygote-prefork
Test: build image; flash device; launch apps
2019-01-22 09:42:06 -08:00
Nicolas Geoffray 88bdf80d17 Conscrypt should only link against bionic.
Also remove useless code in native_loader.cpp

Test: m
Change-Id: Id176256cc36fa32d3f722e1443429cb9fbec05f2
2019-01-22 15:32:23 +00:00
Nicolas Geoffray abc1c8b905 Merge "Revert "Revert "Introduce conscrypt linker namespace.""" am: 4d30819263 am: af8e980ed1
am: fd6a05085c

Change-Id: Ie935c28c91dd88fc99b04fc556d2fcba71246fbd
2019-01-22 06:43:47 -08:00
Nicolas Geoffray 56bbf65ecf Merge "Add 'media' namespace in ld.config.txt" am: 7fa20386c3 am: f495d92287
am: bc60897aec

Change-Id: I9714df74f50dc6ebe72b3cc564ef7d2de41577e0
2019-01-22 01:34:15 -08:00
Nicolas Geoffray 1cd3d41313 Merge "Delay zygote startup until after the Runtime APEX has been mounted." am: 876cd75748 am: ce0abc4d93
am: 3639043906

Change-Id: Ifb657a5725de5092d1202b32d4e0288433882726
2019-01-22 01:18:39 -08:00
Nicolas Geoffray 890e3bf4e7 Revert "Revert "Introduce conscrypt linker namespace.""
This reverts commit 5701a47685.

Bug: 123185917
Test: CtsJdwpTestCases
Test: android.signature.cts.api.killswitch_debug_class

Reason for revert: Fixed CtsJdwpTestCases and KillSwitchTest.

Change-Id: I6a074038a4e974875d68ca6a371f6a87ad48bce9
2019-01-22 09:15:22 +00:00
Nicolas Geoffray 7fa20386c3 Merge "Add 'media' namespace in ld.config.txt" 2019-01-22 08:51:10 +00:00
Dongwon Kang c19263bcd0 Add 'media' namespace in ld.config.txt
Test: build & boot & atest MediaPlayer2Test
Bug: 112766913, Bug: 123185917
Change-Id: I6bccc5d767c108af5e71ad5cf64a1d4d48227761
2019-01-21 11:23:04 -08:00
Nicolas Geoffray 97f0c48712 Merge "Revert "Introduce conscrypt linker namespace."" am: e606e00042 am: 3326da5bb7
am: 9ea6ac833b

Change-Id: I50c9696c6049a4183da388dd659fe87e88982a4d
2019-01-21 09:44:38 -08:00
Nicolas Geoffray 5701a47685 Revert "Introduce conscrypt linker namespace."
This reverts commit 67a09e5791.
Exempt-From-Owner-Approval: Fixes P0 failures.

Bug: 123185917


Reason for revert: media namespace needs to be introduced.

Change-Id: I0c28798a3143c1e627278c3a908207e670171416
2019-01-21 17:23:31 +00:00
Nicolas Geoffray 95cb5d8303 Merge "Introduce conscrypt linker namespace." am: 8922048185 am: 70df103b96
am: a3370d6bd4

Change-Id: I87d60938dc7c32865a6ea8aad4dd3514450e14c5
2019-01-21 04:21:41 -08:00
Nicolas Geoffray 67a09e5791 Introduce conscrypt linker namespace.
And have the linker translate a java library path from an apex
to a linker namespace.

Bug: 122874359
Test: m, boots, gtest, run-test, CtsJdwpTests
Change-Id: I216c3509c45589d28acdac068aec53877aeb104a
Exempt-From-Owner-Approval: Carrying Jiyong's +2
2019-01-21 12:05:13 +00:00
Martin Stjernholm 440efa5796 Delay zygote startup until after the Runtime APEX has been mounted.
It depends on libdexfile_external, libnative{bridge,helper,loader} and
libart(d), which are provided by the Runtime APEX.

Test: flash & boot
Test: atest CtsJdwpTestCases
Bug: 113373927
Change-Id: I0df99f444e892c47a5f06bd1bcf5d184defb4517
2019-01-21 10:55:31 +00:00
Dan Willemsen 621cff03f7 Merge "Remove LOCAL_MODULE_TAGS := debug" am: 763bac7826 am: 67d1b381f9
am: 151bc1c2de

Change-Id: Ic9b215432453476130a0d45b4e4387c7159de9de
2019-01-19 00:14:30 -08:00
Dan Willemsen 763bac7826 Merge "Remove LOCAL_MODULE_TAGS := debug" 2019-01-19 07:39:56 +00:00
Sudheer Shanka b8b6df2ae9 Merge "Reland "Create new mount directory /mnt/runtime/full."" am: c39ed35d82 am: 5e4c507abd
am: ec21712d16

Change-Id: I59446c2d66b016119579b4c2b17e65997d4a3f10
2019-01-18 17:46:58 -08:00
Sudheer Shanka c39ed35d82 Merge "Reland "Create new mount directory /mnt/runtime/full."" 2019-01-19 00:24:23 +00:00
Sudheer Shanka 81c687dff8 Reland "Create new mount directory /mnt/runtime/full."
This will be used for system internals to access
secondary volumes without having to bypass sdcardfs.

This reverts commit 54b8844b13

Bug: 121277410
Test: manual
Change-Id: Id5b995dc5899b5999f1dea662ba1c3ee475a0e46
2019-01-19 00:21:10 +00:00
Dan Willemsen ceaf4e76e5 Remove LOCAL_MODULE_TAGS := debug
It's replaced with entries in PRODUCT_PACKAGES_DEBUG in
build/make/target/product/base_system.mk

Test: treehugger
Change-Id: I4dc69c34ddc2c494fc74bc4afee6efa240c9b0d3
2019-01-18 15:16:50 -08:00
Srinivas Paladugu 6fabbecd97 Merge "Allow write access to system_server on zram sysfs" 2019-01-18 23:00:32 +00:00
Jiyong Park d7daac2c75 Merge changes from topic "revert_move_bionic_to_apex" am: e0c7a8bbdd am: 555b7ead70
am: e9f4339db8

Change-Id: Ic4054f6ea0845ff6576b0ada314e01e7b0eb7299
2019-01-18 02:41:06 -08:00
Jiyong Park 8b73dfc0a4 Revert "Bionic libs and the dynamic linker are bind mounted"
This reverts commit 2599088ff6.
Reason: Breaks some 3p apps.

Bug: 122920047
Test: run the app, login.
Change-Id: Idea332b1f91e9d2ac6ebd3879da7820c8ba2284f
2019-01-18 12:30:51 +09:00
Srinivas Paladugu 3a63283aff Allow write access to system_server on zram sysfs
System server needs to be able to write to idle and
writeback nodes in the zram sysfs directory.

Bug: 117682284
Bug: 122674343
Test: Test writeback on go ref device
Change-Id: I1cd663b73a7ebb255fe7e459601e720961bbd69e
2019-01-16 20:54:58 -08:00
Sudheer Shanka 285767556c Merge "Revert "Create new mount directory /mnt/runtime/full."" am: 3daecf5977 am: 9ced0aae27
am: 7b4f851966

Change-Id: I4db125c3daeda219d41b47f163851f5a70acee1c
2019-01-16 18:24:34 -08:00
Treehugger Robot 3daecf5977 Merge "Revert "Create new mount directory /mnt/runtime/full."" 2019-01-17 01:04:50 +00:00
Sudheer Shanka 54b8844b13 Revert "Create new mount directory /mnt/runtime/full."
This reverts commit 987e732fe8.

Reason for revert: 122957837

Change-Id: Ib1451d46a05f34eb52fdc13143529913df5ec001
2019-01-16 19:52:29 +00:00
Sudheer Shanka e08289d2cf Merge "Create new mount directory /mnt/runtime/full." am: 598a4bcb13 am: 051a89009c
am: c8de4932f7

Change-Id: I8f1b857d6af5bcb4a9c479eca65301090abbc2df
2019-01-16 09:12:12 -08:00
Sudheer Shanka 598a4bcb13 Merge "Create new mount directory /mnt/runtime/full." 2019-01-16 16:34:21 +00:00
Jiyong Park 509819b1ee Merge "Load build sysprops early" am: 4fc83b1885 am: 14471cbe5d
am: cf05b13182

Change-Id: I595b3e624676e691d290b2b657efe8dad996d1c8
2019-01-15 12:56:01 -08:00
Jiyong Park 3b316ee201 Load build sysprops early
*/build.prop files are now loaded much earlier than before; from 'on
post-fs' to the time when the property service is started which is
before init starts the action loop.

This ensures that all processes that are launched by init have a
consistent view of system properties. Previously, the processes that
started before 'on post-fs' were initially with the small number of
sysprops loaded from */default.prop and then suddenly get additional
sysprops from */build.prop while they are executing.

Bug: 122714998
Test: device boots

Change-Id: Ic07528421dfbe8d4f43673cea41175d33cfbf298
2019-01-15 22:40:49 +09:00
Sudheer Shanka 987e732fe8 Create new mount directory /mnt/runtime/full.
This will be used for system internals to access
secondary volumes without having to bypass sdcardfs.

Bug: 121277410
Test: manual
Change-Id: I6546fa8df419157b3c2adcf5ff3faa4db4458cff
2019-01-11 11:32:34 -08:00
Jiyong Park bd653fa045 Bionic libs are located at /system/lib am: 3fa8415b37 am: 1c4851f223
am: 556a4a7d60

Change-Id: Ibefcda2ceb31a1707af8faf4302d0a84015e5229
2019-01-11 09:53:48 -08:00
Jiyong Park 9189474580 Bionic libs and the dynamic linker are bind mounted am: 2599088ff6 am: 82a0d5be74
am: 90aae8d6c7

Change-Id: I6302778662b0b38362496c4f935f884e18cbb75f
2019-01-11 09:53:08 -08:00
Jiyong Park 3fa8415b37 Bionic libs are located at /system/lib
Bionic libs, regardless of whether they are bootstrap ones or from the
runtime APEX, are available via /system/lib. Since /system/lib is in the
search paths of the default(platform) namespace, there is no need to
list the bionic libs to the namespace link to the runtime namespace.

Bug: 120266448
Test: m; device boots
Test: atest CtsJniTestCases CtsCompilationTestCases CtsBionicTestCases
all passing except for following tests that are also failing at ToT
dl#exec_linker
dl#exec_linker_load_from_zip
dl#exec_linker_load_self
dl#exec_linker_load_file

Change-Id: Ib67acd4f384b2f0e70b5fe8ec6b45a5506367223
2019-01-11 15:17:04 +09:00
Jiyong Park 2599088ff6 Bionic libs and the dynamic linker are bind mounted
This change makes the bionic libs and the dynamic linker from the
runtime APEX (com.android.runtime) available to all processes started
after apexd finishes activating APEXes.

Specifically, the device has two sets of bionic libs and the dynamic
linker: one in the system partition for pre-apexd processes and another
in the runtime APEX for post-apexd processes. The former is referred as
the 'bootstrap' bionic and are located at
/system/lib/{libc|libdl|libm}.so and /system/bin/linker. The latter is
referred as the 'runtime' bionic and are located at
/apex/com.android.runtime/lib/bionic/{libc|libdl|libm}.so and
/apex/com.android.runtime/bin/linker.

Although the two sets are located in different directories, at runtime,
they are accessed via the same path: /system/lib/* and
/system/bin/linker ... for both pre/post-apexd processes. This is done
by bind-mounting the bootstrap or the runtime bionic to the same path.
Keeping the same path is necessary because there are many modules and
apps that explicitly or implicitly depend on the fact that bionic libs
are located in /system/lib and are loaded into the default linker
namespace (which has /system/lib in its search paths).

Before the apexd is started, init executes a built-in action
'prepare_bootstrap_bionic' that bind-mounts the bootstrap bionic to the
mount points. Processes started during this time are provided with the
bootstrap bionic. Then after the apexd is finished, init executes
another built-in action 'setup_runtime_bionic' which again mounts the
runtime bionic to the same mount points, thus hiding the previous mounts
that target the bootstrap bionic. The mounting of the runtime bionic
(which is only for post-apexd processes) is hidden from pre-apexd
processes by changing propagation type of the mount points to 'private'
and execute the pre-apexd processes with a new mount namespace using
unshare(2). If a pre-apexd process crashes and re-launched after the
apexd is on, the process still gets the bootstrap bionic by unmounting
the runtime bionic which effectively un-hides the previous bind-mounts
targeting the bootstrap bionic.

Bug: 120266448
Test: device boots
Test: cat /proc/`pidof zygote`/mountinfo shows that
/system/lib/{libc|libdl|libm}.so and /system/bin/linker are from the
runtime APEX
Test: cat /proc/'pidof vold`/mountinfo shows that the same mount points
are from system partition.

Change-Id: I7ca67755dc0656c0f0c834ba94bf23ba9b1aca68
2019-01-11 15:17:04 +09:00
Narayan Kamath aa267b6164 Merge "Allow the system user to read apex_data_file." am: 6cc741ec9a am: 54c3f13487
am: 1ccd0e89d8

Change-Id: Ia7b26ee4f953ae17e7e68a5c0e07ac521ac2ded1
2019-01-08 04:13:12 -08:00
Narayan Kamath 6cc741ec9a Merge "Allow the system user to read apex_data_file." 2019-01-08 11:50:12 +00:00
Tri Vo befd2e7bfa Merge "ueventd.rc: Move device-specific entries to /vendor/ueventd.rc." am: 7061c88de1 am: 4c770625f9
am: 200a1ad164

Change-Id: I3f5c4945af7e5d9539180df9a82de195bad73d00
2019-01-07 14:35:44 -08:00
Tri Vo 7061c88de1 Merge "ueventd.rc: Move device-specific entries to /vendor/ueventd.rc." 2019-01-07 22:09:44 +00:00
Narayan Kamath 8464d79877 Allow the system user to read apex_data_file.
For consistency with APKs, signature verification is performed
in the system_server. This includes checking that the signature of
an updated install matches the signature of the active package that
it updates. For this, it requires search access to /data/apex and
read access to the files under that directory.

Test: m
Change-Id: I8795b26b9a40ba7126c2a548fbec82ff322a1453
2019-01-07 19:15:10 +00:00
Logan Chien b5d6b3494a Merge "Fix runtime namespace links for vendor processes" am: c2aad281fc am: e1324405a4
am: 67b1d7d834

Change-Id: Iaedfcf926bf062af57955fd93c9746138dc13774
2019-01-06 21:42:00 -08:00
Logan Chien c2aad281fc Merge "Fix runtime namespace links for vendor processes" 2019-01-07 05:19:49 +00:00
Logan Chien c0bb441b15 Fix runtime namespace links for vendor processes
This commit removes the soname filter from the namespace fallback link
from `runtime` to `system` in the vendor process.  This fixes the
problem that vendor process might fail to load `libnetd_client.so`,
`libc_malloc_debug.so`, `libc_malloc_debug_leak.so`, and other libc
dependencies.

This commit also removes the namespace fallback link from `runtime` to
`default` in the vendor process.  According to the comments in [1], the
original intention was to allow the access to `/system/${LIB}` not
`/vendor/${LIB}`.  Furthermore, `com.android.runtime` suppose to work
without libraries from `/vendor/${LIB}`.

[1] https://android-review.googlesource.com/c/858456

Bug: 119867084
Bug: 122025516  # Motivation of this commit
Test: Executables under vendor partition are not blocked by
`libnetd_client.so` not found error.

Change-Id: I682baada9d755910832474bb3d8307cd49c21ece
2019-01-07 11:14:34 +08:00
Tri Vo 4f408746cf ueventd.rc: Move device-specific entries to /vendor/ueventd.rc.
Bug: 110962171
Test: boot sailfish, taimen, blueline
Change-Id: If740c2bd85409c9a057cff68f8bfd870cad35b37
2019-01-06 16:15:07 -08:00
Ryan Haining 9a0804475d Merge "Allow dlopen()ing libraries from the netd APEX on pasan build" am: 0c2d673fcc am: 20f1be47d3
am: 137d547e40

Change-Id: Ibc5647f852ff5793df36bb971bf40dd1128d6ad8
2018-12-28 13:43:59 -08:00
Ken Chen 30200f1e24 Allow dlopen()ing libraries from the netd APEX on pasan build
This is a workaround to allow us to use libnetd_resolv.so from
the resolver APEX before b/120661824 is fixed.

We cannot put the APEX into the search path due to b/120661824,
but we can put it into the permitted path,

Bug: b/122073006
Test: builds, boots
Test: system/netd/tests/runtests.sh
Change-Id: If6f13ba9dc249d019b820a7c37cf6d4cdd8d0a7d
2018-12-28 17:20:01 +08:00
Martin Stjernholm e7268de040 Merge "Revert^2 "Linker namespace configuration for the Runtime APEX."" am: f679c58787 am: 587ebc4bfb
am: 26b91d0eb4

Change-Id: I9705f4a9d323ba8d0cd5485b2a253b3029a47677
2018-12-21 05:53:45 -08:00
Martin Stjernholm f679c58787 Merge "Revert^2 "Linker namespace configuration for the Runtime APEX."" 2018-12-21 13:30:22 +00:00
Martin Stjernholm e71d91e729 Revert^2 "Linker namespace configuration for the Runtime APEX."
This reverts commit a0d9f2fd6c.

Original change: Needs to support e.g. app_process in "default" ->
libnativehelper in "runtime" -> platform libs in "default" -> libc etc in "runtime".

Always make sure to 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. E.g. libc++ and libbase live
in both places, and their dependents must always load the version they were
compiled with.

This CL also adds a temporary workaround to not break hwasan builds
(b/121038155).

Bug: 119867084
Bug: 113373927
Bug: 121038155
Change-Id: I58d09ed091dd82b2162c4a0b51555174d9322e0e
Test: Flash and reboot device
Test: Remount / read-write, then on device: rm -f system/lib{,64}/lib{c,m,dl}.so; system/bin/dex2oat -h; stop && start
Test: mmma bionic/tests/ && adb root && adb shell rm -rf /data/nativetest\* && adb push out/target/product/taimen/data/nativetest* /data/ && adb shell /data/nativetest64/bionic-unit-tests/bionic-unit-tests && adb shell /data/nativetest/bionic-unit-tests/bionic-unit-tests
Test: cts-tradefed run commandAndExit cts-dev -m CtsJniTestCases
Test: cts-tradefed run commandAndExit cts-dev -m CtsCompilationTestCases
Test: cts-tradefed run commandAndExit cts-dev -m CtsBionicTestCases (8 failures remain unchanged by this CL)
Test: Patch internal; lunch taimen_hwasan-userdebug && m SANITIZE_TARGET=hwaddress && vendor/google/tools/flashall -w && adb shell /vendor/bin/sh -c ls
2018-12-21 11:15:52 +00:00
Dario Freni 7e4dbeb34c Merge "Create staging directory for Staging Manager." am: d1ff11b94a am: 3cde91620f
am: 8ae96c92ef

Change-Id: I60ec39059b60734d1136368eb8fe7c2b24b5df67
2018-12-20 09:35:10 -08:00
Dario Freni 22cdf96697 Create staging directory for Staging Manager.
Staging Manager is a high-level service (yet to be committed) that
manages multi-package sessions requiring a reboot to be applied, for
example if one of the packages is an APEX file. This directory will
contain the session data and the temporary copies of the packages.

Bug: 118865310
Test: N/A
Change-Id: I8aceefab849cf5af17086cb6868b801d1c2615e9
2018-12-20 15:24:18 +00:00
Lorenzo Colitti 3618926adc Merge "Allow dlopen()ing libraries from the netd APEX." am: 95a8d0d0c7 am: e93f1bba90
am: 934b08a013

Change-Id: Ief8c006c230faa1fd6758754a98ba1a39f4bc640
2018-12-19 06:44:16 -08:00
Lorenzo Colitti 472c900f6b Allow dlopen()ing libraries from the netd APEX.
This is a workaround to allow us to use libnetd_resolv.so from
the resolver APEX before b/120661824 is fixed.

We cannot put the APEX into the search path due to b/120661824,
but we can put it into the permitted path,

Test: builds, boots
Test: system/netd/tests/runtests.sh
Test: atest FrameworksNetTests android.net.cts.ConnectivityManagerTest
Change-Id: Ia68df860b7edc92180284f62736146e6029d7655
2018-12-19 16:52:06 +09:00
Andreas Gampe 434e7d6389 Merge "Revert "Linker namespace configuration for the Runtime APEX."" am: ece144857b am: 3138ddb181
am: 3438ac260a

Change-Id: I72166807c00e0d0719519516a484481989a872eb
2018-12-17 15:19:43 -08:00
Treehugger Robot ece144857b Merge "Revert "Linker namespace configuration for the Runtime APEX."" 2018-12-17 22:55:15 +00:00
Tri Vo 54ed2bfe9e Merge "Reland "Remove obsolete ueventd.rc rules."" am: 80e191af8b am: fbcd5eacd6
am: f051cf7c68

Change-Id: I878464dc0f0e640c16af9c73b000370420ff4c00
2018-12-17 14:38:43 -08:00
Tri Vo 80e191af8b Merge "Reland "Remove obsolete ueventd.rc rules."" 2018-12-17 22:16:36 +00:00
Andreas Gampe a0d9f2fd6c Revert "Linker namespace configuration for the Runtime APEX."
This reverts commit f1038896ad.

Reason for revert: Breaks CTS

Bug: 119867084
Bug: 113373927
Bug: 121149887
Change-Id: I44b3e708ff1c87520bcfb64f509bf3ae6871f7bc
2018-12-17 21:22:53 +00:00
Neil Fuller 2ebf239807 Merge "Track movement of tz files into the runtime module" am: 7eabef54ee am: 70d9e5f320
am: 1297a544d9

Change-Id: Ieb5e88cba216cf66f5f3e9ae9c92aea314b8e70e
2018-12-15 04:06:22 -08:00
Neil Fuller 7eabef54ee Merge "Track movement of tz files into the runtime module" 2018-12-15 11:25:52 +00:00
Tri Vo 16cdffe8cb Reland "Remove obsolete ueventd.rc rules."
/dev/* nodes referenced in the removed rules are not present on Pixel
devices, i.e. android platform doesn't depend on these nodes. If a
device relies on one of these rules, the rule should be added to the
device-specific ueventd.rc.

v1->v2:
Added back usb-specific rules
/dev/bus/usb/*            0660   root       usb
/dev/mtp_usb              0660   root       mtp

Bug: 110962171
Test: boot walleye
Test: init_tests
Test: wired headset plays audio
Test: USB PTP works between 2 devices
Change-Id: Ic2d77806a01c8918b2485fb5f0bd9b670b01d1df
2018-12-14 14:57:54 -08:00
Neil Fuller c71a48ba55 Track movement of tz files into the runtime module
The main "base" copy of time zone data is now found in
the runtime module. The system files will likely be deleted.

Test: CTS: run cts -m CtsHostTzDataTests
Test: PTS (cp'd to internal master): run pts -m PtsTimeZoneTestCases
Bug: 116191025
Bug: 119293618
Bug: 113373927
Test: build / boot with logcat inspection
Change-Id: I8dc8ff0d17aac124262d9c7c54abce61d97397e5
2018-12-14 15:32:39 +00:00
Martin Stjernholm 581c9859ee Merge "Linker namespace configuration for the Runtime APEX." am: bd660496c8 am: 49b81b9332
am: ecc3a35e04

Change-Id: I304695b1444d704a759bdd1dd834c7b90d69392a
2018-12-12 08:07:52 -08:00
Martin Stjernholm f1038896ad Linker namespace configuration for the Runtime APEX.
Needs to support e.g. app_process in "default" -> libnativehelper in
"runtime" -> platform libs in "default" -> libc etc in "runtime".

Always make sure to 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. E.g. libc++ and libbase live
in both places, and their dependents must always load the version they were
compiled with.

Bug: 119867084,113373927
Test: Flash and reboot device
Test: Remount / read-write, then on device: rm -f system/lib{,64}/lib{c,m,dl}.so; system/bin/dex2oat -h; stop && start
Test: mmma bionic/tests/ && adb root && adb shell rm -rf /data/nativetest\* && adb push out/target/product/taimen/data/nativetest* /data/ && adb shell /data/nativetest64/bionic-unit-tests/bionic-unit-tests && adb shell /data/nativetest/bionic-unit-tests/bionic-unit-tests
Test: cts-tradefed run commandAndExit cts -m CtsJniTestCases
Change-Id: I6c4fc2f1abea1fb8851546e258ffaaa4ef6fe7d0
2018-12-12 11:44:07 +00:00
Andy Hung c97fbfb12d Merge "Revert "Remove obsolete ueventd.rc rules."" am: 36b5dd845c am: 5759ca8da2
am: 6e5643c14c

Change-Id: I0916de07e01f3bd30203335274137fc1b7134125
2018-12-11 10:12:24 -08:00
Treehugger Robot 36b5dd845c Merge "Revert "Remove obsolete ueventd.rc rules."" 2018-12-11 17:47:11 +00:00
Roland Levillain bf95ac9c7b Merge "Revert "Add Android Runtime APEX lib directories to the system linker configuration."" am: c400ced93d am: 1e08eabf7c
am: c3e04a86dc

Change-Id: Icb8d669f76fa702cc93216f8828f39641a24b613
2018-12-11 06:12:06 -08:00
Treehugger Robot c400ced93d Merge "Revert "Add Android Runtime APEX lib directories to the system linker configuration."" 2018-12-11 13:41:10 +00:00
Roland Levillain 9b79db5ebf Revert "Add Android Runtime APEX lib directories to the system linker configuration."
This reverts commit 2f56b1fff8.

Reason for revert: Breaks bionic-unit-tests's dlfcn.dladdr_libc
and x86 CtsJniTestCases' JniStaticTest.test_linker_namespaces.

Bug: 113373927
Bug: 120661824
Change-Id: I9b34bcb240a42bf99c6d8b58db4b18a4f6d36961
2018-12-11 10:20:33 +00:00
Andy Hung 3fddf92465 Revert "Remove obsolete ueventd.rc rules."
This reverts commit d3b0b2708b.

Reason for revert: Regression in USB audio handling

Test: USB audio playback on Crosshatch
Bug: 120795549
Change-Id: Ibd05cd9b419f3e7988ce24a45f800d4bfe91ef6a
2018-12-11 04:14:30 +00:00
Roland Levillain 5d0c8664b4 Merge "Add Android Runtime APEX lib directories to the system linker configuration." am: d768a0c13d am: 4bcae06f9b
am: 499bab62a6

Change-Id: Ibf3dfed292685475e04b33b59b76ae08042da2c3
2018-12-10 07:36:16 -08:00
Roland Levillain d768a0c13d Merge "Add Android Runtime APEX lib directories to the system linker configuration." 2018-12-10 15:04:29 +00:00
Andreas Gampe 3269748028 Merge "Revert "Use apex/com.android.resolv/lib64/libned_resolv.so by default"" am: 40f96aff36 am: aac7fa53d4
am: 432a55e432

Change-Id: Ic2c03f96a0a19c361748404146544ea3e36d55dc
2018-12-07 20:51:49 -08:00
Treehugger Robot 40f96aff36 Merge "Revert "Use apex/com.android.resolv/lib64/libned_resolv.so by default"" 2018-12-08 04:36:35 +00:00
Andreas Gampe d831773ec6 Revert "Use apex/com.android.resolv/lib64/libned_resolv.so by default"
This reverts commit eb4384c2a0.

Reason for revert: Breaks tests

Bug: 119527674
Bug: 120661824
Change-Id: I2f452f25e7b4e070e766b84cdefdf1800244b150
Test: N/A
2018-12-07 21:46:06 +00:00
Tri Vo e506d78b83 Merge "Remove obsolete ueventd.rc rules." am: dc978cc15b am: f3f10cd4e3
am: 9a24da464f

Change-Id: I4780474daf2aa664f745b277fb576979b39288b4
2018-12-07 10:16:50 -08:00
Tri Vo dc978cc15b Merge "Remove obsolete ueventd.rc rules." 2018-12-07 17:53:00 +00:00
Tom Cherry b236eac292 Merge "ueventd: allow configuring SO_RCVBUF(FORCE) for the ueventd socket" am: a64e9e843d am: 7950973b79
am: dac0a6e1c0

Change-Id: I00eb672cc8babac826ce1a4783bb0bcbb55ab424
2018-12-07 08:50:27 -08:00
Tom Cherry a64e9e843d Merge "ueventd: allow configuring SO_RCVBUF(FORCE) for the ueventd socket" 2018-12-07 16:27:20 +00:00
chenbruce 4980e769d3 Merge "Use apex/com.android.resolv/lib64/libned_resolv.so by default" am: 87e10ba280 am: 518bd1235c
am: 99c85bc053

Change-Id: Ibc074d4d5b8dc5efe51490d78dd498f163b75733
2018-12-06 23:27:54 -08:00
Treehugger Robot 87e10ba280 Merge "Use apex/com.android.resolv/lib64/libned_resolv.so by default" 2018-12-07 06:58:51 +00:00
Tri Vo d3b0b2708b Remove obsolete ueventd.rc rules.
/dev/* nodes referenced in the removed rules are not present on Pixel
devices, i.e. android platform doesn't depend on these nodes. If a
device relies on one of these rules, the rule should be added to the
device-specific ueventd.rc.

Bug: 110962171
Test: boot walleye
Test: init_tests
Change-Id: I3262475d4ff22386e8da0436efaf98b208e4fa1c
2018-12-06 16:07:20 -08:00
Tom Cherry e29101077c ueventd: allow configuring SO_RCVBUF(FORCE) for the ueventd socket
Some configurations won't allow ueventd to have CAP_NET_ADMIN, so the
new default size of 16M is not possible for those.  Those
configurations also won't need such a large buffer size, so this
change allows devices to customize the SO_RCVBUF(FORCE) size for the
uevent socket.

This is done by adding the line 'uevent_socket_rcvbuf_size <size>' to
your device's ueventd.rc file.  <size> is specified as a byte count,
for example '16M' is 16MiB.

The last parsed uevent_socket_rcvbuf_size line is the one that is
used.

Bug: 120485624
Test: boot sailfish
Test: ueventd unit tests
Change-Id: If8123b92ca8a9b089ad50318caada2f21bc94707
2018-12-06 13:35:52 -08:00
Tom Cherry 5af4236147 Merge "Fix /init -> /system/bin/init symlink creation race" am: 50f5246352 am: 24d37b9265
am: 7efd2770a0

Change-Id: I4fdbfba827bc95908fcf16133800e89f0c9f576f
2018-12-05 19:41:18 -08:00
Tom Cherry c12e205ec5 Fix /init -> /system/bin/init symlink creation race
A symlink for TARGET_ROOT_OUT as a post install command of a package
that is also installed to TARGET_ROOT_OUT.  We hijack init.rc which
satisfies this requirement for this symlink.

Bug: 120402274
Bug: 120460755
Bug: 120509320
Bug: 120554662
Test: symlink is created
Test: make bootimage && ls -la $OUT/root/init
Change-Id: I6f1ac06ef152c36d7d7db4618d49a008338da39b
2018-12-05 23:42:07 +00:00
chenbruce eb4384c2a0 Use apex/com.android.resolv/lib64/libned_resolv.so by default
netd will use apex/com.android.resolv/lib64/libned_resolv.so to replace
system/lib64/libned_resolv.so.
note:Without disabling selinux, we setenv LD_LIBRARY_PATH in netd.rc but
netd couldn't use libnetd_resolv.so under com.android.resolv/lib64 because
LD_LIBRARY_PATH is ignored when AT_SECURE is on. Directly add path to the
libnetd_resolv apex to /system/etc/ld.config.txt for temporarily.

Bug: 119527674
Test: make; flash; lsof -p $(pidof netd)
Change-Id: I011d2da625151bf43c10497bb84c15f3d8e6ad33
2018-12-05 17:25:24 +08:00
Neil Fuller 66d5f13de9 Merge "Add ANDROID_RUNTIME_ROOT environment variable" am: 87aa446d48 am: 8417fced93
am: 9fc9204dc3

Change-Id: I3e6c53f17968b32badf255f40c496ddee2089bb7
2018-12-04 05:35:09 -08:00
Neil Fuller 87aa446d48 Merge "Add ANDROID_RUNTIME_ROOT environment variable" 2018-12-04 12:39:16 +00:00
changho.shin bc511b421f Merge "Support product partition for non-treblized devices" am: 79bd67bb2f am: 7a6df0832a
am: b1c845d003

Change-Id: I1c00c808f75ed9234f517a52288413673ed4e36b
2018-11-30 01:06:35 -08:00
Neil Fuller d6e7f88e92 Add ANDROID_RUNTIME_ROOT environment variable
This change adds an ANDROID_RUNTIME_ROOT environment variable
to indicate the root of the Android runtime. This can be
used in place of ANDROID_SYSTEM to locate files when they
move inside the runtime APEX.

Bug: 119935277
Test: build / boot
Change-Id: Ic3b1ae3e3c98eea7d7c59e514ce62994679ab7b7
2018-11-29 16:13:21 +00:00
changho.shin 715b1aab50 Support product partition for non-treblized devices
Non-treblized devices use ld.config.legacy.txt, which does not
support product partition, leading to access denial from/to product partition.
Declare directly /product since search paths are resolved in linker config.

Test: m -j with non-treblized device upgraded to P.
Change-Id: Ic142b807f5dbffdfa5c774b3df8d0903b9626b6a
2018-11-28 17:17:05 +09:00
Siarhei Vishniakou adace94df3 Merge "Permissions for /dev/uinput" am: 9f96cc20a2 am: e861121536
am: 89e868ddd1

Change-Id: I51cac3be64edb80cd9ba0a9b11f3cb8e5cb30091
2018-11-27 16:26:28 -08:00
Treehugger Robot 9f96cc20a2 Merge "Permissions for /dev/uinput" 2018-11-27 23:52:29 +00:00
Siarhei Vishniakou e615b2aa76 Permissions for /dev/uinput
Currently /dev/uinput is owned by system/bluetooth.
But that's inconsistent with some of the sepolicies for uhid_device.
This also means that the new native tests for inputflinger aren't able
to execute properly, because they require the ability to register a new
input device via uinput.

Bug: none
Test: atest inputflinger_test
The newly added EventHub_test is still under review

Change-Id: I53524738db1a5d3ba962b9bec35ef322ed3028f2
2018-11-27 11:21:21 -08:00
Roland Levillain 2f56b1fff8 Add Android Runtime APEX lib directories to the system linker configuration.
Test: Device boot test with Android Runtime APEX.
Test: Device boot test without Android Runtime APEX.
Bug: 113373927
Change-Id: Iff32fcd79a667b07df839f4e6ef2cdb3cf70e9d3
2018-11-21 19:41:59 +00:00
Haibo Huang 3b96aeff68 Merge "Writes cpu variant information to dev/" am: cfd0b6c19d am: c971939970
am: f8fada8b85

Change-Id: Iaeec97819fc05674b31decc613cb9262f0eb4556
2018-11-19 14:03:14 -08:00
Haibo Huang d60a19b184 Writes cpu variant information to dev/
This change adds a command to init.rc to write cpu variant information to a file under dev/

Test: sync to device and make sure corresponding files are created.
Change-Id: Ibf90967f13f72af925c82ff79bd973ef4cdc4068
2018-11-19 18:57:50 +00:00
Jiyong Park 78a342b140 Merge "init parses *.rc files from APEXes" am: a4e4e39421 am: 9200fb2d3e
am: b0d5b68638

Change-Id: Idb29d97f9632ec20428da4a0a0cd079c2ea78850
2018-11-11 19:11:01 -08:00
Jiyong Park c240440eec init parses *.rc files from APEXes
Init now parses *.rc files from the APEXs when the apexd notifies the
mount event via apexd.status sysprop.

Bug: 117403679
Test: m apex.test; adb root; adb push <builtfile> /data/apex; adb reboot
adb root; adb shell setprop ctl.start apex.test; dmesg shows that init
tries to start the service which doesn't exist.

[   47.979657] init: Could not ctl.start for 'apex.test': Cannot find '/apex/com.android.example.apex/bin/test': No such file or directory

Change-Id: I3f12355346eeb212eca4de85b6b73257283fa054
2018-11-10 04:18:09 +09:00
Anton Hansson 81defc397f Merge "Create /data/preloads on post-fs-data" am: ac305c82d6 am: 37d07accca
am: fd25208ba5

Change-Id: I8040a36f216692cc96433cd4fa1f48043333df2c
2018-10-24 17:23:04 -07:00
Anton Hansson c38a63646b Create /data/preloads on post-fs-data
This directory is used for preloads that are typically placed in
the system_other image and copied to /data on first boot if the
cppreopts script is installed.

Bug: 80508492
Test: make
Change-Id: I4121b07ee2fc96d533075d1907557de7e4be4ee0
2018-10-24 15:29:16 +01:00
Evgenii Stepanov 3584a8c26e Merge "Remove bcp_dep." am: 6d6d9a8052 am: f8b7372961
am: ecd0e3cf44

Change-Id: I074de73a3b93b052bb06655368cfab16f469e44f
2018-10-22 19:42:18 -07:00
Evgenii Stepanov d33653a26e Remove bcp_dep.
Since the build system move to kati/ninja, build command is an
implicit dependency of a target. This makes the bcp_dep / bcp_md5
thing obsolete.

Test: make

Change-Id: I4ce9ebdabfc72b188e49f12888054d63b3cda64d
2018-10-22 16:08:01 -07:00
Tom Cherry 6d041c7be3 Merge "Start logd and service managers during the 'init' trigger" am: e72274ac2b am: 16c0a5581e
am: 332096aa65

Change-Id: I1206fa0201579ac733db8b896e346e1c29ad8bf4
2018-10-18 16:02:39 -07:00
Tom Cherry f18b748b91 Start logd and service managers during the 'init' trigger
Now that we mount partitions early, services can be started before the
'fs' trigger.  We therefore start the service managers as early as
possible to ensure their transports are online, without device
specific rc files needing to handle that.  We also start logd even
one step earlier to ensure that we capture all possible logd.

Bug: 89689596
Test: logging works for early services, include the servicemanagers
Change-Id: I75dbfcd26eb6fa77f002de10afd00f085c93aa07
2018-10-17 14:21:37 -07:00
Bowgo Tsai b7f5348d5d Merge "Adding /odm/usr -> /vendor/odm/usr symlink" am: 03ea74aa91 am: 653373c833
am: 4d0b12aa5e

Change-Id: Ia87ee7c88f1003f4cfcb726e36632c5e5e24844d
2018-10-16 18:02:51 -07:00
Treehugger Robot 03ea74aa91 Merge "Adding /odm/usr -> /vendor/odm/usr symlink" 2018-10-17 00:20:07 +00:00
Bowgo Tsai 15f872aee4 Adding /odm/usr -> /vendor/odm/usr symlink
Bug: 112880217
Test: build and checks symlink is created
Change-Id: Ib9635fc1cd425664cfa8f79d8f034f3cb615cbbc
2018-10-16 18:24:08 +08:00
Daniel Rosenberg 7ba190c7d9 Merge "Call markBootAttempt when serice manager available" am: 8e842dd365 am: e0a5a58bed
am: 877c36f6ea

Change-Id: I8b0676b714327c244720daa858d7212b59778c32
2018-10-15 22:40:52 -07:00
Elliott Hughes 039936eda3 Merge "rootdir: add ccross to OWNERS." am: 1ffe0ccc70 am: 4b8e3bde92
am: 454e2a8740

Change-Id: I95405afa2612757c9c48be0a8e720b6057535dfa
2018-10-15 22:29:56 -07:00
Treehugger Robot 8e842dd365 Merge "Call markBootAttempt when serice manager available" 2018-10-16 01:45:51 +00:00
Daniel Rosenberg 6156b9b8ba Call markBootAttempt when serice manager available
This causes adds a call the fucntion to decrement the
checkpoint's retry count as soon as service manager is
available.

Test: vdc setCheckpoint 2 then reboot 3 times checking state
Bug: 112901762
Change-Id: Ie0a78b1eb05b340718e76175509d1ebefae68017
2018-10-15 22:16:19 +00:00
Elliott Hughes 4b38722c12 rootdir: add ccross to OWNERS.
Bug: N/A
Test: N/A
Change-Id: I285f66a69fa86e03cfc213abc2fe85e938f849df
2018-10-15 14:18:04 -07:00
Evgenii Stepanov 98cae973d2 Merge "Export HWASAN_OPTIONS when SANITIZE_TARGET:=hwaddress" am: b3bc842750 am: 44ab3697fb
am: 553d28c695

Change-Id: I36fc25e2b484e13d455c66a63c5e826022ce1ff1
2018-10-12 15:15:34 -07:00
Evgenii Stepanov b3bc842750 Merge "Export HWASAN_OPTIONS when SANITIZE_TARGET:=hwaddress" 2018-10-12 21:45:56 +00:00
Paul Lawrence 45d0c6a7cf Merge "Handle retry count correctly" am: a1bb191541 am: 06834e3094
am: 0e93896806

Change-Id: Ica89d2d6327f29d538802695b56c3904d735ce0b
2018-10-09 18:32:39 -07:00
Evgenii Stepanov 30917f77ba Export HWASAN_OPTIONS when SANITIZE_TARGET:=hwaddress
Bug: 112438058
Test: adb shell env | grep HWASAN_OPTIONS
Change-Id: I6ea4ef03269a7413b97cc62ea5b76597137bd980
2018-10-09 15:33:59 -07:00
Paul Lawrence b920cb44aa Handle retry count correctly
Test: vdc startCheckpoint 2 then reboot 3 times checking state

Change-Id: I4eeda7f73d82a7c8b2469571fa558df2fac47354
2018-10-08 14:06:06 -07:00
Martijn Coenen 076e453b2a Merge "Add /apex tmpfs mount and mount it." am: c3b40a5793 am: 289da3205f
am: 6f76dff37e

Change-Id: Iace5fd3b270af4f9662362d8972e6be92052b83a
2018-10-04 00:28:45 -07:00
Martijn Coenen c3b40a5793 Merge "Add /apex tmpfs mount and mount it." 2018-10-04 07:08:54 +00:00
Paul Lawrence 9beca34a47 Merge changes from topic "ext4 checkpointing" am: fe0e345ef0 am: 2b0fad7425
am: fcd0c1e38c

Change-Id: I9f2c7289a6d6e62290e48bd7c1ada8f9e88ad480
2018-10-03 14:01:25 -07:00
Martijn Coenen 344a91a5f1 Add /apex tmpfs mount and mount it.
APEX filesystem images will now be mounted in /apex.

Also, make sure /data/apex is created with the right ACL.

Bug: 112455435
Test: flash and wipe, /apex is mounted as tmpfs, /data/apex is created
Change-Id: Ie27775e9f40a27b510272f212762624a04e94f1d
2018-10-03 09:48:38 +02:00
Paul Lawrence 786d0b27a2 make checkpointing work on ext4
Test: Test script passes

Change-Id: Iafa337947f2fd456aa692ecb112ccc56638f7947
2018-10-02 10:12:33 -07:00
Martijn Coenen 7850875d33 Merge "init: start apexd as early as we can." am: 1e3764575e am: c71cd3741d
am: bfa86a52d3

Change-Id: Ieadf527c73afd302f3522da297d7133d2cd9a274
2018-09-26 00:17:17 -07:00
Martijn Coenen 1e3764575e Merge "init: start apexd as early as we can." 2018-09-26 06:56:26 +00:00
Anton Hansson f5986284dc Merge "Add product_services support to ld.config.vndk_lite" am: cf7d0e85d4 am: 13eb788bdc
am: 8c10354e7d

Change-Id: Ia74881217e467e09d0b099b40c4af767e2f85780
2018-09-19 17:46:11 -07:00
Anton Hansson 123c8d261d Merge "Update ld config to use build-time determined paths." am: 70b3fdce20 am: 5933e83e1d
am: 554d01506c

Change-Id: Ibe52f311662013e3100cb1d10b227597ca9a1c1c
2018-09-19 17:43:15 -07:00
Anton Hansson ece0a74691 Add product_services support to ld.config.vndk_lite
We're moving apps and their libs to product_services for older
devices too, so mimic the rules in the default ld.config related
to product_services.

Also fix a one-off disparity between /product and /product_services
in ld.config.txt.

Bug: 114804489
Test: m out/target/product/marlin/system/etc/ld.config.vndk_lite
Change-Id: I166275c035c85b4d69cff8e9d51af3d6d0ff4857
2018-09-19 02:53:33 +01:00
Anton Hansson 0244428c8e Update ld config to use build-time determined paths.
A few places had /product and /product_services hardcoded. Update
them to use values that get set at build time.

Bug: 114804489
Test: m out/target/product/marlin/system/etc/ld.config.vndk_lite.txt
Change-Id: Ie48dbb2453ae941c1b5ee57f092d12a5497d878f
2018-09-19 00:47:12 +01:00
Steven Moreland a285a8416c Merge "Add libbinder_ndk to public.libraries.*" 2018-09-18 15:19:44 +00:00
Steven Moreland dd8eee871b Add libbinder_ndk to public.libraries.*
Bug: 111445392
Test: atest android.binder.cts.NdkBinderTest
Change-Id: I8ccb1f74654dcb925cd3ac20042cbffd2f594bb9
Merged-In: I8ccb1f74654dcb925cd3ac20042cbffd2f594bb9
2018-09-17 20:05:27 +00:00
Steven Moreland fbeb8e8c46 Add libbinder_ndk to public.libraries.*
Bug: 111445392
Test: atest android.binder.cts.NdkBinderTest
Change-Id: I8ccb1f74654dcb925cd3ac20042cbffd2f594bb9
(cherry picked from commit fd0dad6825c09b8cc043fd54f679f7782fbf2c26)
2018-09-17 13:04:51 -07:00
Justin Yun 81c03d7529 Merge "Restore "Check if current ld.config.txt files is backward compatible"" am: 84d462d885 am: cefa0d78c0
am: 0d11cfe361

Change-Id: Ic884b372d6a9e2d22edca0ca9eadab67fa722859
2018-09-10 22:36:11 -07:00
Justin Yun 79d07bcfc3 Restore "Check if current ld.config.txt files is backward compatible"
This reverts commit bd2b0c78a1.

Reason for revert:
Solved the build error on mac_sdk build by using python2

Bug: 112738739
Bug: 111417344
Test: make ld.config.txt

Change-Id: Ic5a3ed2e6b091813c0310f859b7d20935514a7c6
2018-09-11 09:45:09 +09:00
Yohei Yukawa eddf9b2566 Merge "Revert "Check if current ld.config.txt files is backward compatible"" am: 2bb47ecb4c am: d844ba638a
am: 245c4d4a4b

Change-Id: I06d45268e6ba2db8fe39a0f206236f9021d9b761
2018-09-10 12:19:56 -07:00
Yohei Yukawa bd2b0c78a1 Revert "Check if current ld.config.txt files is backward compatible"
This reverts commit 15bac6bdaf.

Reason for revert:
This caused build errors in mac_sdk build.
Seems that our mac builders do not have python3.

  env: python3: No such file or directory

Bug: 112738739
Bug: 111417344
Test: presubmit
Change-Id: I9796f2e9a54a66fc7a4e1c780c8c272b98ed437f
2018-09-10 16:40:59 +00:00
Justin Yun 605c051a4a Merge "Check if current ld.config.txt files is backward compatible" am: 8307ad3d2d am: 0f306865bc
am: 249bf478e9

Change-Id: I8dc5f26b7d1ce49795bb8fd886564849ed786cc2
2018-09-10 01:31:19 -07:00
Justin Yun 15bac6bdaf Check if current ld.config.txt files is backward compatible
The ld.config.txt file is a template to be used for current build as
well as for the VNDK snapshots for old vendor partitions.
To work with the old Android vendor partitions, the ld.config.txt
template must be backward compatible.
This script checks if the current ld.config.txt template modifies or
deletes the vendor directores in every section. If the change is
detected, it will report a build error.

Bug: 112738739
Bug: 111417344
Test: make ld.config.txt
Change-Id: I1211696d6a00a37d531d40c894f1d7e64b210ae5
2018-09-10 11:42:35 +09:00
Tom Cherry 6615f2ce0a Merge "Move zygote start after loading persist properties" am: 5b993e3861 am: d71c8bec98
am: 62b0e1056e

Change-Id: Ib4d1ba1ecdbddf143de1002b4d36851be7a1047f
2018-09-06 13:24:05 -07:00
Wei Wang fa14d21ca4 Move zygote start after loading persist properties
Currently zygote is started before loading persistent properties which
stops ART honor experiment flags planned landed as persistent
properties.

The original motivation is we would like zygote be started as early as
possible and loading persistent properties taking time, but after fix of
b/64392887 loading persist properties is now only taking 3ms on P18, 6ms
on P16 respectively.

Bug: 114044733
Test: Boot
Change-Id: Ibc118966e975c741ee8ea47091b14d691692bf2c
2018-09-06 10:29:00 -07:00
Isaac Lee fb62ea5670 Merge "Show bootanimation after decrypt" am: 5a139a0d75 am: f0224d7a53
am: b56b11965f

Change-Id: Ic9e22b8bae1f8434c0bc4ed4b2dd3a9759919164
2018-08-30 10:10:23 -07:00
Isaac Lee f32c201743 Show bootanimation after decrypt
Because the original modification (restart SF which is added
for display bootanimation) from O to P causes bootanimation NPE,
 we remove the part of restart SF and add other flow to show
 bootanimation.

Test: manual, ran the test 10 times and it cause no NPE and
      display BootAnimation after decrypt
Test: boot aosp_sailfish

Bug: 79547653
Change-Id: I355ccdbb2e2f27d897e2e0ee00f9300ef38ede03
2018-08-30 16:44:34 +00:00
Elliott Hughes cd7dc0f535 Merge "Add /dev/stdin, /dev/stdout, and /dev/stderr." am: 6ec934bc9d am: 295c7983a0
am: 8b06759532

Change-Id: I7658bdbf908d997005dbd79ccbeb79a5c279fb66
2018-08-22 16:18:36 -07:00
Elliott Hughes 5a0a51b81f Add /dev/stdin, /dev/stdout, and /dev/stderr.
Bug: http://b/31824379
Test: `adb shell ls -l /dev/std*`
Change-Id: I6af7ff205e12c10e958be263c3f1c429d48c0bbc
2018-08-22 13:21:21 -07:00
Tao Bao 1f92d7e21a Merge "Install ld.config.recovery.txt to $(TARGET_RECOVERY_ROOT_OUT)/system/etc." am: 7cbebb2ba0 am: 8d2a5e9015
am: 11c377cf31

Change-Id: I6ad046d4cbb46e542d800b90e595ec3d09ee2ee2
2018-08-22 03:57:31 -07:00
Tao Bao 7cbebb2ba0 Merge "Install ld.config.recovery.txt to $(TARGET_RECOVERY_ROOT_OUT)/system/etc." 2018-08-21 22:35:49 +00:00
Yifan Hong de39afd1e0 Merge "s/product-services/product_services/g" 2018-08-21 01:07:56 +00:00
Yifan Hong 98d8981cf2 Merge "s/product-services/product_services/g" 2018-08-20 23:18:54 +00:00
Dario Freni ab5583b585 s/product-services/product_services/g
Attempting to reduce the number of different spellings we have for
"product services" partition in the codebase.

Bug: 112431447
Test: m
Change-Id: I1a87d7e040a8b1f91f973ac7d90d6360b5b54f71
Merged-In: I1a87d7e040a8b1f91f973ac7d90d6360b5b54f71
2018-08-20 17:46:42 +00:00
Tao Bao e82b83201b Install ld.config.recovery.txt to $(TARGET_RECOVERY_ROOT_OUT)/system/etc.
Bug: 112780007
Test: Build with other changes in the topic (aosp_taimen-userdebug).
Test: Boot into recovery. Verify basic functionalities (`adb shell` and
      `adb sideload`, factory reset).
Change-Id: I8686bbc68c9c8a1570289ecd21bcfcb551d1700c
2018-08-18 10:22:03 -07:00
Dario Freni 69071b9143 s/product-services/product_services/g
Attempting to reduce the number of different spellings we have for
"product services" partition in the codebase.

Bug: 112431447
Test: m
Change-Id: I1a87d7e040a8b1f91f973ac7d90d6360b5b54f71
2018-08-17 14:04:45 -07:00
Elliott Hughes 240aa7ee51 Merge "Add NDK folks to OWNERS for library configuration." am: cdad28c4d5 am: ef1db03ea1
am: 4d11862312

Change-Id: I700f15c2c6e929172503729692d8006b85a2c741
2018-08-17 10:05:44 -07:00
Treehugger Robot cdad28c4d5 Merge "Add NDK folks to OWNERS for library configuration." 2018-08-17 16:50:35 +00:00
Martijn Coenen 3848e1ba12 init: start apexd as early as we can.
apexd needs to run right after mounting /data.

Bug: 112455435
Test: apexd is running
Change-Id: I71c834bcaf26a3133aef57bb1d1953010a6d137c
2018-08-17 13:52:25 +02:00
Dario Freni 2af42dce4d Merge "s/PRODUCTSERVICES/PRODUCT_SERVICES/g" am: c0f60b7e4d am: ce965ed421
am: 077ec1e5fe

Change-Id: I33862496f491b3b8b137ae09aaa00f459d2f4032
2018-08-16 23:53:56 -07:00
Dario Freni ad58bf9b1d s/PRODUCTSERVICES/PRODUCT_SERVICES/g
Attempting to reduce the number of different spellings we have for
"product-services" in the codebase.

Bug: 112431447
Test: m
Change-Id: I8714cc9c1ca63eb54745054aaeebd6b51f203f11
2018-08-17 00:20:11 +01:00
Jae Shin f6c6aaaf13 Parse the list of supported vndk snapshot versions
This allows the target, ld.config.$VER.txt, to be defined for all
$VERs for which a VNDK snapshot exists under /prebuilts/vndk/v$VER.
With this fix,
1) supported_vndk_snaphsot_versions do not need to
be manually updated everytime a new VNDK snapshot is added and,
2) ld.config.$VER.txt will not be ill-defined in a tree that does
not have the required dependency files under /prebuilts/vndk/v$VER.

Test: m -j ld.config.28.txt
Bug: 74658756
Merged-In: Idb056c21412d4cb7c7a7cb3c247b1d82a4a759ff
Change-Id: Idb056c21412d4cb7c7a7cb3c247b1d82a4a759ff
(cherry picked from commit baeaaf9429)
2018-08-13 02:19:42 +00:00
Justin Yun 61f474f457 Add '.bak' for sed -i that is required by BSD sed
BSD version of sed requires a parameter for '-i' option.
Add '.bak' for back up and remove the back up file at the end of the
sed command

Bug: 112478836
Test: checkbuild on a mac machine
Merged-In: Iedc93c2b5239004d2bbb8011488041c54b29996b
Change-Id: Iedc93c2b5239004d2bbb8011488041c54b29996b
(cherry picked from commit 6009d874aa)
2018-08-13 10:39:56 +09:00
Jae Shin baeaaf9429 Parse the list of supported vndk snapshot versions
This allows the target, ld.config.$VER.txt, to be defined for all
$VERs for which a VNDK snapshot exists under /prebuilts/vndk/v$VER.
With this fix,
1) supported_vndk_snaphsot_versions do not need to
be manually updated everytime a new VNDK snapshot is added and,
2) ld.config.$VER.txt will not be ill-defined in a tree that does
not have the required dependency files under /prebuilts/vndk/v$VER.

Test: m -j ld.config.28.txt
Bug: 74658756
Change-Id: Idb056c21412d4cb7c7a7cb3c247b1d82a4a759ff
2018-08-13 01:38:58 +00:00
Jae Shin f6dff6dd33 Build ld.config.txt for older VNDK versions
Until now, the ld.config.$VER.txt for $VER older than
PLATFORM_VNDK_VERSION was installed from a prebuilt stored under
/prebuilts/vndk/v$VER. At runtime, the VNDK version needed by the
vendor partition (ro.vndk.version) determines which
ld.config.$VER.txt is loaded and this configuration is used for
both system and vendor processes. In a system-only-upgrade
scenario, where the system partition is a newer Android version
than the vendor partition, this is a problem because the prebuilt
linker config file will not reflect the most recent
system partition related changes made in the newer Android
version.

To fix this problem, this change builds ld.config.$VER.txt for
older VNDK versions from the source tree by getting the lists of
VNDK libraries from the /prebuilts/vndk/v{VER} directory.

Test: m -j ld.config.txt ld.config.28.txt ld.config.vndk_lite.txt
Bug: 74658756
Merged-In: I1fa2469fc0bce2f2aab507104cd9717b6112d738
Change-Id: I1fa2469fc0bce2f2aab507104cd9717b6112d738
(cherry picked from commit c30e0709bb)
2018-08-13 10:37:27 +09:00
Justin Yun 6009d874aa Add '.bak' for sed -i that is required by BSD sed
BSD version of sed requires a parameter for '-i' option.
Add '.bak' for back up and remove the back up file at the end of the
sed command

Bug: 112478836
Test: checkbuild on a mac machine
Change-Id: Iedc93c2b5239004d2bbb8011488041c54b29996b
2018-08-11 08:23:49 +09:00
Jae Shin d62d2a1623 Merge "Build ld.config.txt for older VNDK versions" 2018-08-10 02:18:31 +00:00
Jae Shin c30e0709bb Build ld.config.txt for older VNDK versions
Until now, the ld.config.$VER.txt for $VER older than
PLATFORM_VNDK_VERSION was installed from a prebuilt stored under
/prebuilts/vndk/v$VER. At runtime, the VNDK version needed by the
vendor partition (ro.vndk.version) determines which
ld.config.$VER.txt is loaded and this configuration is used for
both system and vendor processes. In a system-only-upgrade
scenario, where the system partition is a newer Android version
than the vendor partition, this is a problem because the prebuilt
linker config file will not reflect the most recent
system partition related changes made in the newer Android
version.

To fix this problem, this change builds ld.config.$VER.txt for
older VNDK versions from the source tree by getting the lists of
VNDK libraries from the /prebuilts/vndk/v{VER} directory.

Test: m -j ld.config.txt ld.config.28.txt ld.config.vndk_lite.txt
Bug: 74658756
Change-Id: I1fa2469fc0bce2f2aab507104cd9717b6112d738
2018-08-08 15:04:49 +09:00
Tom Cherry 9a42b46b9d Merge "split first stage init into a separate executable" am: 574533a657 am: fc464cabcc am: aca5d40846
am: 3188213567

Change-Id: I1179ae2a01e3971db309596c441c31a2481789da
2018-08-07 11:44:16 -07:00
Tom Cherry fc464cabcc Merge "split first stage init into a separate executable"
am: 574533a657

Change-Id: Ib26d1b54dc654883eaccd1d5dc9575cfac1262a5
2018-08-07 10:48:01 -07:00
Xin Li 5d707816ac Merge "Merge Android Pie into master" 2018-08-07 16:51:24 +00:00
Tom Cherry 31438489c0 split first stage init into a separate executable
In the future, systems with dm-linear will require a ramdisk to set up
the mount for system.  In this world, first stage init will be a part
of this ramdisk and handle setting up dm-linear, mounting the
necessary partitions, then pivoting to the system image, which will
become the root partition.

This also enables previous devices without system-as-root, to be
unified with system-as-root devices for all aspects of boot after the
pivot_root.

Bug: 79758715
Test: boot hikey
Test: boot sailfish, boot sailfish into recovery
Change-Id: Iefa88a3ec5994e7989aa9f26f2de0351ffa5468b
2018-08-06 10:36:43 -07:00
Luis Hector Chavez cd39351783 Merge "Make /acct have 0555 permissions after mounting" am: f2878cf15b am: c4a8b5a595 am: a78c580de5
am: 1a93c543ad

Change-Id: Id6c996b90203a128f771880affe9e79efb946c49
2018-07-30 17:11:31 -07:00
Luis Hector Chavez c4a8b5a595 Merge "Make /acct have 0555 permissions after mounting"
am: f2878cf15b

Change-Id: I961153c5af23a7f094aea16c8958b0d2bb36391b
2018-07-30 16:49:55 -07:00
Treehugger Robot f2878cf15b Merge "Make /acct have 0555 permissions after mounting" 2018-07-30 23:37:59 +00:00
Luis Hector Chavez 0451fd6584 Make /acct have 0555 permissions after mounting
This change adds a `chmod 0555 /acct` just after mounting the cgroup fs
on it. This makes it such that even on systems where the rootdir+system
partitions are shared, the permissions allow for the system user to open
files within /acct, which in turn makes libprocessgroup not complain
that it can never do anything with those files.

Bug: 111996377
Test: adb shell 'ls -ldZ /acct'  # Before and after, on an aosp_sailfish
      dr-xr-xr-x 48 root root u:object_r:cgroup:s0 0 1971-12-29 17:41 /acct

Change-Id: Iee6531126c6e81aa7794e44500555bd3c1cdf7b8
2018-07-30 13:06:46 -07:00
Yifan Hong 4a471bc1e1 Merge "BOARD_USES_PRODUCT_SERVICES_IMAGE => BOARD_USES_PRODUCT_SERVICESIMAGE" am: d5f825c78b am: 7f9ba18e25 am: 4b3fcae2df
am: ceb8b4011d

Change-Id: Ia2901bb5f41a6856ddfaa98f35c719d385fe9fc5
2018-07-30 09:38:55 -07:00
Yifan Hong 7f9ba18e25 Merge "BOARD_USES_PRODUCT_SERVICES_IMAGE => BOARD_USES_PRODUCT_SERVICESIMAGE"
am: d5f825c78b

Change-Id: Ica5d41ee4832b3da6420b730d20b91057d2452e4
2018-07-30 09:26:44 -07:00
Yifan Hong bcdfe0d795 BOARD_USES_PRODUCT_SERVICES_IMAGE => BOARD_USES_PRODUCT_SERVICESIMAGE
This is the name used by envsetup.sh.

Test: `m init.environ.rc` and see directory
$OUT/root/product-services and see symlink $OUT/system/product-services

Change-Id: Ie615b6d76e2c60e6472900c33d9a87cfe99c4064
2018-07-27 11:14:43 -07:00
Dario Freni f0a8d6cd55 Merge "Add support for /product-services partition." into stage-aosp-master am: d99a836380 am: 351d1f3f93
am: 404bcf3ac7

Change-Id: I175dde7c8b4527cc538ce50e58f6969115812fba
2018-07-26 09:36:54 -07:00
Dario Freni 3613710099 Add support for /product-services partition.
This CL is largely and adaptation of
Ie996def20e25dc1afe0c74af2096af844934b2dc

Bug: 80741439
Test: Successfully built product-services.img with one module in it, and
flashed on device. Also successfully built image with
/system/product-services and no dedicated /product-services partition.

Change-Id: I1046dfe19bf874da929c9131b76a1f85422fbb80
Merged-In: I1046dfe19bf874da929c9131b76a1f85422fbb80
2018-07-26 16:27:28 +00:00
Dario Freni 4fa866a467 Add support for /product-services partition.
This CL is largely and adaptation of
Ie996def20e25dc1afe0c74af2096af844934b2dc

Bug: 80741439
Test: Successfully built product-services.img with one module in it, and
flashed on device. Also successfully built image with
/system/product-services and no dedicated /product-services partition.
Change-Id: I1046dfe19bf874da929c9131b76a1f85422fbb80
2018-07-23 16:14:36 +01:00
Tom Cherry c2be48eb2b Merge "ueventd: let scripts provide firmware directories" am: b504f38d7e am: 689d86a029
am: a6bf01a14a

Change-Id: I8c44520e33d0e2f08d3722ff3b3984a7b0f3e75c
2018-07-16 17:39:03 -07:00
Tom Cherry 689d86a029 Merge "ueventd: let scripts provide firmware directories"
am: b504f38d7e

Change-Id: I6dd9cfe20b733fad5afb066b07484c33eb599c02
2018-07-16 17:15:18 -07:00
Tom Cherry b504f38d7e Merge "ueventd: let scripts provide firmware directories" 2018-07-16 23:00:53 +00:00
Tom Cherry 7421fa1aed ueventd: let scripts provide firmware directories
Since some vendors will have firmware in mount points in
/mnt/vendor/..., we extend the ueventd script language to allow
specifying the firmware directories.

Also, move the existing 4 directories to ueventd.rc as a primary user
of this mechanism.

Bug: 111337229
Test: boot sailfish; firmwares load
Change-Id: I0854b0b786ad761e40d2332312c637610432fce2
2018-07-13 15:34:25 -07:00
Luis Hector Chavez d9915714e8 Merge "init.rc: Remount / with MS_REMOUNT|MS_BIND|MS_NODEV" am: 19ef02ef42 am: 81c97bc46f
am: df271c4842

Change-Id: Ib60a55a8d8cca5d5a74d30b6b21c803cf8222688
2018-07-11 11:06:51 -07:00
Luis Hector Chavez 81c97bc46f Merge "init.rc: Remount / with MS_REMOUNT|MS_BIND|MS_NODEV"
am: 19ef02ef42

Change-Id: I94c5641308b7b2760bdc4734158011d9cb7146aa
2018-07-11 10:49:41 -07:00
Luis Hector Chavez d07d0942c6 init.rc: Remount / with MS_REMOUNT|MS_BIND|MS_NODEV
/ should not have any character/block devices, so might as well pass in
the nodev flag.

Bug: 73255020
Test: aosp_sailfish still boots
Test: sailfish:/ # find / -xdev -a \( -type b -o -type c -o -type p -o -type s \)
      sailfish:/ #
Test: rootfs on / type rootfs (rw,seclabel)
      /dev/root on / type ext4 (ro,seclabel,nodevrelatime)

Change-Id: Ia73e04b53a47506892d9d3cb61b471b81bb72dc3
2018-07-11 08:36:00 -07:00
Yabin Cui 712d586f84 Merge "Add debug system properties to control profiling limits." am: 1db3789252 am: 329e12fb57
am: c4df73c1cb

Change-Id: I4b731d3e0abcd692876d20ebe788d5fc14681bd3
2018-07-10 11:18:36 -07:00
Yabin Cui 329e12fb57 Merge "Add debug system properties to control profiling limits."
am: 1db3789252

Change-Id: I32d3d93bc97aab5a9c21be0f0af5191b581aa32a
2018-07-10 11:11:09 -07:00
Yabin Cui 4f0da7cb82 Add debug system properties to control profiling limits.
When security.perf_harden is disabled through adb, use some debug
system properties to set profiling limits in the kernel, including
cpu percentage, memory, and max sample rate.

Bug: 110706031
Test: boot hikey960 and manually set system properties to make
Test: sure it works.

Change-Id: I44c0adf3a000bb393905233f2a097c97b5fe91ec
2018-07-09 16:03:30 -07:00
Mark Salyzyn be4a3cc1cc Merge "rootdir: access to pstore denied to bootstat" am: 8b80960417 am: fbe32e723b
am: 6382d49117

Change-Id: I921a224a8b138cb982587f44f4c647b49108e2ab
2018-06-29 15:36:12 -07:00
Mark Salyzyn fbe32e723b Merge "rootdir: access to pstore denied to bootstat"
am: 8b80960417

Change-Id: I02884961f2b782e57a9dcac028c2bd6ae7b33f48
2018-06-29 15:20:57 -07:00
Mark Salyzyn 7ab805ea1d rootdir: access to pstore denied to bootstat
Test: boot_reason_test.sh
Bug: 110925971
Change-Id: Iba7b7325fe8c9ad18a7f8dbda550d6008400693e
2018-06-29 13:10:08 -07:00
Doheon Lee 93d837f3a9 Determine product partition path on build time
Path of product partitoin can be set as /product or /system/product
whether generate extra product partition or not.
Substitute %PRODUCT% to relevant path to know linker which path should
search and permit.

Bug: 110286945
Test: m -j # Check /system/etc/ld.config.$(PLATFORM_VNDK_VERSION).txt
Change-Id: I6ca177d0c9c5af00ad821879fece40848331fc8d
Merged-In: I6ca177d0c9c5af00ad821879fece40848331fc8d
(cherry picked from commit cccad0bf84)
2018-06-20 00:53:55 +00:00
Inseob Kim c4cf62f4b4 Add /system/product/* paths to permitted paths
As linker doesn't resolve paths in permitted paths, /system/product
variants should be added to support devices having product partition
under /system.

Bug: 110286945
Test: m -j succeeds on taimen and libraries under /system can dlopen
libraries under /system/product/apps

Change-Id: Icd102d44511702e4ec66c07a367b59c3d9700a44
Merged-In: Icd102d44511702e4ec66c07a367b59c3d9700a44
(cherry picked from commit 3918936b9e)
2018-06-20 00:53:17 +00:00
Doheon Lee 2cb76c1153 Merge "Determine product partition path on build time" am: 2bf8328c54 am: ac7756307f
am: 3083225f92

Change-Id: I8a287d843e5bd0d4bc662bcab6cfd8152ea935c6
2018-06-19 14:55:38 -07:00
Doheon Lee ac7756307f Merge "Determine product partition path on build time"
am: 2bf8328c54

Change-Id: I773864c5dcf6adbea8e1947b969de69d25454521
2018-06-19 14:49:21 -07:00
Doheon Lee cccad0bf84 Determine product partition path on build time
Path of product partitoin can be set as /product or /system/product
whether generate extra product partition or not.
Substitute %PRODUCT% to relevant path to know linker which path should
search and permit.

Bug: 110286945
Test: m -j # Check /system/etc/ld.config.$(PLATFORM_VNDK_VERSION).txt
Change-Id: I6ca177d0c9c5af00ad821879fece40848331fc8d
2018-06-19 08:10:14 +00:00
Inseob Kim dbe48bc748 Merge "Add /system/product/* paths to permitted paths" am: c733e5af3c am: af818a799d
am: ddc022c371

Change-Id: I13dcff96ff483ebd8def1517bfb78b2cf5b9d297
2018-06-18 00:40:07 -07:00
Inseob Kim af818a799d Merge "Add /system/product/* paths to permitted paths"
am: c733e5af3c

Change-Id: I010dc1ad943fbf4c2c8524bb4df4cd6d0c699caa
2018-06-18 00:31:48 -07:00
Inseob Kim 3918936b9e Add /system/product/* paths to permitted paths
As linker doesn't resolve paths in permitted paths, /system/product
variants should be added to support devices having product partition
under /system.

Bug: 110286945
Test: m -j succeeds on taimen and libraries under /system can dlopen
libraries under /system/product/apps

Change-Id: Icd102d44511702e4ec66c07a367b59c3d9700a44
2018-06-18 14:16:49 +09:00
Jiyong Park d3e0245b21 Shared libs are supported in recovery mode am: 011ee12b1d am: 4ebda908de
am: 058aa0c3e1

Change-Id: I6e5af784a2d11888623891ed1ee5e3cd9932cc1b
2018-06-13 17:47:09 -07:00
Jiyong Park 4ebda908de Shared libs are supported in recovery mode
am: 011ee12b1d

Change-Id: I867dbafecf11215b82d952c532774cdf12c6e782
2018-06-13 16:43:09 -07:00
Jiyong Park 011ee12b1d Shared libs are supported in recovery mode
adbd has been built as a static executable since the same binary was
copied to the recovery partition where shared library is not supported.
However, since we now support shared library in the recovery partition,
adbd is built as a dynamic executable.

In addition, the dependency from adbd to libdebuggerd_handler is removed
as debuggerd is handled by the dynamic linker.

A few more modules in /system/core are marked as recovery_available:
true as they are transitive dependencies of the dynamic linker.

This change also includes ld.config.recovery.txt which is the linker
config file for the recovery mode. It is installed to /etc/ld.config.txt
and contains linker namespace config for the dynamic binaries under
/sbin.

Bug: 63673171
Test: `adb reboot recovery; adb devices` shows the device ID
Test: Select 'mount /system' in the recovery mode, then `adb shell`.
$ lsof -p `pidof adbd` shows that libm.so, libc.so, etc. are loaded from
the /lib directory.

Change-Id: I363d5a787863f1677ee40afb5d5841321ddaae77
2018-06-10 08:32:24 +09:00
Inseob Kim daa4760ffb Merge "Support /product/bin" am: 36b61f061d am: 931e0f268a
am: cf5e8f1575

Change-Id: I9ef94a439b75a8f95b07761d3fe3c3b863294e0c
2018-05-31 22:56:29 -07:00
Inseob Kim cf5e8f1575 Merge "Support /product/bin" am: 36b61f061d
am: 931e0f268a

Change-Id: If507c7206c6e1c43e0fe5a6af411250b7879e2e3
2018-05-31 20:09:45 -07:00
Inseob Kim 9bd3ee1c4f Support /product/bin
Bug: 80422611
Test: m -j succeeded and permissions of files under /product/bin are set
correctly

Change-Id: I83377d809c47c92da6b226d2853ea6a7462fb127
Merged-In: I83377d809c47c92da6b226d2853ea6a7462fb127
(cherry picked from commit 25195daaca)
2018-06-01 10:38:57 +09:00
Inseob Kim 25195daaca Support /product/bin
Bug: 80422611
Test: m -j succeeded and permissions of files under /product/bin are set
correctly

Change-Id: I83377d809c47c92da6b226d2853ea6a7462fb127
2018-06-01 08:33:04 +09:00
Inseob Kim e5c2de355b Support product-specific libraries
Product-specific libraries in /product/lib can be exposed to Android
apps by adding the list of the libs into
/product/etc/public.libraries-<companyname>.txt. The libs MUST be named
as lib<name>.<companyname>.so.

Bug: 73095206
Test: with taimen
mma -j and runtest.sh. The libs are all loaded in system, but not in
vendor. After reinstalling app using adb -r and reopening app, only
libraries listed in .txt are loaded

Change-Id: I7c386813c72a7b225a7f244b6c5fec4ac0660fd3
Merged-In: I7c386813c72a7b225a7f244b6c5fec4ac0660fd3
(cherry picked from commit 67cb05654c)
2018-05-31 09:59:21 +09:00
Inseob Kim 7f5070451c Merge "Support product-specific libraries" am: 39cab7cd25 am: d9debeefd6
am: 4f0e967eaa

Change-Id: Ieb9b4621b0188d9ae07e3bdf70d76a51de93cf0d
2018-05-24 13:22:55 -07:00
Inseob Kim 4f0e967eaa Merge "Support product-specific libraries" am: 39cab7cd25
am: d9debeefd6

Change-Id: I06da5ca113c97af66d6a17caab5e1fb35bb12be3
2018-05-24 10:42:19 -07:00
Treehugger Robot 39cab7cd25 Merge "Support product-specific libraries" 2018-05-24 03:04:48 +00:00
Jordan Liu 428a6ffaf8 Merge "Add a new directory to store downloaded apns" into pi-dev 2018-05-22 21:12:31 +00:00
Logan Chien dda4678a11 Merge "Always use versioned VNDK directory" 2018-05-22 04:04:07 +00:00
Jordan Liu a135cc4d9d Merge "Add a new directory to store downloaded apns" am: e0a52774b4 am: c25eeeca52
am: 2f51c3ec25

Change-Id: I6330d928fa3fe9a15c4f27c39f2ac54358294dc6
2018-05-21 15:08:07 -07:00
Jordan Liu 2f51c3ec25 Merge "Add a new directory to store downloaded apns" am: e0a52774b4
am: c25eeeca52

Change-Id: I0e4fc27f07aea7a050ed06d7206256319d4204bc
2018-05-21 14:49:10 -07:00
Niklas Lindgren f0a5bbda88 Add a new directory to store downloaded apns
downloaded apns-conf.xml will be stored in the folder
/data/misc/apns/ to make sure TelephonyProvider gets
access.

Bug: 79948106
Test: Manual
Change-Id: I4ba0596fa6523c0eb96328dbe46ead02587bd9b8
Merged-In: I4ba0596fa6523c0eb96328dbe46ead02587bd9b8
2018-05-21 12:09:10 -07:00
Paul Crowley d887394232 Add option to create metadata mount point am: fe305ab286
am: 36bd69f826

Change-Id: Ie79d296d867b5166e14b9c5ddf57ce06ec6c9276
2018-05-21 10:57:19 -07:00
Paul Crowley 36bd69f826 Add option to create metadata mount point
am: fe305ab286

Change-Id: If035ab553e75afd4ac6e07ee1c97d6218c3ce397
2018-05-21 10:46:33 -07:00
Niklas Lindgren fd66538ef3 Add a new directory to store downloaded apns
downloaded apns-conf.xml will be stored in the folder
/data/misc/apns/ to make sure TelephonyProvider gets
access.

Bug: 79948106
Test: Manual
Change-Id: I4ba0596fa6523c0eb96328dbe46ead02587bd9b8
2018-05-21 18:48:28 +02:00
Paul Crowley fe305ab286 Add option to create metadata mount point
Test: booted metadata-encrypted device
Bug: 79781913
Change-Id: Ie922db20314c04409c98700bfb1aff3d111275f0
2018-05-18 14:10:56 -07:00
Logan Chien 5a35d12e62 Always use versioned VNDK directory
Bug: 78605339
Test: sailfish-userdebug builds and boots
Test: sailfish boots with GSI
Change-Id: I7da5845b5c1caed3b73d7665f1db672f2764c2a8
(cherry picked from commit 6a145749be)
2018-05-17 14:29:44 +08:00
Logan Chien 5336b52a4e Merge "Always use versioned VNDK directory" into pi-dev am: 5789b80a2b
am: 85e72361ac

Change-Id: I67a36bee692182346cd57b51ca96bd8508b3d17f
2018-05-16 02:54:13 -07:00
Logan Chien 85e72361ac Merge "Always use versioned VNDK directory" into pi-dev
am: 5789b80a2b

Change-Id: If3c7ef539f32a73caaa42e23507c3c5e3396fe16
2018-05-16 02:43:46 -07:00
Logan Chien 6a145749be Always use versioned VNDK directory
Bug: 78605339
Test: sailfish-userdebug builds and boots
Test: sailfish boots with GSI
Change-Id: I7da5845b5c1caed3b73d7665f1db672f2764c2a8
2018-05-16 11:34:05 +08:00
Inseob Kim 67cb05654c Support product-specific libraries
Product-specific libraries in /product/lib can be exposed to Android
apps by adding the list of the libs into
/product/etc/public.libraries-<companyname>.txt. The libs MUST be named
as lib<name>.<companyname>.so.

Bug: 73095206
Test: with taimen
mma -j and runtest.sh. The libs are all loaded in system, but not in
vendor. After reinstalling app using adb -r and reopening app, only
libraries listed in .txt are loaded

Change-Id: I7c386813c72a7b225a7f244b6c5fec4ac0660fd3
2018-05-16 01:36:25 +00:00
Ralph Nathan a18fa73bba Update public.libraries.iot.txt to be up to date.
Adds amidi to the iot public.libraries.txt so it's up to date with the
other files.

Bug: 78226207
Test: none
Change-Id: I28d1135f5da1c9ec907dd27d5ad8df5ee5d99b8b
2018-04-24 08:43:59 -07:00
Ralph Nathan 11072f308e Merge "Add a public.libraries.txt file for iot devices." am: ca07de4214 am: 3b0360a572
am: f8d80b16a6

Change-Id: If0c86c11384fde4b1b9b6120308ec33845f38117
2018-04-23 17:44:44 -07:00
Ralph Nathan f8d80b16a6 Merge "Add a public.libraries.txt file for iot devices." am: ca07de4214
am: 3b0360a572

Change-Id: I4dc565134b129765f97093c3ee3a25ca4e30dc05
2018-04-23 17:35:28 -07:00
Ralph Nathan ab39ce88e4 Add a public.libraries.txt file for iot devices.
Previously on Android Things, we used a vendor public.libraries.txt
file. This cl enables us to tag our library correctly.

Bug: 78226207
Test: test app works
Change-Id: I9e69717e5968a903e84f59c1d889c8e4cf9bcc35
2018-04-20 13:46:55 -07:00
Tim Murray 15ecd28fb1 cutils: add restricted cpuset am: 658ae90f69
am: 3188458f36

Change-Id: Ic0bd9962a0383a8de09f0b0b6399a20fe776b8de
2018-04-18 17:13:20 -07:00
Tim Murray 3188458f36 cutils: add restricted cpuset
am: 658ae90f69

Change-Id: I94d05991e95f79282b0ad980a97edb75d2e908f7
2018-04-18 17:00:21 -07:00
Tim Murray 658ae90f69 cutils: add restricted cpuset
Bug 78197570
Test: CTS
Exempt-From-Owner-Approval: owner OOO, build cop says it's fine

Change-Id: I6df972950b75a839caa463ae282ad000b959e8ae
2018-04-18 16:42:12 -07:00
Jeff Vander Stoep c65c486bbd Merge "init.rc: create /data/system/dropbox" am: c629131c26 am: b0918bfa47
am: 6d36fdc4da

Change-Id: I089b89a39c8fefd73bfcc8f2f02621cd36b6304c
2018-04-18 15:35:54 -07:00
Jeff Vander Stoep 6d36fdc4da Merge "init.rc: create /data/system/dropbox" am: c629131c26
am: b0918bfa47

Change-Id: Ibe80b9d6e4f3fe6b4555c919fccfc4b0d72aba63
2018-04-18 15:05:27 -07:00
Treehugger Robot c629131c26 Merge "init.rc: create /data/system/dropbox" 2018-04-18 21:48:39 +00:00
Tri Vo 4640149fd5 Merge "Add /mnt/vendor rw mount point for vendor partitions." 2018-04-18 19:32:32 +00:00
Jeff Vander Stoep 148dea71a5 init.rc: create /data/system/dropbox
Ensure dropbox has the new dropbox_data_file label.

Bug: 31681871
Test: ls -dZ /data/system/dropbox
    u:object_r:dropbox_data_file:s0 /data/system/dropbox

Change-Id: Ia67646f4a789155e20650c33fe4412cae7f930d2
2018-04-18 07:15:37 -07:00
Mark Salyzyn e89bed517c Merge "lmkd: limit capability set to minimum" am: 01ce44b734 am: c2d4d08be2
am: 7977e3d24d

Change-Id: Ib640b564c87255aa07ff8ce20224fae364966438
2018-04-17 15:47:18 -07:00
Mark Salyzyn 7977e3d24d Merge "lmkd: limit capability set to minimum" am: 01ce44b734
am: c2d4d08be2

Change-Id: Ic97ab3c4312d260c2aa8c7a30e203564cd72f61a
2018-04-17 15:34:06 -07:00
Tri Vo 05d2378230 Merge "Add /mnt/vendor rw mount point for vendor partitions." into pi-dev am: b35c019d5c
am: 5026903c7a

Change-Id: I6425d971a25b0eb485ec301375aea9e02c6ed934
2018-04-17 14:03:12 -07:00
TreeHugger Robot b35c019d5c Merge "Add /mnt/vendor rw mount point for vendor partitions." into pi-dev 2018-04-17 19:16:55 +00:00
Tri Vo 0b66969ba0 Add /mnt/vendor rw mount point for vendor partitions.
Changes to init's behavior during early mount:
1. Mounting of tmpfs on /mnt is moved from init stage to early mount.
2. init creates /mnt/vendor used to mount vendor partitions.
3. If a device tree fstab entry for early mount specifies a mount point
under /mnt/vendor e.g. /mnt/vendor/foo, init will create
/mnt/vendor/foo mount point.

Bug: 64905218
Test: change dt fstab entry to mount persist to /mnt/vendor/persist;
mount point is created correctly, and partition is mounted in early
mount. See go/pag/1069774
Test: device boots with /mnt/vendor and previous contents of /mnt present,
and selinux label "mnt_vendor_file" is applied correctly.
Test: cts-tradefed run commandAndExit cts --skip-all-system-status-check
--primary-abi-only --skip-preconditions -m CtsAppSecurityHostTestCases
-t android.appsecurity.cts.PermissionsHostTest
Change-Id: I3739130739eadf508355c7f2531366fcaed74175
Merged-In: I3739130739eadf508355c7f2531366fcaed74175
(cherry picked from commit b511475664)
2018-04-17 11:19:44 -07:00
Paul Lawrence 8678c47c6a Merge "Fix FDE" into pi-dev am: b3b1a5eacf
am: e233757948

Change-Id: I89ac00fd258cc71de2542e94563869242bc7c99e
2018-04-17 10:17:52 -07:00
Tri Vo b511475664 Add /mnt/vendor rw mount point for vendor partitions.
Changes to init's behavior during early mount:
1. Mounting of tmpfs on /mnt is moved from init stage to early mount.
2. init creates /mnt/vendor used to mount vendor partitions.
3. If a device tree fstab entry for early mount specifies a mount point
under /mnt/vendor e.g. /mnt/vendor/foo, init will create
/mnt/vendor/foo mount point.

Bug: 64905218
Test: change dt fstab entry to mount persist to /mnt/vendor/persist;
mount point is created correctly, and partition is mounted in early
mount. See go/pag/1069774
Test: device boots with /mnt/vendor and previous contents of /mnt present,
and selinux label "mnt_vendor_file" is applied correctly.
Test: cts-tradefed run commandAndExit cts --skip-all-system-status-check
--primary-abi-only --skip-preconditions -m CtsAppSecurityHostTestCases
-t android.appsecurity.cts.PermissionsHostTest
Change-Id: I3739130739eadf508355c7f2531366fcaed74175
2018-04-17 10:15:07 -07:00
Mark Salyzyn 64d97d8761 lmkd: limit capability set to minimum
Set F() capability set and 'drop' lmkd from AID_ROOT to AID_LMKD uid
and from AID_ROOT to AID_LMKD and AID_SYSTEM gid.

/dev/memcg/memory.pressure defaults to root.root mode 0000, set it up
as root.system mode 0040 to allow lmkd read access.

Instrument failure to set SCHED_FIFO.

Annotate access points that require elevated capabilities.

Test: check /proc/`pidof lmkd`/status for capability set
Test: lmkd_unit_test
Bug: 77650566
Change-Id: I986081a0434cf6e842b63a55726380205b30a3ea
2018-04-16 14:51:56 -07:00
Paul Lawrence 7fdcbdfc7b Fix FDE
Need a larger tmpfs to stop crashes
Need to run start-zygote after mounting the real data

Test: Cherry-pick ag/3898232. System boots, can set pattern, system
      reboots. Wifi works at all points.
Bug: 76452634

Change-Id: Id24241db940d352fd3bcdef594b5358854c6f71d
2018-04-16 12:58:14 -07:00
Yifan Hong 3b738b36f1 Merge changes from topic "healthd_deprecate2" into pi-dev am: 7498160272
am: b36fb13bf3

Change-Id: I9b3fbf4b55536bb80e58bcd0853f2a31343ebc93
2018-04-05 13:14:03 -07:00
Yifan Hong fd1aa70a0f healthd: add healthd.rc
Split healthd section from init.rc into its own. This allows
healthd.rc to be excluded from the build when healthd is excluded.

Test: builds
Test: exclude healthd from build, healthd.rc is not installed
Bug: 77541952
Change-Id: I1c055f14c5862631f359fd0029289da8f43af063
2018-04-04 14:08:04 -07:00
Logan Chien d66855f049 Merge "Allow VNDK-SP extensions to use vendor lib" am: 602af1c488 am: 1cf05129c0
am: 1585f471e7

Change-Id: I2b8d3ac43b770846222c074f2a800f189a6ccf72
2018-03-30 08:47:39 +00:00
Logan Chien 1585f471e7 Merge "Allow VNDK-SP extensions to use vendor lib" am: 602af1c488
am: 1cf05129c0

Change-Id: I6a33ff42ac895762fe89e1ebe05165f07d0a83d9
2018-03-30 08:37:29 +00:00
Logan Chien e9aaadfb2b Allow VNDK-SP extensions to use vendor lib
This commit adds a wildcard linker namespace link between the "vndk"
namespace and the "sphal" namespace of the system processes.  This is
created for VNDK-SP-Ext to load vendor libs in "sphal" namespace.

Bug: 77249955
Test: lunch aosp_walleye-userdebug && make -j8  # runs unit tests
Test: lunch aosp_sailfish-userdebug && make -j8  # runs unit tests
Test: Create a VNDK-SP-Ext, link to vendor libs, and run it.
Change-Id: I71b0fb604a84272156aa119130c272f891847008
Merged-In: I71b0fb604a84272156aa119130c272f891847008
(cherry picked from commit fbaf9767b51891491903521c24b0d4a1ec1c87e8)
2018-03-30 13:30:14 +08:00
Logan Chien 8667747a0e Allow VNDK-SP extensions to use vendor lib
This commit adds a wildcard linker namespace link between the "vndk"
namespace and the "sphal" namespace of the system processes.  This is
created for VNDK-SP-Ext to load vendor libs in "sphal" namespace.

Bug: 77249955
Test: lunch aosp_walleye-userdebug && make -j8  # runs unit tests
Test: lunch aosp_sailfish-userdebug && make -j8  # runs unit tests
Test: Create a VNDK-SP-Ext, link to vendor libs, and run it.
Change-Id: I71b0fb604a84272156aa119130c272f891847008
2018-03-29 17:18:40 +08:00
Jerry Zhang a6f1a54164 Merge "Remove sys.usb.ffs.mtp.ready property" into pi-dev am: ca47ae3513
am: 0b2ecd9d57

Change-Id: Iee85cdc94ea70d9b4ca81eb9bd56491763a4809d
2018-03-27 03:57:55 +00:00
Jerry Zhang 50108b3f49 Remove sys.usb.ffs.mtp.ready property
With the usb control fd changes, there
is no longer a need to wait for this
property to trigger before starting the
connection.

Bug: 72877174
Test: switch config to mtp/ptp
Change-Id: Ib29419e7948025be3f3295106cad18943d314f0b
2018-03-22 11:35:20 -07:00
Benedict Wong 1f70d1cac5 Merge "Set SPI Allocation Timeout to One Hour" into pi-dev 2018-03-21 17:03:39 +00:00
Paul Mclean 5702765137 Merge "(re)ntegrate Native MIDI API into NDK - add libamidi" 2018-03-20 19:43:18 +00:00
Benedict Wong 89c9c9b18b Set SPI Allocation Timeout to One Hour
This change increases the default expiration length of an SA to 1h. The
IPsec API expects that SPIs are allocated indefinitely, but potential
for instability requires that these get cleaned up automatically. As
such, the duration was chosen as a sane, but long timeout value.

Bug: 72316671
Test: Added CTS tests to enforce this behavior
Merged-In: I47aef9cea4a09da253b2ec048a8797af5fa25529
Change-Id: I47aef9cea4a09da253b2ec048a8797af5fa25529
(cherry picked from commit 00308f8554)
2018-03-20 11:32:40 -07:00
Jiyong Park 6b791b54b0 Merge "/postinstall/* does not search for a lib in /vendor or /odm" am: ef454589e4
am: 6a8b7c4061

Change-Id: I5490aa9a2b6852a16e5d35942c350f3618e8bbc7
2018-03-20 16:53:21 +00:00
Jiyong Park 955029aa1b /postinstall/* does not search for a lib in /vendor or /odm
There has been no section in the linker config file for the binaries
under /postinstall. As a result, the binaries were run with the legacy
default config where /vendor/lib and /odm/lib are added to the search
paths. This is causing selinux denials as the binaries for OTA are not
allowed to access /vendor/lib or /odm/lib, but the dynamic linker calls
realpath(3) on the paths to canonicalize them.

Fixing the issue by letting /postinstall/* binaries to run with a
dedicated linker namespace config, where /vendor/lib and /odm/lib are
not added to the search paths. Not having the paths is okay because
he OTA binaries should not have dependency to the libs there.

Bug: 75287236
Test: do the OTA, selinux denials on postinstall_file is not shown
Test: above test should pass on  wahoo, marlin and pre-treble devices
Merged-In: I49c11a0929002adfef667890c0a375c2b41054f4
Change-Id: I49c11a0929002adfef667890c0a375c2b41054f4
(cherry picked from commit d7e6cb27b6)
2018-03-21 01:25:55 +09:00
Paul McLean 9f60e15174 (re)ntegrate Native MIDI API into NDK - add libamidi
add libamidi to system libs

Bug: 30252756
Bug: 37090545

Test: Build and install NativeMidiTestbed app.
  Run NativMidiTestbed app on DUT.
  Connect to PreSonus AudioBox 22VSL.
  Connect MIDI interface to external MIDI synthesizer. Verify connection.
  Verify MIDI messages sent to external MIDI synthesizer.
  Verify MIDI messages received from external MIDI synthesizer.

Change-Id: Id4bcebbbeb6dc342dbd87b916f1bc78ae32f53db
2018-03-20 09:10:24 -06:00
Jiyong Park d7e6cb27b6 /postinstall/* does not search for a lib in /vendor or /odm
There has been no section in the linker config file for the binaries
under /postinstall. As a result, the binaries were run with the legacy
default config where /vendor/lib and /odm/lib are added to the search
paths. This is causing selinux denials as the binaries for OTA are not
allowed to access /vendor/lib or /odm/lib, but the dynamic linker calls
realpath(3) on the paths to canonicalize them.

Fixing the issue by letting /postinstall/* binaries to run with a
dedicated linker namespace config, where /vendor/lib and /odm/lib are
not added to the search paths. Not having the paths is okay because
he OTA binaries should not have dependency to the libs there.

Bug: 75287236
Test: do the OTA, selinux denials on postinstall_file is not shown
Test: above test should pass on  wahoo, marlin and pre-treble devices
Change-Id: I49c11a0929002adfef667890c0a375c2b41054f4
2018-03-20 10:12:00 +09:00
Elliott Hughes ce232d572d Add NDK folks to OWNERS for library configuration.
Bug: N/A
Test: N/A
Change-Id: I868f1710ba2a5f9a60b4ae6fe4900f2b38095114
2018-03-19 10:56:07 -07:00
Benedict Wong 061dbd188d Merge "Set SPI Allocation Timeout to One Hour" am: 78ca1fecef
am: 3c7b751619

Change-Id: I9c8ca2e5019a380fc45621b148c9b2e950d01987
2018-03-16 21:10:28 +00:00
Benedict Wong 78ca1fecef Merge "Set SPI Allocation Timeout to One Hour" 2018-03-16 17:45:20 +00:00
Bowgo Tsai 6795ef7bb2 Support /odm partition
Bug: 64195575
Test: boot a device

Change-Id: I52c0da32aef80c060f6efa47ddf62577fb543ad8
Merged-In: I52c0da32aef80c060f6efa47ddf62577fb543ad8
(cherry picked from commit 39476ffd8a)
2018-03-16 15:02:00 +08:00
Bowgo Tsai dc377cef1c Merge "Support /odm partition" am: 97debc7055
am: 6b31653f96

Change-Id: I75b3ffadcd2cec233438c183258c2ad5782b61d4
2018-03-16 04:13:33 +00:00
Benedict Wong 00308f8554 Set SPI Allocation Timeout to One Hour
This change increases the default expiration length of an SA to 1h. The
IPsec API expects that SPIs are allocated indefinitely, but potential
for instability requires that these get cleaned up automatically. As
such, the duration was chosen as a sane, but long timeout value.

Bug: 72316671
Test: Added CTS tests to enforce this behavior
Change-Id: I47aef9cea4a09da253b2ec048a8797af5fa25529
2018-03-14 18:24:23 +00:00
Bowgo Tsai 39476ffd8a Support /odm partition
Bug: 64195575
Test: boot a device
Change-Id: I52c0da32aef80c060f6efa47ddf62577fb543ad8
2018-03-14 16:19:03 +08:00
Bowgo Tsai ca8b2c6995 Adding /odm support
Treble system-as-root GSI needs to work on devices with and without /odm
partition. This change creates the following symlinks for devices without
/odm partition:

  /odm/app ->/vendor/odm/app
  /odm/bin ->/vendor/odm/bin
  /odm/etc ->/vendor/odm/etc
  /odm/firmware ->/vendor/odm/firmware
  /odm/framework ->/vendor/odm/framework
  /odm/lib -> /vendor/odm/lib
  /odm/lib64 -> /vendor/odm/lib64
  /odm/overlay -> /vendor/odm/overlay
  /odm/priv-app -> /vendor/odm/priv-app

For devices with odm partition, /odm will be used as the mount point and
those symlinks will be hidden after mount.

Bug: 70678783
Test: boot a A/B device without /odm partition, checks those symlinks exist
Test: boot a A/B device with /odm partition, checks those symlinks don't exist
Change-Id: I4d960b52e2754f461188f3ab562c751f502046ea
(cherry picked from commit 00749affc4)
2018-03-13 08:41:50 +08:00
Bowgo Tsai 25994e6a9c Merge "Adding /odm support" am: e25624aaea
am: 9a1eed4fda

Change-Id: I3b0788aa5ef55537169fbda24acc50daadcc22be
2018-03-12 19:47:47 +00:00
Bowgo Tsai 00749affc4 Adding /odm support
Treble system-as-root GSI needs to work on devices with and without /odm
partition. This change creates the following symlinks for devices without
/odm partition:

  /odm/app ->/vendor/odm/app
  /odm/bin ->/vendor/odm/bin
  /odm/etc ->/vendor/odm/etc
  /odm/firmware ->/vendor/odm/firmware
  /odm/framework ->/vendor/odm/framework
  /odm/lib -> /vendor/odm/lib
  /odm/lib64 -> /vendor/odm/lib64
  /odm/overlay -> /vendor/odm/overlay
  /odm/priv-app -> /vendor/odm/priv-app

For devices with odm partition, /odm will be used as the mount point and
those symlinks will be hidden after mount.

Bug: 70678783
Test: boot a A/B device without /odm partition, checks those symlinks exist
Test: boot a A/B device with /odm partition, checks those symlinks don't exist
Change-Id: I4d960b52e2754f461188f3ab562c751f502046ea
2018-03-09 17:34:29 +08:00
Luis Hector Chavez 0ee6c22f58 Merge "init.rc: Mount /mnt with nodev,nosuid,noexec" am: 6698482ca4 am: 0802d45683
am: cfd9a3af86

Change-Id: I9be6cffa4deb4df7c4b781e2900d7fa79fd558ca
2018-02-15 14:47:58 +00:00
Luis Hector Chavez b0d8b26e0f Merge "init.rc: Remount / with MS_REMOUNT|MS_BIND" am: 008576080e am: c37d85953e
am: 655d6d5451

Change-Id: Idb18188ad9b3b667411d428ae616498748b8281a
2018-02-15 14:43:04 +00:00
Treehugger Robot 7238eca684 Merge "init.rc: Add nodev,noexec,nosuid to /config" 2018-02-15 03:01:33 +00:00
Luis Hector Chavez 8774945036 init.rc: Add nodev,noexec,nosuid to /config
This change adds some additional flags to the /config mount. This is to
reduce the number of mounts with unnecessary privileges.

Bug: 73255020
Test: aosp_sailfish still boots
Test: CtsAppSecurityHostTestCases {ExternalStorageHostTest,StorageHostTest}
Merged-In: If3409d917cdf76a67ebfb7c4035a3ae8fee6189f
Change-Id: If3409d917cdf76a67ebfb7c4035a3ae8fee6189f
2018-02-14 20:58:56 +00:00
Luis Hector Chavez 465c8f307f init.rc: Add nodev,noexec,nosuid to /config
This change adds some additional flags to the /config mount. This is to
reduce the number of mounts with unnecessary privileges.

Bug: 73255020
Test: aosp_sailfish still boots
Test: CtsAppSecurityHostTestCases {ExternalStorageHostTest,StorageHostTest}
Change-Id: If3409d917cdf76a67ebfb7c4035a3ae8fee6189f
2018-02-14 12:55:48 -08:00
Luis Hector Chavez 081aa0a303 init.rc: Mount /mnt with nodev,nosuid,noexec
This change adds some additional flags to /mnt. This is to reduce
the number of mounts with unnecessary flags.

Bug: 73255020
Test: aosp_sailfish still boots
Test: CtsAppSecurityHostTestCases {StorageHostTest,ExternalStorageHostTest}
Test: CtsOsTestCases StorageManagerTest
Test: find /mnt  | egrep -v '^/mnt/runtime/(default|read|write)/emulated' | \
      xargs ls -lZd  # Shows no character devices or executable files
Change-Id: I54739133119d9626ebeb2ef9a1c127f7a90fa098
2018-02-14 20:51:40 +00:00
Luis Hector Chavez 30780a7305 init.rc: Remount / with MS_REMOUNT|MS_BIND
Since we only want to change the ro flag on / (and leave all other mount
flags alone), this can also be achieved by passing MS_REMOUNT|MS_BIND,
even if the mount is not a bind-mount.

This aims to make running Android within a user namespace easier, since
remounts without the MS_BIND flag are forbidden.

Bug: 73255020
Test: aosp_sailfish still boots
Test: rootfs on / type rootfs (rw,seclabel)
      /dev/root on / type ext4 (ro,seclabel,relatime,data=ordered)
Change-Id: I2f89a8badfc467db47304c9355648e8fd8ad1272
2018-02-14 20:51:06 +00:00
Justin Yun f88ab0b4ec Merge "Move libz to llndk from vndk-sp for non-VNDK-enforced devices." am: 524254f3df am: 7987a191f6
am: e86a98bfac

Change-Id: I894549e82aebc48e39133ccc9138410b7ce70c82
2018-02-14 09:45:46 +00:00
Justin Yun 8065a608a6 Move libz to llndk from vndk-sp for non-VNDK-enforced devices.
For non-VNDK-enforced devices, libz cannot be installed in vndk-sp
to avoid CTS test failure.
Move libz to llndk from vndk-sp for generating the namespace
configuration from ld.config.vndk_lite.txt.

Bug: 73296261
Test: run android.jni.cts test on marlin/sailfish
Change-Id: I1b8b43cd87dc8dfdd2667001ae1e50d9eaedf93d
2018-02-14 16:11:14 +09:00
Luis Hector Chavez 9420397267 Merge "init.rc: Perform some mounts with nodev,nosuid,noexec" am: cd66e4c6ea am: 8cb681fa1f
am: c876c660e0

Change-Id: I588550f4cad7e18067d916a6e1b4eed3b1fb2265
2018-02-13 23:07:24 +00:00
Luis Hector Chavez f8a7e37b2d init.rc: Perform some mounts with nodev,nosuid,noexec
This change adds some additional flags to some mounts. This is to reduce
the number of mounts with these flags.

Bug: 73255020
Test: aosp_sailfish still boots
Change-Id: I285e6d7b3dcc19f691a3d6780e7d3a3a5d7cb3de
2018-02-12 23:17:10 +00:00
Justin Yun eab887b60e Merge changes from topic "vndk-sp-list-update" am: 4c0ee1e8a0 am: 6edfca6e3b
am: 0d77d80aad

Change-Id: I366d50eee8edb40f243c551a2051d5efebdb3e72
2018-02-08 08:14:12 +00:00
Justin Yun 27bdc37fac Rename namespace configuration source files.
For strict VNDK runtime restriction, use ld.config.txt as a source
file. For treblized devices without BOARD_VNDK_VERSION, use
ld.config.vndk_lite.txt file.

Test: Build and boot on Pixel 2017 and 2018 devices.
Change-Id: Ie5b77facd4c11bc73219ecf13ad1298ac5d60d8e
2018-02-08 08:46:59 +09:00
Justin Yun 8a9a8eeb85 Use actual VNDK list for non-VNDK-enforcing devices
Rename ld.config.txt.in to ld.config.vndk.txt and
ld.config.txt to ld.config.vndk_light.txt.

For FULL_TREBLE devices without BOARD_VNDK_VERSION, update the VNDK
library list in ld.config.vndk_light.txt with the actual VNDK list.

Bug: 69526027
Test: Build marlin/sailfish and check boot
Change-Id: Idbb0cc97d11037c1493d4739e84961297ce51dbd
Merged-In: Idbb0cc97d11037c1493d4739e84961297ce51dbd
2018-02-08 08:33:15 +09:00
Justin Yun 181056b424 Use actual VNDK list for non-VNDK-enforcing devices
Rename ld.config.txt.in to ld.config.vndk.txt and
ld.config.txt to ld.config.vndk_light.txt.

For FULL_TREBLE devices without BOARD_VNDK_VERSION, update the VNDK
library list in ld.config.vndk_light.txt with the actual VNDK list.

Bug: 69526027
Test: Build marlin/sailfish and check boot
Change-Id: Idbb0cc97d11037c1493d4739e84961297ce51dbd
2018-02-07 05:36:51 +09:00
bohu 5b3196430b Merge "emulator: not start adbd upon ro.kernel.qemu=1" am: 7c271bdc3b am: 466b098b87
am: 83255e337a

Change-Id: I26732caa7cc8346e27ec4c8e4816b5cace2577cd
2018-02-05 06:39:23 +00:00
bohu b40193e50a emulator: not start adbd upon ro.kernel.qemu=1
clean up emulator specific rules.

BUG: 72900827

Change-Id: Ica60838562fd773bcde5752c11586183ce55b71a
2018-02-03 17:22:15 -08:00
Logan Chien 1519e3c9b3 Merge "ld.config.txt: Link vendor vndk ns to default ns" am: 1e11f5f709 am: 161efac4f0
am: f20d8a1f1e

Change-Id: I915c4409df864bbb69ccb9b8f684c98ce3a3892d
2018-01-26 05:02:45 +00:00
Logan Chien 1e11f5f709 Merge "ld.config.txt: Link vendor vndk ns to default ns" 2018-01-26 04:45:26 +00:00
Jaekyun Seok 207a211804 Merge "Support /product partition" am: 8f324542a2 am: 10e1ec7de3
am: 83ffef2cb1

Change-Id: Ia1933bbede3db2489151e5ab8ead574582b87f7a
2018-01-25 04:17:36 +00:00
Jaekyun Seok dff165d3a2 Support /product partition
This CL will enable reading /product/build.prop and add product paths
into ld.config.txt.in.

Bug: 64195575
Test: tested with 'PRODUCT_PRODUCT_PROPERTIES := ro.product.abc=abc' on
sailfish

Change-Id: Ie996def20e25dc1afe0c74af2096af844934b2dc
2018-01-25 09:37:20 +09:00
Andreas Huber a03134ea22 Fingerprint data is now stored in one of two ways depending on the
shipping API version:

For devices shipped before Android P nothing changes, data
is stored under /data/system/users/<user-id>/fpdata/...

Devices shipped from now on will instead store
fingerprint data under /data/vendor_de/<user-id>/fpdata.

Support for /data/vendor_de and /data/vendor_ce has been added to vold.

Bug: 36997597
Change-Id: I83f87e88d1731e515b459a3d6d5bf3104afe6cfe
Test: manually
2018-01-23 14:29:40 -08:00
Logan Chien ea4a2bdd44 ld.config.txt: Link vendor vndk ns to default ns
This commit links the vndk namespace of vendor processes to the default
namespace of vendor processes.  allow_all_shared_libs is specified so
that VNDK extensions can link with other vendor libraries in
/vendor/lib[64].

Bug: 69824336

Test: Create a vndk-ext lib that links to vendor lib and use that
vndk-ext lib in a vendor executable.

Change-Id: Ibd3dc2e5f0f2e6ff9fc9677c6bcfcf87a1a70e50
2018-01-23 11:02:54 +08:00
Logan Chien 736e4f1079 Merge "ld.config.txt: Move vendor vndk to vndk namespace" am: c6805c3e9c am: 0779a259b7
am: 5aa3d78ea7

Change-Id: I68cbb5429e57f6f2a72775c5fc50b4b5e20b8cd4
2018-01-23 02:56:28 +00:00
Logan Chien 91b3fb4f3f ld.config.txt: Move vendor vndk to vndk namespace
This commit moves /{odm,vendor}/lib[64]/vndk[-sp] to vndk namespace so
that vndk extension can override vndk libs from
/system/lib[64]/vndk[-sp].

Bug: 69824336

Test: Create libutils_ext locally and it can be called from
android.hardware.nfc@1.0-service.

Change-Id: Id63e58d665fa41eda85950ee1d16fe06c35cd7d3
2018-01-22 11:30:56 +08:00
Max Bires 905c99b80e Merge "Adding /data/local/traces for traceur app" am: 658e4ddd03 am: 69c428e5a6
am: cd4fa12263

Change-Id: I0ba68a132cc840b0d5b63a9d22b54276b8c168de
2018-01-20 01:02:10 +00:00
Treehugger Robot 658e4ddd03 Merge "Adding /data/local/traces for traceur app" 2018-01-20 00:51:30 +00:00
TreeHugger Robot 82b85d0b7c Merge "Change /configfs/sdcardfs to 0770" 2018-01-19 21:57:18 +00:00
Max Bires 181d11c5cb Adding /data/local/traces for traceur app
Traceur app is being split out of shell user. Previously it logged to
shell's bugreports directory. It no longer has access, so it needs a
new, user-friendly file location to store trace data.

Bug:68126425
Test: Traceur can write and shell can read from this directory
Change-Id: I9e344973fd43eb5699f7a848524e20b06458fb77
2018-01-19 09:37:44 -08:00
Justin Yun 93b1df1cd1 Merge "Add VNDK version suffix in ld.config.txt on build time." am: 447280cea0 am: 3060be356f
am: 5a31c03fa6

Change-Id: Ie58dca02b6f267b882b8f1f59cda57c141c8892c
2018-01-17 08:00:29 +00:00
Justin Yun cbbf195e46 Add VNDK version suffix in ld.config.txt on build time.
As we use different ld.config.txt per version, we don't need to
substitute the VNDK_VER on run time.
Remove all ${VNDK_VER} from the linker namespace configuration files.

Bug: 70603313
Test: build and boot GSI for walleye and sailfish
Change-Id: Ief8aee5c3308b2462cafaffc2423deda4e51a7bb
2018-01-17 12:14:25 +09:00
Oscar Shu 128274a3f2 Merge "Firmware dump create directory" am: da007e0deb am: b4d9751eab
am: b8deb4de2f

Change-Id: I3eba1b745d75d8cc0a3eba7cf0fea7ad54b992c2
2018-01-17 00:09:03 +00:00
Oscar Shu da007e0deb Merge "Firmware dump create directory" 2018-01-16 23:57:15 +00:00
Chenbo Feng dc95eeadf4 Merge "Mount eBPF file system and cgroupv2 root directory" am: 4719ecd28c am: 7a65861d7c
am: 94cff89571

Change-Id: Id2a58f55f16994dba0b6dbf86d4724943dbc8141
2018-01-16 22:15:25 +00:00
Chenbo Feng 2cba6f2e0e Mount eBPF file system and cgroupv2 root directory
Mount the eBPF file system under /sys/fs/bpf to allow netd to pin and
retrieve persistent eBPF map object from the file system. It helps the
system to maintain a consistent eBPF data store when netd crashed and
restart. Mount the cgroupv2 module and use the root folder of it to
monitor network statistics through eBPF program attached.

Test: eBPF map object show up under /sys/fs/bpf after netd start.
Bug: 30950746
Change-Id: Ie475112116603798fe75a75c5a84f4bbe5b942ec
2018-01-16 21:45:25 +00:00
Jeff Vander Stoep 538caefba9 Merge "OWNERS: add myself" am: 4ba3ebbc2f am: d64b97e0fd
am: 14bf561f03

Change-Id: Idf3ff9fe3089b8a9788cbe260e94456b680d1dc6
2018-01-16 20:54:47 +00:00
xshu 9a7a5b61c4 Firmware dump create directory
Setting up infanstructure for vendor tombstone in dir:
/data/vendor/tombstones

Wifi specific dumps will go into:
/data/vendor/tombstones/wifi

Bug: 70170285
Test: compile, run on device.
Change-Id: Ie16dd8236d9b5df19adb9818b4c62ce01e0d0b10
2018-01-16 19:10:57 +00:00
Jeff Vander Stoep e2f77d8ef1 OWNERS: add myself
Test: none
Change-Id: I150226c19370a2c5f06781003ec88befa0e91da7
2018-01-12 13:31:54 -08:00
Daniel Rosenberg 7903523015 Change /configfs/sdcardfs to 0770
Change-Id: I0a66f6b3ebc3dee398e4f23f5a58ebf7d62cc4c3
Bug: 69929297
Test: setenforce 0
      su
      mkdir /config/sdcardfs/test
      su u0_a0,u0_a0,u0_a0
      echo 10000 > /config/sdcardfs/test/appid
      Write should fail
Signed-off-by: Daniel Rosenberg <drosen@google.com>
2018-01-10 17:43:51 -08:00
Justin Yun d7bfaea62b Merge "Do not append VNDK version if VNDK is not used" am: 4d281880e0 am: 9c378b0e37
am: 30ac0d7a27

Change-Id: I4493f92bf877d9a792837df5c062570f972a6901
2018-01-10 23:52:34 +00:00
Justin Yun dd16301bab Do not append VNDK version if VNDK is not used
If BOARD_VNDK_VERSION is not defined, ro.vndk.version will not be
set. In this case, the device, is not able to use versioned
configuration files.
Check BOARD_VNDK_VERSION to append the VNDK version to the namespace
configuration files.

Bug: 71730104
Test: Check boot on both 2016 and 2017 Pixel devices.
Change-Id: I1df27c75de42a526768a156387f22a934cda6d72
2018-01-11 08:29:54 +09:00
Siarhei Vishniakou 439efda1e7 Merge "Allow input system access to /dev/v4l-touch" am: f6363989f4 am: 31209d7ada
am: f82541140b

Change-Id: I7ea315e14fc97ade4f49293b13fc8438b4e19024
2018-01-09 22:11:48 +00:00
Treehugger Robot f6363989f4 Merge "Allow input system access to /dev/v4l-touch" 2018-01-09 21:45:52 +00:00
Justin Yun fc86b1fee0 Merge "Removed unused part in ld.config.txt.in" am: 8fa3e72846 am: 7b7339d339
am: ebf514bab3

Change-Id: Ib94c656453658409081f6820a5901ab75de8fa60
2018-01-09 20:17:50 +00:00
Justin Yun 939f06b429 Removed unused part in ld.config.txt.in
In the namespace with "isolated = false", "permitted.paths" is not
used.

Bug: 71727966
Test: walleye device boot
Change-Id: I6f624be3c4e2c4070bb784632d0757408ec12db0
2018-01-09 14:13:40 +09:00
Jeff Sharkey f431cd84e4 Merge changes from topic "resgidz" am: a7004e5fed am: b162da3a47
am: c16340c646

Change-Id: Iaf01b79c1e51f4cba06ee9ea6227c00a3cec4d4d
2018-01-09 01:49:29 +00:00
Steve Muckle a1c5978967 Merge "rootdir: make sure the /odm mountpoint is always available" am: fcec40de0b am: ada4b7782d
am: 34f29a86fd

Change-Id: Icbc30f9ed92163119307d7c5f25e06d9cd93e9a4
2018-01-09 01:22:16 +00:00
Jeff Sharkey a7004e5fed Merge changes from topic "resgidz"
* changes:
  Add reserved disk GID to critical component.
  Set reserved GID when setting reserved blocks.
  Allocate GID to use reserved disk space.
2018-01-08 18:17:50 +00:00
Jeff Sharkey 9410d572fb Add reserved disk GID to critical component.
We recently created a new GID that can be granted to critical system
processes, so that the system is usable enough for the user to free
up disk space used by abusive apps.

Test: builds, boots
Bug: 62024591
Change-Id: Ia5af7535cc05a214f8720ac08c594c6db888597a
2018-01-07 19:25:00 -07:00
Steve Muckle 1a3e3065fb rootdir: make sure the /odm mountpoint is always available
The odm partition will eventually be required. Prepare for this by
creating its mount point.

Bug: 37322799
Test: run cts-dev -m CtsPermissionTestCases
Change-Id: Ibd031b68dd7328c853ded401bb2690dbd6675141
2018-01-04 08:45:20 -08:00
Ricky Wai 02fbb27e73 Merge "Create Network Watchlist data folder for ConfigUpdater" 2018-01-03 14:16:41 +00:00
Siarhei Vishniakou 38d4352fce Allow input system access to /dev/v4l-touch
Bug: 62940136
Test: read /dev/v4l-touchX from inputflinger

Change-Id: I394686e4167855f50ddd6ff9aebcf3c94f6550b0
2017-12-22 17:06:24 -08:00
Logan Chien 2fd29edc71 Merge "Separate VNDK libs into another linker namespace" am: b00ed37a66 am: 3d5afa7b34
am: 2a736774dc

Change-Id: I11667b8f5e5bb450fb355fcfc6d1e533be78958c
2017-12-21 20:53:20 +00:00
Logan Chien b00ed37a66 Merge "Separate VNDK libs into another linker namespace" 2017-12-21 01:32:04 +00:00
Jiyong Park 3688e713e7 Merge "/vendor/lib/hw is removed from search paths for vendor default ns" am: 3388af49e6 am: 17f0ae765e
am: b7d35b7d09

Change-Id: Ib638acc46f3c96ca459755a06df977799dd90822
2017-12-20 02:29:47 +00:00
Treehugger Robot 3388af49e6 Merge "/vendor/lib/hw is removed from search paths for vendor default ns" 2017-12-20 02:19:14 +00:00
Jiyong Park 483cd2e2fe /vendor/lib/hw is removed from search paths for vendor default ns
Shared libraries in the directory should be dlopened with full file
paths. That was a workaround for some legacy prebuilt binaries and they
are all now fixed. Thus removing.

Bug: 70551668
Test: walleye, aosp_walleye, taimen, aosp_taimen boot to the UI

Change-Id: Ifb123b09c13f873cbefa7784e76dfe5f35575a8d
2017-12-19 21:43:25 +09:00
Logan Chien 225b71d8c5 Separate VNDK libs into another linker namespace
This commit extracts /system/lib[64]/vndk and /system/lib[64]/vndk-sp
into another namespace in the vendor section.  This commit is necessary
because LLNDK libraries (e.g. libc or libnativewindow) may otherwise
link to the shared libraries in /system/lib[64]/vndk-sp, which may be
older than the one LLNDK libraries built with.

Test: aosp_walleye boots
Bug: 70816018
Change-Id: I6fceb0da92c978ad940af91f5efe84e673c9247e
2017-12-19 15:29:48 +08:00
Jiyong Park 0327278abf Merge "Do not use versioned VNDK directory in vendor partition" am: 3459e5823e am: c56fafa4fc
am: 963685ed53

Change-Id: Ib19db37bdb6d030806f42ac9ecbeb88f71007456
2017-12-18 05:07:00 +00:00
Ricky Wai 88d5dcbd81 Create Network Watchlist data folder for ConfigUpdater
Bug: 63908748
Test: Able to boot

Change-Id: I8db6b5706cce17a60e2a7db9be80020f8681531d
2017-12-16 19:18:31 +00:00
Jiyong Park baca81639c Merge "Re-format ld.config.*.txt files" am: eef035f641 am: ca33a874fe
am: 6546c650fa

Change-Id: If26449caae94fb2e372c382d25033930f3c6d5b5
2017-12-15 01:06:13 +00:00
Jiyong Park 60a2966fc9 Do not use versioned VNDK directory in vendor partition
Paths for extended VNDK libs don't need version suffix, because there
always is the single version that the vendor(odm) modules are built
against.

Bug: 70601582
Test: walleye boots to the UI.
Test: No further test is possible since we don't have extended VNDK yet
in our source tree.

Change-Id: Idbf4bb820ddb136d00744f64ddf6ebe6442ad16e
2017-12-14 21:43:04 +09:00
Jiyong Park 2498e1b1d3 Re-format ld.config.*.txt files
Re-format the files by splitting lines using +=.

Also add /odm/${LIB} where needed.

A few directories that are no longer required are removed from the
search paths and permitted paths.

Test: walleye and sailfish boots to the UI, renderscript, camera,
camcodder, sound, etc. are working.

Change-Id: I3150f0c3d35130d6b1a665e3f0813d33b1b7f546
2017-12-14 21:43:04 +09:00
Logan Chien 97772e425b android.hardware.graphics.allocator@2.0 is no longer VNDK-SP
The interface lib has been in VNDK-SP because
android.hardware.graphics.mapper@1.0 was using it. However, since the
dependency has gone [1], there is no need keep it in VNDK-SP. The
VNDK-SP set should be kept as small as possible because libs in VNDK-SP
are subject to double-loading.

[1] 79d13ff0f5

Bug: 69480083
Test: /system/lib64/vndk-sp/android.hardware.graphics.allocator@2.0.so
disappears.
Test: sailfish boots

Change-Id: I0e6518f169dd620d6b1a9ada47754e371ef4a739
Merged-In: I0e6518f169dd620d6b1a9ada47754e371ef4a739
(cherry picked from commit 9d898f3678)
2017-12-13 17:05:14 +09:00
Jiyong Park 52a2137d05 Merge "/vendor/priv-app is added to the permitted paths for the default ns" am: 5dde5e38d2 am: 3c28804815
am: d1a4cbd742

Change-Id: I0ca43f5107d451ecbdb1674fd1436292b9aa3506
2017-12-13 03:14:04 +00:00
Vishwath Mohan 3f663e0b29 Merge "Fix asan permitted paths in the default namespace." am: 32c03800c0 am: 22e81897b2
am: c75631bc5e

Change-Id: Ibf5767decc7e5b3b26b389e37caeab33f7986da3
2017-12-13 03:13:12 +00:00
Justin Yun 5029612451 Merge "Add VNDK version for namespace configuration files" am: a6e6780418 am: a159b310d6
am: 635ddcb894

Change-Id: I791663afc81779ce2306b909db46eb82e895a32c
2017-12-13 03:00:29 +00:00
Treehugger Robot 5dde5e38d2 Merge "/vendor/priv-app is added to the permitted paths for the default ns" 2017-12-13 02:34:19 +00:00
Vishwath Mohan 32c03800c0 Merge "Fix asan permitted paths in the default namespace." 2017-12-13 02:08:30 +00:00
Logan Chien bf24c70ad4 Merge "android.hardware.graphics.allocator@2.0 is no longer VNDK-SP" 2017-12-13 01:42:08 +00:00
Justin Yun 210ff9485d Add VNDK version for namespace configuration files
If PLATFORM_VNDK_VERSION is set to a version other than "current",
add the version to the file names of the namespace configuration
files.

Bug: 69883025
Test: device boot
Change-Id: I27377549581125b6c750c1422d0ee4a607dda5e8
2017-12-13 10:31:04 +09:00
Vishwath Mohan cede134907 Fix asan permitted paths in the default namespace.
This CL fixes an error with the asan permitted paths in
ld.config.txt.in.

Bug: 63927538
Test: lunch walleye_asan-userdebug && m -j40
Change-Id: Ica0504cb52ef6e6b3e4ce2deae3ce5984e38cc93
2017-12-12 16:17:41 -08:00
Jiyong Park 9c6587ad1f Merge "Use normalize-path-list" am: c034cd5d04 am: f01f51c41f
am: 4c550887a6

Change-Id: I8d6ef704857de733cdfd380fd28271329e206d3b
2017-12-12 08:13:46 +00:00
Logan Chien 9d898f3678 android.hardware.graphics.allocator@2.0 is no longer VNDK-SP
The interface lib has been in VNDK-SP because
android.hardware.graphics.mapper@1.0 was using it. However, since the
dependency has gone [1], there is no need keep it in VNDK-SP. The
VNDK-SP set should be kept as small as possible because libs in VNDK-SP
are subject to double-loading.

[1] 79d13ff0f5

Bug: 69480083
Test: /system/lib64/vndk-sp/android.hardware.graphics.allocator@2.0.so
disappears.
Test: sailfish boots

Change-Id: I0e6518f169dd620d6b1a9ada47754e371ef4a739
2017-12-12 15:57:53 +08:00
Jiyong Park b52ff3e247 Use normalize-path-list
Let's use the existing macro.

Test: build walleye, boots to the UI.
Change-Id: Ic23d3454c629a02bfd96d0ca19c0c5c068ae7a03
2017-12-12 12:13:38 +09:00
Andreas Gampe 9797e0f35e Merge "ASAN: Remove old list of services" am: e78accb103 am: fc7a327a4a
am: 428fb9525e

Change-Id: I044b3ec691e5f711de62590847f672161a0ce3c7
2017-12-12 00:36:26 +00:00
Treehugger Robot e78accb103 Merge "ASAN: Remove old list of services" 2017-12-12 00:15:31 +00:00
Andreas Gampe 27b8fcdfcf ASAN: Remove old list of services
Remove list of services and support for asan.options. This has not
been used in a while, and there is contention about listing names
of device-specific services.

Bug: 70387666
Test: m
Change-Id: I766c6b3a0c44b6b992a3259a3c4215a688452907
2017-12-11 11:36:17 -08:00
Justin Yun 588f5ba383 Merge "Use versioned VNDK directories in ld.config.txt" am: 84de4c0a89 am: 27e44ad179
am: c82c963e28

Change-Id: I4ac01e17f3930635b900128220d923312b2fbb6d
2017-12-11 02:28:30 +00:00
Justin Yun 44bb46f604 Use versioned VNDK directories in ld.config.txt
All vndk/vndk-sp directories will have version suffix if
"ro.vndk.version" is set.

Bug: 69984421
Bug: 66074376
Test: Build with BOARD_VNDK_VERSION=current and
      BOARD_VNDK_RUNTIME_DISABLE=true. Check boot.

Change-Id: I03849f9f96bc6c7880aa70c517e963aab4e033b8
2017-12-11 10:58:51 +09:00
Treehugger Robot fd3225492b Merge "Fix media on W/T" 2017-12-09 00:48:52 +00:00