From 753e9e4bcdd4bfbb07642dc6b6f84e8ce87f2a9b Mon Sep 17 00:00:00 2001 From: Erfan Abdi Date: Sat, 27 Jun 2020 18:26:17 +0430 Subject: [PATCH] msm8953-common: Kang libinit from xiaomi sdm660 common tree Change-Id: I14618daea9861c9e4677223c5a0d62889c13cab9 --- BoardConfigCommon.mk | 4 ++ init/Android.bp | 25 +++++++++++ init/init_msm8953.cpp | 97 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 126 insertions(+) create mode 100644 init/Android.bp create mode 100644 init/init_msm8953.cpp diff --git a/BoardConfigCommon.mk b/BoardConfigCommon.mk index 235c41a..eeed9cd 100644 --- a/BoardConfigCommon.mk +++ b/BoardConfigCommon.mk @@ -148,6 +148,10 @@ TARGET_FS_CONFIG_GEN := \ $(COMMON_PATH)/configs/config.fs \ $(COMMON_PATH)/configs/mot_aids.fs +# Init +TARGET_INIT_VENDOR_LIB := //$(COMMON_PATH):libinit_msm8953 +TARGET_RECOVERY_DEVICE_MODULES := libinit_msm8953 + # Kernel TARGET_COMPILE_WITH_MSM_KERNEL := true BOARD_KERNEL_CMDLINE := console=ttyHSL0,115200,n8 androidboot.console=ttyHSL0 androidboot.hardware=qcom user_debug=30 msm_rtb.filter=0x237 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 androidboot.bootdevice=7824900.sdhci firmware_class.path=/vendor/firmware_mnt/image loop.max_part=16 diff --git a/init/Android.bp b/init/Android.bp new file mode 100644 index 0000000..62ce984 --- /dev/null +++ b/init/Android.bp @@ -0,0 +1,25 @@ +// +// Copyright (C) 2019 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. +// + +cc_library_static { + name: "libinit_msm8953", + recovery_available: true, + srcs: ["init_msm8953.cpp"], + include_dirs: [ + "system/core/base/include", + "system/core/init" + ] +} diff --git a/init/init_msm8953.cpp b/init/init_msm8953.cpp new file mode 100644 index 0000000..63e7d79 --- /dev/null +++ b/init/init_msm8953.cpp @@ -0,0 +1,97 @@ +/* + Copyright (c) 2016, The CyanogenMod Project + Copyright (c) 2019, The LineageOS Project + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of The Linux Foundation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED + WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#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; + +char const *heapstartsize; +char const *heapgrowthlimit; +char const *heapsize; +char const *heapminfree; +char const *heapmaxfree; +char const *heaptargetutilization; + +void check_device() +{ + struct sysinfo sys; + + sysinfo(&sys); + + if (sys.totalram > 5072ull * 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 > 3072ull * 1024 * 1024) { + // from - phone-xxhdpi-4096-dalvik-heap.mk + heapstartsize = "8m"; + heapgrowthlimit = "256m"; + heapsize = "512m"; + heaptargetutilization = "0.6"; + heapminfree = "8m"; + heapmaxfree = "16m"; + } else { + // from - phone-xhdpi-2048-dalvik-heap.mk + heapstartsize = "8m"; + heapgrowthlimit = "192m"; + heapsize = "512m"; + heaptargetutilization = "0.75"; + heapminfree = "512k"; + heapmaxfree = "8m"; + } +} + +void vendor_load_properties() +{ + check_device(); + + 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); +}