From 014fb0b0ace8d420368686c295ba1d5f0c9fd412 Mon Sep 17 00:00:00 2001 From: jesec Date: Tue, 26 Mar 2019 04:50:05 +0000 Subject: [PATCH] universal7885: Add vndk compat layer Co-authored-by: luk1337 Co-authored-by: jesec Signed-off-by: SamarV-121 --- extract-files.sh | 63 ++++++ proprietary-files-vndk.txt | 328 +++++++++++++++++++++++++++++++ setup-makefiles.sh | 49 +++++ universal7885-common.mk | 5 + vndk-compat/ld.config.compat.txt | 128 ++++++++++++ vndk-compat/vndk-compat.rc | 2 + 6 files changed, 575 insertions(+) create mode 100755 extract-files.sh create mode 100644 proprietary-files-vndk.txt create mode 100755 setup-makefiles.sh create mode 100644 vndk-compat/ld.config.compat.txt create mode 100644 vndk-compat/vndk-compat.rc diff --git a/extract-files.sh b/extract-files.sh new file mode 100755 index 0000000..89106e6 --- /dev/null +++ b/extract-files.sh @@ -0,0 +1,63 @@ +#!/bin/bash +# +# Copyright (C) 2016 The CyanogenMod Project +# Copyright (C) 2017-2018 The LineageOS Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +set -e + +DEVICE=universal7885-common +VENDOR=samsung + +# Load extract_utils and do some sanity checks +MY_DIR="${BASH_SOURCE%/*}" +if [[ ! -d "$MY_DIR" ]]; then MY_DIR="$PWD"; fi + +LINEAGE_ROOT="$MY_DIR"/../../.. + +HELPER="$LINEAGE_ROOT"/vendor/lineage/build/tools/extract_utils.sh +if [ ! -f "$HELPER" ]; then + echo "Unable to find helper script at $HELPER" +fi +. "$HELPER" + +# Default to sanitizing the vendor folder before extraction +CLEAN_VENDOR=true + +while [ "$1" != "" ]; do + case $1 in + -n | --no-cleanup ) CLEAN_VENDOR=false + ;; + -s | --section ) shift + SECTION=$1 + CLEAN_VENDOR=false + ;; + * ) SRC=$1 + ;; + esac + shift +done + +if [ -z "$SRC" ]; then + SRC=adb +fi + +# Initialize the helper +setup_vendor "$DEVICE" "$VENDOR" "$LINEAGE_ROOT" false "$CLEAN_VENDOR" + +extract "$MY_DIR"/proprietary-files-vndk.txt "$SRC" "$SECTION" + +"$MY_DIR"/setup-makefiles.sh + diff --git a/proprietary-files-vndk.txt b/proprietary-files-vndk.txt new file mode 100644 index 0000000..5349fae --- /dev/null +++ b/proprietary-files-vndk.txt @@ -0,0 +1,328 @@ +# VNDK +lib64/android.frameworks.displayservice@1.0.so:lib64/vndk-compat/android.frameworks.displayservice@1.0.so +lib64/android.frameworks.schedulerservice@1.0.so:lib64/vndk-compat/android.frameworks.schedulerservice@1.0.so +lib64/android.frameworks.sensorservice@1.0.so:lib64/vndk-compat/android.frameworks.sensorservice@1.0.so +lib64/android.frameworks.vr.composer@1.0.so:lib64/vndk-compat/android.frameworks.vr.composer@1.0.so +lib64/android.hardware.audio@2.0.so:lib64/vndk-compat/android.hardware.audio@2.0.so +lib64/android.hardware.audio.common@2.0.so:lib64/vndk-compat/android.hardware.audio.common@2.0.so +lib64/android.hardware.audio.common@2.0-util.so:lib64/vndk-compat/android.hardware.audio.common@2.0-util.so +lib64/android.hardware.audio.effect@2.0.so:lib64/vndk-compat/android.hardware.audio.effect@2.0.so +lib64/android.hardware.biometrics.fingerprint@2.1.so:lib64/vndk-compat/android.hardware.biometrics.fingerprint@2.1.so +lib64/android.hardware.bluetooth@1.0.so:lib64/vndk-compat/android.hardware.bluetooth@1.0.so +lib64/android.hardware.broadcastradio@1.0.so:lib64/vndk-compat/android.hardware.broadcastradio@1.0.so +lib64/android.hardware.broadcastradio@1.1.so:lib64/vndk-compat/android.hardware.broadcastradio@1.1.so +lib64/android.hardware.camera.common@1.0.so:lib64/vndk-compat/android.hardware.camera.common@1.0.so +lib64/android.hardware.camera.device@1.0.so:lib64/vndk-compat/android.hardware.camera.device@1.0.so +lib64/android.hardware.camera.device@3.2.so:lib64/vndk-compat/android.hardware.camera.device@3.2.so +lib64/android.hardware.camera.provider@2.4.so:lib64/vndk-compat/android.hardware.camera.provider@2.4.so +lib64/android.hardware.configstore@1.0.so:lib64/vndk-compat/android.hardware.configstore@1.0.so +lib64/android.hardware.configstore-utils.so:lib64/vndk-compat/android.hardware.configstore-utils.so +lib64/android.hardware.contexthub@1.0.so:lib64/vndk-compat/android.hardware.contexthub@1.0.so +lib64/android.hardware.drm@1.0.so:lib64/vndk-compat/android.hardware.drm@1.0.so +lib64/android.hardware.gatekeeper@1.0.so:lib64/vndk-compat/android.hardware.gatekeeper@1.0.so +lib64/android.hardware.gnss@1.0.so:lib64/vndk-compat/android.hardware.gnss@1.0.so +lib64/android.hardware.graphics.allocator@2.0.so:lib64/vndk-compat/android.hardware.graphics.allocator@2.0.so +lib64/android.hardware.graphics.bufferqueue@1.0.so:lib64/vndk-compat/android.hardware.graphics.bufferqueue@1.0.so +lib64/android.hardware.graphics.composer@2.1.so:lib64/vndk-compat/android.hardware.graphics.composer@2.1.so +lib64/android.hardware.health@1.0.so:lib64/vndk-compat/android.hardware.health@1.0.so +lib64/android.hardware.ir@1.0.so:lib64/vndk-compat/android.hardware.ir@1.0.so +lib64/android.hardware.keymaster@3.0.so:lib64/vndk-compat/android.hardware.keymaster@3.0.so +lib64/android.hardware.light@2.0.so:lib64/vndk-compat/android.hardware.light@2.0.so +lib64/android.hardware.media@1.0.so:lib64/vndk-compat/android.hardware.media@1.0.so +lib64/android.hardware.media.omx@1.0.so:lib64/vndk-compat/android.hardware.media.omx@1.0.so +lib64/android.hardware.memtrack@1.0.so:lib64/vndk-compat/android.hardware.memtrack@1.0.so +lib64/android.hardware.power@1.0.so:lib64/vndk-compat/android.hardware.power@1.0.so +lib64/android.hardware.radio@1.0.so:lib64/vndk-compat/android.hardware.radio@1.0.so +lib64/android.hardware.radio.deprecated@1.0.so:lib64/vndk-compat/android.hardware.radio.deprecated@1.0.so +lib64/android.hardware.sensors@1.0.so:lib64/vndk-compat/android.hardware.sensors@1.0.so +lib64/android.hardware.soundtrigger@2.0.so:lib64/vndk-compat/android.hardware.soundtrigger@2.0.so +lib64/android.hardware.thermal@1.0.so:lib64/vndk-compat/android.hardware.thermal@1.0.so +lib64/android.hardware.tv.cec@1.0.so:lib64/vndk-compat/android.hardware.tv.cec@1.0.so +lib64/android.hardware.tv.input@1.0.so:lib64/vndk-compat/android.hardware.tv.input@1.0.so +lib64/android.hardware.vibrator@1.0.so:lib64/vndk-compat/android.hardware.vibrator@1.0.so +lib64/android.hardware.vr@1.0.so:lib64/vndk-compat/android.hardware.vr@1.0.so +lib64/android.hardware.wifi@1.0.so:lib64/vndk-compat/android.hardware.wifi@1.0.so +lib64/android.hardware.wifi.supplicant@1.0.so:lib64/vndk-compat/android.hardware.wifi.supplicant@1.0.so +lib64/android.hidl.allocator@1.0.so:lib64/vndk-compat/android.hidl.allocator@1.0.so +lib64/android.hidl.base@1.0.so:lib64/vndk-compat/android.hidl.base@1.0.so +lib64/android.hidl.token@1.0.so:lib64/vndk-compat/android.hidl.token@1.0.so +lib64/android.hidl.token@1.0-utils.so:lib64/vndk-compat/android.hidl.token@1.0-utils.so +lib64/android.system.wifi.keystore@1.0.so:lib64/vndk-compat/android.system.wifi.keystore@1.0.so +lib64/libandroid_runtime.so:lib64/vndk-compat/libandroid_runtime.so +lib64/libAstcEnc.so:lib64/vndk-compat/libAstcEnc.so +lib64/libaudioclient.so:lib64/vndk-compat/libaudioclient.so +lib64/libaudioutils.so:lib64/vndk-compat/libaudioutils.so +lib64/libavservices_minijail.so:lib64/vndk-compat/libavservices_minijail.so +lib64/libbinder.so:lib64/vndk-compat/libbinder.so +lib64/libcamera_metadata.so:lib64/vndk-compat/libcamera_metadata.so +lib64/libcap.so:lib64/vndk-compat/libcap.so +lib64/libcrypto.so:lib64/vndk-compat/libcrypto.so +lib64/libcrypto_utils.so:lib64/vndk-compat/libcrypto_utils.so +lib64/libdebuggerd_client.so:lib64/vndk-compat/libdebuggerd_client.so +lib64/libdiskconfig.so:lib64/vndk-compat/libdiskconfig.so +lib64/libdumpstateutil.so:lib64/vndk-compat/libdumpstateutil.so +lib64/libedmnativehelper.so:lib64/vndk-compat/libedmnativehelper.so +lib64/libEGL.so:lib64/vndk-compat/libEGL.so +lib64/libevent.so:lib64/vndk-compat/libevent.so +lib64/libexif.so:lib64/vndk-compat/libexif.so +lib64/libexpat.so:lib64/vndk-compat/libexpat.so +lib64/libfmq.so:lib64/vndk-compat/libfmq.so +lib64/libgatekeeper.so:lib64/vndk-compat/libgatekeeper.so +lib64/libgui.so:lib64/vndk-compat/libgui.so +lib64/libhardware_legacy.so:lib64/vndk-compat/libhardware_legacy.so +lib64/libhwastc.so:lib64/vndk-compat/libhwastc.so +lib64/libhwuibridge.so:lib64/vndk-compat/libhwuibridge.so +lib64/libhwui.so:lib64/vndk-compat/libhwui.so +lib64/libimagefilter.so:lib64/vndk-compat/libimagefilter.so +lib64/libinput.so:lib64/vndk-compat/libinput.so +lib64/libjavacore.so:lib64/vndk-compat/libjavacore.so +lib64/libjpeg.so:lib64/vndk-compat/libjpeg.so +lib64/libkeymaster_messages.so:lib64/vndk-compat/libkeymaster_messages.so +lib64/libldacBT_abr.so:lib64/vndk-compat/libldacBT_abr.so +lib64/libldacBT_enc.so:lib64/vndk-compat/libldacBT_enc.so +lib64/liblz4.so:lib64/vndk-compat/liblz4.so +lib64/libmctraster.so:lib64/vndk-compat/libmctraster.so +lib64/libmediadrm.so:lib64/vndk-compat/libmediadrm.so +lib64/libmedia_helper.so:lib64/vndk-compat/libmedia_helper.so +lib64/libmedia_jni.so:lib64/vndk-compat/libmedia_jni.so +lib64/libmedia.so:lib64/vndk-compat/libmedia.so +lib64/libmemtrack.so:lib64/vndk-compat/libmemtrack.so +lib64/libmemunreachable.so:lib64/vndk-compat/libmemunreachable.so +lib64/libminijail.so:lib64/vndk-compat/libminijail.so +lib64/libminikin.so:lib64/vndk-compat/libminikin.so +lib64/libnativeloader.so:lib64/vndk-compat/libnativeloader.so +lib64/libnetutils.so:lib64/vndk-compat/libnetutils.so +lib64/libnl.so:lib64/vndk-compat/libnl.so +lib64/libpagemap.so:lib64/vndk-compat/libpagemap.so +lib64/libpcre2.so:lib64/vndk-compat/libpcre2.so +lib64/libpersona.so:lib64/vndk-compat/libpersona.so +lib64/libpiex.so:lib64/vndk-compat/libpiex.so +lib64/libpng.so:lib64/vndk-compat/libpng.so +lib64/libpower.so:lib64/vndk-compat/libpower.so +lib64/libprocinfo.so:lib64/vndk-compat/libprocinfo.so +lib64/libprotobuf-cpp-full.so:lib64/vndk-compat/libprotobuf-cpp-full.so +lib64/libprotobuf-cpp-lite.so:lib64/vndk-compat/libprotobuf-cpp-lite.so +lib64/libquramimagecodec.so:lib64/vndk-compat/libquramimagecodec.so +lib64/libradio_metadata.so:lib64/vndk-compat/libradio_metadata.so +lib64/libsamsungeffect.so:lib64/vndk-compat/libsamsungeffect.so +lib64/libselinux.so:lib64/vndk-compat/libselinux.so +lib64/libsensor.so:lib64/vndk-compat/libsensor.so +lib64/libskia.so:lib64/vndk-compat/libskia.so +lib64/libsoftkeymasterdevice.so:lib64/vndk-compat/libsoftkeymasterdevice.so +lib64/libspeexresampler.so:lib64/vndk-compat/libspeexresampler.so +lib64/libsqlite.so:lib64/vndk-compat/libsqlite.so +lib64/libssl.so:lib64/vndk-compat/libssl.so +lib64/libstagefright_amrnb_common.so:lib64/vndk-compat/libstagefright_amrnb_common.so +lib64/libstagefright_enc_common.so:lib64/vndk-compat/libstagefright_enc_common.so +lib64/libstagefright_foundation.so:lib64/vndk-compat/libstagefright_foundation.so +lib64/libstagefright_omx.so:lib64/vndk-compat/libstagefright_omx.so +lib64/libsts_values.so:lib64/vndk-compat/libsts_values.so +lib64/libsuspend.so:lib64/vndk-compat/libsuspend.so +lib64/libsysutils.so:lib64/vndk-compat/libsysutils.so +lib64/libtinyalsa.so:lib64/vndk-compat/libtinyalsa.so +lib64/libtinyxml2.so:lib64/vndk-compat/libtinyxml2.so +lib64/libui.so:lib64/vndk-compat/libui.so +lib64/libusbhost.so:lib64/vndk-compat/libusbhost.so +lib64/libutils.so:lib64/vndk-compat/libutils.so +lib64/libvintf.so:lib64/vndk-compat/libvintf.so +lib64/libvixl-arm64.so:lib64/vndk-compat/libvixl-arm64.so +lib64/libvixl-arm.so:lib64/vndk-compat/libvixl-arm.so +lib64/libvorbisidec.so:lib64/vndk-compat/libvorbisidec.so +lib64/libwifi-service.so:lib64/vndk-compat/libwifi-service.so +lib64/libwifi-system.so:lib64/vndk-compat/libwifi-system.so +lib64/libxml2.so:lib64/vndk-compat/libxml2.so +lib64/libziparchive.so:lib64/vndk-compat/libziparchive.so +lib/android.frameworks.schedulerservice@1.0.so:lib/vndk-compat/android.frameworks.schedulerservice@1.0.so +lib/android.frameworks.sensorservice@1.0.so:lib/vndk-compat/android.frameworks.sensorservice@1.0.so +lib/android.frameworks.vr.composer@1.0.so:lib/vndk-compat/android.frameworks.vr.composer@1.0.so +lib/android.hardware.audio@2.0.so:lib/vndk-compat/android.hardware.audio@2.0.so +lib/android.hardware.audio.common@2.0.so:lib/vndk-compat/android.hardware.audio.common@2.0.so +lib/android.hardware.audio.common@2.0-util.so:lib/vndk-compat/android.hardware.audio.common@2.0-util.so +lib/android.hardware.audio.effect@2.0.so:lib/vndk-compat/android.hardware.audio.effect@2.0.so +lib/android.hardware.biometrics.fingerprint@2.1.so:lib/vndk-compat/android.hardware.biometrics.fingerprint@2.1.so +lib/android.hardware.bluetooth@1.0.so:lib/vndk-compat/android.hardware.bluetooth@1.0.so +lib/android.hardware.broadcastradio@1.0.so:lib/vndk-compat/android.hardware.broadcastradio@1.0.so +lib/android.hardware.broadcastradio@1.1.so:lib/vndk-compat/android.hardware.broadcastradio@1.1.so +lib/android.hardware.camera.common@1.0.so:lib/vndk-compat/android.hardware.camera.common@1.0.so +lib/android.hardware.camera.device@1.0.so:lib/vndk-compat/android.hardware.camera.device@1.0.so +lib/android.hardware.camera.device@3.2.so:lib/vndk-compat/android.hardware.camera.device@3.2.so +lib/android.hardware.camera.provider@2.4.so:lib/vndk-compat/android.hardware.camera.provider@2.4.so +lib/android.hardware.configstore@1.0.so:lib/vndk-compat/android.hardware.configstore@1.0.so +lib/android.hardware.configstore-utils.so:lib/vndk-compat/android.hardware.configstore-utils.so +lib/android.hardware.contexthub@1.0.so:lib/vndk-compat/android.hardware.contexthub@1.0.so +lib/android.hardware.drm@1.0.so:lib/vndk-compat/android.hardware.drm@1.0.so +lib/android.hardware.gatekeeper@1.0.so:lib/vndk-compat/android.hardware.gatekeeper@1.0.so +lib/android.hardware.gnss@1.0.so:lib/vndk-compat/android.hardware.gnss@1.0.so +lib/android.hardware.graphics.allocator@2.0.so:lib/vndk-compat/android.hardware.graphics.allocator@2.0.so +lib/android.hardware.graphics.bufferqueue@1.0.so:lib/vndk-compat/android.hardware.graphics.bufferqueue@1.0.so +lib/android.hardware.graphics.composer@2.1.so:lib/vndk-compat/android.hardware.graphics.composer@2.1.so +lib/android.hardware.ir@1.0.so:lib/vndk-compat/android.hardware.ir@1.0.so +lib/android.hardware.keymaster@3.0.so:lib/vndk-compat/android.hardware.keymaster@3.0.so +lib/android.hardware.light@2.0.so:lib/vndk-compat/android.hardware.light@2.0.so +lib/android.hardware.media@1.0.so:lib/vndk-compat/android.hardware.media@1.0.so +lib/android.hardware.media.omx@1.0.so:lib/vndk-compat/android.hardware.media.omx@1.0.so +lib/android.hardware.memtrack@1.0.so:lib/vndk-compat/android.hardware.memtrack@1.0.so +lib/android.hardware.power@1.0.so:lib/vndk-compat/android.hardware.power@1.0.so +lib/android.hardware.radio@1.0.so:lib/vndk-compat/android.hardware.radio@1.0.so +lib/android.hardware.radio.deprecated@1.0.so:lib/vndk-compat/android.hardware.radio.deprecated@1.0.so +lib/android.hardware.sensors@1.0.so:lib/vndk-compat/android.hardware.sensors@1.0.so +lib/android.hardware.soundtrigger@2.0.so:lib/vndk-compat/android.hardware.soundtrigger@2.0.so +lib/android.hardware.thermal@1.0.so:lib/vndk-compat/android.hardware.thermal@1.0.so +lib/android.hardware.tv.cec@1.0.so:lib/vndk-compat/android.hardware.tv.cec@1.0.so +lib/android.hardware.tv.input@1.0.so:lib/vndk-compat/android.hardware.tv.input@1.0.so +lib/android.hardware.vibrator@1.0.so:lib/vndk-compat/android.hardware.vibrator@1.0.so +lib/android.hardware.vr@1.0.so:lib/vndk-compat/android.hardware.vr@1.0.so +lib/android.hardware.wifi@1.0.so:lib/vndk-compat/android.hardware.wifi@1.0.so +lib/android.hardware.wifi.supplicant@1.0.so:lib/vndk-compat/android.hardware.wifi.supplicant@1.0.so +lib/android.hidl.allocator@1.0.so:lib/vndk-compat/android.hidl.allocator@1.0.so +lib/android.hidl.base@1.0.so:lib/vndk-compat/android.hidl.base@1.0.so +lib/android.hidl.token@1.0.so:lib/vndk-compat/android.hidl.token@1.0.so +lib/android.hidl.token@1.0-utils.so:lib/vndk-compat/android.hidl.token@1.0-utils.so +lib/android.system.wifi.keystore@1.0.so:lib/vndk-compat/android.system.wifi.keystore@1.0.so +lib/libandroid_runtime.so:lib/vndk-compat/libandroid_runtime.so +lib/libAstcEnc.so:lib/vndk-compat/libAstcEnc.so +lib/libaudioclient.so:lib/vndk-compat/libaudioclient.so +lib/libaudioutils.so:lib/vndk-compat/libaudioutils.so +lib/libbinder.so:lib/vndk-compat/libbinder.so +lib/libcamera_metadata.so:lib/vndk-compat/libcamera_metadata.so +lib/libcap.so:lib/vndk-compat/libcap.so +lib/libcrypto.so:lib/vndk-compat/libcrypto.so +lib/libdebuggerd_client.so:lib/vndk-compat/libdebuggerd_client.so +lib/libedmnativehelper.so:lib/vndk-compat/libedmnativehelper.so +lib/libEGL.so:lib/vndk-compat/libEGL.so +lib/libevent.so:lib/vndk-compat/libevent.so +lib/libexif.so:lib/vndk-compat/libexif.so +lib/libexpat.so:lib/vndk-compat/libexpat.so +lib/libfmq.so:lib/vndk-compat/libfmq.so +lib/libgatekeeper.so:lib/vndk-compat/libgatekeeper.so +lib/libgui.so:lib/vndk-compat/libgui.so +lib/libhardware_legacy.so:lib/vndk-compat/libhardware_legacy.so +lib/libhwastc.so:lib/vndk-compat/libhwastc.so +lib/libhwuibridge.so:lib/vndk-compat/libhwuibridge.so +lib/libhwui.so:lib/vndk-compat/libhwui.so +lib/libimagefilter.so:lib/vndk-compat/libimagefilter.so +lib/libinput.so:lib/vndk-compat/libinput.so +lib/libjavacore.so:lib/vndk-compat/libjavacore.so +lib/libjpeg.so:lib/vndk-compat/libjpeg.so +lib/libkeymaster_messages.so:lib/vndk-compat/libkeymaster_messages.so +lib/libldacBT_abr.so:lib/vndk-compat/libldacBT_abr.so +lib/libldacBT_enc.so:lib/vndk-compat/libldacBT_enc.so +lib/liblz4.so:lib/vndk-compat/liblz4.so +lib/libmctraster.so:lib/vndk-compat/libmctraster.so +lib/libmediadrm.so:lib/vndk-compat/libmediadrm.so +lib/libmedia_helper.so:lib/vndk-compat/libmedia_helper.so +lib/libmedia_jni.so:lib/vndk-compat/libmedia_jni.so +lib/libmedia.so:lib/vndk-compat/libmedia.so +lib/libmemtrack.so:lib/vndk-compat/libmemtrack.so +lib/libmemunreachable.so:lib/vndk-compat/libmemunreachable.so +lib/libminikin.so:lib/vndk-compat/libminikin.so +lib/libnativeloader.so:lib/vndk-compat/libnativeloader.so +lib/libnetutils.so:lib/vndk-compat/libnetutils.so +lib/libnl.so:lib/vndk-compat/libnl.so +lib/libopus.so:lib/vndk-compat/libopus.so +lib/libpcre2.so:lib/vndk-compat/libpcre2.so +lib/libpiex.so:lib/vndk-compat/libpiex.so +lib/libpng.so:lib/vndk-compat/libpng.so +lib/libpower.so:lib/vndk-compat/libpower.so +lib/libprocinfo.so:lib/vndk-compat/libprocinfo.so +lib/libprotobuf-cpp-full.so:lib/vndk-compat/libprotobuf-cpp-full.so +lib/libprotobuf-cpp-lite.so:lib/vndk-compat/libprotobuf-cpp-lite.so +lib/libquramimagecodec.so:lib/vndk-compat/libquramimagecodec.so +lib/libradio_metadata.so:lib/vndk-compat/libradio_metadata.so +lib/libsamsungeffect.so:lib/vndk-compat/libsamsungeffect.so +lib/libselinux.so:lib/vndk-compat/libselinux.so +lib/libsensor.so:lib/vndk-compat/libsensor.so +lib/libskia.so:lib/vndk-compat/libskia.so +lib/libsoftkeymasterdevice.so:lib/vndk-compat/libsoftkeymasterdevice.so +lib/libspeexresampler.so:lib/vndk-compat/libspeexresampler.so +lib/libsqlite.so:lib/vndk-compat/libsqlite.so +lib/libssl.so:lib/vndk-compat/libssl.so +lib/libstagefright_amrnb_common.so:lib/vndk-compat/libstagefright_amrnb_common.so +lib/libstagefright_enc_common.so:lib/vndk-compat/libstagefright_enc_common.so +lib/libstagefright_foundation.so:lib/vndk-compat/libstagefright_foundation.so +lib/libstagefright_omx.so:lib/vndk-compat/libstagefright_omx.so +lib/libstagefright_soft_aacdec.so:lib/vndk-compat/libstagefright_soft_aacdec.so +lib/libstagefright_soft_aacenc.so:lib/vndk-compat/libstagefright_soft_aacenc.so +lib/libstagefright_soft_amrdec.so:lib/vndk-compat/libstagefright_soft_amrdec.so +lib/libstagefright_soft_amrnbenc.so:lib/vndk-compat/libstagefright_soft_amrnbenc.so +lib/libstagefright_soft_amrwbenc.so:lib/vndk-compat/libstagefright_soft_amrwbenc.so +lib/libstagefright_soft_avcdec.so:lib/vndk-compat/libstagefright_soft_avcdec.so +lib/libstagefright_soft_avcenc.so:lib/vndk-compat/libstagefright_soft_avcenc.so +lib/libstagefright_soft_flacenc.so:lib/vndk-compat/libstagefright_soft_flacenc.so +lib/libstagefright_soft_g711dec.so:lib/vndk-compat/libstagefright_soft_g711dec.so +lib/libstagefright_soft_gsmdec.so:lib/vndk-compat/libstagefright_soft_gsmdec.so +lib/libstagefright_soft_hevcdec.so:lib/vndk-compat/libstagefright_soft_hevcdec.so +lib/libstagefright_soft_mp3dec.so:lib/vndk-compat/libstagefright_soft_mp3dec.so +lib/libstagefright_soft_mpeg2dec.so:lib/vndk-compat/libstagefright_soft_mpeg2dec.so +lib/libstagefright_soft_mpeg4dec.so:lib/vndk-compat/libstagefright_soft_mpeg4dec.so +lib/libstagefright_soft_mpeg4enc.so:lib/vndk-compat/libstagefright_soft_mpeg4enc.so +lib/libstagefright_soft_opusdec.so:lib/vndk-compat/libstagefright_soft_opusdec.so +lib/libstagefright_soft_rawdec.so:lib/vndk-compat/libstagefright_soft_rawdec.so +lib/libstagefright_soft_vorbisdec.so:lib/vndk-compat/libstagefright_soft_vorbisdec.so +lib/libstagefright_soft_vpxdec.so:lib/vndk-compat/libstagefright_soft_vpxdec.so +lib/libstagefright_soft_vpxenc.so:lib/vndk-compat/libstagefright_soft_vpxenc.so +lib/libsts_values.so:lib/vndk-compat/libsts_values.so +lib/libsuspend.so:lib/vndk-compat/libsuspend.so +lib/libsysutils.so:lib/vndk-compat/libsysutils.so +lib/libtinyalsa.so:lib/vndk-compat/libtinyalsa.so +lib/libtinyxml2.so:lib/vndk-compat/libtinyxml2.so +lib/libui.so:lib/vndk-compat/libui.so +lib/libusbhost.so:lib/vndk-compat/libusbhost.so +lib/libutils.so:lib/vndk-compat/libutils.so +lib/libvintf.so:lib/vndk-compat/libvintf.so +lib/libvixl-arm64.so:lib/vndk-compat/libvixl-arm64.so +lib/libvixl-arm.so:lib/vndk-compat/libvixl-arm.so +lib/libvorbisidec.so:lib/vndk-compat/libvorbisidec.so +lib/libwifi-service.so:lib/vndk-compat/libwifi-service.so +lib/libxml2.so:lib/vndk-compat/libxml2.so +lib/libziparchive.so:lib/vndk-compat/libziparchive.so + +# VNDK-SP +lib64/vndk-sp/android.hardware.graphics.allocator@2.0.so:lib64/vndk-sp-compat/android.hardware.graphics.allocator@2.0.so +lib64/vndk-sp/android.hardware.graphics.common@1.0.so:lib64/vndk-sp-compat/android.hardware.graphics.common@1.0.so +lib64/vndk-sp/android.hardware.graphics.mapper@2.0.so:lib64/vndk-sp-compat/android.hardware.graphics.mapper@2.0.so +lib64/vndk-sp/android.hardware.renderscript@1.0.so:lib64/vndk-sp-compat/android.hardware.renderscript@1.0.so +lib64/vndk-sp/libbacktrace.so:lib64/vndk-sp-compat/libbacktrace.so +lib64/vndk-sp/libbase.so:lib64/vndk-sp-compat/libbase.so +lib64/vndk-sp/libbcinfo.so:lib64/vndk-sp-compat/libbcinfo.so +lib64/vndk-sp/libblas.so:lib64/vndk-sp-compat/libblas.so +lib64/vndk-sp/libcompiler_rt.so:lib64/vndk-sp-compat/libcompiler_rt.so +lib64/vndk-sp/libc++.so:lib64/vndk-sp-compat/libc++.so +lib64/vndk-sp/libcutils.so:lib64/vndk-sp-compat/libcutils.so +lib64/vndk-sp/libft2.so:lib64/vndk-sp-compat/libft2.so +lib64/vndk-sp/libhardware.so:lib64/vndk-sp-compat/libhardware.so +lib64/vndk-sp/libhidlbase.so:lib64/vndk-sp-compat/libhidlbase.so +lib64/vndk-sp/libhidltransport.so:lib64/vndk-sp-compat/libhidltransport.so +lib64/vndk-sp/libhwbinder.so:lib64/vndk-sp-compat/libhwbinder.so +lib64/vndk-sp/libion.so:lib64/vndk-sp-compat/libion.so +lib64/vndk-sp/liblzma.so:lib64/vndk-sp-compat/liblzma.so +lib64/vndk-sp/libpng.so:lib64/vndk-sp-compat/libpng.so +lib64/vndk-sp/libRSCpuRef.so:lib64/vndk-sp-compat/libRSCpuRef.so +lib64/vndk-sp/libRSDriver.so:lib64/vndk-sp-compat/libRSDriver.so +lib64/vndk-sp/libRS_internal.so:lib64/vndk-sp-compat/libRS_internal.so +lib64/vndk-sp/libunwind.so:lib64/vndk-sp-compat/libunwind.so +lib64/vndk-sp/libutils.so:lib64/vndk-sp-compat/libutils.so +lib/vndk-sp/android.hardware.graphics.allocator@2.0.so:lib/vndk-sp-compat/android.hardware.graphics.allocator@2.0.so +lib/vndk-sp/android.hardware.graphics.common@1.0.so:lib/vndk-sp-compat/android.hardware.graphics.common@1.0.so +lib/vndk-sp/android.hardware.graphics.mapper@2.0.so:lib/vndk-sp-compat/android.hardware.graphics.mapper@2.0.so +lib/vndk-sp/android.hardware.renderscript@1.0.so:lib/vndk-sp-compat/android.hardware.renderscript@1.0.so +lib/vndk-sp/libbacktrace.so:lib/vndk-sp-compat/libbacktrace.so +lib/vndk-sp/libbase.so:lib/vndk-sp-compat/libbase.so +lib/vndk-sp/libbcinfo.so:lib/vndk-sp-compat/libbcinfo.so +lib/vndk-sp/libblas.so:lib/vndk-sp-compat/libblas.so +lib/vndk-sp/libcompiler_rt.so:lib/vndk-sp-compat/libcompiler_rt.so +lib/vndk-sp/libc++.so:lib/vndk-sp-compat/libc++.so +lib/vndk-sp/libcutils.so:lib/vndk-sp-compat/libcutils.so +lib/vndk-sp/libft2.so:lib/vndk-sp-compat/libft2.so +lib/vndk-sp/libhardware.so:lib/vndk-sp-compat/libhardware.so +lib/vndk-sp/libhidlbase.so:lib/vndk-sp-compat/libhidlbase.so +lib/vndk-sp/libhidltransport.so:lib/vndk-sp-compat/libhidltransport.so +lib/vndk-sp/libhwbinder.so:lib/vndk-sp-compat/libhwbinder.so +lib/vndk-sp/libion.so:lib/vndk-sp-compat/libion.so +lib/vndk-sp/liblzma.so:lib/vndk-sp-compat/liblzma.so +lib/vndk-sp/libpng.so:lib/vndk-sp-compat/libpng.so +lib/vndk-sp/libRSCpuRef.so:lib/vndk-sp-compat/libRSCpuRef.so +lib/vndk-sp/libRSDriver.so:lib/vndk-sp-compat/libRSDriver.so +lib/vndk-sp/libRS_internal.so:lib/vndk-sp-compat/libRS_internal.so +lib/vndk-sp/libunwind.so:lib/vndk-sp-compat/libunwind.so +lib/vndk-sp/libutils.so:lib/vndk-sp-compat/libutils.so diff --git a/setup-makefiles.sh b/setup-makefiles.sh new file mode 100755 index 0000000..5d72ded --- /dev/null +++ b/setup-makefiles.sh @@ -0,0 +1,49 @@ +#!/bin/bash +# +# Copyright (C) 2016 The CyanogenMod Project +# Copyright (C) 2017-2018 The LineageOS Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +set -e + +DEVICE=universal7885-common +VENDOR=samsung + +INITIAL_COPYRIGHT_YEAR=2016 + +# Load extract_utils and do some sanity checks +MY_DIR="${BASH_SOURCE%/*}" +if [[ ! -d "$MY_DIR" ]]; then MY_DIR="$PWD"; fi + +LINEAGE_ROOT="$MY_DIR"/../../.. + +HELPER="$LINEAGE_ROOT"/vendor/lineage/build/tools/extract_utils.sh +if [ ! -f "$HELPER" ]; then + echo "Unable to find helper script at $HELPER" + exit 1 +fi +. "$HELPER" + +# Initialize the helper +setup_vendor "$DEVICE" "$VENDOR" "$LINEAGE_ROOT" + +# Copyright headers and guards +write_headers + +# The standard blobs +write_makefiles "$MY_DIR"/proprietary-files-vndk.txt true + +# We are done! +write_footers diff --git a/universal7885-common.mk b/universal7885-common.mk index afea0fe..d3cf2d0 100644 --- a/universal7885-common.mk +++ b/universal7885-common.mk @@ -21,3 +21,8 @@ DEVICE_PACKAGE_OVERLAYS += $(LOCAL_PATH)/overlay PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.ethernet.xml:system/etc/permissions/android.hardware.ethernet.xml \ frameworks/native/data/etc/android.hardware.fingerprint.xml:system/etc/permissions/android.hardware.fingerprint.xml + +# VNDK +PRODUCT_COPY_FILES += \ + $(LOCAL_PATH)/vndk-compat/ld.config.compat.txt:system/etc/ld.config.compat.txt \ + $(LOCAL_PATH)/vndk-compat/vndk-compat.rc:system/etc/init/vndk-compat.rc diff --git a/vndk-compat/ld.config.compat.txt b/vndk-compat/ld.config.compat.txt new file mode 100644 index 0000000..3bf6847 --- /dev/null +++ b/vndk-compat/ld.config.compat.txt @@ -0,0 +1,128 @@ +# Copyright (C) 2017 The Android Open Source Project +# +# Bionic loader config file. +# + +# Don't change the order here. +dir.system = /system/bin/ +dir.system = /system/xbin/ +dir.vendor = /vendor/bin/ +dir.vendor = /data/nativetest/vendor +dir.vendor = /data/nativetest64/vendor +dir.vendor = /data/benchmarktest/vendor +dir.vendor = /data/benchmarktest64/vendor +dir.system = /data/nativetest +dir.system = /data/nativetest64 +dir.system = /data/benchmarktest +dir.system = /data/benchmarktest64 + +[system] +additional.namespaces = sphal,vndk,rs + +############################################################################### +# "default" namespace +# +# Framework-side code runs in this namespace. Anything from /vendor partition +# can't be loaded in this namespace. +############################################################################### +namespace.default.isolated = false +namespace.default.search.paths = /system/${LIB}:/vendor/${LIB} +namespace.default.permitted.paths = /system/${LIB}:/vendor/${LIB} + +namespace.default.asan.search.paths = /data/asan/system/${LIB}:/system/${LIB}:/data/asan/vendor/${LIB}:/vendor/${LIB} +namespace.default.asan.permitted.paths = /data/asan/system/${LIB}:/system/${LIB}:/data/asan/vendor/${LIB}:/vendor/${LIB} + +# TODO(b/37013858): remove all dependencies to /vendor/lib from system processes +# When this is done, comment out following three lines and remove the three +# lines above +#namespace.default.isolated = true +#namespace.default.search.paths = /system/${LIB} +#namespace.default.permitted.paths = /system/${LIB} +# +#namespace.default.asan.search.paths = /data/asan/system/${LIB}:/system/${LIB} +#namespace.default.asan.permitted.paths = /data/asan/system/${LIB}:/system/${LIB} + +############################################################################### +# "sphal" namespace +# +# SP-HAL(Sameprocess-HAL)s are the only vendor libraries that are allowed to be +# loaded inside system processes. libEGL_.so, libGLESv2_.so, +# android.hardware.graphics.mapper@2.0-impl.so, etc are SP-HALs. +# +# This namespace is exclusivly for SP-HALs. When the framework tries to dynami- +# cally load SP-HALs, android_dlopen_ext() is used to explicitly specifying +# that they should be searched and loaded from this namespace. +# +# Note that there is no link from the default namespace to this namespace. +############################################################################### +namespace.sphal.isolated = true +namespace.sphal.visible = true +namespace.sphal.search.paths = /vendor/${LIB}/egl:/vendor/${LIB}/hw:/vendor/${LIB} +namespace.sphal.permitted.paths = /vendor/${LIB}:/system/${LIB}/vndk-sp-compat/hw:/system/${LIB}/vndk-sp/hw + +namespace.sphal.asan.search.paths = /data/asan/vendor/${LIB}/egl:/vendor/${LIB}/egl:/data/asan/vendor/${LIB}/hw:/vendor/${LIB}/hw:/data/asan/vendor/${LIB}:/vendor/${LIB} +namespace.sphal.asan.permitted.paths = /data/asan/vendor/${LIB}:/vendor/${LIB} + +# Once in this namespace, access to libraries in /system/lib is restricted. Only +# libs listed here can be used. +namespace.sphal.links = default,vndk,rs + +# WARNING: only NDK libs can be listed here. +namespace.sphal.link.default.shared_libs = libc.so:libm.so:libdl.so:libstdc++.so:liblog.so:libnativewindow.so:libEGL.so:libsync.so:libGLESv1_CM.so:libGLESv2.so:libvndksupport.so:libz.so + +# WARNING: only VNDK-SP libs can be listed here. DO NOT EDIT this line. +namespace.sphal.link.vndk.shared_libs = android.hardware.renderscript@1.0.so:android.hardware.graphics.allocator@2.0.so:android.hardware.graphics.mapper@2.0.so:android.hardware.graphics.common@1.0.so:android.hidl.memory@1.0.so:android.hidl.base@1.0.so:libhwbinder.so:libbase.so:libcutils.so:libhardware.so:libhidlbase.so:libhidlmemory.so:libhidltransport.so:libion.so:libutils.so:libc++.so + +# Renderscript gets separate namespace +namespace.sphal.link.rs.shared_libs = libRS_internal.so + +############################################################################### +# "rs" namespace +# +# This namespace is exclusively for Renderscript internal libraries. +# This namespace has slightly looser restriction than the vndk namespace because +# of the genuine characteristics of Renderscript; /data is in the permitted path +# to load the compiled *.so file and libmediandk.so can be used here. +############################################################################### +namespace.rs.isolated = true +namespace.rs.visible = true +namespace.rs.search.paths = /vendor/${LIB}/vndk-sp:/system/${LIB}/vndk-sp-compat:/vendor/${LIB}:/system/${LIB} +namespace.rs.permitted.paths = /vendor/${LIB}:/data + +namespace.rs.asan.search.paths = /data/asan/vendor/${LIB}/vndk-sp:/vendor/${LIB}/vndk-sp:/data/asan/system/${LIB}/vndk-sp:/system/${LIB}/vndk-sp-compat:/data/asan/vendor/${LIB}:/vendor/${LIB}:/system/${LIB} +namespace.rs.asan.permitted.paths = /data/asan/vendor/${LIB}:/vendor/${LIB}:/data + +namespace.rs.links = default,vndk +namespace.rs.link.default.shared_libs = libc.so:libm.so:libdl.so:libstdc++.so:liblog.so:libnativewindow.so:libEGL.so:libsync.so:libGLESv1_CM.so:libGLESv2.so:libmediandk.so:libvndksupport.so:libz.so:libft2.so +namespace.rs.link.vndk.shared_libs = android.hardware.renderscript@1.0.so:android.hardware.graphics.allocator@2.0.so:android.hardware.graphics.mapper@2.0.so:android.hardware.graphics.common@1.0.so:android.hidl.memory@1.0.so:libhwbinder.so:libbase.so:libcutils.so:libhardware.so:libhidlbase.so:libhidlmemory.so:libhidltransport.so:libion.so:libutils.so:libc++.so + +############################################################################### +# "vndk" namespace +# +# This namespace is exclusively for vndk-sp libs. +############################################################################### +namespace.vndk.isolated = true +namespace.vndk.visible = true +namespace.vndk.search.paths = /vendor/${LIB}/vndk-sp:/system/${LIB}/vndk-sp-compat +namespace.vndk.permitted.paths = /vendor/${LIB}/hw:/vendor/${LIB}/egl + +namespace.vndk.asan.search.paths = /data/asan/vendor/${LIB}/vndk-sp:/vendor/${LIB}/vndk-sp:/data/asan/system/${LIB}/vndk-sp:/system/${LIB}/vndk-sp-compat +namespace.vndk.asan.permitted.paths = /data/asan/vendor/${LIB}/hw:/vendor/${LIB}/hw:/data/asan/vendor/${LIB}/egl:/vendor/${LIB}/egl + +# When these NDK libs are required inside this namespace, then it is redirected +# to the default namespace. This is possible since their ABI is stable across +# Android releases. +namespace.vndk.links = default +namespace.vndk.link.default.shared_libs = android.hidl.memory@1.0-impl.so:libc.so:libm.so:libdl.so:libstdc++.so:liblog.so:libnativewindow.so:libEGL.so:libsync.so:libvndksupport.so:libz.so + +############################################################################### +# Namespace config for vendor processes. In O, no restriction is enforced for +# them. However, in O-MR1, access to /system/${LIB} will not be allowed to +# the default namespace. 'system' namespace will be added to give limited +# (LL-NDK only) access. +############################################################################### +[vendor] +namespace.default.isolated = false +namespace.default.search.paths = /vendor/${LIB}/hw:/vendor/${LIB}/egl:/vendor/${LIB}:/system/${LIB}/vndk-compat:/vendor/${LIB}/vndk-sp:/system/${LIB}/vndk-sp-compat:/system/${LIB} + +namespace.default.asan.search.paths = /data/asan/vendor/${LIB}/hw:/vendor/${LIB}/hw:/data/asan/vendor/${LIB}/egl:/vendor/${LIB}/egl:/data/asan/vendor/${LIB}:/vendor/${LIB}:/data/asan/system/${LIB}/vndk:/system/${LIB}/vndk-compat:/data/asan/vendor/${LIB}/vndk-sp:/vendor/${LIB}/vndk-sp:/data/asan/system/${LIB}/vndk-sp:/system/${LIB}/vndk-sp-compat:/data/asan/system/${LIB}:/system/${LIB} diff --git a/vndk-compat/vndk-compat.rc b/vndk-compat/vndk-compat.rc new file mode 100644 index 0000000..51c8fb8 --- /dev/null +++ b/vndk-compat/vndk-compat.rc @@ -0,0 +1,2 @@ +on post-fs + export LD_CONFIG_FILE /system/etc/ld.config.compat.txt