Host: rename properties

This commit is contained in:
李通洲
2024-01-05 20:38:29 +08:00
parent 24cec76251
commit 6bcd75835e
7 changed files with 121 additions and 121 deletions
+7 -7
View File
@@ -4,13 +4,13 @@
typedef struct FFHostResult
{
FFstrbuf productFamily;
FFstrbuf productName;
FFstrbuf productVersion;
FFstrbuf productSku;
FFstrbuf productSerial;
FFstrbuf productUuid;
FFstrbuf sysVendor;
FFstrbuf family;
FFstrbuf name;
FFstrbuf version;
FFstrbuf sku;
FFstrbuf serial;
FFstrbuf uuid;
FFstrbuf vendor;
} FFHostResult;
const char* ffDetectHost(FFHostResult* host);
+17 -17
View File
@@ -5,32 +5,32 @@
const char* ffDetectHost(FFHostResult* host)
{
// http://newandroidbook.com/ddb/
ffSettingsGetAndroidProperty("ro.product.device", &host->productFamily);
ffSettingsGetAndroidProperty("ro.product.device", &host->family);
ffSettingsGetAndroidProperty("ro.product.marketname", &host->productName)
|| ffSettingsGetAndroidProperty("ro.vendor.product.display", &host->productName)
|| ffSettingsGetAndroidProperty("ro.config.devicename", &host->productName)
|| ffSettingsGetAndroidProperty("ro.config.marketing_name", &host->productName)
|| ffSettingsGetAndroidProperty("ro.product.vendor.model", &host->productName)
|| ffSettingsGetAndroidProperty("ro.product.oppo_model", &host->productName)
|| ffSettingsGetAndroidProperty("ro.oppo.market.name", &host->productName)
|| ffSettingsGetAndroidProperty("ro.product.brand", &host->productName);
ffSettingsGetAndroidProperty("ro.product.marketname", &host->name)
|| ffSettingsGetAndroidProperty("ro.vendor.product.display", &host->name)
|| ffSettingsGetAndroidProperty("ro.config.devicename", &host->name)
|| ffSettingsGetAndroidProperty("ro.config.marketing_name", &host->name)
|| ffSettingsGetAndroidProperty("ro.product.vendor.model", &host->name)
|| ffSettingsGetAndroidProperty("ro.product.oppo_model", &host->name)
|| ffSettingsGetAndroidProperty("ro.oppo.market.name", &host->name)
|| ffSettingsGetAndroidProperty("ro.product.brand", &host->name);
if (ffSettingsGetAndroidProperty("ro.product.model", &host->productVersion))
if (ffSettingsGetAndroidProperty("ro.product.model", &host->version))
{
if (ffStrbufStartsWithIgnCase(&host->productVersion, &host->productName))
if (ffStrbufStartsWithIgnCase(&host->version, &host->name))
{
ffStrbufSubstrAfter(&host->productVersion, host->productName.length);
ffStrbufTrimLeft(&host->productVersion, ' ');
ffStrbufSubstrAfter(&host->version, host->name.length);
ffStrbufTrimLeft(&host->version, ' ');
}
}
ffSettingsGetAndroidProperty("ro.product.manufacturer", &host->sysVendor);
ffSettingsGetAndroidProperty("ro.product.manufacturer", &host->vendor);
if(host->sysVendor.length && !ffStrbufStartsWithIgnCase(&host->productName, &host->sysVendor))
if(host->vendor.length && !ffStrbufStartsWithIgnCase(&host->name, &host->vendor))
{
ffStrbufPrependS(&host->productName, " ");
ffStrbufPrepend(&host->productName, &host->sysVendor);
ffStrbufPrependS(&host->name, " ");
ffStrbufPrepend(&host->name, &host->vendor);
}
return NULL;
+10 -10
View File
@@ -177,7 +177,7 @@ const char* getProductNameWithIokit(FFstrbuf* result)
if (!productName)
return "IORegistryEntryCreateCFProperty() failed";
return ffCfStrGetString(productName, result);
return ffCfStrGetString(name, result);
}
const char* getOthersByIokit(FFHostResult* host)
@@ -188,29 +188,29 @@ const char* getOthersByIokit(FFHostResult* host)
FF_CFTYPE_AUTO_RELEASE CFStringRef serialNumber = IORegistryEntryCreateCFProperty(registryEntry, CFSTR(kIOPlatformSerialNumberKey), kCFAllocatorDefault, kNilOptions);
if (serialNumber)
ffCfStrGetString(serialNumber, &host->productSerial);
ffCfStrGetString(serialNumber, &host->serial);
FF_CFTYPE_AUTO_RELEASE CFStringRef uuid = IORegistryEntryCreateCFProperty(registryEntry, CFSTR(kIOPlatformUUIDKey), kCFAllocatorDefault, kNilOptions);
if (uuid)
ffCfStrGetString(uuid, &host->productUuid);
ffCfStrGetString(uuid, &host->uuid);
FF_CFTYPE_AUTO_RELEASE CFStringRef manufacturer = IORegistryEntryCreateCFProperty(registryEntry, CFSTR("manufacturer"), kCFAllocatorDefault, kNilOptions);
if (manufacturer)
ffCfStrGetString(manufacturer, &host->sysVendor);
ffCfStrGetString(manufacturer, &host->vendor);
return NULL;
}
const char* ffDetectHost(FFHostResult* host)
{
const char* error = ffSysctlGetString("hw.model", &host->productFamily);
const char* error = ffSysctlGetString("hw.model", &host->family);
if (error) return error;
ffStrbufSetStatic(&host->productName, getProductNameWithHwModel(&host->productFamily));
if (host->productName.length == 0)
getProductNameWithIokit(&host->productName);
if (host->productName.length == 0)
ffStrbufSet(&host->productName, &host->productFamily);
ffStrbufSetStatic(&host->name, getProductNameWithHwModel(&host->family));
if (host->name.length == 0)
getProductNameWithIokit(&host->name);
if (host->name.length == 0)
ffStrbufSet(&host->name, &host->family);
getOthersByIokit(host);
return NULL;
}
+14 -14
View File
@@ -4,20 +4,20 @@
const char* ffDetectHost(FFHostResult* host)
{
ffSettingsGetFreeBSDKenv("smbios.system.product", &host->productName);
ffCleanUpSmbiosValue(&host->productName);
ffSettingsGetFreeBSDKenv("smbios.system.family", &host->productFamily);
ffCleanUpSmbiosValue(&host->productFamily);
ffSettingsGetFreeBSDKenv("smbios.system.version", &host->productVersion);
ffCleanUpSmbiosValue(&host->productVersion);
ffSettingsGetFreeBSDKenv("smbios.system.sku", &host->productSku);
ffCleanUpSmbiosValue(&host->productSku);
ffSettingsGetFreeBSDKenv("smbios.system.serial", &host->productSerial);
ffCleanUpSmbiosValue(&host->productSerial);
ffSettingsGetFreeBSDKenv("smbios.system.uuid", &host->productUuid);
ffCleanUpSmbiosValue(&host->productUuid);
ffSettingsGetFreeBSDKenv("smbios.system.maker", &host->sysVendor);
ffCleanUpSmbiosValue(&host->sysVendor);
ffSettingsGetFreeBSDKenv("smbios.system.product", &host->name);
ffCleanUpSmbiosValue(&host->name);
ffSettingsGetFreeBSDKenv("smbios.system.family", &host->family);
ffCleanUpSmbiosValue(&host->family);
ffSettingsGetFreeBSDKenv("smbios.system.version", &host->version);
ffCleanUpSmbiosValue(&host->version);
ffSettingsGetFreeBSDKenv("smbios.system.sku", &host->sku);
ffCleanUpSmbiosValue(&host->sku);
ffSettingsGetFreeBSDKenv("smbios.system.serial", &host->serial);
ffCleanUpSmbiosValue(&host->serial);
ffSettingsGetFreeBSDKenv("smbios.system.uuid", &host->uuid);
ffCleanUpSmbiosValue(&host->uuid);
ffSettingsGetFreeBSDKenv("smbios.system.maker", &host->vendor);
ffCleanUpSmbiosValue(&host->vendor);
return NULL;
}
+14 -14
View File
@@ -29,28 +29,28 @@ static void getHostProductName(FFstrbuf* name)
const char* ffDetectHost(FFHostResult* host)
{
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/product_family", "/sys/class/dmi/id/product_family", &host->productFamily);
getHostProductName(&host->productName);
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/product_version", "/sys/class/dmi/id/product_version", &host->productVersion);
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/product_sku", "/sys/class/dmi/id/product_sku", &host->productSku);
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/product_serial", "/sys/class/dmi/id/product_serial", &host->productSerial);
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/product_uuid", "/sys/class/dmi/id/product_uuid", &host->productUuid);
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/sys_vendor", "/sys/class/dmi/id/sys_vendor", &host->sysVendor);
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/product_family", "/sys/class/dmi/id/product_family", &host->family);
getHostProductName(&host->name);
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/product_version", "/sys/class/dmi/id/product_version", &host->version);
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/product_sku", "/sys/class/dmi/id/product_sku", &host->sku);
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/product_serial", "/sys/class/dmi/id/product_serial", &host->serial);
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/product_uuid", "/sys/class/dmi/id/product_uuid", &host->uuid);
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/sys_vendor", "/sys/class/dmi/id/sys_vendor", &host->vendor);
//KVM/Qemu virtual machine
if(ffStrbufStartsWithS(&host->productName, "Standard PC"))
ffStrbufPrependS(&host->productName, "KVM/QEMU ");
if(ffStrbufStartsWithS(&host->name, "Standard PC"))
ffStrbufPrependS(&host->name, "KVM/QEMU ");
if(host->productFamily.length == 0 && host->productName.length == 0)
if(host->family.length == 0 && host->name.length == 0)
{
const char* wslDistroName = getenv("WSL_DISTRO_NAME");
//On WSL, the real host can't be detected. Instead use WSL as host.
if(wslDistroName != NULL || getenv("WSL_DISTRO") != NULL || getenv("WSL_INTEROP") != NULL)
{
ffStrbufAppendS(&host->productName, "Windows Subsystem for Linux");
ffStrbufAppendS(&host->name, "Windows Subsystem for Linux");
if (wslDistroName)
ffStrbufAppendF(&host->productName, " - %s", wslDistroName);
ffStrbufAppendS(&host->productFamily, "WSL");
ffStrbufAppendF(&host->name, " - %s", wslDistroName);
ffStrbufAppendS(&host->family, "WSL");
FF_STRBUF_AUTO_DESTROY wslVer = ffStrbufCreate(); //Wide characters
if(!ffProcessAppendStdOut(&wslVer, (char* const[]){
@@ -63,7 +63,7 @@ const char* ffDetectHost(FFHostResult* host)
ffStrbufSubstrAfterLastC(&wslVer, ' ');
for(uint32_t i = 0; i < wslVer.length; ++i) {
if(wslVer.chars[i]) //don't append \0
ffStrbufAppendC(&host->productVersion, wslVer.chars[i]);
ffStrbufAppendC(&host->version, wslVer.chars[i]);
}
}
}
+10 -10
View File
@@ -9,16 +9,16 @@ const char* ffDetectHost(FFHostResult* host)
if(!ffRegOpenKeyForRead(HKEY_LOCAL_MACHINE, L"HARDWARE\\DESCRIPTION\\System\\BIOS", &hKey, NULL))
return "ffRegOpenKeyForRead(HKEY_LOCAL_MACHINE, L\"HARDWARE\\DESCRIPTION\\System\\BIOS\", &hKey, NULL) failed";
ffRegReadStrbuf(hKey, L"SystemProductName", &host->productName, NULL);
ffCleanUpSmbiosValue(&host->productName);
ffRegReadStrbuf(hKey, L"SystemFamily", &host->productFamily, NULL);
ffCleanUpSmbiosValue(&host->productFamily);
ffRegReadStrbuf(hKey, L"SystemVersion", &host->productVersion, NULL);
ffCleanUpSmbiosValue(&host->productVersion);
ffRegReadStrbuf(hKey, L"SystemSKU", &host->productSku, NULL);
ffCleanUpSmbiosValue(&host->productSku);
ffRegReadStrbuf(hKey, L"SystemManufacturer", &host->sysVendor, NULL);
ffCleanUpSmbiosValue(&host->sysVendor);
ffRegReadStrbuf(hKey, L"SystemProductName", &host->name, NULL);
ffCleanUpSmbiosValue(&host->name);
ffRegReadStrbuf(hKey, L"SystemFamily", &host->family, NULL);
ffCleanUpSmbiosValue(&host->family);
ffRegReadStrbuf(hKey, L"SystemVersion", &host->version, NULL);
ffCleanUpSmbiosValue(&host->version);
ffRegReadStrbuf(hKey, L"SystemSKU", &host->sku, NULL);
ffCleanUpSmbiosValue(&host->sku);
ffRegReadStrbuf(hKey, L"SystemManufacturer", &host->vendor, NULL);
ffCleanUpSmbiosValue(&host->vendor);
return NULL;
}