Use 'ps -lef' instead of 'ps' to list Pids on Android 8.x

This commit is contained in:
song
2018-02-04 18:48:28 +08:00
parent 2dac3d1bbd
commit fa50c56bb9

View File

@@ -5,6 +5,8 @@ var Promise = require('bluebird')
var devutil = module.exports = Object.create(null) var devutil = module.exports = Object.create(null)
var commands = Object.create(null)
function closedError(err) { function closedError(err) {
return err.message.indexOf('closed') !== -1 return err.message.indexOf('closed') !== -1
} }
@@ -39,13 +41,30 @@ devutil.listPidsByComm = function(adb, serial, comm, bin) {
shell: true shell: true
} }
return adb.shell(serial, ['ps'])
.then(function(out) {
return new Promise(function(resolve) { return new Promise(function(resolve) {
if ('ps' in commands) {
resolve(commands)
} else {
adb.getProperties(serial)
.then(function (properties) {
version = properties['ro.build.version.release']
if (version.match(/^8\./) != null) {
commands['ps'] = 'ps -lef'
} else {
commands['ps'] = 'ps'
}
resolve(commands)
})
}
})
.then(function (commands) {
return adb.shell(serial, [commands['ps']])
.then(function (out) {
return new Promise(function (resolve) {
var header = true var header = true
var pids = [] var pids = []
out.pipe(split()) out.pipe(split())
.on('data', function(chunk) { .on('data', function (chunk) {
if (header) { if (header) {
header = false header = false
} }
@@ -56,11 +75,12 @@ devutil.listPidsByComm = function(adb, serial, comm, bin) {
} }
} }
}) })
.on('end', function() { .on('end', function () {
resolve(pids) resolve(pids)
}) })
}) })
}) })
})
} }
devutil.waitForProcsToDie = function(adb, serial, comm, bin) { devutil.waitForProcsToDie = function(adb, serial, comm, bin) {