From 6746942f3017ba1323914001ce16f8b7c387c701 Mon Sep 17 00:00:00 2001 From: Tad Date: Tue, 26 Jun 2018 05:57:22 -0400 Subject: [PATCH] 14.1: Add grouper --- Manifests/Manifest_LAOS-14.1.xml | 4 + Manifests/Manifest_LAOS-15.1.xml | 2 +- .../0001-Update_Blobs.patch | 248 ++++++++++++++++++ .../lineage-proprietary-files.txt | 63 +++++ Patches/Linux | 2 +- Scripts/Common/Functions.sh | 2 +- .../android_kernel_asus_grouper.sh | 58 ++++ Scripts/LineageOS-14.1/Functions.sh | 3 +- Scripts/LineageOS-14.1/Patch.sh | 5 + 9 files changed, 383 insertions(+), 4 deletions(-) create mode 100644 Patches/LineageOS-14.1/android_device_asus_grouper/0001-Update_Blobs.patch create mode 100644 Patches/LineageOS-14.1/android_device_asus_grouper/lineage-proprietary-files.txt create mode 100644 Scripts/LineageOS-14.1/CVE_Patchers/android_kernel_asus_grouper.sh diff --git a/Manifests/Manifest_LAOS-14.1.xml b/Manifests/Manifest_LAOS-14.1.xml index f04162e2..f1acea68 100644 --- a/Manifests/Manifest_LAOS-14.1.xml +++ b/Manifests/Manifest_LAOS-14.1.xml @@ -143,6 +143,10 @@ + + + + diff --git a/Manifests/Manifest_LAOS-15.1.xml b/Manifests/Manifest_LAOS-15.1.xml index 60df5f9f..d9a76efd 100644 --- a/Manifests/Manifest_LAOS-15.1.xml +++ b/Manifests/Manifest_LAOS-15.1.xml @@ -138,7 +138,7 @@ - + diff --git a/Patches/LineageOS-14.1/android_device_asus_grouper/0001-Update_Blobs.patch b/Patches/LineageOS-14.1/android_device_asus_grouper/0001-Update_Blobs.patch new file mode 100644 index 00000000..d3b0a9ef --- /dev/null +++ b/Patches/LineageOS-14.1/android_device_asus_grouper/0001-Update_Blobs.patch @@ -0,0 +1,248 @@ +From be52768051dd1978bb6a4b9bd46aff4eb09c0412 Mon Sep 17 00:00:00 2001 +From: Harry Youd +Date: Mon, 26 Mar 2018 15:52:22 +0200 +Subject: [PATCH] grouper: Initial 14.1 blob list + +Change-Id: I1e9a7e2a998810778426ab522995af2f90529b44 +--- + device-common.mk | 6 +-- + extract-files.sh | 63 ++++++++++++++++++++++++++++++ + lineage-proprietary-files.txt | 89 +++++++++++++++++++++++++++++++++++++++++++ + setup-makefiles.sh | 48 +++++++++++++++++++++++ + 4 files changed, 201 insertions(+), 5 deletions(-) + create mode 100755 extract-files.sh + create mode 100644 lineage-proprietary-files.txt + create mode 100755 setup-makefiles.sh + +diff --git a/device-common.mk b/device-common.mk +index ac66bec..cdbc040 100644 +--- a/device-common.mk ++++ b/device-common.mk +@@ -134,8 +134,4 @@ PRODUCT_PACKAGES += \ + libstagefrighthw + + # Vendor blobs +-$(call inherit-product, vendor/asus/grouper/asus-vendor.mk) +-$(call inherit-product, vendor/broadcom/grouper/broadcom-vendor.mk) +-$(call inherit-product, vendor/invensense/grouper/invensense-vendor.mk) +-$(call inherit-product, vendor/nvidia/grouper/nvidia-vendor.mk) +-$(call inherit-product-if-exists, vendor/widevine/grouper/widevine-vendor.mk) ++$(call inherit-product, vendor/asus/grouper/grouper-vendor.mk) +diff --git a/extract-files.sh b/extract-files.sh +new file mode 100755 +index 0000000..43dd96b +--- /dev/null ++++ b/extract-files.sh +@@ -0,0 +1,63 @@ ++#!/bin/bash ++# ++# Copyright (C) 2016 The CyanogenMod Project ++# Copyright (C) 2017 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=grouper ++VENDOR=asus ++ ++# Load extract_utils and do some sanity checks ++MY_DIR="${BASH_SOURCE%/*}" ++if [[ ! -d "$MY_DIR" ]]; then MY_DIR="$PWD"; fi ++ ++CM_ROOT="$MY_DIR"/../../.. ++ ++HELPER="$CM_ROOT"/vendor/cm/build/tools/extract_utils.sh ++if [ ! -f "$HELPER" ]; then ++ echo "Unable to find helper script at $HELPER" ++ exit 1 ++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" "$CM_ROOT" false "$CLEAN_VENDOR" ++ ++extract "$MY_DIR"/lineage-proprietary-files.txt "$SRC" "$SECTION" ++ ++"$MY_DIR"/setup-makefiles.sh +diff --git a/lineage-proprietary-files.txt b/lineage-proprietary-files.txt +new file mode 100644 +index 0000000..460ef24 +--- /dev/null ++++ b/lineage-proprietary-files.txt +@@ -0,0 +1,89 @@ ++# SORT ME ++etc/nvram.txt ++ ++# Sensors ++vendor/lib/hw/sensors.grouper.so ++vendor/lib/libsensors.lightsensor.so ++ ++# Radio ++etc/firmware/bcm4330.hcd ++ ++# GPS ++vendor/bin/gpsd ++vendor/lib/hw/gps.tegra3.so ++ ++# Gyro ++vendor/lib/libinvensense_hal.so ++vendor/lib/libmllite.so ++vendor/lib/libmplmpu.so ++ ++# NFC ++vendor/firmware/libpn544_fw.so ++ ++# Multimedia ++vendor/firmware/nvavp_os_00001000.bin ++vendor/firmware/nvavp_os_0ff00000.bin ++vendor/firmware/nvavp_os_e0000000.bin ++vendor/firmware/nvavp_os_eff00000.bin ++vendor/firmware/nvavp_vid_ucode_alt.bin ++ ++# Camera ++vendor/lib/hw/camera.tegra3.so ++vendor/lib/libnvcamerahdr.so ++vendor/lib/libnvmm_camera.so ++ ++# Display ++vendor/lib/egl/libEGL_tegra.so ++vendor/lib/egl/libGLESv1_CM_tegra.so ++vendor/lib/egl/libGLESv2_tegra.so ++vendor/lib/hw/gralloc.tegra3.so ++vendor/lib/hw/hwcomposer.tegra3.so ++vendor/lib/libardrv_dynamic.so ++vendor/lib/libcgdrv.so ++vendor/lib/libnvapputil.so ++vendor/lib/libnvasfparserhal.so ++vendor/lib/libnvaviparserhal.so ++vendor/lib/libnvavp.so ++vendor/lib/libnvdispmgr_d.so ++vendor/lib/libnvmm_video.so ++ ++# ???? ++vendor/lib/libnvddk_2d.so ++vendor/lib/libnvddk_2d_v2.so ++vendor/lib/libnvmm.so ++vendor/lib/libnvmm_audio.so ++vendor/lib/libnvmm_contentpipe.so ++vendor/lib/libnvmm_image.so ++vendor/lib/libnvmm_manager.so ++vendor/lib/libnvmm_misc.so ++vendor/lib/libnvmm_parser.so ++vendor/lib/libnvmm_service.so ++vendor/lib/libnvmm_utils.so ++vendor/lib/libnvmm_writer.so ++vendor/lib/libnvmmlite.so ++vendor/lib/libnvmmlite_audio.so ++vendor/lib/libnvmmlite_image.so ++vendor/lib/libnvmmlite_utils.so ++vendor/lib/libnvmmlite_video.so ++vendor/lib/libnvodm_dtvtuner.so ++vendor/lib/libnvodm_hdmi.so ++vendor/lib/libnvodm_imager.so ++vendor/lib/libnvodm_misc.so ++vendor/lib/libnvodm_query.so ++vendor/lib/libnvomx.so ++vendor/lib/libnvomxilclient.so ++vendor/lib/libnvos.so ++vendor/lib/libnvparser.so ++vendor/lib/libnvrm.so ++vendor/lib/libnvrm_graphics.so ++vendor/lib/libnvsm.so ++vendor/lib/libnvtvmr.so ++vendor/lib/libnvwinsys.so ++vendor/lib/libnvwsi.so ++ ++# Touchscreen ++vendor/firmware/touch_fw.ekt ++ ++# DRM ++vendor/lib/mediadrm/libwvdrmengine.so ++ +diff --git a/setup-makefiles.sh b/setup-makefiles.sh +new file mode 100755 +index 0000000..7c82753 +--- /dev/null ++++ b/setup-makefiles.sh +@@ -0,0 +1,48 @@ ++#!/bin/bash ++# ++# Copyright (C) 2016 The CyanogenMod Project ++# Copyright (C) 2017 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=grouper ++VENDOR=asus ++ ++INITIAL_COPYRIGHT_YEAR=2010 ++ ++# Load extract_utils and do some sanity checks ++MY_DIR="${BASH_SOURCE%/*}" ++if [[ ! -d "$MY_DIR" ]]; then MY_DIR="$PWD"; fi ++ ++CM_ROOT="$MY_DIR"/../../.. ++ ++HELPER="$CM_ROOT"/vendor/cm/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" "$CM_ROOT" ++ ++# Copyright headers and guards ++write_headers ++ ++write_makefiles "$MY_DIR"/lineage-proprietary-files.txt ++ ++# Finish ++write_footers diff --git a/Patches/LineageOS-14.1/android_device_asus_grouper/lineage-proprietary-files.txt b/Patches/LineageOS-14.1/android_device_asus_grouper/lineage-proprietary-files.txt new file mode 100644 index 00000000..f2d9d7b3 --- /dev/null +++ b/Patches/LineageOS-14.1/android_device_asus_grouper/lineage-proprietary-files.txt @@ -0,0 +1,63 @@ +etc/firmware/bcm4330.hcd +etc/nvram.txt +vendor/bin/gpsd +vendor/firmware/nvavp_os_00001000.bin +vendor/firmware/nvavp_os_0ff00000.bin +vendor/firmware/nvavp_os_e0000000.bin +vendor/firmware/nvavp_os_eff00000.bin +vendor/firmware/nvavp_vid_ucode_alt.bin +vendor/lib/egl/libEGL_tegra.so +vendor/lib/egl/libGLESv1_CM_tegra.so +vendor/lib/egl/libGLESv2_tegra.so +vendor/lib/hw/camera.tegra3.so +vendor/lib/hw/gps.tegra3.so +vendor/lib/hw/gralloc.tegra3.so +vendor/lib/hw/hwcomposer.tegra3.so +vendor/lib/hw/sensors.grouper.so +vendor/lib/libardrv_dynamic.so +vendor/lib/libcgdrv.so +vendor/lib/libinvensense_hal.so +vendor/lib/libmllite.so +vendor/lib/libmplmpu.so +vendor/lib/libnvapputil.so +vendor/lib/libnvasfparserhal.so +vendor/lib/libnvaviparserhal.so +vendor/lib/libnvavp.so +vendor/lib/libnvcamerahdr.so +vendor/lib/libnvddk_2d.so +vendor/lib/libnvddk_2d_v2.so +vendor/lib/libnvdispmgr_d.so +vendor/lib/libnvmm.so +vendor/lib/libnvmm_audio.so +vendor/lib/libnvmm_camera.so +vendor/lib/libnvmm_contentpipe.so +vendor/lib/libnvmm_image.so +vendor/lib/libnvmm_manager.so +vendor/lib/libnvmm_misc.so +vendor/lib/libnvmm_parser.so +vendor/lib/libnvmm_service.so +vendor/lib/libnvmm_utils.so +vendor/lib/libnvmm_video.so +vendor/lib/libnvmm_writer.so +vendor/lib/libnvmmlite.so +vendor/lib/libnvmmlite_audio.so +vendor/lib/libnvmmlite_image.so +vendor/lib/libnvmmlite_utils.so +vendor/lib/libnvmmlite_video.so +vendor/lib/libnvodm_dtvtuner.so +vendor/lib/libnvodm_hdmi.so +vendor/lib/libnvodm_imager.so +vendor/lib/libnvodm_misc.so +vendor/lib/libnvodm_query.so +vendor/lib/libnvomx.so +vendor/lib/libnvomxilclient.so +vendor/lib/libnvos.so +vendor/lib/libnvparser.so +vendor/lib/libnvrm.so +vendor/lib/libnvrm_graphics.so +vendor/lib/libnvsm.so +vendor/lib/libnvtvmr.so +vendor/lib/libnvwinsys.so +vendor/lib/libnvwsi.so +vendor/lib/libsensors.lightsensor.so +vendor/lib/mediadrm/libwvdrmengine.so diff --git a/Patches/Linux b/Patches/Linux index 8f939c08..0ed6e1b7 160000 --- a/Patches/Linux +++ b/Patches/Linux @@ -1 +1 @@ -Subproject commit 8f939c08b3988d272037622994cc0eac75c12097 +Subproject commit 0ed6e1b7bdd188d460e1bb1fee8437f1f172d06f diff --git a/Scripts/Common/Functions.sh b/Scripts/Common/Functions.sh index e5d372c0..142c5747 100644 --- a/Scripts/Common/Functions.sh +++ b/Scripts/Common/Functions.sh @@ -299,7 +299,7 @@ hardenDefconfig() { sed -i 's/CONFIG_ARCH_MMAP_RND_BITS=8/CONFIG_ARCH_MMAP_RND_BITS=16/' $defconfigPath &>/dev/null || true; sed -i 's/CONFIG_ARCH_MMAP_RND_BITS=18/CONFIG_ARCH_MMAP_RND_BITS=24/' $defconfigPath &>/dev/null || true; sed -i 's/CONFIG_DEFAULT_MMAP_MIN_ADDR=4096/CONFIG_DEFAULT_MMAP_MIN_ADDR=32768/' $defconfigPath &>/dev/null || true; - sed -i 's/CONFIG_LSM_MMAP_MIN_ADDR=4096/CONFIG_DEFAULT_MMAP_MIN_ADDR=32768/' $defconfigPath &>/dev/null || true; + sed -i 's/CONFIG_LSM_MMAP_MIN_ADDR=4096/CONFIG_LSM_MMAP_MIN_ADDR=32768/' $defconfigPath &>/dev/null || true; editKernelLocalversion "-dos"; diff --git a/Scripts/LineageOS-14.1/CVE_Patchers/android_kernel_asus_grouper.sh b/Scripts/LineageOS-14.1/CVE_Patchers/android_kernel_asus_grouper.sh new file mode 100644 index 00000000..866463c7 --- /dev/null +++ b/Scripts/LineageOS-14.1/CVE_Patchers/android_kernel_asus_grouper.sh @@ -0,0 +1,58 @@ +#!/bin/bash +cd $base"kernel/asus/grouper" +git apply $cvePatchesLinux/0010-Accelerated_AES/3.4/0002.patch +git apply $cvePatchesLinux/0012-Copperhead-Deny_USB/3.4/3.4-Backport.patch +git apply $cvePatchesLinux/0013-syskaller-Misc/ANY/0008.patch +git apply $cvePatchesLinux/0013-syskaller-Misc/ANY/0009.patch +git apply $cvePatchesLinux/CVE-2014-9895/ANY/0001.patch +git apply $cvePatchesLinux/CVE-2016-0801/ANY/0001.patch +git apply $cvePatchesLinux/CVE-2016-2185/ANY/0001.patch +git apply $cvePatchesLinux/CVE-2016-2186/ANY/0001.patch +git apply $cvePatchesLinux/CVE-2016-3857/ANY/0001.patch +git apply $cvePatchesLinux/CVE-2016-7117/^4.5/0002.patch +git apply $cvePatchesLinux/CVE-2016-8402/3.4/0001.patch +git apply $cvePatchesLinux/CVE-2016-8406/ANY/0001.patch +git apply $cvePatchesLinux/CVE-2016-9576/3.4/0001.patch +git apply $cvePatchesLinux/CVE-2017-0430/ANY/0001.patch +git apply $cvePatchesLinux/CVE-2017-0510/3.4/0001.patch +git apply $cvePatchesLinux/CVE-2017-0648/ANY/0001.patch +git apply $cvePatchesLinux/CVE-2017-0710/ANY/0001.patch +git apply $cvePatchesLinux/CVE-2017-0750/ANY/0001.patch +git apply $cvePatchesLinux/CVE-2017-0786/ANY/0001.patch +git apply $cvePatchesLinux/CVE-2017-1000380/^4.11/0001.patch +git apply $cvePatchesLinux/CVE-2017-11090/ANY/0001.patch +git apply $cvePatchesLinux/CVE-2017-11473/ANY/0001.patch +git apply $cvePatchesLinux/CVE-2017-12153/3.2-^3.16/0001.patch +git apply $cvePatchesLinux/CVE-2017-13080/ANY/0002.patch +git apply $cvePatchesLinux/CVE-2017-13215/ANY/0001.patch +git apply $cvePatchesLinux/CVE-2017-13246/ANY/0001.patch +git apply $cvePatchesLinux/CVE-2017-15265/^4.14/0001.patch +git apply $cvePatchesLinux/CVE-2017-16525/^4.13/0002.patch +git apply $cvePatchesLinux/CVE-2017-16526/^4.13/0001.patch +git apply $cvePatchesLinux/CVE-2017-16532/^4.13/0001.patch +git apply $cvePatchesLinux/CVE-2017-16533/^4.13/0001.patch +git apply $cvePatchesLinux/CVE-2017-16535/^4.13/0001.patch +git apply $cvePatchesLinux/CVE-2017-16537/^4.13/0001.patch +git apply $cvePatchesLinux/CVE-2017-16650/ANY/0001.patch +git apply $cvePatchesLinux/CVE-2017-16USB/ANY/0001.patch +git apply $cvePatchesLinux/CVE-2017-16USB/ANY/0005.patch +git apply $cvePatchesLinux/CVE-2017-16USB/ANY/0006.patch +git apply $cvePatchesLinux/CVE-2017-17558/ANY/0001.patch +git apply $cvePatchesLinux/CVE-2017-17806/ANY/0001.patch +git apply $cvePatchesLinux/CVE-2017-2671/^4.10/0001.patch +git apply $cvePatchesLinux/CVE-2017-6074/^4.9/0001.patch +git apply $cvePatchesLinux/CVE-2017-6345/^4.9/0001.patch +git apply $cvePatchesLinux/CVE-2017-6348/^4.9/0001.patch +git apply $cvePatchesLinux/CVE-2017-6951/^3.14/0001.patch +git apply $cvePatchesLinux/CVE-2017-7184/ANY/0001.patch +git apply $cvePatchesLinux/CVE-2017-7184/ANY/0002.patch +git apply $cvePatchesLinux/CVE-2017-7308/ANY/0003.patch +git apply $cvePatchesLinux/CVE-2017-7487/ANY/0001.patch +git apply $cvePatchesLinux/CVE-2017-7533/3.4/0001.patch +git apply $cvePatchesLinux/CVE-2017-8890/3.4/0001.patch +git apply $cvePatchesLinux/CVE-2017-9242/^4.11/0001.patch +git apply $cvePatchesLinux/Untracked/ANY/0008-nfsd-check-for-oversized-NFSv2-v3-arguments.patch +git apply $cvePatchesLinux/CVE-2017-0750/ANY/0001.patch +git apply $cvePatchesLinux/CVE-2017-1000111/ANY/0001.patch +editKernelLocalversion "-dos.p54" +cd $base diff --git a/Scripts/LineageOS-14.1/Functions.sh b/Scripts/LineageOS-14.1/Functions.sh index f0e2fbd0..92ae166c 100644 --- a/Scripts/LineageOS-14.1/Functions.sh +++ b/Scripts/LineageOS-14.1/Functions.sh @@ -18,7 +18,7 @@ #Last verified: 2018-04-27 patchAllKernels() { - startPatcher "kernel_amazon_hdx-common kernel_asus_msm8916 kernel_fairphone_msm8974 kernel_htc_msm8994 kernel_lge_hammerhead kernel_lge_msm8992 kernel_lge_msm8996 kernel_motorola_msm8916 kernel_motorola_msm8992 kernel_samsung_jf kernel_samsung_msm8974 kernel_samsung_smdk4412 kernel_samsung_universal8890"; + startPatcher "kernel_amazon_hdx-common kernel_asus_grouper kernel_asus_msm8916 kernel_fairphone_msm8974 kernel_htc_msm8994 kernel_lge_hammerhead kernel_lge_msm8992 kernel_lge_msm8996 kernel_motorola_msm8916 kernel_motorola_msm8992 kernel_samsung_jf kernel_samsung_msm8974 kernel_samsung_smdk4412 kernel_samsung_universal8890"; } export -f patchAllKernels; @@ -54,6 +54,7 @@ buildAll() { brunch lineage_thor-userdebug; #deprecated brunch lineage_clark-user; brunch lineage_FP2-user; + #brunch lineage_grouper-user; #builds, but requires out-of-tree blobs brunch lineage_h815-user; #deprecated (UPSTREAM) drivers/input/touchscreen/DS5/RefCode_CustomerImplementation.c:147:1: warning: the frame size of 2064 bytes is larger than 2048 bytes brunch lineage_h850-userdebug; brunch lineage_hammerhead-user; diff --git a/Scripts/LineageOS-14.1/Patch.sh b/Scripts/LineageOS-14.1/Patch.sh index 6626d8fb..29a62976 100755 --- a/Scripts/LineageOS-14.1/Patch.sh +++ b/Scripts/LineageOS-14.1/Patch.sh @@ -229,6 +229,11 @@ sed -i 's/,encryptable=footer//' rootdir/etc/fstab.qcom; #Using footer will brea #XXX: If not used with a supported recovery, it'll be thrown into a bootloop, don't worry just 'fastboot erase misc' and reboot #echo "/dev/block/platform/msm_sdcc.1/by-name/misc /misc emmc defaults defaults" >> rootdir/etc/fstab.qcom; #Add the misc (mmcblk0p5) partition for recovery flags +enterAndClear "device/asus/grouper"; +patch -p1 < "$patches/android_device_asus_grouper/0001-Update_Blobs.patch"; +rm proprietary-blobs.txt; +cp "$patches/android_device_asus_grouper/lineage-proprietary-files.txt" lineage-proprietary-files.txt; + enterAndClear "device/motorola/clark"; sed -i 's/0xA04D/0xA04D|0xA052/' board-info.txt; #Allow installing on Nougat bootloader, assume the user is running the correct modem rm board-info.txt; #Never restrict installation