guam: Decommonize certain blobs after inclusion of bathena device

* Apparently Bathena device is unique and doesn't
  appear mentioned in the deconommized blobs.

Change-Id: I48a768f5ee2316ddfca10d584a7ff32f3d4cc39d
This commit is contained in:
Deivid21 authored and Michael Bestas committed 2025-07-19 17:05:11 +03:00
1 parent 22227d5f28
commit 5dff56cee0
4 files changed
+955

No files matched your search

+34
View File
@@ -5,6 +5,7 @@
soong_namespace { soong_namespace {
imports: [ imports: [
"hardware/motorola", "hardware/motorola",
"hardware/qcom-caf/wlan",
"vendor/motorola/sm6225-common", "vendor/motorola/sm6225-common",
"vendor/qcom/opensource/display", "vendor/qcom/opensource/display",
], ],
@@ -3435,6 +3436,39 @@ cc_prebuilt_library_shared {
soc_specific: true, soc_specific: true,
} }
cc_prebuilt_binary {
name: "cnss-daemon",
owner: "motorola",
target: {
android_arm64: {
srcs: [
"proprietary/vendor/bin/cnss-daemon",
],
shared_libs: [
"libcutils",
"liblog",
"libqmi_cci",
"libqmi_common_so",
"libnl",
"libcld80211",
"libperipheral_client",
"libmdmdetect",
"libqmiservices",
"libc++",
"libc",
"libm",
"libdl",
],
},
},
compile_multilib: "64",
strip: {
none: true,
},
prefer: true,
soc_specific: true,
}
cc_prebuilt_binary { cc_prebuilt_binary {
name: "android.hardware.biometrics.fingerprint@2.1-goodixservice", name: "android.hardware.biometrics.fingerprint@2.1-goodixservice",
owner: "motorola", owner: "motorola",
+2
View File
@@ -84,6 +84,7 @@ PRODUCT_COPY_FILES += \
vendor/motorola/guam/proprietary/vendor/etc/sensors/sns_reg_config:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/sns_reg_config \ vendor/motorola/guam/proprietary/vendor/etc/sensors/sns_reg_config:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/sns_reg_config \
vendor/motorola/guam/proprietary/vendor/etc/thermal-engine-guam.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine-guam.conf \ vendor/motorola/guam/proprietary/vendor/etc/thermal-engine-guam.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine-guam.conf \
vendor/motorola/guam/proprietary/vendor/etc/thermal-engine.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine.conf \ vendor/motorola/guam/proprietary/vendor/etc/thermal-engine.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine.conf \
vendor/motorola/guam/proprietary/vendor/etc/vhw.xml:$(TARGET_COPY_OUT_VENDOR)/etc/vhw.xml \
vendor/motorola/guam/proprietary/vendor/firmware/ICNL9911.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/ICNL9911.bin \ vendor/motorola/guam/proprietary/vendor/firmware/ICNL9911.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/ICNL9911.bin \
vendor/motorola/guam/proprietary/vendor/firmware/ILITEK_FW_HLT.hex:$(TARGET_COPY_OUT_VENDOR)/firmware/ILITEK_FW_HLT.hex \ vendor/motorola/guam/proprietary/vendor/firmware/ILITEK_FW_HLT.hex:$(TARGET_COPY_OUT_VENDOR)/firmware/ILITEK_FW_HLT.hex \
vendor/motorola/guam/proprietary/vendor/firmware/ILITEK_FW_TM.hex:$(TARGET_COPY_OUT_VENDOR)/firmware/ILITEK_FW_TM.hex \ vendor/motorola/guam/proprietary/vendor/firmware/ILITEK_FW_TM.hex:$(TARGET_COPY_OUT_VENDOR)/firmware/ILITEK_FW_TM.hex \
@@ -223,6 +224,7 @@ PRODUCT_PACKAGES += \
libtfestriping \ libtfestriping \
libvidhance \ libvidhance \
vendor.goodix.hardware.biometrics.fingerprint@3.0 \ vendor.goodix.hardware.biometrics.fingerprint@3.0 \
cnss-daemon \
android.hardware.biometrics.fingerprint@2.1-goodixservice \ android.hardware.biometrics.fingerprint@2.1-goodixservice \
android.hardware.biometrics.fingerprint@2.1-service-fpc \ android.hardware.biometrics.fingerprint@2.1-service-fpc \
goodix_ident \ goodix_ident \
BIN
View File
Binary file not shown.
+919
View File
@@ -0,0 +1,919 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2015/2016 Motorola Mobility, Lenovo Company -->
<validation match="ro.boot.device">
<!-- device describes a version of mapping logic applicable to a matching device -->
<!-- the device string to do case-insensitive substring match against "name" is
to be queried from property indicated by "match", or its BL equivalent -->
<!-- incremented version tells boot script to update the validation tags from this file -->
<device name="guam" version="0.9">
<!-- Features list variable hardware components for this device -->
<features>
<string-array name=".features">
<!-- RF banding -->
<item>radio</item>
<!-- RAM size -->
<item>ram</item>
<!-- Storage size -->
<item>storage</item>
<!-- Dual SIM function -->
<item>dualsim</item>
<!-- Camera imager resolution -->
<item>imager</item>
<!-- Front color -->
<item>frontcolor</item>
<!-- Fingerprint sensor -->
<item>fps</item>
<!-- Near Field Communication function -->
<item>nfc</item>
<!-- eCompass -->
<item>ecompass</item>
<!-- Digital TV function -->
<item>dtv</item>
</string-array>
</features>
<!-- Attributes list allowed values for features -->
<attributes>
<string-array name=".attributes">
<!-- range is a comma-separated list of allowed string values -->
<item>.range</item>
<!-- cmdline items must be exported to kernel cmdline, with prefix given in the value -->
<item>.cmdline</item>
<!-- chosen items must be exported to kernel devtree, with prefix given in the value -->
<item>.chosen</item>
<!-- system items must be exported as system property, with prefix given in the value -->
<item>.system</item>
<!-- same format as before, plus new attribute ".auto" -->
<!-- auto indicates BL should auto-fill respective tag if it is empty -->
<!-- this can work either using "hwid", "hwprobe" or "uspace" method -->
<item>.auto</item>
</string-array>
</attributes>
<!-- Constraints describe interpretation of attributes, and may contain data to feed to BL -->
<constraints>
<!-- look up value by matching "hwid" table, combination with current device,
then parsing out field indicated by "index",
and then translating the field as prescribed by "map" -->
<string name="radio/.auto">key=hwid;index=2;map=1:LATAM,2:EMEA,3:ROW</string>
<string name="radio/.cmdline">androidboot.</string>
<string name="radio/.system">ro.vendor.hw.</string>
<string-array name="radio/.range">
<item>LATAM</item>
<item>EMEA</item>
<item>ROW</item>
</string-array>
<!-- use result of ram HW detection to fill the field -->
<string name="ram/.auto">key=hwprobe;index=__ram</string>
<string name="ram/.system">ro.vendor.hw.</string>
<string-array name="ram/.range">
<item>3GB</item>
<item>4GB</item>
</string-array>
<!-- use result of storage HW detection to fill the field -->
<string name="storage/.auto">key=hwprobe;index=__storage</string>
<string name="storage/.system">ro.vendor.hw.</string>
<string-array name="storage/.range">
<item>32GB</item>
<item>64GB</item>
</string-array>
<string name="dualsim/.auto">default=true</string>
<string name="dualsim/.cmdline">androidboot.</string>
<string name="dualsim/.system">ro.vendor.hw.</string>
<string-array name="dualsim/.range">
<item>true</item>
<item>false</item>
</string-array>
<string name="imager/.auto">default=48MP</string>
<string name="imager/.chosen">mmi,</string>
<string name="imager/.system">ro.vendor.hw.</string>
<string-array name="imager/.range">
<item>48MP</item>
</string-array>
<!-- frontcolor has to be programmed explicitly -->
<string name="frontcolor/.system">ro.vendor.hw.</string>
<string-array name="frontcolor/.range">
<item>misty</item>
<item>twilight</item>
<item>other</item>
</string-array>
<string name="fps/.auto">default=true</string>
<string name="fps/.chosen">mmi,</string>
<string name="fps/.system">ro.vendor.hw.</string>
<string-array name="fps/.range">
<item>true</item>
</string-array>
<string name="ecompass/.auto">default=false</string>
<string name="ecompass/.chosen">mmi,</string>
<string name="ecompass/.system">ro.vendor.hw.</string>
<string-array name="ecompass/.range">
<item>false</item>
</string-array>
<string name="nfc/.auto">default=false</string>
<string name="nfc/.chosen">mmi,</string>
<string name="nfc/.system">ro.vendor.hw.</string>
<string-array name="nfc/.range">
<item>false</item>
</string-array>
<string name="dtv/.auto">default=false</string>
<string name="dtv/.chosen">mmi,</string>
<string name="dtv/.system">ro.vendor.hw.</string>
<string-array name="dtv/.range">
<item>false</item>
</string-array>
</constraints>
<mappings>
<!-- Variants describe mapping of feature combinations to device fingerprints,
to be set in property indicated by "export" -->
<variants export="ro.vendor.hw.variant" append="ro.vendor.product.device,ro.vendor.product.name,ro.product.device,ro.product.name">
<!-- ... same format as before ... -->
</variants>
<!-- SKUs describe mapping of feature combinations to factory SKUs,
to be set in property indicated by "export" -->
<skus export="ro.vendor.product.hardware.sku.variant">
<!-- ... same format as variants/products ... -->
<variant name="f">
<string name="ro.vendor.mot.factory">true</string>
</variant>
<variant name="b">
<string name="dualsim">false</string>
<string name="nfc">false</string>
</variant>
<variant name="d">
<string name="dualsim">true</string>
<string name="nfc">false</string>
</variant>
</skus>
</mappings>
</device>
<device name="guamp" version="1.1">
<!-- Features list variable hardware components for this device -->
<features>
<string-array name=".features">
<!-- RF banding -->
<item>radio</item>
<!-- RAM size -->
<item>ram</item>
<!-- Storage size -->
<item>storage</item>
<!-- Dual SIM function -->
<item>dualsim</item>
<!-- Camera imager resolution -->
<item>imager</item>
<!-- Front color -->
<item>frontcolor</item>
<!-- Fingerprint sensor -->
<item>fps</item>
<!-- Near Field Communication function -->
<item>nfc</item>
<!-- eCompass -->
<item>ecompass</item>
<!-- Digital TV function -->
<item>dtv</item>
<!-- SKU variant -->
<item>sku_variant</item>
</string-array>
</features>
<!-- Attributes list allowed values for features -->
<attributes>
<string-array name=".attributes">
<!-- range is a comma-separated list of allowed string values -->
<item>.range</item>
<!-- cmdline items must be exported to kernel cmdline, with prefix given in the value -->
<item>.cmdline</item>
<!-- chosen items must be exported to kernel devtree, with prefix given in the value -->
<item>.chosen</item>
<!-- system items must be exported as system property, with prefix given in the value -->
<item>.system</item>
<!-- same format as before, plus new attribute ".auto" -->
<!-- auto indicates BL should auto-fill respective tag if it is empty -->
<!-- this can work either using "hwid", "hwprobe" or "uspace" method -->
<item>.auto</item>
</string-array>
</attributes>
<!-- Constraints describe interpretation of attributes, and may contain data to feed to BL -->
<constraints>
<!-- look up value by matching "hwid" table, combination with current device,
then parsing out field indicated by "index",
and then translating the field as prescribed by "map" -->
<string name="radio/.auto">key=hwid;index=2;map=1:LATAM,2:EMEA,3:ROW,4:LENOVO,5:APEM,6:ROW</string>
<string name="radio/.cmdline">androidboot.</string>
<string name="radio/.system">ro.vendor.hw.</string>
<string-array name="radio/.range">
<item>LATAM</item>
<item>EMEA</item>
<item>ROW</item>
<item>LENOVO</item>
<item>APEM</item>
</string-array>
<!-- use result of ram HW detection to fill the field -->
<string name="ram/.auto">key=hwprobe;index=__ram</string>
<string name="ram/.system">ro.vendor.hw.</string>
<string-array name="ram/.range">
<item>2GB</item>
<item>3GB</item>
<item>4GB</item>
</string-array>
<!-- use result of storage HW detection to fill the field -->
<string name="storage/.auto">key=hwprobe;index=__storage</string>
<string name="storage/.system">ro.vendor.hw.</string>
<string-array name="storage/.range">
<item>32GB</item>
<item>64GB</item>
<item>128GB</item>
</string-array>
<string name="dualsim/.auto">default=true</string>
<string name="dualsim/.cmdline">androidboot.</string>
<string name="dualsim/.system">ro.vendor.hw.</string>
<string-array name="dualsim/.range">
<item>true</item>
<item>false</item>
</string-array>
<string name="imager/.auto">default=48MP</string>
<string name="imager/.chosen">mmi,</string>
<string name="imager/.system">ro.vendor.hw.</string>
<string-array name="imager/.range">
<item>48MP</item>
</string-array>
<!-- frontcolor has to be programmed explicitly -->
<string name="frontcolor/.system">ro.vendor.hw.</string>
<string-array name="frontcolor/.range">
<item>blue</item>
<item>green</item>
<item>pink</item>
<item>other</item>
</string-array>
<string name="fps/.auto">default=true</string>
<string name="fps/.chosen">mmi,</string>
<string name="fps/.system">ro.vendor.hw.</string>
<string-array name="fps/.range">
<item>true</item>
</string-array>
<string name="ecompass/.auto">key=hwid;index=2;map=1:false,2:false,3:false,4:false,5:false,6:true</string>
<string name="ecompass/.chosen">mmi,</string>
<string name="ecompass/.system">ro.vendor.hw.</string>
<string-array name="ecompass/.range">
<item>true</item>
<item>false</item>
</string-array>
<string name="nfc/.auto">key=hwid;index=2;map=1:false,2:false,3:true,4:false,5:false,6:true</string>
<string name="nfc/.chosen">mmi,</string>
<string name="nfc/.system">ro.vendor.hw.</string>
<string-array name="nfc/.range">
<item>true</item>
<item>false</item>
</string-array>
<string name="dtv/.auto">default=false</string>
<string name="dtv/.chosen">mmi,</string>
<string name="dtv/.system">ro.vendor.hw.</string>
<string-array name="dtv/.range">
<item>false</item>
</string-array>
<string name="sku_variant/.cmdline">androidboot.</string>
<string-array name="sku_variant/.range">
<item>nc</item>
<item>n</item>
</string-array>
</constraints>
<mappings>
<!-- Variants describe mapping of feature combinations to device fingerprints,
to be set in property indicated by "export" -->
<variants export="ro.vendor.hw.variant" append="ro.vendor.product.device,ro.vendor.product.name,ro.product.device,ro.product.name">
<!-- ... same format as before ... -->
</variants>
<sku-variants export="ro.vendor.hw.sku_variant" writeback="sku_variant">
<!-- ... same format as before ... -->
<variant name="nc">
<string name="nfc">true</string>
<string name="ecompass">true</string>
</variant>
<variant name="n">
<string name="nfc">true</string>
</variant>
</sku-variants>
<!-- SKUs describe mapping of feature combinations to factory SKUs,
to be set in property indicated by "export" -->
<skus export="ro.vendor.product.hardware.sku.variant">
<!-- ... same format as variants/products ... -->
<!-- ... SKUs without ecompass ... -->
<variant name="fb">
<string name="ro.vendor.mot.factory">true</string>
<string name="dualsim">false</string>
<string name="nfc">false</string>
<string name="ecompass">false</string>
</variant>
<variant name="fn">
<string name="ro.vendor.mot.factory">true</string>
<string name="dualsim">false</string>
<string name="nfc">true</string>
<string name="ecompass">false</string>
</variant>
<variant name="fd">
<string name="ro.vendor.mot.factory">true</string>
<string name="dualsim">true</string>
<string name="nfc">false</string>
<string name="ecompass">false</string>
</variant>
<variant name="fdn">
<string name="ro.vendor.mot.factory">true</string>
<string name="dualsim">true</string>
<string name="nfc">true</string>
<string name="ecompass">false</string>
</variant>
<!-- ... SKUs with ecompass ... -->
<variant name="fc">
<string name="ro.vendor.mot.factory">true</string>
<string name="dualsim">false</string>
<string name="nfc">false</string>
<string name="ecompass">true</string>
</variant>
<variant name="fnc">
<string name="ro.vendor.mot.factory">true</string>
<string name="dualsim">false</string>
<string name="nfc">true</string>
<string name="ecompass">true</string>
</variant>
<variant name="fdc">
<string name="ro.vendor.mot.factory">true</string>
<string name="dualsim">true</string>
<string name="nfc">false</string>
<string name="ecompass">true</string>
</variant>
<variant name="fdnc">
<string name="ro.vendor.mot.factory">true</string>
<string name="dualsim">true</string>
<string name="nfc">true</string>
<string name="ecompass">true</string>
</variant>
<!-- ... SKUs without ecompass ... -->
<variant name="b">
<string name="dualsim">false</string>
<string name="nfc">false</string>
<string name="ecompass">false</string>
</variant>
<variant name="n">
<string name="dualsim">false</string>
<string name="nfc">true</string>
<string name="ecompass">false</string>
</variant>
<variant name="d">
<string name="dualsim">true</string>
<string name="nfc">false</string>
<string name="ecompass">false</string>
</variant>
<variant name="dn">
<string name="dualsim">true</string>
<string name="nfc">true</string>
<string name="ecompass">false</string>
</variant>
<!-- ... SKUs with ecompass ... -->
<variant name="c">
<string name="dualsim">false</string>
<string name="nfc">false</string>
<string name="ecompass">true</string>
</variant>
<variant name="nc">
<string name="dualsim">false</string>
<string name="nfc">true</string>
<string name="ecompass">true</string>
</variant>
<variant name="dc">
<string name="dualsim">true</string>
<string name="nfc">false</string>
<string name="ecompass">true</string>
</variant>
<variant name="dnc">
<string name="dualsim">true</string>
<string name="nfc">true</string>
<string name="ecompass">true</string>
</variant>
</skus>
</mappings>
</device>
<device name="guamna" version="0.2">
<!-- Features list variable hardware components for this device -->
<features>
<string-array name=".features">
<!-- RF banding -->
<item>radio</item>
<!-- RAM size -->
<item>ram</item>
<!-- Storage size -->
<item>storage</item>
<!-- Dual SIM function -->
<item>dualsim</item>
<!-- Camera imager resolution -->
<item>imager</item>
<!-- Front color -->
<item>frontcolor</item>
<!-- Fingerprint sensor -->
<item>fps</item>
<!-- Near Field Communication function -->
<item>nfc</item>
<!-- eCompass -->
<item>ecompass</item>
<!-- Digital TV function -->
<item>dtv</item>
</string-array>
</features>
<!-- Attributes list allowed values for features -->
<attributes>
<string-array name=".attributes">
<!-- range is a comma-separated list of allowed string values -->
<item>.range</item>
<!-- cmdline items must be exported to kernel cmdline, with prefix given in the value -->
<item>.cmdline</item>
<!-- chosen items must be exported to kernel devtree, with prefix given in the value -->
<item>.chosen</item>
<!-- system items must be exported as system property, with prefix given in the value -->
<item>.system</item>
<!-- same format as before, plus new attribute ".auto" -->
<!-- auto indicates BL should auto-fill respective tag if it is empty -->
<!-- this can work either using "hwid", "hwprobe" or "uspace" method -->
<item>.auto</item>
</string-array>
</attributes>
<!-- Constraints describe interpretation of attributes, and may contain data to feed to BL -->
<constraints>
<!-- look up value by matching "hwid" table, combination with current device,
then parsing out field indicated by "index",
and then translating the field as prescribed by "map" -->
<string name="radio/.auto">key=hwid;index=2;map=1:GWL,2:GWLC,3:ATTCA</string>
<string name="radio/.cmdline">androidboot.</string>
<string name="radio/.system">ro.vendor.hw.</string>
<string-array name="radio/.range">
<item>GWL</item>
<item>GWLC</item>
<item>ATTCA</item>
</string-array>
<!-- use result of ram HW detection to fill the field -->
<string name="ram/.auto">key=hwprobe;index=__ram</string>
<string name="ram/.system">ro.vendor.hw.</string>
<string-array name="ram/.range">
<item>2GB</item>
<item>3GB</item>
<item>4GB</item>
</string-array>
<!-- use result of storage HW detection to fill the field -->
<string name="storage/.auto">key=hwprobe;index=__storage</string>
<string name="storage/.system">ro.vendor.hw.</string>
<string-array name="storage/.range">
<item>32GB</item>
<item>64GB</item>
<item>128GB</item>
</string-array>
<string name="dualsim/.auto">default=false</string>
<string name="dualsim/.cmdline">androidboot.</string>
<string name="dualsim/.system">ro.vendor.hw.</string>
<string-array name="dualsim/.range">
<item>true</item>
<item>false</item>
</string-array>
<string name="imager/.auto">default=13MP</string>
<string name="imager/.chosen">mmi,</string>
<string name="imager/.system">ro.vendor.hw.</string>
<string-array name="imager/.range">
<item>13MP</item>
</string-array>
<!-- frontcolor has to be programmed explicitly -->
<string name="frontcolor/.system">ro.vendor.hw.</string>
<string-array name="frontcolor/.range">
<item>gray</item>
<item>white</item>
<item>other</item>
</string-array>
<string name="fps/.auto">default=true</string>
<string name="fps/.chosen">mmi,</string>
<string name="fps/.system">ro.vendor.hw.</string>
<string-array name="fps/.range">
<item>true</item>
</string-array>
<string name="ecompass/.auto">default=true</string>
<string name="ecompass/.chosen">mmi,</string>
<string name="ecompass/.system">ro.vendor.hw.</string>
<string-array name="ecompass/.range">
<item>true</item>
</string-array>
<string name="nfc/.auto">default=false</string>
<string name="nfc/.chosen">mmi,</string>
<string name="nfc/.system">ro.vendor.hw.</string>
<string-array name="nfc/.range">
<item>false</item>
</string-array>
<string name="dtv/.auto">default=false</string>
<string name="dtv/.chosen">mmi,</string>
<string name="dtv/.system">ro.vendor.hw.</string>
<string-array name="dtv/.range">
<item>false</item>
</string-array>
</constraints>
<mappings>
<!-- Variants describe mapping of feature combinations to device fingerprints,
to be set in property indicated by "export" -->
<variants export="ro.vendor.hw.variant" append="ro.vendor.product.device,ro.vendor.product.name,ro.product.device,ro.product.name">
<!-- ... same format as before ... -->
</variants>
<!-- SKUs describe mapping of feature combinations to factory SKUs,
to be set in property indicated by "export" -->
<skus export="ro.vendor.product.hardware.sku.variant">
<!-- ... same format as variants/products ... -->
<variant name="f">
<string name="ro.vendor.mot.factory">true</string>
</variant>
<variant name="b">
<string name="dualsim">false</string>
<string name="nfc">false</string>
</variant>
<variant name="d">
<string name="dualsim">true</string>
<string name="nfc">false</string>
</variant>
</skus>
</mappings>
</device>
<device name="borneo" version="1.1">
<!-- Features list variable hardware components for this device -->
<features>
<string-array name=".features">
<!-- RF banding -->
<item>radio</item>
<!-- RAM size -->
<item>ram</item>
<!-- Storage size -->
<item>storage</item>
<!-- Dual SIM function -->
<item>dualsim</item>
<!-- Camera imager resolution -->
<item>imager</item>
<!-- Front color -->
<item>frontcolor</item>
<!-- Fingerprint sensor -->
<item>fps</item>
<!-- Near Field Communication function -->
<item>nfc</item>
<!-- eCompass -->
<item>ecompass</item>
<!-- Digital TV function -->
<item>dtv</item>
</string-array>
</features>
<!-- Attributes list allowed values for features -->
<attributes>
<string-array name=".attributes">
<!-- range is a comma-separated list of allowed string values -->
<item>.range</item>
<!-- cmdline items must be exported to kernel cmdline, with prefix given in the value -->
<item>.cmdline</item>
<!-- chosen items must be exported to kernel devtree, with prefix given in the value -->
<item>.chosen</item>
<!-- system items must be exported as system property, with prefix given in the value -->
<item>.system</item>
<!-- same format as before, plus new attribute ".auto" -->
<!-- auto indicates BL should auto-fill respective tag if it is empty -->
<!-- this can work either using "hwid", "hwprobe" or "uspace" method -->
<item>.auto</item>
</string-array>
</attributes>
<!-- Constraints describe interpretation of attributes, and may contain data to feed to BL -->
<constraints>
<!-- look up value by matching "hwid" table, combination with current device,
then parsing out field indicated by "index",
and then translating the field as prescribed by "map" -->
<string name="radio/.auto">key=hwid;index=2;map=1:NA</string>
<string name="radio/.cmdline">androidboot.</string>
<string name="radio/.system">ro.vendor.hw.</string>
<string-array name="radio/.range">
<item>NA</item>
</string-array>
<!-- use result of ram HW detection to fill the field -->
<string name="ram/.auto">key=hwprobe;index=__ram</string>
<string name="ram/.system">ro.vendor.hw.</string>
<string-array name="ram/.range">
<item>3GB</item>
<item>4GB</item>
</string-array>
<!-- use result of storage HW detection to fill the field -->
<string name="storage/.auto">key=hwprobe;index=__storage</string>
<string name="storage/.system">ro.vendor.hw.</string>
<string-array name="storage/.range">
<item>32GB</item>
<item>64GB</item>
</string-array>
<string name="dualsim/.auto">default=false</string>
<string name="dualsim/.cmdline">androidboot.</string>
<string name="dualsim/.system">ro.vendor.hw.</string>
<string-array name="dualsim/.range">
<item>false</item>
</string-array>
<string name="imager/.auto">default=48MP</string>
<string name="imager/.chosen">mmi,</string>
<string name="imager/.system">ro.vendor.hw.</string>
<string-array name="imager/.range">
<item>48MP</item>
</string-array>
<!-- frontcolor has to be programmed explicitly -->
<string name="frontcolor/.system">ro.vendor.hw.</string>
<string-array name="frontcolor/.range">
<item>gray</item>
<item>white</item>
<item>other</item>
</string-array>
<string name="fps/.auto">default=true</string>
<string name="fps/.chosen">mmi,</string>
<string name="fps/.system">ro.vendor.hw.</string>
<string-array name="fps/.range">
<item>true</item>
</string-array>
<string name="ecompass/.auto">default=true</string>
<string name="ecompass/.chosen">mmi,</string>
<string name="ecompass/.system">ro.vendor.hw.</string>
<string-array name="ecompass/.range">
<item>true</item>
</string-array>
<string name="nfc/.auto">default=false</string>
<string name="nfc/.chosen">mmi,</string>
<string name="nfc/.system">ro.vendor.hw.</string>
<string-array name="nfc/.range">
<item>false</item>
</string-array>
<string name="dtv/.auto">default=false</string>
<string name="dtv/.chosen">mmi,</string>
<string name="dtv/.system">ro.vendor.hw.</string>
<string-array name="dtv/.range">
<item>false</item>
</string-array>
</constraints>
<mappings>
<!-- Variants describe mapping of feature combinations to device fingerprints,
to be set in property indicated by "export" -->
<variants export="ro.vendor.hw.variant" append="ro.vendor.product.device,ro.vendor.product.name,ro.product.device,ro.product.name">
<!-- ... same format as before ... -->
</variants>
<!-- SKUs describe mapping of feature combinations to factory SKUs,
to be set in property indicated by "export" -->
<skus export="ro.vendor.product.hardware.sku.variant">
<!-- ... same format as variants/products ... -->
<variant name="f">
<string name="ro.vendor.mot.factory">true</string>
</variant>
<variant name="b">
<string name="dualsim">false</string>
<string name="nfc">false</string>
</variant>
</skus>
</mappings>
</device>
<device name="cebu" version="1.2">
<!-- Features list variable hardware components for this device -->
<features>
<string-array name=".features">
<!-- RF banding -->
<item>radio</item>
<!-- RAM size -->
<item>ram</item>
<!-- Storage size -->
<item>storage</item>
<!-- Dual SIM function -->
<item>dualsim</item>
<!-- Camera imager resolution -->
<item>imager</item>
<!-- Front color -->
<item>frontcolor</item>
<!-- Fingerprint sensor -->
<item>fps</item>
<!-- Near Field Communication function -->
<item>nfc</item>
<!-- eCompass -->
<item>ecompass</item>
<!-- Digital TV function -->
<item>dtv</item>
<!-- SKU variant -->
<item>sku_variant</item>
</string-array>
</features>
<!-- Attributes list allowed values for features -->
<attributes>
<string-array name=".attributes">
<!-- range is a comma-separated list of allowed string values -->
<item>.range</item>
<!-- cmdline items must be exported to kernel cmdline, with prefix given in the value -->
<item>.cmdline</item>
<!-- chosen items must be exported to kernel devtree, with prefix given in the value -->
<item>.chosen</item>
<!-- system items must be exported as system property, with prefix given in the value -->
<item>.system</item>
<!-- same format as before, plus new attribute ".auto" -->
<!-- auto indicates BL should auto-fill respective tag if it is empty -->
<!-- this can work either using "hwid", "hwprobe" or "uspace" method -->
<item>.auto</item>
</string-array>
</attributes>
<!-- Constraints describe interpretation of attributes, and may contain data to feed to BL -->
<constraints>
<!-- look up value by matching "hwid" table, combination with current device,
then parsing out field indicated by "index",
and then translating the field as prescribed by "map" -->
<string name="radio/.auto">key=hwid;index=2;map=1:SUPERCA,2:LATAMCA,3:SUPERCAFIR,4:LATAMCAFIR</string>
<string name="radio/.cmdline">androidboot.</string>
<string name="radio/.system">ro.vendor.hw.</string>
<string-array name="radio/.range">
<item>SUPERCA</item>
<item>LATAMCA</item>
<item>SUPERCAFIR</item>
<item>LATAMCAFIR</item>
</string-array>
<!-- use result of ram HW detection to fill the field -->
<string name="ram/.auto">key=hwprobe;index=__ram</string>
<string name="ram/.system">ro.vendor.hw.</string>
<string-array name="ram/.range">
<item>4GB</item>
</string-array>
<!-- use result of storage HW detection to fill the field -->
<string name="storage/.auto">key=hwprobe;index=__storage</string>
<string name="storage/.system">ro.vendor.hw.</string>
<string-array name="storage/.range">
<item>64GB</item>
<item>128GB</item>
</string-array>
<string name="dualsim/.auto">default=true</string>
<string name="dualsim/.cmdline">androidboot.</string>
<string name="dualsim/.system">ro.vendor.hw.</string>
<string-array name="dualsim/.range">
<item>true</item>
<item>false</item>
</string-array>
<string name="imager/.auto">default=64MP</string>
<string name="imager/.chosen">mmi,</string>
<string name="imager/.system">ro.vendor.hw.</string>
<string-array name="imager/.range">
<item>64MP</item>
</string-array>
<!-- frontcolor has to be programmed explicitly -->
<string name="frontcolor/.system">ro.vendor.hw.</string>
<string-array name="frontcolor/.range">
<item>gray</item>
<item>white</item>
<item>other</item>
</string-array>
<string name="fps/.auto">default=true</string>
<string name="fps/.chosen">mmi,</string>
<string name="fps/.system">ro.vendor.hw.</string>
<string-array name="fps/.range">
<item>true</item>
</string-array>
<string name="ecompass/.auto">default=false</string>
<string name="ecompass/.chosen">mmi,</string>
<string name="ecompass/.system">ro.vendor.hw.</string>
<string-array name="ecompass/.range">
<item>false</item>
</string-array>
<string name="nfc/.auto">key=hwid;index=2;map=1:true,2:false,3:true,4:false</string>
<string name="nfc/.chosen">mmi,</string>
<string name="nfc/.system">ro.vendor.hw.</string>
<string-array name="nfc/.range">
<item>true</item>
<item>false</item>
</string-array>
<string name="dtv/.auto">default=false</string>
<string name="dtv/.chosen">mmi,</string>
<string name="dtv/.system">ro.vendor.hw.</string>
<string-array name="dtv/.range">
<item>false</item>
</string-array>
<string name="sku_variant/.cmdline">androidboot.</string>
<string-array name="sku_variant/.range">
<item>nc</item>
<item>n</item>
</string-array>
</constraints>
<mappings>
<!-- Variants describe mapping of feature combinations to device fingerprints,
to be set in property indicated by "export" -->
<variants export="ro.vendor.hw.variant" append="ro.vendor.product.device,ro.vendor.product.name,ro.product.device,ro.product.name">
<!-- ... same format as before ... -->
</variants>
<sku-variants export="ro.vendor.hw.sku_variant" writeback="sku_variant">
<!-- ... same format as before ... -->
<variant name="nc">
<string name="nfc">true</string>
<string name="ecompass">true</string>
</variant>
<variant name="n">
<string name="nfc">true</string>
</variant>
</sku-variants>
<!-- Products describe mapping of feature combinations to marketing names,
to be set in property indicated by "export" -->
<products export="ro.vendor.product.display" default="">
</products>
<!-- SKUs describe mapping of feature combinations to factory SKUs,
to be set in property indicated by "export" -->
<skus export="ro.vendor.product.hardware.sku.variant">
<!-- ... same format as variants/products ... -->
<variant name="fdn">
<string name="ro.vendor.mot.factory">true</string>
</variant>
<variant name="b">
<string name="dualsim">false</string>
<string name="nfc">false</string>
</variant>
<variant name="d">
<string name="dualsim">true</string>
<string name="nfc">false</string>
</variant>
<variant name="dn">
<string name="dualsim">true</string>
<string name="nfc">true</string>
</variant>
<variant name="n">
<string name="dualsim">false</string>
<string name="nfc">true</string>
</variant>
</skus>
</mappings>
</device>
</validation>