mirror of
https://github.com/plausible/analytics.git
synced 2024-11-23 20:13:31 +03:00
8223 lines
215 KiB
YAML
8223 lines
215 KiB
YAML
###############
|
|
# Device Detector - The Universal Device Detection library for parsing User Agents
|
|
#
|
|
# @link http://piwik.org
|
|
# @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
|
|
###############
|
|
|
|
'Tunisie Telecom':
|
|
regex: 'StarTrail TT[);/ ]'
|
|
device: 'smartphone'
|
|
model: 'StarTrail'
|
|
|
|
# SFR
|
|
SFR:
|
|
regex: 'StarShine|StarTrail|STARADDICT|StarText|StarNaute|StarXtrem|StarTab'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'StarXtrem[);/ ]'
|
|
model: 'StarXtrem' # ZTE
|
|
- regex: 'StarTrail ?4[);/ ]'
|
|
model: 'StarTrail 4' # ZTE Blade Q
|
|
- regex: 'StarTrail III[);/ ]'
|
|
model: 'StarTrail 3' # ZTE
|
|
- regex: 'StarTrail II[);/ ]'
|
|
model: 'StarTrail 2' # Huawei Ascend Y200
|
|
- regex: 'StarTrail[);/ ]'
|
|
model: 'StarTrail' # ZTE
|
|
- regex: 'StarShine II[);/ ]'
|
|
model: 'StarShine 2' # ZTE
|
|
- regex: 'StarShine[);/ ]'
|
|
model: 'StarShine' # Huawei U8180
|
|
- regex: 'STARADDICT III[);/ ]'
|
|
model: 'Staraddict 3' # Coolpad 8861U
|
|
- regex: 'STARADDICT II Plus[);/ ]'
|
|
model: 'Staraddict 2 Plus' # ZTE Grand X
|
|
- regex: 'STARADDICT II[);/ ]'
|
|
model: 'Staraddict 2' # Alcatel One Touch 995
|
|
- regex: 'STARADDICT[);/ ]'
|
|
model: 'Staraddict' # ZTE
|
|
- regex: 'StarText II[);/ ]'
|
|
model: 'StarText 2' # ZTE
|
|
- regex: 'StarText[);/ ]'
|
|
model: 'StarText' # ZTE
|
|
- regex: 'StarNaute II[);/ ]'
|
|
model: 'StarNaute 2' # ZTE
|
|
- regex: 'StarNaute[);/ ]'
|
|
model: 'StarNaute' # ZTE Amigo
|
|
- regex: 'StarTab'
|
|
model: 'StarTab'
|
|
device: 'tablet'
|
|
|
|
- regex: '((?:StarShine|StarTrail|STARADDICT|StarText|StarNaute|StarXtrem)[^;/]*) Build'
|
|
model: '$1'
|
|
|
|
# HTC
|
|
HTC:
|
|
regex: 'HTC|Sprint (?:APA|ATP)|ADR(?!910L)[a-z0-9]+|NexusHD2|Amaze[ _]4G[);/ ]|(Desire|Sensation|Evo ?3D|IncredibleS|Wildfire|Butterfly)[ _]?([^;/]+) Build|(Amaze[ _]4G|One ?[XELSV\+]+)[);/ ]|SPV E6[05]0|One M8|X525a|PG86100|PC36100|XV6975|PJ83100[);/ ]|2PYB2|0PJA10|0PJA2'
|
|
device: 'smartphone'
|
|
models:
|
|
# explicit smartphone models
|
|
- regex: 'XV6975[);/ ]'
|
|
model: 'Imagio'
|
|
- regex: 'PG86100[);/ ]'
|
|
model: 'Evo 3G'
|
|
- regex: 'PC36100[);/ ]'
|
|
model: 'Evo 4G'
|
|
- regex: 'PJ83100[);/ ]'
|
|
model: 'One X'
|
|
- regex: '(?:0PJA2|0PJA10)[);/ ]'
|
|
model: 'One M9'
|
|
- regex: 'ADR6300'
|
|
model: 'Droid Incredible'
|
|
- regex: 'ADR6400L'
|
|
model: 'ThunderBolt'
|
|
- regex: 'ADR6410LRA'
|
|
model: 'Droid Incredible 3'
|
|
- regex: 'SPV E600'
|
|
model: 'Excalibur'
|
|
- regex: 'SPV E650'
|
|
model: 'Vox'
|
|
- regex: 'X525a'
|
|
model: 'One X+'
|
|
- regex: '2PYB2'
|
|
model: 'Bolt'
|
|
|
|
- regex: 'NexusHD2' # custom rom for hd2
|
|
model: 'HD2'
|
|
- regex: 'HTC[ _\-]P715a'
|
|
device: 'tablet'
|
|
model: 'P715a'
|
|
- regex: 'HTC[ _\-]Flyer Build'
|
|
device: 'tablet'
|
|
model: 'Flyer'
|
|
- regex: 'HTC[ _\-]Flyer[ _\-]([\w]{1,5})'
|
|
device: 'tablet'
|
|
model: 'Flyer $1'
|
|
- regex: 'HTC[ _\-]One[ _\-]max[);/ ]'
|
|
device: 'phablet'
|
|
model: 'One max'
|
|
- regex: 'HTC[ _]([^/;]+) [0-9]+(?:\.[0-9]+)+ Build'
|
|
model: '$1'
|
|
- regex: 'HTC[ _]([^/;]+) Build'
|
|
model: '$1'
|
|
- regex: 'HTC[ _]([a-z0-9]+[ _\-]?(?:[a-z0-9_+\-])*)'
|
|
model: '$1'
|
|
- regex: 'USCCHTC(\d+)'
|
|
model: '$1'
|
|
- regex: 'Sprint (ATP.*) Build'
|
|
device: 'tablet'
|
|
model: '$1 (Sprint)'
|
|
- regex: 'Sprint (APA.*) Build'
|
|
model: '$1 (Sprint)'
|
|
- regex: 'HTC(?:[\-/ ])?([a-z0-9\-_]+)'
|
|
model: '$1'
|
|
- regex: 'HTC;(?: )?([a-z0-9 ]+)'
|
|
model: '$1'
|
|
- regex: '(Desire|Sensation|Evo ?3D|IncredibleS|Wildfire|Butterfly)[ _]?([^;/]+) Build'
|
|
model: '$1 $2'
|
|
- regex: '(Amaze[ _]4G|One ?[XELSV\+]*) Build'
|
|
model: '$1'
|
|
- regex: '(ADR[^;/]+) Build'
|
|
model: '$1'
|
|
- regex: '(ADR[a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: '(One M8)'
|
|
model: '$1'
|
|
|
|
# microsoft
|
|
Microsoft:
|
|
regex: 'KIN\.(One|Two)|RM-(?:1031|106[57]|109[02]|1096|1099|1109|1114|1127|1141|1154)|Microsoft; Lumia'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'KIN\.(One|Two)'
|
|
device: 'feature phone'
|
|
model: 'Kin $1'
|
|
|
|
- regex: 'RM-1031'
|
|
model: 'Lumia 532'
|
|
- regex: 'RM-106[57]'
|
|
model: 'Lumia 640 XL'
|
|
- regex: 'RM-1096'
|
|
model: 'Lumia 640 XL'
|
|
- regex: 'RM-109[02]'
|
|
model: 'Lumia 535'
|
|
- regex: 'RM-1099'
|
|
model: 'Lumia 430'
|
|
- regex: 'RM-1109'
|
|
model: 'Lumia 640'
|
|
- regex: 'RM-1114'
|
|
model: 'Lumia 435'
|
|
- regex: 'RM-1127'
|
|
model: 'Lumia 550'
|
|
- regex: 'RM-1141'
|
|
model: 'Lumia 540'
|
|
- regex: 'RM-1154'
|
|
model: 'Lumia 650'
|
|
|
|
- regex: 'Microsoft; Lumia ([^;/)]+)[;/)]'
|
|
model: 'Lumia $1'
|
|
|
|
# NOKIA
|
|
Nokia:
|
|
regex: 'Nokia|Lumia|Maemo RX|portalmmm/2\.0 N7|portalmmm/2\.0 NK|nok[0-9]+|Symbian.*\s([a-z0-9]+)$|RX-51 N900|TA-[0-9]{4} Build'
|
|
device: 'smartphone'
|
|
models:
|
|
# Nokia branded phones by HMD Global
|
|
# 2017 Models
|
|
- regex: 'TA-10(07|23|29|35)'
|
|
model: '2'
|
|
- regex: 'TA-10(20|28|32|38)'
|
|
model: '3'
|
|
- regex: 'TA-10(24|27|44|53)'
|
|
model: '5'
|
|
- regex: 'TA-10(00|03|21|25|33|39)'
|
|
model: '6'
|
|
- regex: 'TA-10(04|12)'
|
|
model: '8'
|
|
# 2018 Models
|
|
- regex: 'Nokia ([A-Za-z0-9\. ]+) Build'
|
|
model: '$1'
|
|
|
|
# Nokia phones
|
|
- regex: 'RX-51 N900'
|
|
model: 'N900'
|
|
- regex: 'Nokia(N[0-9]+)'
|
|
model: '$1'
|
|
- regex: 'Nokia-([a-z0-9]+)'
|
|
model: 'N$1'
|
|
- regex: 'NOKIA; (?!Qt;)([a-z0-9\- ]+)'
|
|
model: '$1'
|
|
- regex: 'NOKIA[ _]?([a-z0-9\-]+)'
|
|
model: '$1'
|
|
- regex: 'NOKIA/([a-z0-9 ]+)'
|
|
model: '$1'
|
|
- regex: '(Lumia [a-z0-9\-]+ XL)'
|
|
device: 'phablet'
|
|
model: '$1'
|
|
- regex: '(Lumia [a-z0-9\-]+)'
|
|
model: '$1'
|
|
- regex: 'Maemo RX-51 ([a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: 'Maemo RX-34'
|
|
model: 'N800'
|
|
- regex: 'NokiaInternal|Nokia-WAP-Toolkit|Nokia-MIT-Browser|Nokia Mobile|Nokia Browser|Nokia/Series'
|
|
model: ''
|
|
- regex: 'portalmmm/2\.0 (N7[37]|NK[a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: 'nok([0-9]+)'
|
|
model: '$1'
|
|
- regex: 'Symbian.*\s([a-z0-9]+)$'
|
|
device: 'feature phone'
|
|
model: '$1'
|
|
|
|
# CnM
|
|
CnM:
|
|
regex: 'CnM'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'CnM[ \-](?:Touchpad|TP)[ \-]([0-9\.]+)'
|
|
model: 'Touchpad $1'
|
|
|
|
# RIM/BlackBerry
|
|
RIM:
|
|
regex: 'BB10;|BlackBerry|rim[0-9]+|PlayBook|STV100-[1234]|STH100-[12]|BBA100-[12]|BBB100-[1234567]|BBC100-1|BBD100-[126]|BBE100-[123456789]|BBF100-[123456789]|BBG100-1|BBH100-1'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'BBA100-[12]'
|
|
model: 'BlackBerry DTEK60'
|
|
- regex: 'BBB100-[1234567]'
|
|
model: 'KEYone'
|
|
- regex: 'BBC100-1'
|
|
model: 'Aurora'
|
|
- regex: 'BBD100-[126]'
|
|
model: 'Motion'
|
|
- regex: 'BBE100-[123456789]'
|
|
model: 'KEY2 LE'
|
|
- regex: 'BBF100-[1234567]'
|
|
model: 'KEY2'
|
|
- regex: 'BBF100-8'
|
|
model: 'KEY2 Silver'
|
|
- regex: 'BBF100-9'
|
|
model: 'KEY2 Black'
|
|
- regex: 'BBG100-1'
|
|
model: 'Evolve'
|
|
- regex: 'BBH100-1'
|
|
model: 'Evolve X'
|
|
- regex: 'STV100-[1234]'
|
|
model: 'BlackBerry Priv'
|
|
- regex: 'STH100-[12]'
|
|
model: 'BlackBerry DTEK50'
|
|
- regex: 'BB10; ([a-z0-9\- ]+)\)'
|
|
model: 'BlackBerry $1'
|
|
- regex: 'PlayBook.+RIM Tablet OS'
|
|
model: 'BlackBerry Playbook'
|
|
device: 'tablet'
|
|
- regex: 'BlackBerry(?: )?([a-z0-9]+)'
|
|
model: 'BlackBerry $1'
|
|
- regex: 'rim([0-9]+)'
|
|
model: 'BlackBerry $1'
|
|
- regex: 'BlackBerry'
|
|
model: 'BlackBerry'
|
|
|
|
# PALM
|
|
Palm:
|
|
regex: '(?:Pre|Pixi)/(\d+)\.(\d+)|Palm|Treo|Xiino'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: '((?:Pre|Pixi))/(\d+\.\d+)'
|
|
model: '$1 $2'
|
|
- regex: 'Palm(?:[ \-])?((?!OS|Source|scape)[a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: 'Treo([a-z0-9]+)'
|
|
model: 'Treo $1'
|
|
- regex: 'Tungsten'
|
|
model: 'Tungsten'
|
|
- regex: 'Xiino|Palmscape' # Browser for Palm OS only
|
|
model: ''
|
|
|
|
# HP
|
|
HP:
|
|
regex: 'TouchPad/\d+\.\d+|hp-tablet|HP ?iPAQ|webOS.*P160U|HP Slate|HP [78]|Compaq [7|8]|HP; [^;/)]+'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'HP Slate 6 Voice Tab'
|
|
model: 'Slate 6 VoiceTab'
|
|
device: 'phablet'
|
|
- regex: 'HP ([78][^/;]*) Build'
|
|
model: 'Slate $1'
|
|
device: 'tablet'
|
|
- regex: 'Compaq ([78][^/;]*) Build'
|
|
model: 'Compaq $1'
|
|
device: 'tablet'
|
|
- regex: 'HP Slate ?(.+) Build'
|
|
model: 'Slate $1'
|
|
device: 'tablet'
|
|
- regex: 'HP Slate ?([0-9]+)'
|
|
model: 'Slate $1'
|
|
device: 'tablet'
|
|
- regex: 'TouchPad/(\d+\.\d+)|hp-tablet'
|
|
model: 'TouchPad'
|
|
device: 'tablet'
|
|
- regex: 'HP; ([^;/)]+)'
|
|
model: '$1'
|
|
- regex: 'HP(?: )?iPAQ(?: )?([a-z0-9]+)'
|
|
model: 'iPAQ $1'
|
|
- regex: 'webOS.*(P160U)'
|
|
model: 'Veer'
|
|
|
|
# TiPhone
|
|
TiPhone:
|
|
regex: 'TiPhone ?([a-z0-9]+)'
|
|
device: 'smartphone'
|
|
model: '$1'
|
|
|
|
# Apple
|
|
Apple:
|
|
regex: '(?:iTunes-)?Apple[ _]?TV|(?:Apple-|iTunes-)?(?:iPad|iPhone)|iPh[0-9],[0-9]|CFNetwork'
|
|
models:
|
|
# specific smartphone devices
|
|
- regex: '(?:Apple-)?iPh(?:one)?1[C,]1'
|
|
model: 'iPhone'
|
|
device: 'smartphone'
|
|
- regex: '(?:Apple-)?iPh(?:one)?1[C,]2'
|
|
model: 'iPhone 3G'
|
|
device: 'smartphone'
|
|
- regex: '(?:Apple-)?iPh(?:one)?2[C,]1'
|
|
model: 'iPhone 3GS'
|
|
device: 'smartphone'
|
|
- regex: '(?:Apple-)?iPh(?:one)?3[C,][123]'
|
|
model: 'iPhone 4'
|
|
device: 'smartphone'
|
|
- regex: '(?:Apple-)?iPh(?:one)?4[C,]1'
|
|
model: 'iPhone 4S'
|
|
device: 'smartphone'
|
|
- regex: '(?:Apple-)?iPh(?:one)?5[C,][12]'
|
|
model: 'iPhone 5'
|
|
device: 'smartphone'
|
|
- regex: '(?:Apple-)?iPh(?:one)?5[C,][34]'
|
|
model: 'iPhone 5C'
|
|
device: 'smartphone'
|
|
- regex: '(?:Apple-)?iPh(?:one)?6[C,][12]'
|
|
model: 'iPhone 5S'
|
|
device: 'smartphone'
|
|
- regex: '(?:Apple-)?iPh(?:one)?7[C,]1'
|
|
model: 'iPhone 6 Plus'
|
|
device: 'phablet'
|
|
- regex: '(?:Apple-)?iPh(?:one)?7[C,]2'
|
|
model: 'iPhone 6'
|
|
device: 'smartphone'
|
|
- regex: '(?:Apple-)?iPh(?:one)?8[C,]1'
|
|
model: 'iPhone 6s'
|
|
device: 'smartphone'
|
|
- regex: '(?:Apple-)?iPh(?:one)?8[C,]2'
|
|
model: 'iPhone 6s Plus'
|
|
device: 'phablet'
|
|
- regex: '(?:Apple-)?iPh(?:one)?8[C,]4'
|
|
model: 'iPhone SE'
|
|
device: 'smartphone'
|
|
- regex: '(?:Apple-)?iPh(?:one)?9[C,][13]'
|
|
model: 'iPhone 7'
|
|
device: 'smartphone'
|
|
- regex: '(?:Apple-)?iPh(?:one)?9[C,][24]'
|
|
model: 'iPhone 7 Plus'
|
|
device: 'phablet'
|
|
- regex: '(?:Apple-)?iPh(?:one)?10[C,][14]'
|
|
model: 'iPhone 8'
|
|
device: 'smartphone'
|
|
- regex: '(?:Apple-)?iPh(?:one)?10[C,][25]'
|
|
model: 'iPhone 8 Plus'
|
|
device: 'phablet'
|
|
- regex: '(?:Apple-)?iPh(?:one)?10[C,][36]'
|
|
model: 'iPhone X'
|
|
device: 'phablet'
|
|
|
|
# specific tablet devices
|
|
- regex: '(?:Apple-)?iPad1[C,]1'
|
|
model: 'iPad'
|
|
device: 'tablet'
|
|
- regex: '(?:Apple-)?iPad2[C,][1234]'
|
|
model: 'iPad 2'
|
|
device: 'tablet'
|
|
- regex: '(?:Apple-)?iPad2[C,][567]'
|
|
model: 'iPad Mini'
|
|
device: 'tablet'
|
|
- regex: '(?:Apple-)?iPad3[C,][123]'
|
|
model: 'iPad 3'
|
|
device: 'tablet'
|
|
- regex: '(?:Apple-)?iPad3[C,][456]'
|
|
model: 'iPad 4'
|
|
device: 'tablet'
|
|
- regex: '(?:Apple-)?iPad4[C,][123]'
|
|
model: 'iPad Air'
|
|
device: 'tablet'
|
|
- regex: '(?:Apple-)?iPad4[C,][456]'
|
|
model: 'iPad Mini 2'
|
|
device: 'tablet'
|
|
- regex: '(?:Apple-)?iPad4[C,][789]'
|
|
model: 'iPad Mini 3'
|
|
device: 'tablet'
|
|
- regex: '(?:Apple-)?iPad5[C,][12]'
|
|
model: 'iPad Mini 4'
|
|
device: 'tablet'
|
|
- regex: '(?:Apple-)?iPad5[C,][34]'
|
|
model: 'iPad Air 2'
|
|
device: 'tablet'
|
|
- regex: '(?:Apple-)?iPad6[C,][34]'
|
|
model: 'iPad Pro 9.7'
|
|
device: 'tablet'
|
|
- regex: '(?:Apple-)?iPad6[C,][78]'
|
|
model: 'iPad Pro 12.9'
|
|
device: 'tablet'
|
|
- regex: '(?:Apple-)?iPad6[C,](?:11|12)'
|
|
model: 'iPad 5'
|
|
device: 'tablet'
|
|
- regex: '(?:Apple-)?iPad7[C,][12]'
|
|
model: 'iPad Pro 2 12.9'
|
|
device: 'tablet'
|
|
- regex: '(?:Apple-)?iPad7[C,][34]'
|
|
model: 'iPad Pro 10.5'
|
|
device: 'tablet'
|
|
- regex: '(?:Apple-)?iPad7[C,][56]'
|
|
model: 'iPad 6'
|
|
device: 'tablet'
|
|
|
|
- regex: '(?:iTunes-)?Apple[ _]?TV'
|
|
model: 'Apple TV'
|
|
device: 'tv'
|
|
- regex: 'iTunes-iPad/[0-9]+(?:\.[0-9]+)* \(([^;]+);'
|
|
model: 'iPad $1'
|
|
device: 'tablet'
|
|
- regex: '(?:Apple-)?iPad'
|
|
model: 'iPad'
|
|
device: 'tablet'
|
|
- regex: 'iTunes-iPhone/[0-9]+(?:\.[0-9]+)* \(([^;]+);'
|
|
model: 'iPhone $1'
|
|
device: 'smartphone'
|
|
- regex: '(?:Apple-)?iPhone ?(3GS?|4S?|5[CS]?|6(:? Plus)?)?'
|
|
model: 'iPhone $1'
|
|
device: 'smartphone'
|
|
|
|
# micromax
|
|
MicroMax:
|
|
regex: '(?:MicroMax[ \-\_]?[a-z0-9]+|Q327)|P70221 Build'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'AQ5001'
|
|
model: 'Canvas Juice 2'
|
|
- regex: 'E481'
|
|
model: 'Canvas 5'
|
|
- regex: 'P70221 Build'
|
|
model: 'Canvas Tab'
|
|
device: 'tablet'
|
|
- regex: 'Q327'
|
|
model: 'Bolt'
|
|
- regex: 'Q417'
|
|
model: 'Canvas Mega'
|
|
- regex: 'Q424'
|
|
model: 'Bolt Selfie'
|
|
- regex: 'Q426'
|
|
model: 'Canvas Mega 2'
|
|
- regex: 'MicroMax(?:[ \-\_])?(P[a-z0-9]+)'
|
|
model: '$1'
|
|
device: 'tablet'
|
|
- regex: 'MicroMax(?:[ \-\_])?([a-z0-9]+)'
|
|
model: '$1'
|
|
|
|
# 3Q
|
|
3Q:
|
|
regex: '(AC0731B|AC1024C|AC7803C|BC9710AM|EL72B|LC0720C|LC0723B|LC0725B|LC0804B|LC0808B|LC0809B|LC0810C|LC0816C|LC0901D|LC1016C|MT0724B|MT0729B|MT0729D|MT0811B|OC1020A|RC0709B|RC0710B|RC0718C|RC0719H|RC0721B|RC0722C|RC0726B|RC0734H|RC0743H|RC0817C|RC1018C|RC1019G|RC1025F|RC1301C|RC7802F|RC9711B|RC9712C|RC9716B|RC9717B|RC9724C|RC9726C|RC9727F|RC9730C|RC9731C|TS0807B|TS1013B|VM0711A|VM1017A|RC0813C|QS9719D|QS9718C|QS9715F|QS1023H|QS0815C|QS0730C|QS0728C|QS0717D|QS0716D|QS0715C|MT7801C)'
|
|
device: 'tablet'
|
|
model: '$1'
|
|
|
|
# 4Good
|
|
4Good:
|
|
regex: '4Good[ _]|(?:4Good)?(S450m [43]G|S555m 4G|S501m 3G|T700i_3G|Light A103)'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'T700i_3G'
|
|
model: 'T700i 3G'
|
|
device: 'tablet'
|
|
- regex: '(S(?:450m|555m|501m)[_ ][43]G|Light A103)'
|
|
model: '$1'
|
|
- regex: '4Good[ _]([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: '4Good[ _]([^);/ ]+)'
|
|
model: '$1'
|
|
|
|
# Bravis
|
|
Bravis:
|
|
regex: 'Bravis|A501 Bright|NB(?:10[56]|751|7[145])|NP101'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'A501 Bright'
|
|
model: 'A501 Bright'
|
|
- regex: 'Bravis[_ ]([^;\)]+) Build'
|
|
model: '$1'
|
|
- regex: '(NB(?:10[156]|751|7[145])|NP101)'
|
|
model: '$1'
|
|
device: 'tablet'
|
|
|
|
|
|
# Acer
|
|
Acer:
|
|
regex: 'acer|(?<!ZTE BLADE |ImSmart )a(?:101|110|2[10]0|211|50[10]|51[10]|70[10])[);/ ]|Android.*V3[67]0[);/ ]|Android.*Z1[23456]0 Build|Android.*Z5\d{2} Build|Android.*T0[234678] Build|A1-830|A1-81[01]|A3-A[1234][01]|B1-7[1235678][01]|B1-7[23]3|B1-8[1235]0|B1-A71|B3-A[12]0|B3-A3[02]|E39 Build|S5[12]0 Build|DA[0-9]+HQ?L[);/ ]'
|
|
device: 'smartphone'
|
|
models:
|
|
# smart displays
|
|
- regex: 'DA220HQL[);/ ]'
|
|
model: 'DA220HQL'
|
|
device: 'smart display'
|
|
- regex: 'DA241HL[);/ ]'
|
|
model: 'DA241HL'
|
|
device: 'smart display'
|
|
- regex: '(DA[0-9]+HQ?L)[);/ ]'
|
|
model: '$1'
|
|
device: 'smart display'
|
|
|
|
# explicit tablet models
|
|
- regex: 'A1-81[01]'
|
|
model: 'Iconia A'
|
|
device: 'tablet'
|
|
- regex: 'A1-830'
|
|
model: 'Iconia A1'
|
|
device: 'tablet'
|
|
- regex: 'A3-A[12][01]'
|
|
model: 'Iconia A3'
|
|
device: 'tablet'
|
|
- regex: 'A3-A[34]0'
|
|
model: 'Iconia Tab 10'
|
|
device: 'tablet'
|
|
- regex: 'B1-7[1235][01]|B1-A71'
|
|
model: 'Iconia B1'
|
|
device: 'tablet'
|
|
- regex: 'B1-7[23]3'
|
|
model: 'Iconia Talk 7'
|
|
device: 'tablet'
|
|
- regex: 'B1-7[678]0'
|
|
model: 'Iconia One 7'
|
|
device: 'tablet'
|
|
- regex: 'B1-8[1235]0'
|
|
model: 'Iconia One 8'
|
|
device: 'tablet'
|
|
- regex: 'B3-A[12]0|B3-A3[02]'
|
|
model: 'Iconia One 10'
|
|
device: 'tablet'
|
|
|
|
# explicit smartphone models
|
|
- regex: 'E39 Build'
|
|
model: 'Liquid E700'
|
|
- regex: 'Android.*V360[);/ ]'
|
|
model: 'Liquid E1'
|
|
- regex: 'Android.*V370[);/ ]'
|
|
model: 'Liquid E2'
|
|
- regex: 'S510 Build'
|
|
model: 'Liquid S1'
|
|
- regex: 'S520 Build'
|
|
model: 'Liquid S2'
|
|
- regex: 'Android.*Z1([2345])0 Build'
|
|
model: 'Liquid Z$1'
|
|
- regex: 'Android.*Z160 Build'
|
|
model: 'Liquid Z4'
|
|
- regex: 'Android.*Z(5\d{2}) Build'
|
|
model: 'Liquid Z$1'
|
|
- regex: 'Android.*T02 Build'
|
|
model: 'Liquid Z530'
|
|
- regex: 'Android.*T03 Build'
|
|
model: 'Liquid Z630'
|
|
- regex: 'Android.*T04 Build'
|
|
model: 'Liquid Z630S'
|
|
- regex: 'Android.*T06 Build'
|
|
model: 'Liquid Zest'
|
|
- regex: 'Android.*T07 Build'
|
|
model: 'Liquid Zest 4G'
|
|
- regex: 'Android.*T08 Build'
|
|
model: 'Liquid Zest Plus'
|
|
- regex: 'Acer; ?([^;\)]+)'
|
|
model: '$1'
|
|
- regex: 'Acer[ _\-]?([^;\)]+) Build'
|
|
model: '$1'
|
|
- regex: 'acer[\-_]([a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: 'a(101|110|2[10]0|211|50[10]|51[10]|70[10])[);/ ]'
|
|
model: 'Iconia Tab A$1'
|
|
device: 'tablet'
|
|
|
|
# Advance
|
|
Advance:
|
|
regex: 'Hollogram|HL6246|IntroTr3544|Tr3845'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'IntroTr3544|Tr3845'
|
|
model: 'Intro'
|
|
device: 'tablet'
|
|
- regex: 'HL6246'
|
|
model: 'Hollogram HL6246'
|
|
- regex: 'Hollogram ([^;\)]+) Build'
|
|
model: 'Hollogram $1'
|
|
|
|
# Airness
|
|
Airness:
|
|
regex: 'AIRNESS-([\w]+)'
|
|
device: 'feature phone'
|
|
model: '$1'
|
|
|
|
# Aiwa
|
|
Aiwa:
|
|
regex: 'AW790|M300'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'AW790'
|
|
model: 'AW790'
|
|
- regex: 'M300'
|
|
model: 'M300'
|
|
device: 'phablet'
|
|
|
|
# Akai
|
|
Akai:
|
|
regex: 'Akai[ _-]|Eco[ _]E2|Glory[ _](?:G[1235]|L[123]|O[125])|TAB-[79]8[03]0Q?|X6 METAL|AKTB-703MZ'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'TAB-([79]8[03]0Q?)'
|
|
device: 'tablet'
|
|
model: 'TAB $1'
|
|
- regex: '(AKTB-703MZ)'
|
|
device: 'tablet'
|
|
model: '$1'
|
|
|
|
- regex: 'X6 METAL'
|
|
model: 'iLike'
|
|
- regex: 'Glory[ _](G[1235]|L[123]|O[125])'
|
|
model: 'Glory $1'
|
|
- regex: 'Eco[ _]E2'
|
|
model: 'Eco E2'
|
|
- regex: 'Akai[ _-]([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'Akai[ _-]([^;/]+)[;/)]'
|
|
model: '$1'
|
|
|
|
# Alcatel
|
|
Alcatel:
|
|
regex: 'Alcatel|Alc[a-z0-9]+|One[ _]?Touch|idol3|(?:4003[AJ]|4009[ADEFIKMSX]|4013[DEJKMX]|4014[ADEKMX]|4015[ADNTX]|4016[ADX]|4017[ADEFSX]|4018[ADEFMX]|4024[EDX]|4027[ADNX]|4028[AEJS]|4032[ADEX]|4034[ADEFGX]|4035[ADXY]|4045[ADEX]|4047[ADFGNX]|4049[DEGMX]|4060[SW]|4114E|5009[AD]|5010[DEGSUX]|5011A|5012[DFG]|5015[ADEX]|5016[AXJ]|5017[ABDEOX]|5019D|5022[EDX]|5023[EF]|5025[DG]|5026[AD]|5027B|5038[ADEX]|5042[ADEFGWX]|5044[ADGIKOPSTY]|5045[ADFGIJTXY]|5046[ADGIJSTUY]|5047[DIUY]|5049[EGSWZ]|5050[ASXY]|5051[ADEJMTWX]|5052D|5054[ADNSWX]|5056[ADEGIJMNTUWX]|5057M|5058[AIY]|5059[ADXY]|5065[ADNWX]|5070D|5080[ADFQUX]|5085[ABCDGHIJNOQY]|5086[ADY]|5090[AIY]|5095[IKY]|5098[OS]|5099[ADYUI]|5116J|5145A|6016[ADEX]|6036[AXY]|6037[BKY]|6039[AHJKY]|6043[AD]|6044D|6045[BFIKOY]|6050[AFY]|6055[ABDHIKPUYZ]|6058[ADX]|6062W|6070K|7040[ADEFKRT]|7041[DX]|7043[AEKY]|7044[AX]|7045Y|7048[ASWX]|7055A|7070X|8030Y|8050[DEGX]|9001[DIX]|9002X|9003[AX]|9005X|9007[ATX]|9008[ADIJNTUX]|9010X|9022X|9203A|I213|I216X)[);/ ]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: '(?:5022[EDX]|5070D)[);/ ]'
|
|
model: 'One Touch Pop Star'
|
|
- regex: '6044D[);/ ]'
|
|
model: 'One Touch Pop Up'
|
|
- regex: '(?:4015[ATX]|4016A)[);/ ]'
|
|
model: 'One Touch Pop C1'
|
|
- regex: '(?:4015[DN]|4016[DX])[);/ ]'
|
|
model: 'One Touch Pop C1 Dual SIM'
|
|
- regex: '4032[AX][);/ ]'
|
|
model: 'One Touch Pop C2'
|
|
- regex: '4032[DE][);/ ]'
|
|
model: 'One Touch Pop C2 Dual SIM'
|
|
- regex: '(?:7040[AFK]|7041X)[);/ ]'
|
|
model: 'One Touch Pop C7'
|
|
- regex: '(?:7040[DE]|7041D)[);/ ]'
|
|
model: 'One Touch Pop C7 Dual SIM'
|
|
- regex: '4018[ADEFMX][);/ ]'
|
|
model: 'One Touch Pop D1'
|
|
- regex: '4035[ADXY][);/ ]'
|
|
model: 'One Touch Pop D3'
|
|
- regex: '5038[ADEX][);/ ]'
|
|
model: 'One Touch Pop D5'
|
|
- regex: '4045[AX][);/ ]'
|
|
model: 'One Touch Pop 2 4"'
|
|
- regex: '4045[DE][);/ ]'
|
|
model: 'One Touch Pop 2 4" Dual SIM'
|
|
- regex: '5042[AFGWX][);/ ]'
|
|
model: 'One Touch Pop 2 4.5"'
|
|
- regex: '5042[DE][);/ ]'
|
|
model: 'One Touch Pop 2 4.5" Dual SIM'
|
|
- regex: '(?:7043[AY]|7044[AX])[);/ ]'
|
|
model: 'One Touch Pop 2 5"'
|
|
- regex: '7043[EK][);/ ]'
|
|
model: 'One Touch Pop 2 5" Dual SIM'
|
|
- regex: '50[16]5X[);/ ]'
|
|
model: 'One Touch Pop 3'
|
|
- regex: '(?:5015[AE]|5016[AJ]|5065[ADWX]|5116J)[);/ ]'
|
|
model: 'One Touch Pop 3 5"'
|
|
- regex: '(?:5025[DG]|5054[ADSX])[);/ ]'
|
|
model: 'One Touch Pop 3 5.5"'
|
|
- regex: '5015D[);/ ]'
|
|
model: 'One Touch Pop 3 Dual SIM'
|
|
- regex: '5051[AEJMTWX][);/ ]'
|
|
model: 'One Touch Pop 4'
|
|
- regex: '5051D[);/ ]'
|
|
model: 'One Touch Pop 4 Dual SIM'
|
|
- regex: '5095[IKY][);/ ]'
|
|
model: 'One Touch Pop 4S'
|
|
- regex: '5056[ADEGJMTUX][);/ ]'
|
|
model: 'One Touch Pop 4+'
|
|
- regex: '7070X[);/ ]'
|
|
model: 'One Touch Pop 4 6"'
|
|
- regex: '5057M[);/ ]'
|
|
model: 'One Touch Pop Mirage'
|
|
- regex: '5050[ASXY][);/ ]'
|
|
model: 'One Touch Pop S3'
|
|
- regex: '7045Y[);/ ]'
|
|
model: 'One Touch Pop S7'
|
|
- regex: '6037[BKY][);/ ]'
|
|
model: 'One Touch Idol 2'
|
|
- regex: '5027B[);/ ]'
|
|
model: 'One Touch Dawn'
|
|
- regex: '7040[RT][);/ ]'
|
|
model: 'One Touch Fierce 2'
|
|
- regex: '5056[NW]'
|
|
model: 'One Touch Fierce 4'
|
|
- regex: '5054[NW]'
|
|
model: 'One Touch Fierce XL'
|
|
- regex: '6016[AX][);/ ]'
|
|
model: 'One Touch Idol 2 mini'
|
|
- regex: '6016[DE][);/ ]'
|
|
model: 'One Touch Idol 2 mini Dual SIM'
|
|
- regex: '6036[AXY][);/ ]'
|
|
model: 'One Touch Idol 2 mini S'
|
|
- regex: '6050[AFY][);/ ]'
|
|
model: 'One Touch Idol 2S'
|
|
- regex: '6039[AHJKY][);/ ]|idol3'
|
|
model: 'One Touch Idol 3'
|
|
- regex: '6045[BFIKOY][);/ ]'
|
|
model: 'One Touch Idol 3 5.5"'
|
|
- regex: '6055[ABDHIKPUYZ][);/ ]'
|
|
model: 'One Touch Idol 4'
|
|
- regex: '6070K[);/ ]'
|
|
model: 'One Touch Idol 4S'
|
|
- regex: '6058[ADX][);/ ]'
|
|
model: 'One Touch Idol 5'
|
|
- regex: '6043[AD][);/ ]'
|
|
model: 'One Touch Idol X+'
|
|
- regex: '8030Y[);/ ]'
|
|
model: 'One Touch Hero 2'
|
|
- regex: '7055A[);/ ]'
|
|
model: 'One Touch Hero 2C'
|
|
- regex: '5065N[);/ ]'
|
|
model: 'TRU'
|
|
- regex: '5056I'
|
|
model: 'One Touch Optus X Smart'
|
|
- regex: '4024[DEX][);/ ]'
|
|
model: 'One Touch Pixi First'
|
|
- regex: '4014D[);/ ]'
|
|
model: 'One Touch Pixi 2'
|
|
- regex: '4009[AFIKMSX][);/ ]'
|
|
model: 'One Touch Pixi 3 3.5"'
|
|
- regex: '4009[DE][);/ ]'
|
|
model: 'One Touch Pixi 3 3.5" Dual SIM'
|
|
- regex: '(?:4003[AJ]|4013[DEJKMX]|4014[AEKMX]|4114E)[);/ ]'
|
|
model: 'One Touch Pixi 3 4"'
|
|
- regex: '(?:4027[ADNX]|4028[AEJS]|5019D)[);/ ]'
|
|
model: 'One Touch Pixi 3 4.5"'
|
|
- regex: '5017[ABDEOX][);/ ]'
|
|
model: 'One Touch Pixi 3 4.5" 4G'
|
|
- regex: '9002X[);/ ]'
|
|
model: 'One Touch Pixi 3 7"'
|
|
device: 'phablet'
|
|
- regex: '9007A[);/ ]'
|
|
model: 'One Touch Pixi 3 7"'
|
|
device: 'tablet'
|
|
- regex: '9007[TX][);/ ]'
|
|
model: 'One Touch Pixi 3 7" 4G'
|
|
device: 'tablet'
|
|
- regex: '9022X[);/ ]'
|
|
model: 'One Touch Pixi 3 8"'
|
|
device: 'phablet'
|
|
- regex: '9010X[);/ ]'
|
|
model: 'One Touch Pixi 3 10"'
|
|
device: 'tablet'
|
|
- regex: '4017[ADEFSX][);/ ]'
|
|
model: 'One Touch Pixi 4 3.5"'
|
|
- regex: '4034[ADEFGX][);/ ]'
|
|
model: 'One Touch Pixi 4 4"'
|
|
- regex: '4060[SW][);/ ]'
|
|
model: 'One Touch Pixi 4 4.5"'
|
|
- regex: '5023[EF][);/ ]'
|
|
model: 'One Touch Pixi 4 Plus Power'
|
|
- regex: '5010[DEGSUX][);/ ]'
|
|
model: 'One Touch Pixi 4 5" 3G'
|
|
- regex: '5012[DFG][);/ ]'
|
|
model: 'One Touch Pixi 4 5.5" 3G'
|
|
- regex: '(?:5045[ADFGIJTXY]|5145A)[);/ ]'
|
|
model: 'One Touch Pixi 4 5" 4G'
|
|
- regex: '5098O[);/ ]'
|
|
model: 'One Touch Pixi Theatre'
|
|
- regex: '5046[ADIJTUY][);/ ]'
|
|
model: 'A3'
|
|
- regex: '(?:5011A|5049[EG])[);/ ]'
|
|
model: 'A3 Plus'
|
|
- regex: '9008[ADIJNTUX]'
|
|
model: 'A3 XL'
|
|
- regex: '9203A[);/ ]'
|
|
model: 'A3 7" 3G'
|
|
device: 'tablet'
|
|
- regex: '5085[BQ][);/ ]'
|
|
model: 'A5'
|
|
- regex: '5085[ADHIJY][);/ ]'
|
|
model: 'A5 LED'
|
|
- regex: '5085N[);/ ]'
|
|
model: 'A5 Max LED'
|
|
- regex: '5090[AIY][);/ ]'
|
|
model: 'A7'
|
|
- regex: '5046[GS][);/ ]'
|
|
model: 'A30'
|
|
- regex: '5049S[);/ ]'
|
|
model: 'A30 Plus'
|
|
- regex: '5049Z[);/ ]'
|
|
model: 'A30 Fierce'
|
|
- regex: '5085[GO]'
|
|
model: 'A50'
|
|
- regex: '5049W[);/ ]'
|
|
model: 'Revvl'
|
|
- regex: '8050[GX][);/ ]'
|
|
model: 'One Touch Pixi 4 6" 3G'
|
|
- regex: '8050[ED][);/ ]'
|
|
model: 'One Touch Pixi 4 6" 3G Dual SIM'
|
|
- regex: '(?:5098S|9001[DIX])[);/ ]'
|
|
model: 'One Touch Pixi 4 6" 4G'
|
|
- regex: '9003[AX][);/ ]'
|
|
model: 'One Touch Pixi 4 7" 3G'
|
|
device: 'tablet'
|
|
- regex: 'I216X[);/ ]'
|
|
model: 'One Touch Pixi 7'
|
|
device: 'tablet'
|
|
- regex: 'I213[);/ ]'
|
|
model: 'One Touch Pixi 7'
|
|
device: 'tablet'
|
|
- regex: '9005X[);/ ]'
|
|
model: 'One Touch Pixi 8'
|
|
device: 'tablet'
|
|
- regex: 'P320X'
|
|
model: 'One Touch POP 8'
|
|
device: 'tablet'
|
|
- regex: 'P310X'
|
|
model: 'One Touch POP 7'
|
|
device: 'tablet'
|
|
- regex: '7048[ASWX][);/ ]'
|
|
model: 'One Touch Go Play'
|
|
- regex: '(?:Alcatel[ _])?One[ _]?Touch[ _]((?:T[0-9]+|TAB[^/;]+|EVO[78](?:HD)?)) Build'
|
|
device: 'tablet'
|
|
model: 'One Touch $1'
|
|
- regex: '(?:Alcatel[ _])?One[ _]?Touch([^/;]*) Build'
|
|
model: 'One Touch$1'
|
|
- regex: '(?:Alcatel[ _])?One[ _]?Touch([^/;\)]*)\)'
|
|
model: 'One Touch$1'
|
|
- regex: '5080[ADFQUX][);/ ]'
|
|
model: 'Shine Lite'
|
|
- regex: '5085C'
|
|
model: 'PulseMix'
|
|
- regex: '4049[DEGMX][);/ ]'
|
|
model: 'U3'
|
|
- regex: '5044[ADIKOPTY][);/ ]'
|
|
model: 'U5'
|
|
- regex: '4047[DFXN][);/ ]'
|
|
model: 'U5 3G'
|
|
- regex: '5047[DIUY][);/ ]'
|
|
model: 'U5 HD'
|
|
- regex: '4047G[);/ ]'
|
|
model: 'U5 Lite'
|
|
- regex: '4047A[);/ ]'
|
|
model: 'U5 Plus'
|
|
- regex: '5044[GS][);/ ]'
|
|
model: 'U50'
|
|
- regex: '5009[AD][);/ ]'
|
|
model: '1C'
|
|
- regex: '5059[ADXY][);/ ]'
|
|
model: '1X'
|
|
- regex: '5052D[);/ ]'
|
|
model: '3'
|
|
- regex: '5099[ADYUI][);/ ]'
|
|
model: '3V'
|
|
- regex: '5026[AD][);/ ]'
|
|
model: '3C'
|
|
- regex: '5058[AIY][);/ ]'
|
|
model: '3X'
|
|
- regex: '5086[ADY][);/ ]'
|
|
model: '5'
|
|
- regex: '6062W[);/ ]'
|
|
model: '7'
|
|
- regex: 'Alcatel UP'
|
|
model: ''
|
|
- regex: 'ALCATEL([^/;]+) Build'
|
|
model: '$1'
|
|
- regex: 'ALCATEL[ \-]?([^/;\)]+)'
|
|
model: '$1'
|
|
- regex: 'ALCATEL_([^/;\)]+)'
|
|
model: '$1'
|
|
- regex: 'Alc([a-z0-9]+)'
|
|
model: '$1'
|
|
|
|
# Allview
|
|
Allview:
|
|
regex: 'Allview|P[567]_Lite(?:_TM)?|P5_Energy|P6_Energy_(?:Lite|Mini)|X2_Soul_Xtreme|A5_(?:Easy|Ready|Quad_Plus_TM)|A6_Duo|A[89]_Lite'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'P([567])_Lite(?:_TM)?'
|
|
model: 'P$1 Lite'
|
|
- regex: 'P5_Energy'
|
|
model: 'P5 Energy'
|
|
- regex: 'P6_Energy_Lite'
|
|
model: 'P6 Energy Lite'
|
|
- regex: 'P6_Energy_mini'
|
|
model: 'P6 Energy Mini'
|
|
- regex: 'X2_Soul_Xtreme'
|
|
model: 'X2 Soul Xtreme'
|
|
- regex: 'A5_Easy'
|
|
model: 'A5 Easy'
|
|
- regex: 'A5_Ready'
|
|
model: 'A5 Ready'
|
|
- regex: 'A5_Quad_Plus_TM'
|
|
model: 'A5 Quad Plus'
|
|
- regex: 'A6_Duo'
|
|
model: 'A6 Duo'
|
|
- regex: 'A8_Lite'
|
|
model: 'A8 Lite'
|
|
- regex: 'A9_Lite'
|
|
model: 'A9 Lite'
|
|
- regex: 'Allview[ _-]([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'Allview[ _-]([^;/]+)[;/)]'
|
|
model: '$1'
|
|
|
|
# Amoi
|
|
Amoi:
|
|
regex: 'Amoi|A862W'
|
|
device: 'smartphone'
|
|
models:
|
|
# explicit smartphone models
|
|
- regex: 'A862W'
|
|
model: 'A862W'
|
|
|
|
- regex: 'Amoi[\- /]([a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: 'Amoisonic-([a-z0-9]+)'
|
|
model: '$1'
|
|
|
|
# Ainol
|
|
Ainol:
|
|
regex: 'Numy|novo[0-9]'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'Numy[ _]([^;/]+) Build'
|
|
model: 'Numy $1'
|
|
- regex: 'Novo([0-9]+)[ \-]([^;/]+) Build'
|
|
model: 'Novo $1 $2'
|
|
|
|
# Archos
|
|
Archos:
|
|
regex: 'Archos'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Archos ?5[);/ ]'
|
|
device: 'tablet'
|
|
model: '5'
|
|
- regex: 'Archos ([^/;]*(?:PAD)[^/;]*) Build'
|
|
device: 'tablet'
|
|
model: '$1'
|
|
- regex: 'Archos ((?:[789]|10)[0-9]?[a-z]* ?(?:G9|G10|Helium|Titanium|Cobalt|Platinum|Xenon|Carbon|Neon|XS|IT)[^/;]*) Build'
|
|
device: 'tablet'
|
|
model: '$1'
|
|
- regex: 'Archos ([a-z0-9 ]+) Build'
|
|
model: '$1'
|
|
- regex: 'Archos ([a-z0-9]+)'
|
|
model: '$1'
|
|
|
|
# Axxion
|
|
Axxion:
|
|
regex: 'Axxion ATAB-[0-9]+[);/ ]'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'Axxion ATAB-([0-9]+)[);/ ]'
|
|
model: 'ATAB-$1'
|
|
|
|
# Meu
|
|
MEU:
|
|
regex: 'MEU ([a-z0-9]+) Build'
|
|
device: 'smartphone'
|
|
model: '$1'
|
|
|
|
# Arnova
|
|
Arnova:
|
|
regex: 'arnova|ARCHM901|AN7CG2|AN7G2(DTE|I)?|AN7[BCDFH]?G3|A80KSC|AN8G2|AN8[BC]?G3|AN9G2I?|AN9G3|A101[BC]|AN10G2|AN10BG2(DT|I)?|AN10BG3(DT)?|AN10[CD]G3'
|
|
device: 'tablet'
|
|
models:
|
|
# explicit tablet models
|
|
- regex: 'ARCHM901'
|
|
model: 'M901'
|
|
- regex: 'AN7CG2'
|
|
model: '7c G2'
|
|
- regex: 'AN7G2I|AN7G2|AN7G2DTE'
|
|
model: '7 G2'
|
|
- regex: 'AN7G3'
|
|
model: '7 G3'
|
|
- regex: 'AN7BG3'
|
|
model: '7b G3'
|
|
- regex: 'AN7CG3'
|
|
model: '7c G3'
|
|
- regex: 'AN7DG3-CP'
|
|
model: 'Childpad'
|
|
- regex: 'AN7DG3'
|
|
model: '7d G3'
|
|
- regex: 'AN7FG3'
|
|
model: '7f G3'
|
|
- regex: 'AN7HG3'
|
|
model: '7h G3'
|
|
- regex: 'A80KSC'
|
|
model: '8'
|
|
- regex: 'AN8G2'
|
|
model: '8 G2'
|
|
- regex: 'AN8G3'
|
|
model: '8 G3'
|
|
- regex: 'AN8BG3'
|
|
model: '8b G3'
|
|
- regex: 'AN8CG3'
|
|
model: '8c G3'
|
|
- regex: 'AN9G2I'
|
|
model: '9i G2'
|
|
- regex: 'AN9G2'
|
|
model: '9 G2'
|
|
- regex: 'AN9G3'
|
|
model: '9 G3'
|
|
- regex: 'A101B2|A101C|AN10G2'
|
|
model: '10 G2'
|
|
- regex: 'A101B'
|
|
model: '10'
|
|
- regex: 'AN10BG2|AN10BG2DT|AN10BG2I'
|
|
model: '10b G2'
|
|
- regex: 'AN10BG3|AN10BG3DT|AN10BG3-LZ'
|
|
model: '10b G3'
|
|
- regex: 'AN10CG3'
|
|
model: '10c G3'
|
|
- regex: 'AN10DG3'
|
|
model: '10d G3'
|
|
- regex: 'ARNOVA 90G3'
|
|
model: '90 G3'
|
|
- regex: 'ARNOVA 90 G4'
|
|
model: '90 G4'
|
|
- regex: 'ARNOVA 97G4'
|
|
model: '97 G4'
|
|
- regex: 'ARNOVA 101 G4'
|
|
model: '101 G4'
|
|
|
|
- regex: 'Arnova ([^/;]*) Build'
|
|
model: '$1'
|
|
|
|
# ARRIS
|
|
ARRIS:
|
|
regex: 'ARRIS'
|
|
device: 'tv'
|
|
models:
|
|
- regex: 'ARRIS[,;] ([^),;/]+)'
|
|
model: '$1'
|
|
|
|
# Garmin-Asus
|
|
Garmin-Asus:
|
|
regex: 'Garmin-Asus|Garminfone'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Garminfone[ \-_]([^;/]*)Build'
|
|
model: 'Garminfone $1'
|
|
- regex: 'Garmin-Asus[ \-_]([^;/]+)Build'
|
|
model: '$1'
|
|
- regex: 'Garmin-Asus[ \-_]([^;/]+)[\)/]'
|
|
model: '$1'
|
|
|
|
# Asus
|
|
Asus:
|
|
regex: 'Asus|Transformer|TF300T|Slider SL101|PadFone|ME302(?:C|KL)|ME301T|ME371MG|ME17(?:1|2V|3X)|(?:K0[01][0-9a-z]|P(?:008|024|027) Build|X018D|X003|X00[7ABT]D|Z00D|Z00[MY]D|Z01[7FHMR]D)[);/ ]|ZB(602|555)KL|ZC553KL|ZA550KL|ZE(520|620|55[2345])KL'
|
|
device: 'smartphone'
|
|
models:
|
|
# explicit tablet models
|
|
- regex: 'ME171[);/ ]'
|
|
model: 'Eee Pad MeMO 171'
|
|
device: 'tablet'
|
|
- regex: 'ME172V'
|
|
model: 'MeMO Pad'
|
|
device: 'tablet'
|
|
- regex: 'ME302C[);/ ]'
|
|
model: 'MeMO Pad FHD 10'
|
|
device: 'tablet'
|
|
- regex: 'ME302KL[);/ ]'
|
|
model: 'MeMO Pad FHD 10 LTE'
|
|
device: 'tablet'
|
|
- regex: 'ME301T[);/ ]'
|
|
model: 'MeMO Pad Smart 10'
|
|
device: 'tablet'
|
|
- regex: '(?:K01[3A]|K007|K00R)[);/ ]'
|
|
model: 'MeMO Pad 7'
|
|
device: 'tablet'
|
|
- regex: 'K01E[);/ ]'
|
|
model: 'MeMO Pad 10 ME103K'
|
|
device: 'tablet'
|
|
- regex: 'K00U|ME173X[);/ ]'
|
|
model: 'MeMO Pad HD 7'
|
|
device: 'tablet'
|
|
- regex: '(?:K011|K00L)[);/ ]'
|
|
model: 'MeMO Pad 8'
|
|
device: 'tablet'
|
|
- regex: 'K014[);/ ]'
|
|
model: 'MeMO Pad 8.9'
|
|
device: 'tablet'
|
|
- regex: 'K00S[);/ ]'
|
|
model: 'MeMO Pad HD 7 Dual SIM'
|
|
device: 'tablet'
|
|
- regex: 'K00F[);/ ]'
|
|
model: 'MeMO Pad 10'
|
|
device: 'tablet'
|
|
- regex: 'K00C[);/ ]'
|
|
model: 'Transformer Pad TF701T'
|
|
device: 'tablet'
|
|
- regex: 'K010[);/ ]'
|
|
model: 'Transformer Pad TF103C'
|
|
device: 'tablet'
|
|
- regex: 'K018[);/ ]'
|
|
model: 'Transformer Pad TF103CG'
|
|
device: 'tablet'
|
|
- regex: 'TF300T[);/ ]'
|
|
model: 'Transformer Pad TF300T'
|
|
device: 'tablet'
|
|
- regex: 'K01B[);/ ]'
|
|
model: 'Transformer Pad TF303K'
|
|
device: 'tablet'
|
|
- regex: 'Slider SL101'
|
|
model: 'Eee Pad Slider SL101'
|
|
device: 'tablet'
|
|
- regex: 'P008 Build'
|
|
model: 'ZenPad Z8'
|
|
device: 'tablet'
|
|
- regex: 'P024 Build'
|
|
model: 'ZenPad 8.0'
|
|
device: 'tablet'
|
|
- regex: 'P027 Build'
|
|
model: 'ZenPad 3S 10'
|
|
device: 'tablet'
|
|
|
|
# explicit phablet models
|
|
- regex: 'ME371MG[);/ ]'
|
|
model: 'Fonepad'
|
|
device: 'phablet'
|
|
- regex: 'K00G[);/ ]'
|
|
model: 'Fonepad Note 6'
|
|
device: 'phablet'
|
|
- regex: '(?:K012|K00E)[);/ ]'
|
|
model: 'Fonepad 7'
|
|
device: 'phablet'
|
|
- regex: 'K00Z[);/ ]'
|
|
model: 'Fonepad 7 Dual SIM'
|
|
device: 'phablet'
|
|
- regex: 'K016[);/ ]'
|
|
model: 'Fonepad 8'
|
|
device: 'phablet'
|
|
|
|
# explicit smartphone models
|
|
- regex: '(?:ASUS_)?Z007'
|
|
model: 'ZenFone C'
|
|
- regex: '(?:ASUS_)?ZB555KL'
|
|
model: 'ZenFone Max M1'
|
|
- regex: '(?:ASUS_)?(?:Z00D|Z008D|Z00AD[AB]?)'
|
|
model: 'ZenFone 2'
|
|
- regex: '(?:ASUS_)?A007|ZA550KL'
|
|
model: 'ZenFone Live'
|
|
- regex: '(?:ASUS_)Z00YD'
|
|
model: 'Live'
|
|
- regex: '(?:ASUS_)?(?:Z00[ERLM]D|Z011D)'
|
|
model: 'ZenFone 2 Laser'
|
|
- regex: '(?:ASUS_)?T00[IQ1]'
|
|
model: 'ZenFone 4'
|
|
- regex: '(?:ASUS_)?(?:T00[JF]|X00QD|ZE620KL)'
|
|
model: 'ZenFone 5'
|
|
- regex: '(?:ASUS_)?T00P'
|
|
model: 'ZenFone 5 LTE'
|
|
- regex: '(?:ASUS_)?T00K'
|
|
model: 'ZenFone 5 Lite'
|
|
- regex: '(?:ASUS_)?Z01RD'
|
|
model: 'ZenFone 5Z'
|
|
- regex: '(?:ASUS_)?(?:T00G|Z002)'
|
|
model: 'ZenFone 6'
|
|
- regex: '(?:ASUS_)?Z010D'
|
|
model: 'ZenFone Max'
|
|
- regex: '(?:ASUS_)?X018D'
|
|
model: 'ZenFone Max Plus M1'
|
|
- regex: '(?:ASUS_)?X00TD'
|
|
model: 'ZenFone Max Pro M1'
|
|
- regex: '(?:ASUS_)?X014D'
|
|
model: 'ZenFone Go Plus'
|
|
- regex: '(?:ASUS_)?(X00[7AB]D|Z00[SV]D|X009[DB][DA])'
|
|
model: 'ZenFone Go'
|
|
- regex: '(?:ASUS_)?X013D'
|
|
model: 'ZenFone Go Life'
|
|
- regex: '(?:ASUS_)?(X003)'
|
|
model: 'ZenFone Pegasus'
|
|
- regex: '(?:ASUS_)?(X008)'
|
|
model: 'ZenFone 3 Pegasus'
|
|
- regex: '(?:ASUS_)?(ZE553KL|Z01HD)'
|
|
model: 'ZenFone 3 Zoom'
|
|
- regex: '(?:ASUS_)?Z00UD'
|
|
model: 'ZenFone Selfie'
|
|
- regex: '(?:ASUS_)?Z01FD'
|
|
model: 'ZenFone 3 Deluxe'
|
|
- regex: '(?:ASUS_)?(Z017DA|ZE520KL|ZE552KL|Z017D|Z012D)'
|
|
model: 'ZenFone 3'
|
|
- regex: '(?:ASUS_)?Z01BD'
|
|
model: 'ZenFone 3 Laser'
|
|
- regex: '(?:ASUS_)?X00DD|ZC553KL'
|
|
model: 'ZenFone 3 Max'
|
|
- regex: '(?:ASUS_)?(X00LDA|Z01MD)'
|
|
model: 'ZenFone 4 Selfie'
|
|
- regex: '(?:ASUS_)?(?:X00LD|Z01KDA|ZE554KL)'
|
|
model: 'ZenFone 4'
|
|
- regex: '(?:ASUS_)?X00[IH]D'
|
|
model: 'ZenFone 4 Max'
|
|
- regex: '(?:ASUS_)?ZB602KL'
|
|
model: 'ZenFone Max Pro'
|
|
|
|
# general detections
|
|
- regex: 'Asus(?:-|;)?([a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: '(PadFone(?: [^;/]+)?) Build'
|
|
model: '$1'
|
|
- regex: '(PadFone(?: [a-z0-9]+)?)'
|
|
model: '$1'
|
|
- regex: '(?:Asus|Transformer) ((?:Pad |Prime )?TF[0-9a-z]+)'
|
|
device: 'tablet'
|
|
model: 'Transformer $1'
|
|
- regex: 'Chromebook Flip C100PA'
|
|
device: 'tablet'
|
|
model: 'Chromebook Flip C100PA'
|
|
|
|
# Audiovox
|
|
Audiovox:
|
|
regex: 'Audiovox|CDM|UTS(?:TARCOM)?\-|audio[a-z0-9\-]+'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Audiovox[_\-]([a-z0-9\-]+)'
|
|
model: '$1'
|
|
- regex: 'CDM(?:-)?([a-z0-9]+)'
|
|
model: 'CDM-$1'
|
|
- regex: 'UTS(?:TARCOM)?-([a-z0-9\-]+)'
|
|
model: 'CDM-$1'
|
|
- regex: 'audio([a-z0-9\-]+)'
|
|
model: 'CDM-$1'
|
|
|
|
# Avvio
|
|
Avvio:
|
|
regex: 'Avvio[ _]([a-z0-9\-]+)'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Avvio[ _]PAD'
|
|
model: 'PAD'
|
|
device: 'tablet'
|
|
- regex: 'Avvio[ _]([a-z0-9\-]+)'
|
|
model: '$1'
|
|
|
|
# Azumi Mobile
|
|
"Azumi Mobile":
|
|
regex: 'Azumi[_ ]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Azumi[_ ]([^/;]+) Build'
|
|
model: '$1'
|
|
- regex: 'Azumi[_ ]([a-z0-9_]+)'
|
|
model: '$1'
|
|
|
|
#Barnes & Noble
|
|
'Barnes & Noble':
|
|
regex: 'Nook|BN[TR]V[0-9]+'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'Nook([a-z0-9]+)'
|
|
model: 'Nook $1'
|
|
- regex: 'Nook[ _]([^/;]+)[ _]Build'
|
|
model: 'Nook $1'
|
|
- regex: '(BN[TR]V[0-9]+)'
|
|
model: 'Nook $1'
|
|
|
|
# BGH
|
|
BGH:
|
|
regex: '(?<!Positivo )BGH ([^/;]+) Build'
|
|
device: 'smartphone'
|
|
model: '$1'
|
|
|
|
# Bitel
|
|
Bitel:
|
|
regex: 'Bitel[ _-]([^/;]+) Build|B8604|B9501'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'B8604'
|
|
model: 'B8604'
|
|
- regex: 'B9501'
|
|
model: 'B9501'
|
|
- regex: 'Bitel[ _-]([^/;]+) Build'
|
|
model: '$1'
|
|
|
|
# Blu
|
|
Blu:
|
|
regex: '(?:blu|Dash)[ _]([^/;]+) Build|STUDIO 5.5|Studio View XL'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Studio View XL'
|
|
model: 'Studio View XL'
|
|
- regex: 'STUDIO 5.5'
|
|
model: 'Studio 5.5'
|
|
- regex: 'DASH[ _]([^/;]+) Build'
|
|
model: 'Dash $1'
|
|
- regex: 'blu[ _]([^/;]+) Build'
|
|
model: '$1'
|
|
|
|
# Blackview
|
|
Blackview:
|
|
regex: '(BV[2567]000(?:[ _](?:PRO))?|omega[ _]pro|Alife[ _][PS]1|Heatwave|DM550)[ _]Build'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: '(BV[2567]000(?:[ _](?:PRO))?)[ _]Build'
|
|
model: '$1'
|
|
- regex: 'omega[ _]pro'
|
|
model: 'Omega Pro'
|
|
- regex: '(Alife[ _][PS]1|DM550|Heatwave)'
|
|
model: '$1'
|
|
|
|
# Bluboo
|
|
Bluboo:
|
|
regex: 'Bluboo|Xfire|Maya Build'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Maya Build'
|
|
model: 'Maya'
|
|
- regex: 'Xfire2'
|
|
model: 'Xfire 2'
|
|
- regex: 'Xfire'
|
|
model: 'Xfire'
|
|
- regex: 'Bluboo[ _-]?([^;/)]+) Build'
|
|
model: '$1'
|
|
- regex: 'Bluboo[ _-]?([^;/)]+)'
|
|
model: '$1'
|
|
|
|
# Boway
|
|
Boway:
|
|
regex: '(?:sprd-)?(BOWAY)'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'BOWAY[ _-]([^/;]+)[ _]Build'
|
|
model: '$1'
|
|
- regex: '([^/;]+) Build/BOWAY'
|
|
model: '$1'
|
|
- regex: '.*BOWAY[ _-]([^/;]+)/'
|
|
model: '$1'
|
|
|
|
# Brondi
|
|
Brondi:
|
|
regex: '(?:CENTURION|GLADIATOR| GLORY|LUXURY|SENSUELLE|VICTORY)(?:[ _-]?[2-6])?[);/ ]|Surfing Tab'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'CENTURION(?:[ _-]?([2-6]))?[);/ ]'
|
|
model: 'CENTURION $1'
|
|
- regex: 'GLADIATOR(?:[ _-]?([2-6]))?[);/ ]'
|
|
model: 'GLADIATOR $1'
|
|
- regex: 'GLORY(?:[ _-]?([2-6]))?[);/ ]'
|
|
model: 'GLORY $1'
|
|
- regex: 'LUXURY(?:[ _-]?([2-6]))?[);/ ]'
|
|
model: 'LUXURY $1'
|
|
- regex: 'SENSUELLE(?:[ _-]?([2-6]))?[);/ ]'
|
|
model: 'SENSUELLE $1'
|
|
- regex: 'VICTORY(?:[ _-]?([2-6]))?[);/ ]'
|
|
model: 'VICTORY $1'
|
|
|
|
- regex: 'Surfing Tab ([^;/]+) Build'
|
|
model: 'SURFING TAB $1'
|
|
device: 'tablet'
|
|
- regex: 'Surfing Tab ([^;/]+)[);/ ]'
|
|
model: 'SURFING TAB $1'
|
|
device: 'tablet'
|
|
|
|
# Vivo
|
|
Vivo:
|
|
regex: '(?:VIV-|BBG-)?vivo'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: '(?:VIV-|BBG-)?vivo[ _]1601 Build'
|
|
model: 'V5'
|
|
- regex: '(?:VIV-|BBG-)?vivo[ _]([^/;]+) Build'
|
|
model: '$1'
|
|
- regex: '(?:VIV-|BBG-)?vivo[ _]([^);/]+)[);/]+'
|
|
model: '$1'
|
|
|
|
# Vinsoc
|
|
Vinsoc:
|
|
regex: '(XA Pro) Build'
|
|
device: 'smartphone'
|
|
model: '$1'
|
|
|
|
# Bird
|
|
Bird:
|
|
regex: 'BIRD[\-. _]([^;/]+)'
|
|
device: 'feature phone'
|
|
models:
|
|
- regex: 'BIRD[\-. _]([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'BIRD[\-. _]([^;/]+)'
|
|
model: '$1'
|
|
|
|
# Becker
|
|
Becker:
|
|
regex: 'Becker-([a-z0-9]+)'
|
|
device: 'feature phone'
|
|
model: '$1'
|
|
|
|
# Beetel
|
|
Beetel:
|
|
regex: 'Beetel ([a-z0-9]+)'
|
|
device: 'feature phone'
|
|
model: '$1'
|
|
|
|
# BenQ-Siemens
|
|
BenQ-Siemens:
|
|
regex: 'BENQ-SIEMENS - ([a-z0-9]+)'
|
|
device: 'feature phone'
|
|
model: '$1'
|
|
|
|
# BenQ
|
|
BenQ:
|
|
regex: 'BENQ(?:[ \-])?([a-z0-9]+)'
|
|
device: 'feature phone'
|
|
model: '$1'
|
|
|
|
# Blaupunkt
|
|
Blaupunkt:
|
|
regex: 'Atlantis[_ ](?:1001A|1010A|A10\.G402)|Discovery[_ ](?:111C|1000C|1001A?)|Endeavour[_ ](?:785|101[GLM]|1000|1001|101[03]|1100)|Polaris[_ ]803'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'Discovery[_ ]111C'
|
|
model: 'Discovery 111C'
|
|
- regex: 'Discovery[_ ]1000C'
|
|
model: 'Discovery 1000C'
|
|
- regex: 'Discovery[_ ]1001A'
|
|
model: 'Discovery 1001A'
|
|
- regex: 'Discovery[_ ]1001'
|
|
model: 'Discovery 1001'
|
|
- regex: 'Endeavour[_ ](101[GLM]|785|100[01]|101[03]|1100)'
|
|
model: 'Endeavour $1'
|
|
- regex: 'Polaris[_ ](803)'
|
|
model: 'Polaris $1'
|
|
- regex: 'Atlantis[_ ](1001A|1010A|A10\.G402)'
|
|
model: 'Atlantis $1'
|
|
|
|
# Bmobile
|
|
Bmobile:
|
|
regex: 'Bmobile[_ ]|AX-?([1-9][0-9]{2,3}[eEO+]?|7OO)'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'AX-?([1-9][0-9]{2,3}[eEO+]?)'
|
|
model: 'AX$1'
|
|
- regex: 'AX7OO'
|
|
model: 'AX700'
|
|
- regex: 'Bmobile[_ ]([^/;]+) Build'
|
|
model: '$1'
|
|
- regex: 'Bmobile[_ ]([a-z0-9]+)'
|
|
model: '$1'
|
|
|
|
# bq
|
|
bq:
|
|
regex: 'Aquaris|bq [^/;]+ Build|BQS-4007'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'BQS-4007'
|
|
device: 'smartphone'
|
|
model: 'Valencia'
|
|
|
|
- regex: '(?:bq )?(Aquaris[^/;]*) Build'
|
|
model: '$1'
|
|
device: 'smartphone'
|
|
- regex: 'bq ([^/;]+) Build'
|
|
model: '$1'
|
|
|
|
# Bush
|
|
Bush:
|
|
regex: 'Bush[ _-]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'BUSH ([^;/]+)Tablet Build'
|
|
model: '$1Tablet'
|
|
device: 'tablet'
|
|
- regex: 'BUSH ([^;/]+) Build'
|
|
model: '$1'
|
|
|
|
# Capitel
|
|
Capitel:
|
|
regex: 'Capitel-([a-z0-9]+)'
|
|
device: 'feature phone'
|
|
model: '$1'
|
|
|
|
# Captiva
|
|
Captiva:
|
|
regex: 'Captiva[ _-]([^;/]+) Build'
|
|
device: 'tablet'
|
|
model: 'Pad $1'
|
|
|
|
# Casio
|
|
Casio:
|
|
regex: '(C811|C7[57]1)(?: 4G)?[);/ ]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'C751[);/ ]'
|
|
model: "G'zOne Ravine"
|
|
- regex: 'C771[);/ ]'
|
|
model: "G'zOne Commando"
|
|
- regex: 'C811 4G[);/ ]'
|
|
model: "G'zOne Commando 4G LTE"
|
|
|
|
# Cat
|
|
Cat:
|
|
regex: 'Cat ?(tablet|stargate|nova)|B15Q'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'B15Q'
|
|
model: 'B15Q'
|
|
device: 'smartphone'
|
|
- regex: 'Cat ?(?:tablet)? ?((?:Galactica|Nova|StarGate|PHOENIX)[^/;]*) Build'
|
|
model: '$1'
|
|
- regex: 'Cat ?tablet'
|
|
model: 'Nova'
|
|
|
|
# Carrefour
|
|
Carrefour:
|
|
regex: 'CT(?:10[0123]0|7[12]0|820)(?:W|FR)?[);/ ]'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'CT820'
|
|
model: 'Touch Tablet Neo2'
|
|
- regex: 'CT(10[0123]0(?:W|FR)?)'
|
|
model: 'CT$1'
|
|
- regex: 'CT(7[12]0(?:W|FR)?)'
|
|
model: 'CT$1'
|
|
|
|
# Celkon
|
|
Celkon:
|
|
regex: 'Celkon'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Celkon[ _*](C[78]20)'
|
|
model: '$1'
|
|
device: 'tablet'
|
|
- regex: 'Celkon[ _*](CT[^;/]+) Build'
|
|
model: '$1'
|
|
device: 'tablet'
|
|
- regex: 'Celkon[ _*]([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'Celkon[\. _*]([^;/\)]+)[\)/]'
|
|
model: '$1'
|
|
|
|
# Changhong
|
|
Changhong:
|
|
regex: 'Changhong'
|
|
device: 'tv'
|
|
models:
|
|
- regex: 'Changhong-([^);/]+)'
|
|
model: '$1'
|
|
|
|
# Cherry Mobile
|
|
'Cherry Mobile':
|
|
regex: 'Cherry|Flare2X|Fusion Bolt'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Cherry(?: ?Mobile)?[ _]?([^/;]+) Build'
|
|
model: '$1'
|
|
- regex: '(Flare2X)'
|
|
model: '$1'
|
|
- regex: '(Fusion Bolt)'
|
|
model: '$1'
|
|
device: 'tablet'
|
|
|
|
# China Mobile
|
|
'China Mobile':
|
|
regex: '(M812C|1501_M02|9930i|A1303|A309W|M651CY) Build'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'M651CY'
|
|
model: 'A3'
|
|
- regex: '(M812C|1501_M02|9930i|A1303|A309W)'
|
|
model: '$1'
|
|
|
|
# Comio
|
|
Comio:
|
|
regex: 'Comio|CT701G PLUS|CT701W|GT100'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'GT100'
|
|
model: 'GT100'
|
|
device: 'tablet'
|
|
- regex: 'CT701W'
|
|
model: 'CT701W'
|
|
device: 'tablet'
|
|
- regex: 'CT701G PLUS'
|
|
model: 'CT701G Plus'
|
|
device: 'tablet'
|
|
|
|
- regex: 'Comio[ _-]?([^;/)]+) Build'
|
|
model: '$1'
|
|
- regex: 'Comio[ _-]?([^;/)]+)'
|
|
model: '$1'
|
|
|
|
# Compal
|
|
Compal:
|
|
regex: 'Compal-[a-z0-9]+'
|
|
device: 'feature phone'
|
|
model: '$1'
|
|
|
|
# ComTrade Tesla
|
|
ComTrade Tesla:
|
|
regex: 'Tesla|Impulse 7.85 3G|Smartphone_6.1|SP(?:6.2|6.2_Lite)|TTL(?:713G|8)'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'TeslaEvo5.0'
|
|
model: 'Evo 5.0'
|
|
- regex: '(Gravity 9.7 SHD)'
|
|
model: '$1'
|
|
device: 'tablet'
|
|
- regex: '(Impulse 7.85 3G)'
|
|
model: '$1'
|
|
device: 'tablet'
|
|
- regex: 'Tesla_SP([^/;]+)L Build'
|
|
model: 'Smartphone $1 Lite'
|
|
- regex: 'Smartphone_6.1'
|
|
model: 'Smartphone 6.1'
|
|
- regex: 'SP6.2_Lite'
|
|
model: 'Smartphone 6.2 Lite'
|
|
- regex: 'Tesla_SP([^/;]+) Build'
|
|
model: 'Smartphone $1'
|
|
- regex: 'SP([^/;]+) Build'
|
|
model: 'Smartphone $1'
|
|
- regex: 'Smartphone ([36])'
|
|
model: 'Smartphone $1'
|
|
- regex: 'Tesla_Tablet_785'
|
|
model: '7.85"'
|
|
device: 'tablet'
|
|
- regex: 'TTH7'
|
|
model: 'H7'
|
|
device: 'tablet'
|
|
- regex: 'TTL7 Build'
|
|
model: 'L7'
|
|
device: 'tablet'
|
|
- regex: 'Tesla_Tablet_L7_3G'
|
|
model: 'L7 3G'
|
|
device: 'tablet'
|
|
- regex: '(L7.1)'
|
|
model: '$1'
|
|
device: 'tablet'
|
|
- regex: 'TTL713G'
|
|
model: 'L7.1 3G'
|
|
device: 'tablet'
|
|
- regex: '(L7 Quad) Build'
|
|
model: '$1'
|
|
device: 'tablet'
|
|
- regex: '(L7 Quad Lite)'
|
|
model: '$1'
|
|
device: 'tablet'
|
|
- regex: 'TTL8 Build'
|
|
model: 'L8'
|
|
device: 'tablet'
|
|
- regex: '(L8.1)'
|
|
model: '$1'
|
|
device: 'tablet'
|
|
- regex: 'TESLA_TABLET_M7'
|
|
model: 'M7'
|
|
device: 'tablet'
|
|
- regex: 'Tesla_Tablet_M8'
|
|
model: 'M8'
|
|
device: 'tablet'
|
|
|
|
# ConCorde
|
|
ConCorde:
|
|
regex: 'ConCorde ([^/;]+) Build'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'ConCorde Tab ?([^/;]+) Build'
|
|
model: 'Tab $1'
|
|
device: 'tablet'
|
|
- regex: 'ConCorde ReadMan ?([^/;]+) Build'
|
|
model: 'ReadMan $1'
|
|
device: 'tablet'
|
|
- regex: 'ConCorde ([^/;]+) Build'
|
|
model: '$1'
|
|
|
|
# Condor
|
|
Condor:
|
|
regex: '(?:PGN\-?[456][012][0-9]|PHS\-601|Plume L1)[;/) ]|CTAB[^/;]+ Build'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'CTAB([^/;]+) Build'
|
|
device: 'tablet'
|
|
model: 'CTAB $1'
|
|
|
|
- regex: 'PHS\-601'
|
|
model: 'C8'
|
|
- regex: 'PGN\-?403'
|
|
model: 'C4+ Noir'
|
|
- regex: 'PGN\-?404'
|
|
model: 'C7 Mini'
|
|
- regex: 'PGN\-?409'
|
|
model: 'Plume P4'
|
|
- regex: 'PGN\-?504'
|
|
model: 'C5'
|
|
- regex: 'PGN\-?505'
|
|
model: 'C8S'
|
|
- regex: 'PGN\-?506'
|
|
model: 'C7'
|
|
- regex: 'PGN\-?507'
|
|
model: 'Allure A9'
|
|
- regex: 'PGN\-?508'
|
|
model: 'C6+'
|
|
- regex: 'PGN\-?509'
|
|
model: 'C6 Pro'
|
|
- regex: 'PGN\-?511'
|
|
model: 'Allure A9 Plus'
|
|
- regex: 'PGN\-?513'
|
|
model: 'Griffe G4'
|
|
- regex: 'PGN\-?514'
|
|
model: 'Plume P7'
|
|
- regex: 'PGN\-?515'
|
|
model: 'Plume P4 Pro'
|
|
- regex: 'PGN\-?516'
|
|
model: 'Plume P5'
|
|
- regex: 'PGN\-?51[78]'
|
|
model: 'Plume P6'
|
|
- regex: 'PGN\-?521'
|
|
model: 'Griffe G4 Plus'
|
|
- regex: 'PGN\-?522'
|
|
model: 'P6 Plus'
|
|
- regex: 'PGN\-?523'
|
|
model: 'P7 Plus'
|
|
- regex: 'PGN\-?527'
|
|
model: 'Plume P4 Plus'
|
|
- regex: 'PGN\-?528'
|
|
model: 'Plume P6 Pro Lte'
|
|
- regex: 'PGN\-?605'
|
|
model: 'Plume P8'
|
|
- regex: 'PGN\-?606'
|
|
model: 'Allure A55'
|
|
- regex: 'PGN\-?607'
|
|
model: 'Allure A100'
|
|
- regex: 'PGN\-?608'
|
|
model: 'Allure A55 Slim'
|
|
- regex: 'PGN\-?609'
|
|
model: 'Allure A100 Lite'
|
|
- regex: 'PGN\-?610'
|
|
model: 'Plume P8 Lite'
|
|
- regex: 'PGN\-?611'
|
|
model: 'Allure A8'
|
|
- regex: 'PGN\-?612'
|
|
model: 'Allure A8 Plus'
|
|
- regex: 'PGN\-?613'
|
|
model: 'Allure A55 Plus'
|
|
|
|
- regex: 'Plume L1'
|
|
model: 'Plume L1'
|
|
|
|
- regex: 'PGN\-?([0-9]{3})'
|
|
model: 'PGN-$1'
|
|
|
|
# Coolpad
|
|
Coolpad:
|
|
regex: '(?:YL-)?Coolpad|8190Q[ ;/\)]|(8295|5860S) Build|CP8676_I0[23] Build|CP8298_I00 Build|REVVLPLUS C3701A|VCR-I0'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'VCR-I0'
|
|
model: 'Cool Play 6'
|
|
- regex: 'REVVLPLUS C3701A'
|
|
model: 'REVVL Plus'
|
|
device: 'phablet'
|
|
- regex: '8190Q[ ;/\)]'
|
|
model: '8190Q'
|
|
- regex: '(5860S|8295) Build'
|
|
model: '$1'
|
|
- regex: 'CP8676_I02 Build'
|
|
model: 'Note 3'
|
|
- regex: 'CP8676_I03 Build'
|
|
model: 'Note 3 Plus'
|
|
- regex: 'CP8298_I00 Build'
|
|
model: 'Note 3 Lite'
|
|
- regex: '(?:YL-)?Coolpad[ _\-]?([^/;]+) Build'
|
|
model: '$1'
|
|
- regex: '(?:YL-)?Coolpad[ _\-]?([a-z0-9\-]+)'
|
|
model: '$1'
|
|
|
|
# Cricket
|
|
Cricket:
|
|
regex: 'Cricket-([a-z0-9]+)'
|
|
device: 'feature phone'
|
|
model: '$1'
|
|
|
|
# Crius
|
|
'Crius Mea':
|
|
regex: '(Q7A\+?)[);/ ]'
|
|
device: 'tablet'
|
|
model: '$1'
|
|
|
|
# Crosscall
|
|
Crosscall:
|
|
regex: 'Crosscall|ODYSSEY_Plus|Odyssey S1|Trekker-[MSX][123]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Crosscall ([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'ODYSSEY_Plus'
|
|
model: 'ODYSSEY+'
|
|
- regex: 'Odyssey S1'
|
|
model: 'ODYSSEY S1'
|
|
- regex: 'Trekker-([MSX][123](?: Core)?)'
|
|
model: 'Trekker-$1'
|
|
|
|
# Cube
|
|
Cube:
|
|
regex: '(<!myPhone ?)Cube|(U[0-9]+GT|K8GT)'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'U27GT'
|
|
model: 'Talk 8'
|
|
- regex: 'U55GT'
|
|
model: 'Talk 79'
|
|
- regex: 'U65GT'
|
|
model: 'Talk 9X'
|
|
|
|
- regex: '(U[0-9]+GT[^;/]*) Build'
|
|
model: '$1'
|
|
- regex: '(U[0-9]+GT(?:[0-9]|[\-_][a-z]+)?)'
|
|
model: '$1'
|
|
- regex: '(K8GT)'
|
|
model: '$1'
|
|
|
|
# CUBOT
|
|
CUBOT:
|
|
regex: 'CUBOT'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'CUBOT ([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: '([^;/]+) Build/CUBOT'
|
|
model: '$1'
|
|
|
|
# Cyrus
|
|
Cyrus:
|
|
regex: 'Cyrus[ _-]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Cyrus[ _-]?([^;/)]+) Build'
|
|
model: '$1'
|
|
- regex: 'Cyrus[ _-]?([^;/)]+)[);/ ]'
|
|
model: '$1'
|
|
|
|
# Datang
|
|
Datang:
|
|
regex: 'DATANG'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: '(?:DATANG[ _-])+([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: '(?:DATANG[ _-])+([^;/)]+)[;/)]'
|
|
model: '$1'
|
|
|
|
# Danew
|
|
Danew:
|
|
regex: 'Dslide ?([^;/]+) Build'
|
|
device: 'tablet'
|
|
model: 'DSlide $1'
|
|
|
|
# Denver Electronics
|
|
Denver:
|
|
regex: '(TA[CDQ]-[0-9]+)'
|
|
device: 'tablet'
|
|
model: '$1'
|
|
|
|
# Dell
|
|
Dell:
|
|
regex: 'Dell[^a-z]|Venue|XCD35'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'XCD35'
|
|
model: 'XCD35'
|
|
- regex: '(?:Dell )?(Streak|Venue) ?([^/;]*) Build'
|
|
model: '$1 $2'
|
|
device: 'tablet'
|
|
- regex: 'Dell; ((?:Streak|Venue)[^;/\)]*)'
|
|
model: '$1'
|
|
device: 'tablet'
|
|
- regex: 'Dell; ([^;/\)]+)'
|
|
model: '$1'
|
|
- regex: 'Dell[ _\-]([^/;]+) Build'
|
|
model: '$1'
|
|
|
|
# Desay
|
|
Desay:
|
|
regex: 'Desay'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Desay[ _-]?([^;/)]+) Build'
|
|
model: '$1'
|
|
- regex: 'Desay[ _-]?([^;/)]+)[);/ ]'
|
|
model: '$1'
|
|
|
|
# DEXP
|
|
DEXP:
|
|
regex: 'DEXP|(?:Ursus|Ixion)[ _]([^;/]+) Build|H135[ _]Build'
|
|
device: 'smartphone'
|
|
models:
|
|
|
|
- regex: 'Ixion[_ ]([^;/]+) Build'
|
|
model: 'Ixion $1'
|
|
|
|
- regex: 'Ursus ([^;/]+) Build'
|
|
model: 'Ursus $1'
|
|
device: 'tablet'
|
|
|
|
- regex: 'H135[ _]Build'
|
|
model: 'Atlas'
|
|
device: 'desktop'
|
|
|
|
- regex: 'DEXP[ _]([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'DEXP[ _]([^);/]+)[);/ ]'
|
|
model: '$1'
|
|
|
|
# Dbtel
|
|
Dbtel:
|
|
regex: 'DBTEL(?:[\-/])?([a-z0-9]+)'
|
|
device: 'feature phone'
|
|
model: '$1'
|
|
|
|
# Dialog
|
|
Dialog:
|
|
regex: 'Dialog ?([^;/]+) Build'
|
|
device: 'smartphone'
|
|
model: '$1'
|
|
|
|
# Dicam
|
|
Dicam:
|
|
regex: 'DICAM-([a-z0-9]+)'
|
|
device: 'feature phone'
|
|
model: '$1'
|
|
|
|
# Digma
|
|
Digma:
|
|
regex: 'Digma[_ ]([^;/]+) Build|HIT HT707[10]MG|CITI 1902 3G|(CITI (?:[A-Z0-9]+) 3G) C[ST]500[67]PG|iDrQ10 3G|iDxD8 3G|iDnD7|HIT 4G HT7074ML|IDX5|(iDx10|iDx7)|MVM900H(?:WZ|C)|MVM908HCZ|iDxD10 3G|(iDxD[45]|iDxQ5)|iDxD7[_ ]3G|PS604M|PT452E|Linx A400 3G LT4001PG|Linx C500 3G LT5001PG|Linx PS474S|NS6902QL|NS9797MG|((?:Optima|Platina|Plane)[ _](?:[EM])?(?:[0-9\.ST]+|Prime)(?:[ _][43]G)?)|(VOX[ _](?:[0-9\.A-Z]+)[_ ][43]G)'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'HIT HT707[10]MG'
|
|
model: 'HIT 3G'
|
|
device: 'tablet'
|
|
- regex: 'iDx5'
|
|
model: 'iDx5'
|
|
- regex: 'iDxD10 3G'
|
|
model: 'iDxD10 3G'
|
|
device: 'tablet'
|
|
- regex: '(VOX[ _](?:[0-9\.A-Z]+)[_ ][43]G)'
|
|
model: '$1'
|
|
- regex: 'PS604M'
|
|
model: 'Linx 6.0'
|
|
- regex: '(Linx A400 3G) LT4001PG'
|
|
model: '$1'
|
|
- regex: '(Linx C500 3G) LT5001PG'
|
|
model: '$1'
|
|
- regex: '(Linx PS474S)'
|
|
model: '$1'
|
|
- regex: 'PT452E'
|
|
model: 'Linx 4.5'
|
|
- regex: 'MVM900H(?:WZ|C)'
|
|
model: 'iDx8'
|
|
device: 'tablet'
|
|
- regex: 'MVM908HCZ'
|
|
model: 'iDx9'
|
|
device: 'tablet'
|
|
- regex: '(iDxD7[_ ]3G)'
|
|
model: '$1'
|
|
device: 'tablet'
|
|
- regex: '(iDx10|iDx7)'
|
|
model: '$1'
|
|
- regex: '(iDxD[45]|iDxQ5)'
|
|
model: '$1'
|
|
- regex: 'HIT 4G HT7074ML'
|
|
model: 'HIT 4G'
|
|
device: 'tablet'
|
|
- regex: '(CITI 1902 3G)'
|
|
model: '$1'
|
|
device: 'tablet'
|
|
- regex: '(CITI (?:[A-Z0-9]+) 3G) C[ST]500[67]PG'
|
|
model: '$1'
|
|
device: 'tablet'
|
|
- regex: 'iDxD8 3G'
|
|
model: 'D-Plane2 8'
|
|
device: 'tablet'
|
|
- regex: '(iDrQ10 3G|iDnD7)'
|
|
model: '$1'
|
|
device: 'tablet'
|
|
- regex: 'NS6902QL'
|
|
model: 'Platina 7.2 4G'
|
|
device: 'tablet'
|
|
- regex: 'NS9797MG'
|
|
model: 'Platina 7.2 3G'
|
|
device: 'tablet'
|
|
- regex: '((?:Optima|Platina|Plane)[ _](?:[EM])?(?:[0-9\.ST]+|Prime)(?:[ _][43]G)?)'
|
|
model: '$1'
|
|
device: 'tablet'
|
|
- regex: 'Digma[_ ]([^;/]+) Build'
|
|
model: '$1'
|
|
device: 'tablet'
|
|
|
|
# DoCoMo
|
|
DoCoMo:
|
|
regex: 'DoCoMo|\;FOMA|KGT/1\.0'
|
|
device: 'feature phone'
|
|
models:
|
|
- regex: 'DoCoMo/[12]\.0[/ ]([a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: '([a-z0-9]+)(?:_W)?\;FOMA'
|
|
model: '$1'
|
|
- regex: 'KGT/1\.0 ([a-z0-9]+)'
|
|
model: '$1'
|
|
|
|
# Doogee
|
|
Doogee:
|
|
regex: 'DOOGEE[ _-]|Valencia2_Y100pro|X5max(?:[_ ]PRO)?|(BIGBOY|COLLO[23]?|DAGGER|DISCOVERY2?|FIND|HOTWIND|LATTE|MAX|MINT|MOON|PIXELS|RAINBOX|TURBO|VALENCIA|VOYAGER2?|TITANS2?)[ -_](DG[0-9]+C?)[);/ ]|BL5000[);/ ]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Valencia2_Y100pro'
|
|
model: 'Valencia2 Y100pro'
|
|
- regex: 'BL5000'
|
|
model: 'BL5000'
|
|
- regex: '(X5max(?:[_ ]PRO)?)'
|
|
model: '$1'
|
|
- regex: '(?:DOOGEE[ _-])?(BIGBOY|COLLO[23]?|DAGGER|DISCOVERY2?|FIND|HOTWIND|LATTE|MAX|MINT|MOON|PIXELS|RAINBOX|TURBO|VALENCIA|Valencia2_Y100pro|VOYAGER2?|TITANS2?)[ -_](DG[0-9]+C?)[);/ ]'
|
|
model: '$1 $2'
|
|
- regex: 'DOOGEE[ _-]([^);/]+) Build'
|
|
model: '$1'
|
|
- regex: 'DOOGEE[ _-]([^);/]+)[);/ ]'
|
|
model: '$1'
|
|
|
|
# Doov
|
|
Doov:
|
|
regex: '(?:Doov-)?Doov[ _]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: '(?:Doov-)?Doov[ _]([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: '(?:Doov-)?Doov[ _]([^);/]+)[);/ ]'
|
|
model: '$1'
|
|
|
|
# Dopod
|
|
Dopod:
|
|
regex: 'Dopod(?: )?([a-z0-9]+)'
|
|
device: 'feature phone'
|
|
model: '$1'
|
|
|
|
# Doro
|
|
Doro:
|
|
regex: 'Doro'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Doro[ _-]?([^;/)]+) Build'
|
|
model: '$1'
|
|
- regex: 'Doro[ _-]([0-9a-z]+)'
|
|
model: '$1'
|
|
|
|
# Dune HD
|
|
'Dune HD':
|
|
regex: 'DuneHD'
|
|
device: 'tv'
|
|
models:
|
|
- regex: 'DuneHD/\d.\d \([a-z]+__([a-z0-9_-]+);'
|
|
model: '$1'
|
|
- regex: 'DuneHD/\d.\d \(([a-z0-9_-]+);'
|
|
model: '$1'
|
|
|
|
# DNS
|
|
DNS:
|
|
regex: '(?:DNS|AirTab)[ _\-]([^;/]+)Build|S4505M[);/ ]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'S4505M[);/ ]'
|
|
model: 'S4505M'
|
|
- regex: 'AirTab[ _\-]([^;/]+)Build'
|
|
model: 'AirTab $1'
|
|
device: 'tablet'
|
|
- regex: 'DNS[ _\-]([^;/]+)Build'
|
|
model: '$1'
|
|
|
|
# E-Boda
|
|
E-Boda:
|
|
regex: 'E-Boda'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'E-Boda ((?:Revo|Izzycomm|Essential|Intelligence|Supreme)[^/;]+) Build'
|
|
device: 'tablet'
|
|
model: '$1'
|
|
- regex: 'E-Boda ([^/;]+) Build'
|
|
model: '$1'
|
|
|
|
# Easypix
|
|
Easypix:
|
|
regex: 'EasyPad|EasyPhone'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: '(EasyPhone[^/;]+) Build'
|
|
model: '$1'
|
|
- regex: '(EasyPad[^/;]+) Build'
|
|
model: '$1'
|
|
device: 'tablet'
|
|
|
|
# Ebest
|
|
EBEST:
|
|
regex: 'EBEST'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'EBEST[ _-]?([^;/)]+) Build'
|
|
model: '$1'
|
|
- regex: 'EBEST[ _-]?([^;/)]+)[);/ ]'
|
|
model: '$1'
|
|
|
|
# ECS
|
|
ECS:
|
|
regex: '(?:TA10CA3|TM105A?|TR10CS1)[);/ ]'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'TA10CA3[);/ ]'
|
|
model: 'TA10CA3'
|
|
- regex: 'TR10CS1[);/ ]'
|
|
model: 'TR10CS1'
|
|
- regex: 'TM105A[);/ ]'
|
|
model: 'TM105A'
|
|
- regex: 'TM105[);/ ]'
|
|
model: 'TM105'
|
|
|
|
# Elephone
|
|
Elephone:
|
|
regex: 'Elephone[ _\-]([^/;]+) Build|P6000( ?Pro| ?Plus|\+| ?02)? Build'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Elephone[ _\-]([^/;]+) Build'
|
|
model: '$1'
|
|
- regex: 'P6000 Build'
|
|
model: 'P6000'
|
|
- regex: 'P6000(\+| ?Plus) Build'
|
|
model: 'P6000 Plus'
|
|
- regex: 'P6000 02 Build'
|
|
model: 'P6000 02'
|
|
- regex: 'P6000 ?Pro Build'
|
|
model: 'P6000 Pro'
|
|
|
|
# Energy Sistem
|
|
'Energy Sistem':
|
|
regex: 'ENERGY[ _-]?([^;/]+) Build'
|
|
device: 'tablet'
|
|
model: '$1'
|
|
|
|
# Ericy
|
|
Ericy:
|
|
regex: 'Ericy-([a-z0-9]+)'
|
|
device: 'feature phone'
|
|
model: '$1'
|
|
|
|
# Essential
|
|
Essential:
|
|
regex: 'PH-1 Build'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'PH-1 Build'
|
|
model: 'PH-1'
|
|
|
|
# Eton
|
|
Eton:
|
|
regex: 'Eton'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Eton[ _-]?([^;/)]+) Build'
|
|
model: '$1'
|
|
- regex: 'Eton[ _-]?([^;/)]+)[);/ ]'
|
|
model: '$1'
|
|
|
|
# Essentielb
|
|
Essentielb:
|
|
regex: '(Wooze[_ ](?:I5|L|XL)) Build'
|
|
device: 'smartphone'
|
|
model: '$1'
|
|
|
|
# Rikomagic
|
|
Rikomagic:
|
|
regex: 'MK(80[28][^/;]*) Build'
|
|
device: 'tv'
|
|
model: 'MK$1'
|
|
|
|
# Senseit
|
|
Senseit:
|
|
regex: 'SENSEIT[ _]?([^;/)]+) Build'
|
|
device: 'smartphone'
|
|
model: '$1'
|
|
|
|
# Sony & Sony Ericsson (combined as they are mixed up)
|
|
Sony:
|
|
regex: 'Sony(?: ?Ericsson)?|SGP|Xperia|502SO|701SO|C1[569]0[45]|C2[01]0[45]|C2305|C530[236]|C550[23]|C6[56]0[236]|C6616|C68(?:0[26]|[34]3)|C69(?:0[236]|16|43)|D200[45]|D21(?:0[45]|14)|D22(?:0[236]|12|43)|D230[2356]|D240[36]|D25(?:02|33)|D510[236]|D530[36]|D5322|D5503|D58[03]3|D65(?:0[23]|43)|D66[035]3|D6708|E210[45]|E2115|E5506|E2033|E2[03]03|E23[36]3|E2306|E2312|E2353|E53[03]3|E55[36]3|E56[46305][36]|E58[02]3|E65[35]3|E66[0358]3|E68[358]3|F311[12356]|F331[13]|F321[12356]|F5[13]21|F5122|F813[12]|F833[12]|G312[135]|G311[26]|G322[136]|G3212|G331[123]|G3412|G3416|G3423|G823[12]|G834[123]|G8[14]4[12]|H(?:3213|3223|4213|4233)|H[34]113|H8216|H8324|(?:WT|LT|SO|ST|SK|MK)[0-9]+[a-z]*[0-9]*(?: Build|\))|X?L39H|XM50[ht]|W960|portalmmm/2\.0 K|S3[69]h|SOL22|SOV32|SOV36|X10[ia]v?|E1[05][ai]v?|MT[0-9]{2}[a-z]? Build|SO-0(?:[345]D|[234]E|[12]C|[1235]F|[12]G|[3]H)|R800[aix]|LiveWithWalkman'
|
|
device: 'smartphone'
|
|
models:
|
|
# SONY ERICSSON: explicit smartphone models
|
|
- regex: '(?:Sony(?:Ericsson)?)?E10[ai]v?'
|
|
model: 'Xperia X10 mini'
|
|
brand: 'Sony Ericsson'
|
|
- regex: '(?:Sony(?:Ericsson)?)?U20'
|
|
model: 'Xperia X10 mini pro'
|
|
brand: 'Sony Ericsson'
|
|
- regex: '(?:Sony(?:Ericsson)?)?E15[ai]v?'
|
|
model: 'Xperia X8'
|
|
brand: 'Sony Ericsson'
|
|
- regex: '(?:Sony(?:Ericsson)?)?(LT15[ai]?v?|SO-01C)'
|
|
model: 'Xperia arc'
|
|
brand: 'Sony Ericsson'
|
|
- regex: '(?:Sony(?:Ericsson)?)?LT18[ai]v?'
|
|
model: 'Xperia arc S'
|
|
brand: 'Sony Ericsson'
|
|
- regex: '(?:Sony(?:Ericsson)?)?MT11'
|
|
model: 'Xperia neo V'
|
|
brand: 'Sony Ericsson'
|
|
- regex: '(?:Sony(?:Ericsson)?)?MT15'
|
|
model: 'Xperia neo'
|
|
brand: 'Sony Ericsson'
|
|
- regex: '(?:Sony(?:Ericsson)?)?MT27'
|
|
model: 'Xperia Sola'
|
|
brand: 'Sony Ericsson'
|
|
- regex: '(?:Sony(?:Ericsson)?)?MK16[ai]'
|
|
model: 'Xperia pro'
|
|
brand: 'Sony Ericsson'
|
|
- regex: '(?:Sony(?:Ericsson)?)?ST15[ai]'
|
|
model: 'Xperia mini'
|
|
brand: 'Sony Ericsson'
|
|
- regex: '(?:Sony(?:Ericsson)?)?ST17[ai]'
|
|
model: 'Xperia active'
|
|
brand: 'Sony Ericsson'
|
|
- regex: '(?:Sony(?:Ericsson)?)?ST18[ai]'
|
|
model: 'Xperia ray'
|
|
brand: 'Sony Ericsson'
|
|
- regex: '(?:Sony(?:Ericsson)?)?SK17[ai]?'
|
|
model: 'Xperia mini pro'
|
|
brand: 'Sony Ericsson'
|
|
- regex: '(?:Sony(?:Ericsson)?)?X10[ai]v?'
|
|
model: 'Xperia X10'
|
|
brand: 'Sony Ericsson'
|
|
- regex: '(?:Sony(?:Ericsson)?)M1'
|
|
model: 'Aspen'
|
|
brand: 'Sony Ericsson'
|
|
- regex: '(?:Sony(?:Ericsson)?)?R800'
|
|
model: 'Xperia PLAY'
|
|
brand: 'Sony Ericsson'
|
|
- regex: '(?:Sony(?:Ericsson)?)?WT19|LiveWithWalkman'
|
|
model: 'Live with Walkman'
|
|
brand: 'Sony Ericsson'
|
|
|
|
# SONY ERICSSON: explicit feature phone models
|
|
- regex: '(?:Sony(?:Ericsson)?)?CK13i'
|
|
model: 'txt'
|
|
brand: 'Sony Ericsson'
|
|
device: 'feature phone'
|
|
- regex: '(?:Sony(?:Ericsson)?)?CK15[ai]'
|
|
model: 'txt pro'
|
|
brand: 'Sony Ericsson'
|
|
device: 'feature phone'
|
|
- regex: '(?:Sony(?:Ericsson)?)?F100i'
|
|
model: 'Jalou'
|
|
brand: 'Sony Ericsson'
|
|
device: 'feature phone'
|
|
- regex: '(?:Sony(?:Ericsson)?)?J105'
|
|
model: 'Naite'
|
|
brand: 'Sony Ericsson'
|
|
device: 'feature phone'
|
|
- regex: '(?:Sony(?:Ericsson)?)?J108'
|
|
model: 'Cedar'
|
|
brand: 'Sony Ericsson'
|
|
device: 'feature phone'
|
|
- regex: '(?:Sony(?:Ericsson)?)?J10'
|
|
model: 'Elm'
|
|
brand: 'Sony Ericsson'
|
|
device: 'feature phone'
|
|
- regex: '(?:Sony(?:Ericsson)?)?J20'
|
|
model: 'Hazel'
|
|
brand: 'Sony Ericsson'
|
|
device: 'feature phone'
|
|
- regex: '(?:Sony(?:Ericsson)?)?U10'
|
|
model: 'Aino'
|
|
brand: 'Sony Ericsson'
|
|
device: 'feature phone'
|
|
- regex: '(?:Sony(?:Ericsson)?)?U100'
|
|
model: 'Yari'
|
|
brand: 'Sony Ericsson'
|
|
device: 'feature phone'
|
|
- regex: '(?:Sony(?:Ericsson)?)?U1'
|
|
model: 'Satio'
|
|
brand: 'Sony Ericsson'
|
|
device: 'feature phone'
|
|
- regex: '(?:Sony(?:Ericsson)?)?U5'
|
|
model: 'Vivaz'
|
|
brand: 'Sony Ericsson'
|
|
device: 'feature phone'
|
|
- regex: '(?:Sony(?:Ericsson)?)?U8'
|
|
model: 'Vivaz pro'
|
|
brand: 'Sony Ericsson'
|
|
device: 'feature phone'
|
|
- regex: '(?:Sony(?:Ericsson)?)?W20'
|
|
model: 'Zylo'
|
|
brand: 'Sony Ericsson'
|
|
device: 'feature phone'
|
|
- regex: '(?:Sony(?:Ericsson)?)?W100'
|
|
model: 'Spiro'
|
|
brand: 'Sony Ericsson'
|
|
device: 'feature phone'
|
|
- regex: '(?:Sony(?:Ericsson)?)?W150'
|
|
model: 'Yendo'
|
|
brand: 'Sony Ericsson'
|
|
device: 'feature phone'
|
|
- regex: '(?:Sony(?:Ericsson)?)?W960'
|
|
model: 'W960'
|
|
brand: 'Sony Ericsson'
|
|
device: 'feature phone'
|
|
- regex: '(?:Sony(?:Ericsson)?)?WT13'
|
|
model: 'Mix Walkman'
|
|
brand: 'Sony Ericsson'
|
|
device: 'feature phone'
|
|
|
|
# SONY: explicit smartphone models
|
|
- regex: '(?:Sony(?:Ericsson)?)?LT22i'
|
|
model: 'Xperia P'
|
|
- regex: '(?:Sony(?:Ericsson)?)?LT25i'
|
|
model: 'Xperia V'
|
|
- regex: '(?:Sony(?:Ericsson)?)?LT26ii'
|
|
model: 'Xperia SL'
|
|
- regex: '(?:Sony(?:Ericsson)?)?LT26i'
|
|
model: 'Xperia S'
|
|
- regex: '(?:Sony(?:Ericsson)?)?SO-02C'
|
|
model: 'Xperia arco'
|
|
- regex: '(?:Sony(?:Ericsson)?)?SO-03D'
|
|
model: 'Xperia arco HD'
|
|
- regex: '(?:Sony(?:Ericsson)?)?LT26w'
|
|
model: 'Xperia arco S'
|
|
- regex: '(?:Sony(?:Ericsson)?)?LT28[aih]'
|
|
model: 'Xperia ion'
|
|
- regex: '(?:Sony(?:Ericsson)?)?LT29i'
|
|
model: 'Xperia TX'
|
|
- regex: '(?:Sony(?:Ericsson)?)?LT30a'
|
|
model: 'Xperia T LTE'
|
|
- regex: '(?:Sony(?:Ericsson)?)?LT30p'
|
|
model: 'Xperia T'
|
|
- regex: '(?:Sony(?:Ericsson)?)?ST21[ia]2'
|
|
model: 'Xperia tipo dual'
|
|
- regex: '(?:Sony(?:Ericsson)?)?ST21[ia]'
|
|
model: 'Xperia tipo'
|
|
- regex: '(?:Sony(?:Ericsson)?)?ST23[ia]'
|
|
model: 'Xperia miro'
|
|
- regex: '(?:Sony(?:Ericsson)?)?ST25[ia]'
|
|
model: 'Xperia U'
|
|
- regex: '(?:Sony(?:Ericsson)?)?SOL22'
|
|
model: 'Xperia UL'
|
|
- regex: '(?:Sony(?:Ericsson)?)?ST26[ia]'
|
|
model: 'Xperia J'
|
|
- regex: '(?:Sony(?:Ericsson)?)?ST27[ia]'
|
|
model: 'Xperia go'
|
|
- regex: '(?:Sony(?:Ericsson)?)?C150[45]'
|
|
model: 'Xperia E'
|
|
- regex: '(?:Sony(?:Ericsson)?)?C160[45]'
|
|
model: 'Xperia E Dual'
|
|
- regex: '(?:Sony(?:Ericsson)?)?(?:E210[45]|E2115)'
|
|
model: 'Xperia E4'
|
|
- regex: '(?:Sony(?:Ericsson)?)?E2003'
|
|
model: 'Xperia E4G'
|
|
- regex: '(?:Sony(?:Ericsson)?)?C190[45]'
|
|
model: 'Xperia M'
|
|
- regex: '(?:Sony(?:Ericsson)?)?C200[45]'
|
|
model: 'Xperia M Dual'
|
|
- regex: '(?:Sony(?:Ericsson)?)?C210[45]|S36h'
|
|
model: 'Xperia L'
|
|
- regex: '(?:Sony(?:Ericsson)?)?C2305|S39h'
|
|
model: 'Xperia C'
|
|
- regex: '(?:Sony(?:Ericsson)?)?C530[236]'
|
|
model: 'Xperia SP'
|
|
- regex: '(?:Sony(?:Ericsson)?)?C550[23]'
|
|
model: 'Xperia ZR'
|
|
- regex: '(?:Sony(?:Ericsson)?)?C650[236]'
|
|
model: 'Xperia ZL'
|
|
- regex: '(?:Sony(?:Ericsson)?)?(?:C66(?:0[236]|16)|SO-02E)'
|
|
model: 'Xperia Z'
|
|
- regex: '(?:Sony(?:Ericsson)?)?(?:C68(?:0[26]|[34]3)|XL39H)'
|
|
device: 'phablet'
|
|
model: 'Xperia Z Ultra'
|
|
- regex: '(?:Sony(?:Ericsson)?)?(?:C69(?:0[236]|16|43)|L39H|SO-0[12]F)'
|
|
model: 'Xperia Z1'
|
|
- regex: '(?:Sony(?:Ericsson)?)?D200[45]'
|
|
model: 'Xperia E1'
|
|
- regex: '(?:Sony(?:Ericsson)?)?D21(?:0[45]|14)'
|
|
model: 'Xperia E1 Dual'
|
|
- regex: '(?:Sony(?:Ericsson)?)?D22(?:0[236]|43)'
|
|
model: 'Xperia E3'
|
|
- regex: '(?:Sony(?:Ericsson)?)?D2212'
|
|
model: 'Xperia E3 Dual'
|
|
- regex: '(?:Sony(?:Ericsson)?)?E2033'
|
|
model: 'Xperia E4g Dual'
|
|
- regex: '(?:Sony(?:Ericsson)?)?D2302'
|
|
model: 'Xperia M2 Dual'
|
|
- regex: '(?:Sony(?:Ericsson)?)?D230[356]'
|
|
model: 'Xperia M2'
|
|
- regex: '(?:Sony(?:Ericsson)?)?D240[36]'
|
|
model: 'Xperia M2 Aqua'
|
|
- regex: '(?:Sony(?:Ericsson)?)?(?:E230[36]|E23[35]3)'
|
|
model: 'Xperia M4 Aqua'
|
|
- regex: '(?:Sony(?:Ericsson)?)?(?:E2312|E2363)'
|
|
model: 'Xperia M4 Aqua Dual'
|
|
- regex: '(?:Sony(?:Ericsson)?)?E56[05][36]'
|
|
model: 'Xperia M5'
|
|
- regex: '(?:Sony(?:Ericsson)?)?E56[436]3'
|
|
model: 'Xperia M5 Dual'
|
|
- regex: '(?:Sony(?:Ericsson)?)?D2502'
|
|
model: 'Xperia C3 Dual'
|
|
- regex: '(?:Sony(?:Ericsson)?)?D2533'
|
|
model: 'Xperia C3'
|
|
- regex: '(?:Sony(?:Ericsson)?)?E5303'
|
|
model: 'Xperia C4'
|
|
- regex: '(?:Sony(?:Ericsson)?)?E53[03]3'
|
|
model: 'Xperia C4 Dual'
|
|
- regex: '(?:Sony(?:Ericsson)?)?E5506'
|
|
model: 'Xperia C5 Ultra'
|
|
- regex: '(?:Sony(?:Ericsson)?)?E55[36]3'
|
|
model: 'Xperia C5 Ultra Dual'
|
|
- regex: '(?:Sony(?:Ericsson)?)?D510[236]'
|
|
model: 'Xperia T3'
|
|
- regex: '(?:Sony(?:Ericsson)?)?(?:D530[36]|XM50[ht])'
|
|
model: 'Xperia T2 Ultra'
|
|
device: 'phablet'
|
|
- regex: '(?:Sony(?:Ericsson)?)?D5322'
|
|
model: 'Xperia T2 Ultra Dual'
|
|
device: 'phablet'
|
|
- regex: '(?:Sony(?:Ericsson)?)?D5503'
|
|
model: 'Xperia Z1 Compact'
|
|
- regex: '(?:Sony(?:Ericsson)?)?(?:D58[03]3|SO-02G)'
|
|
model: 'Xperia Z3 Compact'
|
|
- regex: '(?:Sony(?:Ericsson)?)?(?:D65(?:0[23]|43)|SO-03F)'
|
|
model: 'Xperia Z2'
|
|
- regex: '(?:Sony(?:Ericsson)?)?(?:D66[05]3|SO-01G)'
|
|
model: 'Xperia Z3'
|
|
- regex: '(?:Sony(?:Ericsson)?)?(?:D6633)'
|
|
model: 'Xperia Z3 Dual'
|
|
- regex: '(?:Sony(?:Ericsson)?)?(?:E65[35]3)'
|
|
model: 'Xperia Z3+'
|
|
- regex: '(?:Sony(?:Ericsson)?)?(?:D6708)'
|
|
model: 'Xperia Z3v'
|
|
- regex: '(?:Sony(?:Ericsson)?)?(?:E58[02]3)'
|
|
model: 'Xperia Z5 Compact'
|
|
- regex: '(?:Sony(?:Ericsson)?)?(?:E66[05]3|SOV32)'
|
|
model: 'Xperia Z5'
|
|
- regex: '(?:Sony(?:Ericsson)?)?E66[38]3'
|
|
model: 'Xperia Z5 Dual'
|
|
- regex: '(?:Sony(?:Ericsson)?)?(?:E68[58]3|SO-03H)'
|
|
model: 'Xperia Z5 Premium'
|
|
- regex: '(?:Sony(?:Ericsson)?)?E6833'
|
|
model: 'Xperia Z5 Premium Dual'
|
|
- regex: '(?:Sony(?:Ericsson)?)?F311[135]'
|
|
model: 'Xperia XA'
|
|
- regex: '(?:Sony(?:Ericsson)?)?F311[26]'
|
|
model: 'Xperia XA Dual'
|
|
- regex: '(?:Sony(?:Ericsson)?)?F321[135]'
|
|
model: 'Xperia XA Ultra'
|
|
- regex: '(?:Sony(?:Ericsson)?)?F321[26]'
|
|
model: 'Xperia XA Ultra Dual'
|
|
- regex: '(?:Sony(?:Ericsson)?)?F833[12]'
|
|
model: 'Xperia XZ'
|
|
- regex: '(?:Sony(?:Ericsson)?)?(?:701SO|SOV36|G834[123])'
|
|
model: 'Xperia XZ1'
|
|
- regex: '(?:Sony(?:Ericsson)?)?G8441'
|
|
model: 'Xperia XZ1 Compact'
|
|
- regex: '(?:Sony(?:Ericsson)?)?F331[13]'
|
|
model: 'Xperia E5'
|
|
- regex: '(?:Sony(?:Ericsson)?)?G312[135]|G311[26]'
|
|
model: 'Xperia XA1'
|
|
- regex: '(?:Sony(?:Ericsson)?)?G3412|G3416|G3423'
|
|
model: 'Xperia XA1 Plus'
|
|
- regex: '(?:Sony(?:Ericsson)?)?G322[136]|G3212'
|
|
model: 'Xperia XA1 Ultra'
|
|
- regex: '(?:Sony(?:Ericsson)?)?H3113'
|
|
model: 'Xperia XA2'
|
|
- regex: '(?:Sony(?:Ericsson)?)?H4113'
|
|
model: 'Xperia XA2 Dual'
|
|
- regex: '(?:Sony(?:Ericsson)?)?H(?:3213|3223|4213|4233)'
|
|
model: 'Xperia XA2 Ultra'
|
|
- regex: '(?:Sony(?:Ericsson)?)?G823[12]'
|
|
model: 'Xperia XZs'
|
|
- regex: '(?:Sony(?:Ericsson)?)?G814[12]'
|
|
model: 'Xperia XZ Premium'
|
|
- regex: '(?:Sony(?:Ericsson)?)?(?:H8324|H8216)'
|
|
model: 'Xperia XZ2'
|
|
- regex: '(?:Sony(?:Ericsson)?)?G331[13]'
|
|
model: 'Xperia L1'
|
|
- regex: '(?:Sony(?:Ericsson)?)?G3312'
|
|
model: 'Xperia L1 Dual'
|
|
- regex: '(?:Sony(?:Ericsson)?)?SO-04E'
|
|
model: 'Xperia A'
|
|
- regex: '(?:Sony(?:Ericsson)?)?SO-04D'
|
|
model: 'Xperia GX'
|
|
- regex: '(?:Sony(?:Ericsson)?)?SO-05D'
|
|
model: 'Xperia SX'
|
|
- regex: '(?:Sony(?:Ericsson)?)?F5121'
|
|
model: 'Xperia X'
|
|
- regex: '(?:Sony(?:Ericsson)?)?F5122'
|
|
model: 'Xperia X Dual'
|
|
- regex: '(?:Sony(?:Ericsson)?)?F5321'
|
|
model: 'Xperia X Compact'
|
|
- regex: '(?:Sony(?:Ericsson)?)?(?:F8131|502SO)'
|
|
model: 'Xperia X Performance'
|
|
- regex: '(?:Sony(?:Ericsson)?)?F8132'
|
|
model: 'Xperia X Performance Dual'
|
|
|
|
# SONY: explicit tablet models
|
|
- regex: 'SGP(?:311|312|321)[);/ ]|SO-03E'
|
|
model: 'Xperia Tablet Z'
|
|
device: 'tablet'
|
|
- regex: 'SGP(?:511|512|521)[);/ ]|SO-05F'
|
|
model: 'Xperia Tablet Z2'
|
|
device: 'tablet'
|
|
- regex: 'SGP(?:6[24]1)[);/ ]'
|
|
model: 'Xperia Tablet Z3 Compact'
|
|
device: 'tablet'
|
|
- regex: 'SGPT(?:12|121|122|123|13|131|132|133)[);/ ]'
|
|
model: 'Xperia Tablet S'
|
|
device: 'tablet'
|
|
|
|
# general detections
|
|
- regex: 'SonyBDP|SonyDBV'
|
|
model: 'Blu-ray Player'
|
|
device: 'tv'
|
|
- regex: '(?:Sony-)?(KDL?-?[0-9a-z]+)'
|
|
model: '$1'
|
|
device: 'tv'
|
|
- regex: 'Opera TV Store.*(?:Sony-)([0-9a-z\-_]+)'
|
|
model: '$1'
|
|
device: 'tv'
|
|
- regex: '((?:WT|SO|ST|SK|MK)[0-9]+[a-z]*[0-9]*)(?: Build|\))'
|
|
model: '$1'
|
|
brand: 'Sony Ericsson'
|
|
- regex: '(MT[0-9]{2}[a-z]?)[);/ ]'
|
|
model: '$1'
|
|
brand: 'Sony Ericsson'
|
|
- regex: 'portalmmm/2.0 K([a-z0-9]+)'
|
|
model: 'K$1'
|
|
brand: 'Sony Ericsson'
|
|
- regex: 'Sony ?Ericsson?([^/;]*) Build'
|
|
model: '$1'
|
|
brand: 'Sony Ericsson'
|
|
- regex: 'SonyEricsson([CGJKPTWZ][0-9]+[a-z]+)/'
|
|
model: '$1'
|
|
brand: 'Sony Ericsson'
|
|
device: 'feature phone'
|
|
- regex: 'Sony ?Ericsson ?([a-z0-9\-]+)'
|
|
model: '$1'
|
|
brand: 'Sony Ericsson'
|
|
|
|
- regex: 'Sony (Tablet[^/;]*) Build'
|
|
model: '$1'
|
|
device: 'tablet'
|
|
- regex: '(SGP[^/;]*) Build'
|
|
model: '$1'
|
|
device: 'tablet'
|
|
- regex: 'Xperia ([^/;]*Tablet[^/;]*) Build'
|
|
model: 'Xperia $1'
|
|
device: 'tablet'
|
|
- regex: 'Xperia ([^;/]+) Build'
|
|
model: 'Xperia $1'
|
|
- regex: 'Sony[ -]?([^/;]*) Build'
|
|
model: '$1'
|
|
- regex: 'Sony[ -]?([a-z0-9\-]+)'
|
|
model: '$1'
|
|
|
|
# Ericsson
|
|
Ericsson:
|
|
regex: '(?:Ericsson(?:/ )?[a-z0-9]+)|(?:R380 2.0 WAP1.1)'
|
|
device: 'feature phone'
|
|
models:
|
|
- regex: 'Ericsson(?:/ )?([a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: 'R380 2.0 WAP1.1'
|
|
model: 'R380'
|
|
|
|
# eTouch
|
|
eTouch:
|
|
regex: 'eTouch ?([a-z0-9]+)'
|
|
device: 'smartphone'
|
|
model: '$1'
|
|
|
|
# Storex
|
|
Storex:
|
|
regex: "eZee[^a-z]*Tab ?([^;/]*) Build|STOREX LinkBox"
|
|
device: 'tablet'
|
|
models:
|
|
- regex: "eZee[^a-z]*Tab ?([^;/]*) Build"
|
|
model: "eZee'Tab$1"
|
|
- regex: 'STOREX LinkBox'
|
|
model: 'LinkBox'
|
|
device: 'tv'
|
|
|
|
# Evertek
|
|
Evertek:
|
|
regex: '(Ever(?:Glory|Shine|Miracle|Mellow|Classic|Trendy|Fancy|Vivid|Slim|Glow|Magic|Smart|Star)[^/;]*) Build|E70[25]0HD|E805[01]HD|E9054HD|E8050HG|E7914HG'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: '(E70[25]0HD|E805[01]HD|E9054HD|E8050HG|E7914HG)'
|
|
device: 'tablet'
|
|
model: 'Everpad $1'
|
|
- regex: '(Ever(?:Glory|Shine|Miracle|Mellow|Classic|Trendy|Fancy|Vivid|Slim|Glow|Magic|Smart|Star)[^/;]*) Build'
|
|
model: '$1'
|
|
|
|
# Evolveo
|
|
Evolveo:
|
|
regex: 'EVOLVEO[ _]([^;/]*) Build'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Smart TV ([^;/]*) Build'
|
|
device: 'tv'
|
|
model: 'Smart TV $1'
|
|
- regex: 'EVOLVEO[ _]([^;/]*) Build'
|
|
model: '$1'
|
|
|
|
# Explay
|
|
Explay:
|
|
regex: 'Explay|ActiveD[ _]|Atlant |Informer[ _][0-9]+|CinemaTV 3G|Surfer[ _][0-9\.]|sQuad[ _][0-9\.]|Onliner[1-3]|RioPlay|Leader'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'ActiveD[ _]7.4[ _]3G'
|
|
model: 'ActiveD 7.4 3G'
|
|
- regex: 'ActiveD[ _]8.2[ _]3G'
|
|
model: 'ActiveD 8.2 3G'
|
|
- regex: 'CinemaTV[ _]3G'
|
|
model: 'CinemaTV 3G'
|
|
- regex: 'Informer[ _]([0-9]+(?:[ _]3G)?)'
|
|
model: 'Informer $1'
|
|
- regex: 'Surfer[ _]([0-9\.]+(?:[ _]3G)?)'
|
|
model: 'Surfer $1'
|
|
- regex: 'sQuad[ _]([0-9\.]+(?:[ _]3G)?)'
|
|
model: 'sQuad $1'
|
|
- regex: 'Onliner([1-3])'
|
|
model: 'Onliner $1'
|
|
- regex: 'Atlant[;/) ]'
|
|
device: 'smartphone'
|
|
model: 'Atlant'
|
|
- regex: 'Explay[ _-]([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'Explay[ _-]([^;/]+)[;/)]'
|
|
model: '$1'
|
|
- regex: '(RioPlay)[;/) ]'
|
|
device: 'smartphone'
|
|
model: 'Rio Play'
|
|
- regex: 'Leader'
|
|
model: 'Leader'
|
|
|
|
# EKO
|
|
EKO:
|
|
regex: 'EKO'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'EKO[ _-]?([^;/)]+) Build'
|
|
model: '$1'
|
|
- regex: 'EKO[ _-]?([^;/)]+)[);/ ]'
|
|
model: '$1'
|
|
|
|
# Ezze
|
|
Ezze:
|
|
regex: 'EZZE-|EZ[a-z0-9]+'
|
|
device: 'feature phone'
|
|
models:
|
|
- regex: 'EZZE-([a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: 'EZ([a-z0-9]+)'
|
|
model: 'EZ$1'
|
|
|
|
# Ezio
|
|
Ezio:
|
|
regex: 'EZIO-([a-z0-9]+)'
|
|
device: 'feature phone'
|
|
model: '$1'
|
|
|
|
# Foxconn
|
|
Foxconn:
|
|
regex: 'InFocus M[0-9]+[a-z]?'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'InFocus M([0-9]+[a-z]?)'
|
|
model: 'InFocus M$1'
|
|
|
|
# Fairphone
|
|
Fairphone:
|
|
regex: '(FP1U?)[);/ ]'
|
|
device: 'smartphone'
|
|
model: '$1'
|
|
|
|
# FNB
|
|
FNB:
|
|
regex: 'ConeXis X[12]|SP5045V'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'SP5045V'
|
|
model: 'SP5045V'
|
|
- regex: 'ConeXis X1'
|
|
model: 'ConeXis X1'
|
|
- regex: 'ConeXis X2'
|
|
model: 'ConeXis X2'
|
|
|
|
# Fujitsu
|
|
Fujitsu:
|
|
regex: 'F-01[FHJK]|F-02[EFGH]|F-03[DEFGH]|F-04[EG]|F-05[DEFJ]|F-06E|F-07[DE]|F-08D|F-09[DE]|F-10D|F-11D|F-12C|M532|FARTM933KZ[);/ ]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'F-01F'
|
|
model: 'Arrows NX F-01F'
|
|
- regex: 'F-01J'
|
|
model: 'Arrows NX F-01J'
|
|
- regex: 'F-01K'
|
|
model: 'Arrows NX F-01K'
|
|
- regex: 'F-01H'
|
|
model: 'Arrows Fit F-01H'
|
|
- regex: 'F-02E'
|
|
model: 'Arrows X F-02E'
|
|
- regex: 'F-02G'
|
|
model: 'Arrows NX F-02G'
|
|
- regex: 'F-02H'
|
|
model: 'Arrows NX F-02H'
|
|
- regex: 'F-03D'
|
|
model: 'Arrows Kiss F-03D'
|
|
- regex: 'F-03E'
|
|
model: 'Arrows Kiss F-03E'
|
|
- regex: 'F-03F'
|
|
model: 'Disney Mobile F-03F'
|
|
- regex: 'F-03H'
|
|
model: 'Arrows SV F-03H'
|
|
- regex: 'F-04E'
|
|
model: 'Arrows V F-04E'
|
|
- regex: 'F-04G'
|
|
model: 'Arrows NX F-04G'
|
|
- regex: 'F-05D'
|
|
model: 'Arrows X LTE F-05D'
|
|
- regex: 'F-05F'
|
|
model: 'Arrows NX F-05F'
|
|
- regex: 'F-05J'
|
|
model: 'Arrows Be F-05J'
|
|
- regex: 'F-06E'
|
|
model: 'Arrows NX F-06E'
|
|
- regex: 'F-07D'
|
|
model: 'Arrows μ F-07D'
|
|
- regex: 'F-07E'
|
|
model: 'Disney Mobile F-07E'
|
|
- regex: 'F-08D'
|
|
model: 'Disney Mobile F-08D'
|
|
- regex: 'F-09D'
|
|
model: 'ANTEPRIMA F-09D'
|
|
- regex: 'F-09E'
|
|
model: 'Raku-Raku Smartphone Premium F-09E'
|
|
- regex: 'F-10D'
|
|
model: 'Arrows X F-10D'
|
|
- regex: 'F-11D'
|
|
model: 'Arrows Me F-11D'
|
|
- regex: 'F-12C'
|
|
model: 'F-12C'
|
|
|
|
- regex: 'F-02F'
|
|
model: 'Arrows Tab F-02F'
|
|
device: 'tablet'
|
|
- regex: 'F-03G'
|
|
model: 'Arrows Tab F-03G'
|
|
device: 'tablet'
|
|
- regex: 'F-05E'
|
|
model: 'Arrows Tab F-05E'
|
|
device: 'tablet'
|
|
- regex: 'FARTM933KZ'
|
|
model: 'Arrows Tab M504/HA4'
|
|
device: 'tablet'
|
|
- regex: 'M532[);/ ]'
|
|
model: 'Stylistic'
|
|
device: 'tablet'
|
|
|
|
# Gemini
|
|
Gemini:
|
|
regex: '(GEM[0-9]+[a-z]*)'
|
|
device: 'tablet'
|
|
model: '$1'
|
|
|
|
# Gigabyte
|
|
Gigabyte:
|
|
regex: 'GSmart [a-z0-9 ]+ Build|Gigabyte-[a-z0-9]+'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: '(GSmart [a-z0-9 ]+) Build'
|
|
model: '$1'
|
|
- regex: 'Gigabyte-([a-z0-9]+)'
|
|
model: '$1'
|
|
|
|
# Gigaset
|
|
Gigaset:
|
|
regex: 'Gigaset'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Gigaset QV(1030|830)'
|
|
model: 'Gigaset QV$1'
|
|
device: 'tablet'
|
|
- regex: 'Gigaset ([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'Gigaset ([^;/)]+)[);/ ]'
|
|
model: '$1'
|
|
|
|
# Gionee
|
|
Gionee:
|
|
regex: '(?:GIO-)?GIONEE[ _-]?[a-z0-9]+|(?:Dream_D1|V188S?|GN[0-9]{3,4}[a-z]?)[);/ ]|F103(?: Pro)? Build|P5 mini Build'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'GN810[);/ ]'
|
|
model: 'GN810'
|
|
device: 'phablet'
|
|
- regex: 'GN([0-9]{3,4}[a-z]?)[);/ ]'
|
|
model: 'GN$1'
|
|
- regex: 'V188S[);/ ]'
|
|
model: 'V188S'
|
|
- regex: 'V188[);/ ]'
|
|
model: 'V188'
|
|
- regex: 'F103( Pro)? Build'
|
|
model: 'F103$1'
|
|
- regex: 'P5 mini Build'
|
|
model: 'P5 mini'
|
|
- regex: '(?:(?:GIO-)?GIONEE[ _-])?Dream_D1[);/ ]'
|
|
model: 'Dream D1'
|
|
- regex: '(?:GIO-)?GIONEE[ _-]([a-z0-9_-]+).*Android'
|
|
model: '$1'
|
|
- regex: 'Android.*(?:GIO-)?GIONEE[ _-]([a-z0-9_-]+)'
|
|
model: '$1'
|
|
- regex: '(?:GIO-)?GIONEE[ _-]?([a-z0-9]+)'
|
|
model: '$1'
|
|
device: 'feature phone'
|
|
|
|
# Grape
|
|
Grape:
|
|
regex: '(?:Grape[ _])?GTM-5([^;/]+) Build'
|
|
device: 'smartphone'
|
|
model: 'GTM-5$1'
|
|
|
|
# Vizio
|
|
Vizio:
|
|
regex: 'Vizio|VAP430|VTAB1008'
|
|
device: 'tv'
|
|
models:
|
|
- regex: 'VAP430'
|
|
model: 'VAP430'
|
|
- regex: 'VTAB1008'
|
|
device: 'tablet'
|
|
model: 'VTAB1008'
|
|
|
|
# GOCLEVER
|
|
GOCLEVER:
|
|
regex: 'GOCLEVER|QUANTUM|ARIES|INSIGNIA|ORION_|ELIPSO|LIBRA[ _]97'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'QUANTUM_(1010N|1010M|900)'
|
|
model: 'QUANTUM $1'
|
|
device: 'tablet'
|
|
- regex: 'INSIGNIA_785_PRO'
|
|
model: 'INSIGNIA 785 PRO'
|
|
device: 'tablet'
|
|
- regex: '(ORION|ARIES|ELIPSO)[_ ](71|101|102)'
|
|
model: '$1 $2'
|
|
device: 'tablet'
|
|
- regex: 'TQ700N'
|
|
model: 'QUANTUM 700N'
|
|
device: 'tablet'
|
|
- regex: '((?:QUANTUM|ARIES|INSIGNIA|ORION|ELIPSO)[ _-]?[^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'GOCLEVER[ _-]TAB[ _-]?([^;/]+) Build'
|
|
model: 'TAB $1'
|
|
device: 'tablet'
|
|
- regex: 'GOCLEVER[ _-]?([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'TAB ([^;/)]+) Build/GOCLEVER'
|
|
model: 'TAB $1'
|
|
device: 'tablet'
|
|
- regex: '([^;/)]+) Build/GOCLEVER'
|
|
model: '$1'
|
|
- regex: 'GOCLEVER[ _-]?TAB[ _-]([^;/)]+)[;/)]'
|
|
model: 'TAB $1'
|
|
device: 'tablet'
|
|
- regex: 'GOCLEVER[ _-]?([^;/)]+)[;/)]'
|
|
model: '$1'
|
|
- regex: 'LIBRA[ _]97'
|
|
model: 'Libra 97'
|
|
device: 'tablet'
|
|
|
|
# GoMobile
|
|
GoMobile:
|
|
regex: 'GO Onyx|GO[0-9]{3,4}'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'GO Onyx'
|
|
model: 'Go Onyx'
|
|
- regex: 'GO([0-9]{3,4})'
|
|
model: 'Go$1'
|
|
|
|
# Goly
|
|
Goly:
|
|
regex: 'Goly[ _-]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Goly[ _-]([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'Goly[ _-]([^;/)]+)[;/)]'
|
|
model: '$1'
|
|
|
|
# Google
|
|
Google:
|
|
regex: 'Nexus|GoogleTV|Glass|CrKey[^a-z0-9]|Pixel Build|Pixel (?:XL|C|2|[23] XL)'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Glass'
|
|
model: 'Glass'
|
|
- regex: 'Galaxy Nexus'
|
|
model: 'Galaxy Nexus'
|
|
- regex: '(Nexus (?:S|4|5X?|One))'
|
|
model: '$1'
|
|
- regex: '(Nexus (?:6P?))'
|
|
device: 'phablet'
|
|
model: '$1'
|
|
- regex: '(Nexus (?:7|9|10))'
|
|
device: 'tablet'
|
|
model: '$1'
|
|
- regex: 'CrKey[^a-z0-9]'
|
|
model: 'Chromecast'
|
|
device: 'tv'
|
|
- regex: 'GoogleTV'
|
|
device: 'tv'
|
|
model: 'GoogleTV'
|
|
- regex: 'Pixel Build'
|
|
model: 'Pixel'
|
|
- regex: 'Pixel XL'
|
|
model: 'Pixel XL'
|
|
- regex: 'Pixel 3 XL'
|
|
model: 'Pixel 3 XL'
|
|
- regex: 'Pixel 2 XL'
|
|
model: 'Pixel 2 XL'
|
|
- regex: 'Pixel 2'
|
|
model: 'Pixel 2'
|
|
- regex: 'Pixel C'
|
|
device: 'tablet'
|
|
model: 'Pixel C'
|
|
|
|
# Gradiente
|
|
Gradiente:
|
|
regex: 'GRADIENTE'
|
|
device: 'feature phone'
|
|
models:
|
|
- regex: 'GRADIENTE-([a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: 'GRADIENTE ([a-z0-9\-]+)'
|
|
model: '$1'
|
|
|
|
# Grundig
|
|
Grundig:
|
|
regex: 'GR?-TB[0-9]+[a-z]*|GRUNDIG|portalmmm/2\.0 G'
|
|
device: 'tv'
|
|
models:
|
|
- regex: '(GR?-TB[0-9]+[a-z]*)'
|
|
device: 'tablet'
|
|
model: '$1'
|
|
- regex: 'GRUNDIG ([a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: 'portalmmm/2\.0 G([a-z0-9]+)'
|
|
model: 'G$1'
|
|
|
|
# Haier
|
|
Haier:
|
|
regex: 'Haier|(?:HW-)?W(?:716|757|860|970)[);/ ]|(?:PAD[ _](D71|G781|d85))'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: '(?:HW-)?W(716|757|860|970)[);/ ]'
|
|
model: 'W$1'
|
|
- regex: 'PAD[ -_](D71|G781|d85)'
|
|
device: 'tablet'
|
|
model: '$1'
|
|
- regex: 'Haier[ _\-](H[WT]-[^/;]+) Build'
|
|
model: '$1'
|
|
- regex: 'Haier[ _\-](H[WT]-[a-z0-9_\-]+)'
|
|
model: '$1'
|
|
- regex: 'Haier[ _\-](sy[0-9]+)'
|
|
model: '$1'
|
|
- regex: 'Haier[ _\-]([a-z0-9\-]+)'
|
|
model: '$1'
|
|
device: 'feature phone'
|
|
|
|
# HannSpree
|
|
HannSpree:
|
|
regex: '(HSG[0-9]{4})|SN97T41W|SN1AT71W\(B\)|SN70T51A|SN70T31?|T7-QC'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: '(HSG[0-9]{4})'
|
|
model: '$1'
|
|
- regex: 'SN1AT71W\(B\)'
|
|
model: 'SN1AT71W(B)'
|
|
- regex: 'SN70T31'
|
|
model: 'SN70T31'
|
|
- regex: 'SN70T3'
|
|
model: 'SN70T3'
|
|
- regex: 'SN70T51A'
|
|
model: 'SN70T51A'
|
|
- regex: 'SN97T41W'
|
|
model: 'SN97T41W'
|
|
- regex: 'T7-QC'
|
|
model: 'SNAT71BUE'
|
|
|
|
# Hasee
|
|
Hasee:
|
|
regex: 'Hasee'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Hasee ([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'Hasee ([^;/)]+)[);/ ]'
|
|
model: '$1'
|
|
|
|
# Hisense
|
|
Hisense:
|
|
regex: '(?:HS-)?Hisense ([^;/]+) Build|Hisense [^);/]+|HS-(?:G|U|EG?|I|L|T|X)[0-9]+[a-z0-9\-]*|E270BSA|M470BS[AE]|E2281|EG680'
|
|
device: 'smartphone'
|
|
models:
|
|
# explicit tablet models
|
|
- regex: 'E270BSA'
|
|
device: 'tablet'
|
|
model: 'Sero 7'
|
|
- regex: 'M470BS[AE]'
|
|
device: 'tablet'
|
|
model: 'Sero 7 Pro'
|
|
- regex: 'E2281'
|
|
device: 'tablet'
|
|
model: 'Sero 8'
|
|
- regex: 'EG680'
|
|
model: 'Smartfren Andromax Z'
|
|
|
|
- regex: '(HS-(?:G|U|EG?|I|L|T|X)[0-9]+[a-z0-9\-]*)'
|
|
model: '$1'
|
|
- regex: '(?:HS-)?Hisense ([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'Hisense ([^);/]+)'
|
|
model: '$1'
|
|
|
|
# Hi-Level
|
|
Hi-Level:
|
|
regex: 'HLV-T([a-z0-9]+)'
|
|
device: 'tablet'
|
|
model: 'HLV-T$1'
|
|
|
|
# Homtom
|
|
Homtom:
|
|
regex: 'Homtom|(?:HT[0-9]{1,2})(?: ?Pro)? Build'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: '(HT[0-9]{1,2}(?: ?Pro)?) Build'
|
|
model: '$1'
|
|
- regex: 'Homtom ([^;/]+) Build'
|
|
model: '$1'
|
|
|
|
# Hosin
|
|
Hosin:
|
|
regex: 'HOSIN[ _-]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'HOSIN[ _-]([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'HOSIN[ _-]([^;/]+)[;/)]'
|
|
model: '$1'
|
|
|
|
# Huawei
|
|
Huawei:
|
|
regex: '(HW-)?(?:Huawei|Ideos|Honor[ _]?|(?:(?:ALE|ALP|ANE|ATU|BAC|BLN|BND|BLA|CAM|CHE[12]|CHM|CLT|COL|DLI|DRA|EML|EVA|FIG|FRD|SLA|STF|G621|H[36]0|KIW|LDN|LLD|LYA|MHA|MYA|NEO|NEM|PLE|PLK|PRA|RNE|SCL|SNE|TRT|VKY|VTR|WAS)-[A-Z]{0,2}[0-9]{1,4}[A-Z]?|U(?:8230|8500|8661|8665|8667|8800|8818|8860|9200|9508))[);/ ])|Bucare Y330-U05|hi6210sft'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'U(8230|8661|8667)[);/ ]'
|
|
model: 'U$1'
|
|
- regex: 'U8500[);/ ]'
|
|
model: 'Ideos X2'
|
|
- regex: 'U8510[);/ ]'
|
|
model: 'Ideos X3'
|
|
- regex: 'U8665[);/ ]'
|
|
model: 'Fusion 2'
|
|
- regex: 'U8800[);/ ]'
|
|
model: 'Ideos X5'
|
|
- regex: 'U8818[);/ ]'
|
|
model: 'Ascend G300'
|
|
- regex: 'U8860[);/ ]'
|
|
model: 'Honor'
|
|
- regex: 'U9200[);/ ]'
|
|
model: 'Ascend P1'
|
|
- regex: 'U9500[);/ ]'
|
|
model: 'Ascend D1'
|
|
- regex: 'U9508[);/ ]'
|
|
model: 'Honor 2'
|
|
- regex: 'CHE2?-[UT]L00[HM]?|CHE1-CL[12]0|CHE2-L11'
|
|
model: 'Honor 4X'
|
|
- regex: 'CHM-[CUT]L00[HM]?'
|
|
model: 'Honor Play 4C'
|
|
- regex: 'DUK-AL20'
|
|
model: 'Honor V9'
|
|
- regex: '(?:Honor_|HW-)?G621-TL00M?[);/ ]'
|
|
model: 'G621'
|
|
- regex: '(?:Honor_|HW-)?H30-(?:C00|L01M?|L02|U10|T00|T10)(?:_TD)?[);/ ]'
|
|
model: 'Honor 3C'
|
|
- regex: '(?:Honor_|HW-)?SCL-(?:AL00|CL00|TL00H?)(?:_TD)?[);/ ]'
|
|
model: 'Honor 4A'
|
|
- regex: '(?:Honor_|HW-)?CAM-TL00(?:_TD)?[);/ ]'
|
|
model: 'Honor 5A'
|
|
- regex: '(?:Honor_|HW-)?KIW-(?:TL00H|L21)(?:_TD)?[);/ ]'
|
|
model: 'Honor 5X'
|
|
- regex: '(?:Honor_|HW-)?CHM-U01(?:_TD)?[);/ ]'
|
|
model: 'Honor 4C'
|
|
- regex: '(?:Honor_|HW-)?H60-L(?:01|02|03|04|11|12)(?:_TD)?[);/ ]'
|
|
model: 'Honor 6'
|
|
- regex: '(?:Honor_|HW-)?SCL-L01(?:_TD)?[);/ ]'
|
|
model: 'Honor Y6'
|
|
- regex: '(?:Honor_|HW-)?PLK-(?:AL10|CL00|TL00|TL01H?|UL00|L01)[);/ ]'
|
|
model: 'Honor 7'
|
|
- regex: '(?:Honor_|HW-)?LND-AL[34]0[);/ ]'
|
|
model: 'Honor 7C'
|
|
- regex: '(?:Honor_|HW-)?NEM-L51[);/ ]'
|
|
model: 'Honor 5C'
|
|
- regex: '(?:Honor_|HW-)?NEM-L22[);/ ]'
|
|
model: 'Honor 5C Dual SIM'
|
|
- regex: '(?:Honor_|HW-)?NEM-L21[);/ ]'
|
|
model: 'Honor 7 Lite'
|
|
- regex: '(?:HONOR[ _]?)?DLI-(?:AL10|L[24]2|TL20)'
|
|
model: 'Honor 6A'
|
|
- regex: '(?:HONOR[ _]?)?BLN-(?:L2[124]|AL[13]0)'
|
|
model: 'Honor 6X'
|
|
- regex: '(?:HONOR[ _]?)?BND-(?:AL10|L21)'
|
|
model: 'Honor 7X'
|
|
- regex: 'FRD-(AL00|L09)'
|
|
model: 'Honor 8'
|
|
- regex: 'PRA-AL00X'
|
|
model: 'Honor 8 Lite'
|
|
- regex: 'STF-(AL10|L09)'
|
|
model: 'Honor 9'
|
|
- regex: 'LLD-AL20'
|
|
model: 'Honor 9i'
|
|
- regex: 'LLD-(?:AL[01]0|L31)'
|
|
model: 'Honor 9 Lite'
|
|
- regex: 'COL-(?:AL[01]0|TL[01]0|L29)'
|
|
model: 'Honor 10'
|
|
- regex: 'GRA-L09'
|
|
model: 'P8'
|
|
- regex: 'ALE-L(?:02|21|23)'
|
|
model: 'P8 Lite (2015)'
|
|
- regex: 'PRA-L[AX]1|hi6210sft'
|
|
model: 'P8 Lite (2017)'
|
|
- regex: 'RNE-L22'
|
|
model: 'Nova 2I'
|
|
- regex: 'ANE-AL00'
|
|
model: 'Nova 3e'
|
|
- regex: 'EVA-L[012]9'
|
|
model: 'P9'
|
|
- regex: 'VNS-L[23]1'
|
|
model: 'P9 Lite'
|
|
- regex: 'SLA-L(02|03|22)'
|
|
model: 'P9 Lite Mini'
|
|
- regex: 'VTR-(?:L[02]9|AL00|TL00)'
|
|
model: 'P10'
|
|
- regex: 'WAS-L(?:X1|X1A|X2|X2J|X3|03T)'
|
|
model: 'P10 Lite'
|
|
- regex: 'BAC-L[02]3'
|
|
model: 'P10 Selfie'
|
|
- regex: 'VKY-(?:AL00|L09|L29)'
|
|
model: 'P10 Plus'
|
|
- regex: 'EML-(?:AL00|L09|L29)'
|
|
model: 'P20'
|
|
- regex: 'ANE-LX[123]'
|
|
model: 'P20 Lite'
|
|
- regex: 'CLT-L[02]9'
|
|
model: 'P20 Pro'
|
|
- regex: 'FIG-LX1'
|
|
model: 'P smart'
|
|
- regex: 'CAM-L(?:03|21)'
|
|
model: 'Y6II'
|
|
- regex: 'TRT-LX1'
|
|
model: 'Y7 (2017)'
|
|
- regex: 'LDN-L(?:01|X3)'
|
|
model: 'Y7 (2018)'
|
|
- regex: 'LDN-(?:AL00|L21)'
|
|
model: 'Y7 Prime'
|
|
- regex: 'MHA-(?:L[02]9|AL00)'
|
|
model: 'Mate 9'
|
|
- regex: 'ALP-AL00'
|
|
model: 'Mate 10'
|
|
- regex: 'RNE-L(?:03|21)'
|
|
model: 'Mate 10 Lite'
|
|
- regex: 'BLA-(?:L[02]9|AL00)'
|
|
model: 'Mate 10 Pro'
|
|
- regex: 'LYA-L(09|29)'
|
|
model: 'Mate 20 Pro'
|
|
- regex: 'SNE-LX[0-3]'
|
|
model: 'Mate 20 Lite'
|
|
- regex: 'NEO-AL00'
|
|
model: 'Mate RS'
|
|
- regex: 'Bucare Y330-U05'
|
|
model: 'Y330-U05'
|
|
- regex: 'MYA-L11'
|
|
model: 'Y6 (2016)'
|
|
- regex: 'MYA-L22'
|
|
model: 'Y5 (2017)'
|
|
- regex: 'DRA-L(01|03|21|23)'
|
|
model: 'Y5 (2018)'
|
|
- regex: 'T1-A21w'
|
|
device: 'tablet'
|
|
model: 'Honor Tablet Note'
|
|
- regex: 'PLE-70[13]L'
|
|
device: 'tablet'
|
|
model: 'MediaPad T2 7.0 Pro'
|
|
- regex: 'T1-A21L'
|
|
device: 'tablet'
|
|
model: 'MediaPad T1 10'
|
|
- regex: '(MediaPad[^/;]*) Build'
|
|
device: 'tablet'
|
|
model: '$1'
|
|
- regex: 'Ideos([^;/]*) Build'
|
|
model: 'Ideos$1'
|
|
- regex: '(?:HUAWEI )?MT([0-9]+)'
|
|
device: 'phablet'
|
|
model: 'Ascend Mate $1'
|
|
- regex: 'Huawei[ _\-]?([^/;]*) Build'
|
|
model: '$1'
|
|
- regex: '(?:HW-)?Huawei(?:/1\.0/0?(?:Huawei))?[_\- /]?([a-z0-9\-_]+)'
|
|
model: '$1'
|
|
- regex: 'Huawei; ([a-z0-9 \-]+)'
|
|
model: '$1'
|
|
|
|
# Hyundai
|
|
Hyundai:
|
|
regex: 'Hyundai|Ultra Air|Ultra Live'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Ultra Live II'
|
|
model: 'Ultra Live II'
|
|
- regex: 'Ultra Live'
|
|
model: 'Ultra Live'
|
|
- regex: 'Ultra Air'
|
|
model: 'Ultra Air'
|
|
- regex: 'Hyundai ([^;/]+) Build'
|
|
model: '$1'
|
|
device: 'tablet'
|
|
- regex: 'Hyundai[ _\-]?([a-z0-9_-]+)'
|
|
model: '$1'
|
|
device: 'tablet'
|
|
|
|
#i-Joy
|
|
'i-Joy':
|
|
regex: 'i-Joy|i-Call|(?:Neon[79]|Sygnus|Deox|Elektra (?:M|L|XL|XXL))[);/ ]'
|
|
device: 'smartphone'
|
|
models:
|
|
# explicit smartphone models
|
|
- regex: 'Elektra M[);/ ]'
|
|
model: 'Elektra M'
|
|
- regex: 'Elektra L[);/ ]'
|
|
model: 'Elektra L'
|
|
- regex: 'Elektra XL[);/ ]'
|
|
model: 'Elektra XL'
|
|
- regex: 'Elektra XXL[);/ ]'
|
|
model: 'Elektra XXL'
|
|
device: 'phablet'
|
|
|
|
# explicit tablet models
|
|
- regex: 'Neon([79])[);/ ]'
|
|
model: 'Neon $1'
|
|
device: 'tablet'
|
|
- regex: 'Sygnus[);/ ]'
|
|
model: 'Sygnus'
|
|
device: 'tablet'
|
|
- regex: 'Deox[);/ ]'
|
|
model: 'Deox'
|
|
device: 'tablet'
|
|
|
|
- regex: 'i-Call ([^;/]+) Build'
|
|
model: 'i-Call $1'
|
|
- regex: 'i-Joy ([^;/]+) Build'
|
|
model: '$1'
|
|
|
|
# iBall
|
|
iBall:
|
|
regex: 'iBall[ _]([^/;]*)[ _]Build'
|
|
device: 'tablet'
|
|
model: '$1'
|
|
|
|
iBerry:
|
|
regex: 'AUXUS ([^/;]+) Build'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'AUXUS (Core[^/;]+) Build'
|
|
device: 'tablet'
|
|
model: '$1'
|
|
- regex: 'AUXUS ([^/;]+) Build'
|
|
model: '$1'
|
|
|
|
# IconBIT
|
|
IconBIT:
|
|
regex: 'NT-(3506M|0704S|0909T|1009T|10[01]1T|1017T|3601P/3602P|3603P|3702S|3805C|3905T|3701S|0701S|0805C|0902S|370[23]M)'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'NT-3506M'
|
|
device: 'smartphone'
|
|
model: 'NetTAB Mercury Quad FHD'
|
|
- regex: 'NT-0704S'
|
|
model: 'NetTAB Sky LE'
|
|
- regex: 'NT-0909T'
|
|
model: 'NetTAB Thor IZ'
|
|
- regex: 'NT-1009T'
|
|
model: 'NetTAB Thor quad II'
|
|
- regex: 'NT-10[01]1T'
|
|
model: 'NetTAB Thor LE'
|
|
- regex: 'NT-1017T'
|
|
model: 'NetTAB Thor 3G quad'
|
|
- regex: 'NT-3601P/3602P'
|
|
model: 'NetTAB Pocket 3G'
|
|
- regex: 'NT-3603P'
|
|
model: 'NetTAB Pocket 3G Slim'
|
|
- regex: 'NT-3702S'
|
|
model: 'NetTAB Sky HD 3G'
|
|
- regex: 'NT-3805C'
|
|
model: 'NetTAB Skat 3G quad'
|
|
- regex: 'NT-3701S'
|
|
model: 'NetTAB Sky 3G duo'
|
|
- regex: 'NT-3905T'
|
|
model: 'NetTAB Thor ZX 3G'
|
|
- regex: 'NT-0701S'
|
|
model: 'NetTAB Sky net'
|
|
- regex: 'NT-0805C'
|
|
model: 'NetTAB Skat MX'
|
|
- regex: 'NT-0902S'
|
|
model: 'NetTAB Space quad RX'
|
|
- regex: 'NT-3702M'
|
|
model: 'NetTAB Matrix 3G duo'
|
|
- regex: 'NT-3703M'
|
|
model: 'NetTAB Matrix 3GT'
|
|
|
|
# LYF
|
|
LYF:
|
|
regex: '(LYF[ _])?LS-[456][0-9]{3}|LYF/[^/]+/'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'LS-4004'
|
|
model: 'Flame 2'
|
|
- regex: 'LS-5501'
|
|
model: 'Earth 1'
|
|
- regex: 'LS-5021'
|
|
model: 'Earth 2'
|
|
- regex: 'LS-5505'
|
|
model: 'Water F1'
|
|
- regex: 'LS-4503'
|
|
model: 'Flame LS-4503'
|
|
- regex: 'LS-4001'
|
|
model: 'Flame 3'
|
|
- regex: 'LS-4003'
|
|
model: 'Flame 4'
|
|
- regex: 'LS-4002'
|
|
model: 'Flame 5'
|
|
- regex: 'LS-4005'
|
|
model: 'Flame 6'
|
|
- regex: '(LYF[ _])?LS-4006'
|
|
model: 'Flame 7'
|
|
- regex: 'LS-4008'
|
|
model: 'Flame 7S'
|
|
- regex: 'LS-4505'
|
|
model: 'Flame 8'
|
|
- regex: 'LS-5002'
|
|
model: 'Water 1'
|
|
- regex: 'LS-5005'
|
|
model: 'Water 4'
|
|
- regex: 'LS-5006'
|
|
model: 'Water 6'
|
|
- regex: 'LS-5008'
|
|
model: 'Water 2'
|
|
- regex: 'LS-5009'
|
|
model: 'Wind 6'
|
|
- regex: 'LS-5013'
|
|
model: 'Wind 5'
|
|
- regex: 'LS-5014'
|
|
model: 'Wind 4'
|
|
- regex: 'LS-5010'
|
|
model: 'Wind 1'
|
|
- regex: 'LS-5015'
|
|
model: 'Water 8'
|
|
- regex: 'LS-5016'
|
|
model: 'Wind 7'
|
|
- regex: 'LS-5504'
|
|
model: 'Water 7'
|
|
- regex: 'LS-5017'
|
|
model: 'Water 11'
|
|
- regex: 'LS-5018'
|
|
model: 'Wind 4S'
|
|
- regex: 'LS-5020'
|
|
model: 'Water 10'
|
|
- regex: 'LS-5201'
|
|
model: 'Water F1S'
|
|
- regex: 'LS-5502'
|
|
model: 'Wind 3'
|
|
- regex: 'LS-5503'
|
|
model: 'Water 3'
|
|
- regex: 'LS-5506'
|
|
model: 'Water 9'
|
|
- regex: 'LS-6001'
|
|
model: 'Wind 2'
|
|
|
|
- regex: 'LYF/([^/]+)/'
|
|
model: '$1'
|
|
|
|
# iNew
|
|
iNew:
|
|
regex: 'iNew|(?:V7A|V3 Plus|V3-?E|V3C)(?: Build|[;/\)])'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'V3C(?: Build|[;/\)])'
|
|
model: 'V3C'
|
|
- regex: 'V3-?E(?: Build|[;/\)])'
|
|
model: 'V3-E'
|
|
- regex: 'V3 Plus(?: Build|[;/\)])'
|
|
model: 'V3 Plus'
|
|
- regex: 'V7A(?: Build|[;/\)])'
|
|
model: 'V7A'
|
|
- regex: 'iNew[ -_]([^;/]+) Build'
|
|
model: '$1'
|
|
|
|
# Infinix
|
|
Infinix:
|
|
regex: 'Infinix'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Infinix X260'
|
|
model: 'Buzz'
|
|
- regex: 'Infinix X502'
|
|
model: 'Alpha Marvel'
|
|
- regex: 'Infinix X570'
|
|
model: 'Alpha'
|
|
|
|
- regex: 'Infinix X350'
|
|
model: 'Surf Smart'
|
|
- regex: 'Infinix X351'
|
|
model: 'Surf Smart 3G'
|
|
- regex: 'Infinix X352'
|
|
model: 'Surf Smart 2'
|
|
- regex: 'Infinix X403'
|
|
model: 'Surf Spice'
|
|
- regex: 'Infinix X503'
|
|
model: 'Surf Bravo'
|
|
- regex: 'Infinix X511'
|
|
model: 'Surf Noir'
|
|
|
|
- regex: 'Infinix X400'
|
|
model: 'Race'
|
|
- regex: 'Infinix X401'
|
|
model: 'Race Lite'
|
|
- regex: 'Infinix X450'
|
|
model: 'Race Bolt'
|
|
- regex: 'Infinix X451'
|
|
model: 'Race Bolt Q'
|
|
- regex: 'Infinix X454'
|
|
model: 'Race Bolt 2'
|
|
- regex: 'Infinix X500'
|
|
model: 'Race Eagle'
|
|
- regex: 'Infinix X501'
|
|
model: 'Race Jet'
|
|
|
|
- regex: 'Infinix X506'
|
|
model: 'Zero'
|
|
- regex: 'Infinix X509'
|
|
model: 'Zero 2'
|
|
- regex: 'Infinix X552'
|
|
model: 'Zero 3'
|
|
- regex: 'Infinix X555'
|
|
model: 'Zero 4'
|
|
- regex: 'Infinix X(?:574|602)'
|
|
model: 'Zero 4 Plus'
|
|
- regex: 'Infinix X603'
|
|
model: 'Zero 5'
|
|
- regex: 'Infinix X603B'
|
|
model: 'Zero 5 Pro'
|
|
- regex: 'Infinix X507'
|
|
|
|
model: 'Hot'
|
|
- regex: 'Infinix X510'
|
|
model: 'Hot 2'
|
|
- regex: 'Infinix X55[34]'
|
|
model: 'Hot 3'
|
|
- regex: 'Infinix X521'
|
|
model: 'Hot S'
|
|
- regex: 'Infinix X522'
|
|
model: 'Hot S2'
|
|
- regex: 'Infinix X557'
|
|
model: 'Hot 4'
|
|
- regex: 'Infinix X556'
|
|
model: 'Hot 4 Pro'
|
|
- regex: 'Infinix X559c'
|
|
model: 'Hot 5'
|
|
- regex: 'Infinix X559'
|
|
model: 'Hot 5 Lite'
|
|
- regex: 'Infinix X606B?'
|
|
model: 'Hot 6'
|
|
- regex: 'Infinix X573B?'
|
|
model: 'Hot S3'
|
|
- regex: 'Infinix X556'
|
|
model: 'Hot 4 Pro'
|
|
|
|
- regex: 'Infinix X5010'
|
|
model: 'Smart'
|
|
- regex: 'Infinix X5515F'
|
|
model: 'Smart 2'
|
|
- regex: 'Infinix X5514D'
|
|
model: 'Smart 2 Pro'
|
|
|
|
- regex: 'Infinix X551'
|
|
model: 'Hot Note'
|
|
device: 'phablet'
|
|
- regex: 'Infinix X600'
|
|
model: 'Note 2'
|
|
device: 'phablet'
|
|
- regex: 'Infinix X601'
|
|
model: 'Note 3'
|
|
device: 'phablet'
|
|
- regex: 'Infinix X572'
|
|
model: 'Note 4'
|
|
device: 'phablet'
|
|
- regex: 'Infinix X571'
|
|
model: 'Note 4 Pro'
|
|
device: 'phablet'
|
|
- regex: 'Infinix X604'
|
|
model: 'Note 5'
|
|
device: 'phablet'
|
|
|
|
- regex: 'Infinix HOT ([a-z]?[1-6])( (?:Lite|Plus|Pro))?'
|
|
model: 'Hot $1$2'
|
|
- regex: 'Infinix (X[78]00)'
|
|
device: 'tablet'
|
|
model: '$1'
|
|
- regex: 'Infinix (X\d+)'
|
|
model: '$1'
|
|
- regex: 'Infinix[ _]([a-z0-9_\-]+)'
|
|
model: '$1'
|
|
|
|
# Inkti
|
|
Inkti:
|
|
regex: 'intki[ _]([^/;]*)[ _]Build'
|
|
device: 'smartphone'
|
|
model: '$1'
|
|
|
|
# Innostream
|
|
Innostream:
|
|
regex: 'INNO([a-z0-9]+)'
|
|
device: 'feature phone'
|
|
model: 'INNO$1'
|
|
|
|
# Inq
|
|
INQ:
|
|
regex: 'INQ[/ ]'
|
|
device: 'feature phone'
|
|
models:
|
|
- regex: 'INQ/([a-z0-9\-]+)'
|
|
model: '$1'
|
|
- regex: 'INQ ([^;/]+) Build'
|
|
model: '$1'
|
|
device: 'smartphone'
|
|
|
|
# Intex
|
|
Intex:
|
|
regex: 'Intex|(Aqua|Cloud[ _][XY][0-9]{1})'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Intex[ _]([^/;]*)[ _]Build'
|
|
model: '$1'
|
|
- regex: '(Aqua|Cloud)[ _\.]([^/;\)]+)(?:[ _]Build|(?<!Build)/|\))'
|
|
model: '$1 $2'
|
|
- regex: 'Intex[ _]([a-z0-9_+\-]+)'
|
|
model: '$1'
|
|
|
|
# i-mate
|
|
i-mate:
|
|
regex: 'i-mate ([a-z0-9]+)'
|
|
device: 'feature phone'
|
|
model: '$1'
|
|
|
|
# i-mobile
|
|
i-mobile:
|
|
regex: 'i-mobile ?[a-z0-9]+|i-Style|IQ ?(9\.1|5\.5|5\.6A?)'
|
|
device: 'feature phone'
|
|
models:
|
|
- regex: 'i-mobile (i-note[^/;]*) Build'
|
|
model: '$1'
|
|
device: 'tablet'
|
|
- regex: 'i-Style ?([^;/]+) Build'
|
|
model: 'i-Style $1'
|
|
device: 'smartphone'
|
|
- regex: 'IQ ?(9\.1|5\.5|5\.6A?)'
|
|
model: 'IQ $1'
|
|
device: 'smartphone'
|
|
- regex: 'i-mobile (IQ[^/;]*) Build'
|
|
model: '$1'
|
|
device: 'smartphone'
|
|
- regex: 'i-mobile(?: )?([a-z0-9\- ]+) Build'
|
|
model: '$1'
|
|
- regex: 'i-mobile(?: )?([a-z0-9]+)'
|
|
model: '$1'
|
|
|
|
# ikomo
|
|
iKoMo:
|
|
regex: 'iKoMo ([a-z0-9]+)'
|
|
device: 'feature phone'
|
|
model: '$1'
|
|
|
|
# iOcean
|
|
iOcean:
|
|
regex: 'iOCEAN'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'iOCEAN[ _\-]?([^/;]+) Build'
|
|
model: '$1'
|
|
- regex: 'iOCEAN[ _\-]?([^);/ ]+)'
|
|
model: '$1'
|
|
|
|
# Impression
|
|
Impression:
|
|
regex: '(?:Impression[ _\-]?([^/;]+)|A502|I10\-LE|ImPad[ _]?(.*)|ImSmart[ _]?(.*)) Build'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: '(A502)'
|
|
model: '$1'
|
|
device: 'smartphone'
|
|
- regex: 'ImSmart[ _]?(.*) Build'
|
|
model: 'ImSmart $1'
|
|
device: 'smartphone'
|
|
- regex: 'ImPad[ _]?(.*) Build'
|
|
model: 'ImPad $1'
|
|
- regex: '(I10\-LE)'
|
|
model: '$1'
|
|
device: 'smartphone'
|
|
- regex: 'Impression[ _\-]?([^/;]+) Build'
|
|
model: '$1'
|
|
|
|
# iTel
|
|
iTel:
|
|
regex: 'itel|iNote'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'iNote ([^/;]*)Build'
|
|
model: 'iNote $1'
|
|
- regex: 'iNote_([a-z0-9\-_]+)'
|
|
model: 'iNote $1'
|
|
- regex: 'iTel ([^/;]*)Build'
|
|
model: '$1'
|
|
- regex: 'iTel_([a-z0-9\-_]*)'
|
|
model: '$1'
|
|
|
|
# JAY-Tech
|
|
JAY-Tech:
|
|
regex: 'TPC-[A-Z0-9]+'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'TPC-([A-Z0-9]+)'
|
|
model: 'Tablet PC $1'
|
|
|
|
# Jiayu
|
|
Jiayu:
|
|
regex: '(JY-[a-z0-9]+)[);/ ]'
|
|
device: 'smartphone'
|
|
model: '$1'
|
|
|
|
# Jolla
|
|
Jolla:
|
|
regex: 'Jolla'
|
|
device: 'smartphone'
|
|
model: ''
|
|
|
|
# Kazam
|
|
Kazam:
|
|
regex: 'Kazam ([^;/]+) Build|Trooper_X[0-9][0-9][);/ ]|Tornado 348'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Tornado 348'
|
|
model: 'Tornado 348'
|
|
- regex: 'Trooper_X([0-9])([0-9])[);/ ]'
|
|
model: 'Trooper X$1.$2'
|
|
- regex: 'Kazam ([^;/]+) Build'
|
|
model: '$1'
|
|
|
|
# Kempler & Strauss
|
|
'Kempler & Strauss':
|
|
regex: 'Alumini3Plus|Alumini ?2'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Alumini ?2'
|
|
model: 'Alumini 2'
|
|
- regex: 'Alumini3Plus'
|
|
model: 'Alumini 3 Plus'
|
|
|
|
# Kiano
|
|
Kiano:
|
|
regex: 'Kiano|Elegance_5_0|CORE 10.1 DUAL 3G|Intelect ?(7|8|10)|Slim ?Tab ?\d+(?:[_ ]3GR?)?[);/ ]|Cavion[_ ]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Slim ?Tab ?(\d+)(?:[_ ]3GR?)?'
|
|
model: 'Slim Tab $1'
|
|
device: 'tablet'
|
|
- regex: 'Cavion[_ ](?:Base[_ ])?(\d+)'
|
|
model: 'Cavion Base $1'
|
|
device: 'tablet'
|
|
- regex: 'CORE 10.1 DUAL 3G'
|
|
model: 'CORE 10.1 DUAL 3G'
|
|
device: 'tablet'
|
|
- regex: 'Elegance_5_0'
|
|
model: 'Elegance 5.0'
|
|
- regex: '(Kiano)?(Intelect|Elegance) ?(7|8|10)?'
|
|
model: '$2 $3'
|
|
device: 'tablet'
|
|
- regex: 'Kiano[ _]([^;/]+) Build'
|
|
model: '$1'
|
|
|
|
# Kingsun
|
|
Kingsun:
|
|
regex: 'Kingsun[ _-]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Kingsun[ _-]([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'Kingsun[ -]((?!Build)[a-z0-9_-]+)'
|
|
model: '$1'
|
|
|
|
# Kogan
|
|
Kogan:
|
|
regex: 'Kogan'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Kogan[ _-]([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'Kogan[ _-]([a-z0-9_-]+)'
|
|
model: '$1'
|
|
|
|
# Komu
|
|
Komu:
|
|
regex: 'Komu[ -]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Komu[ -]([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'Komu[ -]([a-z0-9_-]+)'
|
|
model: '$1'
|
|
|
|
# Koobee
|
|
Koobee:
|
|
regex: 'Koobee'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Koobee[ _\-]?([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'Koobee[ _\-]?([a-z0-9_-]+)'
|
|
model: '$1'
|
|
|
|
# Kumai
|
|
Kumai:
|
|
regex: '(?:KM-)?Kumai'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: '(?:KM-)?Kumai[ _\-]?([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: '(?:KM-)?Kumai[ _\-]?([a-z0-9_-]+)'
|
|
model: '$1'
|
|
|
|
# KT-Tech
|
|
KT-Tech:
|
|
regex: '(KM-[a-z0-9]+|EV-[a-z0-9]+)[);/ ]'
|
|
device: 'smartphone'
|
|
model: '$1'
|
|
|
|
# kddi
|
|
KDDI:
|
|
regex: 'kddi-([a-z0-9]+)'
|
|
device: 'feature phone'
|
|
model: '$1'
|
|
|
|
# KOPO
|
|
KOPO:
|
|
regex: 'KOPO[ _-]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'KOPO[ _\-]?([^/;]+) Build'
|
|
model: '$1'
|
|
- regex: 'KOPO[ _\-]?([^);/ ]+)'
|
|
model: '$1'
|
|
|
|
# Koridy
|
|
Koridy:
|
|
regex: 'KORIDY[ _-]([^/;]+) Build'
|
|
device: 'smartphone'
|
|
model: '$1'
|
|
|
|
#k-touch
|
|
K-Touch:
|
|
regex: 'K-?Touch[ _][a-z0-9]+'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'K-?Touch[ _]([^/;]*)[ _]Build'
|
|
model: '$1'
|
|
- regex: 'K-?Touch[ _]([a-z0-9]+)'
|
|
model: '$1'
|
|
|
|
# kyocera
|
|
Kyocera:
|
|
regex: 'Kyocera|KWC-|QC-|C5120|C5170|C5155|C5215|C6750|C6522N?|C6530N|KYL21|S2151|KC-S701'
|
|
device: 'smartphone'
|
|
models:
|
|
# explicit smartphone models
|
|
- regex: 'C5120'
|
|
model: 'Milano'
|
|
- regex: 'C5155'
|
|
model: 'Rise'
|
|
- regex: 'C5170'
|
|
model: 'Hydro'
|
|
- regex: 'C5215'
|
|
model: 'Hydro EDGE'
|
|
- regex: 'C6522N?'
|
|
model: 'Hydro XTRM'
|
|
- regex: 'C6750'
|
|
model: 'Hydro ELITE'
|
|
- regex: 'C6530N '
|
|
model: 'Hydro LIFE'
|
|
- regex: 'KC-S701'
|
|
model: 'Torque'
|
|
- regex: 'KYL21'
|
|
model: 'Digno S'
|
|
|
|
# explicit feature phone models
|
|
- regex: 'S2151'
|
|
model: 'Coast'
|
|
device: 'feature phone'
|
|
|
|
- regex: 'Kyocera-KZ-([a-z0-9]+)'
|
|
model: 'KZ $1'
|
|
- regex: 'Kyocera(?:[\-/])?([a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: '(?:KWC|QC)-([a-z0-9]+)'
|
|
model: '$1'
|
|
|
|
# Lava
|
|
Lava:
|
|
regex: 'Lava |iris[ _]?([^/;]+)(?:\)| Build)|A76 Build|X1 Selfie Build|X41 Plus Build|Flair Z1'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Flair Z1'
|
|
model: 'Flair Z1'
|
|
- regex: 'A76 Build'
|
|
model: 'A76'
|
|
- regex: 'X1 Selfie Build'
|
|
model: 'Iris X1 Selfie'
|
|
- regex: 'X41 Plus Build'
|
|
model: 'X41 Plus'
|
|
- regex: 'iris[ _]?([^/;]+)(?:\)| Build)'
|
|
model: 'Iris $1'
|
|
- regex: 'Lava[ _]?([^/;]+)(?:/| Build)'
|
|
model: '$1'
|
|
|
|
# Landvo
|
|
Landvo:
|
|
regex: 'XM[123]00|(?<!Blade )S6 Build'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'S6 Build'
|
|
model: 'S6'
|
|
- regex: 'XM([123])00([^/;]*) Build'
|
|
model: 'XM$100$2'
|
|
|
|
# lanix
|
|
Lanix:
|
|
regex: 'LANIX-([a-z0-9]+)|ILIUM[ _]([^;/]+) Build'
|
|
device: 'feature phone'
|
|
models:
|
|
- regex: 'ILIUM[ _]PAD[ _]([^;/]+) Build'
|
|
model: 'Ilium Pad $1'
|
|
device: 'tablet'
|
|
- regex: 'ILIUM[ _]([^;/]+) Build'
|
|
model: 'Ilium $1'
|
|
device: 'smartphone'
|
|
- regex: 'LANIX-([a-z0-9]+)'
|
|
model: '$1'
|
|
|
|
# lct
|
|
LCT:
|
|
regex: 'LCT_([a-z0-9]+)'
|
|
device: 'feature phone'
|
|
model: '$1'
|
|
|
|
# Le Pan
|
|
'Le Pan':
|
|
regex: 'Le ?Pan|TC970 ([^;/]+)Build'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'TC802A'
|
|
model: 'Le Pan Mini'
|
|
- regex: 'TC970 ([^;/]+)Build'
|
|
model: 'TC970 $1'
|
|
- regex: 'Le ?Pan ?(II|S)[);/ ]'
|
|
model: 'Le Pan $1'
|
|
- regex: 'Le ?Pan ?([^;/]+) Build'
|
|
model: '$1'
|
|
|
|
# LeEco
|
|
LeEco:
|
|
regex: 'LeEco|Le ?X[0-9][^;/]+|Le Max|Le [12]|X900 Build'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'X900 Build'
|
|
model: 'Le X900'
|
|
- regex: 'Le ?X526 Build'
|
|
model: 'Le 2'
|
|
- regex: 'Le ?X([^;/]+) Build'
|
|
model: 'Le X$1'
|
|
- regex: 'Le ?X([^ ;/]+)'
|
|
model: 'Le X$1'
|
|
- regex: 'Le ?([12][^;/]+) Build'
|
|
model: 'Le $1'
|
|
- regex: 'Le Max([^;/]*) Build'
|
|
model: 'Le Max$1'
|
|
- regex: 'Le Max([^ ;/]*)'
|
|
model: 'Le Max$1'
|
|
- regex: 'LeEco ([^;/]+) Build'
|
|
model: '$1'
|
|
|
|
# lenco
|
|
Lenco:
|
|
regex: 'Lenco ([^/;]*) Build'
|
|
device: 'tablet'
|
|
model: '$1'
|
|
|
|
# lenovo
|
|
Lenovo:
|
|
regex: '(?:LNV-)?Lenovo|IdeaTab|IdeaPad|Thinkpad|Yoga Tablet|Tab2A[0-9]-[0-9]{2}[a-z]?|YT3-X50L|ZUK[ -_]|K50a40|TB-(8504F|X304F|X704V|X704A)'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Lenovo ?G780'
|
|
model: 'G780'
|
|
device: 'desktop'
|
|
- regex: 'Lenovo ?A3500-FL'
|
|
model: 'IdeaTab A7-40'
|
|
device: 'tablet'
|
|
- regex: 'Lenovo ?A3500-(H|HV|F)'
|
|
model: 'IdeaTab A7-50'
|
|
device: 'tablet'
|
|
- regex: 'Lenovo ?A5500-[HF]'
|
|
model: 'IdeaTab A8-50'
|
|
device: 'tablet'
|
|
- regex: 'Lenovo ?A7600-[HF]'
|
|
model: 'IdeaTab A10-70'
|
|
device: 'tablet'
|
|
- regex: 'TB2-X30[FL]'
|
|
model: 'Tab 2 A10-30'
|
|
device: 'tablet'
|
|
- regex: 'YT3-X50[FL]'
|
|
model: 'Yoga Tab 3'
|
|
device: 'tablet'
|
|
- regex: 'TB3-710[IF]'
|
|
model: 'TAB3 7 Essential'
|
|
device: 'tablet'
|
|
- regex: 'TB3-850[FM]'
|
|
model: 'TAB3 8'
|
|
device: 'tablet'
|
|
- regex: 'Lenovo TB-X304[FL]'
|
|
model: 'TAB4 10'
|
|
device: 'tablet'
|
|
- regex: 'TB-X704V'
|
|
model: 'TAB4 10 Plus'
|
|
device: 'tablet'
|
|
- regex: 'TB-X704A'
|
|
model: 'Moto Tab'
|
|
device: 'tablet'
|
|
- regex: 'Lenovo ?B8000(-[FH])?'
|
|
model: 'Yoga Tablet 10'
|
|
device: 'tablet'
|
|
- regex: 'Lenovo ?B6000(-[FH])?'
|
|
model: 'Yoga Tablet 8'
|
|
device: 'tablet'
|
|
- regex: 'YT3-X90(L|F|X)'
|
|
model: 'Yoga 3 Pro'
|
|
device: 'tablet'
|
|
- regex: 'YT3-850[FL]'
|
|
model: 'Yoga Tab 3 8'
|
|
device: 'tablet'
|
|
|
|
- regex: 'Lenovo ([ASB][0-9]{4})[A-Z]?\-[EHF]'
|
|
model: 'IdeaTab $1'
|
|
device: 'tablet'
|
|
- regex: 'ThinkPadTablet_(A[0-9]{3})_'
|
|
model: 'ThinkPad Tablet $1'
|
|
device: 'tablet'
|
|
- regex: 'ThinkPad ?Tablet([^;/]*) Build'
|
|
model: 'ThinkPad Tablet$1'
|
|
device: 'tablet'
|
|
- regex: 'IdeaPad ?([^;/]*) Build'
|
|
model: 'IdeaPad $1'
|
|
device: 'tablet'
|
|
- regex: 'Lenovo TAB ?([^/;]*) Build'
|
|
model: 'TAB $1'
|
|
device: 'tablet'
|
|
- regex: 'Lenovo ?A3300-(?:GV|H)'
|
|
model: 'TAB 2 A7-30'
|
|
device: 'tablet'
|
|
- regex: 'TB-8504F'
|
|
model: 'TAB 4 8'
|
|
device: 'tablet'
|
|
- regex: 'TB-X304F'
|
|
model: 'TAB 4 10'
|
|
device: 'tablet'
|
|
- regex: 'Tab2A([0-9]-[0-9]{2}[a-z]?)'
|
|
model: 'TAB 2 A$1'
|
|
device: 'tablet'
|
|
- regex: 'IdeaTab[ \-_]?([a-z0-9]+)'
|
|
model: 'IdeaTab $1'
|
|
device: 'tablet'
|
|
- regex: 'Yoga Tablet([^;/]+) Build'
|
|
model: 'Yoga Tablet$1'
|
|
device: 'tablet'
|
|
- regex: 'Lenovo TB\-X704F Build/NMF26F'
|
|
model: 'Tab 4 10 Plus'
|
|
device: 'tablet'
|
|
- regex: 'Lenovo (TB[0-9]?\-[a-z0-9\-]+) Build'
|
|
model: '$1'
|
|
device: 'tablet'
|
|
- regex: 'ZUK[ -_]([^/;]*) Build'
|
|
model: 'ZUK $1'
|
|
- regex: 'k50a40 Build'
|
|
model: 'K3 Note'
|
|
- regex: 'A7010a48 Build'
|
|
model: 'K4 Note'
|
|
- regex: 'A7020a48 Build'
|
|
model: 'K5 Note'
|
|
- regex: '(?:Lenovo-)?A6020(?:a40|l36) Build'
|
|
model: 'K5 Vibe'
|
|
- regex: 'A6020a46 Build'
|
|
model: 'K5 Vibe Plus'
|
|
- regex: 'k53a48 Build'
|
|
model: 'K6 Note'
|
|
- regex: 'K33a42 Build'
|
|
model: 'K6 Power'
|
|
- regex: 'P1ma40 Build'
|
|
model: 'P1 Vibe'
|
|
- regex: 'P2a42 Build'
|
|
model: 'P2'
|
|
- regex: 'Lenovo ([^/;]*) Build'
|
|
model: '$1'
|
|
- regex: '(?:LNV-|Lenovo-)?Lenovo[ \-_]?([a-z0-9_+\-]+)'
|
|
model: '$1'
|
|
|
|
# Lexand
|
|
Lexand:
|
|
regex: '(?:SC7 PRO HD|S5A[1-4]|S4A[1-5]|S6A1|A811|A802)[);/ ]|Lexand ([^;/]+) Build'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'A(811|802)'
|
|
device: 'tablet'
|
|
model: 'A$1'
|
|
|
|
- regex: 'S4A1'
|
|
model: 'Vega'
|
|
- regex: 'S4A2'
|
|
model: 'Irida'
|
|
- regex: 'S4A3'
|
|
model: 'Pallada'
|
|
- regex: 'S4A5'
|
|
model: 'Oxygen'
|
|
- regex: 'S4A4 NEON'
|
|
model: 'S4A4 Neon'
|
|
- regex: 'S5A1'
|
|
model: 'Callisto'
|
|
- regex: 'S5A2'
|
|
model: 'Overon'
|
|
- regex: 'S5A3'
|
|
model: 'Capella'
|
|
- regex: 'S5A4'
|
|
model: 'Argon'
|
|
- regex: 'S6A1'
|
|
model: 'Antares'
|
|
- regex: 'SC7 PRO HD'
|
|
model: 'SC7 PRO HD'
|
|
|
|
- regex: 'Lexand ([^;/]+) Build'
|
|
model: '$1'
|
|
|
|
# lexibook
|
|
Lexibook:
|
|
regex: '(MFC[0-9]{3}[a-z]{2,})'
|
|
device: 'tablet'
|
|
models:
|
|
# Explicit tablet models
|
|
- regex: 'MFC191FR'
|
|
model: 'Tablet Ultra 3 XL'
|
|
- regex: 'MFC045FR'
|
|
model: 'TabTab'
|
|
- regex: 'MFC163FR'
|
|
model: 'Tablet Master 3'
|
|
- regex: 'MFC142FR'
|
|
model: 'Tablet Kids'
|
|
- regex: 'MFC250FR'
|
|
model: 'Tablet Junior'
|
|
- regex: 'MFC270FR'
|
|
model: 'Tablet Junior Power Touch'
|
|
- regex: 'MFC280FR'
|
|
model: 'Tablet Junior 2'
|
|
- regex: 'MFC156FR'
|
|
model: 'Tablet One'
|
|
- regex: 'MFC155FR'
|
|
model: 'Tablet Master'
|
|
- regex: 'MFC157FR'
|
|
model: 'Tablet Master 2'
|
|
- regex: 'MFC17[05]FR'
|
|
model: 'Tablet Ultra'
|
|
- regex: 'MFC375FR'
|
|
model: 'Tablet Ultra 2'
|
|
- regex: 'MFC162FR'
|
|
model: 'Power Tablet'
|
|
- regex: 'MFC180FR'
|
|
model: 'Tablet Advanced'
|
|
- regex: 'MFC181FR'
|
|
model: 'Tablet Advanced 2'
|
|
- regex: 'MFC500FR'
|
|
model: 'Tablet XL'
|
|
- regex: 'MFC190BBFR'
|
|
model: 'Barbie Tablet'
|
|
- regex: 'MFC195DCFR'
|
|
model: 'Tablet Disney Cars HD'
|
|
- regex: 'MFC195FUFR'
|
|
model: 'Furby Tablet'
|
|
- regex: 'MFC195DPFR'
|
|
model: 'Tablet Disney Princesse HD'
|
|
- regex: 'MFC140FR'
|
|
model: 'LapTab'
|
|
- regex: 'MFC141FR'
|
|
model: 'LapTab 2'
|
|
|
|
- regex: '(MFC[0-9]{3}[a-z]{2,})'
|
|
model: '$1'
|
|
|
|
# LG
|
|
LG:
|
|
regex: 'LG|portalmmm/2\.0 (?:KE|KG|KP|L3)|(?:VX[0-9]+|L-0[12]D|L-07C|P713|LM-Q710(?:\(FGN\))?|LM-X210(?:\(G\)|CM)?|LM-G710N)[);/ ]|NetCast|VS(?:988|99[56]|410PP|415PP|425PP)|Nexsus 5'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'LG-D325'
|
|
model: 'L70'
|
|
- regex: 'LG-D85[0125]'
|
|
model: 'G3'
|
|
- regex: 'LG-D72[2458]'
|
|
model: 'G3 Beat'
|
|
- regex: 'LG-H81[158]'
|
|
model: 'G4'
|
|
- regex: 'LG-H525n?'
|
|
model: 'G4c'
|
|
- regex: 'LG-H540'
|
|
model: 'G4 Stylus'
|
|
- regex: 'LG-H735'
|
|
model: 'G4 Beat'
|
|
- regex: 'LG-H8(?:20|30|5[08]|60)'
|
|
model: 'G5'
|
|
- regex: 'LG-H84[05]'
|
|
model: 'G5 SE'
|
|
- regex: 'VS988'
|
|
model: 'G6'
|
|
- regex: '(?:LG-)?H502'
|
|
model: 'Magna'
|
|
- regex: '(?:LG-)?H343'
|
|
model: 'Risio'
|
|
- regex: '(?:LG-)?H650'
|
|
model: 'Zero'
|
|
- regex: '(?:LG-)?M154'
|
|
model: 'Risio 2'
|
|
- regex: '(?:LG-)?P500H'
|
|
model: 'Optimus One'
|
|
- regex: 'P713'
|
|
model: 'Optimus L7II'
|
|
- regex: 'L-01D'
|
|
model: 'Optimus LTE L-01D'
|
|
- regex: 'L-02D'
|
|
model: 'PRADA phone L-02D'
|
|
- regex: 'L-07C'
|
|
model: 'Optimus Bright L-07C'
|
|
- regex: '(?:LG-)?F800(?:S|K|L)?'
|
|
model: 'V20'
|
|
- regex: 'LM-Q710'
|
|
model: 'Stylo 4'
|
|
- regex: 'LM-G710N'
|
|
model: 'G7 ThinQ'
|
|
- regex: 'LM-X210CM'
|
|
model: 'Fortune 2'
|
|
- regex: 'LM-X210'
|
|
model: 'Aristo 2'
|
|
- regex: '(?:LG-)?H91[058]'
|
|
model: 'V20'
|
|
- regex: '(?:LG-)?H990(?:DS|N|T)?'
|
|
model: 'V20'
|
|
- regex: '(?:LG-)?LS997'
|
|
model: 'V20'
|
|
- regex: '(?:LG-)?VS995'
|
|
model: 'V20'
|
|
- regex: '(?:LG-)?US999'
|
|
model: 'V20'
|
|
- regex: 'VS996'
|
|
model: 'V30'
|
|
- regex: '(?:LG-)?VS410PP'
|
|
model: 'Optimus Zone'
|
|
- regex: '(?:LG-)?VS415PP'
|
|
model: 'Optimus Zone 2'
|
|
- regex: '(?:LG-)?VS425PP'
|
|
model: 'Optimus Zone 3'
|
|
- regex: '(?:LG-)?K100'
|
|
model: 'K3'
|
|
- regex: '(?:LG-?)?(?:K|MS)33[02]'
|
|
model: 'K7'
|
|
- regex: '(?:LG-?)?(?:K|MS)350'
|
|
model: 'K8'
|
|
- regex: '(?:LG-)?K420(?:N)?'
|
|
model: 'K10'
|
|
- regex: '(?:LG-)?K430(?:DS|DSF|DSY)?'
|
|
model: 'K10'
|
|
- regex: '(?:LG-)?M250N?'
|
|
model: 'K10 (2017)'
|
|
- regex: '(?:LG-)?F670[KLS]?'
|
|
model: 'K10'
|
|
- regex: '(?:LG-)?M700(?:N|A|DSK|AN)?'
|
|
model: 'Q6'
|
|
- regex: '(?:LG-)?K371'
|
|
model: 'Phoenix 2'
|
|
- regex: '(?:LG-)?M150'
|
|
model: 'Phoenix 3'
|
|
- regex: '(?:LG-)?F100[SL]'
|
|
model: 'Optimus Vu'
|
|
- regex: '(?:LG-)?H340n?'
|
|
model: 'Leon'
|
|
|
|
- regex: 'LG-V490'
|
|
model: 'G Pad 8.0'
|
|
device: 'tablet'
|
|
- regex: 'LG-V500'
|
|
model: 'G Pad 8.3'
|
|
device: 'tablet'
|
|
- regex: 'LG-V700'
|
|
model: 'G Pad 10.1'
|
|
device: 'tablet'
|
|
- regex: 'LG-V935'
|
|
model: 'G Pad II 10.1'
|
|
device: 'tablet'
|
|
- regex: 'LG-V521'
|
|
model: 'G Pad X 8.0'
|
|
device: 'tablet'
|
|
|
|
- regex: 'webOS.TV'
|
|
device: 'tv'
|
|
model: 'WebOS TV'
|
|
- regex: 'LGE_DLNA_SDK|NetCast'
|
|
device: 'tv'
|
|
model: 'NetCast'
|
|
|
|
- regex: 'LGE(?: |-LG| LG-AX|-)([a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: 'LGE;([a-z0-9\-]+)'
|
|
model: '$1'
|
|
- regex: 'LG[ _\-](V90.*|Optimus[ _\-]Pad.*) Build'
|
|
device: 'tablet'
|
|
model: '$1'
|
|
- regex: 'LG(?:/|-LG| |-)?([^/;]*) Build'
|
|
model: '$1'
|
|
- regex: 'LG(?:/|-LG| |-)?([a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: 'LG; ([a-z0-9 ]+)'
|
|
model: '$1'
|
|
- regex: 'portalmmm/2.0 ((?:KE|KG|KP|L3)[a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: '(VX[0-9]+)'
|
|
model: '$1'
|
|
|
|
# Lingwin
|
|
Lingwin:
|
|
regex: 'Lingwin[ _\-]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Lingwin[ _\-]?([^/;]+) Build'
|
|
model: '$1'
|
|
- regex: 'Lingwin[ _\-]?([^);/ ]+)'
|
|
model: '$1'
|
|
|
|
# Logicom
|
|
Logicom:
|
|
regex: '(TAB950|TAB1062|E731|E812|E912|E1031|POWER BOT|(?:B|C|M|ID|VR)[ _]?BOT[ _]?(?:TAB[ _])?([0-9]+\+?)(?:PLUS)?|KT712A_4\.4|L-?IXIR[0-9]*|L-ITE|L-?EMENT)[_);/ ]'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'KT712A_4.4'
|
|
model: 'L-ixir Tab 701'
|
|
- regex: 'LIXIR1041'
|
|
model: 'L-ixir Tab 1041'
|
|
- regex: 'L-?IXIR TAB ([^;/]+) Build'
|
|
model: 'L-ixir Tab $1'
|
|
- regex: 'L-ITE[ _]([^;/]+) Build'
|
|
model: 'L-ite Tab $1'
|
|
- regex: 'L-?EMENT[ _](?:TAB)?([^;/]+) Build'
|
|
model: 'L-ement Tab $1'
|
|
- regex: '(TAB950|TAB1062|E731|E812|E912|E1031)[);/ ]'
|
|
model: '$1'
|
|
- regex: 'POWER BOT'
|
|
model: 'POWER BOT'
|
|
- regex: '((?:B|C|M|ID|VR))[ _]?BOT[ _]?((?:TAB[ _])?([0-9]+\+?)(?:PLUS)?)'
|
|
model: '$1 BOT $2'
|
|
|
|
# Konka
|
|
Konka:
|
|
regex: 'KONKA[_ ]([a-z0-9]+)'
|
|
device: 'smartphone'
|
|
models:
|
|
# Explicit smartphone models
|
|
- regex: 'E5660S'
|
|
model: 'Viva 5660s'
|
|
- regex: 'W830'
|
|
model: 'Tango 830'
|
|
- regex: 'W(9[67]0)'
|
|
model: 'Expose $1'
|
|
- regex: 'W990'
|
|
model: 'Tuxedo 990'
|
|
|
|
- regex: 'KONKA[_ ]([a-z0-9]+)'
|
|
device: 'feature phone'
|
|
model: '$1'
|
|
|
|
# Konrow
|
|
Konrow:
|
|
regex: '(?:BIGCOOL|COOLFIVE|COOL-K|Just5|Link5)[);/ ]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'BIGCOOL[);/ ]'
|
|
model: 'BigCool'
|
|
- regex: 'COOL-K[);/ ]'
|
|
model: 'Cool-K'
|
|
- regex: 'COOLFIVE[);/ ]'
|
|
model: 'Cool Five'
|
|
- regex: 'Just5[);/ ]'
|
|
model: 'Just 5'
|
|
- regex: 'Link5[);/ ]'
|
|
model: 'Link 5'
|
|
|
|
# Karbonn
|
|
Karbonn:
|
|
regex: '(?:Browser-)?Karbonn|K9 Smart Grand'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'K9 Smart Grand'
|
|
model: 'K9 Smart Grand'
|
|
- regex: 'Karbonn ([a-z0-9]+) WAP-Browser'
|
|
model: '$1'
|
|
device: 'feature phone'
|
|
- regex: 'WAP Browser-Karbonn ([a-z0-9]+)/'
|
|
model: '$1'
|
|
device: 'feature phone'
|
|
- regex: 'Karbonn_([^;/)]+)'
|
|
model: '$1'
|
|
- regex: 'Karbonn ([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'Karbonn ([^;/]+)/'
|
|
model: '$1'
|
|
|
|
# Sagem
|
|
Sagem:
|
|
regex: 'SAGEM|portalmmm/2.0 (?:SG|my)'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'SAGEM-(my[a-z0-9\-]+)'
|
|
model: '$1'
|
|
device: 'feature phone'
|
|
- regex: 'SAGEM ([a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: 'SAGEM-([a-z0-9\-]+)'
|
|
model: '$1'
|
|
- regex: 'portalmmm/2.0 ((?:SG|my)[a-z0-9]+)'
|
|
model: '$1'
|
|
|
|
# Coby Kyros
|
|
Coby Kyros:
|
|
regex: '(MID(?:1024|1125|1126|1045|1048|1060|1065|4331|7012|7015A?|7016|7022|7032|7035|7036|7042|7047|7048|7052|7065|7120|8024|8042|8048|8065|8125|8127|8128|9724|9740|9742))[);/ ]'
|
|
device: 'tablet'
|
|
model: '$1'
|
|
|
|
# Mpman
|
|
Mpman:
|
|
regex: '(?:MPQC|MPDC)[0-9]+|PH(?:150|340|350|360|451|500|520)|(?:MID(?:7C|74C|82C|84C|801|811|701|711|170|77C|43C|102C|103C|104C|114C)|MP(?:843|717|718|1010|7007|7008|843|888|959|969)|MGP7)[);/ ]'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: '((?:MPQC|MPDC)[0-9]+[^/;]+) Build'
|
|
model: '$1'
|
|
- regex: '(MID(?:7C|74C|82C|84C|801|811|701|711|170|77C|43C|102C|103C|104C|114C)|MP(?:843|717|718|1010|7007|7008|843|888|959|969)|MGP7)[);/ ]'
|
|
model: '$1'
|
|
- regex: '(PH(?:150|340|350|360|451|500|520))'
|
|
model: '$1'
|
|
device: 'smartphone'
|
|
|
|
# Majestic
|
|
Majestic:
|
|
regex: 'MAJESTIC[ _-]|CRONO ?[0-9]+'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'MAJESTIC[ _]Tab([^;/]+)Build'
|
|
model: 'Tab$1'
|
|
device: 'tablet'
|
|
- regex: 'MAJESTIC[ _]Tab([^);/]+)[);/]'
|
|
model: 'Tab$1'
|
|
device: 'tablet'
|
|
- regex: 'MAJESTIC[ _]([^;/]+)Build'
|
|
model: '$1'
|
|
- regex: 'MAJESTIC[ _]([^);/]+)[);/]'
|
|
model: '$1'
|
|
- regex: 'CRONO ?([0-9]+) Build'
|
|
model: 'Crono $1'
|
|
- regex: 'CRONO ?([0-9]+)[);/]'
|
|
model: 'Crono $1'
|
|
|
|
# Manta Multimedia
|
|
Manta Multimedia:
|
|
regex: '((?<!/)MID713|MID(?:06[SN]|08[S]?|12|13|14|15|701|702|703|704|705(?:DC)?|706[AS]?|707|708|709|711|712|714|717|781|801|802|901|1001|1002|1003|1004(?: 3G)?|1005|1009|1010|7802|9701|9702))[);/ ]'
|
|
device: 'tablet'
|
|
model: '$1'
|
|
|
|
# Mediacom
|
|
Mediacom:
|
|
regex: '(?:SmartPad7503G|SmartPad970s2(?:3G)?|M[_-][MP]P[0-9a-z]+|M-IPRO[0-9a-z]+)[);/ ]'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'SmartPad7503G[);/ ]'
|
|
model: 'SmartPad 750 3G'
|
|
- regex: 'SmartPad970s23G[);/ ]'
|
|
model: 'SmartPad 970 S2 3G'
|
|
- regex: 'SmartPad970s2[);/ ]'
|
|
model: 'SmartPad 970 S2'
|
|
- regex: 'M-MP84[02]M[);/ ]'
|
|
model: 'SmartPad 8.0 Mobile'
|
|
- regex: 'M-MP940M[);/ ]'
|
|
model: 'SmartPad 9.7 Mobile'
|
|
- regex: 'M-MP(?:710|720|725|726|740)GOx?[);/ ]'
|
|
model: 'SmartPad 7.0 Go'
|
|
- regex: 'M-MP876S2[);/ ]'
|
|
model: 'SmartPad 8.0 S2'
|
|
- regex: 'M-MP8S2[AB]?3G[);/ ]'
|
|
model: 'SmartPad 8.0 S2 3G'
|
|
- regex: 'M-MP(101|102|860|875)S2[BW]?[);/ ]'
|
|
model: 'SmartPad $1 S2'
|
|
- regex: 'M-MP85S23G[);/ ]'
|
|
model: 'SmartPad 875 S2 3G'
|
|
- regex: 'M-MP10[45][01]S2[);/ ]'
|
|
model: 'SmartPad 10.1 S2'
|
|
- regex: 'M-MP1S2[AB]3G[);/ ]'
|
|
model: 'SmartPad 10.1 S2 3G'
|
|
- regex: 'M-MP8[24]S4[);/ ]'
|
|
model: 'SmartPad 8.0 S4'
|
|
- regex: 'M-MP8S4[AB]3G[);/ ]'
|
|
model: 'SmartPad 8.0 S4 3G'
|
|
- regex: 'M-MP9S4A3G[);/ ]'
|
|
model: 'SmartPad 9.7 S4 3G'
|
|
- regex: 'M-MP1[02]S4[);/ ]'
|
|
model: 'SmartPad 10.1 S4'
|
|
- regex: 'M-MP1040MC?[);/ ]'
|
|
model: 'SmartPad 10.1 HD S4 3G'
|
|
- regex: 'M-MP1S4[AB]3G[);/ ]'
|
|
model: 'SmartPad 10.1 S4 3G'
|
|
- regex: 'M-MP8PA3G[);/ ]'
|
|
model: 'SmartPad 8.0 HD Pro 3G'
|
|
- regex: 'M-MP10PA[);/ ]'
|
|
model: 'SmartPad 10.1 HD Pro'
|
|
- regex: 'M-MP10PA3G[);/ ]'
|
|
model: 'SmartPad 10.1 HD Pro 3G'
|
|
- regex: 'M-IPRO([18][01]0)[BW][);/ ]'
|
|
model: 'SmartPad 8.0 HD iPro$1 3G'
|
|
|
|
- regex: '(?:M-MP75S23G|M-MP72[01]M)[);/ ]'
|
|
model: 'SmartPad 7.0 Mobile'
|
|
device: 'phablet'
|
|
- regex: 'M-MP7S2[ABDK]3G[);/ ]'
|
|
model: 'SmartPad 7.0 S2 3G'
|
|
device: 'phablet'
|
|
- regex: 'M-MP5303G[);/ ]'
|
|
model: 'SmartPad Mini Mobile'
|
|
device: 'phablet'
|
|
- regex: 'M-PPAG550[);/ ]'
|
|
model: 'PhonePad Duo G550'
|
|
device: 'phablet'
|
|
- regex: 'M-PP2G530[);/ ]'
|
|
model: 'PhonePad Duo G530'
|
|
device: 'phablet'
|
|
- regex: 'M-PPG700[);/ ]'
|
|
model: 'PhonePad Duo G700'
|
|
device: 'phablet'
|
|
- regex: 'M-PPxS531[);/ ]'
|
|
model: 'PhonePad Duo S531'
|
|
device: 'phablet'
|
|
- regex: 'M-PP2S550[);/ ]'
|
|
model: 'PhonePad Duo S550'
|
|
device: 'phablet'
|
|
- regex: 'M-PP2S650C?[);/ ]'
|
|
model: 'PhonePad Duo S650'
|
|
device: 'phablet'
|
|
- regex: 'M-PPxS551U[);/ ]'
|
|
model: 'PhonePad Duo S551U'
|
|
device: 'phablet'
|
|
|
|
- regex: 'M-PP[ABC]G500[);/ ]'
|
|
model: 'PhonePad Duo G500'
|
|
device: 'smartphone'
|
|
- regex: 'M-PP2S500[BC]?[);/ ]'
|
|
model: 'PhonePad Duo S500'
|
|
device: 'smartphone'
|
|
- regex: 'M[_-]PP[Ax]X(470|510|520)U[);/ ]'
|
|
model: 'PhonePad Duo X$1U'
|
|
device: 'smartphone'
|
|
- regex: 'M-PPxG(400|501)[);/ ]'
|
|
model: 'PhonePad Duo G$1'
|
|
device: 'smartphone'
|
|
- regex: 'M-PPxS(470|501)[);/ ]'
|
|
model: 'PhonePad Duo S$1'
|
|
device: 'smartphone'
|
|
|
|
- regex: 'M-MP([0-9a-z]+)'
|
|
model: 'SmartPad $1'
|
|
|
|
# Medion
|
|
Medion:
|
|
regex: 'Medion|(?:MD_)?LIFETAB|X5001[);/ ]|[SPX]10[0-9]{2}X[);/ ]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: '(?:MD_)?LIFETAB_([a-z0-9]+)'
|
|
device: 'tablet'
|
|
model: 'Lifetab $1'
|
|
- regex: 'X5001'
|
|
model: 'Life X5001'
|
|
- regex: '([SPX]10[0-9]{2}X)[);/ ]'
|
|
model: 'Lifetab $1'
|
|
device: 'tablet'
|
|
- regex: 'Medion(?: Smartphone)? ([^/;]+) Build'
|
|
model: '$1'
|
|
|
|
# MEEG
|
|
MEEG:
|
|
regex: 'MEEG[ _-]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'MEEG[ _\-]?([^/;]+) Build'
|
|
model: '$1'
|
|
- regex: 'MEEG[ _\-]?([^);/ ]+)'
|
|
model: '$1'
|
|
|
|
# Meizu
|
|
Meizu:
|
|
regex: 'Meizu|MZ-[a-z]|(M04[05]|M35[1356]|M6T|MX[ -]?[2345](?: Pro)?|(?:MZ-)?m[1-6] note|M57[18]C|M3[ESX]|M031|m1 metal|M1 E|M2|M2 E|PRO 6|PRO 7-H)[);/ ]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: '(?:MZ-)?M571C'
|
|
device: 'phablet'
|
|
model: 'M2 Note'
|
|
- regex: '(?:MZ-)?m([1-6]) note[);/ ]'
|
|
device: 'phablet'
|
|
model: 'M$1 Note'
|
|
- regex: 'M1 E[);/ ]'
|
|
model: 'M1E'
|
|
- regex: 'M2 E[);/ ]'
|
|
model: 'M2E'
|
|
- regex: '(?:MZ-)?M578C|M2[);/ ]'
|
|
model: 'M2'
|
|
- regex: 'M6T'
|
|
model: 'M6T'
|
|
- regex: 'M3E'
|
|
model: 'M3E'
|
|
- regex: 'M3S'
|
|
model: 'M3S'
|
|
- regex: 'M3X'
|
|
model: 'M3X'
|
|
- regex: '(M04[05]|MX[ -]?2)[);/ ]'
|
|
model: 'MX2'
|
|
- regex: '(M35[1356]|MX[ -]?3)[);/ ]'
|
|
model: 'MX3'
|
|
- regex: 'MX[ -]?4 Pro[);/ ]'
|
|
model: 'MX4 Pro'
|
|
- regex: 'MX[ -]?4[);/ ]'
|
|
model: 'MX4'
|
|
- regex: 'MX[ -]?5[);/ ]'
|
|
model: 'MX5'
|
|
- regex: 'm1 metal'
|
|
model: 'M1 Metal'
|
|
- regex: 'PRO 6'
|
|
model: 'PRO 6'
|
|
- regex: 'PRO 7-H'
|
|
model: 'PRO 7'
|
|
- regex: 'M031'
|
|
model: 'MX Dual Core'
|
|
- regex: '(?:MZ-)?Meizu[_ ]([^/;]+) Build'
|
|
model: '$1'
|
|
- regex: '(?:MZ-)?Meizu[_ ]([a-z0-9_]+)'
|
|
model: '$1'
|
|
- regex: 'MZ-([^/;]+) Build'
|
|
model: '$1'
|
|
|
|
# Memup
|
|
Memup:
|
|
regex: 'SlidePad ?([^;/]*) Build|SPNG?[0-9]{2,4}[a-z]{0,2}[ ;/)]|SP704CE?'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'SlidePad ?([^;/]*) Build'
|
|
model: 'SlidePad $1'
|
|
- regex: 'SPNG([0-9]{2,4}[a-z]{0,2})[ ;/)]'
|
|
model: 'SlidePad NG$1'
|
|
- regex: 'SP704(CE?)'
|
|
model: 'SlidePad 704$1'
|
|
|
|
# Mecer
|
|
Mecer:
|
|
regex: '(M785|800P3[12]C|101P51C|X1010)[);/ ]'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'M785[);/ ]'
|
|
model: 'Xpress Smartlife M785'
|
|
- regex: 'X1010[);/ ]'
|
|
model: 'X1010'
|
|
- regex: '800P31C[);/ ]'
|
|
model: 'Xpress Smartlife 800P31C'
|
|
- regex: '800P32C[);/ ]'
|
|
model: 'Xpress Smartlife 800P32C'
|
|
- regex: '101P51C[);/ ]'
|
|
model: 'Xpress Smartlife 101P51C'
|
|
|
|
# mio
|
|
Mio:
|
|
regex: 'MIO(?:/)?([a-z0-9]+)'
|
|
device: 'smartphone'
|
|
model: '$1'
|
|
|
|
# Miray
|
|
Miray:
|
|
regex: 'MIDM[_-]|MPM[_-]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'MIDM[_-]([a-z0-9]+)'
|
|
model: 'MIDM $1'
|
|
device: 'tablet'
|
|
- regex: 'MPM[_-]([a-z0-9]+)'
|
|
model: 'MPM $1'
|
|
|
|
# mitsubishi
|
|
Mitsubishi:
|
|
regex: 'MITSU|portalmmm/[12]\.0 M'
|
|
device: 'feature phone'
|
|
models:
|
|
- regex: 'MITSU/[a-z0-9.]+ \(([a-z0-9]+)\)'
|
|
model: '$1'
|
|
- regex: 'MITSU[ \-]?([a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: 'portalmmm/[12]\.0 (M[a-z0-9]+)'
|
|
model: '$1'
|
|
|
|
# MIXC
|
|
MIXC:
|
|
regex: '(M35|M20|G7106|G7108)[ );/]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: '(M[0-9]{1,2})[ );/]'
|
|
model: '$1'
|
|
- regex: '(G[0-9]{4})[ );/]'
|
|
model: '$1'
|
|
|
|
# Mobiistar
|
|
Mobiistar:
|
|
regex: 'Mobiistar|Zumbo_|PRIME X MAX'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'mobiistar_LAI_Zumbo Build'
|
|
model: 'Zumbo'
|
|
- regex: 'Zumbo_S_2017 Build'
|
|
model: 'Lai Zumbo S (2017)'
|
|
- regex: 'Zumbo_S_2017_Lite Build'
|
|
model: 'Lai Zumbo S Lite (2017)'
|
|
- regex: 'mobiistar ZUMBO S2( Dual)? Build'
|
|
model: 'Zumbo S2'
|
|
- regex: 'Mobiistar_LAI_Zumbo_J Build'
|
|
model: 'Lai Zumbo J'
|
|
- regex: 'Mobiistar_LAI_Zumbo_J_2017 Build'
|
|
model: 'Lai Zumbo J (2017)'
|
|
- regex: 'Mobiistar_Zumbo_J2'
|
|
model: 'Lai Zumbo J2'
|
|
- regex: 'mobiistar ZUMBO Power'
|
|
model: 'Zumbo Power'
|
|
- regex: 'mobiistar[ _]LAI[ _]YUNA[ _]([1XCS])'
|
|
model: 'Lai Yuna $1'
|
|
- regex: 'mobiistar LAI Yuki'
|
|
model: 'Lai Yuki'
|
|
- regex: 'mobiistar[ _]LAI[ _]ZORO[ _]([23])'
|
|
model: 'Lai Zoro $1'
|
|
- regex: 'mobiistar[ _]LAI[ _]Zena'
|
|
model: 'Lai Zena'
|
|
- regex: 'mobiistar[ _]LAI[ _]Z([12])?'
|
|
model: 'Lai Z$1'
|
|
- regex: 'mobiistar_ZORO_4G'
|
|
model: 'Zoro 4G'
|
|
- regex: 'mobiistar touch LAI 512'
|
|
model: 'Touch Lai 512'
|
|
- regex: 'mobiistar LAI 504([KC])'
|
|
model: 'Lai 504$1'
|
|
- regex: 'mobiistar LAI Y Build'
|
|
model: 'Lai Y'
|
|
- regex: 'mobiistar PRIME X 2017 Build'
|
|
model: 'Prime X'
|
|
- regex: 'mobiistar[ _]PRIME[ _](X1|558|X[ _]Plus|X[ _]Grand) Build'
|
|
model: 'Prime $1'
|
|
- regex: 'PRIME X MAX 2018'
|
|
model: 'Prime X Max'
|
|
- regex: 'mobiistar[ _]KOOL([ _]Lite)?'
|
|
model: 'Kool$1'
|
|
- regex: 'mobiistar KAT 452 Build'
|
|
model: 'Kat 452'
|
|
- regex: 'mobiistar_LAI_YOLLO Build'
|
|
model: 'Lai Yollo'
|
|
- regex: 'Mobiistar[ _]([^;/]+) Build'
|
|
model: '$1'
|
|
|
|
# MSI
|
|
MSI:
|
|
regex: 'Primo ?(?:91|76)|Enjoy 7 Plus'
|
|
device: 'tablet'
|
|
models:
|
|
# explicit tablet models
|
|
- regex: 'Primo ?76'
|
|
model: 'Primo 76'
|
|
- regex: 'Primo ?91'
|
|
model: 'Primo 91'
|
|
- regex: 'Enjoy 7 Plus'
|
|
model: 'Enjoy 7 Plus'
|
|
|
|
# MLLED
|
|
MLLED:
|
|
regex: 'MLLED[ _]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'MLLED[ _]([^;/]+)Build'
|
|
model: '$1'
|
|
- regex: 'MLLED[ _]([^);/]+)[);/]'
|
|
model: '$1'
|
|
|
|
# Mobistel
|
|
Mobistel:
|
|
regex: '(Cynus[ _][^/;]+) Build'
|
|
device: 'smartphone'
|
|
model: '$1'
|
|
|
|
# Modecom
|
|
Modecom:
|
|
regex: 'Modecom|Free(?:Way )?Tab|xino z[\d]+ x[\d]+'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'xino Z([\d]+) X([\d]+)'
|
|
model: 'Xino Z$1 X$2'
|
|
device: 'smartphone'
|
|
|
|
- regex: 'FreeTab[ _\-]?([^/;]+)? Build'
|
|
model: 'FreeTab $1'
|
|
- regex: 'FreeTab[ _\-]?((?!Build)[^);/ ]+)?'
|
|
model: 'FreeTab $1'
|
|
- regex: 'FreeWay Tab[ _\-]?([^/;]+) Build'
|
|
model: 'FreeWay Tab $1'
|
|
- regex: 'FreeWay Tab[ _\-]?((?!Build)[^);/ ]+)'
|
|
model: 'FreeWay Tab $1'
|
|
|
|
# Mofut
|
|
Mofut:
|
|
regex: 'Mofut'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Mofut[ _\-]?([^/;]+) Build'
|
|
model: '$1'
|
|
- regex: 'Mofut[ _\-]?((?!Build)[^);/ ]+)'
|
|
model: '$1'
|
|
|
|
# motorola
|
|
Motorola:
|
|
regex: 'MOT|(?<!AN)DROID ?(?:Build|[a-z0-9]+)|portalmmm/2.0 (?:E378i|L6|L7|v3)|XOOM [^;/]*Build|(?:XT|MZ|MB|ME)[0-9]{3,4}[a-z]?(?:\(Defy\)|-0[1-5])?(?: Build|\))'
|
|
device: 'smartphone'
|
|
models:
|
|
# Explicit feature phone models
|
|
- regex: 'MOT-V360'
|
|
model: 'V360'
|
|
device: 'feature phone'
|
|
|
|
# Explicit smartphone models
|
|
- regex: '(?:MOT-|Motorola-)?XT300'
|
|
model: 'Spice'
|
|
- regex: '(?:MOT-|Motorola-)?XT30[35]'
|
|
model: 'Motosmart ME'
|
|
- regex: '(?:MOT-|Motorola-)?XT31[16]'
|
|
model: 'Fire'
|
|
- regex: '(?:MOT-|Motorola-)?XT32[01]'
|
|
model: 'Defy Mini'
|
|
- regex: '(?:MOT-|Motorola-)?XT3(?:89|90)'
|
|
model: 'Motosmart'
|
|
- regex: '(?:MOT-|Motorola-)?XT502'
|
|
model: 'Quench'
|
|
- regex: '(?:MOT-|Motorola-)?XT531'
|
|
model: 'Fire XT'
|
|
- regex: '(?:MOT-|Motorola-)?XT535'
|
|
model: 'Defy'
|
|
- regex: '(?:MOT-|Motorola-)?XT55[567]C?'
|
|
model: 'Defy XT'
|
|
- regex: '(?:MOT-|Motorola-)?XT603'
|
|
model: 'Admiral'
|
|
- regex: '(?:MOT-|Motorola-)?XT610'
|
|
model: 'Droid Pro'
|
|
- regex: '(?:MOT-|Motorola-)?XT615'
|
|
model: 'Motoluxe'
|
|
- regex: '(?:MOT-|Motorola-)?XT621'
|
|
model: 'Primus'
|
|
- regex: '(?:MOT-|Motorola-)?XT626'
|
|
model: 'IronRock'
|
|
- regex: '(?:MOT-|Motorola-)?XT682'
|
|
model: 'Atrix'
|
|
- regex: '(?:MOT-|Motorola-)?XT685'
|
|
model: 'Motoluxe Dual-SIM'
|
|
- regex: '(?:MOT-|Motorola-)?XT687'
|
|
model: 'Atrix TV'
|
|
- regex: '(?:MOT-|Motorola-)?XT720'
|
|
model: 'Milestone'
|
|
- regex: '(?:MOT-|Motorola-)?XT800W'
|
|
model: 'Glam'
|
|
- regex: '(?:MOT-|Motorola-)?XT860'
|
|
model: 'Milestone 3'
|
|
- regex: '(?:MOT-|Motorola-)?XT881'
|
|
model: 'Electrify 2'
|
|
- regex: '(?:MOT-|Motorola-)?XT882'
|
|
model: 'Moto XT882'
|
|
- regex: '(?:MOT-|Motorola-)?XT88[56]'
|
|
model: 'Droid RAZR V'
|
|
- regex: '(?:MOT-|Motorola-)?XT890'
|
|
model: 'Droid RAZR i'
|
|
- regex: '(?:MOT-|Motorola-)?XT894'
|
|
model: 'Droid 4'
|
|
- regex: '(?:MOT-|Motorola-)?XT897'
|
|
model: 'Photon Q'
|
|
- regex: '(?:MOT-|Motorola-)?XT901'
|
|
model: 'Electrify M'
|
|
- regex: '(?:MOT-|Motorola-)?XT90[567]'
|
|
model: 'Droid RAZR M'
|
|
- regex: '(?:MOT-|Motorola-)?XT910S?'
|
|
model: 'Droid RAZR'
|
|
- regex: '(?:MOT-|Motorola-)?XT91[4568]'
|
|
model: 'Droid RAZR D1'
|
|
- regex: '(?:MOT-|Motorola-)?XT9(?:19|20)'
|
|
model: 'Droid RAZR D3'
|
|
- regex: '(?:MOT-|Motorola-)?XT925'
|
|
model: 'Droid RAZR HD'
|
|
- regex: '(?:MOT-|Motorola-)?XT1022'
|
|
model: 'Moto E'
|
|
- regex: '(?:MOT-|Motorola-)?XT1706'
|
|
model: 'Moto E3 Power'
|
|
- regex: '(?:MOT-|Motorola-)?XT1030'
|
|
model: 'Droid Mini'
|
|
- regex: '(?:MOT-|Motorola-)?XT1254'
|
|
model: 'Droid Turbo'
|
|
- regex: '(?:MOT-|Motorola-)?XT10(?:28|3[1234]|68)'
|
|
model: 'Moto G'
|
|
- regex: '(?:MOT-|Motorola-)?XT10(?:49|5[23568]|60|9[2345])'
|
|
model: 'Moto X'
|
|
- regex: '(?:MOT-|Motorola-)?XT1562'
|
|
model: 'Moto X Play'
|
|
- regex: '(?:MOT-|Motorola-)?XT1080'
|
|
model: 'Droid Ultra'
|
|
- regex: '(?:MOT-|Motorola-)?XT1650-05'
|
|
model: 'Moto Z'
|
|
- regex: '(?:MOT-|Motorola-)?XT1635(?:-0[1-3])?'
|
|
model: 'Moto Z Play'
|
|
- regex: '(?:MOT-|Motorola-)?XT1663'
|
|
model: 'Moto M'
|
|
|
|
- regex: 'Moto ([CGEZ]) \(([a-z0-9]+)\)( Plus| Play)?'
|
|
model: 'Moto $1$2$3'
|
|
- regex: 'Moto ?([CGEZ])([0-9]+)( Plus| Play)?'
|
|
model: 'Moto $1$2$3'
|
|
- regex: 'Moto ?([CGEZ])( Plus| Play)?'
|
|
model: 'Moto $1$2'
|
|
|
|
- regex: 'Motorola[ _\-]([a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: 'MOTORAZR[ _\-]([a-z0-9]+)'
|
|
model: 'RAZR $1'
|
|
- regex: 'MOTORIZR[ _\-]([a-z0-9]+)'
|
|
model: 'RIZR $1'
|
|
- regex: 'MOT(?!OROLA)[O]?[_\-]?([a-z0-9.]+)'
|
|
model: '$1'
|
|
- regex: '(?<!AN)DROID ?([a-z0-9 ]*) Build'
|
|
model: 'DROID $1'
|
|
- regex: '(?<!AN)DROID ?([a-z0-9]+)'
|
|
model: 'DROID $1'
|
|
- regex: 'portalmmm/2.0 ((?:E378i|L6|L7|V3)[a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: '(XOOM [^;/]*)Build'
|
|
device: 'tablet'
|
|
model: '$1'
|
|
- regex: '(MZ[0-9]{3})[);/ ]'
|
|
device: 'tablet'
|
|
model: '$1'
|
|
- regex: '((?:ME|MB|XT)[0-9]{3,4}(?:\(Defy\))?)[);/ ]'
|
|
model: '$1'
|
|
|
|
# myphone
|
|
MyPhone:
|
|
regex: '(?:MyPhone|MyPad|MyTab)[ _][^;/]+ Build|Cube_LTE|myTab10II'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'MyPad[ _]([^;/]+) Build'
|
|
model: 'MyPad $1'
|
|
device: 'tablet'
|
|
- regex: 'MyTab[ _]([^;/]+) Build'
|
|
model: 'MyTab $1'
|
|
device: 'tablet'
|
|
- regex: 'myTab10II'
|
|
model: 'MyTab 10 II'
|
|
device: 'tablet'
|
|
- regex: 'Cube_LTE'
|
|
model: 'Cube LTE'
|
|
- regex: 'MyPhone[ _]([^;/]+) Build'
|
|
model: '$1'
|
|
|
|
# Myria
|
|
Myria:
|
|
regex: ' (Myria_[^/;]+|502M|Cozy|Easy tab 9|Grand) Build'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Myria_([^/;]+) Build'
|
|
model: '$1'
|
|
- regex: '(502M|Grand)'
|
|
model: '$1'
|
|
- regex: '(Cozy|Easy tab 9)'
|
|
model: '$1'
|
|
device: 'tablet'
|
|
|
|
# M.T.T.
|
|
M.T.T.:
|
|
regex: 'M.T.T.'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'M.T.T. ?Tablet([^;/]+)? Build'
|
|
device: 'tablet'
|
|
model: 'Tablet$1'
|
|
- regex: 'M.T.T. ?([^;/]+) Build'
|
|
model: '$1'
|
|
|
|
# nec
|
|
NEC:
|
|
regex: 'NEC[ _\-]|KGT/2\.0|portalmmm/1\.0 (?:DB|N)|(?:portalmmm|o2imode)/2.0[ ,]N'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: '(?:NEC[ _\-]|KGT/2\.0 )([a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: 'portalmmm/1\.0 ((?:DB|N)[a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: '(?:portalmmm|o2imode)/2\.0[ ,](N[a-z0-9]+)'
|
|
model: '$1'
|
|
|
|
# Neffos
|
|
Neffos:
|
|
regex: 'Neffos'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Neffos ([^/;]+) Build'
|
|
model: '$1'
|
|
- regex: 'Neffos ([^/;]+)/'
|
|
model: '$1'
|
|
|
|
# Nextbit
|
|
Nextbit:
|
|
regex: '(Robin) Build'
|
|
device: 'smartphone'
|
|
model: '$1'
|
|
|
|
# newgen
|
|
Newgen:
|
|
regex: 'NEWGEN\-([a-z0-9]+)'
|
|
device: 'feature phone'
|
|
model: '$1'
|
|
|
|
# Netgear
|
|
Netgear:
|
|
regex: 'GTV100'
|
|
device: 'tv'
|
|
models:
|
|
- regex: 'GTV100'
|
|
model: 'NeoTV Prime'
|
|
|
|
# NextBook
|
|
NextBook:
|
|
regex: 'Next[0-9]|NX785QC8G|NXM900MC|NX008HD8G|NX010HI8G|NXM908HC|NXM726'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'NX008HD8G'
|
|
model: 'Premium 8 HD'
|
|
- regex: 'NXM908HC'
|
|
model: 'Premium 9'
|
|
- regex: 'NX010HI8G'
|
|
model: 'Premium 10 Hi'
|
|
- regex: 'NX785QC8G'
|
|
model: '8'
|
|
- regex: 'NXM900MC'
|
|
model: '8 HD'
|
|
- regex: 'NXM726'
|
|
model: 'Premium 7'
|
|
|
|
- regex: 'Next([0-9]+[^;/]+) Build'
|
|
model: 'Next $1'
|
|
|
|
# ngm
|
|
NGM:
|
|
regex: 'NGM[_ ][a-z0-9]+|(Forward|Dynamic)[ _]?[^/;]+(?:Build|/)'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: '(Forward|Dynamic)[ _]?([^/;]+) Build'
|
|
model: '$1 $2'
|
|
- regex: '(Forward|Dynamic)[ _]?([^/;]+)/'
|
|
model: '$1 $2'
|
|
- regex: 'NGM ([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'NGM_([a-z0-9]+)'
|
|
model: '$1'
|
|
|
|
# nexian
|
|
Nexian:
|
|
regex: 'S?Nexian'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'S?Nexian[ ]?([a-z0-9\-]+)'
|
|
model: '$1'
|
|
- regex: 'S?Nexian-([a-z0-9]+)'
|
|
model: '$1'
|
|
|
|
# Noain
|
|
Noain:
|
|
regex: 'NOAIN'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'NOAIN[ _-]([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'NOAIN[ _-]([^;/)]+)[;/)]'
|
|
model: '$1'
|
|
|
|
# Noblex
|
|
Noblex:
|
|
regex: 'Noblex|NBX-'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: '(?:Noblex|NBX)[ _-]([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: '(?:Noblex|NBX)[ _-]([^;/)]+)[;/)]'
|
|
model: '$1'
|
|
|
|
# Nomi
|
|
Nomi:
|
|
regex: 'Nomi[ _-]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Nomi[ _-]([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'Nomi[ _-]([^;/)]+)[;/)]'
|
|
model: '$1'
|
|
|
|
# Nous
|
|
Nous:
|
|
regex: 'NS([356]|500[346]|5511) Build'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: '(NS[0-9]{1,4}) Build'
|
|
model: '$1'
|
|
|
|
# Nvidia
|
|
Nvidia:
|
|
regex: '(SHIELD Tablet K1) Build'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: '(SHIELD Tablet K1) Build'
|
|
model: '$1'
|
|
|
|
|
|
# o2
|
|
O2:
|
|
regex: 'Xda|O2[ \-]|COCOON'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: '(Xda[ _][a-z0-9_]+)'
|
|
model: '$1'
|
|
- regex: '(COCOON)'
|
|
model: '$1'
|
|
- regex: 'O2 ([a-z0-9 ]+)'
|
|
model: '$1'
|
|
- regex: 'O2-([a-z0-9]+)'
|
|
model: '$1'
|
|
|
|
# Obi
|
|
Obi:
|
|
regex: 'Obi[ _-]|(SJ1\.5|SJ2\.6|S400|S452\+|S451|S453|S501|S502|S503\+?|S507|S520|S550|S551|falcon)[ _]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'SJ2\.6'
|
|
model: 'SJ2.6'
|
|
- regex: 'SJ1\.5'
|
|
model: 'SJ1.5'
|
|
- regex: '(?:Obi_)?S400'
|
|
model: 'Skipper'
|
|
- regex: '(?:Obi_)?S451|falcon'
|
|
model: 'Flacon'
|
|
- regex: '(?:Obi_)?S452\+'
|
|
model: 'Python'
|
|
- regex: '(?:Obi_)?S453'
|
|
model: 'Fox'
|
|
- regex: '(?:Obi_)?S501'
|
|
model: 'Wolverine'
|
|
- regex: '(?:Obi_)?S502'
|
|
model: 'Leopard'
|
|
- regex: '(?:Obi_)?S503\+'
|
|
model: 'Boa Plus'
|
|
- regex: '(?:Obi_)?S503'
|
|
model: 'Boa'
|
|
- regex: '(?:Obi_)?S507'
|
|
model: 'Pelican'
|
|
- regex: '(?:Obi_)?S520'
|
|
model: 'Octopus'
|
|
- regex: '(?:Obi_)?S550'
|
|
model: 'Crane'
|
|
- regex: '(?:Obi_)?S551'
|
|
model: 'Hornbill'
|
|
- regex: '(?:Obi_)?S454'
|
|
model: 'Alligator'
|
|
- regex: 'Obi[ _-]([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'Obi[ _-]([^;/)]+)[;/)]'
|
|
model: '$1'
|
|
|
|
# Odys
|
|
Odys:
|
|
regex: 'ODYS[ _-]|IEOS[_ ]([^/;]+)|NOON(?:_PRO)? Build|SPACE10_(?:PLUS|PRO)_3G|THOR_?10|TAO_X10|RAPID_?(?:10|7)_?LTE|MAVEN_?10_|CONNECT[78]|ELEMENT10_PLUS_3G|XELIO[_0-9P]'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'XELIOPHONETAB3'
|
|
model: 'Xelio Phonetab 3'
|
|
- regex: 'XELIO_NEXT_10_PLUS_3G'
|
|
model: 'Xelio Next 10 Plus 3G'
|
|
- regex: 'XELIO_PHONE_TAB7_3G'
|
|
model: 'Xelio Phonetab 7 3G'
|
|
- regex: 'XELIO10EXTREME'
|
|
model: 'Xelio 10 Xtreme'
|
|
- regex: 'XELIO10_PLUS_3G'
|
|
model: 'Xelio 10 Plus 3G'
|
|
- regex: 'ELEMENT10_PLUS_3G'
|
|
model: 'Element 10 Plus 3G'
|
|
- regex: 'CONNECT8PLUS'
|
|
model: 'Connect 8 Plus'
|
|
- regex: 'CONNECT7PRO'
|
|
model: 'Connect 7 Pro'
|
|
- regex: 'MAVEN_?10_PRO_PLUS_3G'
|
|
model: 'Maven 10 Pro Plus 3G'
|
|
- regex: 'MAVEN_?10_?PLUS'
|
|
model: 'Maven 10 Plus'
|
|
- regex: 'MAVEN_?10_?PRO'
|
|
model: 'Maven 10 Pro'
|
|
- regex: 'MAVEN_?10_?HD'
|
|
model: 'Maven 10 HD'
|
|
- regex: 'RAPID_?7_?LTE'
|
|
model: 'Rapid 7 LTE'
|
|
- regex: 'RAPID_?10_?LTE'
|
|
model: 'Rapid 10 LTE'
|
|
- regex: 'TAO_X10'
|
|
model: 'Tao X10'
|
|
- regex: 'SPACE10_PLUS_3G'
|
|
model: 'Space 10 Plus 3G'
|
|
- regex: 'SPACE10_PRO_3G'
|
|
model: 'Space 10 Pro 3G'
|
|
- regex: 'THOR_?10 Build'
|
|
model: 'Thor 10'
|
|
- regex: 'THOR_?10_PLUS_3G'
|
|
model: 'Thor 10 Plus 3G'
|
|
- regex: 'IEOS[ _]([^/;]+) Build'
|
|
model: 'Ieos $1'
|
|
- regex: '(?:ODYS[ _-])?NOON Build'
|
|
model: 'Noon'
|
|
- regex: '(?:ODYS[ _-])?NOON_PRO Build'
|
|
model: 'Noon Pro'
|
|
- regex: 'Odys[ _-]([^/;]+) Build'
|
|
model: '$1'
|
|
|
|
# onda
|
|
Onda:
|
|
regex: 'Onda'
|
|
device: 'smartphone'
|
|
models:
|
|
# explicit tablet models
|
|
- regex: 'ONDA MID'
|
|
model: 'MID'
|
|
device: 'tablet'
|
|
|
|
- regex: '([a-z0-9]+)[ _]Onda'
|
|
model: '$1'
|
|
- regex: 'Onda ([a-z0-9]+)'
|
|
model: '$1'
|
|
|
|
# OnePlus
|
|
OnePlus:
|
|
regex: '(?:du_)?ONEPLUS|(?:A0001|A200[135]|A300[03]|A3010|A5000|A600[03]|E1003) Build'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'A0001'
|
|
model: 'One'
|
|
- regex: 'A200[135]|OnePlus2'
|
|
model: '2'
|
|
- regex: 'E1003'
|
|
model: 'X'
|
|
- regex: 'A3010|OnePlus3T'
|
|
model: '3T'
|
|
- regex: 'A300[03]|OnePlus3'
|
|
model: '3'
|
|
- regex: 'A5010|OnePlus5T'
|
|
model: '5T'
|
|
- regex: 'A5000|OnePlus5'
|
|
model: '5'
|
|
- regex: 'A600[03]|OnePlus6'
|
|
model: '6'
|
|
- regex: '(?:du_)?ONEPLUS ?([^;/]+) Build'
|
|
model: '$1'
|
|
|
|
# oppo
|
|
OPPO:
|
|
regex: '(?:OB-)?OPPO[ _]?([a-z0-9]+)|N1T|(?:X90[07][0679]|U707T?|X909T?|R(?:10[01]1|2001|201[07]|6007|7005|7007|80[13579]|81[13579]|82[01379]|83[013]|800[067]|8015|810[679]|811[13]|820[057])[KLSTW]?|N520[79]|N5117|A33f|A37fw?|PAAM00|PAC[T|M]00|PBAM00)[);/ ]|R7kf|R7Plusm|A1601|CPH[0-9]{4}|PADM00'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: '(?:OPPO[ _]?)?U707T?[);/ ]'
|
|
model: 'Find Way S'
|
|
- regex: '(?:OPPO[ _]?)?X909T?[);/ ]'
|
|
model: 'Find 5'
|
|
- regex: '(?:OPPO[ _]?)?X907[067][);/ ]'
|
|
model: 'Find 7'
|
|
- regex: '(?:OPPO[ _]?)?X900[067][);/ ]'
|
|
model: 'Find 7a'
|
|
- regex: '(?:OPPO[ _]?)?X9009[);/ ]'
|
|
model: 'F1 Plus'
|
|
- regex: '(?:OPPO[ _]?)?R8006[);/ ]'
|
|
model: 'R1L'
|
|
- regex: '(?:OPPO[ _]?)?R800[07][);/ ]'
|
|
model: 'R1S'
|
|
- regex: '(?:OPPO[ _]?)?R8015[);/ ]'
|
|
model: 'Find Guitar'
|
|
- regex: '(?:OPPO[ _]?)?R810[679][);/ ]'
|
|
model: 'R5'
|
|
- regex: '(?:OPPO[ _]?)?R7kf[);/ ]'
|
|
model: 'R7 Lite'
|
|
- regex: '(?:OPPO[ _]?)?R7Plusm[);/ ]'
|
|
model: 'R7 Plus'
|
|
- regex: '(?:OPPO[ _]?)?R8111[);/ ]'
|
|
model: 'Find Melody'
|
|
- regex: '(?:OPPO[ _]?)?R8113[);/ ]'
|
|
model: 'Piano'
|
|
- regex: '(?:OPPO[ _]?)?R815[TW]?[);/ ]'
|
|
model: 'Find Clover'
|
|
- regex: '(?:OPPO[ _]?)?R821T?[);/ ]'
|
|
model: 'Find Muse'
|
|
- regex: '(?:OPPO[ _]?)?R827T?[);/ ]'
|
|
model: 'Find 5 Mini'
|
|
- regex: '(?:OPPO[ _]?)?A33f[);/ ]'
|
|
model: 'Neo 7'
|
|
- regex: '(?:OPPO[ _]?)?R831[SL][);/ ]'
|
|
model: 'Neo 5'
|
|
- regex: '(?:OPPO[ _]?)?R831K[);/ ]'
|
|
model: 'Neo 3'
|
|
- regex: '(?:OPPO[ _]?)?R831T?[);/ ]'
|
|
model: 'Neo'
|
|
- regex: '(?:OPPO[ _]?)?N520[79][);/ ]'
|
|
model: 'N3'
|
|
- regex: '(?:OPPO[ _]?)?N5117[);/ ]'
|
|
model: 'N1 Mini'
|
|
- regex: '(?:OPPO[ _]?)?CPH1609[);/ ]'
|
|
model: 'F3'
|
|
- regex: '(?:OPPO[ _]?)?CPH1707[);/ ]'
|
|
model: 'R11'
|
|
- regex: '(?:OPPO[ _]?)?CPH1715[);/ ]'
|
|
model: 'A77'
|
|
- regex: '(?:OPPO[ _]?)?CPH1717[);/ ]'
|
|
model: 'A71'
|
|
- regex: '(?:OPPO[ _]?)?CPH1719[);/ ]'
|
|
model: 'R11s'
|
|
- regex: '(?:OPPO[ _]?)?CPH1721[);/ ]'
|
|
model: 'R11s Plus'
|
|
- regex: '(?:OPPO[ _]?)?CPH172[37][);/ ]'
|
|
model: 'F5'
|
|
- regex: '(?:OPPO[ _]?)?CPH1725[);/ ]'
|
|
model: 'F5 Youth'
|
|
- regex: '(?:OPPO[ _]?)?CPH1607[);/ ]'
|
|
model: 'R9s'
|
|
- regex: '(?:OPPO[ _]?)?CPH1611[);/ ]'
|
|
model: 'R9s Plus'
|
|
- regex: '(?:OPPO[ _]?)?CPH1613[);/ ]'
|
|
model: 'F3 Plus'
|
|
- regex: '(?:OPPO[ _]?)?CPH1701[);/ ]'
|
|
model: 'A57'
|
|
- regex: '(?:OPPO[ _]?)?CPH1729[);/ ]'
|
|
model: 'A83'
|
|
- regex: '(?:OPPO[ _]?)?CPH1801[);/ ]'
|
|
model: 'A71'
|
|
- regex: '(?:OPPO[ _]?)?CPH1819[);/ ]'
|
|
model: 'F7'
|
|
- regex: '(?:OPPO[ _]?)?CPH1859[);/ ]'
|
|
model: 'F7'
|
|
- regex: '(?:OPPO[ _]?)?A37f(w)? Build'
|
|
model: 'A37f$1'
|
|
- regex: '(?:OPPO[ _]?)?PADM00'
|
|
model: 'A3'
|
|
- regex: '(?:OPPO[ _]?)?PBAM00'
|
|
model: 'A5'
|
|
- regex: '(?:OPPO[ _]?)?A1601 Build'
|
|
model: 'F1s'
|
|
- regex: '(?:OPPO[ _]?)?R1011 Build'
|
|
model: 'Joy Plus'
|
|
- regex: '(?:OPPO[ _]?)?(?:PAC[TM]00|PAAM00) Build'
|
|
model: 'R15'
|
|
|
|
- regex: 'N1T?[);/ ]'
|
|
model: 'N1T'
|
|
device: 'phablet'
|
|
|
|
- regex: 'R([0-9]{3,4}[KSTW]?)[);/ ]' # valid model numbers are filtered in main regex
|
|
model: 'R$1'
|
|
|
|
- regex: '(?:OB-)?OPPO[ _]?([a-z0-9]+)'
|
|
model: '$1'
|
|
|
|
# Opsson
|
|
Opsson:
|
|
regex: 'Opsson|IUSAI'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'IUSAI[ _]([^/;]+) Build'
|
|
model: 'Iusai $1'
|
|
- regex: 'IUSAI[ _]([^/;\)]+)[/;\)]'
|
|
model: 'Iusai $1'
|
|
- regex: 'Opsson[ _]([^/;]+) Build'
|
|
model: '$1'
|
|
- regex: '(?:Opsson-)?Opsson[ -_]([^/;]+)/'
|
|
model: '$1'
|
|
|
|
# orange
|
|
Orange:
|
|
regex: 'SPV[ \-]?([a-z0-9]+)|Orange[ _-]([^/;]+) Build|SC/IHD92|FunTab ([^/;]+) Build'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'SC/IHD92'
|
|
model: 'Livebox Play'
|
|
device: 'tv' # set top box
|
|
- regex: 'Sego'
|
|
model: 'Sego'
|
|
device: 'tablet'
|
|
- regex: 'FunTab ([^/;]+) Build'
|
|
model: 'FunTab $1'
|
|
device: 'tablet'
|
|
- regex: 'Orange[ _-]([^/;]+) Build'
|
|
model: '$1'
|
|
- regex: 'SPV[ \-]?([a-z0-9]+)'
|
|
model: 'SPV $1'
|
|
|
|
# Ouki
|
|
Ouki:
|
|
regex: 'OUKI|OK[AU][0-9]+[a-z]* Build'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'OUKI[ _-]?([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: '([^;/)]+) Build/OUKI'
|
|
model: '$1'
|
|
- regex: 'OUKI[ _-]?([^;/)]+)[;/)]'
|
|
model: '$1'
|
|
- regex: '(OK[AU][0-9]+[a-z]*) Build'
|
|
model: '$1'
|
|
|
|
# Overmax
|
|
Overmax:
|
|
regex: 'OV-[a-z]+(?:[^;(/]*)[();/ ]|Qualcore 1010'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'OV-V10'
|
|
model: 'Vertis Yard'
|
|
device: 'smartphone'
|
|
- regex: 'OV-Vertis[ _-]([^;/]+) Build'
|
|
model: 'Vertis $1'
|
|
device: 'smartphone'
|
|
|
|
- regex: 'Qualcore 1010'
|
|
model: 'Qualcore 1010'
|
|
device: 'tablet'
|
|
|
|
- regex: '(OV-[a-z]+(?:[^;(/]*))(?<!Build)[();/ ]'
|
|
model: '$1'
|
|
|
|
# Oysters
|
|
Oysters:
|
|
regex: 'Oysters'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'Oysters ((?:Arctic|Indian|Atlantic|Pacific)[^/;]+) Build'
|
|
device: 'smartphone'
|
|
model: '$1'
|
|
- regex: 'Oysters ([^/;]+) Build'
|
|
model: '$1'
|
|
|
|
# panasonic
|
|
Panasonic:
|
|
regex: 'Panasonic|PANATV[0-9]+|Viera/|P902i[);/ ]|Eluga[ _]|FZ-N1'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Eluga[ _-]([^;/]+) Build'
|
|
model: 'Eluga $1'
|
|
- regex: 'Eluga[ _-]([^;/]+)[;/)]'
|
|
model: 'Eluga $1'
|
|
- regex: 'FZ-N1'
|
|
model: 'Toughpad'
|
|
- regex: 'P902i[);/ ]'
|
|
device: 'feature phone'
|
|
model: 'P902i'
|
|
- regex: 'Panasonic MIL DLNA'
|
|
device: 'tv'
|
|
model: 'Viera Cast'
|
|
- regex: 'PANATV[0-9]+|Viera/'
|
|
device: 'tv'
|
|
model: 'Smart TV'
|
|
- regex: 'Panasonic[ _\-]?([a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: 'portalmmm/2.0 (P[a-z0-9]+)'
|
|
model: '$1'
|
|
|
|
# Pentagram
|
|
Pentagram:
|
|
regex: 'Pentagram|Quadra|Monster X5'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: '(?:PENTAGRAM[_ ])?EON[_ ]PRIX'
|
|
model: 'Eon Prix'
|
|
- regex: 'Quadra 7( UltraSlim)?'
|
|
model: 'Quadra 7 UltraSlim'
|
|
- regex: 'Monster X5?'
|
|
model: 'Monster X5'
|
|
device: 'smartphone'
|
|
- regex: 'Quadra ?([^);/]*) Build'
|
|
model: 'Quadra $1'
|
|
- regex: 'Pentagram ?TAB ?([^);/]*) Build'
|
|
model: 'Tab $1'
|
|
- regex: 'Pentagram ?([^);/]*) Build'
|
|
model: '$1'
|
|
device: 'smartphone'
|
|
|
|
# philips
|
|
Philips:
|
|
regex: 'Philips|AND1E[);/ ]|NETTV/|PI3210G'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'AND1E(?: TV)?[);/ ]'
|
|
model: 'Android TV'
|
|
device: 'tv'
|
|
- regex: '(PI3210G)'
|
|
model: '$1'
|
|
device: 'tablet'
|
|
- regex: 'Philips, BDP([0-9]{4})'
|
|
model: 'Blu-ray Player (BDP$1)'
|
|
device: 'tv'
|
|
- regex: '(NETTV/[0-9\.]{5})'
|
|
model: 'NetTV Series'
|
|
device: 'tv'
|
|
- regex: 'Philips-FISIO ([a-z0-9]+)'
|
|
model: 'Fisio $1'
|
|
- regex: 'Philips[ _-]?([a-z0-9\-@]+)'
|
|
model: '$1'
|
|
|
|
# phoneOne
|
|
phoneOne:
|
|
regex: 'phoneOne[ \-]?([a-z0-9]+)'
|
|
device: 'smartphone'
|
|
model: '$1'
|
|
|
|
# Primepad
|
|
Primepad:
|
|
regex: 'PD\-(3127NC|3127) Build'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'PD\-3127NC Build'
|
|
model: 'PD-3127NC'
|
|
- regex: 'PD\-3127 Build'
|
|
model: 'PD-3127'
|
|
|
|
# Pioneer
|
|
Pioneer:
|
|
regex: 'Pioneer|.*; R1 Build'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: '.*; R1 Build'
|
|
model: 'R1'
|
|
device: 'tablet'
|
|
- regex: 'Pioneer[ _-]?([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'Pioneer[ _-]?([^;/)]+)[;/)]'
|
|
model: '$1'
|
|
|
|
|
|
# PULID
|
|
PULID:
|
|
regex: 'PULID[ _]|F1[01357]\+? Build'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'F(1[01357]\+?) Build'
|
|
model: 'F$1'
|
|
- regex: 'PULID[ _]([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'PULID[ _]([a-z0-9_]+)\)'
|
|
model: '$1'
|
|
|
|
# Point of View
|
|
'Point of View':
|
|
regex: 'POV_TV|POV_TAB|MOB-5045'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'POV_TV-HDMI-KB-01'
|
|
model: 'HDMI Smart TV Dongle'
|
|
device: 'tv'
|
|
- regex: 'POV_TV-HDMI-200BT'
|
|
model: 'Mini PC HDMI Dongle'
|
|
device: 'tv'
|
|
- regex: 'MOB-5045'
|
|
model: 'Mobii Phone 5045'
|
|
device: 'smartphone'
|
|
- regex: 'POV_TAB-P506'
|
|
model: 'ONYX 506 Navi'
|
|
- regex: 'POV_TAB[_-]NAVI7[_-]3G[_-]M'
|
|
model: 'ONYX 507 Navi'
|
|
- regex: 'POV_TAB-P527S'
|
|
model: 'ONYX 527S'
|
|
- regex: 'POV_TAB-P547'
|
|
model: 'ONYX 547 Navi'
|
|
- regex: 'POV_TAB-PROTAB26'
|
|
model: 'ProTab 26 XXL IPS'
|
|
- regex: 'POV_TAB-PROTAB25XXL8?'
|
|
model: 'ProTab 25XXL'
|
|
- regex: 'POV_TAB-PL1015'
|
|
model: 'Mobii 1015'
|
|
|
|
- regex: 'POV_TAB-PROTAB([a-z0-9]+)'
|
|
model: 'ProTab $1'
|
|
- regex: 'POV_TAB-P?([a-z0-9]+)'
|
|
model: 'Mobii $1'
|
|
|
|
# Pomp
|
|
Pomp:
|
|
regex: 'POMP[ _-]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'POMP[ _-]([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'POMP[ _-]([^;/)]+)[;/)]'
|
|
model: '$1'
|
|
|
|
# PPTV
|
|
PPTV:
|
|
regex: '(KING 7S?)'
|
|
device: 'smartphone'
|
|
model: '$1'
|
|
|
|
# ProScan
|
|
ProScan:
|
|
regex: 'PLT([^;/]+) Build'
|
|
device: 'tablet'
|
|
model: 'PLT$1'
|
|
|
|
# RCA Tablets
|
|
'RCA Tablets':
|
|
regex: 'RCT([^;/]+) Build'
|
|
device: 'tablet'
|
|
model: 'RCT$1'
|
|
|
|
# Readboy
|
|
Readboy:
|
|
regex: 'Readboy[ _-]'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'Readboy[ _-]([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'Readboy[ _-]([^;/]+)[;/)]'
|
|
model: '$1'
|
|
|
|
# Roku
|
|
Roku:
|
|
regex: 'Roku/DVP'
|
|
device: 'tv'
|
|
model: 'Digital Video Player'
|
|
|
|
# Rover
|
|
Rover:
|
|
regex: 'Rover ([0-9]+)'
|
|
device: 'feature phone'
|
|
model: '$1'
|
|
|
|
# Siemens
|
|
Siemens:
|
|
regex: 'SIEMENS|SIE-|portalmmm/2\.0 SI|S55|SL45i'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'SIEMENS[ \-]([a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: 'SIE(?:MENS )?[\-]?([a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: '(S55|SL45i)'
|
|
model: '$1'
|
|
- regex: 'portalmmm/2.0 (SI[a-z0-9]+)'
|
|
model: '$1'
|
|
|
|
# Samsung
|
|
Samsung:
|
|
regex: 'SAMSUNG|Maple |SC-(?:02[CH]|04E|01F)|N[57]100|N5110|N9100|S(?:CH|GH|PH|EC|AM|HV|HW|M)-|SMART-TV|GT-|Galaxy|(?:portalmmm|o2imode)/2\.0 [SZ]|sam[rua]|vollo Vi86[);/ ]|(?:OTV-)?SMT-E5015|ISW11SC|SCV35|404SC'
|
|
device: 'smartphone'
|
|
models:
|
|
# explicit tv models
|
|
- regex: 'GT-B9150'
|
|
device: 'tv'
|
|
model: 'Home Sync'
|
|
- regex: '(?:OTV-)?SMT-E5015'
|
|
device: 'tv'
|
|
model: 'SMT-E5015' # set top box
|
|
- regex: 'Maple '
|
|
device: 'tv'
|
|
model: ''
|
|
|
|
# explicit tablet models
|
|
- regex: '(?:SAMSUNG-)?(?:GT-)?N5100'
|
|
device: 'tablet'
|
|
model: 'GALAXY Note 8.0"'
|
|
- regex: '(?:SAMSUNG-)?(?:GT-)?N5110'
|
|
device: 'tablet'
|
|
model: 'GALAXY Note 8.0" WiFi'
|
|
- regex: '(?:SAMSUNG-)?GT-N5120'
|
|
device: 'tablet'
|
|
model: 'GALAXY Note 8.0" LTE'
|
|
- regex: '(?:SAMSUNG-)?GT-N8000'
|
|
device: 'tablet'
|
|
model: 'GALAXY Note 10.1"'
|
|
- regex: '(?:SAMSUNG-)?GT-N8010'
|
|
device: 'tablet'
|
|
model: 'GALAXY Note 10.1" WiFi'
|
|
- regex: '(?:SAMSUNG-)?GT-N8020'
|
|
device: 'tablet'
|
|
model: 'GALAXY Note 10.1" LTE'
|
|
- regex: '(?:SAMSUNG-)?GT-P1000M?|SCH-I800'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab'
|
|
- regex: '(?:SAMSUNG-)?GT-P3100B?'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab 2 7"'
|
|
- regex: '(?:SAMSUNG-)?GT-P311[03]'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab 2 7" WiFi'
|
|
- regex: '(?:SAMSUNG-)?GT-P5100|SCH-I915'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab 2 10.1"'
|
|
- regex: '(?:SAMSUNG-)?GT-P511[03]'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab 2 10.1" WiFi'
|
|
- regex: '(?:SAMSUNG-)?GT-P5200'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab 3 10.1"'
|
|
- regex: '(?:SAMSUNG-)?GT-P5210'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab 3 10.1" WiFi'
|
|
- regex: '(?:SAMSUNG-)?GT-P5220'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab 3 10.1" LTE'
|
|
- regex: '(?:SAMSUNG-)?GT-P6200'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab 7" Plus'
|
|
- regex: '(?:SAMSUNG-)?GT-P6201'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab 7" Plus N'
|
|
- regex: '(?:SAMSUNG-)?GT-P6810'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab 7.7"'
|
|
- regex: '(?:SAMSUNG-)?GT-P7100'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab 10.1v'
|
|
- regex: '(?:SAMSUNG-)?GT-P7500'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab 10.1" P7500'
|
|
- regex: '(?:SAMSUNG-)?SM-P600'
|
|
device: 'tablet'
|
|
model: 'GALAXY Note 10.1" 2014 Edition WiFi'
|
|
- regex: '(?:SAMSUNG-)?SM-P60[12]'
|
|
device: 'tablet'
|
|
model: 'GALAXY Note 10.1" 2014 Edition'
|
|
- regex: '(?:SAMSUNG-)?SM-P605'
|
|
device: 'tablet'
|
|
model: 'GALAXY Note 10.1" 2014 Edition LTE'
|
|
- regex: '(?:SAMSUNG-)?SM-P900'
|
|
device: 'tablet'
|
|
model: 'GALAXY NotePRO 12.2" WiFi'
|
|
- regex: '(?:SAMSUNG-)?SM-P901'
|
|
device: 'tablet'
|
|
model: 'GALAXY NotePRO 12.2"'
|
|
- regex: '(?:SAMSUNG-)?SM-P905'
|
|
device: 'tablet'
|
|
model: 'GALAXY NotePRO 12.2" LTE'
|
|
- regex: '(?:SAMSUNG-)?SM-T110'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab 3 7.0" Lite WiFi'
|
|
- regex: '(?:SAMSUNG-)?SM-T111'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab 3 7.0" Lite'
|
|
- regex: '(?:SAMSUNG-)?SM-T116(?:BU|NU|NY)?'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab 3 V'
|
|
- regex: '(?:SAMSUNG-)?SM-T2105'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab 3 7.0" Kids'
|
|
- regex: '(?:SAMSUNG-)?SM-T210R?'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab 3 7.0" WiFi'
|
|
- regex: '(?:SAMSUNG-)?SM-T21(?:1|7[AS])'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab 3 7.0"'
|
|
- regex: '(?:SAMSUNG-)?SM-T230(?:NU)?'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab 4 7.0" WiFi'
|
|
- regex: '(?:SAMSUNG-)?SM-T231'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab 4 7.0" 3G'
|
|
- regex: '(?:SAMSUNG-)?SM-T310'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab 3 8.0" WiFi'
|
|
- regex: '(?:SAMSUNG-)?SM-T311'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab 3 8.0"'
|
|
- regex: '(?:SAMSUNG-)?SM-T315'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab 3 8.0" LTE'
|
|
- regex: '(?:SAMSUNG-)?SM-T330'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab 4 8.0" WiFi'
|
|
- regex: '(?:SAMSUNG-)?SM-T335'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab 4 8.0" LTE'
|
|
- regex: '(?:SAMSUNG-)?SM-T520'
|
|
device: 'tablet'
|
|
model: 'GALAXY TabPRO 10.1" WiFi'
|
|
- regex: '(?:SAMSUNG-)?SM-T535'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab 4 10.1" LTE'
|
|
- regex: '(?:SAMSUNG-)?SM-T320'
|
|
device: 'tablet'
|
|
model: 'GALAXY TabPRO 8.4" WiFi'
|
|
- regex: '(?:SAMSUNG-)?SM-T325'
|
|
device: 'tablet'
|
|
model: 'GALAXY TabPRO 8.4" LTE'
|
|
- regex: '(?:SAMSUNG-)?SM-T525'
|
|
device: 'tablet'
|
|
model: 'GALAXY TabPRO 10.1" LTE'
|
|
- regex: '(?:SAMSUNG-)?SM-T530(?:NU)?'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab 4 10.1" WiFi'
|
|
- regex: '(?:SAMSUNG-)?SM-T700'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab S 8.4" WiFi'
|
|
- regex: '(?:SAMSUNG-)?SM-T705'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab S 8.4" LTE'
|
|
- regex: '(?:SAMSUNG-)?SM-T800'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab S 10.5" WiFi'
|
|
- regex: '(?:SAMSUNG-)?SM-T805'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab S 10.5" LTE'
|
|
- regex: '(?:SAMSUNG-)?SM-T813'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab S2 9.7" WiFi'
|
|
- regex: '(?:SAMSUNG-)?SM-T815'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab S2 9.7" LTE'
|
|
- regex: '(?:SAMSUNG-)?SM-T820'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab S3 9.7" WiFi'
|
|
- regex: '(?:SAMSUNG-)?SM-T825'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab S3 9.7" LTE'
|
|
- regex: '(?:SAMSUNG-)?SM-T900'
|
|
device: 'tablet'
|
|
model: 'GALAXY TabPRO 12.2" WiFi'
|
|
- regex: '(?:SAMSUNG-)?SM-T280'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab A 7.0" WiFi'
|
|
- regex: '(?:SAMSUNG-)?SM-T285'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab A 7.0" LTE'
|
|
- regex: '(?:SAMSUNG-)?SM-T350'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab A 8.0" WiFi'
|
|
- regex: '(?:SAMSUNG-)?SM-T3[58]5(?:Y)?'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab A 8.0" LTE'
|
|
- regex: '(?:SAMSUNG-)?SM-T550'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab A 9.7" WiFi'
|
|
- regex: '(?:SAMSUNG-)?SM-T555'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab A 9.7" LTE'
|
|
- regex: '(?:SAMSUNG-)?SM-T580'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab A 10.1" WiFi (2016)'
|
|
- regex: '(?:SAMSUNG-)?SM-T560'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab E 9.6" WiFi'
|
|
- regex: '(?:SAMSUNG-)?SM-T561'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab E 9.6" 3G'
|
|
- regex: '(?:SAMSUNG-)?SM-T365'
|
|
device: 'tablet'
|
|
model: 'GALAXY Tab Active 8"'
|
|
|
|
# explicit smartphone models
|
|
- regex: '(?:SAMSUNG-)?GT-B5330'
|
|
model: 'GALAXY Chat'
|
|
- regex: '(?:SAMSUNG-)?GT-B5510'
|
|
model: 'GALAXY Y Pro'
|
|
- regex: '(?:SAMSUNG-)?GT-B5512'
|
|
model: 'GALAXY Y Pro Duos'
|
|
- regex: '(?:SAMSUNG-)?GT-B7510'
|
|
model: 'GALAXY Pro'
|
|
- regex: '(?:SAMSUNG-)?GT-I5700'
|
|
model: 'GALAXY Spica'
|
|
- regex: '(?:SAMSUNG-)?GT-I5801'
|
|
model: 'GALAXY Apollo'
|
|
- regex: '(?:SAMSUNG-)?GT-I5800'
|
|
model: 'GALAXY 3'
|
|
- regex: '(?:SAMSUNG-)?GT-I8000'
|
|
model: 'Omnia II'
|
|
- regex: '(?:SAMSUNG-)?GT-I8150'
|
|
model: 'GALAXY W'
|
|
- regex: '(?:SAMSUNG-)?GT-S5830'
|
|
model: 'GALAXY Ace'
|
|
- regex: '(?:SAMSUNG-)?GT-I8160'
|
|
model: 'GALAXY Ace 2'
|
|
- regex: '(?:SAMSUNG-)?GT-I8190'
|
|
model: 'GALAXY S III mini'
|
|
- regex: '(?:SAMSUNG-)?GT-I8200'
|
|
model: 'GALAXY S III mini Value Edition'
|
|
- regex: '(?:SAMSUNG-)?GT-I826[02]'
|
|
model: 'GALAXY Core'
|
|
- regex: '(?:SAMSUNG-)?GT-I8320'
|
|
model: 'H1'
|
|
- regex: '(?:SAMSUNG-)?GT-I85[23]0'
|
|
model: 'GALAXY Beam'
|
|
- regex: '(?:SAMSUNG-)?GT-I855[028]'
|
|
model: 'GALAXY Win'
|
|
- regex: '(?:SAMSUNG-)?GT-I8580'
|
|
model: 'GALAXY Core Advance'
|
|
- regex: '(?:SAMSUNG-)?GT-I8730'
|
|
model: 'GALAXY Express'
|
|
- regex: '(?:SAMSUNG-)?SM-E500(?:F|H|HQ|M)'
|
|
model: 'GALAXY E5'
|
|
- regex: '(?:SAMSUNG-)?SM-E700(?:0|9|F|H|M)'
|
|
model: 'GALAXY E7'
|
|
- regex: '(?:SAMSUNG-)?GT-I90(?:00|08|18|88)'
|
|
model: 'GALAXY S'
|
|
- regex: '(?:SAMSUNG-)?GT-I9001'
|
|
model: 'GALAXY S Plus'
|
|
- regex: '(?:SAMSUNG-)?GT-I9003'
|
|
model: 'GALAXY SL'
|
|
- regex: '(?:SAMSUNG-)?GT-I9010'
|
|
model: 'GALAXY S Giorgio Armani'
|
|
- regex: '(?:SAMSUNG-)?GT-I9070'
|
|
model: 'GALAXY S Advance'
|
|
- regex: '(?:SAMSUNG-)?GT-I910[08]'
|
|
model: 'GALAXY S II'
|
|
- regex: '(?:SAMSUNG-)?ISW11SC'
|
|
model: 'GALAXY S II WiMAX'
|
|
- regex: '(?:SAMSUNG-)?GT-I9103'
|
|
model: 'GALAXY R'
|
|
- regex: '(?:SAMSUNG-)?GT-I9105'
|
|
model: 'GALAXY S II Plus'
|
|
- regex: '(?:SAMSUNG-)?(?:GT-I919[05]|SCH-I435)'
|
|
model: 'GALAXY S4 mini'
|
|
- regex: '(?:SAMSUNG-)?GT-I9515'
|
|
model: 'GALAXY S4 Value Edition'
|
|
- regex: '(?:SAMSUNG-)?GT-I9295'
|
|
model: 'GALAXY S4 ACTIVE'
|
|
- regex: '(?:SAMSUNG-)?(?:GT-I9300|SCH-I535|SCH-L710)'
|
|
model: 'GALAXY S III'
|
|
- regex: '(?:SAMSUNG-)?(?:GT-I9305|SCH-R530)'
|
|
model: 'GALAXY S III LTE'
|
|
- regex: '(?:SAMSUNG-)?(?:GT-I9500|GT-I9505|SCH-I545|SCH-I959|SCH-R970|GALAXY-S4|SGH-M919N?)'
|
|
model: 'GALAXY S4'
|
|
- regex: '(?:SAMSUNG-)?GT-I9506'
|
|
model: 'GALAXY S4 with LTE+'
|
|
- regex: '(?:SAMSUNG-)?GT-S5280'
|
|
model: 'GALAXY STAR'
|
|
- regex: '(?:SAMSUNG-)?GT-S5301'
|
|
model: 'GALAXY POCKET Plus'
|
|
- regex: '(?:SAMSUNG-)?GT-S5310'
|
|
model: 'GALAXY POCKET Neo'
|
|
- regex: '(?:SAMSUNG-)?GT-S5360'
|
|
model: 'GALAXY Y Hello Kitty'
|
|
- regex: '(?:SAMSUNG-)?GT-S6310'
|
|
model: 'GALAXY Young'
|
|
- regex: '(?:SAMSUNG-)?GT-S6312'
|
|
model: 'GALAXY Young DUOS'
|
|
- regex: '(?:SAMSUNG-)?GT-S6790'
|
|
model: 'GALAXY FAME Lite with NFC'
|
|
- regex: '(?:SAMSUNG-)?GT-S6810'
|
|
model: 'GALAXY FAME'
|
|
- regex: '(?:SAMSUNG-)?GT-S7275'
|
|
model: 'GALAXY ACE 3'
|
|
- regex: '(?:SAMSUNG-)?GT-S7390'
|
|
model: 'GALAXY Trend Lite'
|
|
- regex: '(?:SAMSUNG-)?GT-S7500'
|
|
model: 'GALAXY ACE Plus'
|
|
- regex: '(?:SAMSUNG-)?(?:GT-S7560|SCH-I699)'
|
|
model: 'GALAXY Trend'
|
|
- regex: '(?:SAMSUNG-)?(?:GT-S7562|SCH-I919)'
|
|
model: 'GALAXY S DUOS'
|
|
- regex: '(?:SAMSUNG-)?GT-S7580'
|
|
model: 'GALAXY Trend Plus'
|
|
- regex: '(?:SAMSUNG-)?GT-S7582'
|
|
model: 'GALAXY DUOS 2'
|
|
- regex: '(?:SAMSUNG-)?GT-S7710'
|
|
model: 'GALAXY Xcover 2'
|
|
- regex: '(?:SAMSUNG-)?GT-S8500'
|
|
model: 'Wave'
|
|
- regex: '(?:SAMSUNG-)?GT-S8530'
|
|
model: 'Wave II'
|
|
- regex: '(?:SAMSUNG-)?GT-S8600'
|
|
model: 'Wave 3'
|
|
- regex: '(?:SAMSUNG-)?GT-S5380'
|
|
model: 'Wave Y'
|
|
- regex: '(?:SAMSUNG-)?GT-S7250'
|
|
model: 'Wave M'
|
|
- regex: '(?:SAMSUNG-)?GT-S5250'
|
|
model: 'Wave 525'
|
|
- regex: '(?:SAMSUNG-)?GT-S5330'
|
|
model: 'Wave 533'
|
|
- regex: '(?:SAMSUNG-)?GT-S5780'
|
|
model: 'Wave 578'
|
|
- regex: '(?:SAMSUNG-)?GT-S7230'
|
|
model: 'Wave 723'
|
|
- regex: '(?:SAMSUNG-)?SM-C101'
|
|
model: 'GALAXY S4 zoom'
|
|
- regex: '(?:SAMSUNG-)?SM-C115'
|
|
model: 'GALAXY K zoom'
|
|
- regex: '(?:SAMSUNG-)?SM-G350'
|
|
model: 'GALAXY CORE Plus'
|
|
- regex: '(?:SAMSUNG-)?SM-G360[FH]?'
|
|
model: 'GALAXY CORE Prime'
|
|
- regex: '(?:SAMSUNG-)?SM-G361[FH]?'
|
|
model: 'GALAXY CORE Prime Value Edition'
|
|
- regex: '(?:SAMSUNG-)?SM-G386F'
|
|
model: 'GALAXY CORE LTE'
|
|
- regex: '(?:SAMSUNG-)?SM-G3815'
|
|
model: 'GALAXY EXPRESS II'
|
|
- regex: '(?:SAMSUNG-)?SM-G388F'
|
|
model: 'GALAXY Xcover 3'
|
|
- regex: '(?:SAMSUNG-)?SM-G390F'
|
|
model: 'GALAXY Xcover 4'
|
|
- regex: '(?:SAMSUNG-)?SM-G800'
|
|
model: 'GALAXY S5 mini'
|
|
- regex: '(?:SAMSUNG-)?SM-G9009D'
|
|
model: 'GALAXY S5 Dual-SIM'
|
|
- regex: '(?:SAMSUNG-)?SM-G900|GALAXY-S5'
|
|
model: 'GALAXY S5'
|
|
- regex: '(?:SAMSUNG-)?SM-G901F'
|
|
model: 'GALAXY S5 LTE+'
|
|
- regex: '(?:SAMSUNG-)?SM-G903F'
|
|
model: 'GALAXY S5 Neo'
|
|
- regex: '(?:SAMSUNG-)?SM-G920(?:A|F|FD|FQ|I|P|R|S|T|V|8|9)'
|
|
model: 'GALAXY S6'
|
|
- regex: '404SC'
|
|
model: 'GALAXY S6 edge (Softbank)'
|
|
- regex: '(?:SAMSUNG-)?SM-G925[FIPRVW]'
|
|
model: 'GALAXY S6 edge'
|
|
- regex: '(?:SAMSUNG-)?SM-G928[FI]'
|
|
model: 'GALAXY S6 edge+'
|
|
- regex: '(?:SAMSUNG-)?SM-G930(?:A|F|FD|K|P|R|T|U|V|W8)'
|
|
model: 'GALAXY S7'
|
|
- regex: '(?:SAMSUNG-)?SM-G935[AFLPSTV]|SC-02H'
|
|
model: 'GALAXY S7 edge'
|
|
- regex: '(?:SAMSUNG-)?SM-G950[FU]'
|
|
model: 'GALAXY S8'
|
|
- regex: '(?:SAMSUNG-)?SM-G955[AFKLNPRTUVW0]|SCV35'
|
|
model: 'GALAXY S8+'
|
|
- regex: '(?:SAMSUNG-)?SM-G960[FNUW0]'
|
|
model: 'GALAXY S9'
|
|
- regex: '(?:SAMSUNG-)?SM-G965[FUW0]'
|
|
model: 'GALAXY S9+'
|
|
- regex: '(?:SAMSUNG-)?SCH-I200'
|
|
model: 'GALAXY Stellar'
|
|
- regex: '(?:SAMSUNG-)?SCH-I829'
|
|
model: 'GALAXY Style Duos'
|
|
- regex: '(?:SAMSUNG-)?(?:SGH-S730|SCH-R740)'
|
|
model: 'GALAXY Discover'
|
|
- regex: '(?:SAMSUNG-)?SCH-S738'
|
|
model: 'GALAXY Centura'
|
|
- regex: 'vollo Vi86[);/ ]'
|
|
model: 'Vollo Vi86'
|
|
- regex: '(?:SAMSUNG-)?SM-A300(?:F|FU|G|H|M)'
|
|
model: 'GALAXY A3 (2015)'
|
|
- regex: '(?:SAMSUNG-)?SM-A310F'
|
|
model: 'GALAXY A3 (2016)'
|
|
- regex: '(?:SAMSUNG-)?SM-A320(?:FL|F|Y)'
|
|
model: 'GALAXY A3 (2017)'
|
|
- regex: '(?:SAMSUNG-)?SM-A500[FGHM0]'
|
|
model: 'GALAXY A5 Duos'
|
|
- regex: '(?:SAMSUNG-)?SM-A500FU'
|
|
model: 'GALAXY A5 (2015)'
|
|
- regex: '(?:SAMSUNG-)?SM-A510F'
|
|
model: 'GALAXY A5 (2016)'
|
|
- regex: '(?:SAMSUNG-)?SM-A520F'
|
|
model: 'GALAXY A5 (2017)'
|
|
- regex: '(?:SAMSUNG-)?SM-(?:A720F|A700[FKLS]|A710[FMY0])'
|
|
model: 'GALAXY A7'
|
|
- regex: '(?:SAMSUNG-)?SM-A(?:530F|800F)'
|
|
model: 'GALAXY A8'
|
|
- regex: '(?:SAMSUNG-)?SM-A9000'
|
|
model: 'GALAXY A9'
|
|
- regex: '(?:SAMSUNG-)?SM-A910F'
|
|
model: 'GALAXY A9 Pro'
|
|
- regex: '(?:SAMSUNG-)?GT-I9301I'
|
|
model: 'GALAXY S III Neo'
|
|
- regex: '(?:SAMSUNG-)?SM-J100(?:F|FN|H|M|MU)'
|
|
model: 'GALAXY J1'
|
|
- regex: '(?:SAMSUNG-)?SM-J105(?:B|H)'
|
|
model: 'GALAXY J1 mini'
|
|
- regex: '(?:SAMSUNG-)?SM-J120[AFHMT]'
|
|
model: 'GALAXY J1 (2016)'
|
|
- regex: '(?:SAMSUNG-)?SM-J110[FHML]'
|
|
model: 'GALAXY J1 Ace'
|
|
- regex: '(?:SAMSUNG-)?SM-J111[FM]'
|
|
model: 'GALAXY J1 Ace'
|
|
- regex: '(?:SAMSUNG-)?SM-J200[FGHY]'
|
|
model: 'GALAXY J2'
|
|
- regex: '(?:SAMSUNG-)?SM-J2[15]0F'
|
|
model: 'GALAXY J2 Pro'
|
|
- regex: '(?:SAMSUNG-)?SM-J320(?:A|F|FN|G|H|M|P|V)'
|
|
model: 'GALAXY J3 (2016)'
|
|
- regex: '(?:SAMSUNG-)?SM-J330(?:F|G)'
|
|
model: 'GALAXY J3 (2017)'
|
|
- regex: '(?:SAMSUNG-)?SM-J400(?:F|G)'
|
|
model: 'GALAXY J4'
|
|
- regex: '(?:SAMSUNG-)?SM-J500(?:F|FN|G|Y|M|H)'
|
|
model: 'GALAXY J5 (2015)'
|
|
- regex: '(?:SAMSUNG-)?SM-J510[FM]N'
|
|
model: 'GALAXY J5 (2016)'
|
|
- regex: '(?:SAMSUNG-)?SM-J530[FY]'
|
|
model: 'GALAXY J5 (2017)'
|
|
- regex: '(?:SAMSUNG-)?SM-G570[FY]'
|
|
model: 'GALAXY J5 Prime'
|
|
- regex: '(?:SAMSUNG-)?SM-J600[FG]'
|
|
model: 'GALAXY J6'
|
|
- regex: '(?:SAMSUNG-)?SM-J7[01]0(?:F|FN|H|M|MN)'
|
|
model: 'GALAXY J7'
|
|
- regex: '(?:SAMSUNG-)?SM-C710F'
|
|
model: 'GALAXY J7+ (C7)'
|
|
- regex: '(?:SAMSUNG-)?SM-G610[FMY]'
|
|
model: 'GALAXY J7 Prime'
|
|
- regex: '(?:SAMSUNG-)?SM-G615[F]'
|
|
model: 'GALAXY J7 Max'
|
|
- regex: '(?:SAMSUNG-)?SM-J730(?:F|G|GM)'
|
|
model: 'GALAXY J7 Pro'
|
|
- regex: '(?:SAMSUNG-)?SM-J701(?:F|M)'
|
|
model: 'GALAXY J7 Core' # also GALAXY J7 Nxt and GALAXY J7 Neo
|
|
- regex: '(?:SAMSUNG-)?SM-G850F'
|
|
model: 'GALAXY Alpha'
|
|
- regex: '(?:SAMSUNG-)?SM-(?:G550FY|G5520)'
|
|
model: 'GALAXY On5'
|
|
- regex: '(?:SAMSUNG-)?SM-G600FY'
|
|
model: 'GALAXY On7'
|
|
- regex: '(?:SAMSUNG-)?SM-C900[FY0]'
|
|
model: 'GALAXY C9 Pro'
|
|
- regex: '(?:SAMSUNG-)?SM-G150'
|
|
model: 'GALAXY Folder'
|
|
- regex: '(?:SAMSUNG-)?SM-G165'
|
|
model: 'GALAXY Folder 2'
|
|
|
|
# explicit phablet models
|
|
- regex: '(?:SAMSUNG-)?GT-I9060'
|
|
model: 'GALAXY Grand Neo'
|
|
device: 'phablet'
|
|
- regex: '(?:SAMSUNG-)?GT-I9063'
|
|
model: 'GALAXY Grand Neo Duos'
|
|
device: 'phablet'
|
|
- regex: '(?:SAMSUNG-)?GT-I9(?:080|128)'
|
|
model: 'GALAXY Grand'
|
|
device: 'phablet'
|
|
- regex: '(?:SAMSUNG-)?GT-I9168'
|
|
model: 'GALAXY Grand Neo+'
|
|
device: 'phablet'
|
|
- regex: '(?:SAMSUNG-)?GT-I9082'
|
|
model: 'GALAXY Grand Duos'
|
|
device: 'phablet'
|
|
- regex: '(?:SAMSUNG-)?GT-N7000'
|
|
model: 'GALAXY Note'
|
|
device: 'phablet'
|
|
- regex: '(?:SAMSUNG-)?(?:(?:GT-)?N7100|SCH-I605|SCH-N719|SCH-R950|SPH-L900)'
|
|
model: 'GALAXY Note II'
|
|
device: 'phablet'
|
|
- regex: '(?:SAMSUNG-)?GT-N7105'
|
|
model: 'GALAXY Note II LTE'
|
|
device: 'phablet'
|
|
- regex: '(?:SAMSUNG-)?SM-G710[25]'
|
|
model: 'GALAXY Grand 2'
|
|
device: 'phablet'
|
|
- regex: '(?:SAMSUNG-)?SM-G53(?:0F|0FZ|0Y|0H|0FZ|1F|1H)'
|
|
model: 'GALAXY Grand Prime'
|
|
device: 'phablet'
|
|
- regex: '(?:SAMSUNG-)?SM-G532F'
|
|
model: 'GALAXY Grand Prime Plus' # also GALAXY J2 Prime
|
|
device: 'phablet'
|
|
- regex: '(?:SAMSUNG-)?SM-G532MT'
|
|
model: 'GALAXY J2 Prime (TV)'
|
|
device: 'phablet'
|
|
- regex: '(?:SAMSUNG-)?SM-G532[MG]'
|
|
model: 'GALAXY J2 Prime'
|
|
device: 'phablet'
|
|
- regex: '(?:SAMSUNG-)?SM-N7502'
|
|
model: 'GALAXY Note 3 Neo Duos'
|
|
device: 'phablet'
|
|
- regex: '(?:SAMSUNG-)?SM-N750[L50]?'
|
|
model: 'GALAXY Note 3 Neo'
|
|
device: 'phablet'
|
|
- regex: '(?:SAMSUNG-)?SM-N9002'
|
|
model: 'GALAXY Note 3 Duos'
|
|
device: 'phablet'
|
|
- regex: '(?:SAMSUNG-)?SM-N900(?:[05689][VQ]?|[AKLPSTV]|W8)?'
|
|
model: 'GALAXY Note 3'
|
|
device: 'phablet'
|
|
- regex: '(?:SAMSUNG-)?SM-N910|N9100'
|
|
model: 'GALAXY Note 4'
|
|
device: 'phablet'
|
|
- regex: '(?:SAMSUNG-)?SM-N915'
|
|
model: 'GALAXY Note 4 Edge'
|
|
device: 'phablet'
|
|
- regex: '(?:SAMSUNG-)?SM-N920[0ACGIKLST]'
|
|
model: 'GALAXY Note 5'
|
|
device: 'phablet'
|
|
- regex: '(?:SAMSUNG-)?SM-N9208'
|
|
model: 'GALAXY Note 5 Duos'
|
|
device: 'phablet'
|
|
- regex: '(?:SAMSUNG-)?GT-I915[028]'
|
|
model: 'GALAXY Mega 5.8'
|
|
device: 'phablet'
|
|
- regex: '(?:SAMSUNG-)?GT-I920[05]'
|
|
model: 'GALAXY Mega 6.3'
|
|
device: 'phablet'
|
|
- regex: '(?:SAMSUNG-)?SM-N930F'
|
|
model: 'GALAXY Note 7'
|
|
device: 'phablet'
|
|
- regex: '(?:SAMSUNG[- ])?SM-N950'
|
|
model: 'GALAXY Note 8'
|
|
device: 'phablet'
|
|
- regex: '(?:SAMSUNG[- ])?SM-N960'
|
|
model: 'GALAXY Note 9'
|
|
device: 'phablet'
|
|
|
|
# explicit feature phones
|
|
- regex: '(?:SAMSUNG-)?GT-E2152'
|
|
model: 'E2152'
|
|
device: 'feature phone'
|
|
|
|
# general detections
|
|
- regex: '(?:SAMSUNG-)?(GT-(P|N8|N5)[0-9]+[a-z]?)'
|
|
device: 'tablet'
|
|
model: '$1'
|
|
- regex: 'SC-02C'
|
|
model: 'GALAXY S II'
|
|
- regex: 'SC-01F'
|
|
model: 'GALAXY Note 3'
|
|
device: 'phablet'
|
|
- regex: 'SC-04E'
|
|
model: 'GALAXY S4'
|
|
- regex: '(?:SAMSUNG-)?((?:SM-[TNP]|GT-P)[a-z0-9_\-]+)'
|
|
device: 'tablet'
|
|
model: '$1'
|
|
- regex: '((?:SCH|SGH|SPH|SHV|SHW|GT|SM)-[a-z0-9_\-]+)'
|
|
model: '$1'
|
|
- regex: 'SMART-TV'
|
|
device: 'tv'
|
|
model: 'Smart TV'
|
|
- regex: 'Galaxy ([^/;]+) Build'
|
|
model: 'GALAXY $1'
|
|
- regex: 'Galaxy ([a-z0-9]+)'
|
|
model: 'GALAXY $1'
|
|
- regex: 'SAMSUNG[\-][ ]?([a-z0-9]+[\-_][a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: 'SAMSUNG;[ ]?([a-z0-9]+[\-_][a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: 'SAMSUNG(?!Browser)[ _/\-]?([a-z0-9\-]+)'
|
|
model: '$1'
|
|
- regex: 'SAMSUNG;[ ]?([a-z0-9 ]+)'
|
|
model: '$1'
|
|
- regex: 'SEC-([a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: 'SAM-([a-z0-9]+)'
|
|
model: 'SCH-$1'
|
|
- regex: '(?:portalmmm|o2imode)/2\.0 ([SZ][a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: 'sam([rua][0-9]+)'
|
|
model: 'SCH-$1'
|
|
|
|
# Sanei
|
|
Sanei:
|
|
regex: '(?:8312D|G(60[25]|70[3568]G?|785|803)|N83(?:-2cpu)?|N91) Build'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'N83'
|
|
model: 'N83'
|
|
- regex: 'N91'
|
|
model: 'N91'
|
|
- regex: '8312D'
|
|
model: 'G101'
|
|
- regex: 'G(60[25]|70[3568]G?|785|803)'
|
|
model: 'G$1'
|
|
|
|
# Sencor
|
|
Sencor:
|
|
regex: 'Sencor|ELEMENT[ _]?(?:7|8|9\.7|10[ _]1)(?:[ _]?V[23])?[);/ ]|ELEMENT[ _]?(?:P[0-9]+)[);/ ]'
|
|
device: 'tablet'
|
|
models:
|
|
# explicit tablet models
|
|
- regex: '(?:SENCOR[ _])?ELEMENT[ _]?7[ _]?V3'
|
|
model: 'Element 7 V3'
|
|
- regex: '(?:SENCOR[ _])?ELEMENT[ _]?7[ _]?V2[ _]BASIC'
|
|
model: 'Element 7 V2 Basic'
|
|
- regex: '(?:SENCOR[ _])?ELEMENT[ _]?7[ _]?V2'
|
|
model: 'Element 7 V2'
|
|
- regex: '(?:SENCOR[ _])?ELEMENT[ _]8[ _]?V3'
|
|
model: 'Element 8 V3'
|
|
- regex: '(?:SENCOR[ _])?ELEMENT[ _]8[ _]?V2'
|
|
model: 'Element 8 V2'
|
|
- regex: '(?:SENCOR[ _])?ELEMENT8'
|
|
model: 'Element 8'
|
|
- regex: '(?:SENCOR[ _])?ELEMENT[ _]9\.7[ _]?V3'
|
|
model: 'Element 9.7 V3'
|
|
- regex: '(?:SENCOR[ _])?ELEMENT[ _]9\.7[ _]?V2'
|
|
model: 'Element 9.7 V2'
|
|
- regex: '(?:SENCOR[ _])?ELEMENT[ _]9\.7'
|
|
model: 'Element 9.7'
|
|
- regex: '(?:SENCOR[ _])?ELEMENT10[ _]1'
|
|
model: 'Element 10.1'
|
|
|
|
- regex: '(?:SENCOR[ _])?ELEMENT[ _]?P([0-9]+)'
|
|
model: 'Element P$1'
|
|
device: 'smartphone'
|
|
|
|
- regex: 'Sencor[ _]([^;/]+) Build'
|
|
model: '$1'
|
|
|
|
# Skyworth
|
|
Skyworth:
|
|
regex: 'Sky_?worth'
|
|
device: 'tv'
|
|
models:
|
|
- regex: 'Sky_?worth ([^;/]+) Build'
|
|
model: '$1'
|
|
|
|
# Smartfren
|
|
Smartfren:
|
|
regex: 'Smartfren|Androtab|Andromax|PD6D1J|AD682J|AD68[89]G|AD6B1H|AD9A1H|AD682H|AD683G'
|
|
device: 'smartphone'
|
|
models:
|
|
# explicit tablet models
|
|
- regex: 'S7 Build'
|
|
model: 'Andromax Tab 7.0'
|
|
device: 'tablet'
|
|
|
|
# explicit smartphone models
|
|
- regex: 'PD6D1J'
|
|
model: 'Andromax V3s'
|
|
- regex: 'AD682J'
|
|
model: 'Andromax T'
|
|
- regex: 'AD688G'
|
|
model: 'Andromax C2'
|
|
- regex: 'AD689G'
|
|
model: 'Andromax i3'
|
|
- regex: 'AD682H'
|
|
model: 'Andromax i3s'
|
|
- regex: 'AD6B1H'
|
|
model: 'Andromax G2 Hot'
|
|
- regex: 'AD9A1H'
|
|
model: 'Andromax G2'
|
|
- regex: 'AD683G'
|
|
model: 'Andromax I'
|
|
- regex: 'New Andromax-i'
|
|
model: 'New Andromax I'
|
|
|
|
- regex: 'Andromax[ _\-]([^/;]+) Build'
|
|
model: 'Andromax $1'
|
|
- regex: 'Andromax[ _\-]([a-z0-9]+)'
|
|
model: 'Andromax $1'
|
|
- regex: 'Smartfren[ _\-]([^/;\)]+)(?: Build|[/;\)])'
|
|
model: '$1'
|
|
- regex: '(Androtab[^/;]+) Build'
|
|
model: '$1'
|
|
device: 'tablet'
|
|
|
|
# Smartisan
|
|
Smartisan:
|
|
regex: 'SM(?:70[15]|801|901|919)|OD10[35]|YQ60[1357][ /;\)]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'SM70[15]'
|
|
model: 'T1'
|
|
- regex: 'SM801'
|
|
model: 'T2'
|
|
- regex: 'SM901'
|
|
model: 'M1'
|
|
- regex: 'SM919'
|
|
model: 'M1L'
|
|
- regex: 'YQ60[1357]'
|
|
model: 'U1'
|
|
- regex: 'OD10[35]'
|
|
model: 'Pro'
|
|
|
|
# STK
|
|
STK:
|
|
regex: 'STK[_ ]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'STK[_ ]([^/;]+) Build'
|
|
model: '$1'
|
|
- regex: 'STK[_ ]([a-z0-9]+)'
|
|
model: '$1'
|
|
|
|
# Stonex
|
|
Stonex:
|
|
regex: 'STX[ -]([^;/]+)'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'STX[ -]([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'STX[ -]([a-z0-9_-]+)'
|
|
model: '$1'
|
|
|
|
# SuperSonic
|
|
SuperSonic:
|
|
regex: '(SC-[0-9]+[a-z]+)'
|
|
device: 'tablet'
|
|
model: '$1'
|
|
|
|
# Supra
|
|
Supra:
|
|
regex: 'SUPRA ([^;/]+) Build|NVTAB 7.0 3G'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'SUPRA ([^;/]+) Build'
|
|
device: 'tablet'
|
|
model: '$1'
|
|
- regex: '(NVTAB 7.0 3G)'
|
|
device: 'tablet'
|
|
model: '$1'
|
|
|
|
# Sumvision
|
|
Sumvision:
|
|
regex: '(Cyclone [^/;]+) Build'
|
|
device: 'tablet'
|
|
model: '$1'
|
|
|
|
# SunVan
|
|
SunVan:
|
|
regex: 'SUNVAN[ _\-]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'SUNVAN[ _\-]?([^/;]+) Build'
|
|
model: '$1'
|
|
- regex: 'SUNVAN[ _\-]?([^);/ ]+)'
|
|
model: '$1'
|
|
|
|
# Thomson
|
|
Thomson:
|
|
regex: '(?:Primo(7|8)|QM73[45]-8G|QM734-2|QM736-8G\(HD\)|8950|MID1002)[);/ ]|(?:Tlink|Every)[0-9]+'
|
|
device: 'tablet'
|
|
models:
|
|
# already detected as manta device
|
|
#- regex: 'MID1002'
|
|
# model: 'MID1002'
|
|
- regex : 'Primo(7|8)'
|
|
model: 'Primo $1'
|
|
- regex: 'QM734-2'
|
|
model: 'QM734-2'
|
|
- regex: 'QM734-8G'
|
|
model: 'QM734-8G'
|
|
- regex: 'QM735-8G'
|
|
model: 'QM735-8G'
|
|
- regex: 'QM736-8G\(HD\)'
|
|
model: 'QM736-8G (HD)'
|
|
- regex: '8950 Build'
|
|
model: '3G 8950'
|
|
|
|
- regex: 'Tlink([0-9]+)'
|
|
device: 'smartphone'
|
|
model: 'Tlink$1'
|
|
- regex: 'Every([0-9]+)'
|
|
device: 'smartphone'
|
|
model: 'Every$1'
|
|
|
|
# pantech
|
|
Pantech:
|
|
regex: 'Pantech|P[GN]-|PT-[a-z0-9]{3,}|TX[T]?[0-9]+|IM-[a-z0-9]+[);/ ]|ADR910L'
|
|
device: 'smartphone'
|
|
models:
|
|
# explicit smartphone models
|
|
- regex: 'ADR910L'
|
|
model: 'Star Q'
|
|
- regex: 'IM-A870K'
|
|
model: 'Vega Iron'
|
|
|
|
- regex: 'Pantech[ \-]?([a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: 'Pantech_([a-z0-9\-]+)'
|
|
model: '$1'
|
|
- regex: '(P[GTN]-[a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: '(TX[T]?[0-9]+)'
|
|
model: '$1'
|
|
- regex: '(IM-[a-z0-9]+)[);/ ]'
|
|
model: '$1'
|
|
|
|
# Ployer
|
|
Ployer:
|
|
regex: 'MOMO([0-9]|miniS)'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'MOMOminiS'
|
|
model: 'MOMO mini S'
|
|
- regex: 'MOMO([0-9][^);/]*) Build'
|
|
model: 'MOMO $1'
|
|
- regex: 'MOMO([0-9][^);/]*)[);/]'
|
|
model: 'MOMO $1'
|
|
|
|
# Polaroid
|
|
Polaroid:
|
|
regex: 'Polaroid|(?:PMID|MIDC)[0-9a-z]+[);/ ]|MID(?:1014|0714)|PRO[VG]?(?:[0-9]{3,}[a-z]*|[0-9]{2}[a-z])|P4526A|P5006A'
|
|
device: 'tablet'
|
|
models:
|
|
# explicit smartphone models
|
|
- regex: 'P4526A'
|
|
model: 'Turbo E'
|
|
device: 'smartphone'
|
|
- regex: 'P5006A'
|
|
model: 'Cosmo K'
|
|
device: 'smartphone'
|
|
- regex: 'PRO4611(?:PR201)?'
|
|
model: 'Pro4611'
|
|
device: 'smartphone'
|
|
- regex: 'PROV400'
|
|
model: 'Agate'
|
|
device: 'smartphone'
|
|
- regex: 'PROV350'
|
|
model: 'ProV350'
|
|
device: 'smartphone'
|
|
|
|
- regex: 'PRO([VG]?(?:[0-9]{3,}[a-z]*|[0-9]{2}[a-z]))'
|
|
model: 'Pro$1'
|
|
device: 'smartphone'
|
|
- regex: '(MID(?:1014|0714))'
|
|
model: '$1'
|
|
- regex: '((?:PMID|MIDC)[0-9a-z]+)[);/ ]'
|
|
model: '$1'
|
|
- regex: 'Polaroid'
|
|
model: ''
|
|
|
|
# PolyPad
|
|
PolyPad:
|
|
regex: 'POLY ?PAD'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'POLY ?PAD[_ \.]([a-z0-9]+)[);/ ]'
|
|
model: '$1'
|
|
- regex: 'POLY ?PAD[_\.]([a-z0-9]+)'
|
|
model: '$1'
|
|
|
|
# Positivo
|
|
Positivo:
|
|
regex: 'YPY_S450'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'YPY_S450'
|
|
model: 'YPY S450'
|
|
|
|
# Prestigio
|
|
Prestigio:
|
|
regex: '(?:PMP|PAP|PMT|PSP)[0-9]+[a-z0-9_]+[);/ ]'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'PMT3277_3G'
|
|
model: 'MultiPad Ranger 7.0 3G'
|
|
- regex: 'PMT3287_3G'
|
|
model: 'MultiPad Ranger 8.0 3G'
|
|
|
|
- regex: '(PM[PT][0-9]+[a-z0-9_]+)[);/ ]'
|
|
model: '$1'
|
|
- regex: '((?:PAP|PSP)[0-9]+[a-z0-9_]+(?: DUO)?)[);/ ]'
|
|
model: '$1'
|
|
device: 'smartphone'
|
|
|
|
# Sanyo
|
|
Sanyo:
|
|
regex: 'Sanyo|MobilePhone[ ;]'
|
|
device: 'feature phone'
|
|
models:
|
|
# explicit feature phone models
|
|
- regex: 'SCP-?6750'
|
|
model: 'Katana Eclipse X'
|
|
- regex: 'SCP-?6760'
|
|
model: 'Incognito'
|
|
- regex: 'SCP-?6780'
|
|
model: 'Innuendo'
|
|
|
|
- regex: 'SANYO[ \-_]([a-z0-9\-]+)'
|
|
model: '$1'
|
|
- regex: 'MobilePhone ([a-z0-9\-]+)'
|
|
model: '$1'
|
|
|
|
# Qilive
|
|
Qilive:
|
|
regex: 'Qilive [0-9][^;/]*'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Qilive ([0-5][^;/]*) Build'
|
|
model: '$1'
|
|
- regex: 'Qilive ([0-5][^;/]*)/'
|
|
model: '$1'
|
|
- regex: 'Qilive ([6-9][^;/]*) Build'
|
|
model: '$1'
|
|
device: 'tablet'
|
|
- regex: 'Qilive ([6-9][^;/]*)/'
|
|
model: '$1'
|
|
device: 'tablet'
|
|
|
|
# QMobile
|
|
QMobile:
|
|
regex: 'QMobile|QTab|Q-Smart'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'QTab[ _-]([^;/]+) Build'
|
|
model: '$1 Tab'
|
|
device: 'tablet'
|
|
- regex: 'QTab[ _-]([^;/)]+)[;/)]'
|
|
model: '$1 Tab'
|
|
device: 'tablet'
|
|
- regex: '(?:QMobile|Q-Smart)[ _-]([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: '(?:QMobile|Q-Smart)[ _-]([^;/)]+)[;/)]'
|
|
model: '$1'
|
|
|
|
# Quechua
|
|
Quechua:
|
|
regex: 'Quechua Phone 5'
|
|
device: 'smartphone'
|
|
model: 'Quechua Phone 5'
|
|
|
|
# Ramos
|
|
Ramos:
|
|
regex: 'Ramos ?([^/;]+) Build'
|
|
device: 'tablet'
|
|
model: '$1'
|
|
|
|
# Sendo
|
|
Sendo:
|
|
regex: 'Sendo([a-z0-9]+)'
|
|
device: 'feature phone'
|
|
model: '$1'
|
|
|
|
# Turbo-X
|
|
Turbo-X:
|
|
regex: 'Turbo-X'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Turbo-X Ice[);/ ]'
|
|
device: 'tablet'
|
|
model: 'Ice'
|
|
- regex: 'Turbo-X Tablet([^;/]+) Build'
|
|
device: 'tablet'
|
|
model: 'Tablet$1'
|
|
- regex: 'Turbo-X ([^;/]+) Build'
|
|
model: '$1'
|
|
|
|
# Spice
|
|
Spice:
|
|
regex: 'Spice'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Spice[ _\-]?([^/;]+)(?:[\)]| Build)'
|
|
model: '$1'
|
|
- regex: 'Spice[ _\-]?([^/;]+)(?:/|$)'
|
|
model: '$1'
|
|
|
|
# Sharp
|
|
Sharp:
|
|
regex: 'SHARP|SBM|SH-?[0-9]+[a-z]?[);/ ]|AQUOS|506SH|SHL22 '
|
|
device: 'smartphone'
|
|
models:
|
|
# explicit smartphone models
|
|
- regex: '506SH'
|
|
model: 'Aquos Xx3'
|
|
- regex: 'SH-02E'
|
|
model: 'Aquos Phone Zeta'
|
|
- regex: 'SH06D'
|
|
model: 'Aquos Phone SH-06D'
|
|
- regex: 'SHL22'
|
|
model: 'Aquos Phone SHL22'
|
|
|
|
# explicit tablet models
|
|
- regex: 'SH-08E'
|
|
device: 'tablet'
|
|
model: 'Sharp Aquos Pad'
|
|
|
|
- regex: '(LC-(?:[0-9]{2})[a-z0-9]+)(?:[);/ ]|$)'
|
|
device: 'tv'
|
|
model: '$1'
|
|
- regex: 'SHARP-AQUOS|AQUOSBrowser'
|
|
device: 'tv'
|
|
model: 'Aquos Net Plus'
|
|
- regex: 'SHARP[ \-]([a-z0-9\-]+)'
|
|
model: '$1'
|
|
- regex: '(?:SHARP|SBM)([a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: '(SH-?[0-9]+[a-z]?)[);/ ]'
|
|
model: '$1'
|
|
|
|
# Softbank
|
|
Softbank:
|
|
regex: 'Softbank|J-PHONE'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Softbank/[12]\.0/([a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: '([a-z0-9]+);Softbank;'
|
|
model: '$1'
|
|
- regex: 'J-PHONE/[0-9]\.[0-9]/([a-z0-9\-]+)'
|
|
model: '$1'
|
|
|
|
# Star
|
|
Star:
|
|
regex: 'N(9[5678]00|8800|9000|9977)[);/ ]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'N9000'
|
|
model: 'Note 3'
|
|
|
|
- regex: 'N(9[5678]00|8800|9977)[);/ ]'
|
|
model: 'N$1'
|
|
|
|
# Kindle
|
|
Amazon:
|
|
regex: 'KF(?:OT|TT|JWI|JWA|[DFS]OWI|A[PRSU]WI|T[BH]WI|SAW[IA]|GIWI)[);/ ]|Kindle|Silk/\d+\.\d+|Amazon (?:Tate|Jem)|AFT[BMST]|SD4930UR'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'AFTB'
|
|
model: 'Fire TV'
|
|
device: 'tv'
|
|
- regex: 'AFT[MST]'
|
|
model: 'Fire TV stick'
|
|
device: 'tv'
|
|
- regex: 'KFFOWI[);/ ]'
|
|
model: 'Fire 7"'
|
|
- regex: 'KFTT[);/ ]'
|
|
model: 'Kindle Fire HD'
|
|
- regex: 'KFJWI[);/ ]|Amazon Jem'
|
|
model: 'Kindle Fire HD 8.9" WiFi'
|
|
- regex: 'KFJWA[);/ ]'
|
|
model: 'Kindle Fire HD 8.9" 4G'
|
|
- regex: 'KFSOWI[);/ ]|Amazon Tate'
|
|
model: 'Kindle Fire HD 7" WiFi'
|
|
- regex: 'KFTHWI[);/ ]'
|
|
model: 'Kindle Fire HDX 7" WiFi'
|
|
- regex: 'KFTHWA[);/ ]'
|
|
model: 'Kindle Fire HDX 7" 4G'
|
|
- regex: 'KFAPWI[);/ ]'
|
|
model: 'Kindle Fire HDX 8.9" WiFi'
|
|
- regex: 'KFAPWA[);/ ]'
|
|
model: 'Kindle Fire HDX 8.9" 4G'
|
|
- regex: 'KFARWI[);/ ]'
|
|
model: 'Fire HD 6'
|
|
- regex: 'KFASWI[);/ ]'
|
|
model: 'Fire HD 7'
|
|
- regex: 'KFAUWI[);/ ]'
|
|
model: 'Fire HD 7 2017'
|
|
- regex: 'KFGIWI[);/ ]'
|
|
model: 'Fire HD 8 2016'
|
|
- regex: 'KFDOWI[);/ ]'
|
|
model: 'Fire HD 8 2017'
|
|
- regex: 'KFSAWI[);/ ]'
|
|
model: 'Fire HDX 8.9'
|
|
- regex: 'KFSAWA[);/ ]'
|
|
model: 'Fire HDX 8.9 4G'
|
|
- regex: 'KFTBWI[);/ ]'
|
|
model: 'Fire HD 10'
|
|
- regex: 'SD4930UR'
|
|
model: 'Fire Phone'
|
|
device: 'smartphone'
|
|
|
|
|
|
- regex: 'KFOT|Kindle Fire|Silk/\d+\.\d+'
|
|
model: 'Kindle Fire'
|
|
- regex: 'Kindle'
|
|
model: 'Kindle'
|
|
|
|
# Symphony
|
|
Symphony:
|
|
regex: 'SYMPHONY[ \_]([a-z0-9]+)'
|
|
device: 'smartphone'
|
|
model: '$1'
|
|
|
|
# Qtek
|
|
Qtek:
|
|
regex: 'Qtek[ _]?([a-z0-9]+)'
|
|
device: 'smartphone'
|
|
model: '$1'
|
|
|
|
# T-Mobile
|
|
T-Mobile:
|
|
regex: 'T-Mobile[ _][a-z0-9 ]+'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'T-Mobile[ _]([a-z0-9_ ]+) Build'
|
|
model: '$1'
|
|
- regex: 'T-Mobile[ _]([a-z0-9_ ]+)'
|
|
model: '$1'
|
|
|
|
# TB Touch
|
|
'TB Touch':
|
|
regex: 'Ignis [89]'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'Ignis ([89])'
|
|
model: 'Ignis $1'
|
|
|
|
# Tcl
|
|
TCL:
|
|
regex: 'TCL[ -][a-z0-9]+|(TCL[_ -][^;/]+|7040N) Build|TCLGalaG60'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'TCLGalaG60'
|
|
model: 'Gala G60'
|
|
- regex: 'TCL[_ -]([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'TCL[ -]([a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: '(7040N)'
|
|
model: '$1'
|
|
|
|
# Teclast
|
|
Teclast:
|
|
regex: 'Teclast|Tbook'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'Tbook[_ -]([^;/]+) Build'
|
|
model: 'Tbook $1'
|
|
- regex: 'Teclast[_ -]([^;/]+) Build'
|
|
model: '$1'
|
|
|
|
# Tecno Mobile
|
|
Tecno Mobile:
|
|
regex: 'Tecno|Phantom6-Plus'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Phantom6-Plus'
|
|
model: 'Phantom 6 Plus'
|
|
- regex: 'Tecno ([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'Tecno[ _]?([a-z0-9_\-]+)'
|
|
model: '$1'
|
|
|
|
# TechPad
|
|
TechPad:
|
|
regex: 'Tech ?pad|XTAB[ _-]|Dual C1081HD|S813G'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'S813G'
|
|
model: 'S813G'
|
|
- regex: 'Dual C1081HD'
|
|
model: 'XTAB C1081HD'
|
|
- regex: 'XTAB[ _-]([^/;]+) Build'
|
|
model: 'XTAB $1'
|
|
- regex: 'Tech ?pad[ _-]([^/;]+) Build'
|
|
model: '$1'
|
|
device: 'smartphone'
|
|
|
|
# Tesco
|
|
Tesco:
|
|
regex: 'Hudl ([^/;]+) Build|W032i-C3[);/ ]'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'Hudl ([^/;]+) Build'
|
|
model: 'Hudl $1'
|
|
- regex: 'W032i-C3[);/ ]'
|
|
model: 'Op3n Dott'
|
|
|
|
# teXet
|
|
teXet:
|
|
regex: 'Texet|(NaviPad [^/;]*) Build|TM-(?:1046|1058|1057|1067|3000|3200R|3500|4003|4071|450[34]|451[30]|4377|4082R|550[83]|5010|5017|5[23]77|6003|6906|702[13]|7055HD|709[69]|9747BT|9758|9751HD|9767|5513|520[410]|5505|507[13]|5581|7859|8044|9748[ _]3G|9720|7047HD[ _]3G|9757|9740|4982|4515|4083|500[3567]|5571|3204R|5016|8043|7047HD[ _]3G|8041HD|8066|705[23]|7041|8041HD|8051|8048|974[96]|973[78]W|974[10]|9743W|9750HD|7043XD|7049|7887|7037W|702[46])|TB-(771A|711A)|X-Force[\(-]?TM-5009\)?|X-Plus[\(-]?TM-5577\)?|X-pad (?:AIR 8|iX 7) 3G'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'TM-9749'
|
|
model: 'X-pad Plus 7.1 3G'
|
|
- regex: 'TM-9746'
|
|
model: 'X-pad Plus 7 3G'
|
|
- regex: 'TM-8051'
|
|
model: 'X-pad Force 8i 3G'
|
|
- regex: 'TM-1058'
|
|
model: 'X-Force 10 3G'
|
|
- regex: 'TM-8048'
|
|
model: 'X-pad Force 8 3G'
|
|
- regex: '(NaviPad [^/;]*) Build'
|
|
model: '$1'
|
|
- regex: 'TM-7055HD'
|
|
model: 'NaviPad 3G'
|
|
- regex: 'TM-9758'
|
|
model: 'X-pad Style 10'
|
|
- regex: '(X-pad (?:AIR 8|iX 7) 3G)'
|
|
model: '$1'
|
|
- regex: 'TM-7096'
|
|
model: 'X-pad NAVI 7.3 3G'
|
|
- regex: 'TM-7099'
|
|
model: 'X-pad NAVI 7.4 3G'
|
|
- regex: 'TM-1046'
|
|
model: 'X-pad NAVI 10 3G'
|
|
- regex: 'TM-7859'
|
|
model: 'X-pad NAVI 8.2 3G'
|
|
- regex: 'TM-7049'
|
|
model: 'NaviPad TM-7049 3G'
|
|
- regex: 'TM-7887'
|
|
model: 'NaviPad TM-7887 3G'
|
|
- regex: 'TM-8066'
|
|
model: 'X-pad Rapid 8.2 4G'
|
|
- regex: '(TM-(?:1057|1067|6906|8043|9748[_ ]3G|9740|9757(?:[_ ]3G)?|7047HD[ _]3G|9747BT|9751HD|702[13]|705[23]|7041|9720|7047HD[_ ]3G|8044|8041HD|973[78]W|9743W|974[10]|9750HD|7043XD|7037W|702[46])|TB-(?:771A|711A|8041HD))'
|
|
model: '$1'
|
|
- regex: 'TM-4503'
|
|
device: 'smartphone'
|
|
model: 'X-Quad'
|
|
- regex: '(TM-(?:3000|3200R|4003|4083|4377|4504|451[30]|500[35]|5[23]77|5571|3204R|520[04]|5581|5505|507[13]|5017|6003|5513))'
|
|
device: 'smartphone'
|
|
model: '$1'
|
|
- regex: 'TM-5006'
|
|
device: 'smartphone'
|
|
model: 'X-Line'
|
|
- regex: 'TM-5007'
|
|
device: 'smartphone'
|
|
model: 'X-Shine'
|
|
- regex: 'TM-5201'
|
|
device: 'smartphone'
|
|
model: 'Rock'
|
|
- regex: 'TM-4515'
|
|
device: 'smartphone'
|
|
model: 'X-Style'
|
|
- regex: 'TM-9767'
|
|
model: 'X-pad Style 10 3G'
|
|
- regex: 'TM-(5016|3500)'
|
|
device: 'smartphone'
|
|
model: 'X-Maxi 2'
|
|
- regex: 'TM-4071'
|
|
device: 'smartphone'
|
|
model: 'X-Smart'
|
|
- regex: 'TM-4982'
|
|
device: 'smartphone'
|
|
model: 'iX-Maxi'
|
|
- regex: 'TM-5010'
|
|
device: 'smartphone'
|
|
model: 'X-Selfie'
|
|
- regex: 'TM-4082R'
|
|
device: 'smartphone'
|
|
model: 'X-Driver Quad'
|
|
- regex: 'TM-5503'
|
|
device: 'smartphone'
|
|
model: 'X-Mage'
|
|
- regex: 'TM-5508'
|
|
device: 'smartphone'
|
|
model: 'X-Cosmo'
|
|
- regex: 'X-Force[\(-]?TM-5009\)?'
|
|
device: 'smartphone'
|
|
model: 'X-Force'
|
|
- regex: 'X-Plus[\(-]?TM-5577\)?'
|
|
device: 'smartphone'
|
|
model: 'X-Plus'
|
|
|
|
# Telenor
|
|
Telenor:
|
|
regex: 'Telenor'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Telenor[ _]([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'Telenor[ _]([^a-z0-9_]+)\)'
|
|
model: '$1'
|
|
|
|
# Telit
|
|
Telit:
|
|
regex: 'Telit'
|
|
device: 'feature phone'
|
|
models:
|
|
- regex: 'Telit_Mobile_Terminals-([a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: 'Telit[\-_]?([a-z0-9]+)'
|
|
model: '$1'
|
|
|
|
# ThL
|
|
ThL:
|
|
regex: 'ThL[ _-]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'ThL[ _-]*([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'ThL[ _-]*([^ ;/)]+)[ ;/)]'
|
|
model: '$1'
|
|
|
|
# Tianyu
|
|
TIANYU:
|
|
regex: 'TIANYU'
|
|
device: 'feature phone'
|
|
models:
|
|
- regex: 'TIANYU ([a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: 'TIANYU-KTOUCH/([a-z0-9]+)'
|
|
model: '$1'
|
|
|
|
# Tolino
|
|
Tolino:
|
|
regex: 'Tolino Tab ([^/;]+) Build'
|
|
device: 'tablet'
|
|
model: 'Tolino Tab $1'
|
|
|
|
# Top House
|
|
Top House:
|
|
regex: 'Coto[_ ]|X1013'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Coto W418'
|
|
model: 'Coto W418'
|
|
- regex: 'COTO_T117'
|
|
model: 'Coto T117'
|
|
device: 'tablet'
|
|
- regex: 'X1013'
|
|
model: 'X1013'
|
|
device: 'tablet'
|
|
|
|
# Toplux
|
|
Toplux:
|
|
regex: 'Toplux ([a-z0-9]+)'
|
|
device: 'feature phone'
|
|
model: '$1'
|
|
|
|
# Touchmate
|
|
Touchmate:
|
|
regex: 'TOUCHMATE|(TM-(?:MID1020A|MID710|MID798|MID792|MID788D|SM500N|SM410))'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: '(TM-(?:MID1020A|MID710|MID798|MID792|MID788D))'
|
|
device: 'tablet'
|
|
model: '$1'
|
|
- regex: '(TM-(?:SM500N|SM410))'
|
|
model: '$1'
|
|
- regex: 'Touchmate ([^/;]+) Build'
|
|
model: '$1'
|
|
|
|
# TrekStor
|
|
TrekStor:
|
|
regex: '(?:TrekStor|Surftab) ([^/;]+) Build|Surftab[^;\)]*(?:[;\)]|$)|ST10216-2A|VT10416-[12]'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'ST10216-2A|VT10416-[12]'
|
|
model: 'SurfTab 10.1'
|
|
- regex: 'TrekStor ([^/;]+) Build'
|
|
model: '$1'
|
|
- regex: 'Surftab ([^/;]+) Build'
|
|
model: 'SurfTab $1'
|
|
- regex: 'Surftab[ _]([^;\)]*)(?:[;\)]|$)'
|
|
model: 'SurfTab $1'
|
|
|
|
# Trevi
|
|
Trevi:
|
|
regex: 'Trevi[ _]|TAB[ _]10[ _]3G[ _]V16|TAB[ _](7|8)[ _]3G[ _]V8|TAB9 3G|MINITAB 3GV|Phablet[ _](?:4|4\.5|5|5\,3|6)[ _]?[CSQ]|REVERSE[ _]5\.5[ _]?Q'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'TAB[ _]?(7|8)[ _]3G[ _]V8'
|
|
model: 'TAB $1 3G V8'
|
|
- regex: 'TAB[ _]?9[ _]3G[ _]V8'
|
|
model: 'TAB 9 3G V8'
|
|
- regex: 'TAB[ _]?9[ _]3G'
|
|
model: 'TAB 9 3G'
|
|
- regex: 'TAB[ _]10[ _]3G[ _]V16'
|
|
model: 'TAB 10 3G V16'
|
|
- regex: 'MINITAB 3GV'
|
|
model: 'MINITAB 3G V'
|
|
- regex: '(?:Trevi_)?Phablet[ _]4[ _]?C'
|
|
model: 'Phablet 4 C'
|
|
device: 'smartphone'
|
|
- regex: '(?:Trevi_)?Phablet[ _]4[ _]?S'
|
|
model: 'Phablet 4 S'
|
|
device: 'smartphone'
|
|
- regex: '(?:Trevi_)?Phablet[ _]4.5[ _]?Q'
|
|
model: 'Phablet 4.5Q'
|
|
device: 'smartphone'
|
|
- regex: '(?:Trevi_)?PHABLET[ _]5[ _]?S'
|
|
model: 'Phablet 5 S'
|
|
device: 'smartphone'
|
|
- regex: '(?:Trevi_)?PHABLET[ _]5,3[ _]?Q'
|
|
model: 'Phablet 5.3 Q'
|
|
device: 'phablet'
|
|
- regex: '(?:Trevi_)?REVERSE[ _]5.5[ _]?Q'
|
|
model: 'Phablet 5.5 Q REVERSE'
|
|
device: 'phablet'
|
|
- regex: '(?:Trevi_)?PHABLET[ _]6[ _]?S'
|
|
model: 'Phablet 6 S'
|
|
device: 'phablet'
|
|
|
|
- regex: 'Trevi[_]([^;/]+) Build'
|
|
model: '$1'
|
|
|
|
#TVC
|
|
TVC:
|
|
regex: '(NuclearSX-SP5)'
|
|
device: 'smartphone'
|
|
model: 'Nuclear SX-SP5'
|
|
|
|
# Uhappy
|
|
Uhappy:
|
|
regex: 'Uhappy|UP?580|UP350|UP[35679]20'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'UP([35679]20)'
|
|
model: 'UP$1'
|
|
- regex: 'UP350'
|
|
model: 'UP350'
|
|
- regex: 'UP580'
|
|
model: 'UP580'
|
|
- regex: 'U580'
|
|
model: 'U580'
|
|
- regex: 'Uhappy[ _-]([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'Uhappy[ _-]?([^;/)]+)[);/ ]'
|
|
model: '$1'
|
|
|
|
# Unowhy
|
|
Unowhy:
|
|
regex: 'QOOQ '
|
|
device: 'tablet'
|
|
model: 'QOOQ'
|
|
|
|
|
|
# UTStarcom
|
|
UTStarcom:
|
|
regex: 'utstar[ _-]?([a-z0-9]+)'
|
|
device: 'feature phone'
|
|
model: '$1'
|
|
|
|
# Ulefone
|
|
Ulefone:
|
|
regex: 'Ulefone|(Armor(?:[ _]2)?|U00[78][ _]Pro|Be[ _]X|Be[ _]Touch(?:[ _][23])?|Be[ _](?:One|Pure)(?:[ _]Lite)?) Build'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Be[ _]Touch([ _][23])?'
|
|
model: 'Be Touch$1'
|
|
- regex: 'Be[ _]Pure[ _]Lite'
|
|
model: 'Be Pure Lite'
|
|
- regex: 'Be[ _]Pure'
|
|
model: 'Be Pure'
|
|
- regex: 'Be[ _]One[ _]Lite'
|
|
model: 'Be One Lite'
|
|
- regex: 'Be[ _]One'
|
|
model: 'Be One'
|
|
- regex: 'Be[ _]X'
|
|
model: 'Be X'
|
|
- regex: 'U007 Pro'
|
|
model: 'U007 Pro'
|
|
- regex: 'U008 Pro'
|
|
model: 'U008 Pro'
|
|
- regex: 'Armor[ _]2 Build'
|
|
model: 'Armor 2'
|
|
- regex: 'Armor Build'
|
|
model: 'Armor'
|
|
- regex: 'Ulefone[ _-]?([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'Ulefone[ _-]?([^;/)]+)[;/)]'
|
|
model: '$1'
|
|
|
|
# UMIDIGI
|
|
UMIDIGI:
|
|
regex: 'UMI(?:DIGI)?[ _]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'UMI(?:DIGI)?[ _]([^/;]+) Build'
|
|
model: '$1'
|
|
|
|
# Uniscope
|
|
Uniscope:
|
|
regex: 'Uniscope'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Uniscope[ _\-]?([^/;]+) Build'
|
|
model: '$1'
|
|
- regex: 'Uniscope[ _\-]?([^);/ ]+)'
|
|
model: '$1'
|
|
|
|
# Unnecto
|
|
Unnecto:
|
|
regex: 'Unnecto|(?:U513|U61[1356]|U7[12]0|U-830|U90[35])[);/ ]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'U513'
|
|
model: 'Drone XT'
|
|
- regex: 'U611'
|
|
model: 'Quattro X'
|
|
- regex: 'U613'
|
|
model: 'Quattro S'
|
|
- regex: 'U615'
|
|
model: 'Quattro M'
|
|
- regex: 'U616'
|
|
model: 'U616'
|
|
- regex: 'U710'
|
|
model: 'Quattro U710'
|
|
- regex: 'U720'
|
|
model: 'Quattro Z'
|
|
- regex: 'U-830'
|
|
model: 'Rush'
|
|
- regex: 'U903'
|
|
model: 'Air'
|
|
- regex: 'U905'
|
|
model: 'Air 5.5'
|
|
|
|
# Unonu
|
|
Unonu:
|
|
regex: 'Unonu[ _-]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Unonu[ _-]([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'Unonu[ _-]?([^;/)]+)[);/ ]'
|
|
model: '$1'
|
|
|
|
|
|
# Vastking
|
|
Vastking:
|
|
regex: 'M910A[);/ ]'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: 'M910A[);/ ]'
|
|
model: 'M910A'
|
|
|
|
# ViewSonic
|
|
ViewSonic:
|
|
regex: 'ViewSonic|VSD[0-9]+[);/ ]|ViewPad|ViewPhone'
|
|
device: 'smart display'
|
|
models:
|
|
- regex: '(?:ViewSonic-)?V500[);/ ]'
|
|
model: 'V500'
|
|
device: 'smartphone'
|
|
- regex: '(?:ViewSonic-)?ViewPhone ?([^;/]+) Build'
|
|
model: 'ViewPhone $1'
|
|
device: 'smartphone'
|
|
- regex: '(?:ViewSonic-)?ViewPad ?([^;/]+) Build'
|
|
model: 'ViewPad $1'
|
|
device: 'tablet'
|
|
- regex: '(VSD[0-9]+)[);/ ]'
|
|
model: '$1'
|
|
|
|
# Vitelcom
|
|
Vitelcom:
|
|
regex: 'Vitelcom|portalmmm/[12].0 TSM'
|
|
device: 'feature phone'
|
|
models:
|
|
- regex: 'TSM-([a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: 'TSM([a-z0-9\-]+)'
|
|
model: '$1'
|
|
- regex: 'portalmmm/[12].0 (TSM[a-z0-9 ]+)'
|
|
model: '$1'
|
|
|
|
# VK Mobile
|
|
VK Mobile:
|
|
regex: 'VK(?!share)[\-]?([a-z0-9 ]+)[ ;\)/]'
|
|
device: 'feature phone'
|
|
model: '$1'
|
|
|
|
# Vernee
|
|
Vernee:
|
|
regex: 'Vernee|Mars Pro|Apollo (?:Lite|X)|Thor (?:E|Plus)'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Apollo Lite'
|
|
model: 'Apollo Lite'
|
|
- regex: 'Apollo X'
|
|
model: 'Apollo X'
|
|
- regex: 'Mars Pro'
|
|
model: 'Mars Pro'
|
|
- regex: 'Thor E'
|
|
model: 'Thor E'
|
|
- regex: 'Thor Plus'
|
|
model: 'Thor Plus'
|
|
- regex: 'Vernee_M5'
|
|
model: 'M5'
|
|
- regex: 'Vernee[ _-]([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'Vernee[ _-]([a-z0-9_-]+)'
|
|
model: '$1'
|
|
|
|
# Vertu
|
|
Vertu:
|
|
regex: 'Vertu[ ]?([a-z0-9]+)'
|
|
device: 'feature phone'
|
|
model: '$1'
|
|
|
|
# Verykool
|
|
Verykool:
|
|
regex: 'verykool'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'verykool[ _]?([^/;]+) Build'
|
|
model: '$1'
|
|
|
|
# Videocon
|
|
Videocon:
|
|
regex: 'Videocon[_ \-]|VT75C'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Videocon[_ \-]([a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: 'VT75C[/;) ]'
|
|
model: 'VT75C'
|
|
|
|
# Vodafone
|
|
Vodafone:
|
|
regex: 'Vodafone[ _-]|Smart ?Tab ?(?:III? ?)?(?:|4G|7|10)[);/ -]|VodafoneSmartChat|VFD[ _][0-9]+[;/) ]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'VFD 100'
|
|
model: 'Smart Mini'
|
|
- regex: 'VFD 200'
|
|
model: 'Smart First 7'
|
|
- regex: 'VFD 300'
|
|
model: 'Smart Mini 7'
|
|
- regex: 'VFD 50[02]'
|
|
model: 'Smart Turbo 7'
|
|
- regex: 'VFD 51[013]'
|
|
model: 'Smart E8'
|
|
- regex: 'VFD 600'
|
|
model: 'Smart Prime 7'
|
|
- regex: 'VFD 610'
|
|
model: 'Smart N8'
|
|
- regex: 'VFD 700'
|
|
model: 'Smart Ultra 7'
|
|
- regex: 'VFD 900'
|
|
model: 'Smart Platinum 7'
|
|
- regex: 'Vodafone[ _]875[);/ ]'
|
|
model: 'Smart Mini' # Alcatel
|
|
- regex: 'Vodafone[ _]975N?[);/ ]'
|
|
model: 'Smart 3' # Alcatel
|
|
- regex: 'Vodafone[ _]785[);/ ]'
|
|
model: 'Smart 4 Mini'
|
|
- regex: 'Vodafone[ _]890N[);/ ]'
|
|
model: 'Smart 4 Turbo' # Coolpad 3601U
|
|
- regex: 'Vodafone[ _]985N[);/ ]'
|
|
model: 'Smart 4 Power'
|
|
- regex: 'VodafoneSmartChat'
|
|
model: 'Smart Chat'
|
|
|
|
# explicit table models
|
|
- regex: 'VFD 1100'
|
|
device: 'tablet'
|
|
model: 'Tab Mini 7'
|
|
- regex: 'VFD 1300'
|
|
device: 'tablet'
|
|
model: 'Smart Tab N8'
|
|
- regex: 'VFD 1400'
|
|
device: 'tablet'
|
|
model: 'Tab Prime 7'
|
|
- regex: 'Smart ?Tab ?3G'
|
|
device: 'tablet'
|
|
model: 'Smart Tab 3G'
|
|
- regex: 'Smart ?Tab ?4G'
|
|
device: 'tablet'
|
|
model: 'Smart Tab 4G' # Alcatel
|
|
- regex: 'SmartTab7[);/ -]'
|
|
model: 'Smart Tab 7' # ZTE
|
|
device: 'tablet'
|
|
- regex: 'SmartTab10[);/ -]'
|
|
model: 'Smart Tab 10' # ZTE
|
|
device: 'tablet'
|
|
- regex: 'Smart ?Tab ?II ?7'
|
|
model: 'Smart Tab II 7' # Lenovo
|
|
device: 'tablet'
|
|
- regex: 'Smart ?Tab ?II ?10'
|
|
model: 'Smart Tab II 10' # Lenovo
|
|
device: 'tablet'
|
|
- regex: 'Smart ?Tab ?III ?7'
|
|
model: 'Smart Tab III 7' # Lenovo
|
|
device: 'tablet'
|
|
- regex: 'Smart ?Tab ?III ?10'
|
|
model: 'Smart Tab III 10' # Lenovo
|
|
device: 'tablet'
|
|
|
|
- regex: 'VFD[ _]([0-9]+)[;/) ]'
|
|
model: 'VFD $1'
|
|
- regex: 'Vodafone[ _-]([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'Vodafone[ _-]([a-z0-9_-]+)'
|
|
model: '$1'
|
|
|
|
# Vonino
|
|
Vonino:
|
|
regex: 'Vonino|Zun[ _]X[OS]?|Xylo[ _][XSP]|Gyga[ _](?:X|S|QS|XS)|Pluri[ _](?:[BCMQ]7|C8)|Magnet[ _]M[19]|Jax[ _](?:Q|QS|S|X|Mini)'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Zun[ _]XO'
|
|
model: 'Zun XO'
|
|
- regex: 'Zun[ _]XS'
|
|
model: 'Zun XS'
|
|
- regex: 'Zun[ _]X'
|
|
model: 'Zun X'
|
|
- regex: 'Xylo[ _]P'
|
|
model: 'Xylo P'
|
|
- regex: 'Xylo[ _]X'
|
|
model: 'Xylo X'
|
|
- regex: 'Xylo[ _]S'
|
|
model: 'Xylo S'
|
|
- regex: 'Gyga[ _]QS'
|
|
model: 'Gyga QS'
|
|
- regex: 'Gyga[ _]XS'
|
|
model: 'Gyga XS'
|
|
- regex: 'Gyga[ _]X'
|
|
model: 'Gyga X'
|
|
- regex: 'Gyga[ _]S'
|
|
model: 'Gyga S'
|
|
- regex: 'Jax[ _]QS'
|
|
model: 'Jax QS'
|
|
- regex: 'Jax[ _]S'
|
|
model: 'Jax S'
|
|
- regex: 'Jax[ _]X'
|
|
model: 'Jax X'
|
|
- regex: 'Jax[ _]Q'
|
|
model: 'Jax Q'
|
|
- regex: 'Jax[ _]Mini'
|
|
model: 'Jax Mini'
|
|
- regex: 'Pluri[ _]B7'
|
|
model: 'Pluri B7'
|
|
device: 'tablet'
|
|
- regex: 'Pluri[ _]C7'
|
|
model: 'Pluri C7'
|
|
device: 'tablet'
|
|
- regex: 'Pluri[ _]C8'
|
|
model: 'Pluri C8'
|
|
device: 'tablet'
|
|
- regex: 'Pluri[ _]M7'
|
|
model: 'Pluri M7'
|
|
device: 'tablet'
|
|
- regex: 'Pluri[ _]Q7'
|
|
model: 'Pluri Q7'
|
|
device: 'tablet'
|
|
- regex: 'Magnet[ _]M1'
|
|
model: 'Magnet M1'
|
|
device: 'tablet'
|
|
- regex: 'Magnet[ _]M9'
|
|
model: 'Magnet M9'
|
|
device: 'tablet'
|
|
|
|
# Voto
|
|
Voto:
|
|
regex: 'VOTO[ _\-]|VT8[89]8[;/) ]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'VOTO[ _\-]?([^/;]+) Build'
|
|
model: '$1'
|
|
- regex: 'VOTO[ _\-]?([^);/ ]+)'
|
|
model: '$1'
|
|
- regex: '(VT8[89]8)[;/) ]'
|
|
model: '$1'
|
|
|
|
# Voxtel
|
|
Voxtel:
|
|
regex: 'Voxtel_([a-z0-9]+)'
|
|
device: 'feature phone'
|
|
model: '$1'
|
|
|
|
# Walton
|
|
Walton:
|
|
regex: 'Walton|Walpad|Primo[ _](C[1234]?|D[12345]|E[12345]|EF[23]?|EM|F[123456]i?|G[12345]|GF[234]?|GH[23]?|GM|H[23]|HM|N|N1|NF|NX2?|R[123]|RH2?|RM2?|RX[23]?|S[1234]|V1|X[123]|Z|ZX)'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Walpad ([^;/]+) Build'
|
|
device: 'tablet'
|
|
model: 'Primo Walpad $1'
|
|
- regex: 'Walton[ _]([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'Walton[ _]([^;/]+)\)'
|
|
model: '$1'
|
|
- regex: 'Primo[ _]([^;/]+) Build'
|
|
model: 'Primo $1'
|
|
- regex: 'Primo[ _]([0-9a-z]+)'
|
|
model: 'Primo $1'
|
|
|
|
# Wellcom
|
|
WellcoM:
|
|
regex: 'WELLCOM[ _\-/]([a-z0-9]+)'
|
|
device: 'smartphone'
|
|
model: '$1'
|
|
|
|
# Wexler
|
|
Wexler:
|
|
regex: 'Wexler|TAB[ _]10Q[);/ ]|ZEN[ _](?:4\.5|4\.7|5)'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: '(?:Wexler[ _\-\.])?ZEN[ _]4\.5[);/ ]'
|
|
model: 'ZEN 4.5'
|
|
device: 'smartphone'
|
|
- regex: '(?:Wexler[ _\-\.])?ZEN[ _]4\.7[);/ ]'
|
|
model: 'ZEN 4.7'
|
|
device: 'smartphone'
|
|
- regex: '(?:Wexler[ _\-\.])?ZEN[ _]5[);/ ]'
|
|
model: 'ZEN 5'
|
|
device: 'smartphone'
|
|
- regex: '(?:Wexler[ _\-\.])?TAB[ _]10Q[);/ ]'
|
|
model: 'TAB 10Q'
|
|
- regex: 'Wexler[ _\-\.]([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'Wexler[ _\-\.]([^);/]+)[);/]'
|
|
model: '$1'
|
|
|
|
# Wiko
|
|
Wiko:
|
|
regex: '(?:WIKO[_ -])|(?:WIKO-)?CINK_[a-z0-9_]+|(?:WIKO-)?HIGHWAY_[a-z0-9_]+|(?:WIKO-)?(?:Cink([^/;]*)|Highway([^/;]*)|Iggy|Stairway|Rainbow ?(Jam|Lite|Up)?|Darkside|Darkmoon|Darkfull|Darknight|Freddy|FEVER|Jerry[2]?|Sublim|Ozzy|JIMMY|Barry|Birdy|Bloom|Getaway|Goa|Kite|Robby|Lenny[2-9]?|Slide|Sunset[2-9]?|Sunny[2-9]?|Tommy[2-9]?|PULP(?: Fab)?|Wax|HARRY|WIM Lite|Ridge(?: Fab)?|U FEEL(?: Prime| Lite)?|U PULSE(?: LITE)?|View XL|View Prime)(?: Plus)?(?: 4G)?(?: Build|$)|W_K600'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: '(?:Wiko-)?Cink([^/;]*) Build'
|
|
model: 'Cink$1'
|
|
- regex: '(?:WIKO-)?CINK_([a-z0-9_]+)'
|
|
model: 'Cink $1'
|
|
- regex: '(?:Wiko-)?Highway([^/;]*) Build'
|
|
model: 'Highway$1'
|
|
- regex: '(?:WIKO-)?HIGHWAY_([a-z0-9_]+)'
|
|
model: 'Highway $1'
|
|
- regex: '(?:WIKO-)?Iggy'
|
|
model: 'Iggy'
|
|
- regex: '(?:WIKO-)?FEVER'
|
|
model: 'Fever'
|
|
- regex: '(?:WIKO-)?Stairway'
|
|
model: 'Stairway'
|
|
- regex: '(?:WIKO-)?Ridge Fab 4G'
|
|
model: 'Ridge Fab 4G'
|
|
- regex: '(?:WIKO-)?Ridge 4G'
|
|
model: 'Ridge 4G'
|
|
- regex: '(?:WIKO-)?Ridge'
|
|
model: 'Ridge'
|
|
- regex: '(?:WIKO-)?Rainbow ([^/;]+) Build'
|
|
model: 'Rainbow $1'
|
|
- regex: '(?:WIKO-)?Rainbow'
|
|
model: 'Rainbow'
|
|
- regex: '(?:WIKO-)?Darkside'
|
|
model: 'Darkside'
|
|
- regex: '(?:WIKO-)?Darkmoon'
|
|
model: 'Darkmoon'
|
|
- regex: '(?:WIKO-)?Darkfull'
|
|
model: 'Darkfull'
|
|
- regex: '(?:WIKO-)?Darknight'
|
|
model: 'Darknight'
|
|
- regex: '(?:WIKO-)?Sublim'
|
|
model: 'Sublim'
|
|
- regex: '(?:WIKO-)?Ozzy'
|
|
model: 'Ozzy'
|
|
- regex: '(?:WIKO-)?Barry'
|
|
model: 'Barry'
|
|
- regex: '(?:WIKO-)?Birdy'
|
|
model: 'Birdy'
|
|
- regex: '(?:WIKO-)?Bloom'
|
|
model: 'Bloom'
|
|
- regex: '(?:WIKO-)?JIMMY'
|
|
model: 'Jimmy'
|
|
- regex: '(?:WIKO-)?Jerry2'
|
|
model: 'Jerry 2'
|
|
- regex: '(?:WIKO-)?Jerry'
|
|
model: 'Jerry'
|
|
- regex: '(?:WIKO-)?Getaway'
|
|
model: 'Getaway'
|
|
- regex: '(?:WIKO-)?Goa'
|
|
model: 'Goa'
|
|
- regex: '(?:WIKO-)?Freddy'
|
|
model: 'Freddy'
|
|
- regex: '(?:WIKO-)?Kite'
|
|
model: 'Kite'
|
|
- regex: '(?:WIKO-)?Lenny[ -_]?4 Plus'
|
|
model: 'Lenny 4 Plus'
|
|
- regex: '(?:WIKO-)?Lenny[ -_]?([2-9])'
|
|
model: 'Lenny $1'
|
|
- regex: '(?:WIKO-)?Lenny'
|
|
model: 'Lenny'
|
|
- regex: '(?:WIKO-)?Slide'
|
|
model: 'Slide'
|
|
- regex: '(?:WIKO-)?Sunset2'
|
|
model: 'Sunset 2'
|
|
- regex: '(?:WIKO-)?Sunset'
|
|
model: 'Sunset'
|
|
- regex: '(?:WIKO-)?Sunny2 Plus'
|
|
model: 'Sunny 2 Plus'
|
|
- regex: '(?:WIKO-)?Sunny2'
|
|
model: 'Sunny 2'
|
|
- regex: '(?:WIKO-)?Sunny'
|
|
model: 'Sunny'
|
|
- regex: '(?:WIKO-)?Tommy2 Plus'
|
|
model: 'Tommy 2 Plus'
|
|
- regex: '(?:WIKO-)?Tommy2'
|
|
model: 'Tommy 2'
|
|
- regex: '(?:WIKO-)?Tommy'
|
|
model: 'Tommy'
|
|
- regex: 'W_K600'
|
|
model: 'Tommy 3'
|
|
- regex: '(?:WIKO-)?Wax'
|
|
model: 'Wax'
|
|
- regex: '(?:WIKO-)?HARRY'
|
|
model: 'Harry'
|
|
- regex: '(?:WIKO-)?WIM Lite'
|
|
model: 'WIM Lite'
|
|
- regex: '(?:WIKO-)?Pulp Fab 4G'
|
|
model: 'Pulp Fab 4G'
|
|
- regex: '(?:WIKO-)?Pulp Fab'
|
|
model: 'Pulp Fab'
|
|
- regex: '(?:WIKO-)?Pulp 4G'
|
|
model: 'Pulp 4G'
|
|
- regex: '(?:WIKO-)?Pulp'
|
|
model: 'Pulp'
|
|
- regex: '(?:WIKO-)?Robby'
|
|
model: 'Robby'
|
|
- regex: '(?:WIKO-)?U PULSE LITE'
|
|
model: 'U Pulse Lite'
|
|
- regex: '(?:WIKO-)?U PULSE'
|
|
model: 'U Pulse'
|
|
- regex: '(?:WIKO-)?U FEEL LITE'
|
|
model: 'U Feel Lite'
|
|
- regex: '(?:WIKO-)?U FEEL PRIME'
|
|
model: 'U Feel Prime'
|
|
- regex: '(?:WIKO-)?U FEEL'
|
|
model: 'U Feel'
|
|
- regex: '(?:WIKO-)?View XL'
|
|
model: 'View XL'
|
|
- regex: '(?:WIKO-)?View Prime'
|
|
model: 'View Prime'
|
|
- regex: 'Wiko ([^/;]+) Build'
|
|
model: '$1'
|
|
- regex: 'Wiko ([^/; ]+)'
|
|
model: '$1'
|
|
|
|
# Wileyfox
|
|
Wileyfox:
|
|
regex: '(?:Wileyfox [^/]+)|Swift([^/]+) Build'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Wileyfox ([^/]+) Build'
|
|
model: '$1'
|
|
- regex: 'Swift ([^/]+) Build'
|
|
model: 'Swift $1'
|
|
|
|
# Wolder
|
|
Wolder:
|
|
regex: 'miSmart|miTab|WIAM \#24'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'WIAM \#24'
|
|
model: 'Wiam #24'
|
|
- regex: 'miSmart[ \-_]?([^/]+) Build'
|
|
model: 'miSmart $1'
|
|
- regex: 'miTab[ \-_]?([^/]+) Build'
|
|
device: 'tablet'
|
|
model: 'miTab $1'
|
|
|
|
# Wolfgang
|
|
Wolfgang:
|
|
regex: 'AT[ _-]AS([0-9A-Z]+)[);/ ]'
|
|
device: 'smartphone'
|
|
model: 'AT-AS$1'
|
|
|
|
# Wonu
|
|
Wonu:
|
|
regex: 'Wonu ([a-z0-9]+)'
|
|
device: 'feature phone'
|
|
model: '$1'
|
|
|
|
# Woxter
|
|
Woxter:
|
|
regex: 'Woxter[ _]([^/;]+) Build'
|
|
device: 'tablet'
|
|
model: '$1'
|
|
|
|
#Xiaomi
|
|
Xiaomi:
|
|
regex: 'Xiaomi|(MI [a-z0-9]+|Mi-4c|MI-One[ _]?[a-z0-9]+|MIX 2S?)[);/ ]|HM ([^/;]+) (?:Build|MIUI)|(2014501|2014011|201481[138]|201302[23]|2013061) Build|Redmi'
|
|
device: 'smartphone'
|
|
models:
|
|
# specific smartphone models
|
|
- regex: 'Xiaomi_2014501|2014501 Build'
|
|
model: 'Hongmi 4G'
|
|
- regex: 'Xiaomi_2014011|2014011 Build'
|
|
model: 'Hongmi 1S'
|
|
- regex: 'Xiaomi_201302[23]|201302[23] Build'
|
|
model: 'Hongmi'
|
|
- regex: 'Xiaomi_201481[138]|201481[138] Build'
|
|
model: 'Hongmi 2'
|
|
- regex: 'Xiaomi_2013061|2013061 Build'
|
|
model: 'MI 3'
|
|
- regex: 'Mi-4c[);/ ]'
|
|
model: 'MI 4C'
|
|
- regex: 'MIX 2S[);/ ]'
|
|
model: 'MI MIX 2S'
|
|
- regex: 'MIX 2[);/ ]'
|
|
model: 'MI MIX 2'
|
|
|
|
- regex: 'Redmi Note ([^;/) ]+)?'
|
|
model: 'Redmi Note $1'
|
|
device: 'phablet'
|
|
- regex: 'Redmi ([^;/) ]+)?'
|
|
model: 'Redmi $1'
|
|
- regex: 'MI Note ([^;/) ]+)?'
|
|
model: 'MI Note $1'
|
|
device: 'phablet'
|
|
- regex: '(MI(?:-One)?[ _](?:[^;/]*))Build'
|
|
model: '$1'
|
|
- regex: '(MI [a-z0-9]+|MI-One[ _]?[a-z0-9]+)[);/ ]'
|
|
model: '$1'
|
|
- regex: 'HM Note ([^/;]+) (?:Build|MIUI)'
|
|
device: 'phablet'
|
|
model: 'Note'
|
|
- regex: 'HM ([^/;]+) (?:Build|MIUI)'
|
|
model: 'HM $1'
|
|
- regex: 'Xiaomi[ _]([^/;]+)(?: Build|$)'
|
|
model: '$1'
|
|
|
|
|
|
# Xolo
|
|
Xolo:
|
|
regex: 'Xolo|(?:Q600|Q700s?|Q800|Q1000s|Q1000[ _]Opus|Q1010i|Q2000|Omega[ _]5.[05])[);/ ]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: '(Q600|Q700s?|Q800|Q1000s|Q1000[ _]Opus|Q1010i|Q2000|Omega[ _]5.[05])[);/ ]'
|
|
model: '$1'
|
|
- regex: 'Xolo[ _]?([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'Xolo[ _]?([a-z0-9_-]+)'
|
|
model: '$1'
|
|
|
|
# Yarvik
|
|
Yarvik:
|
|
regex: 'Xenta[ \-]Tab|Luna TAB|TAB09-410|TAB10-410|TAB07-485|TAB0[78]-200|TAB08-201-3G|TAB9-200|TAB09-211|TAB10-2[01]1|TAB13-201'
|
|
device: 'tablet'
|
|
models:
|
|
# explicit tablet models
|
|
- regex: 'Luna TAB07-920N'
|
|
model: 'Luna 7'
|
|
- regex: 'Luna TAB07-10[01]'
|
|
model: 'Luna 7c'
|
|
- regex: 'Luna TAB274'
|
|
model: 'Luna 7c'
|
|
- regex: 'Luna TAB474'
|
|
model: 'Luna 10'
|
|
- regex: 'Luna TAB10-150'
|
|
model: 'Luna 10c'
|
|
- regex: 'TAB09-410'
|
|
model: 'Noble 9.7'
|
|
- regex: 'TAB10-410'
|
|
model: 'Noble 10.1'
|
|
- regex: 'TAB07-485'
|
|
model: 'Noble Mini'
|
|
- regex: 'Xenta-TAB07-21[01]'
|
|
model: 'Xenta 7c'
|
|
- regex: 'TAB07-200'
|
|
model: 'Xenta 7ic'
|
|
- regex: 'TAB08-200'
|
|
model: 'Xenta 8ic'
|
|
- regex: 'TAB08-201-3G'
|
|
model: 'Xenta 8c'
|
|
- regex: 'TAB9-200'
|
|
model: 'Xenta 9.7ic'
|
|
- regex: 'TAB09-211'
|
|
model: 'Xenta 9.7ic+'
|
|
- regex: 'TAB10-2[01]1'
|
|
model: 'Xenta 10ic'
|
|
- regex: 'TAB13-201'
|
|
model: 'Xenta 13c'
|
|
|
|
# Yuandao
|
|
Yuandao:
|
|
regex: 'N101[ _]DUAL(?:[ _]CORE)?(?:[ _]?2|\|\|)?(?:[ _]V11)?[);/ ]'
|
|
device: 'tablet'
|
|
model: 'N101'
|
|
|
|
# Yusun
|
|
Yusun:
|
|
regex: 'Yusun|LA2-T'
|
|
device: 'smartphone'
|
|
models:
|
|
# explicit smartphone models
|
|
- regex: 'LA2-T'
|
|
model: 'LA2-T'
|
|
|
|
- regex: 'Yusun ([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'Yusun ([a-z0-9_\-\+]+)'
|
|
model: '$1'
|
|
|
|
# Ytone
|
|
Ytone:
|
|
regex: 'YTONE[ _\-]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'YTONE[ _\-]?([^/;]+) Build'
|
|
model: '$1'
|
|
- regex: 'YTONE[ _\-]?([^);/ ]+)'
|
|
model: '$1'
|
|
|
|
# Zonda
|
|
Zonda:
|
|
regex: '(ZM(?:CK|EM|TFTV|TN)[a-z0-9]+)'
|
|
device: 'feature phone'
|
|
model: '$1'
|
|
|
|
# Toshiba
|
|
Toshiba:
|
|
regex: 'Toshiba|TSBNetTV/|portalmmm/[12].0 TS|T-01C|T-0[12]D|IS04|IS11T|AT1S0|AT300SE|AT(10-A|10[PL]E-A|100|200|270|300|330|374|400|470|500|503|570|703|830)'
|
|
device: 'smartphone'
|
|
models:
|
|
# explicit smartphone models
|
|
- regex: 'T-01C'
|
|
model: 'Regza T-01C'
|
|
- regex: 'T-01D'
|
|
model: 'Regza T-01D'
|
|
- regex: 'T-02D'
|
|
model: 'Regza T-02D'
|
|
- regex: 'IS04'
|
|
model: 'Regza IS04'
|
|
- regex: 'IS11T'
|
|
model: 'Regza IS11T'
|
|
|
|
# explicit tablet models
|
|
- regex: 'AT1S0'
|
|
model: 'Regza AT1S0'
|
|
device: 'tablet'
|
|
- regex: 'AT300SE'
|
|
model: 'Regza AT300SE'
|
|
device: 'tablet'
|
|
- regex: 'AT500a'
|
|
model: 'Regza AT500a'
|
|
device: 'tablet'
|
|
- regex: 'AT(100|200|270|300|330|374|400|470|500|503|570|703|830)'
|
|
model: 'Regza AT$1'
|
|
device: 'tablet'
|
|
- regex: 'AT10([PL])E-A'
|
|
model: 'Excite AT10$1-A'
|
|
device: 'tablet'
|
|
- regex: 'AT10-A'
|
|
model: 'Excite AT10-A'
|
|
device: 'tablet'
|
|
|
|
- regex: 'TSBNetTV/'
|
|
device: 'tv'
|
|
model: ''
|
|
- regex: 'Toshiba[ /_\-]?([a-z0-9_ \-]+) Build'
|
|
model: '$1'
|
|
- regex: 'Toshiba[ /_\-]?([a-z0-9_\-]+)'
|
|
model: '$1'
|
|
- regex: 'portalmmm/[12].0 (TS[a-z0-9 ]+)'
|
|
model: '$1'
|
|
|
|
# Fly
|
|
Fly:
|
|
regex: 'Fly(?!Flow|touch)|FS50[1-9]|FS511|FS551|FS40[1-7]|FS452|FS451|FS454|4FS06|MERIDIAN-|(?:IQ[0-9]{3,})[ _]?(?:Quad|Firebird|Quattro|Turbo|Magic)?(?: Build|[;/\)])'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: '(?:Fly_)?IQ310(?: Build|[;/\)])'
|
|
model: 'Panorama'
|
|
device: 'tablet'
|
|
|
|
- regex: '(?:Fly_)?IQ236(?: Build|[;/\)])'
|
|
model: 'Victory'
|
|
- regex: 'FS506'
|
|
model: 'Cirrus 3'
|
|
- regex: 'FS403'
|
|
model: 'Cumulus 1'
|
|
- regex: 'FS508'
|
|
model: 'Cirrus 6'
|
|
- regex: 'FS511'
|
|
model: 'Cirrus 7'
|
|
- regex: 'FS509'
|
|
model: 'Nimbus 9'
|
|
- regex: 'FS406'
|
|
model: 'Stratus 5'
|
|
- regex: 'FS404'
|
|
model: 'Stratus 3'
|
|
- regex: 'FS504'
|
|
model: 'Cirrus 2'
|
|
- regex: 'FS407'
|
|
model: 'Stratus 6'
|
|
- regex: 'FS401'
|
|
model: 'Stratus 1'
|
|
- regex: 'FS402'
|
|
model: 'Stratus 2'
|
|
- regex: 'FS501'
|
|
model: 'Nimbus 3'
|
|
- regex: 'FS502'
|
|
model: 'Cirrus 1'
|
|
- regex: 'FS505'
|
|
model: 'Nimbus 7'
|
|
- regex: 'FS551'
|
|
model: 'Nimbus 4'
|
|
- regex: 'FS454'
|
|
model: 'Nimbus 8'
|
|
- regex: 'FS452'
|
|
model: 'Nimbus 2'
|
|
- regex: 'FS451'
|
|
model: 'Nimbus 1'
|
|
- regex: 'FS405'
|
|
model: 'Stratus 4'
|
|
- regex: '(?:Fly_)?IQ237(?: Build|[;/\)])'
|
|
model: 'Dynamic'
|
|
- regex: '(?:Fly_)?IQ238(?: Build|[;/\)])'
|
|
model: 'Jazz'
|
|
- regex: '(?:Fly_)?IQ240(?: Build|[;/\)])'
|
|
model: 'Whizz'
|
|
- regex: '(?:Fly_)?IQ255(?: Build|[;/\)])'
|
|
model: 'Pride'
|
|
- regex: '(?:Fly_)?IQ270(?: Firebird)?(?: Build|[;/\)])'
|
|
model: 'Firebird'
|
|
- regex: '(?:Fly_)?IQ275(?: Build|[;/\)])'
|
|
model: 'Marathon'
|
|
- regex: '(?:Fly_)?IQ285(?: Turbo)?(?: Build|[;/\)])'
|
|
model: 'Turbo'
|
|
- regex: '(?:Fly_)?IQ430(?: Build|[;/\)])'
|
|
model: 'Evoke'
|
|
- regex: '(?:Fly_)?IQ431(?: Build|[;/\)])'
|
|
model: 'Glory'
|
|
- regex: '(?:Fly_)?IQ432(?: Build|[;/\)])'
|
|
model: 'Era Nano 1'
|
|
- regex: '(?:Fly_)?IQ434(?: Build|[;/\)])'
|
|
model: 'Era Nano 5'
|
|
- regex: '(?:Fly_)?IQ436(?: Build|[;/\)])'
|
|
model: 'Era Nano 3'
|
|
- regex: '(?:Fly_)?IQ440(?: Build|[;/\)])'
|
|
model: 'Energy'
|
|
- regex: '(?:Fly_)?IQ441(?: Build|[;/\)])'
|
|
model: 'Radiance'
|
|
- regex: '(?:Fly_)?IQ442(?: Build|[;/\)])'
|
|
model: 'Miracle'
|
|
- regex: '(?:Fly_)?IQ442 Quad(?: Build|[;/\)])'
|
|
model: 'Miracle 2'
|
|
- regex: '(?:Fly_)?IQ443(?: Build|[;/\)])'
|
|
model: 'Trend'
|
|
- regex: '(?:Fly_)?IQ444(?: Quattro)?(?: Build|[;/\)])'
|
|
model: 'Diamond 2'
|
|
- regex: '(?:Fly_)?IQ445(?: Build|[;/\)])'
|
|
model: 'Genius'
|
|
- regex: '(?:Fly_)?IQ446(?: Magic)?(?: Build|[;/\)])'
|
|
model: 'Magic'
|
|
- regex: '(?:Fly_)?IQ447(?: Build|[;/\)])'
|
|
model: 'Era Life 1'
|
|
- regex: '(?:Fly_)?IQ448(?: Build|[;/\)])'
|
|
model: 'Chic'
|
|
- regex: '(?:Fly_)?IQ449(?: Build|[;/\)])'
|
|
model: 'Pronto'
|
|
- regex: '(?:Fly_)?IQ450(?: Build|[;/\)])'
|
|
model: 'Horizon'
|
|
- regex: '(?:Fly_)?IQ450[ _]Quattro(?: Build|[;/\)])'
|
|
model: 'Horizon 2'
|
|
- regex: '(?:Fly_)?IQ451(?: Build|[;/\)])'
|
|
model: 'Vista'
|
|
- regex: '(?:Fly_)?IQ452 Quad(?: Build|[;/\)])'
|
|
model: 'Ego Vision 1'
|
|
- regex: '(?:Fly_)?IQ454(?: Build|[;/\)])'
|
|
model: 'Evo Tech 1'
|
|
- regex: '(?:Fly_)?IQ456(?: Build|[;/\)])'
|
|
model: 'Era Life 2'
|
|
- regex: '(?:Fly_)?IQ4403(?: Build|[;/\)])'
|
|
model: 'Energy 3'
|
|
- regex: '(?:Fly_)?IQ4404(?: Build|[;/\)])'
|
|
model: 'Spark'
|
|
- regex: '(?:Fly_)?IQ4406(?: Build|[;/\)])'
|
|
model: 'Era Nano 6'
|
|
- regex: '(?:Fly_)?IQ4410 Quad(?: Build|[;/\)])'
|
|
model: 'Phoenix'
|
|
- regex: '(?:Fly_)?IQ4411(?: Build|[;/\)])'
|
|
model: 'Energy 2'
|
|
- regex: '(?:Fly_)?IQ4412 Quad(?: Build|[;/\)])'
|
|
model: 'Coral'
|
|
- regex: '(?:Fly_)?IQ4413[ _]Quad(?: Build|[;/\)])'
|
|
model: 'Evo Chic 3'
|
|
- regex: '(?:Fly_)?IQ4414 Quad(?: Build|[;/\)])'
|
|
model: 'Evo Tech 3'
|
|
- regex: '(?:Fly_)?IQ4415 Quad(?: Build|[;/\)])'
|
|
model: 'Era Style 3'
|
|
- regex: '(?:Fly_)?IQ4490(?: Build|[;/\)])'
|
|
model: 'Era Nano 4'
|
|
- regex: '(?:Fly_)?IQ4504 Quad(?: Build|[;/\)])'
|
|
model: 'Evo Energy 5'
|
|
- regex: '(?:Fly_)?IQ([0-9]+) ?(?:Quad|Firebird|Quattro)? Build'
|
|
model: 'IQ$1'
|
|
- regex: 'Fly[ _\-]?([a-z0-9_]+)/'
|
|
model: '$1'
|
|
device: 'feature phone'
|
|
- regex: 'Flylife[ _\-]?([^/;]+) Build'
|
|
model: 'Flylife $1'
|
|
device: 'tablet'
|
|
- regex: 'Fly[ _\-]?([a-z0-9]+)'
|
|
model: '$1'
|
|
- regex: 'MERIDIAN-([a-z0-9]+)'
|
|
model: '$1'
|
|
|
|
# Freetel
|
|
Freetel:
|
|
regex: '(FTJ152[ABCD]|FT141B|FT142D_LTEXM|FT142A?|FTJ161B|FTJ152E|FTJ162D) Build'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'FTJ152C'
|
|
model: 'Samurai Miyabi'
|
|
- regex: 'FT141B'
|
|
model: 'Nico'
|
|
- regex: 'FT142D_LTEXM'
|
|
model: 'XM'
|
|
- regex: 'FT142A?'
|
|
model: 'Priori 2'
|
|
- regex: 'FTJ152A'
|
|
model: 'Priori 3'
|
|
- regex: 'FTJ162D'
|
|
model: 'Priori 4'
|
|
- regex: 'FTJ152B'
|
|
model: 'Priori 3S LTE'
|
|
- regex: 'FTJ152D'
|
|
model: 'Samurai Kiwami'
|
|
- regex: 'FTJ161B'
|
|
model: 'Samurai Rei'
|
|
- regex: 'FTJ152E'
|
|
model: 'Katana 1'
|
|
|
|
# Zeemi
|
|
Zeemi:
|
|
regex: 'ZEEMI[ _-]'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'ZEEMI[ _-]([^/;]+) Build'
|
|
model: '$1'
|
|
- regex: 'ZEEMI[ _-]([^/;)]+)[/;)]'
|
|
model: '$1'
|
|
|
|
# Zopo
|
|
Zopo:
|
|
regex: '(?:ZOPO[_ ])?(ZP[0-9]{2,}[^/;]+) Build'
|
|
device: 'smartphone'
|
|
model: '$1'
|
|
|
|
# ZTE
|
|
ZTE:
|
|
regex: 'ZTE|AxonPhone|([a-z0-9]+)_USA_Cricket|(?:Blade (?:L[2357]|S6|V[678]|X7|A520)|N9[15]8St|NX(?:403A|40[X2]|507J|503A|505J|506J|508J|510J|511J|513J|529J|531J|549J|551J|563J|569H|601J)|N951[057]|N9180|N9101|N913[67]|NX406E|N952[01]|N9560|N9810|N799D|[UV]9180|[UV]9815|Z(?:233V|331|667T|768G|792|81[25]|820|83[12359]|85[125]|851M|(557|717|798|836|861|916)BL|986DL|(232|718|828)TL|(233|353|558|717|799|837|862|899|917)VL|955A|95[68]|965|97[18]|98[123]|986U|999)|A460)[);/ ]'
|
|
device: 'smartphone'
|
|
models:
|
|
# explicit smartphone models
|
|
- regex: 'N799D[);/ ]'
|
|
model: 'MTS Blaze 4'
|
|
- regex: 'N918St[);/ ]'
|
|
model: 'V5S'
|
|
- regex: 'N958St[);/ ]'
|
|
model: 'V5 Max'
|
|
- regex: 'N9101[);/ ]'
|
|
model: 'Imperial'
|
|
- regex: 'N9136[);/ ]'
|
|
model: 'Prestige 2'
|
|
- regex: 'N9137[);/ ]'
|
|
model: 'Tempo X'
|
|
- regex: 'N9180[);/ ]'
|
|
model: 'V5'
|
|
- regex: 'N9510[);/ ]'
|
|
model: 'Wrap 4G'
|
|
- regex: 'N9517[);/ ]'
|
|
model: 'Blade Force'
|
|
- regex: 'N9515[);/ ]'
|
|
model: 'Wrap Sync'
|
|
- regex: 'N9520[);/ ]'
|
|
model: 'Boost Max'
|
|
- regex: 'N9521[);/ ]'
|
|
model: 'Boost Max+'
|
|
- regex: 'N9560[);/ ]'
|
|
model: 'Max XL'
|
|
- regex: 'N9810[);/ ]'
|
|
model: 'Vital'
|
|
- regex: 'NX40[X2][);/ ]'
|
|
model: 'Nubia Z5 mini'
|
|
- regex: 'NX403A[);/ ]'
|
|
model: 'Nubia Z5S mini'
|
|
- regex: 'NX503A[);/ ]'
|
|
model: 'Nubia Z5S'
|
|
- regex: 'NX506J[);/ ]'
|
|
model: 'Nubia Z7'
|
|
- regex: 'NX507J[);/ ]'
|
|
model: 'Nubia Z7 mini'
|
|
- regex: 'NX505J[);/ ]'
|
|
model: 'Nubia Z7 max'
|
|
- regex: 'NX508J[);/ ]'
|
|
model: 'Nubia Z9'
|
|
- regex: 'NX511J[);/ ]'
|
|
model: 'Nubia Z9 mini'
|
|
- regex: 'NX510J[);/ ]'
|
|
model: 'Nubia Z9 max'
|
|
- regex: 'NX531J[);/ ]'
|
|
model: 'Nubia Z11'
|
|
- regex: 'NX529J[);/ ]'
|
|
model: 'Nubia Z11 mini'
|
|
- regex: 'NX549J[);/ ]'
|
|
model: 'Nubia Z11 mini S'
|
|
- regex: 'NX551J[);/ ]'
|
|
model: 'Nubia M2'
|
|
- regex: '(?:NX569H|NX563J)[);/ ]'
|
|
model: 'Nubia Z17'
|
|
- regex: 'NX513J[);/ ]'
|
|
model: 'Nubia My Prague'
|
|
- regex: 'NX601J[);/ ]'
|
|
model: 'Nubia X6'
|
|
- regex: '[UV]9180[);/ ]'
|
|
model: 'V5 Red Bull'
|
|
- regex: '[UV]9815[);/ ]'
|
|
model: 'Grand Memo'
|
|
- regex: 'Z331[);/ ]'
|
|
model: 'Z331'
|
|
- regex: 'Blade A520[);/ ]'
|
|
model: 'Blade A520'
|
|
- regex: 'Blade L2 Plus[);/ ]'
|
|
model: 'Blade L2 Plus'
|
|
- regex: 'Blade L2[);/ ]'
|
|
model: 'Blade L2'
|
|
- regex: 'Blade L3 Plus[);/ ]'
|
|
model: 'Blade L3 Plus'
|
|
- regex: 'Blade L3[);/ ]'
|
|
model: 'Blade L3'
|
|
- regex: 'Blade L5[);/ ]'
|
|
model: 'Blade L5'
|
|
- regex: 'Blade S6[);/ ]'
|
|
model: 'Blade S6'
|
|
- regex: 'Blade V6 MAX[);/ ]'
|
|
model: 'Blade V6 Max'
|
|
- regex: 'Blade V6 Plus[);/ ]'
|
|
model: 'Blade V6 Plus'
|
|
- regex: 'Blade V6[);/ ]'
|
|
model: 'Blade V6'
|
|
- regex: 'Blade L7[);/ ]'
|
|
model: 'Blade L7'
|
|
- regex: 'Blade V7[);/ ]'
|
|
model: 'Blade V7'
|
|
- regex: 'Blade X7[);/ ]'
|
|
model: 'Blade X7'
|
|
- regex: 'Blade V8 SE[);/ ]'
|
|
model: 'Blade V8 SE'
|
|
- regex: 'Z768G[);/ ]'
|
|
model: 'Midnight'
|
|
- regex: 'Z820'
|
|
model: 'Obsidian'
|
|
- regex: 'Z986U'
|
|
model: 'Blade Max 3'
|
|
- regex: 'Z971'
|
|
model: 'Blade Spark'
|
|
- regex: 'Z978'
|
|
model: 'Blade V8 Pro'
|
|
- regex: 'Z839'
|
|
model: 'Blade Vantage'
|
|
- regex: 'Z965'
|
|
model: 'Blade X'
|
|
- regex: 'Z981'
|
|
model: 'Blade Z Max Pro'
|
|
- regex: 'Z982'
|
|
model: 'Blade Z Max'
|
|
- regex: 'Z983'
|
|
model: 'Blade X Max'
|
|
- regex: 'Blade (A460)'
|
|
model: 'Blade $1'
|
|
- regex: 'Z717[BV]L[);/ ]'
|
|
model: 'Citrine LTE'
|
|
- regex: 'Z233V'
|
|
model: 'Cymbal LTE'
|
|
- regex: 'Z233VL'
|
|
model: 'Cymbal-C LTE'
|
|
- regex: 'Z232TL'
|
|
model: 'Cymbal-G LTE'
|
|
- regex: 'Z353VL'
|
|
model: 'Cymbal-T LTE'
|
|
- regex: 'Z956'
|
|
model: 'Grand X 4'
|
|
- regex: 'Z718TL'
|
|
model: 'Jasper LTE'
|
|
- regex: '(?:Z798BL|Z799VL)[);/ ]'
|
|
model: 'Majesty Pro LTE'
|
|
- regex: 'Z899VL'
|
|
model: 'Majesty Pro Plus LTE'
|
|
- regex: 'Z828TL'
|
|
model: 'Midnight Pro LTE'
|
|
- regex: 'NX406E[);/ ]'
|
|
model: 'Nubia Z5S'
|
|
- regex: 'Z792'
|
|
model: 'Fanfare'
|
|
- regex: 'Z812'
|
|
model: 'Maven'
|
|
- regex: 'Z815'
|
|
model: 'Fanfare 2'
|
|
- regex: 'Z831'
|
|
model: 'Maven 2'
|
|
- regex: 'Z832'
|
|
model: 'Sonata 3'
|
|
- regex: 'Z835'
|
|
model: 'Maven 3'
|
|
- regex: 'Z851[);/ ]'
|
|
model: 'Prelude+'
|
|
- regex: 'Z851M'
|
|
model: 'Overture 3'
|
|
- regex: 'Z852'
|
|
model: 'Fanfare 3'
|
|
- regex: 'Z855'
|
|
model: 'Avid 4'
|
|
- regex: 'Z833'
|
|
model: 'Avid TRIO'
|
|
- regex: '(?:Z836BL|Z837VL)[);/ ]'
|
|
model: 'ZFive 2 LTE'
|
|
- regex: 'Z558VL'
|
|
model: 'ZFive C LTE'
|
|
- regex: 'Z557BL'
|
|
model: 'ZFive G LTE'
|
|
- regex: '(?:Z861BL|Z862VL)[);/ ]'
|
|
model: 'ZFive L LTE'
|
|
- regex: 'Z916BL'
|
|
model: 'ZMax Grand LTE'
|
|
- regex: 'Z917VL'
|
|
model: 'ZMax Champ LTE'
|
|
- regex: '(?:Z958|Z955A)[);/ ]'
|
|
model: 'ZMax 2'
|
|
- regex: 'Z986DL'
|
|
model: 'MAX Blue LTE'
|
|
- regex: 'Z999'
|
|
model: 'Axon M'
|
|
- regex: 'A2017U'
|
|
model: 'Axon 7'
|
|
- regex: 'B2017G'
|
|
model: 'Axon 7 Mini'
|
|
- regex: 'Z667T'
|
|
model: 'Zinger'
|
|
|
|
- regex: 'AxonPhone ([^;/]+) Build'
|
|
model: 'AxonPhone $1'
|
|
- regex: '([a-z0-9]+)_USA_Cricket'
|
|
model: '$1'
|
|
- regex: 'ZTE[\- ](V98|V96A|V81|V70)[);/ ]'
|
|
model: '$1'
|
|
device: 'tablet'
|
|
- regex: 'ZTE[\- ]([a-z0-9\-_ ]+) Build'
|
|
model: '$1'
|
|
- regex: 'ZTE-(?:G |G-)?([a-z0-9 _]+)'
|
|
model: '$1'
|
|
- regex: 'ZTE[ _]([a-z0-9]+)'
|
|
model: '$1'
|
|
|
|
Zuum:
|
|
regex: 'Zuum[ _-]|MAGNO|STEDI|COVET'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'COVET'
|
|
model: 'Covet'
|
|
- regex: 'MAGNO'
|
|
model: 'Magno'
|
|
- regex: 'STEDI'
|
|
model: 'Stedi'
|
|
- regex: 'Zuum[ _-]([^;/]+) Build'
|
|
model: '$1'
|
|
- regex: 'Zuum[ _-]?([^;/)]+)[);/ ]'
|
|
model: '$1'
|
|
|
|
# Zen
|
|
Zen:
|
|
regex: '(Admire[_ ][^/;]+|Cinemax[^/;)]+)(?:Build|\))'
|
|
device: 'smartphone'
|
|
model: '$1'
|
|
|
|
# Zync
|
|
Zync:
|
|
regex: 'ZYNC|(Cloud Z5|Z1000|Z18|Z99 Dual Core|Z99[_ ][23]G|Z99|Z900[_ ]Plus|Z909|Z930[+]|Z930)'
|
|
device: 'tablet'
|
|
models:
|
|
- regex: '(Z18|Z99 Dual Core|Z99[_ ][23]G|Z99|Z900[_ ]Plus|Z909|Z930[+]|Z930)'
|
|
model: '$1'
|
|
- regex: '(Z1000[^/;]+)Build'
|
|
model: '$1'
|
|
- regex: 'Cloud (Z5)'
|
|
model: 'Cloud $1'
|
|
- regex: 'ZYNC Cloud[ _]([^;]+)Build'
|
|
model: 'Cloud $1'
|
|
- regex: 'ZYNC[ _]([^;]+)Build'
|
|
model: '$1'
|
|
|
|
# Lemhoov
|
|
Lemhoov:
|
|
regex: 'Lemhoov'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'Lemhoov[ _-]([^/;]+) Build'
|
|
model: '$1'
|
|
|
|
#MTC
|
|
MTC:
|
|
regex: 'MTC[ _](978|982[OT]|982)|SMART[ _]Race[ _]4G'
|
|
device: 'smartphone'
|
|
models:
|
|
- regex: 'MTC[ _](978|982[OT]|982)'
|
|
model: '$1'
|
|
- regex: 'SMART[ _]Race[ _]4G'
|
|
model: 'Smart Race 4G'
|
|
|
|
# Devices with undectable brand, but detectable model
|
|
Unknown:
|
|
regex: 'WebTV/(\d+\.\d+)'
|
|
device: 'tv'
|
|
model: 'Web TV'
|
|
|
|
# Savio
|
|
Savio:
|
|
regex: 'TB-PO1 Build'
|
|
device: 'tv'
|
|
models:
|
|
- regex: '(TB-PO1)'
|
|
model: '$1'
|