diff --git a/lib/db/api.js b/lib/db/api.js index 8cfe98812..58cf635d5 100644 --- a/lib/db/api.js +++ b/lib/db/api.js @@ -324,6 +324,7 @@ dbapi.saveDeviceIdentity = function(serial, identity) { , product: identity.product , cpuPlatform: identity.cpuPlatform , openGLESVersion: identity.openGLESVersion + , marketName: identity.marketName })) } diff --git a/lib/units/device/plugins/solo.js b/lib/units/device/plugins/solo.js index ae78a2d03..e3ba1f404 100644 --- a/lib/units/device/plugins/solo.js +++ b/lib/units/device/plugins/solo.js @@ -44,6 +44,7 @@ module.exports = syrup.serial() , identity.product , identity.cpuPlatform , identity.openGLESVersion + , identity.marketName )) ]) }) diff --git a/lib/util/devutil.js b/lib/util/devutil.js index da61b0c33..0772cfd7c 100644 --- a/lib/util/devutil.js +++ b/lib/util/devutil.js @@ -2,6 +2,7 @@ var util = require('util') var split = require('split') var Promise = require('bluebird') +var androidDeviceList = require('android-device-list') var devutil = module.exports = Object.create(null) @@ -135,6 +136,7 @@ devutil.makeIdentity = function(serial, properties) { var product = properties['ro.product.name'] var cpuPlatform = properties['ro.board.platform'] var openGLESVersion = properties['ro.opengles.version'] + var marketName = properties['ro.product.device'] openGLESVersion = parseInt(openGLESVersion, 10) if (isNaN(openGLESVersion)) { @@ -157,6 +159,13 @@ devutil.makeIdentity = function(serial, properties) { model = model.substr(manufacturer.length) } + if (marketName) { + var devices = androidDeviceList.getDevicesByDeviceId(marketName) + if (devices.length > 0) { + marketName = devices[0].name + } + } + // Clean up remaining model name // model = model.replace(/[_ ]/g, '') return { @@ -171,5 +180,6 @@ devutil.makeIdentity = function(serial, properties) { , product: product , cpuPlatform: cpuPlatform , openGLESVersion: openGLESVersion + , marketName: marketName } } diff --git a/lib/wire/wire.proto b/lib/wire/wire.proto index 2b2c60ca6..255cfb0b8 100644 --- a/lib/wire/wire.proto +++ b/lib/wire/wire.proto @@ -230,6 +230,7 @@ message DeviceIdentityMessage { optional string product = 12; optional string cpuPlatform = 13; optional string openGLESVersion = 14; + optional string marketName = 15; } message DeviceProperty { diff --git a/package.json b/package.json index b5fff89cd..d80b4dca6 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,7 @@ "adbkit": "^2.11.1", "adbkit-apkreader": "^3.1.1", "adbkit-monkey": "^1.0.1", + "android-device-list": "^1.2.1", "aws-sdk": "^2.4.13", "basic-auth": "^1.0.3", "bluebird": "^2.10.1", diff --git a/res/app/device-list/column/device-column-service.js b/res/app/device-list/column/device-column-service.js index 96dafd305..b131b2faa 100644 --- a/res/app/device-list/column/device-column-service.js +++ b/res/app/device-list/column/device-column-service.js @@ -179,6 +179,12 @@ module.exports = function DeviceColumnService($filter, gettext) { return device.manufacturer || '' } }) + , marketName: TextCell({ + title: gettext('Market name') + , value: function(device) { + return device.marketName || '' + } + }) , sdk: NumberCell({ title: gettext('SDK') , defaultOrder: 'desc' diff --git a/res/app/device-list/device-list-controller.js b/res/app/device-list/device-list-controller.js index f14109e45..2ed5fdcfb 100644 --- a/res/app/device-list/device-list-controller.js +++ b/res/app/device-list/device-list-controller.js @@ -55,6 +55,10 @@ module.exports = function DeviceListCtrl( name: 'manufacturer' , selected: false } + , { + name: 'marketName' + , selected: false + } , { name: 'sdk' , selected: false