sdm660-common: vendor_init: call vendor_load_persist_properties & reformat code

* system/core/init/vendor_init.h only load vendor_load_properties(void) as a entry function
* all funtion call must be done in void vendor_load_properties(void)
* fix the audio acdb loading, previously it loads MTP acdb which gives a really bad speaker calibration
* differs ther clover/clover+ model info/dpi in settings
* skip fingerprint setup page for 8inch
* make code pretty

Signed-off-by: pix106 <sbordenave@gmail.com>
This commit is contained in:
Alcatraz323 2023-03-27 12:11:29 +08:00 committed by pix106
parent d50b95c50d
commit 77351ec181

View file

@ -26,11 +26,11 @@
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include <cstdlib>
#include <fstream>
#include <string.h>
#include <sys/sysinfo.h>
#include <unistd.h>
#include <cstdlib>
#include <fstream>
#include <android-base/file.h>
#include <android-base/properties.h>
@ -38,21 +38,37 @@
#define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_
#include <sys/_system_properties.h>
#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();
}