diff --git a/init/init_sdm660.cpp b/init/init_sdm660.cpp index a0d61fad..b2a8702b 100644 --- a/init/init_sdm660.cpp +++ b/init/init_sdm660.cpp @@ -26,11 +26,11 @@ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include -#include #include #include #include +#include +#include #include #include @@ -38,21 +38,37 @@ #define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_ #include -#include "vendor_init.h" #include "property_service.h" +#include "vendor_init.h" using android::base::GetProperty; using android::base::ReadFileToString; -char const *heapstartsize; -char const *heapgrowthlimit; -char const *heapsize; -char const *heapminfree; -char const *heapmaxfree; -char const *heaptargetutilization; +char const* heapstartsize; +char const* heapgrowthlimit; +char const* heapsize; +char const* heapminfree; +char const* heapmaxfree; +char const* heaptargetutilization; -void check_device() -{ +// Utils +void property_override(char const prop[], char const value[], bool add = true) { + auto pi = (prop_info*)__system_property_find(prop); + + if (pi != nullptr) { + __system_property_update(pi, value, strlen(value)); + } else if (add) { + __system_property_add(prop, strlen(prop), value, strlen(value)); + } +} + +void property_override_dual(char const system_prop[], char const vendor_prop[], + char const value[]) { + property_override(system_prop, value); + property_override(vendor_prop, value); +} + +void check_device() { struct sysinfo sys; sysinfo(&sys); @@ -84,81 +100,85 @@ void check_device() } } -void property_override(char const prop[], char const value[], bool add = true) -{ - auto pi = (prop_info *) __system_property_find(prop); - - if (pi != nullptr) { - __system_property_update(pi, value, strlen(value)); - } else if (add) { - __system_property_add(prop, strlen(prop), value, strlen(value)); - } -} - -void property_override_dual(char const system_prop[], - char const vendor_prop[], char const value[]) -{ - property_override(system_prop, value); - property_override(vendor_prop, value); -} - -void property_override_multifp(char const buildfp[], char const systemfp[], - char const bootimagefp[], char const vendorfp[], char const value[]) { - property_override(buildfp, value); - property_override(systemfp, value); - property_override(bootimagefp, value); - property_override(vendorfp, value); -} - -void vendor_load_persist_properties() -{ +void vendor_load_persist_properties() { std::string product = GetProperty("ro.product.vendor.device", ""); if (product.find("clover") != std::string::npos) { + std::string hw_device; - std::string hw_device; + char const* hw_id_file = "/sys/devices/virtual/graphics/fb0/msm_fb_panel_info"; - char const *hw_id_file = "/sys/devices/virtual/graphics/fb0/msm_fb_panel_info"; + ReadFileToString(hw_id_file, &hw_device); + if (hw_device.find("NT51021_BOE_BOE10") != std::string::npos) { + property_override("persist.sys.fp.vendor", "fpc"); + property_override("ro.board.variant", "d9p"); + property_override("vendor.display.lcd_density", "265"); + property_override_dual("ro.product.model", "ro.vendor.product.model", "MI PAD 4 PLUS"); - ReadFileToString(hw_id_file, &hw_device); - if (hw_device.find("NT51021_BOE_BOE10") != std::string::npos) { - property_override("persist.sys.fp.vendor", "fpc"); - property_override("ro.board.variant", "d9p"); - property_override("vendor.display.lcd_density", "265"); - property_override_dual("ro.product.model", "ro.vendor.product.model", "MI PAD 4 PLUS"); + property_override( + "persist.vendor.audio.calfile0", + "/vendor/etc/acdbdata/QRD/sdm660-snd-card-d9p/QRD_D9P_Bluetooth_cal.acdb"); + property_override( + "persist.vendor.audio.calfile1", + "/vendor/etc/acdbdata/QRD/sdm660-snd-card-d9p/QRD_D9P_General_cal.acdb"); + property_override( + "persist.vendor.audio.calfile2", + "/vendor/etc/acdbdata/QRD/sdm660-snd-card-d9p/QRD_D9P_Global_cal.acdb"); + property_override( + "persist.vendor.audio.calfile3", + "/vendor/etc/acdbdata/QRD/sdm660-snd-card-d9p/QRD_D9P_Handset_cal.acdb"); + property_override("persist.vendor.audio.calfile4", + "/vendor/etc/acdbdata/QRD/sdm660-snd-card-d9p/QRD_D9P_Hdmi_cal.acdb"); + property_override( + "persist.vendor.audio.calfile5", + "/vendor/etc/acdbdata/QRD/sdm660-snd-card-d9p/QRD_D9P_Headset_cal.acdb"); + property_override( + "persist.vendor.audio.calfile6", + "/vendor/etc/acdbdata/QRD/sdm660-snd-card-d9p/QRD_D9P_Speaker_cal.acdb"); + property_override( + "persist.vendor.audio.calfile7", + "/vendor/etc/acdbdata/QRD/sdm660-snd-card-d9p/QRD_D9P_workspaceFile.qwsp"); + property_override("persist.vendor.audio.calfile8", + "/vendor/etc/acdbdata/adsp_avs_config.acdb"); - property_override ("persist.vendor.audio.calfile0","/vendor/etc/acdbdata/QRD/sdm660-snd-card-d9p/QRD_D9P_Bluetooth_cal.acdb"); - property_override ("persist.vendor.audio.calfile1","/vendor/etc/acdbdata/QRD/sdm660-snd-card-d9p/QRD_D9P_General_cal.acdb"); - property_override ("persist.vendor.audio.calfile2","/vendor/etc/acdbdata/QRD/sdm660-snd-card-d9p/QRD_D9P_Global_cal.acdb"); - property_override ("persist.vendor.audio.calfile3","/vendor/etc/acdbdata/QRD/sdm660-snd-card-d9p/QRD_D9P_Handset_cal.acdb"); - property_override ("persist.vendor.audio.calfile4","/vendor/etc/acdbdata/QRD/sdm660-snd-card-d9p/QRD_D9P_Hdmi_cal.acdb"); - property_override ("persist.vendor.audio.calfile5","/vendor/etc/acdbdata/QRD/sdm660-snd-card-d9p/QRD_D9P_Headset_cal.acdb"); - property_override ("persist.vendor.audio.calfile6","/vendor/etc/acdbdata/QRD/sdm660-snd-card-d9p/QRD_D9P_Speaker_cal.acdb"); - property_override ("persist.vendor.audio.calfile7","/vendor/etc/acdbdata/QRD/sdm660-snd-card-d9p/QRD_D9P_workspaceFile.qwsp"); - property_override ("persist.vendor.audio.calfile8","/vendor/etc/acdbdata/adsp_avs_config.acdb"); + } else { + property_override("persist.sys.fp.vendor", "none"); + property_override("ro.board.variant", "d9"); + property_override("vendor.display.lcd_density", "320"); + property_override_dual("ro.product.model", "ro.vendor.product.model", "MI PAD 4"); - } else { - property_override("persist.sys.fp.vendor", "none"); - property_override("ro.board.variant", "d9"); - property_override("vendor.display.lcd_density", "320"); - property_override_dual("ro.product.model", "ro.vendor.product.model", "MI PAD 4"); - - property_override ("persist.vendor.audio.calfile0","/vendor/etc/acdbdata/QRD/sdm660-snd-card-skush/QRD_SKUSH_Bluetooth_cal.acdb"); - property_override ("persist.vendor.audio.calfile1","/vendor/etc/acdbdata/QRD/sdm660-snd-card-skush/QRD_SKUSH_General_cal.acdb"); - property_override ("persist.vendor.audio.calfile2","/vendor/etc/acdbdata/QRD/sdm660-snd-card-skush/QRD_SKUSH_Global_cal.acdb"); - property_override ("persist.vendor.audio.calfile3","/vendor/etc/acdbdata/QRD/sdm660-snd-card-skush/QRD_SKUSH_Handset_cal.acdb"); - property_override ("persist.vendor.audio.calfile4","/vendor/etc/acdbdata/QRD/sdm660-snd-card-skush/QRD_SKUSH_Hdmi_cal.acdb"); - property_override ("persist.vendor.audio.calfile5","/vendor/etc/acdbdata/QRD/sdm660-snd-card-skush/QRD_SKUSH_Headset_cal.acdb"); - property_override ("persist.vendor.audio.calfile6","/vendor/etc/acdbdata/QRD/sdm660-snd-card-skush/QRD_SKUSH_Speaker_cal.acdb"); - property_override ("persist.vendor.audio.calfile7","/vendor/etc/acdbdata/QRD/sdm660-snd-card-skush/QRD_SKUSH_workspaceFile.qwsp"); - property_override ("persist.vendor.audio.calfile8","/vendor/etc/acdbdata/adsp_avs_config.acdb"); - + property_override( + "persist.vendor.audio.calfile0", + "/vendor/etc/acdbdata/QRD/sdm660-snd-card-skush/QRD_SKUSH_Bluetooth_cal.acdb"); + property_override( + "persist.vendor.audio.calfile1", + "/vendor/etc/acdbdata/QRD/sdm660-snd-card-skush/QRD_SKUSH_General_cal.acdb"); + property_override( + "persist.vendor.audio.calfile2", + "/vendor/etc/acdbdata/QRD/sdm660-snd-card-skush/QRD_SKUSH_Global_cal.acdb"); + property_override( + "persist.vendor.audio.calfile3", + "/vendor/etc/acdbdata/QRD/sdm660-snd-card-skush/QRD_SKUSH_Handset_cal.acdb"); + property_override( + "persist.vendor.audio.calfile4", + "/vendor/etc/acdbdata/QRD/sdm660-snd-card-skush/QRD_SKUSH_Hdmi_cal.acdb"); + property_override( + "persist.vendor.audio.calfile5", + "/vendor/etc/acdbdata/QRD/sdm660-snd-card-skush/QRD_SKUSH_Headset_cal.acdb"); + property_override( + "persist.vendor.audio.calfile6", + "/vendor/etc/acdbdata/QRD/sdm660-snd-card-skush/QRD_SKUSH_Speaker_cal.acdb"); + property_override( + "persist.vendor.audio.calfile7", + "/vendor/etc/acdbdata/QRD/sdm660-snd-card-skush/QRD_SKUSH_workspaceFile.qwsp"); + property_override("persist.vendor.audio.calfile8", + "/vendor/etc/acdbdata/adsp_avs_config.acdb"); + } } - } } -void vendor_load_properties() -{ + +void vendor_load_properties() { check_device(); - + property_override("dalvik.vm.heapstartsize", heapstartsize); property_override("dalvik.vm.heapgrowthlimit", heapgrowthlimit); property_override("dalvik.vm.heapsize", heapsize); @@ -166,25 +186,27 @@ void vendor_load_properties() property_override("dalvik.vm.heapminfree", heapminfree); property_override("dalvik.vm.heapmaxfree", heapmaxfree); - std::string product = GetProperty("ro.product.vendor.device", ""); - if (product.find("whyred") != std::string::npos) - { - std::string region = GetProperty("ro.boot.hwc", ""); + std::string product = GetProperty("ro.product.vendor.device", ""); + if (product.find("whyred") != std::string::npos) + { + std::string region = GetProperty("ro.boot.hwc", ""); - if (region.find("CN") != std::string::npos || region.find("Global") != std::string::npos || region.find("GLOBAL") != std::string::npos) - { - property_override_dual("ro.product.model", "ro.vendor.product.model", "Redmi Note 5"); - property_override_dual("ro.product.odm.model", "ro.product.system.model", "Redmi Note 5"); - property_override_dual("ro.product.vendor.model", "persist.vendor.camera.exif.model", "Redmi Note 5"); - } + if (region.find("CN") != std::string::npos || region.find("Global") != std::string::npos || region.find("GLOBAL") != std::string::npos) + { + property_override_dual("ro.product.model", "ro.vendor.product.model", "Redmi Note 5"); + property_override_dual("ro.product.odm.model", "ro.product.system.model", "Redmi Note 5"); + property_override_dual("ro.product.vendor.model", "persist.vendor.camera.exif.model", "Redmi Note 5"); + } else - { - property_override_dual("ro.product.model", "ro.vendor.product.model", "Redmi Note 5 Pro"); - property_override_dual("ro.product.odm.model", "ro.product.system.model", "Redmi Note 5 Pro"); - property_override_dual("ro.product.vendor.model", "persist.vendor.camera.exif.model", "Redmi Note 5 Pro"); - } + { + property_override_dual("ro.product.model", "ro.vendor.product.model", "Redmi Note 5 Pro"); + property_override_dual("ro.product.odm.model", "ro.product.system.model", "Redmi Note 5 Pro"); + property_override_dual("ro.product.vendor.model", "persist.vendor.camera.exif.model", "Redmi Note 5 Pro"); + } - // Set hardware revision - property_override("ro.boot.hardware.revision", GetProperty("ro.boot.hwversion", "").c_str()); - } + // Set hardware revision + property_override("ro.boot.hardware.revision", GetProperty("ro.boot.hwversion", "").c_str()); + } + + vendor_load_persist_properties(); }