############### # Device Detector - The Universal Device Detection library for parsing User Agents # # @link https://matomo.org # @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later ############### # Ace (https://www.acemobile.fr/) Ace: regex: 'BUZZ 1 (?:Lite|Plus)' device: 'smartphone' models: - regex: 'BUZZ 1 Lite' model: 'Buzz 1 Lite' - regex: 'BUZZ 1 Plus' model: 'Buzz 1 Plus' 'Tunisie Telecom': regex: 'StarTrail TT[);/ ]' device: 'smartphone' model: 'StarTrail by TT' # 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 4[);/ ]' model: 'Staraddict 4' - 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|2PZC5|0PJA10|0PJA2|HTV33|0PM92|0PCV1|601HT|0PAJ5|HTL2[23]|HTV32|2PQ93)[);/ ]' device: 'smartphone' models: # explicit smartphone models - regex: '2PZC5[);/ ]' model: 'U11' - regex: 'XV6975[);/ ]' model: 'Imagio' - regex: 'PG86100[);/ ]' model: 'Evo 3G' - regex: 'PC36100[);/ ]' model: 'Evo 4G' - regex: '(?:HTV33|601HT)[);/ ]' model: 'U11' - regex: '(?:801e|802[wdt])' model: 'One' - regex: 'PJ83100[);/ ]' model: 'One X' - regex: 'HTL22[);/ ]' model: 'J One' - regex: 'HTL23[);/ ]' model: 'J Butterfly' - regex: '(?:0PJA2|0PJA10)[);/ ]' model: 'One M9' - regex: 'X525a[);/ ]' model: 'One X+' - regex: '2PQ93[);/ ]' model: 'One A9' - 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: '2PYB2' model: 'Bolt' - regex: '0PM92[);/ ]' model: 'Desire 626S' - regex: '0PCV1[);/ ]' model: 'Desire 510' - regex: '608t[);/ ]' model: 'Desire 608t' - 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' - regex: '0PAJ5[);/ ]' model: 'One E8' - regex: 'HTV32[);/ ]' model: '10' # microsoft Microsoft: regex: 'KIN\.(One|Two)|RM-(?:1010|1031|106[57]|107[23467]|1089|109[02]|1096|1099|1109|111[34]|1127|1141|115[24]|994)|Microsoft; Lumia|Lumia (?:1530|1320|950|850|650|640|550|535|435)' device: 'smartphone' models: - regex: 'KIN\.(One|Two)' device: 'feature phone' model: 'Kin $1' - regex: 'RM-1099|Lumia 430' model: 'Lumia 430' - regex: 'RM-1114|Lumia 435' model: 'Lumia 435' - regex: 'RM-1031|Lumia 532' model: 'Lumia 532' - regex: 'RM-109[02]|RM-1089|Lumia 535' model: 'Lumia 535' - regex: 'RM-1141|Lumia 540' model: 'Lumia 540' - regex: 'RM-1127|Lumia 550' model: 'Lumia 550' - regex: 'RM-1010' model: 'Lumia 638' - regex: 'RM-106[57]|RM-1096|Lumia 640 XL' model: 'Lumia 640 XL' device: 'phablet' - regex: 'RM-1109|RM-1113|RM-107[23467]|Lumia 640' model: 'Lumia 640' - regex: 'RM-1154|Lumia 650' model: 'Lumia 650' - regex: 'RM-1152' model: 'Lumia 650 SS' - regex: 'Lumia 850' model: 'Lumia 850' - regex: 'Lumia 950 XL' model: 'Lumia 950 XL' device: 'phablet' - regex: 'Lumia 950' model: 'Lumia 950' - regex: 'RM-994|Lumia 1320' model: 'Lumia 1320' - regex: 'Lumia 1530' model: 'Lumia 1530' - regex: 'Microsoft; Lumia ([^;/)]+)[;/)]' model: 'Lumia $1' # NOKIA Nokia: regex: 'Nokia(?!Browser|Webview|; GT-I8750)|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}|ARM; 909' 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|54)' model: '6' - regex: 'TA-1041' model: '7' - regex: 'TA-10(04|12|52)' model: '8' # 2018 Models - regex: 'Nokia 8\.1' model: '8.1' - regex: 'Nokia 8 Sirocco' model: '8 Sirocco' - regex: 'Nokia 7\.1' model: '7.1' - regex: 'Nokia 7 plus' model: '7 plus' - regex: 'Nokia 6\.1 Plus' model: '6.1 Plus' - regex: 'Nokia 6\.1' model: '6.1' - regex: 'Nokia 5\.1 Plus' model: '5.1 Plus' - regex: 'Nokia 5\.1' model: '5.1' - regex: 'Nokia 3\.1 Plus' model: '3.1 Plus' - regex: 'Nokia 3\.1' model: '3.1' - regex: 'Nokia 2\.1' model: '2.1' - regex: 'Nokia 1 Plus' model: '1 Plus' - regex: 'Nokia 1' model: '1' # Nokia phones - regex: 'RX-51 N900' model: 'N900' - regex: '(?: )?(Nokia500|nokiaasha500(?:dualsim)?)(?: Build|[_);/])' model: 'Asha 500' - regex: 'Nokia5130c(?:-2)?' model: '5130 XpressMusic' - regex: 'Nokia5230' model: 'Nuron' - regex: 'Nokia5233' model: '5233' - regex: 'Nokia5800d-1' model: '5800 XpressMusic' - regex: 'Nokia6210Navigator' model: 'Navigator' - regex: 'Nokia8800e?' model: 'Sapphire Arte' - regex: 'NOKIA-RH-17' model: '2280' - regex: 'NOKIA-RH-27' model: '6225' - regex: 'NOKIA-RH-34' model: '6585' - regex: 'NOKIA-RH-48' model: '3105' - regex: 'NOKIA-RM-11' model: '3205' - regex: 'Nokia808 PureView' model: '808 PureView' - regex: 'Nokia ?([0-9]{4})c(?:-)?' model: '$1 Classic' - regex: 'Nokia ?([0-9]{4})s(?:-)?' model: '$1 Slide' - regex: 'Nokia ?([0-9]{4})' model: '$1' - regex: '(?: )?Nokia([235][0-9]{2})(?: Build|[_);/])' model: 'Asha $1' - regex: 'Nokia([CEX]-?[0-9]{1,2}i?)-[0-9]{1,2}u?(?: Build|[_);/])' model: '$1' - regex: 'Nokia;? 520T' model: 'Lumia 520T' - regex: 'RM-91[45]' model: 'Lumia 520' - regex: 'RM-997|Nokia 526' model: 'Lumia 526' - regex: 'RM-846' model: 'Lumia 620' - regex: 'RM-97[68]' model: 'Lumia 630' - regex: 'RM-97[45]' model: 'Lumia 635' - regex: 'RM-1027' model: 'Lumia 636' - regex: 'NOKIA;? 710' model: 'Lumia 710' - regex: 'Nokia;? 720T' model: 'Lumia 720T' - regex: 'RM-885' model: 'Lumia 720' - regex: 'Lumia 730' model: 'Lumia 730' - regex: 'RM-103[89]' model: 'Lumia 735' - regex: 'Nokia;? 800C' model: 'Lumia 800C' - regex: 'Nokia;? 800' model: 'Lumia 800' - regex: 'Nokia 820' model: 'Lumia 820' - regex: 'RM-984' model: 'Lumia 830' - regex: 'Nokia;? 900' model: 'Lumia 900' - regex: '(RM-82[12]|Nokia;? 920)(?: Build|[_);/])' model: 'Lumia 920' - regex: '(RM-89[23]|RM-910|Nokia;? 925)(?: Build|[a_);/])' model: 'Lumia 925' - regex: 'Lumia 929' model: 'Lumia Icon' - regex: 'RM-1045' model: 'Lumia 930' - regex: '(ARM; 909|NOKIA;? 909|NOKIA; id300)(?: Build|[_);/])' model: 'Lumia 1020' - regex: 'NOKIA;? 1520\.1' model: 'Lumia 1520.1' - regex: 'Nokia ([A-Za-z0-9\. ]+)(?: Build|\))' model: '$1' - 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 (?:Pro )?Slate|HP [78]|HP 10 Plus|Compaq [7|8]|HP; [^;/)]+' device: 'smartphone' models: - regex: 'HP Slate 6 Voice Tab' model: 'Slate 6 VoiceTab' device: 'phablet' - regex: 'HP 10 Plus' model: '10 Plus' device: 'tablet' - regex: 'HP ([78][^)/;]*)(?: Build|\))' model: 'Slate $1' device: 'tablet' - regex: 'Compaq ([78][^/;]*) Build' model: 'Compaq $1' device: 'tablet' - regex: 'HP Pro Slate 8' model: 'Pro Slate 8' 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-)?(?