/* * Copyright (C) 2020 The LineageOS Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_ #include #include "vendor_init.h" #include "property_service.h" using android::base::GetProperty; using android::init::property_set; void load_dalvik_properties() { char const *heapstartsize; char const *heapgrowthlimit; char const *heapsize; char const *heapminfree; char const *heapmaxfree; char const *heaptargetutilization; struct sysinfo sys; sysinfo(&sys); if (sys.totalram >= 5ull * 1024 * 1024 * 1024) { // from - phone-xhdpi-6144-dalvik-heap.mk heapstartsize = "16m"; heapgrowthlimit = "256m"; heapsize = "512m"; heaptargetutilization = "0.5"; heapminfree = "8m"; heapmaxfree = "32m"; } else if (sys.totalram >= 3ull * 1024 * 1024 * 1024) { // from - phone-xhdpi-4096-dalvik-heap.mk heapstartsize = "8m"; heapgrowthlimit = "192m"; heapsize = "512m"; heaptargetutilization = "0.6"; heapminfree = "8m"; heapmaxfree = "16m"; } else { return; } property_set("dalvik.vm.heapstartsize", heapstartsize); property_set("dalvik.vm.heapgrowthlimit", heapgrowthlimit); property_set("dalvik.vm.heapsize", heapsize); property_set("dalvik.vm.heaptargetutilization", heaptargetutilization); property_set("dalvik.vm.heapminfree", heapminfree); property_set("dalvik.vm.heapmaxfree", heapmaxfree); } void vendor_load_properties() { load_dalvik_properties(); }