master ohmu/fastfetch-openbsd / src / detection / host / host_android.c
ohmu  ·  2026-10-15
 1#include "host.h"
 2#include "common/settings.h"
 3
 4#include <ctype.h>
 5
 6const char* ffDetectHost(FFHostResult* host) {
 7    // http://newandroidbook.com/ddb/
 8    ffSettingsGetAndroidProperty("ro.product.device", &host->family);
 9
10    ffSettingsGetAndroidProperty("ro.product.marketname", &host->name) || ffSettingsGetAndroidProperty("ro.vendor.product.display", &host->name) || ffSettingsGetAndroidProperty("ro.vivo.market.name", &host->name) || ffSettingsGetAndroidProperty("ro.product.oppo_model", &host->name) || ffSettingsGetAndroidProperty("ro.oppo.market.name", &host->name) || ffSettingsGetAndroidProperty("ro.vendor.oplus.market.enname", &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.brand", &host->name);
11
12    if (ffSettingsGetAndroidProperty("ro.product.model", &host->version)) {
13        if (ffStrbufStartsWithIgnCase(&host->version, &host->name)) {
14            ffStrbufSubstrAfter(&host->version, host->name.length);
15            ffStrbufTrimLeft(&host->version, ' ');
16        }
17    }
18
19    ffSettingsGetAndroidProperty("ro.product.manufacturer", &host->vendor);
20
21    if (host->vendor.length && !ffStrbufStartsWithIgnCase(&host->name, &host->vendor)) {
22        ffStrbufPrependS(&host->name, " ");
23        ffStrbufPrepend(&host->name, &host->vendor);
24    }
25
26    return nullptr;
27}