Commit graph

2320 commits

Author SHA1 Message Date
Jiyong Park
e04e4e7dfe add llndk|vndksp.libraries.txt to vndk_package
List of llndk and vndk-sp libraries are written in the txt file so that
they can be available at run-time. The information is used by
libnativeloader to configure the classloader-namespace specially for
vendor apks.

Bug: 64882323
Test: build 2017 pixel devices. check that the two files exist on
/system/etc.

Merged-In: Ifbe339a5862f6ef57a8213a14a022765ccf77283
Change-Id: Ifbe339a5862f6ef57a8213a14a022765ccf77283
(cherry picked from commit 26335f89b1)
2017-11-28 01:29:30 +00:00
Vishnu Nair
39b9f7cc18 Merge "Create location to store surface and window trace files on init" am: 3dfba33d67 am: 4d736b5fa5
am: e6c35c8608

Change-Id: I02663a6cb3fd019d104807ac375ed7092e3fddab
2017-11-27 21:37:22 +00:00
Vishnu Nair
4d736b5fa5 Merge "Create location to store surface and window trace files on init"
am: 3dfba33d67

Change-Id: Ibcd26a9644e954d4e9fa5be1d538e45c44fcd1b9
2017-11-27 21:26:25 +00:00
Treehugger Robot
3dfba33d67 Merge "Create location to store surface and window trace files on init" 2017-11-27 21:17:07 +00:00
Vishnu Nair
d09ab7a217 Create location to store surface and window trace files on init
Bug: 64831661
Test: adb shell su root rm /data/misc/wmtrace && adb reboot && adb shell su ls /data/misc/wmtrace
Change-Id: I60979c26a9226534df534abd3d59df309f6ea6ad
2017-11-27 09:54:31 -08:00
Tom Cherry
f8b9d77b81 Merge "Move mkdir /data/nfc/... to rootdir init.rc" am: fa65396ca2 am: 4b3bcf2a10
am: 77ad3f58ae

Change-Id: Ic2ba51690b3dd5b64ea76ec83cb6007b7894810f
2017-11-22 20:13:04 +00:00
Tom Cherry
4b3bcf2a10 Merge "Move mkdir /data/nfc/... to rootdir init.rc"
am: fa65396ca2

Change-Id: I623f24df9b42500f347ae427f4ffd94395abaa56
2017-11-22 20:03:47 +00:00
Tom Cherry
fa65396ca2 Merge "Move mkdir /data/nfc/... to rootdir init.rc" 2017-11-22 19:56:10 +00:00
Chen Xu
df482d03ad Merge "a new folder to store OTA carrier id update"
am: 76adcdf688

Change-Id: I052a0810830b2a81a8a992d66e8e59cda343b347
2017-11-22 04:35:44 +00:00
fionaxu
06b8e2e130 a new folder to store OTA carrier id update
Bug:64131637
Test: Build
Change-Id: I0ce4322f297bab427d70aed3c329345c899786bb
(cherry picked from commit 45713ff621)
2017-11-21 17:31:00 -08:00
fionaxu
45713ff621 a new folder to store OTA carrier id update
Bug:64131637
Test: Build
Change-Id: I0ce4322f297bab427d70aed3c329345c899786bb
2017-11-21 12:34:39 -08:00
Tom Cherry
c319310f9b Move mkdir /data/nfc/... to rootdir init.rc
These are directories used by the system so they should be created by
the system.

Test: treehugger
Change-Id: I2a721ef7871c8842fa912497f5ec6988fcec9e58
2017-11-21 10:40:25 -08:00
Xin Li
23e27db576 Merge commit 'a63ccea6abc7ea02e2d98e41c80793ca97237bd3' from
oc-mr1-dev-plus-aosp into stage-aosp-master

Change-Id: Ia33311cd1fd26dfaea59a69317b306fb91203c40
Merged-In: I03d06b10807e8a313c9654c2e1db36bfb59e3f99
2017-11-14 13:19:45 -08:00
Steven Moreland
2eaa098bfe Merge "PRODUCT_TREBLE_LINKER_NAMESPACES for ld.config.txt" am: c437e14c17 am: 5bd7b32c15
am: 2c531b007e

Change-Id: Iee1ac7081e7954099e9ee77c07480e8db30adb67
2017-11-13 21:19:21 +00:00
Steven Moreland
2c531b007e Merge "PRODUCT_TREBLE_LINKER_NAMESPACES for ld.config.txt" am: c437e14c17
am: 5bd7b32c15

Change-Id: I0958fea7b320025bb329defe2d26a922e7f236bb
2017-11-13 21:13:50 +00:00
Treehugger Robot
c437e14c17 Merge "PRODUCT_TREBLE_LINKER_NAMESPACES for ld.config.txt" 2017-11-13 21:06:34 +00:00
Yifan Hong
aae9ad533c healthd is class hal
because it serves health 2.0 HAL. This forces it to restart when
hwservicemanager dies.

Bug: 69069765
Test: kill hwservicemanager, lshal shows backup instance

Change-Id: Ib51caa0e718031a0f8797d8af4c2459b4958a62e
2017-11-10 16:42:21 -08:00
Tianjie Xu
41dee1e2be Merge "Create a new directory on boot for update_engine logs" am: 78d882bb5f am: 5d86509d19
am: 2ca0bbfae3

Change-Id: Ibfb3c4054bb0f06446e5c959335ff2abdbe17370
2017-11-10 22:18:15 +00:00
Tianjie Xu
2ca0bbfae3 Merge "Create a new directory on boot for update_engine logs" am: 78d882bb5f
am: 5d86509d19

Change-Id: I01611463c081fafd60fc315a4a91418a4ddef22a
2017-11-10 22:14:35 +00:00
Steven Moreland
4e641e3b6a PRODUCT_TREBLE_LINKER_NAMESPACES for ld.config.txt
PRODUCT_FULL_TREBLE is being deprecated in favor
of smaller flags. Use the appropriate one instead.

Bug: 62019611
Test: manual
Change-Id: Id5d127c29f908cd3011031b3b698ddec3dcba9c1
2017-11-10 10:25:45 -08:00
Tianjie Xu
74fa3cab4e Create a new directory on boot for update_engine logs
Partners require to access update_engine's logs on the file system with
non-root permission.

Bug: 65568605
Test: directory created with the correct permission on boot
Change-Id: I1c1fb4acb8b0f2e7352ffa9e7d05a864940b5986
2017-11-09 12:11:28 -08:00
Jiyong Park
a2935e0c8b Tests are run with proper namespace configs by their locations
Tests in /data/[nativetest|benchmarktest] run with namespace config for
system and tests in /data/[nativetest|benchmarktest]/vendor run with
namespace config for vendor.

They no longer run in the 'test' namespace config which didn't impose
any restriction for libraries.

Bug: 67028906
Test: sailfish/marlin builds and boots
Test: no VTS regression on system.img from GSI + vendor.img from
marlin/sailfish
Test: VtsKernelLibcutilsTest successful in above config

Merged-In: I28cdef960d087565c8a22dca0e9a154fb1c3bb94
Change-Id: I28cdef960d087565c8a22dca0e9a154fb1c3bb94
(cherry picked from commit 326b783ad9)
2017-10-30 10:27:45 +09:00
Jiyong Park
6ed1a1c339 Fix: make vndk namespace visible for 2016 Pixes
The nativeloader tries to find the 'vndk' namespace when there is a
vendor apk in the classloader paths. This can happen even for a
downloaded app if the app is using a vendor apk via <uses-library> tag.

In order to prevent the nativeloader from failing to find the vndk
namespace, the namespace is marked as visible.

Bug: 66482442
Test: download the app mentioned in the bug, it does not crash.
Merged-In: I82e2394eb6eedcb8645e1a5b3735bbfe2735b312
Change-Id: I82e2394eb6eedcb8645e1a5b3735bbfe2735b312
(cherry picked from commit 1cc09e749f)
2017-10-30 10:27:45 +09:00
Jiyong Park
7f654c3243 vndk: remove vendor/lib from the search path of the 'vndk' namespace
'vndk' namespace is the place for VNDK-SP libs. So /vendor/lib must be
removed from its search paths. It was there just because libhardware
(which is VNDK-SP) is loading HAL libs in vendor partition from there.
However this problem has been solved by modifying the libhardware so
that HAL libs are loaded from the 'sphal' namespace and not from the
current (the 'vndk') namespace.

Bug: 37731053
Test: sailfish builds and boots
Merged-In: Ia88934a975aa8811e05b5ba408e42d132f20f4e9
Change-Id: Ia88934a975aa8811e05b5ba408e42d132f20f4e9
(cherry picked from commit f01b52895d)
2017-10-30 10:27:45 +09:00
Jiyong Park
e58fa1b0c6 libz is back to LLNDK
For 2016 pixel devices, where VNDK is not fully enforced, move libz back
to LLNDK so that we can pass the CTS without requiring the default
namespace to be isolated.

If we have libz in vndk-sp directory, test_linker_namespaces fails
because /system/lib/vndk-sp/libz.so becomes accessible. In order to make
the lib inaccessible, we have to make the default namespace isolated,
but this can't be done for 2016 pixel devices where VNDK is not fully
enforced. So, we choose to remove /system/lib/vndk-sp/libz.so and keep
the single copy at /system/lib.

Bug: 65018779
Test: android.jni.cts.JniStaticTest#test_linker_namespaces successful on
2016 pixel devices

Merged-In: Ib6b6560b02be69d2015c0afb86acf07c02b30c2f
Change-Id: Ib6b6560b02be69d2015c0afb86acf07c02b30c2f
(cherry picked from commit 697eb2da0d)
2017-10-30 10:27:45 +09:00
Jiyong Park
7075bca364 Make the rs namespace visible
This allows us to dlopen libRS_internal.so directly from the rs
namespace, not from the sphal namespace.

Bug: 64747884
Test: VtsHalRenderscriptV1_0TargetTest successful on the device built
with BOARD_VNDK_VERSION=current and [system] namespace config is applied
to /data/nativetest[64]/* processes.

Merged-In: I0b441791e395798e80a84592ca01e771bb1c201a
Change-Id: I0b441791e395798e80a84592ca01e771bb1c201a
(cherry picked from commit 421a5e46b7)
2017-10-30 10:27:45 +09:00
Justin Yun
136eb05892 Add libft2.so to ll-ndk for rs namespace
libft2.so is changed to ll-ndk that is available only for rs
namespace.

Bug: 64425518
Test: build and boot with BOARD_VNDK_VERSION=current
Merged-In: I991dc774ca9b92fb6e95a7656243a6a4ecdc0ab9
Change-Id: I991dc774ca9b92fb6e95a7656243a6a4ecdc0ab9
(cherry picked from commit 513f76394a)
2017-10-30 10:27:45 +09:00
Justin Yun
8ebf6ee6f6 Move libz vndk-sp from ll-ndk
The ABI of libz is not as stable as it is for ll-ndk.

Bug: 37617391
Test: build and boot
Merged-In: I883bc6fda268e98cc7cdd5888264170c58688794
Change-Id: I883bc6fda268e98cc7cdd5888264170c58688794
(cherry picked from commit dadd3a846f)
2017-10-30 10:27:45 +09:00
Josh Gao
e7be481a7b Merge "Delete obsolete debuggerd references." am: 1193f3bff6 am: 2bf84f9cdd
am: bfdff800a5

Change-Id: I8f98856436285659ba41276242c799453255eed8
2017-10-28 01:23:41 +00:00
Josh Gao
bfdff800a5 Merge "Delete obsolete debuggerd references." am: 1193f3bff6
am: 2bf84f9cdd

Change-Id: I08060b18ac0c767bf07ad16a04f9e7ec24993113
2017-10-28 01:19:04 +00:00
Josh Gao
18ea0978cf Delete obsolete debuggerd references.
Test: treehugger
Change-Id: Ic1a8cfb867decd76443fdc26333f2bcaa98b61bb
2017-10-27 16:12:49 -07:00
TreeHugger Robot
49bb5794c8 Merge "Permitted and search path change" 2017-10-26 06:07:06 +00:00
Elliott Hughes
446ab4a378 Merge "Remove Foreground Boost CPUSet" am: 77451492bc am: 17c8a89a08
am: 4921f97fe3

Change-Id: I8f5d7f438c41969a623d0468bb96150824feded7
2017-10-25 20:05:58 +00:00
Elliott Hughes
4921f97fe3 Merge "Remove Foreground Boost CPUSet" am: 77451492bc
am: 17c8a89a08

Change-Id: I08f25d4a799fdb7f3c5b415675dd3c50fa65fe93
2017-10-25 20:02:19 +00:00
Elliott Hughes
77451492bc Merge "Remove Foreground Boost CPUSet" 2017-10-25 19:55:50 +00:00
Jake Weinstein
60bc597183 Remove Foreground Boost CPUSet
This functionality was removed at
https://android.googlesource.com/platform/frameworks/base/+/a712d4058f6f85268838
2017-10-23 20:07:22 -04:00
Jae Shin
a909e5e2a1 Merge changes from topic "rs_vndk_step2"
am: 678efa25a6

Change-Id: Idcab36c112406e3dc1fe4eb9cfd5c345cafc0290
2017-10-23 03:03:05 +00:00
Jiyong Park
324f3ed393 templatize ld.config.txt
am: ecc703c792

Change-Id: Ic9dc2f35a4a9a2c2a56cb24a9ac02e9373ed78df
2017-10-23 03:02:31 +00:00
Jiyong Park
6683a8735b Make default namespace for system processes isolated
am: 246338f90e

Change-Id: I2f2d2799ab57031a3c3b24830c0e10376e035acd
2017-10-23 03:01:58 +00:00
Justin Yun
e96c957e57 vndk: add vendor/lib(64)/vndk for vendor namespace
am: b5ddc5ae6b

Change-Id: I1e22e9a994932e3e93cbbafb8d5defd5efd69b7c
2017-10-23 03:01:12 +00:00
Justin Yun
c82e43034b Implement system namespace for vendor process
am: 333845c710

Change-Id: I0fda3fe689832b0b5cc13a381dacdd633886e27a
2017-10-23 03:00:13 +00:00
Jiyong Park
6d9f5e4012 Use the legacy linker namespace configs when target is sanitized
am: 614c5521a3

Change-Id: I80ff3cb047a9ad351590524a5602cdc0f9df3e61
2017-10-23 02:59:15 +00:00
Jiyong Park
b9d74495b1 Permit /system/lib/vndk-sp/hw/ for 'sphal' namespace
am: b5c0fc3ceb

Change-Id: Ic74e02582c7c2f5b7e9900bf77026168a2947fd2
2017-10-23 02:57:57 +00:00
Justin Yun
1cd1a2b812 Add system/${LIB}/vndk to default namespace for vendor.
am: e373672afd

Change-Id: I4f4e47bb297ec604f79007260883112da5de67e1
2017-10-23 02:56:40 +00:00
Jiyong Park
257de3def5 fix: boot fails on ASAN builds with VNDK restriction
Fix the bug that caused boot failure on ASAN builds with VNDK
restriciton. The major cause is because incorrect (old) ld.config.txt
was used when the build is sanitized, which prevented the dynamic linker
to find some VNDK libs that only exist in /system/lib/vndk; the old
ld.config.txt does not have the directory in its search paths. So, this
CL fixes the problem by having the same ld.config.txt for both sanitized
and non-sanitizied builds.

Furthermore, ld.config.txt is modified so that dependency to
libclang_rt* libs are redirected to those in /system/lib directory. This
ensures that the sanitizer runtime libs are not dual loaded but are
provided for both platform and vendors.

Bug: 65217017
Test: SANITIZE_TARGET=integer_overflow SANITIZE_TARGET_DIAG=integer_overflow m
on 2017 pixel devices. The build is successful and the device boots to
the UI.

Merged-In: I0e21e20d9aca340b984968e07d4ce542ae10fd31
Change-Id: I0e21e20d9aca340b984968e07d4ce542ae10fd31
(cherry picked from commit faefa6bd36)
2017-10-23 02:42:47 +00:00
Jiyong Park
ecc703c792 templatize ld.config.txt
Lists of libraries in between the linker namespaces are no longer
hard-coded in ld.config.txt, but instead come from Soong.

Bug: 37139976
Test: build 2017 pixel device with BOARD_VNDK_VERSION=current m -j
Test: the device is bootable, basic functionalities (camera, camcorder,
wifi, bt, gps, etc.) work.
Merged-In: I8170e6c3f6ee04b16359791d64cc46bd2714a073
Change-Id: I8170e6c3f6ee04b16359791d64cc46bd2714a073

(cherry picked from commit 367984602a)
2017-10-23 02:40:37 +00:00
Jiyong Park
246338f90e Make default namespace for system processes isolated
The default namespace for system process now becomes isolated, which
means it can load only the libs that are in search.paths and under
permitted.paths.

/system/framework, /system/app, /system/priv-app, /vendor/app, /data,
etc are added to the permitted paths since libart should be able to
dlopen odex files under the locations.

Following directories become unavailable:
/system/lib/vndk
/system/lib/vndk-sp

Bug: 37013858
Bug: 64888291
Bug: 64950640
Test: 2017 pixel devices builds and boots
Test: android.jni.cts.JniStaticTest#test_linker_namespaces passes
Merged-In: I2bbe9cc19940c3633c2fb901f9bf8ab813e38c13
Change-Id: I2bbe9cc19940c3633c2fb901f9bf8ab813e38c13
(cherry picked from commit 55f05d79f9)
2017-10-23 11:10:32 +09:00
Justin Yun
b5ddc5ae6b vndk: add vendor/lib(64)/vndk for vendor namespace
When the vndk is extended by vendor, the libs in vendor/lib(64)/vndk
will override system/lib(64)/vndk libs. Vendor binaries will search
vndk libs in vendor/lib(64)/vndk prior to system/lib(64)/vndk.

Also, remove a workaround for libsdm-color.so

Bug: 65032513
Test: build and boot check for libsdm-color.so will be loaded on boot
Test: currently no libs exist on vendor/lib(64)/vndk. No test for it
Merged-In: I99ed37eb1a9e92c83533e2d92c9c06db11f01e97
Change-Id: I99ed37eb1a9e92c83533e2d92c9c06db11f01e97
(cherry picked from commit 3094de9684)
2017-10-23 11:10:31 +09:00
Justin Yun
333845c710 Implement system namespace for vendor process
For vendor process default namespace searches as following order:
1. /vendor/lib/(hw|egl), /vendor/lib: Vendor libs + VNDK-vnd-ext
2. /system/lib/vndk-$(ver): VNDK libs
3. /vendor/lib/vndk-sp-$(ver): VNDK-SP-vnd-ext
4. /system/lib/vndk-sp-$(ver): VNDK-SP
and searches system namespace (/system/lib) only for LL-NDK libs.
This configuarion is used only with BOARD_VNDK_VERSION is defined.

Bug: 37192038
Test: build with 'BOARD_VNDK_VERSION=current' and boot

Merged-In: If9778b9266a084846ba8fe73e6bff25828359d33
Change-Id: If9778b9266a084846ba8fe73e6bff25828359d33
(cherry picked from commit 24c29f1be4)
2017-10-23 11:10:30 +09:00
Jiyong Park
614c5521a3 Use the legacy linker namespace configs when target is sanitized
The new linker namespace config causes problem when the target is
sanitized: vendor libs which are loaded in the sphal namespace can't
link against to libclang_rt* libs which are in /system/lib directory
because the directory is not allowed for sphal namsapce.

Long-term solution would be installing libclang_rt* to both /system/lib
and /vendor/lib so that vendor libs can link against to the one in
/vendor/lib.

Until the work is done, let's just disable the new linker namespace
config when the target is to be sanitized.

Bug: 63535130
Test: make SANITIZE_TARGET=integer_overflow
SANITIZE_TARGET_DIAG=integer_overflow builds and boots to the UI

Merged-In: I6afb69885aaa3d25e554b9ca699a572248bfc50a
Change-Id: I6afb69885aaa3d25e554b9ca699a572248bfc50a
(cherry picked from commit fff6f75fc1)
2017-10-23 11:10:29 +09:00