2020-04-14 16:15:33 -04:00
#!/bin/bash
2020-11-17 10:11:40 -05:00
#DivestOS: A privacy focused mobile distribution
2021-09-15 10:30:08 -04:00
#Copyright (c) 2017-2021 Divested Computing Group
2020-04-14 16:15:33 -04:00
#
#This program is free software: you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation, either version 3 of the License, or
#(at your option) any later version.
#
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#
#You should have received a copy of the GNU General Public License
#along with this program. If not, see <https://www.gnu.org/licenses/>.
2021-10-16 19:15:19 -04:00
umask 0022;
2020-04-14 16:15:33 -04:00
2021-10-16 16:28:41 -04:00
#Last verified: 2021-10-16
2020-04-14 16:15:33 -04:00
patchAllKernels( ) {
2022-06-08 20:45:53 -04:00
startPatcher "kernel_cyanogen_msm8916 kernel_motorola_msm8916 kernel_motorola_msm8992 kernel_motorola_msm8996 kernel_oneplus_msm8994 kernel_oneplus_sm7250 kernel_samsung_universal9810 kernel_xiaomi_sm6150 kernel_yandex_sdm660" ;
2020-04-14 16:15:33 -04:00
}
export -f patchAllKernels;
scanWorkspaceForMalware( ) {
2020-05-04 17:18:50 -04:00
local scanQueue = " $DOS_BUILD_BASE /android $DOS_BUILD_BASE /art $DOS_BUILD_BASE /bionic $DOS_BUILD_BASE /bootable $DOS_BUILD_BASE /build $DOS_BUILD_BASE /dalvik $DOS_BUILD_BASE /device $DOS_BUILD_BASE /hardware $DOS_BUILD_BASE /libcore $DOS_BUILD_BASE /libnativehelper $DOS_BUILD_BASE /packages $DOS_BUILD_BASE /pdk $DOS_BUILD_BASE /platform_testing $DOS_BUILD_BASE /sdk $DOS_BUILD_BASE /system " ;
2020-04-14 16:15:33 -04:00
scanQueue = $scanQueue " $DOS_BUILD_BASE /lineage-sdk $DOS_BUILD_BASE /vendor/lineage " ;
scanForMalware true " $scanQueue " ;
}
export -f scanWorkspaceForMalware;
buildDevice( ) {
2021-01-24 00:44:34 -05:00
cd " $DOS_BUILD_BASE " ;
2020-04-14 16:15:33 -04:00
export OTA_KEY_OVERRIDE_DIR = " $DOS_SIGNING_KEYS / $1 " ;
2021-03-29 17:09:12 -04:00
breakfast " lineage_ $1 -user " && mka target-files-package otatools && processRelease $1 true $2 ;
2020-04-14 16:15:33 -04:00
}
export -f buildDevice;
buildDeviceDebug( ) {
2021-01-24 00:44:34 -05:00
cd " $DOS_BUILD_BASE " ;
2020-04-14 16:15:33 -04:00
unset OTA_KEY_OVERRIDE_DIR;
brunch " lineage_ $1 -eng " ;
}
export -f buildDeviceDebug;
buildAll( ) {
2021-06-27 14:14:34 -04:00
umask 0022;
2021-01-24 00:44:34 -05:00
cd " $DOS_BUILD_BASE " ;
2020-04-14 16:15:33 -04:00
if [ " $DOS_MALWARE_SCAN_ENABLED " = true ] ; then scanWorkspaceForMalware; fi ;
2020-05-30 14:09:56 -04:00
#SD410
buildDevice crackling;
2021-11-11 10:22:00 -05:00
buildDevice harpia;
buildDevice merlin;
2021-08-05 23:42:37 -04:00
buildDevice osprey;
2021-08-26 21:02:28 -04:00
buildDevice surnia;
2020-07-23 04:47:34 -04:00
#SD808
2020-11-15 08:16:23 -05:00
buildDevice clark;
2020-05-30 14:09:56 -04:00
#SD810
buildDevice oneplus2;
2020-04-14 16:15:33 -04:00
#SD820
buildDevice griffin;
2021-09-11 14:31:47 -04:00
#SD730
2022-10-06 15:02:52 -04:00
buildDevice davinci avb; #broken - missing deps
2020-04-14 16:15:33 -04:00
#SD660
2020-05-13 17:25:52 -04:00
buildDevice Amber verity;
2021-03-24 00:57:59 -04:00
#SD765
buildDevice avicii avb;
2022-06-08 20:45:53 -04:00
#Exynos
#buildDevice starlte; #broken - error: memremap.c:(.text+0xd248): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `sl_softirq_entry'
#buildDevice star2lte;
2020-04-14 16:15:33 -04:00
}
export -f buildAll;
patchWorkspace( ) {
2021-06-27 14:14:34 -04:00
umask 0022;
2021-10-16 15:28:15 -04:00
cd " $DOS_BUILD_BASE $1 " ;
touch DOS_PATCHED_FLAG;
2020-04-14 16:15:33 -04:00
if [ " $DOS_MALWARE_SCAN_ENABLED " = true ] ; then scanForMalware false " $DOS_PREBUILT_APPS $DOS_BUILD_BASE /build $DOS_BUILD_BASE /device $DOS_BUILD_BASE /vendor/lineage " ; fi ;
2022-08-26 23:02:25 -04:00
verifyAllPlatformTags;
gpgVerifyGitTag " $DOS_BUILD_BASE /external/hardened_malloc " ;
gpgVerifyGitHead " $DOS_BUILD_BASE /external/chromium-webview " ;
2020-04-14 16:15:33 -04:00
2022-12-08 20:33:25 -05:00
source build/envsetup.sh;
2020-11-19 16:19:58 -05:00
#repopick -it ten-firewall;
2022-11-11 14:53:06 -05:00
repopick -it Q_tzdb2022f;
2022-12-07 12:37:13 -05:00
repopick -it Q_asb_2022-12;
2020-04-14 16:15:33 -04:00
2021-10-16 15:28:15 -04:00
sh " $DOS_SCRIPTS /Patch.sh " ;
2021-11-01 21:35:41 -04:00
sh " $DOS_SCRIPTS_COMMON /Enable_Verity.sh " ;
2021-10-16 15:28:15 -04:00
sh " $DOS_SCRIPTS_COMMON /Copy_Keys.sh " ;
sh " $DOS_SCRIPTS /Defaults.sh " ;
sh " $DOS_SCRIPTS /Rebrand.sh " ;
sh " $DOS_SCRIPTS_COMMON /Optimize.sh " ;
sh " $DOS_SCRIPTS_COMMON /Deblob.sh " ;
sh " $DOS_SCRIPTS_COMMON /Patch_CVE.sh " ;
sh " $DOS_SCRIPTS_COMMON /Post.sh " ;
2020-04-14 16:15:33 -04:00
source build/envsetup.sh;
}
export -f patchWorkspace;
enableDexPreOpt( ) {
cd " $DOS_BUILD_BASE $1 " ;
if [ -f BoardConfig.mk ] ; then
2020-11-01 09:50:03 -05:00
echo "WITH_DEXPREOPT := true" >> BoardConfig.mk;
echo "WITH_DEXPREOPT_DEBUG_INFO := false" >> BoardConfig.mk;
2021-06-14 02:05:44 -04:00
if [ " $1 " != "device/htc/m8" ] ; then
2021-05-30 01:55:29 -04:00
echo "WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY := false" >> BoardConfig.mk;
echo " Enabled full dexpreopt for $1 " ;
else
echo "WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY := true" >> BoardConfig.mk;
echo " Enabled core dexpreopt for $1 " ;
fi ;
2020-04-14 16:15:33 -04:00
fi ;
cd " $DOS_BUILD_BASE " ;
}
2020-11-01 09:50:03 -05:00
export -f enableDexPreOpt;
2020-04-14 16:15:33 -04:00
enableLowRam( ) {
cd " $DOS_BUILD_BASE $1 " ;
2022-04-13 11:39:11 -04:00
if [ -f lineage_$2 .mk ] ; then echo -e '\n$(call inherit-product, vendor/divested/build/target/product/lowram.mk)' >> lineage_$2 .mk; fi ;
2020-04-14 16:15:33 -04:00
if [ -f BoardConfig.mk ] ; then echo 'MALLOC_SVELTE := true' >> BoardConfig.mk; fi ;
if [ -f BoardConfigCommon.mk ] ; then echo 'MALLOC_SVELTE := true' >> BoardConfigCommon.mk; fi ;
echo " Enabled lowram for $1 " ;
cd " $DOS_BUILD_BASE " ;
}
export -f enableLowRam;