############### # Piwik - Open source web analytics # # @link http://piwik.org # @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later # # @category UserAgentParserEnhanced ############### # HTC HTC: regex: 'HTC|Sprint (?:APA|ATP)|ADR[a-z0-9]+|NexusHD2|Amaze[ _]4G Build|(Sensation|Desire|Evo ?3D)[ _][a-z0-9]+ Build' device: 'smartphone' models: - regex: 'NexusHD2' # custom rom for hd2 model: 'HD2' - regex: 'HTC[ _-]((?:Flyer|P715a).*) Build' device: 'tablet' 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[ _][a-z0-9]+|Amaze[ _]4G|Sensation[ _][a-z0-9]+|Evo ?3D[ _][a-z0-9]+) Build' model: '$1' - regex: '(ADR.+) Build' model: '$1' - regex: '(ADR[a-z0-9]+)' model: '$1' # Tesla Model S Tesla: regex: 'QtCarBrowser' device: 'car browser' model: 'Model S' # NOKIA Nokia: regex: 'Nokia|Lumia|Maemo RX|portalmmm/2\.0 N7|portalmmm/2\.0 NK|nok[0-9]+|Symbian.*\s([a-z0-9]+)$' device: 'smartphone' models: - regex: 'NokiaInternal|Nokia-WAP-Toolkit|Nokia-MIT-Browser|Nokia Mobile|Nokia Browser|Nokia/Series' model: '' - regex: 'Nokia(N[0-9]+)' model: '$1' - regex: 'Nokia-([a-z0-9]+)' model: 'N$1' - regex: 'NOKIA; ([a-z0-9\- ]+)' model: '$1' - regex: 'NOKIA[ ]?([a-z0-9\-]+)' model: '$1' - regex: 'NOKIA/([a-z0-9 ]+)' 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: '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' device: 'smartphone' models: - 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)[a-z0-9]+)' model: '$1' - regex: 'Treo([a-z0-9]+)' model: 'Treo $1' - regex: 'Tungsten' model: 'Tungsten' - regex: 'Xiino' # Browser for Palm OS only model: '' # HP HP: regex: 'TouchPad|hp-tablet|HP(?: )?iPAQ|webOS.*(P160U)|HP Slate' device: 'smartphone' models: - 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(?: )?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: 'AppleTV|iPad|iPod|iPhone' models: - regex: 'AppleTV' model: 'Apple TV' device: 'tv' - regex: 'iPad' model: 'iPad' device: 'tablet' - regex: 'iPod' model: 'iPod Touch' device: 'smartphone' - regex: 'iPhone' model: 'iPhone' device: 'smartphone' # Acer Acer: regex: 'acer[\-_]([a-z0-9]+)|a(101|110|200|210|211|500|501|510|511|700|701) Build' device: 'smartphone' models: - regex: 'acer[\-_]([a-z0-9]+)' model: '$1' - regex: 'a(101|110|200|210|211|500|501|510|511|700|701) Build' model: 'Icona Tab A$1' device: 'tablet' # Airness Airness: regex: 'AIRNESS-([a-z0-9]+)' device: 'feature phone' model: '$1' # Alcatel Alcatel: regex: 'Alcatel|Alc([a-z0-9]+)' device: 'smartphone' models: - regex: 'Alcatel UP' model: '' - regex: 'ALCATEL([a-z0-9\- ]+) Build' model: '$1' - regex: 'ALCATEL[ \-]?([a-z0-9\-]+)' model: '$1' - regex: 'ALCATEL_([a-z0-9_]+)' model: '$1' - regex: 'Alc([a-z0-9]+)' model: '$1' # Amoi Amoi: regex: 'Amoi' device: 'smartphone' models: - regex: 'Amoi[\- /](a-z0-9]+)' model: '$1' - regex: 'Amoisonic-([a-z0-9]+)' model: '$1' # Archos Archos: regex: 'Archos' device: 'tablet' models: - regex: 'GAMEPAD' model: 'Gamepad' device: 'console' - regex: 'ARCHOS ([a-z0-9 ]+) Build' model: '$1' - regex: 'ARCHOS ([a-z0-9]+)' model: '$1' # Arnova Arnova: regex: 'arnova|AN[0-9]' device: 'tablet' models: - regex: 'Arnova ([^/;]*) Build' model: '$1' - regex: 'AN([0-9][a-z0-9]+)' model: '$1' # Asus Asus: regex: 'Asus|Transformer|PadFone' device: 'smartphone' models: - regex: 'Asus(?:-|;)?([a-z0-9]+)' model: '$1' - regex: '(PadFone(?: [0-9]+)?)' model: '$1' - regex: '(Transformer (Pad |Prime )?TF[0-9a-z]+)' device: 'tablet' model: '$1' # 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' model: '$1' #BBK BBK: regex: 'vivo' device: 'smartphone' models: - regex: 'vivo ([^/;]+) Build' model: 'Vivo $1' - regex: 'vivo_([a-z0-9]+)' model: 'Vivo $1' # Bird Bird: regex: 'BIRD[\-. _]([a-z0-9]+)' device: 'feature phone' 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' # bq bq: regex: 'bq ([^/;]+) Build' device: 'tablet' models: - regex: 'bq (Aquaris [^/;]+) Build' model: '$1' device: 'smartphone' - regex: 'bq ([^/;]+) Build' model: '$1' # Capitel Capitel: regex: 'Capitel-([a-z0-9]+)' device: 'feature phone' model: '$1' # Cat Cat: regex: 'Cat ?(tablet|stargate|nova)' device: 'tablet' models: - regex: 'Cat ?(?:tablet)? ?((?:Galactica|Nova|StarGate|PHOENIX)[^/;]*) Build' model: '$1' - regex: 'Cat ?tablet' model: 'Nova' # Compal Compal: regex: 'Compal-([a-z0-9]+)' device: 'feature phone' model: '$1' # Coolpad Coolpad: regex: 'Coolpad' device: 'smartphone' models: - regex: 'Coolpad ?([^/;]+) Build' model: '$1' - regex: '(?:YL-)?Coolpad[ _-]?([a-z0-9]+)' model: '$1' # Cricket Cricket: regex: 'Cricket-([a-z0-9]+)' device: 'feature phone' model: '$1' # Cube Cube: regex: 'Cube|(U[0-9]+GT(?:[0-9]|[\-_][a-z])|K8GT)' device: 'tablet' models: - regex: '(U[0-9]+GT(?:[0-9]|[\-_][a-z]))' model: '$1' - regex: '(K8GT)' model: '$1' # Denver Electronics Denver: regex: '(TA[CDQ]-[0-9]+)' device: 'tablet' model: '$1' # Dell Dell: regex: 'Dell;? ([a-z0-9 ]+)' device: 'smartphone' model: '$1' # Dbtel Dbtel: regex: 'DBTEL(?:[\-/])?([a-z0-9]+)' device: 'feature phone' model: '$1' # Dicam Dicam: regex: 'DICAM-([a-z0-9]+)' device: 'feature phone' model: '$1' # 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' # Dopod Dopod: regex: 'Dopod(?: )?([a-z0-9]+)' device: 'feature phone' model: '$1' # Ericy Ericy: regex: 'Ericy-([a-z0-9]+)' device: 'feature phone' model: '$1' # Sony Ericsson Sony Ericsson: regex: 'Sony(?: )?Ericsson|portalmmm/2\.0 K|(?:LT|SO|ST|SK)[0-9]+[a-z]*[0-9]* Build|MT[0-9]{2}[a-z]? Build' device: 'smartphone' models: - regex: 'SonyEricsson([a-z0-9]+) Build' model: '$1' - regex: 'Sony(?: )?Ericsson ?([a-z0-9\-]+)' model: '$1' - regex: '((?:LT|SO|ST|SK)[0-9]+[a-z]*[0-9]*) Build' model: '$1' - regex: '(MT[0-9]{2}[a-z]?) Build' model: '$1' - regex: 'portalmmm/2.0 K([a-z0-9]+)' model: 'K$1' # Ericsson Ericsson: regex: 'Ericsson(?:/ )?([a-z0-9]+)' device: 'feature phone' model: '$1' # eTouch eTouch: regex: 'eTouch(?: )?([a-z0-9]+)' device: 'smartphone' 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' # 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' # Gionee Gionee: regex: 'GIONEE-([a-z0-9]+)' device: 'smartphone' models: - regex: 'GIONEE-([a-z0-9]+).*Android' model: '$1' - regex: 'Android.*GIONEE-([a-z0-9]+)' model: '$1' - regex: 'GIONEE-([a-z0-9]+)' model: '$1' device: 'feature phone' # Google Google: regex: 'Nexus|GoogleTV|Glass' device: 'smartphone' models: - regex: 'Glass' model: 'Glass' - regex: '(Galaxy Nexus)' model: '$1' - regex: '(Nexus (?:S|4|5|One))' model: '$1' - regex: '(Nexus (?:7|10))' device: 'tablet' model: '$1' - regex: '(GoogleTV)' device: 'tv' model: '$1' # 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: 'GRUNDIG|portalmmm/2\.0 G' device: 'tv' models: - regex: 'GRUNDIG ([a-z0-9]+)' model: '$1' - regex: 'portalmmm/2\.0 G([a-z0-9]+)' model: 'G$1' # Haier Haier: regex: 'Haier[ -]([a-z0-9\-]+)' device: 'feature phone' model: '$1' # Huawei Huawei: regex: '(HW-)?Huawei|vodafone([a-z0-9]+)' device: 'smartphone' models: - regex: '(MediaPad [^/;]*) Build' model: '$1' - regex: 'Huawei ([^/;]*) Build' model: '$1' - regex: '(?:HW-)?Huawei(?:[\- /_]|/1\.0/)?([a-z0-9]+)' model: '$1' - regex: 'Huawei; ([a-z0-9 -]+)' model: '$1' - regex: 'vodafone([a-z0-9]+)' model: 'Vodafone $1' # Innostream Innostream: regex: 'INNO([a-z0-9]+)' device: 'feature phone' model: 'INNO$1' # Inq INQ: regex: 'INQ/([a-z0-9\-]+)' device: 'feature phone' model: '$1' # Intex Intex: regex: 'Intex|Aqua[ _][^/;]+[ _]Build' device: 'smartphone' models: - regex: 'Intex[ _]([^/;]*)[ _]Build' model: '$1' - regex: '(Aqua[ _][^/;]+)[ _]Build' model: '$1' - 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]+)' device: 'feature phone' models: - 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' #Jiayu Jiayu: regex: '(JY-[a-z0-9]+) Build' device: 'smartphone' model: '$1' # Jolla Jolla: regex: 'Jolla' device: 'smartphone' model: '' # 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' #k-touch K-Touch: regex: 'K-Touch[ _]([a-z0-9]+)' device: 'smartphone' model: '$1' # kyocera Kyocera: regex: 'Kyocera|KWC-|QC-' device: 'smartphone' models: - regex: 'Kyocera-KZ-([a-z0-9]+)' model: 'KZ $1' - regex: 'Kyocera(?:[\-/])?([a-z0-9]+)' model: '$1' - regex: '(?:KWC|QC)-([a-z0-9]+)' model: '$1' # lanix Lanix: regex: 'LANIX-([a-z0-9]+)' device: 'feature phone' model: '$1' # lct LCT: regex: 'LCT_([a-z0-9]+)' device: 'feature phone' model: '$1' # lenovo Lenovo: regex: '(?:LNV-)?Lenovo|IdeaTab' device: 'smartphone' models: - regex: 'Lenovo ([^/;]*) Build' model: '$1' - regex: '(?:LNV-)?Lenovo[ \-_]([a-z0-9]+)' model: '$1' - regex: 'IdeaTab[ \-_]?([a-z0-9]+)' model: 'IdeaTab $1' device: 'tablet' # lguplus LGUPlus: regex: 'LGUPlus' device: 'smartphone' model: '' # lg LG: regex: 'LG|portalmmm/2\.0 (?:KE|KG|KP|L3)|VX[0-9]+' device: 'smartphone' models: - 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' # microsoft Microsoft: regex: 'Xbox|KIN\.(One|Two)' device: 'console' models: - regex: 'Xbox One' model: 'Xbox One' - regex: 'Xbox' model: 'Xbox 360' - regex: 'KIN\.(One|Two)' device: 'feature phone' model: 'Kin $1' # Konka Konka: regex: 'KONKA_([a-z0-9]+)' device: 'feature phone' model: '$1' # Karbonn Karbonn: regex: 'Karbonn_([a-z0-9]+)' device: 'smartphone' model: '$1' # Sagem Sagem: regex: 'SAGEM|portalmmm/2.0 (?:SG|my)' device: 'smartphone' models: - 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' # Manta Multimedia Manta Multimedia: regex: '(MID[0-9]+[a-z]*)' device: 'tablet' model: '$1' #Medion Medion: regex: '(?:MD_)?LIFETAB_([a-z0-9]+)' device: 'tablet' model: 'Lifetab $1' # micromax MicroMax: regex: 'MicroMax(?:[ \-\_])?([a-z0-9]+)' device: 'smartphone' model: '$1' # mio Mio: regex: 'MIO(?:/)?([a-z0-9]+)' device: 'smartphone' model: '$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' # motorola Motorola: regex: 'MOT|(?