proprietary_vendor_motorola.../proprietary/vendor/etc/vhw.xml
Anand S f31fa38f1d
rhodep: Initial import of device specific blobs
* From rhodep_g-user 13 T1SUS33.1-124-6-14 a15be release-keys.

Change-Id: Ifc556fab4a2d0afba881d7edcfb7137113d62622
2025-04-05 15:30:48 +05:30

2349 lines
80 KiB
XML

<?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="denver" version="1.7">
<!-- 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>
<!-- Front color -->
<item>frontcolor</item>
<!-- Fingerprint sensor -->
<item>fps</item>
<!-- Near Field Communication function -->
<item>nfc</item>
<!-- eCompass -->
<item>ecompass</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>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=false</string>
<string name="dualsim/.system">ro.vendor.hw.</string>
<string-array name="dualsim/.range">
<item>true</item>
<item>false</item>
</string-array>
<!-- frontcolor has to be programmed explicitly -->
<string name="frontcolor/.system">ro.vendor.hw.</string>
<string-array name="frontcolor/.range">
<item>emerald</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>
<item>false</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">key=hwid;index=2;map=1: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>
</constraints>
<mappings>
<!-- 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="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="ibiza" version="1.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>
<!-- Front color -->
<item>frontcolor</item>
<!-- Fingerprint sensor -->
<item>fps</item>
<!-- Near Field Communication function -->
<item>nfc</item>
<!-- eCompass -->
<item>ecompass</item>
<!-- Number of cameras -->
<item>cam_variant</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:WELA,2:WELA,3:PRC</string>
<string name="radio/.cmdline">androidboot.</string>
<string name="radio/.system">ro.vendor.hw.</string>
<string-array name="radio/.range">
<item>WELA</item>
<item>PRC</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/.system">ro.vendor.hw.</string>
<string-array name="dualsim/.range">
<item>true</item>
<item>false</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>red</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>
<item>false</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">key=hwid;index=2;map=1:nxp,2:nxp,3:false</string>
<string name="nfc/.chosen">mmi,</string>
<string name="nfc/.system">ro.vendor.hw.</string>
<string-array name="nfc/.range">
<item>nxp</item>
<item>false</item>
</string-array>
<string name="cam_variant/.auto">key=hwid;index=2;map=1:1,2:2,3:1</string>
<string name="cam_variant/.chosen">mmi,</string>
<string name="cam_variant/.system">ro.vendor.hw.</string>
<string-array name="cam_variant/.range">
<item>1</item> <!-- cam_variant "1" means 3 cameras -->
<item>2</item> <!-- cam_variant "2" means 4 cameras -->
</string-array>
<string name="sku_variant/.cmdline">androidboot.</string>
<string-array name="sku_variant/.range">
<item>q</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>
<products export="ro.vendor.product.display" default="moto g&#8309;&#8304;">
</products>
<gabuttons export="ro.vendor.hw.gabutton" default="true">
<variant name="false">
<string name="radio">PRC</string>
</variant>
</gabuttons>
<sku-variants export="ro.vendor.hw.sku_variant" writeback="sku_variant">
<!-- ... same format as before ... -->
<variant name="q">
<string name="cam_variant">2</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 ... -->
<variant name="n">
<string name="dualsim">false</string>
<string name="nfc">nxp</string>
</variant>
<variant name="dn">
<string name="dualsim">true</string>
<string name="nfc">nxp</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="corfup" version="1.3">
<!-- 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>
<!-- Front color -->
<item>frontcolor</item>
<!-- Fingerprint sensor -->
<item>fps</item>
<!-- Near Field Communication function -->
<item>nfc</item>
<!-- eCompass -->
<item>ecompass</item>
<!-- Number of cameras -->
<item>cam_variant</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:Japan,2:PRC,3:ROW,4:India</string>
<string name="radio/.cmdline">androidboot.</string>
<string name="radio/.system">ro.vendor.hw.</string>
<string-array name="radio/.range">
<item>Japan</item>
<item>ROW</item>
<item>PRC</item>
<item>India</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>
<item>6GB</item>
<item>8GB</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/.system">ro.vendor.hw.</string>
<string-array name="dualsim/.range">
<item>true</item>
<item>false</item>
</string-array>
<!-- frontcolor has to be programmed explicitly -->
<string name="frontcolor/.system">ro.vendor.hw.</string>
<string-array name="frontcolor/.range">
<item>green</item>
<item>iris</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:true,3:false,4:false</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:st,2:false,3:st,4:false</string>
<string name="nfc/.chosen">mmi,</string>
<string name="nfc/.system">ro.vendor.hw.</string>
<string-array name="nfc/.range">
<item>st</item>
<item>false</item>
</string-array>
<string name="cam_variant/.auto">key=hwid;index=2;map=1:1,2:2,3:1,4:1</string>
<string name="cam_variant/.chosen">mmi,</string>
<string name="cam_variant/.system">ro.vendor.hw.</string>
<string-array name="cam_variant/.range">
<item>1</item> <!-- cam_variant "1" means 3 cameras -->
<item>2</item> <!-- cam_variant "2" means 4 cameras -->
</string-array>
<string name="sku_variant/.cmdline">androidboot.</string>
<string-array name="sku_variant/.range">
<item>q</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>
<products export="ro.vendor.product.display" default="moto g&#8309;&#8304;">
</products>
<gabuttons export="ro.vendor.hw.gabutton" default="true">
<variant name="false">
<string name="radio">PRC</string>
</variant>
</gabuttons>
<sku-variants export="ro.vendor.hw.sku_variant" writeback="sku_variant">
<!-- ... same format as before ... -->
<variant name="q">
<string name="cam_variant">2</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="n">
<string name="dualsim">false</string>
<string name="nfc">st</string>
<string name="ecompass">false</string>
</variant>
<variant name="dn">
<string name="dualsim">true</string>
<string name="nfc">st</string>
<string name="ecompass">false</string>
</variant>
<variant name="b">
<string name="dualsim">false</string>
<string name="nfc">false</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>
<!-- ... SKUs with ecompass ... -->
<variant name="nc">
<string name="dualsim">false</string>
<string name="nfc">st</string>
<string name="ecompass">true</string>
</variant>
<variant name="dnc">
<string name="dualsim">true</string>
<string name="nfc">st</string>
<string name="ecompass">true</string>
</variant>
<variant name="bc">
<string name="dualsim">false</string>
<string name="nfc">false</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>
</skus>
</mappings>
</device>
<device name="cypfg" version="1.5">
<!-- 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>
<!-- Front color -->
<item>frontcolor</item>
<!-- Fingerprint sensor -->
<item>fps</item>
<!-- Near Field Communication function -->
<item>nfc</item>
<!-- eCompass -->
<item>ecompass</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:ALL,2:LATAM,3:APEM,4:PRC,5:PRC</string>
<string name="radio/.cmdline">androidboot.</string>
<string name="radio/.system">ro.vendor.hw.</string>
<string-array name="radio/.range">
<item>ALL</item>
<item>LATAM</item>
<item>APEM</item>
<item>PRC</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>
<item>6GB</item>
<item>8GB</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/.system">ro.vendor.hw.</string>
<string-array name="dualsim/.range">
<item>true</item>
<item>false</item>
</string-array>
<!-- frontcolor has to be programmed explicitly -->
<string name="frontcolor/.system">ro.vendor.hw.</string>
<string-array name="frontcolor/.range">
<item>Horizon Blue</item>
<item>Winter Dawn</item>
<item>Moss Lake</item>
<item>Horizon Blue WD</item>
<item>Horizon Blue PW</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">key=hwid;index=2;map=1:st,2:st,3:st,4:false,5:false</string>
<string name="nfc/.chosen">mmi,</string>
<string name="nfc/.system">ro.vendor.hw.</string>
<string-array name="nfc/.range">
<item>st</item>
<item>false</item>
</string-array>
<string name="sku_variant/.cmdline">androidboot.</string>
<string-array name="sku_variant/.range">
<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>
<products export="ro.vendor.product.display" default="moto g&#8309;&#8304;">
</products>
<sku-variants export="ro.vendor.hw.sku_variant" writeback="sku_variant">
<!-- ... same format as before ... -->
<variant name="n">
<string name="nfc">st</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 ... -->
<variant name="n">
<string name="dualsim">false</string>
<string name="nfc">st</string>
</variant>
<variant name="dn">
<string name="dualsim">true</string>
<string name="nfc">st</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="cypfq" version="1.6">
<!-- 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>
<!-- Front color -->
<item>frontcolor</item>
<!-- Fingerprint sensor -->
<item>fps</item>
<!-- Near Field Communication function -->
<item>nfc</item>
<!-- eCompass -->
<item>ecompass</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:ALL,2:LATAM,3:APEM,4:PRC,5:PRC,6:KSA</string>
<string name="radio/.cmdline">androidboot.</string>
<string name="radio/.system">ro.vendor.hw.</string>
<string-array name="radio/.range">
<item>ALL</item>
<item>LATAM</item>
<item>APEM</item>
<item>PRC</item>
<item>KSA</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>
<item>6GB</item>
<item>8GB</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/.system">ro.vendor.hw.</string>
<string-array name="dualsim/.range">
<item>true</item>
<item>false</item>
</string-array>
<!-- frontcolor has to be programmed explicitly -->
<string name="frontcolor/.system">ro.vendor.hw.</string>
<string-array name="frontcolor/.range">
<item>Horizon Blue</item>
<item>Winter Dawn</item>
<item>Moss Lake</item>
<item>Horizon Blue WD</item>
<item>Horizon Blue PW</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">key=hwid;index=2;map=1:st,2:st,3:st,4:false,5:false,6:st</string>
<string name="nfc/.chosen">mmi,</string>
<string name="nfc/.system">ro.vendor.hw.</string>
<string-array name="nfc/.range">
<item>st</item>
<item>false</item>
</string-array>
<string name="sku_variant/.cmdline">androidboot.</string>
<string-array name="sku_variant/.range">
<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>
<products export="ro.vendor.product.display" default="moto g&#8309;&#8304;">
</products>
<sku-variants export="ro.vendor.hw.sku_variant" writeback="sku_variant">
<!-- ... same format as before ... -->
<variant name="n">
<string name="nfc">st</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 ... -->
<variant name="n">
<string name="dualsim">false</string>
<string name="nfc">st</string>
</variant>
<variant name="dn">
<string name="dualsim">true</string>
<string name="nfc">st</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="corfuq" 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>
<!-- Front color -->
<item>frontcolor</item>
<!-- Fingerprint sensor -->
<item>fps</item>
<!-- Near Field Communication function -->
<item>nfc</item>
<!-- eCompass -->
<item>ecompass</item>
<!-- Number of cameras -->
<item>cam_variant</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:Japan,2:PRC,3:ROW,4:India</string>
<string name="radio/.cmdline">androidboot.</string>
<string name="radio/.system">ro.vendor.hw.</string>
<string-array name="radio/.range">
<item>Japan</item>
<item>ROW</item>
<item>PRC</item>
<item>India</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>
<item>6GB</item>
<item>8GB</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/.system">ro.vendor.hw.</string>
<string-array name="dualsim/.range">
<item>true</item>
<item>false</item>
</string-array>
<!-- frontcolor has to be programmed explicitly -->
<string name="frontcolor/.system">ro.vendor.hw.</string>
<string-array name="frontcolor/.range">
<item>green</item>
<item>iris</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:true,3:false,4:false</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:st,2:false,3:st,4:false</string>
<string name="nfc/.chosen">mmi,</string>
<string name="nfc/.system">ro.vendor.hw.</string>
<string-array name="nfc/.range">
<item>st</item>
<item>false</item>
</string-array>
<string name="cam_variant/.auto">key=hwid;index=2;map=1:1,2:2,3:1,4:1</string>
<string name="cam_variant/.chosen">mmi,</string>
<string name="cam_variant/.system">ro.vendor.hw.</string>
<string-array name="cam_variant/.range">
<item>1</item> <!-- cam_variant "1" means 3 cameras -->
<item>2</item> <!-- cam_variant "2" means 4 cameras -->
</string-array>
<string name="sku_variant/.cmdline">androidboot.</string>
<string-array name="sku_variant/.range">
<item>q</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>
<products export="ro.vendor.product.display" default="moto g&#8309;&#8304;">
</products>
<gabuttons export="ro.vendor.hw.gabutton" default="true">
<variant name="false">
<string name="radio">PRC</string>
</variant>
</gabuttons>
<sku-variants export="ro.vendor.hw.sku_variant" writeback="sku_variant">
<!-- ... same format as before ... -->
<variant name="q">
<string name="cam_variant">2</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="n">
<string name="dualsim">false</string>
<string name="nfc">st</string>
<string name="ecompass">false</string>
</variant>
<variant name="dn">
<string name="dualsim">true</string>
<string name="nfc">st</string>
<string name="ecompass">false</string>
</variant>
<variant name="b">
<string name="dualsim">false</string>
<string name="nfc">false</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>
<!-- ... SKUs with ecompass ... -->
<variant name="nc">
<string name="dualsim">false</string>
<string name="nfc">st</string>
<string name="ecompass">true</string>
</variant>
<variant name="dnc">
<string name="dualsim">true</string>
<string name="nfc">st</string>
<string name="ecompass">true</string>
</variant>
<variant name="bc">
<string name="dualsim">false</string>
<string name="nfc">false</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>
</skus>
</mappings>
</device>
<device name="corfur" 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>
<!-- Front color -->
<item>frontcolor</item>
<!-- Fingerprint sensor -->
<item>fps</item>
<!-- Near Field Communication function -->
<item>nfc</item>
<!-- eCompass -->
<item>ecompass</item>
<!-- Number of cameras -->
<item>cam_variant</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:Japan,2:PRC,3:ROW,4:India</string>
<string name="radio/.cmdline">androidboot.</string>
<string name="radio/.system">ro.vendor.hw.</string>
<string-array name="radio/.range">
<item>Japan</item>
<item>ROW</item>
<item>PRC</item>
<item>India</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>
<item>6GB</item>
<item>8GB</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/.system">ro.vendor.hw.</string>
<string-array name="dualsim/.range">
<item>true</item>
<item>false</item>
</string-array>
<!-- frontcolor has to be programmed explicitly -->
<string name="frontcolor/.system">ro.vendor.hw.</string>
<string-array name="frontcolor/.range">
<item>green</item>
<item>iris</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:true,3:false,4:false</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:st,2:false,3:st,4:false</string>
<string name="nfc/.chosen">mmi,</string>
<string name="nfc/.system">ro.vendor.hw.</string>
<string-array name="nfc/.range">
<item>st</item>
<item>false</item>
</string-array>
<string name="cam_variant/.auto">key=hwid;index=2;map=1:1,2:2,3:1,4:1</string>
<string name="cam_variant/.chosen">mmi,</string>
<string name="cam_variant/.system">ro.vendor.hw.</string>
<string-array name="cam_variant/.range">
<item>1</item> <!-- cam_variant "1" means 3 cameras -->
<item>2</item> <!-- cam_variant "2" means 4 cameras -->
</string-array>
<string name="sku_variant/.cmdline">androidboot.</string>
<string-array name="sku_variant/.range">
<item>q</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>
<products export="ro.vendor.product.display" default="moto g&#8309;&#8304;">
</products>
<gabuttons export="ro.vendor.hw.gabutton" default="true">
<variant name="false">
<string name="radio">PRC</string>
</variant>
</gabuttons>
<sku-variants export="ro.vendor.hw.sku_variant" writeback="sku_variant">
<!-- ... same format as before ... -->
<variant name="q">
<string name="cam_variant">2</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="n">
<string name="dualsim">false</string>
<string name="nfc">st</string>
<string name="ecompass">false</string>
</variant>
<variant name="dn">
<string name="dualsim">true</string>
<string name="nfc">st</string>
<string name="ecompass">false</string>
</variant>
<variant name="b">
<string name="dualsim">false</string>
<string name="nfc">false</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>
<!-- ... SKUs with ecompass ... -->
<variant name="nc">
<string name="dualsim">false</string>
<string name="nfc">st</string>
<string name="ecompass">true</string>
</variant>
<variant name="dnc">
<string name="dualsim">true</string>
<string name="nfc">st</string>
<string name="ecompass">true</string>
</variant>
<variant name="bc">
<string name="dualsim">false</string>
<string name="nfc">false</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>
</skus>
</mappings>
</device>
<device name="milanf" 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>
<!-- Front color -->
<item>frontcolor</item>
<!-- Fingerprint sensor -->
<item>fps</item>
<!-- Near Field Communication function -->
<item>nfc</item>
<!-- eCompass -->
<item>ecompass</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,2:VZW</string>
<string name="radio/.cmdline">androidboot.</string>
<string name="radio/.system">ro.vendor.hw.</string>
<string-array name="radio/.range">
<item>NA</item>
<item>VZW</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>
<item>6GB</item>
<item>8GB</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=false</string>
<string name="dualsim/.system">ro.vendor.hw.</string>
<string-array name="dualsim/.range">
<item>true</item>
<item>false</item>
</string-array>
<!-- frontcolor has to be programmed explicitly -->
<string name="frontcolor/.system">ro.vendor.hw.</string>
<string-array name="frontcolor/.range">
<item>green</item>
<item>iris</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">key=hwid;index=2;map=1:nxp,2:nxp</string>
<string name="nfc/.chosen">mmi,</string>
<string name="nfc/.system">ro.vendor.hw.</string>
<string-array name="nfc/.range">
<item>nxp</item>
<item>false</item>
</string-array>
</constraints>
<mappings>
<!-- 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="n">
<string name="dualsim">false</string>
</variant>
<variant name="dn">
<string name="dualsim">true</string>
</variant>
</skus>
</mappings>
</device>
<device name="cypfr" version="1.3">
<!-- 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>
<!-- Front color -->
<item>frontcolor</item>
<!-- Fingerprint sensor -->
<item>fps</item>
<!-- Near Field Communication function -->
<item>nfc</item>
<!-- eCompass -->
<item>ecompass</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:JAPAN,2:LATAM,3:APEM</string>
<string name="radio/.cmdline">androidboot.</string>
<string name="radio/.system">ro.vendor.hw.</string>
<string-array name="radio/.range">
<item>JAPAN</item>
<item>LATAM</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>4GB</item>
<item>6GB</item>
<item>8GB</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/.system">ro.vendor.hw.</string>
<string-array name="dualsim/.range">
<item>true</item>
<item>false</item>
</string-array>
<!-- frontcolor has to be programmed explicitly -->
<string name="frontcolor/.system">ro.vendor.hw.</string>
<string-array name="frontcolor/.range">
<item>Sumi</item>
<item>Shironeri</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">key=hwid;index=2;map=1:ese_nq,2:ese_nq,3:ese_nq</string>
<string name="nfc/.chosen">mmi,</string>
<string name="nfc/.system">ro.vendor.hw.</string>
<string-array name="nfc/.range">
<item>ese_nq</item>
<item>false</item>
</string-array>
<string name="sku_variant/.cmdline">androidboot.</string>
<string-array name="sku_variant/.range">
<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>
<products export="ro.vendor.product.display" default="moto g&#8309;&#8304;">
</products>
<sku-variants export="ro.vendor.hw.sku_variant" writeback="sku_variant">
<!-- ... same format as before ... -->
<variant name="n">
<string name="nfc">ese_nq</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 ... -->
<variant name="sku-ds-nfc_ese">
<string name="dualsim">true</string>
<string name="nfc">ese_nq</string>
</variant>
</skus>
</mappings>
</device>
<device name="rhodep" 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>
<!-- Front color -->
<item>frontcolor</item>
<!-- Fingerprint sensor -->
<item>fps</item>
<!-- Near Field Communication function -->
<item>nfc</item>
<!-- eCompass -->
<item>ecompass</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:ROW,2:PRC</string>
<string name="radio/.cmdline">androidboot.</string>
<string name="radio/.system">ro.vendor.hw.</string>
<string-array name="radio/.range">
<item>ROW</item>
<item>PRC</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>
<item>6GB</item>
<item>8GB</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/.system">ro.vendor.hw.</string>
<string-array name="dualsim/.range">
<item>true</item>
<item>false</item>
</string-array>
<!-- frontcolor has to be programmed explicitly -->
<string name="frontcolor/.system">ro.vendor.hw.</string>
<string-array name="frontcolor/.range">
<item>green</item>
<item>iris</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">key=hwid;index=2;map=1:samsung,2:false</string>
<string name="nfc/.chosen">mmi,</string>
<string name="nfc/.system">ro.vendor.hw.</string>
<string-array name="nfc/.range">
<item>false</item>
<item>samsung</item>
</string-array>
<string name="sku_variant/.cmdline">androidboot.</string>
<string-array name="sku_variant/.range">
<item>n</item>
</string-array>
</constraints>
<mappings>
<!-- SKUs describe mapping of feature combinations to factory SKUs,
to be set in property indicated by "export" -->
<sku-variants export="ro.vendor.hw.sku_variant" writeback="sku_variant">
<!-- ... same format as before ... -->
<variant name="n">
<string name="nfc">samsung</string>
</variant>
</sku-variants>
<skus export="ro.vendor.product.hardware.sku.variant">
<!-- ... same format as variants/products ... -->
<variant name="n">
<string name="dualsim">false</string>
<string name="nfc">samsung</string>
</variant>
<variant name="dn">
<string name="dualsim">true</string>
<string name="nfc">samsung</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="rhodec" 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>
<!-- Front color -->
<item>frontcolor</item>
<!-- Fingerprint sensor -->
<item>fps</item>
<!-- Near Field Communication function -->
<item>nfc</item>
<!-- eCompass -->
<item>ecompass</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:APEM</string>
<string name="radio/.cmdline">androidboot.</string>
<string name="radio/.system">ro.vendor.hw.</string>
<string-array name="radio/.range">
<item>LATAM</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>4GB</item>
<item>6GB</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/.system">ro.vendor.hw.</string>
<string-array name="dualsim/.range">
<item>true</item>
<item>false</item>
</string-array>
<!-- frontcolor has to be programmed explicitly -->
<string name="frontcolor/.system">ro.vendor.hw.</string>
<string-array name="frontcolor/.range">
<item>green</item>
<item>iris</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=nxp</string>
<string name="nfc/.chosen">mmi,</string>
<string name="nfc/.system">ro.vendor.hw.</string>
<string-array name="nfc/.range">
<item>false</item>
<item>nxp</item>
</string-array>
</constraints>
<mappings>
<!-- 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="n">
<string name="dualsim">false</string>
<string name="nfc">nxp</string>
</variant>
<variant name="dn">
<string name="dualsim">true</string>
<string name="nfc">nxp</string>
</variant>
</skus>
</mappings>
</device>
<device name="rhodei" 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>
<!-- Front color -->
<item>frontcolor</item>
<!-- Fingerprint sensor -->
<item>fps</item>
<!-- Near Field Communication function -->
<item>nfc</item>
<!-- eCompass -->
<item>ecompass</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:INDIA</string>
<string name="radio/.cmdline">androidboot.</string>
<string name="radio/.system">ro.vendor.hw.</string>
<string-array name="radio/.range">
<item>INDIA</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>8GB</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>128GB</item>
</string-array>
<string name="dualsim/.auto">default=true</string>
<string name="dualsim/.system">ro.vendor.hw.</string>
<string-array name="dualsim/.range">
<item>true</item>
<item>false</item>
</string-array>
<!-- frontcolor has to be programmed explicitly -->
<string name="frontcolor/.system">ro.vendor.hw.</string>
<string-array name="frontcolor/.range">
<item>green</item>
<item>iris</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>
</constraints>
<mappings>
<!-- 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="d">
<string name="dualsim">true</string>
<string name="nfc">false</string>
</variant>
</skus>
</mappings>
</device>
<device name="miami" version="1.3">
<!-- 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>
<!-- Front color -->
<item>frontcolor</item>
<!-- Fingerprint sensor -->
<item>fps</item>
<!-- Near Field Communication function -->
<item>nfc</item>
<!-- eCompass -->
<item>ecompass</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:ROW</string>
<string name="radio/.cmdline">androidboot.</string>
<string name="radio/.system">ro.vendor.hw.</string>
<string-array name="radio/.range">
<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>6GB</item>
<item>8GB</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>128GB</item>
<item>256GB</item>
</string-array>
<string name="dualsim/.auto">default=true</string>
<string name="dualsim/.system">ro.vendor.hw.</string>
<string-array name="dualsim/.range">
<item>true</item>
<item>false</item>
</string-array>
<!-- frontcolor has to be programmed explicitly -->
<string name="frontcolor/.system">ro.vendor.hw.</string>
<string-array name="frontcolor/.range">
<item>veriperi</item>
<item>icepalace</item>
<item>blackonyx</item>
<item>aquafoam</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=nxp</string>
<string name="nfc/.chosen">mmi,</string>
<string name="nfc/.system">ro.vendor.hw.</string>
<string-array name="nfc/.range">
<item>nxp</item>
</string-array>
</constraints>
<mappings>
<!-- 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="dn">
<string name="dualsim">true</string>
<string name="nfc">nxp</string>
</variant>
<variant name="n">
<string name="dualsim">false</string>
<string name="nfc">nxp</string>
</variant>
</skus>
</mappings>
</device>
<device name="penang" 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>
<!-- Front color -->
<item>frontcolor</item>
<!-- Fingerprint sensor -->
<item>fps</item>
<!-- felica support -->
<item>felica</item>
<!-- Near Field Communication function -->
<item>nfc</item>
<!-- eCompass -->
<item>ecompass</item>
<!-- esim -->
<item>esim</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:ALL,2:BRLA,3:APEU,4:PRC,5:INDIA,6:JAPAN,7:JPSB</string>
<string name="radio/.cmdline">androidboot.</string>
<string name="radio/.system">ro.vendor.hw.</string>
<string-array name="radio/.range">
<item>ALL</item>
<item>BRLA</item>
<item>APEU</item>
<item>PRC</item>
<item>INDIA</item>
<item>JAPAN</item>
<item>JPSB</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>
<item>6GB</item>
<item>8GB</item>
<item>12GB</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>
<item>256GB</item>
</string-array>
<string name="dualsim/.auto">default=true</string>
<string name="dualsim/.system">ro.vendor.hw.</string>
<string-array name="dualsim/.range">
<item>true</item>
<item>false</item>
</string-array>
<string name="esim/.auto">default=false</string>
<string name="esim/.system">ro.vendor.hw.</string>
<string-array name="esim/.range">
<item>true</item>
<item>false</item>
</string-array>
<!-- frontcolor has to be programmed explicitly -->
<string name="frontcolor/.system">ro.vendor.hw.</string>
<string-array name="frontcolor/.range">
<item>veriperi</item>
<item>icepalace</item>
<item>blackonyx</item>
<item>aquafoam</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">key=hwid;index=2;map=1:nxp,2:nxp,3:nxp,4:false,5:nxp,6:ese_nq,7:ese_nq</string>
<string name="nfc/.chosen">mmi,</string>
<string name="nfc/.system">ro.vendor.hw.</string>
<string-array name="nfc/.range">
<item>nxp</item>
<item>ese_nq</item>
<item>false</item>
</string-array>
<string name="felica/.auto">key=hwid;index=2;map=1:false,2:false,3:false,4:false,5:false,6:true,7:true</string>
<string name="felica/.chosen">mmi,</string>
<string name="felica/.system">ro.vendor.hw.</string>
<string-array name="felica/.range">
<item>true</item>
<item>false</item>
</string-array>
</constraints>
<mappings>
<!-- SKUs describe mapping of feature combinations to factory SKUs,
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 export="ro.vendor.product.hardware.sku.variant">
<!-- ... same format as variants/products ... -->
<variant name="n">
<string name="dualsim">false</string>
<string name="nfc">nxp</string>
</variant>
<variant name="dn">
<string name="dualsim">true</string>
<string name="nfc">nxp</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="de">
<string name="dualsim">true</string>
<string name="nfc">ese_nq</string>
</variant>
</skus>
</mappings>
</device>
<device name="pnangn" version="0.5">
<!-- 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>
<!-- Front color -->
<item>frontcolor</item>
<!-- Fingerprint sensor -->
<item>fps</item>
<!-- Near Field Communication function -->
<item>nfc</item>
<!-- eCompass -->
<item>ecompass</item>
<!-- esim -->
<item>esim</item>
<!-- esim id-->
<item>esimid</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:SUPER</string>
<string name="radio/.cmdline">androidboot.</string>
<string name="radio/.system">ro.vendor.hw.</string>
<string-array name="radio/.range">
<item>SUPER</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>
<item>6GB</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/.system">ro.vendor.hw.</string>
<string-array name="dualsim/.range">
<item>true</item>
<item>false</item>
</string-array>
<string name="esim/.auto">default=false</string>
<string name="esim/.system">ro.vendor.hw.</string>
<string-array name="esim/.range">
<item>true</item>
<item>false</item>
</string-array>
<!-- frontcolor has to be programmed explicitly -->
<string name="frontcolor/.system">ro.vendor.hw.</string>
<string-array name="frontcolor/.range">
<item>veriperi</item>
<item>icepalace</item>
<item>blackonyx</item>
<item>aquafoam</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="esimid/.auto">uspace=config;name=esimid</string>
<string name="esimid/.system">ro.vendor.</string>
</constraints>
<mappings>
<!-- 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="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>
</validation>