diff --git a/Patches/Common/android_vendor_divested/build/target/product/lowram.mk b/Patches/Common/android_vendor_divested/build/target/product/lowram.mk index 17c331d4..f9109fef 100644 --- a/Patches/Common/android_vendor_divested/build/target/product/lowram.mk +++ b/Patches/Common/android_vendor_divested/build/target/product/lowram.mk @@ -18,15 +18,20 @@ # Set lowram options PRODUCT_PROPERTY_OVERRIDES += \ + persist.security.exec_spawn=false \ ro.config.low_ram=true \ ro.lmk.critical_upgrade=true \ ro.lmk.upgrade_pressure=40 \ ro.lmk.downgrade_pressure=60 \ ro.lmk.kill_heaviest_task=false \ config.disable_atlas=true \ - dalvik.vm.madvise-random=true -# dalvik.vm.heapgrowthlimit=128m \ -# dalvik.vm.heapsize=256m + dalvik.vm.madvise-random=true \ + ro.statsd.enable=false \ + persist.traced.enable=0 + +# set threshold to filter unused apps +PRODUCT_PROPERTY_OVERRIDES += \ + pm.dexopt.downgrade_after_inactive_days=10 # Speed profile services and wifi-service to reduce RAM and storage. PRODUCT_SYSTEM_SERVER_COMPILER_FILTER := speed-profile @@ -35,10 +40,35 @@ PRODUCT_SYSTEM_SERVER_COMPILER_FILTER := speed-profile # modules. PRODUCT_ALWAYS_PREOPT_EXTRACTED_APK := true +# set the compiler filter for shared apks to quicken. +# Rationale: speed has a lot of dex code expansion, it uses more ram and space +# compared to quicken. Using quicken for shared APKs on Go devices may save RAM. +# Note that this is a trade-off: here we trade clean pages for dirty pages, +# extra cpu and battery. That's because the quicken files will be jit-ed in all +# the processes that load of shared apk and the code cache is not shared. +# Some notable apps that will be affected by this are gms and chrome. +# b/65591595. +PRODUCT_PROPERTY_OVERRIDES += \ + pm.dexopt.shared=quicken + +# Default heap sizes. Allow up to 256m for large heaps to make sure a single app +# doesn't take all of the RAM. +#PRODUCT_PROPERTY_OVERRIDES += dalvik.vm.heapgrowthlimit=128m +#PRODUCT_PROPERTY_OVERRIDES += dalvik.vm.heapsize=256m + # Do not generate libartd. PRODUCT_ART_TARGET_INCLUDE_DEBUG_BUILD := false +# Do not spin up a separate process for the network stack on go devices, use an in-process APK. +#PRODUCT_PACKAGES += InProcessNetworkStack +#PRODUCT_PACKAGES += CellBroadcastAppPlatform +#PRODUCT_PACKAGES += CellBroadcastServiceModulePlatform +#PRODUCT_PACKAGES += com.android.tethering.inprocess + # Strip the local variable table and the local variable type table to reduce # the size of the system image. This has no bearing on stack traces, but will # leave less information available via JDWP. PRODUCT_MINIMIZE_JAVA_DEBUG_INFO := true + +# Dedupe VNDK libraries with identical core variants. +TARGET_VNDK_USE_CORE_VARIANT := true diff --git a/Scripts/LineageOS-15.1/Patch.sh b/Scripts/LineageOS-15.1/Patch.sh index bb19fa22..89ce8bb9 100644 --- a/Scripts/LineageOS-15.1/Patch.sh +++ b/Scripts/LineageOS-15.1/Patch.sh @@ -327,6 +327,9 @@ cd "$DOS_BUILD_BASE"; deblobAudio || true; removeBuildFingerprints || true; +#Tweaks for <2GB RAM devices +enableLowRam "device/asus/fugu"; + #Fix broken options enabled by hardenDefconfig() sed -i "s/CONFIG_DEBUG_RODATA=y/# CONFIG_DEBUG_RODATA is not set/" kernel/google/msm/arch/arm/configs/lineageos_*_defconfig; #Breaks on compile sed -i "s/CONFIG_STRICT_MEMORY_RWX=y/# CONFIG_STRICT_MEMORY_RWX is not set/" kernel/lge/msm8996/arch/arm64/configs/lineageos_*_defconfig; #Breaks on compile diff --git a/Scripts/LineageOS-16.0/Functions.sh b/Scripts/LineageOS-16.0/Functions.sh index ba9f86a5..a431eb7f 100644 --- a/Scripts/LineageOS-16.0/Functions.sh +++ b/Scripts/LineageOS-16.0/Functions.sh @@ -118,7 +118,8 @@ export -f enableDexPreOpt; enableLowRam() { cd "$DOS_BUILD_BASE$1"; - if [ -f lineage.mk ]; then echo -e '\n$(call inherit-product, vendor/divested/build/target/product/lowram.mk)' >> lineage.mk; fi; #TODO: handle lineage_device.mk + if [ -f lineage.mk ]; then echo -e '\n$(call inherit-product, vendor/divested/build/target/product/lowram.mk)' >> lineage.mk; fi; + if [ -f lineage_$2.mk ]; then echo -e '\n$(call inherit-product, vendor/divested/build/target/product/lowram.mk)' >> lineage_$2.mk; fi; 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"; diff --git a/Scripts/LineageOS-16.0/Patch.sh b/Scripts/LineageOS-16.0/Patch.sh index 8256ad9a..4408e66d 100644 --- a/Scripts/LineageOS-16.0/Patch.sh +++ b/Scripts/LineageOS-16.0/Patch.sh @@ -391,6 +391,9 @@ cd "$DOS_BUILD_BASE"; deblobAudio || true; removeBuildFingerprints || true; +#Tweaks for <2GB RAM devices +enableLowRam "device/asus/fugu" "fugu"; + #Fix broken options enabled by hardenDefconfig() sed -i "s/CONFIG_STRICT_MEMORY_RWX=y/# CONFIG_STRICT_MEMORY_RWX is not set/" kernel/asus/msm8953/arch/arm64/configs/*_defconfig; #Breaks on compile sed -i "s/CONFIG_DEBUG_RODATA=y/# CONFIG_DEBUG_RODATA is not set/" kernel/google/yellowstone/arch/arm*/configs/*_defconfig; #Breaks on compile diff --git a/Scripts/LineageOS-17.1/Functions.sh b/Scripts/LineageOS-17.1/Functions.sh index c3565ff7..21f3d222 100644 --- a/Scripts/LineageOS-17.1/Functions.sh +++ b/Scripts/LineageOS-17.1/Functions.sh @@ -126,7 +126,8 @@ export -f enableDexPreOpt; enableLowRam() { cd "$DOS_BUILD_BASE$1"; - if [ -f lineage.mk ]; then echo -e '\n$(call inherit-product, vendor/divested/build/target/product/lowram.mk)' >> lineage.mk; fi; #TODO: handle lineage_device.mk + if [ -f lineage.mk ]; then echo -e '\n$(call inherit-product, vendor/divested/build/target/product/lowram.mk)' >> lineage.mk; fi; + if [ -f lineage_$2.mk ]; then echo -e '\n$(call inherit-product, vendor/divested/build/target/product/lowram.mk)' >> lineage_$2.mk; fi; 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"; diff --git a/Scripts/LineageOS-17.1/Patch.sh b/Scripts/LineageOS-17.1/Patch.sh index 0ef6c44a..bbddcb54 100644 --- a/Scripts/LineageOS-17.1/Patch.sh +++ b/Scripts/LineageOS-17.1/Patch.sh @@ -478,10 +478,16 @@ removeBuildFingerprints || true; enableAutoVarInit || true; #Tweaks for <2GB RAM devices -#enableLowRam "device/motorola/harpia"; -#enableLowRam "device/motorola/merlin"; -#enableLowRam "device/motorola/osprey"; -#enableLowRam "device/motorola/surnia"; +enableLowRam "device/asus/fugu" "fugu"; +enableLowRam "device/motorola/harpia" "harpia"; +enableLowRam "device/motorola/merlin" "merlin"; +enableLowRam "device/motorola/msm8916-common" "msm8916-common"; +enableLowRam "device/motorola/osprey" "osprey"; +enableLowRam "device/motorola/surnia" "surnia"; +#Tweaks for <3GB RAM devices +enableLowRam "device/cyanogen/msm8916-common" "msm8916-common"; +enableLowRam "device/motorola/clark" "clark"; +enableLowRam "device/wileyfox/crackling" "crackling"; #Fix broken options enabled by hardenDefconfig() sed -i "s/CONFIG_DEBUG_RODATA=y/# CONFIG_DEBUG_RODATA is not set/" kernel/google/yellowstone/arch/arm*/configs/*_defconfig; #Breaks on compile diff --git a/Scripts/LineageOS-18.1/Functions.sh b/Scripts/LineageOS-18.1/Functions.sh index a2faa8a2..ffcb4801 100644 --- a/Scripts/LineageOS-18.1/Functions.sh +++ b/Scripts/LineageOS-18.1/Functions.sh @@ -188,7 +188,8 @@ export -f enableDexPreOpt; enableLowRam() { cd "$DOS_BUILD_BASE$1"; - if [ -f lineage.mk ]; then echo -e '\n$(call inherit-product, vendor/divested/build/target/product/lowram.mk)' >> lineage.mk; fi; #TODO: handle lineage_device.mk + if [ -f lineage.mk ]; then echo -e '\n$(call inherit-product, vendor/divested/build/target/product/lowram.mk)' >> lineage.mk; fi; + if [ -f lineage_$2.mk ]; then echo -e '\n$(call inherit-product, vendor/divested/build/target/product/lowram.mk)' >> lineage_$2.mk; fi; 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"; diff --git a/Scripts/LineageOS-18.1/Patch.sh b/Scripts/LineageOS-18.1/Patch.sh index 9d5c371a..a4abdf45 100644 --- a/Scripts/LineageOS-18.1/Patch.sh +++ b/Scripts/LineageOS-18.1/Patch.sh @@ -560,8 +560,25 @@ removeBuildFingerprints || true; enableAutoVarInit || true; #Tweaks for <2GB RAM devices -#enableLowRam "device/samsung/serrano3gxx"; -#enableLowRam "device/samsung/serranoltexx"; +enableLowRam "device/samsung/msm8930-common" "msm8930-common"; +enableLowRam "device/samsung/serrano3gxx" "serrano3gxx"; +enableLowRam "device/samsung/serrano-common" "serrano-common"; +enableLowRam "device/samsung/serranoltexx" "serranoltexx"; +#Tweaks for <3GB RAM devices +enableLowRam "device/asus/flox" "flox"; +enableLowRam "device/fairphone/FP2" "FP2"; +enableLowRam "device/htc/m8-common" "m8-common"; +enableLowRam "device/htc/m8" "m8"; +enableLowRam "device/htc/msm8974-common" "msm8974-common"; +enableLowRam "device/lge/d802" "d802"; +enableLowRam "device/lge/g2-common" "g2-common"; +enableLowRam "device/lge/mako" "mako"; +enableLowRam "device/motorola/victara" "victara"; +enableLowRam "device/samsung/jf-common" "jf-common"; +enableLowRam "device/samsung/jfltexx" "jfltexx"; +enableLowRam "device/samsung/klte-common" "klte-common"; +enableLowRam "device/samsung/klte" "klte"; +enableLowRam "device/samsung/msm8974-common" "msm8974-common"; #Fix broken options enabled by hardenDefconfig() sed -i "s/CONFIG_DEBUG_RODATA=y/# CONFIG_DEBUG_RODATA is not set/" kernel/google/msm/arch/arm/configs/lineageos_*_defconfig; #Breaks on compile diff --git a/Scripts/LineageOS-19.1/Functions.sh b/Scripts/LineageOS-19.1/Functions.sh index e65bf13d..48477f62 100644 --- a/Scripts/LineageOS-19.1/Functions.sh +++ b/Scripts/LineageOS-19.1/Functions.sh @@ -128,7 +128,8 @@ export -f enableDexPreOpt; enableLowRam() { cd "$DOS_BUILD_BASE$1"; - if [ -f lineage.mk ]; then echo -e '\n$(call inherit-product, vendor/divested/build/target/product/lowram.mk)' >> lineage.mk; fi; #TODO: handle lineage_device.mk + if [ -f lineage.mk ]; then echo -e '\n$(call inherit-product, vendor/divested/build/target/product/lowram.mk)' >> lineage.mk; fi; + if [ -f lineage_$2.mk ]; then echo -e '\n$(call inherit-product, vendor/divested/build/target/product/lowram.mk)' >> lineage_$2.mk; fi; 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"; diff --git a/Scripts/LineageOS-19.1/Patch.sh b/Scripts/LineageOS-19.1/Patch.sh index ab3d3e51..5e9757bd 100644 --- a/Scripts/LineageOS-19.1/Patch.sh +++ b/Scripts/LineageOS-19.1/Patch.sh @@ -418,7 +418,7 @@ deblobAudio || true; removeBuildFingerprints || true; enableAutoVarInit || true; -#Tweaks for <2GB RAM devices +#Tweaks for <4GB RAM devices #none yet #Fix broken options enabled by hardenDefconfig()