UNPKG

appium-adb

Version:

Android Debug Bridge interface

174 lines (139 loc) 10.7 kB
'use strict'; var _createClass = require('babel-runtime/helpers/create-class')['default']; var _classCallCheck = require('babel-runtime/helpers/class-call-check')['default']; var _slicedToArray = require('babel-runtime/helpers/sliced-to-array')['default']; var _Object$assign = require('babel-runtime/core-js/object/assign')['default']; var _getIterator = require('babel-runtime/core-js/get-iterator')['default']; var _regeneratorRuntime = require('babel-runtime/regenerator')['default']; var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default']; Object.defineProperty(exports, '__esModule', { value: true }); var _lodash = require('lodash'); var _lodash2 = _interopRequireDefault(_lodash); var _path = require('path'); var _path2 = _interopRequireDefault(_path); var _toolsIndexJs = require('./tools/index.js'); var _toolsIndexJs2 = _interopRequireDefault(_toolsIndexJs); var _helpers = require('./helpers'); var DEFAULT_ADB_PORT = 5037; var JAR_PATH = _path2['default'].resolve(_helpers.rootDir, 'jars'); var DEFAULT_OPTS = { sdkRoot: null, udid: null, appDeviceReadyTimeout: null, useKeystore: null, keystorePath: null, keystorePassword: null, keyAlias: null, keyPassword: null, executable: { path: "adb", defaultArgs: [] }, tmpDir: null, curDeviceId: null, emulatorPort: null, logcat: null, binaries: {}, instrumentProc: null, javaVersion: null, suppressKillServer: null, jars: {}, helperJarPath: JAR_PATH, adbPort: DEFAULT_ADB_PORT }; var ADB = (function () { function ADB() { var opts = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; _classCallCheck(this, ADB); if (typeof opts.sdkRoot === "undefined") { opts.sdkRoot = process.env.ANDROID_HOME || ''; } _Object$assign(this, opts); _lodash2['default'].defaultsDeep(this, _lodash2['default'].cloneDeep(DEFAULT_OPTS)); if (opts.remoteAdbHost) { this.executable.defaultArgs.push("-H", opts.remoteAdbHost); } // TODO figure out why we have this option as it does not appear to be // used anywhere. Probably deprecate in favor of simple opts.adbPort if (opts.remoteAdbPort) { this.adbPort = opts.remoteAdbPort; } this.executable.defaultArgs.push("-P", this.adbPort); this.initJars(); } _createClass(ADB, [{ key: 'initJars', value: function initJars() { var tempJars = ['move_manifest.jar', 'sign.jar', 'appium_apk_tools.jar', 'unsign.jar', 'verify.jar']; var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = _getIterator(tempJars), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var jarName = _step.value; this.jars[jarName] = _path2['default'].resolve(JAR_PATH, jarName); } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator['return']) { _iterator['return'](); } } finally { if (_didIteratorError) { throw _iteratorError; } } } if (!this.javaVersion || parseFloat(this.javaVersion) < 1.7) { this.jars['appium_apk_tools.jar'] = _path2['default'].resolve(JAR_PATH, 'appium_apk_tools_1.6.jar'); } } }]); return ADB; })(); ADB.createADB = function callee$0$0(opts) { var adb; return _regeneratorRuntime.async(function callee$0$0$(context$1$0) { while (1) switch (context$1$0.prev = context$1$0.next) { case 0: adb = new ADB(opts); context$1$0.next = 3; return _regeneratorRuntime.awrap(adb.getAdbWithCorrectAdbPath()); case 3: return context$1$0.abrupt('return', adb); case 4: case 'end': return context$1$0.stop(); } }, null, this); }; // add all the methods to the ADB prototype var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = _getIterator(_lodash2['default'].pairs(_toolsIndexJs2['default'])), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var _step2$value = _slicedToArray(_step2.value, 2); var fnName = _step2$value[0]; var fn = _step2$value[1]; ADB.prototype[fnName] = fn; } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2['return']) { _iterator2['return'](); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } exports['default'] = ADB; exports.DEFAULT_ADB_PORT = DEFAULT_ADB_PORT; //# sourceMappingURL=data:application/json;base64,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QUFnQixJQUFJO01BQzlCLEdBQUc7Ozs7QUFBSCxXQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDOzt5Q0FDakIsR0FBRyxDQUFDLHdCQUF3QixFQUFFOzs7NENBQzdCLEdBQUc7Ozs7Ozs7Q0FDWCxDQUFDOzs7Ozs7OztBQUdGLHFDQUF5QixvQkFBRSxLQUFLLDJCQUFTLGlIQUFFOzs7UUFBakMsTUFBTTtRQUFFLEVBQUU7O0FBQ2xCLE9BQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0dBQzVCOzs7Ozs7Ozs7Ozs7Ozs7O3FCQUVjLEdBQUc7UUFDVCxnQkFBZ0IsR0FBaEIsZ0JBQWdCIiwiZmlsZSI6ImxpYi9hZGIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgbWV0aG9kcyBmcm9tICcuL3Rvb2xzL2luZGV4LmpzJztcbmltcG9ydCB7IHJvb3REaXJ9IGZyb20gJy4vaGVscGVycyc7XG5cbmNvbnN0IERFRkFVTFRfQURCX1BPUlQgPSA1MDM3O1xuY29uc3QgSkFSX1BBVEggPSBwYXRoLnJlc29sdmUocm9vdERpciwgJ2phcnMnKTtcbmNvbnN0IERFRkFVTFRfT1BUUyA9IHtcbiAgc2RrUm9vdDogbnVsbCxcbiAgdWRpZDogbnVsbCxcbiAgYXBwRGV2aWNlUmVhZHlUaW1lb3V0OiBudWxsLFxuICB1c2VLZXlzdG9yZTogbnVsbCxcbiAga2V5c3RvcmVQYXRoOiBudWxsLFxuICBrZXlzdG9yZVBhc3N3b3JkOiBudWxsLFxuICBrZXlBbGlhczogbnVsbCxcbiAga2V5UGFzc3dvcmQ6IG51bGwsXG4gIGV4ZWN1dGFibGU6IHtwYXRoOiBcImFkYlwiLCBkZWZhdWx0QXJnczogW119LFxuICB0bXBEaXI6IG51bGwsXG4gIGN1ckRldmljZUlkOiBudWxsLFxuICBlbXVsYXRvclBvcnQgOiBudWxsLFxuICBsb2djYXQ6IG51bGwsXG4gIGJpbmFyaWVzOiB7fSxcbiAgaW5zdHJ1bWVudFByb2M6IG51bGwsXG4gIGphdmFWZXJzaW9uOiBudWxsLFxuICBzdXBwcmVzc0tpbGxTZXJ2ZXI6IG51bGwsXG4gIGphcnM6IHt9LFxuICBoZWxwZXJKYXJQYXRoOiBKQVJfUEFUSCxcbiAgYWRiUG9ydDogREVGQVVMVF9BREJfUE9SVFxufTtcblxuY2xhc3MgQURCIHtcbiAgY29uc3RydWN0b3IgKG9wdHMgPSB7fSkge1xuICAgIGlmICh0eXBlb2Ygb3B0cy5zZGtSb290ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICBvcHRzLnNka1Jvb3QgPSBwcm9jZXNzLmVudi5BTkRST0lEX0hPTUUgfHwgJyc7XG4gICAgfVxuXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLCBvcHRzKTtcbiAgICBfLmRlZmF1bHRzRGVlcCh0aGlzLCBfLmNsb25lRGVlcChERUZBVUxUX09QVFMpKTtcblxuICAgIGlmIChvcHRzLnJlbW90ZUFkYkhvc3QpIHtcbiAgICAgIHRoaXMuZXhlY3V0YWJsZS5kZWZhdWx0QXJncy5wdXNoKFwiLUhcIiwgb3B0cy5yZW1vdGVBZGJIb3N0KTtcbiAgICB9XG4gICAgLy8gVE9ETyBmaWd1cmUgb3V0IHdoeSB3ZSBoYXZlIHRoaXMgb3B0aW9uIGFzIGl0IGRvZXMgbm90IGFwcGVhciB0byBiZVxuICAgIC8vIHVzZWQgYW55d2hlcmUuIFByb2JhYmx5IGRlcHJlY2F0ZSBpbiBmYXZvciBvZiBzaW1wbGUgb3B0cy5hZGJQb3J0XG4gICAgaWYgKG9wdHMucmVtb3RlQWRiUG9ydCkge1xuICAgICAgdGhpcy5hZGJQb3J0ID0gb3B0cy5yZW1vdGVBZGJQb3J0O1xuICAgIH1cbiAgICB0aGlzLmV4ZWN1dGFibGUuZGVmYXVsdEFyZ3MucHVzaChcIi1QXCIsIHRoaXMuYWRiUG9ydCk7XG5cbiAgICB0aGlzLmluaXRKYXJzKCk7XG4gIH1cblxuICBpbml0SmFycyAoKSB7XG4gICAgbGV0IHRlbXBKYXJzID0gWydtb3ZlX21hbmlmZXN0LmphcicsICdzaWduLmphcicsICdhcHBpdW1fYXBrX3Rvb2xzLmphcicsXG4gICAgICAgICAgICAgICAgICAgICd1bnNpZ24uamFyJywgJ3ZlcmlmeS5qYXInXTtcbiAgICBmb3IgKGxldCBqYXJOYW1lIG9mIHRlbXBKYXJzKSB7XG4gICAgICB0aGlzLmphcnNbamFyTmFtZV0gPSBwYXRoLnJlc29sdmUoSkFSX1BBVEgsIGphck5hbWUpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuamF2YVZlcnNpb24gfHwgcGFyc2VGbG9hdCh0aGlzLmphdmFWZXJzaW9uKSA8IDEuNykge1xuICAgICAgdGhpcy5qYXJzWydhcHBpdW1fYXBrX3Rvb2xzLmphciddID0gcGF0aC5yZXNvbHZlKEpBUl9QQVRILFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcHBpdW1fYXBrX3Rvb2xzXzEuNi5qYXInKTtcbiAgICB9XG4gIH1cbn1cblxuQURCLmNyZWF0ZUFEQiA9IGFzeW5jIGZ1bmN0aW9uIChvcHRzKSB7XG4gIGxldCBhZGIgPSBuZXcgQURCKG9wdHMpO1xuICBhd2FpdCBhZGIuZ2V0QWRiV2l0aENvcnJlY3RBZGJQYXRoKCk7XG4gIHJldHVybiBhZGI7XG59O1xuXG4vLyBhZGQgYWxsIHRoZSBtZXRob2RzIHRvIHRoZSBBREIgcHJvdG90eXBlXG5mb3IgKGxldCBbZm5OYW1lLCBmbl0gb2YgXy5wYWlycyhtZXRob2RzKSkge1xuICBBREIucHJvdG90eXBlW2ZuTmFtZV0gPSBmbjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQURCO1xuZXhwb3J0IHsgREVGQVVMVF9BREJfUE9SVCB9O1xuIl19