lowram tweaks

Signed-off-by: Tad <tad@spotco.us>
This commit is contained in:
Tad 2022-04-11 23:04:42 -04:00
parent b660167e08
commit d078b24ddb
10 changed files with 77 additions and 14 deletions

View File

@ -18,15 +18,20 @@
# Set lowram options # Set lowram options
PRODUCT_PROPERTY_OVERRIDES += \ PRODUCT_PROPERTY_OVERRIDES += \
persist.security.exec_spawn=false \
ro.config.low_ram=true \ ro.config.low_ram=true \
ro.lmk.critical_upgrade=true \ ro.lmk.critical_upgrade=true \
ro.lmk.upgrade_pressure=40 \ ro.lmk.upgrade_pressure=40 \
ro.lmk.downgrade_pressure=60 \ ro.lmk.downgrade_pressure=60 \
ro.lmk.kill_heaviest_task=false \ ro.lmk.kill_heaviest_task=false \
config.disable_atlas=true \ config.disable_atlas=true \
dalvik.vm.madvise-random=true dalvik.vm.madvise-random=true \
# dalvik.vm.heapgrowthlimit=128m \ ro.statsd.enable=false \
# dalvik.vm.heapsize=256m 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. # Speed profile services and wifi-service to reduce RAM and storage.
PRODUCT_SYSTEM_SERVER_COMPILER_FILTER := speed-profile PRODUCT_SYSTEM_SERVER_COMPILER_FILTER := speed-profile
@ -35,10 +40,35 @@ PRODUCT_SYSTEM_SERVER_COMPILER_FILTER := speed-profile
# modules. # modules.
PRODUCT_ALWAYS_PREOPT_EXTRACTED_APK := true 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. # Do not generate libartd.
PRODUCT_ART_TARGET_INCLUDE_DEBUG_BUILD := false 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 # 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 # the size of the system image. This has no bearing on stack traces, but will
# leave less information available via JDWP. # leave less information available via JDWP.
PRODUCT_MINIMIZE_JAVA_DEBUG_INFO := true PRODUCT_MINIMIZE_JAVA_DEBUG_INFO := true
# Dedupe VNDK libraries with identical core variants.
TARGET_VNDK_USE_CORE_VARIANT := true

View File

@ -327,6 +327,9 @@ cd "$DOS_BUILD_BASE";
deblobAudio || true; deblobAudio || true;
removeBuildFingerprints || true; removeBuildFingerprints || true;
#Tweaks for <2GB RAM devices
enableLowRam "device/asus/fugu";
#Fix broken options enabled by hardenDefconfig() #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_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 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

View File

@ -118,7 +118,8 @@ export -f enableDexPreOpt;
enableLowRam() { enableLowRam() {
cd "$DOS_BUILD_BASE$1"; 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 BoardConfig.mk ]; then echo 'MALLOC_SVELTE := true' >> BoardConfig.mk; fi;
if [ -f BoardConfigCommon.mk ]; then echo 'MALLOC_SVELTE := true' >> BoardConfigCommon.mk; fi; if [ -f BoardConfigCommon.mk ]; then echo 'MALLOC_SVELTE := true' >> BoardConfigCommon.mk; fi;
echo "Enabled lowram for $1"; echo "Enabled lowram for $1";

View File

@ -391,6 +391,9 @@ cd "$DOS_BUILD_BASE";
deblobAudio || true; deblobAudio || true;
removeBuildFingerprints || true; removeBuildFingerprints || true;
#Tweaks for <2GB RAM devices
enableLowRam "device/asus/fugu" "fugu";
#Fix broken options enabled by hardenDefconfig() #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_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 sed -i "s/CONFIG_DEBUG_RODATA=y/# CONFIG_DEBUG_RODATA is not set/" kernel/google/yellowstone/arch/arm*/configs/*_defconfig; #Breaks on compile

View File

@ -126,7 +126,8 @@ export -f enableDexPreOpt;
enableLowRam() { enableLowRam() {
cd "$DOS_BUILD_BASE$1"; 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 BoardConfig.mk ]; then echo 'MALLOC_SVELTE := true' >> BoardConfig.mk; fi;
if [ -f BoardConfigCommon.mk ]; then echo 'MALLOC_SVELTE := true' >> BoardConfigCommon.mk; fi; if [ -f BoardConfigCommon.mk ]; then echo 'MALLOC_SVELTE := true' >> BoardConfigCommon.mk; fi;
echo "Enabled lowram for $1"; echo "Enabled lowram for $1";

View File

@ -478,10 +478,16 @@ removeBuildFingerprints || true;
enableAutoVarInit || true; enableAutoVarInit || true;
#Tweaks for <2GB RAM devices #Tweaks for <2GB RAM devices
#enableLowRam "device/motorola/harpia"; enableLowRam "device/asus/fugu" "fugu";
#enableLowRam "device/motorola/merlin"; enableLowRam "device/motorola/harpia" "harpia";
#enableLowRam "device/motorola/osprey"; enableLowRam "device/motorola/merlin" "merlin";
#enableLowRam "device/motorola/surnia"; 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() #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 sed -i "s/CONFIG_DEBUG_RODATA=y/# CONFIG_DEBUG_RODATA is not set/" kernel/google/yellowstone/arch/arm*/configs/*_defconfig; #Breaks on compile

View File

@ -188,7 +188,8 @@ export -f enableDexPreOpt;
enableLowRam() { enableLowRam() {
cd "$DOS_BUILD_BASE$1"; 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 BoardConfig.mk ]; then echo 'MALLOC_SVELTE := true' >> BoardConfig.mk; fi;
if [ -f BoardConfigCommon.mk ]; then echo 'MALLOC_SVELTE := true' >> BoardConfigCommon.mk; fi; if [ -f BoardConfigCommon.mk ]; then echo 'MALLOC_SVELTE := true' >> BoardConfigCommon.mk; fi;
echo "Enabled lowram for $1"; echo "Enabled lowram for $1";

View File

@ -560,8 +560,25 @@ removeBuildFingerprints || true;
enableAutoVarInit || true; enableAutoVarInit || true;
#Tweaks for <2GB RAM devices #Tweaks for <2GB RAM devices
#enableLowRam "device/samsung/serrano3gxx"; enableLowRam "device/samsung/msm8930-common" "msm8930-common";
#enableLowRam "device/samsung/serranoltexx"; 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() #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_DEBUG_RODATA=y/# CONFIG_DEBUG_RODATA is not set/" kernel/google/msm/arch/arm/configs/lineageos_*_defconfig; #Breaks on compile

View File

@ -128,7 +128,8 @@ export -f enableDexPreOpt;
enableLowRam() { enableLowRam() {
cd "$DOS_BUILD_BASE$1"; 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 BoardConfig.mk ]; then echo 'MALLOC_SVELTE := true' >> BoardConfig.mk; fi;
if [ -f BoardConfigCommon.mk ]; then echo 'MALLOC_SVELTE := true' >> BoardConfigCommon.mk; fi; if [ -f BoardConfigCommon.mk ]; then echo 'MALLOC_SVELTE := true' >> BoardConfigCommon.mk; fi;
echo "Enabled lowram for $1"; echo "Enabled lowram for $1";

View File

@ -418,7 +418,7 @@ deblobAudio || true;
removeBuildFingerprints || true; removeBuildFingerprints || true;
enableAutoVarInit || true; enableAutoVarInit || true;
#Tweaks for <2GB RAM devices #Tweaks for <4GB RAM devices
#none yet #none yet
#Fix broken options enabled by hardenDefconfig() #Fix broken options enabled by hardenDefconfig()