diff options
Diffstat (limited to 'init')
-rw-r--r-- | init/init_z2_plus.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/init/init_z2_plus.cpp b/init/init_z2_plus.cpp index fd30f51..33fe6b4 100644 --- a/init/init_z2_plus.cpp +++ b/init/init_z2_plus.cpp @@ -36,6 +36,9 @@ #include "log.h" #include "util.h" +char const *heapminfree; +char const *heapmaxfree; + static void init_alarm_boot_properties() { int boot_reason; @@ -67,6 +70,23 @@ static void init_alarm_boot_properties() } } +void check_ram() +{ + struct sysinfo sys; + + sysinfo(&sys); + + if (sys.totalram > 3072ull * 1024 * 1024) { + // from - phone-xxxhdpi-4096-dalvik-heap.mk + heapminfree = "4m"; + heapmaxfree = "16m"; + } else { + // from - phone-xxhdpi-3072-dalvik-heap.mk + heapminfree = "512k"; + heapmaxfree = "8m"; + } +} + void vendor_load_properties() { char device[PROP_VALUE_MAX]; char rf_version[PROP_VALUE_MAX]; @@ -77,6 +97,15 @@ void vendor_load_properties() { return; property_set("ro.product.model", "Z2 Plus"); + + check_ram(); + + property_set("dalvik.vm.heapstartsize", "8m"); + property_set("dalvik.vm.heapgrowthlimit", "256m"); + property_set("dalvik.vm.heapsize", "512m"); + property_set("dalvik.vm.heaptargetutilization", "0.75"); + property_set("dalvik.vm.heapminfree", heapminfree); + property_set("dalvik.vm.heapmaxfree", heapmaxfree); init_alarm_boot_properties(); } |