aboutsummaryrefslogtreecommitdiff
path: root/init/init_z2_plus.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'init/init_z2_plus.cpp')
-rw-r--r--init/init_z2_plus.cpp29
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();
}