appium-adb 9.10.0 → 9.10.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/lib/helpers.js +26 -3
- package/lib/tools/apk-signing.js +3 -4
- package/lib/tools/system-calls.js +12 -3
- package/package.json +39 -26
- package/build/index.js +0 -30
- package/build/lib/adb.js +0 -132
- package/build/lib/helpers.js +0 -957
- package/build/lib/logcat.js +0 -221
- package/build/lib/logger.js +0 -18
- package/build/lib/tools/aab-utils.js +0 -157
- package/build/lib/tools/adb-commands.js +0 -1150
- package/build/lib/tools/adb-emu-commands.js +0 -397
- package/build/lib/tools/android-manifest.js +0 -231
- package/build/lib/tools/apk-signing.js +0 -333
- package/build/lib/tools/apk-utils.js +0 -992
- package/build/lib/tools/apks-utils.js +0 -219
- package/build/lib/tools/index.js +0 -49
- package/build/lib/tools/keyboard-commands.js +0 -71
- package/build/lib/tools/lockmgmt.js +0 -224
- package/build/lib/tools/settings-client-commands.js +0 -362
- package/build/lib/tools/system-calls.js +0 -1056
package/README.md
CHANGED
package/lib/helpers.js
CHANGED
|
@@ -5,8 +5,8 @@ import _ from 'lodash';
|
|
|
5
5
|
import B from 'bluebird';
|
|
6
6
|
import semver from 'semver';
|
|
7
7
|
import os from 'os';
|
|
8
|
+
import _fs from 'fs';
|
|
8
9
|
|
|
9
|
-
const rootDir = path.resolve(__dirname, process.env.NO_PRECOMPILE ? '..' : '../..');
|
|
10
10
|
const APKS_EXTENSION = '.apks';
|
|
11
11
|
const APK_EXTENSION = '.apk';
|
|
12
12
|
const APK_INSTALL_TIMEOUT = 60000;
|
|
@@ -15,6 +15,29 @@ const DEFAULT_ADB_EXEC_TIMEOUT = 20000; // in milliseconds
|
|
|
15
15
|
const MAIN_ACTION = 'android.intent.action.MAIN';
|
|
16
16
|
const LAUNCHER_CATEGORY = 'android.intent.category.LAUNCHER';
|
|
17
17
|
|
|
18
|
+
/**
|
|
19
|
+
* Calculates the path to the current module's root folder
|
|
20
|
+
*
|
|
21
|
+
* @returns {string} The full path to module root
|
|
22
|
+
* @throws {Error} If the current module root folder cannot be determined
|
|
23
|
+
*/
|
|
24
|
+
const getModuleRoot = _.memoize(function getModuleRoot () {
|
|
25
|
+
const pathParts = path.resolve(__dirname).split(path.sep);
|
|
26
|
+
for (let pathItemIdx = pathParts.length; pathItemIdx > 0; --pathItemIdx) {
|
|
27
|
+
const currentDir = path.join(...(pathParts.slice(0, pathItemIdx)));
|
|
28
|
+
const manifestPath = path.join(currentDir, 'package.json');
|
|
29
|
+
try {
|
|
30
|
+
if (!_fs.existsSync(manifestPath)) {
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
if (JSON.parse(_fs.readFileSync(manifestPath, 'utf8')).name === 'appium-adb') {
|
|
34
|
+
return currentDir;
|
|
35
|
+
}
|
|
36
|
+
} catch (ign) {}
|
|
37
|
+
}
|
|
38
|
+
throw new Error('Cannot find the root folder of the appium-adb Node.js module');
|
|
39
|
+
});
|
|
40
|
+
|
|
18
41
|
/**
|
|
19
42
|
* Retrieves the actual path to SDK root folder from the system environment
|
|
20
43
|
*
|
|
@@ -1029,11 +1052,11 @@ export {
|
|
|
1029
1052
|
getAndroidPlatformAndPath, unzipFile,
|
|
1030
1053
|
getIMEListFromOutput, getJavaForOs, isShowingLockscreen, isCurrentFocusOnKeyguard,
|
|
1031
1054
|
getSurfaceOrientation, isScreenOnFully, buildStartCmd, getJavaHome,
|
|
1032
|
-
|
|
1055
|
+
getSdkToolsVersion, getApksignerForOs, getBuildToolsDirs,
|
|
1033
1056
|
getApkanalyzerForOs, getOpenSslForOs, extractMatchingPermissions, APKS_EXTENSION,
|
|
1034
1057
|
APK_INSTALL_TIMEOUT, APKS_INSTALL_TIMEOUT, buildInstallArgs, APK_EXTENSION,
|
|
1035
1058
|
DEFAULT_ADB_EXEC_TIMEOUT, parseManifest, parseAaptStrings, parseAapt2Strings,
|
|
1036
1059
|
formatConfigMarker, parseJsonData, unsignApk, toAvdLocaleArgs, requireSdkRoot,
|
|
1037
1060
|
getSdkRootFromEnv, getAndroidPrefsRoot, dirExists, escapeShellArg,
|
|
1038
|
-
parseLaunchableActivityNames, matchComponentName,
|
|
1061
|
+
parseLaunchableActivityNames, matchComponentName, getModuleRoot
|
|
1039
1062
|
};
|
package/lib/tools/apk-signing.js
CHANGED
|
@@ -6,12 +6,11 @@ import log from '../logger.js';
|
|
|
6
6
|
import { tempDir, system, mkdirp, fs, util } from '@appium/support';
|
|
7
7
|
import LRU from 'lru-cache';
|
|
8
8
|
import {
|
|
9
|
-
getJavaForOs, getApksignerForOs, getJavaHome,
|
|
10
|
-
rootDir, APKS_EXTENSION, unsignApk,
|
|
9
|
+
getJavaForOs, getApksignerForOs, getJavaHome, getModuleRoot, APKS_EXTENSION, unsignApk,
|
|
11
10
|
} from '../helpers.js';
|
|
12
11
|
|
|
13
|
-
const DEFAULT_PRIVATE_KEY = path.resolve(
|
|
14
|
-
const DEFAULT_CERTIFICATE = path.resolve(
|
|
12
|
+
const DEFAULT_PRIVATE_KEY = path.resolve(getModuleRoot(), 'keys', 'testkey.pk8');
|
|
13
|
+
const DEFAULT_CERTIFICATE = path.resolve(getModuleRoot(), 'keys', 'testkey.x509.pem');
|
|
15
14
|
const BUNDLETOOL_TUTORIAL = 'https://developer.android.com/studio/command-line/bundletool';
|
|
16
15
|
const APKSIGNER_VERIFY_FAIL = 'DOES NOT VERIFY';
|
|
17
16
|
const SHA1 = 'sha1';
|
|
@@ -33,6 +33,7 @@ const SDK_BINARY_ROOTS = [
|
|
|
33
33
|
'.' // Allow custom sdkRoot to specify full folder path
|
|
34
34
|
];
|
|
35
35
|
const MIN_DELAY_ADB_API_LEVEL = 28;
|
|
36
|
+
const REQUIRED_SERVICES = ['activity', 'package', 'mount'];
|
|
36
37
|
|
|
37
38
|
/**
|
|
38
39
|
* Retrieve full path to the given binary.
|
|
@@ -951,11 +952,12 @@ systemCallMethods.getVersion = _.memoize(async function getVersion () {
|
|
|
951
952
|
* @throws {Error} If the emulator is not ready within the given timeout.
|
|
952
953
|
*/
|
|
953
954
|
systemCallMethods.waitForEmulatorReady = async function waitForEmulatorReady (timeoutMs = 20000) {
|
|
954
|
-
const requiredServicesRe =
|
|
955
|
+
const requiredServicesRe = REQUIRED_SERVICES.map((name) => new RegExp(`\\b${name}:`));
|
|
956
|
+
let services;
|
|
955
957
|
try {
|
|
956
958
|
await waitForCondition(async () => {
|
|
957
959
|
try {
|
|
958
|
-
|
|
960
|
+
services = await this.shell(['service', 'list']);
|
|
959
961
|
return requiredServicesRe.every((pattern) => pattern.test(services));
|
|
960
962
|
} catch (err) {
|
|
961
963
|
log.debug(`Waiting for emulator startup. Intermediate error: ${err.message}`);
|
|
@@ -966,7 +968,14 @@ systemCallMethods.waitForEmulatorReady = async function waitForEmulatorReady (ti
|
|
|
966
968
|
intervalMs: 3000,
|
|
967
969
|
});
|
|
968
970
|
} catch (e) {
|
|
969
|
-
|
|
971
|
+
if (services) {
|
|
972
|
+
log.debug(`Recently listed services:\n${services}`);
|
|
973
|
+
}
|
|
974
|
+
const missingServices = _.zip(REQUIRED_SERVICES, requiredServicesRe)
|
|
975
|
+
.filter(([, pattern]) => !pattern.test(services))
|
|
976
|
+
.map(([name]) => name);
|
|
977
|
+
throw new Error(`Emulator is not ready within ${timeoutMs}ms ` +
|
|
978
|
+
`(${missingServices} service${missingServices.length === 1 ? ' is' : 's are'} not running)`);
|
|
970
979
|
}
|
|
971
980
|
};
|
|
972
981
|
|
package/package.json
CHANGED
|
@@ -1,41 +1,47 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "appium-adb",
|
|
3
|
-
"version": "9.10.
|
|
3
|
+
"version": "9.10.3",
|
|
4
4
|
"description": "Android Debug Bridge interface",
|
|
5
5
|
"main": "./build/index.js",
|
|
6
6
|
"scripts": {
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"mocha": "mocha",
|
|
13
|
-
"e2e-test": "gulp transpile && npm run mocha -- -t 600000 --recursive build/test/functional/",
|
|
14
|
-
"coverage": "gulp coveralls",
|
|
7
|
+
"build": "rm -rf build && babel --out-dir=build/lib lib && babel --out-dir=build index.js",
|
|
8
|
+
"dev": "npm run build -- --watch",
|
|
9
|
+
"lint": "eslint .",
|
|
10
|
+
"lint:fix": "npm run lint -- --fix",
|
|
11
|
+
"precommit-lint": "lint-staged",
|
|
15
12
|
"precommit-msg": "echo 'Pre-commit checks...' && exit 0",
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"lint:fix": "gulp eslint --fix"
|
|
13
|
+
"test": "mocha --exit --timeout 1m \"./test/unit/**/*-specs.js\"",
|
|
14
|
+
"e2e-test": "mocha --exit --timeout 5m \"./test/functional/**/*-specs.js\""
|
|
19
15
|
},
|
|
20
16
|
"repository": {
|
|
21
17
|
"type": "git",
|
|
22
18
|
"url": "https://github.com/appium/appium-adb.git"
|
|
23
19
|
},
|
|
24
|
-
"author": "",
|
|
20
|
+
"author": "Appium Contributors",
|
|
25
21
|
"license": "Apache-2.0",
|
|
26
22
|
"bugs": {
|
|
27
23
|
"url": "https://github.com/appium/appium-adb/issues"
|
|
28
24
|
},
|
|
29
|
-
"engines":
|
|
30
|
-
"node"
|
|
31
|
-
|
|
25
|
+
"engines": {
|
|
26
|
+
"node": ">=14",
|
|
27
|
+
"npm": ">=8"
|
|
28
|
+
},
|
|
32
29
|
"bin": {},
|
|
33
30
|
"directories": {
|
|
34
31
|
"lib": "lib"
|
|
35
32
|
},
|
|
33
|
+
"lint-staged": {
|
|
34
|
+
"*.js": [
|
|
35
|
+
"eslint --fix"
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
"prettier": {
|
|
39
|
+
"bracketSpacing": false,
|
|
40
|
+
"printWidth": 100,
|
|
41
|
+
"singleQuote": true
|
|
42
|
+
},
|
|
36
43
|
"files": [
|
|
37
44
|
"index.js",
|
|
38
|
-
"jars",
|
|
39
45
|
"keys",
|
|
40
46
|
"lib",
|
|
41
47
|
"build/index.js",
|
|
@@ -54,28 +60,35 @@
|
|
|
54
60
|
"lru-cache": "^7.3.0",
|
|
55
61
|
"semver": "^7.0.0",
|
|
56
62
|
"source-map-support": "^0.x",
|
|
57
|
-
"teen_process": "^
|
|
63
|
+
"teen_process": "^2.0.1",
|
|
58
64
|
"utf7": "^1.0.2"
|
|
59
65
|
},
|
|
60
66
|
"pre-commit": [
|
|
61
67
|
"precommit-msg",
|
|
62
|
-
"precommit-
|
|
68
|
+
"precommit-lint"
|
|
63
69
|
],
|
|
64
70
|
"devDependencies": {
|
|
65
|
-
"@appium/gulp-plugins": "^7.0.0",
|
|
66
71
|
"@appium/eslint-config-appium": "^6.0.0",
|
|
67
|
-
"@appium/test-support": "^1.
|
|
68
|
-
"@babel/
|
|
69
|
-
"@babel/
|
|
72
|
+
"@appium/test-support": "^1.5.0",
|
|
73
|
+
"@babel/cli": "^7.18.10",
|
|
74
|
+
"@babel/core": "^7.18.10",
|
|
75
|
+
"@babel/eslint-parser": "^7.18.9",
|
|
76
|
+
"@babel/plugin-transform-runtime": "^7.18.10",
|
|
77
|
+
"@babel/preset-env": "^7.18.10",
|
|
78
|
+
"@babel/register": "^7.18.9",
|
|
70
79
|
"@semantic-release/git": "^10.0.1",
|
|
80
|
+
"babel-plugin-source-map-support": "^2.2.0",
|
|
71
81
|
"chai": "^4.1.0",
|
|
72
82
|
"chai-as-promised": "^7.1.1",
|
|
83
|
+
"eslint": "^7.32.0",
|
|
73
84
|
"eslint-config-prettier": "^8.5.0",
|
|
74
|
-
"
|
|
85
|
+
"eslint-plugin-import": "^2.26.0",
|
|
86
|
+
"eslint-plugin-mocha": "^9.0.0",
|
|
87
|
+
"eslint-plugin-promise": "^6.0.0",
|
|
88
|
+
"lint-staged": "^13.0.3",
|
|
75
89
|
"mocha": "^10.0.0",
|
|
76
|
-
"mocha-junit-reporter": "^2.0.0",
|
|
77
|
-
"mocha-multi-reporters": "^1.1.7",
|
|
78
90
|
"pre-commit": "^1.1.3",
|
|
91
|
+
"prettier": "^2.7.1",
|
|
79
92
|
"semantic-release": "^19.0.2",
|
|
80
93
|
"sinon": "^14.0.0",
|
|
81
94
|
"temp": "^0.x"
|
package/build/index.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.getSdkRootFromEnv = exports.getAndroidBinaryPath = exports.default = exports.DEFAULT_ADB_PORT = exports.ADB = void 0;
|
|
7
|
-
|
|
8
|
-
require("source-map-support/register");
|
|
9
|
-
|
|
10
|
-
var adb = _interopRequireWildcard(require("./lib/adb"));
|
|
11
|
-
|
|
12
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
13
|
-
|
|
14
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
|
-
|
|
16
|
-
const {
|
|
17
|
-
ADB,
|
|
18
|
-
DEFAULT_ADB_PORT,
|
|
19
|
-
getAndroidBinaryPath,
|
|
20
|
-
getSdkRootFromEnv
|
|
21
|
-
} = adb;
|
|
22
|
-
exports.getSdkRootFromEnv = getSdkRootFromEnv;
|
|
23
|
-
exports.getAndroidBinaryPath = getAndroidBinaryPath;
|
|
24
|
-
exports.DEFAULT_ADB_PORT = DEFAULT_ADB_PORT;
|
|
25
|
-
exports.ADB = ADB;
|
|
26
|
-
var _default = ADB;
|
|
27
|
-
exports.default = _default;require('source-map-support').install();
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbIkFEQiIsIkRFRkFVTFRfQURCX1BPUlQiLCJnZXRBbmRyb2lkQmluYXJ5UGF0aCIsImdldFNka1Jvb3RGcm9tRW52IiwiYWRiIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFFQTs7Ozs7O0FBRUEsTUFBTTtBQUNKQSxFQUFBQSxHQURJO0FBRUpDLEVBQUFBLGdCQUZJO0FBR0pDLEVBQUFBLG9CQUhJO0FBSUpDLEVBQUFBO0FBSkksSUFLRkMsR0FMSjs7Ozs7ZUFPZUosRyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRyYW5zcGlsZTptYWluXG5cbmltcG9ydCAqIGFzIGFkYiBmcm9tICcuL2xpYi9hZGInO1xuXG5jb25zdCB7XG4gIEFEQixcbiAgREVGQVVMVF9BREJfUE9SVCxcbiAgZ2V0QW5kcm9pZEJpbmFyeVBhdGgsXG4gIGdldFNka1Jvb3RGcm9tRW52XG59ID0gYWRiO1xuXG5leHBvcnQgZGVmYXVsdCBBREI7XG5leHBvcnQgeyBBREIsIERFRkFVTFRfQURCX1BPUlQsIGdldEFuZHJvaWRCaW5hcnlQYXRoLCBnZXRTZGtSb290RnJvbUVudiB9O1xuIl0sImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZVJvb3QiOiIuLiJ9
|
package/build/lib/adb.js
DELETED
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.default = exports.DEFAULT_ADB_PORT = exports.ADB = void 0;
|
|
9
|
-
Object.defineProperty(exports, "getAndroidBinaryPath", {
|
|
10
|
-
enumerable: true,
|
|
11
|
-
get: function () {
|
|
12
|
-
return _index.getAndroidBinaryPath;
|
|
13
|
-
}
|
|
14
|
-
});
|
|
15
|
-
Object.defineProperty(exports, "getSdkRootFromEnv", {
|
|
16
|
-
enumerable: true,
|
|
17
|
-
get: function () {
|
|
18
|
-
return _helpers.getSdkRootFromEnv;
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
require("source-map-support/register");
|
|
23
|
-
|
|
24
|
-
var _lodash = _interopRequireDefault(require("lodash"));
|
|
25
|
-
|
|
26
|
-
var _os = _interopRequireDefault(require("os"));
|
|
27
|
-
|
|
28
|
-
var _index = _interopRequireWildcard(require("./tools/index.js"));
|
|
29
|
-
|
|
30
|
-
var _helpers = require("./helpers");
|
|
31
|
-
|
|
32
|
-
var _logger = _interopRequireDefault(require("./logger.js"));
|
|
33
|
-
|
|
34
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
35
|
-
|
|
36
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
37
|
-
|
|
38
|
-
const DEFAULT_ADB_PORT = 5037;
|
|
39
|
-
exports.DEFAULT_ADB_PORT = DEFAULT_ADB_PORT;
|
|
40
|
-
const DEFAULT_OPTS = {
|
|
41
|
-
sdkRoot: (0, _helpers.getSdkRootFromEnv)() || null,
|
|
42
|
-
udid: null,
|
|
43
|
-
appDeviceReadyTimeout: null,
|
|
44
|
-
useKeystore: null,
|
|
45
|
-
keystorePath: null,
|
|
46
|
-
keystorePassword: null,
|
|
47
|
-
keyAlias: null,
|
|
48
|
-
keyPassword: null,
|
|
49
|
-
executable: {
|
|
50
|
-
path: 'adb',
|
|
51
|
-
defaultArgs: []
|
|
52
|
-
},
|
|
53
|
-
tmpDir: _os.default.tmpdir(),
|
|
54
|
-
curDeviceId: null,
|
|
55
|
-
emulatorPort: null,
|
|
56
|
-
logcat: null,
|
|
57
|
-
binaries: {},
|
|
58
|
-
instrumentProc: null,
|
|
59
|
-
suppressKillServer: null,
|
|
60
|
-
jars: {},
|
|
61
|
-
adbPort: DEFAULT_ADB_PORT,
|
|
62
|
-
adbHost: null,
|
|
63
|
-
adbExecTimeout: _helpers.DEFAULT_ADB_EXEC_TIMEOUT,
|
|
64
|
-
remoteAppsCacheLimit: 10,
|
|
65
|
-
buildToolsVersion: null,
|
|
66
|
-
allowOfflineDevices: false,
|
|
67
|
-
allowDelayAdb: true
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
class ADB {
|
|
71
|
-
constructor(opts = {}) {
|
|
72
|
-
Object.assign(this, opts);
|
|
73
|
-
|
|
74
|
-
_lodash.default.defaultsDeep(this, _lodash.default.cloneDeep(DEFAULT_OPTS));
|
|
75
|
-
|
|
76
|
-
if (opts.remoteAdbHost) {
|
|
77
|
-
this.executable.defaultArgs.push('-H', opts.remoteAdbHost);
|
|
78
|
-
this.adbHost = opts.remoteAdbHost;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
if (opts.remoteAdbPort) {
|
|
82
|
-
this.adbPort = opts.remoteAdbPort;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
this.executable.defaultArgs.push('-P', this.adbPort);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
clone(opts = {}) {
|
|
89
|
-
const originalOptions = _lodash.default.cloneDeep(_lodash.default.pick(this, Object.keys(DEFAULT_OPTS)));
|
|
90
|
-
|
|
91
|
-
const cloneOptions = _lodash.default.defaultsDeep(opts, originalOptions);
|
|
92
|
-
|
|
93
|
-
const defaultArgs = cloneOptions.executable.defaultArgs;
|
|
94
|
-
|
|
95
|
-
if (cloneOptions.remoteAdbHost && defaultArgs.includes('-H')) {
|
|
96
|
-
defaultArgs.splice(defaultArgs.indexOf('-H'), 2);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
if (defaultArgs.includes('-P')) {
|
|
100
|
-
defaultArgs.splice(defaultArgs.indexOf('-P'), 2);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
return new ADB(cloneOptions);
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
exports.ADB = ADB;
|
|
109
|
-
|
|
110
|
-
ADB.createADB = async function createADB(opts) {
|
|
111
|
-
const adb = new ADB(opts);
|
|
112
|
-
adb.sdkRoot = await (0, _helpers.requireSdkRoot)(adb.sdkRoot);
|
|
113
|
-
await adb.getAdbWithCorrectAdbPath();
|
|
114
|
-
|
|
115
|
-
try {
|
|
116
|
-
await adb.adbExec(['start-server']);
|
|
117
|
-
} catch (e) {
|
|
118
|
-
_logger.default.warn(e.stderr || e.message);
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
return adb;
|
|
122
|
-
};
|
|
123
|
-
|
|
124
|
-
for (const [fnName, fn] of _lodash.default.toPairs(_index.default)) {
|
|
125
|
-
ADB.prototype[fnName] = fn;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
var _default = ADB;
|
|
129
|
-
exports.default = _default;require('source-map-support').install();
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9hZGIuanMiXSwibmFtZXMiOlsiREVGQVVMVF9BREJfUE9SVCIsIkRFRkFVTFRfT1BUUyIsInNka1Jvb3QiLCJ1ZGlkIiwiYXBwRGV2aWNlUmVhZHlUaW1lb3V0IiwidXNlS2V5c3RvcmUiLCJrZXlzdG9yZVBhdGgiLCJrZXlzdG9yZVBhc3N3b3JkIiwia2V5QWxpYXMiLCJrZXlQYXNzd29yZCIsImV4ZWN1dGFibGUiLCJwYXRoIiwiZGVmYXVsdEFyZ3MiLCJ0bXBEaXIiLCJvcyIsInRtcGRpciIsImN1ckRldmljZUlkIiwiZW11bGF0b3JQb3J0IiwibG9nY2F0IiwiYmluYXJpZXMiLCJpbnN0cnVtZW50UHJvYyIsInN1cHByZXNzS2lsbFNlcnZlciIsImphcnMiLCJhZGJQb3J0IiwiYWRiSG9zdCIsImFkYkV4ZWNUaW1lb3V0IiwiREVGQVVMVF9BREJfRVhFQ19USU1FT1VUIiwicmVtb3RlQXBwc0NhY2hlTGltaXQiLCJidWlsZFRvb2xzVmVyc2lvbiIsImFsbG93T2ZmbGluZURldmljZXMiLCJhbGxvd0RlbGF5QWRiIiwiQURCIiwiY29uc3RydWN0b3IiLCJvcHRzIiwiT2JqZWN0IiwiYXNzaWduIiwiXyIsImRlZmF1bHRzRGVlcCIsImNsb25lRGVlcCIsInJlbW90ZUFkYkhvc3QiLCJwdXNoIiwicmVtb3RlQWRiUG9ydCIsImNsb25lIiwib3JpZ2luYWxPcHRpb25zIiwicGljayIsImtleXMiLCJjbG9uZU9wdGlvbnMiLCJpbmNsdWRlcyIsInNwbGljZSIsImluZGV4T2YiLCJjcmVhdGVBREIiLCJhZGIiLCJnZXRBZGJXaXRoQ29ycmVjdEFkYlBhdGgiLCJhZGJFeGVjIiwiZSIsImxvZyIsIndhcm4iLCJzdGRlcnIiLCJtZXNzYWdlIiwiZm5OYW1lIiwiZm4iLCJ0b1BhaXJzIiwibWV0aG9kcyIsInByb3RvdHlwZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQTs7Ozs7O0FB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ckMsV0FBVyxDQUFDbUMsUUFBWixDQUFxQixJQUFyQixDQUFKLEVBQWdDO0FBQzlCbkMsTUFBQUEsV0FBVyxDQUFDb0MsTUFBWixDQUFtQnBDLFdBQVcsQ0FBQ3FDLE9BQVosQ0FBb0IsSUFBcEIsQ0FBbkIsRUFBOEMsQ0FBOUM7QUFDRDs7QUFFRCxXQUFPLElBQUlsQixHQUFKLENBQVFlLFlBQVIsQ0FBUDtBQUNEOztBQXRDTzs7OztBQXlDVmYsR0FBRyxDQUFDbUIsU0FBSixHQUFnQixlQUFlQSxTQUFmLENBQTBCakIsSUFBMUIsRUFBZ0M7QUFDOUMsUUFBTWtCLEdBQUcsR0FBRyxJQUFJcEIsR0FBSixDQUFRRSxJQUFSLENBQVo7QUFDQWtCLEVBQUFBLEdBQUcsQ0FBQ2pELE9BQUosR0FBYyxNQUFNLDZCQUFlaUQsR0FBRyxDQUFDakQsT0FBbkIsQ0FBcEI7QUFDQSxRQUFNaUQsR0FBRyxDQUFDQyx3QkFBSixFQUFOOztBQUNBLE1BQUk7QUFDRixVQUFNRCxHQUFHLENBQUNFLE9BQUosQ0FBWSxDQUFDLGNBQUQsQ0FBWixDQUFOO0FBQ0QsR0FGRCxDQUVFLE9BQU9DLENBQVAsRUFBVTtBQUNWQyxvQkFBSUMsSUFBSixDQUFTRixDQUFDLENBQUNHLE1BQUYsSUFBWUgsQ0FBQyxDQUFDSSxPQUF2QjtBQUNEOztBQUNELFNBQU9QLEdBQVA7QUFDRCxDQVZEOztBQWFBLEtBQUssTUFBTSxDQUFDUSxNQUFELEVBQVNDLEVBQVQsQ0FBWCxJQUEyQnhCLGdCQUFFeUIsT0FBRixDQUFVQyxjQUFWLENBQTNCLEVBQStDO0FBQzdDL0IsRUFBQUEsR0FBRyxDQUFDZ0MsU0FBSixDQUFjSixNQUFkLElBQXdCQyxFQUF4QjtBQUNEOztlQUVjN0IsRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgb3MgZnJvbSAnb3MnO1xuaW1wb3J0IG1ldGhvZHMsIHsgZ2V0QW5kcm9pZEJpbmFyeVBhdGggfSBmcm9tICcuL3Rvb2xzL2luZGV4LmpzJztcbmltcG9ydCB7XG4gIERFRkFVTFRfQURCX0VYRUNfVElNRU9VVCwgcmVxdWlyZVNka1Jvb3QsIGdldFNka1Jvb3RGcm9tRW52XG59IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyLmpzJztcblxuY29uc3QgREVGQVVMVF9BREJfUE9SVCA9IDUwMzc7XG5jb25zdCBERUZBVUxUX09QVFMgPSB7XG4gIHNka1Jvb3Q6IGdldFNka1Jvb3RGcm9tRW52KCkgfHwgbnVsbCxcbiAgdWRpZDogbnVsbCxcbiAgYXBwRGV2aWNlUmVhZHlUaW1lb3V0OiBudWxsLFxuICB1c2VLZXlzdG9yZTogbnVsbCxcbiAga2V5c3RvcmVQYXRoOiBudWxsLFxuICBrZXlzdG9yZVBhc3N3b3JkOiBudWxsLFxuICBrZXlBbGlhczogbnVsbCxcbiAga2V5UGFzc3dvcmQ6IG51bGwsXG4gIGV4ZWN1dGFibGU6IHtwYXRoOiAnYWRiJywgZGVmYXVsdEFyZ3M6IFtdfSxcbiAgdG1wRGlyOiBvcy50bXBkaXIoKSxcbiAgY3VyRGV2aWNlSWQ6IG51bGwsXG4gIGVtdWxhdG9yUG9ydDogbnVsbCxcbiAgbG9nY2F0OiBudWxsLFxuICBiaW5hcmllczoge30sXG4gIGluc3RydW1lbnRQcm9jOiBudWxsLFxuICBzdXBwcmVzc0tpbGxTZXJ2ZXI6IG51bGwsXG4gIGphcnM6IHt9LFxuICBhZGJQb3J0OiBERUZBVUxUX0FEQl9QT1JULFxuICBhZGJIb3N0OiBudWxsLFxuICBhZGJFeGVjVGltZW91dDogREVGQVVMVF9BREJfRVhFQ19USU1FT1VULFxuICByZW1vdGVBcHBzQ2FjaGVMaW1pdDogMTAsXG4gIGJ1aWxkVG9vbHNWZXJzaW9uOiBudWxsLFxuICBhbGxvd09mZmxpbmVEZXZpY2VzOiBmYWxzZSxcbiAgYWxsb3dEZWxheUFkYjogdHJ1ZSxcbn07XG5cbmNsYXNzIEFEQiB7XG4gIGNvbnN0cnVjdG9yIChvcHRzID0ge30pIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIG9wdHMpO1xuICAgIF8uZGVmYXVsdHNEZWVwKHRoaXMsIF8uY2xvbmVEZWVwKERFRkFVTFRfT1BUUykpO1xuXG4gICAgaWYgKG9wdHMucmVtb3RlQWRiSG9zdCkge1xuICAgICAgdGhpcy5leGVjdXRhYmxlLmRlZmF1bHRBcmdzLnB1c2goJy1IJywgb3B0cy5yZW1vdGVBZGJIb3N0KTtcbiAgICAgIHRoaXMuYWRiSG9zdCA9IG9wdHMucmVtb3RlQWRiSG9zdDtcbiAgICB9XG4gICAgLy8gVE9ETyBmaWd1cmUgb3V0IHdoeSB3ZSBoYXZlIHRoaXMgb3B0aW9uIGFzIGl0IGRvZXMgbm90IGFwcGVhciB0byBiZVxuICAgIC8vIHVzZWQgYW55d2hlcmUuIFByb2JhYmx5IGRlcHJlY2F0ZSBpbiBmYXZvciBvZiBzaW1wbGUgb3B0cy5hZGJQb3J0XG4gICAgaWYgKG9wdHMucmVtb3RlQWRiUG9ydCkge1xuICAgICAgdGhpcy5hZGJQb3J0ID0gb3B0cy5yZW1vdGVBZGJQb3J0O1xuICAgIH1cbiAgICB0aGlzLmV4ZWN1dGFibGUuZGVmYXVsdEFyZ3MucHVzaCgnLVAnLCB0aGlzLmFkYlBvcnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBpbnN0YW5jZSBvZiBgQURCYCB0aGF0IGluaGVyaXRzIGNvbmZpZ3VyYXRpb24gZnJvbSB0aGlzIGBBREJgIGluc3RhbmNlLlxuICAgKiBUaGlzIGF2b2lkcyB0aGUgbmVlZCB0byBjYWxsIGBBREIuY3JlYXRlQURCKClgIG11bHRpcGxlIHRpbWVzLlxuICAgKiBAcGFyYW0ge29iamVjdH0gb3B0cyAtIEFkZGl0aW9uYWwgb3B0aW9ucyBtYXBwaW5nIHRvIHBhc3MgdG8gdGhlIGBBREJgIGNvbnN0cnVjdG9yLlxuICAgKiBAcmV0dXJucyB7QURCfSBUaGUgcmVzdWx0aW5nIGNsYXNzIGluc3RhbmNlLlxuICAgKi9cbiAgY2xvbmUgKG9wdHMgPSB7fSkge1xuICAgIGNvbnN0IG9yaWdpbmFsT3B0aW9ucyA9IF8uY2xvbmVEZWVwKF8ucGljayh0aGlzLCBPYmplY3Qua2V5cyhERUZBVUxUX09QVFMpKSk7XG4gICAgY29uc3QgY2xvbmVPcHRpb25zID0gXy5kZWZhdWx0c0RlZXAob3B0cywgb3JpZ2luYWxPcHRpb25zKTtcblxuICAgIC8vIFJlc2V0IGRlZmF1bHQgYXJndW1lbnRzIGNyZWF0ZWQgaW4gdGhlIGNvbnN0cnVjdG9yLlxuICAgIC8vIFdpdGhvdXQgdGhpcyBjb2RlLCAtSCBhbmQgLVAgY2FuIGJlIGluamVjdGVkIGludG8gZGVmYXVsdEFyZ3MgbXVsdGlwbGUgdGltZXMuXG4gICAgY29uc3QgZGVmYXVsdEFyZ3MgPSBjbG9uZU9wdGlvbnMuZXhlY3V0YWJsZS5kZWZhdWx0QXJncztcbiAgICBpZiAoY2xvbmVPcHRpb25zLnJlbW90ZUFkYkhvc3QgJiYgZGVmYXVsdEFyZ3MuaW5jbHVkZXMoJy1IJykpIHtcbiAgICAgIGRlZmF1bHRBcmdzLnNwbGljZShkZWZhdWx0QXJncy5pbmRleE9mKCctSCcpLCAyKTtcbiAgICB9XG4gICAgaWYgKGRlZmF1bHRBcmdzLmluY2x1ZGVzKCctUCcpKSB7XG4gICAgICBkZWZhdWx0QXJncy5zcGxpY2UoZGVmYXVsdEFyZ3MuaW5kZXhPZignLVAnKSwgMik7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBBREIoY2xvbmVPcHRpb25zKTtcbiAgfVxufVxuXG5BREIuY3JlYXRlQURCID0gYXN5bmMgZnVuY3Rpb24gY3JlYXRlQURCIChvcHRzKSB7XG4gIGNvbnN0IGFkYiA9IG5ldyBBREIob3B0cyk7XG4gIGFkYi5zZGtSb290ID0gYXdhaXQgcmVxdWlyZVNka1Jvb3QoYWRiLnNka1Jvb3QpO1xuICBhd2FpdCBhZGIuZ2V0QWRiV2l0aENvcnJlY3RBZGJQYXRoKCk7XG4gIHRyeSB7XG4gICAgYXdhaXQgYWRiLmFkYkV4ZWMoWydzdGFydC1zZXJ2ZXInXSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2cud2FybihlLnN0ZGVyciB8fCBlLm1lc3NhZ2UpO1xuICB9XG4gIHJldHVybiBhZGI7XG59O1xuXG4vLyBhZGQgYWxsIHRoZSBtZXRob2RzIHRvIHRoZSBBREIgcHJvdG90eXBlXG5mb3IgKGNvbnN0IFtmbk5hbWUsIGZuXSBvZiBfLnRvUGFpcnMobWV0aG9kcykpIHtcbiAgQURCLnByb3RvdHlwZVtmbk5hbWVdID0gZm47XG59XG5cbmV4cG9ydCBkZWZhdWx0IEFEQjtcbmV4cG9ydCB7IEFEQiwgREVGQVVMVF9BREJfUE9SVCwgZ2V0QW5kcm9pZEJpbmFyeVBhdGgsIGdldFNka1Jvb3RGcm9tRW52IH07XG4iXSwiZmlsZSI6ImxpYi9hZGIuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
|