aboutsummaryrefslogtreecommitdiff
path: root/init/init_msm8996.cpp
diff options
context:
space:
mode:
authorLuK1337 <priv.luk@gmail.com>2016-08-15 15:41:06 +0200
committerDavide Garberi <dade.garberi@gmail.com>2017-12-02 18:02:53 +0100
commit81f94edeb5107d8cc6f25663fc1258772e4245d8 (patch)
tree34756aca23dd67489ab57dbb427e59cec4a7091c /init/init_msm8996.cpp
parentf51aca7fc89ddad5d26c63add450ab0de3f17fe4 (diff)
msm8996-common: init: Dynamically set Dalvik properties
Change-Id: I656cbed7abf351fea4129e7ff3c930eb9d8914ae Signed-off-by: Davide Garberi <dade.garberi@gmail.com>
Diffstat (limited to 'init/init_msm8996.cpp')
-rw-r--r--init/init_msm8996.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/init/init_msm8996.cpp b/init/init_msm8996.cpp
index fd30f51..36aa080 100644
--- a/init/init_msm8996.cpp
+++ b/init/init_msm8996.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_device()
+{
+ 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];
@@ -78,6 +98,15 @@ void vendor_load_properties() {
property_set("ro.product.model", "Z2 Plus");
+ check_device();
+
+ property_set("dalvik.vm.heapstartsize", "8m");
+ property_set("dalvik.vm.heapgrowthlimit", "384m");
+ property_set("dalvik.vm.heapsize", "1024m");
+ property_set("dalvik.vm.heaptargetutilization", "0.75");
+ property_set("dalvik.vm.heapminfree", heapminfree);
+ property_set("dalvik.vm.heapmaxfree", heapmaxfree);
+
init_alarm_boot_properties();
}