appium-adb 15.0.9 → 16.0.0
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/CHANGELOG.md +10 -0
- package/build/lib/adb.d.ts +22 -22
- package/build/lib/adb.d.ts.map +1 -1
- package/build/lib/adb.js +33 -73
- package/build/lib/adb.js.map +1 -1
- package/build/lib/index.d.ts +6 -6
- package/build/lib/index.d.ts.map +1 -1
- package/build/lib/index.js +5 -24
- package/build/lib/index.js.map +1 -1
- package/build/lib/logcat.d.ts +2 -2
- package/build/lib/logcat.d.ts.map +1 -1
- package/build/lib/logcat.js +11 -15
- package/build/lib/logcat.js.map +1 -1
- package/build/lib/logger.js +2 -5
- package/build/lib/logger.js.map +1 -1
- package/build/lib/options.js +1 -2
- package/build/lib/tools/aab-utils.d.ts +2 -2
- package/build/lib/tools/aab-utils.d.ts.map +1 -1
- package/build/lib/tools/aab-utils.js +37 -43
- package/build/lib/tools/aab-utils.js.map +1 -1
- package/build/lib/tools/android-manifest.d.ts +2 -2
- package/build/lib/tools/android-manifest.d.ts.map +1 -1
- package/build/lib/tools/android-manifest.js +59 -71
- package/build/lib/tools/android-manifest.js.map +1 -1
- package/build/lib/tools/apk-signing.d.ts +2 -2
- package/build/lib/tools/apk-signing.d.ts.map +1 -1
- package/build/lib/tools/apk-signing.js +81 -95
- package/build/lib/tools/apk-signing.js.map +1 -1
- package/build/lib/tools/apk-utils.d.ts +2 -2
- package/build/lib/tools/apk-utils.d.ts.map +1 -1
- package/build/lib/tools/apk-utils.js +97 -146
- package/build/lib/tools/apk-utils.js.map +1 -1
- package/build/lib/tools/apks-utils.d.ts +2 -2
- package/build/lib/tools/apks-utils.d.ts.map +1 -1
- package/build/lib/tools/apks-utils.js +42 -54
- package/build/lib/tools/apks-utils.js.map +1 -1
- package/build/lib/tools/app-commands.d.ts +2 -2
- package/build/lib/tools/app-commands.d.ts.map +1 -1
- package/build/lib/tools/app-commands.js +97 -136
- package/build/lib/tools/app-commands.js.map +1 -1
- package/build/lib/tools/device-settings.d.ts +2 -2
- package/build/lib/tools/device-settings.d.ts.map +1 -1
- package/build/lib/tools/device-settings.js +61 -103
- package/build/lib/tools/device-settings.js.map +1 -1
- package/build/lib/tools/emu-constants.js +6 -9
- package/build/lib/tools/emu-constants.js.map +1 -1
- package/build/lib/tools/emulator-commands.d.ts +2 -2
- package/build/lib/tools/emulator-commands.d.ts.map +1 -1
- package/build/lib/tools/emulator-commands.js +42 -98
- package/build/lib/tools/emulator-commands.js.map +1 -1
- package/build/lib/tools/fs-commands.d.ts +1 -1
- package/build/lib/tools/fs-commands.d.ts.map +1 -1
- package/build/lib/tools/fs-commands.js +9 -21
- package/build/lib/tools/fs-commands.js.map +1 -1
- package/build/lib/tools/general-commands.d.ts +2 -2
- package/build/lib/tools/general-commands.d.ts.map +1 -1
- package/build/lib/tools/general-commands.js +36 -56
- package/build/lib/tools/general-commands.js.map +1 -1
- package/build/lib/tools/keyboard-commands.d.ts +2 -2
- package/build/lib/tools/keyboard-commands.d.ts.map +1 -1
- package/build/lib/tools/keyboard-commands.js +17 -30
- package/build/lib/tools/keyboard-commands.js.map +1 -1
- package/build/lib/tools/lockmgmt.d.ts +1 -1
- package/build/lib/tools/lockmgmt.d.ts.map +1 -1
- package/build/lib/tools/lockmgmt.js +25 -38
- package/build/lib/tools/lockmgmt.js.map +1 -1
- package/build/lib/tools/logcat-commands.d.ts +2 -2
- package/build/lib/tools/logcat-commands.d.ts.map +1 -1
- package/build/lib/tools/logcat-commands.js +7 -14
- package/build/lib/tools/logcat-commands.js.map +1 -1
- package/build/lib/tools/network-commands.d.ts +2 -2
- package/build/lib/tools/network-commands.d.ts.map +1 -1
- package/build/lib/tools/network-commands.js +22 -33
- package/build/lib/tools/network-commands.js.map +1 -1
- package/build/lib/tools/process-commands.d.ts +1 -1
- package/build/lib/tools/process-commands.d.ts.map +1 -1
- package/build/lib/tools/process-commands.js +18 -26
- package/build/lib/tools/process-commands.js.map +1 -1
- package/build/lib/tools/system-calls.d.ts +2 -2
- package/build/lib/tools/system-calls.d.ts.map +1 -1
- package/build/lib/tools/system-calls.js +182 -256
- package/build/lib/tools/system-calls.js.map +1 -1
- package/build/lib/tools/types.d.ts +1 -1
- package/build/lib/tools/types.d.ts.map +1 -1
- package/build/lib/tools/types.js +1 -2
- package/build/lib/types.d.ts +2 -2
- package/build/lib/types.d.ts.map +1 -1
- package/build/lib/types.js +1 -2
- package/build/lib/utils/helpers/constants.js +5 -8
- package/build/lib/utils/helpers/constants.js.map +1 -1
- package/build/lib/utils/helpers/index.d.ts +5 -5
- package/build/lib/utils/helpers/index.d.ts.map +1 -1
- package/build/lib/utils/helpers/index.js +5 -20
- package/build/lib/utils/helpers/index.js.map +1 -1
- package/build/lib/utils/helpers/install.js +5 -8
- package/build/lib/utils/helpers/install.js.map +1 -1
- package/build/lib/utils/helpers/manifest.d.ts +2 -2
- package/build/lib/utils/helpers/manifest.d.ts.map +1 -1
- package/build/lib/utils/helpers/manifest.js +6 -9
- package/build/lib/utils/helpers/manifest.js.map +1 -1
- package/build/lib/utils/helpers/resource.d.ts.map +1 -1
- package/build/lib/utils/helpers/resource.js +22 -28
- package/build/lib/utils/helpers/resource.js.map +1 -1
- package/build/lib/utils/helpers/sdk.js +17 -25
- package/build/lib/utils/helpers/sdk.js.map +1 -1
- package/build/lib/utils/index.d.ts +2 -2
- package/build/lib/utils/index.d.ts.map +1 -1
- package/build/lib/utils/index.js +21 -57
- package/build/lib/utils/index.js.map +1 -1
- package/build/lib/utils/lodash/core.js +9 -18
- package/build/lib/utils/lodash/core.js.map +1 -1
- package/build/lib/utils/lodash/index.d.ts +1 -1
- package/build/lib/utils/lodash/index.d.ts.map +1 -1
- package/build/lib/utils/lodash/index.js +1 -17
- package/build/lib/utils/lodash/index.js.map +1 -1
- package/lib/adb.ts +22 -22
- package/lib/index.ts +6 -6
- package/lib/logcat.ts +2 -2
- package/lib/tools/aab-utils.ts +4 -4
- package/lib/tools/android-manifest.ts +4 -4
- package/lib/tools/apk-signing.ts +4 -4
- package/lib/tools/apk-utils.ts +4 -4
- package/lib/tools/apks-utils.ts +4 -4
- package/lib/tools/app-commands.ts +4 -4
- package/lib/tools/device-settings.ts +3 -3
- package/lib/tools/emulator-commands.ts +3 -3
- package/lib/tools/fs-commands.ts +1 -1
- package/lib/tools/general-commands.ts +4 -4
- package/lib/tools/keyboard-commands.ts +3 -3
- package/lib/tools/lockmgmt.ts +2 -2
- package/lib/tools/logcat-commands.ts +3 -3
- package/lib/tools/network-commands.ts +3 -3
- package/lib/tools/process-commands.ts +2 -2
- package/lib/tools/system-calls.ts +10 -4
- package/lib/tools/types.ts +1 -1
- package/lib/types.ts +2 -2
- package/lib/utils/helpers/index.ts +5 -5
- package/lib/utils/helpers/install.ts +1 -1
- package/lib/utils/helpers/manifest.ts +3 -3
- package/lib/utils/helpers/resource.ts +4 -6
- package/lib/utils/index.ts +3 -3
- package/lib/utils/lodash/index.ts +1 -1
- package/package.json +13 -4
|
@@ -1,35 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const
|
|
9
|
-
const support_1 = require("@appium/support");
|
|
10
|
-
const lru_cache_1 = require("lru-cache");
|
|
11
|
-
const async_lock_1 = __importDefault(require("async-lock"));
|
|
12
|
-
const node_crypto_1 = __importDefault(require("node:crypto"));
|
|
13
|
-
const utils_1 = require("../utils");
|
|
14
|
-
const AAB_CACHE = new lru_cache_1.LRUCache({
|
|
1
|
+
import { log } from '../logger.js';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { fs, tempDir, util } from '@appium/support';
|
|
4
|
+
import { LRUCache } from 'lru-cache';
|
|
5
|
+
import AsyncLock from 'async-lock';
|
|
6
|
+
import crypto from 'node:crypto';
|
|
7
|
+
import { unzipFile } from '../utils/index.js';
|
|
8
|
+
const AAB_CACHE = new LRUCache({
|
|
15
9
|
max: 10,
|
|
16
|
-
dispose: (extractedFilesRoot) =>
|
|
10
|
+
dispose: (extractedFilesRoot) => fs.rimraf(extractedFilesRoot),
|
|
17
11
|
});
|
|
18
|
-
const AAB_CACHE_GUARD = new
|
|
12
|
+
const AAB_CACHE_GUARD = new AsyncLock();
|
|
19
13
|
const UNIVERSAL_APK = 'universal.apk';
|
|
20
14
|
process.on('exit', () => {
|
|
21
15
|
if (!AAB_CACHE.size) {
|
|
22
16
|
return;
|
|
23
17
|
}
|
|
24
18
|
const paths = [...AAB_CACHE.values()];
|
|
25
|
-
|
|
19
|
+
log.debug(`Performing cleanup of ${paths.length} cached .aab ` + util.pluralize('package', paths.length));
|
|
26
20
|
for (const appPath of paths) {
|
|
27
21
|
try {
|
|
28
22
|
// Asynchronous calls are not supported in onExit handler
|
|
29
|
-
|
|
23
|
+
fs.rimrafSync(appPath);
|
|
30
24
|
}
|
|
31
25
|
catch (e) {
|
|
32
|
-
|
|
26
|
+
log.warn(e.message);
|
|
33
27
|
}
|
|
34
28
|
}
|
|
35
29
|
});
|
|
@@ -44,38 +38,38 @@ process.on('exit', () => {
|
|
|
44
38
|
* by default.
|
|
45
39
|
* @throws {Error} If there was an error while creating the universal .apk
|
|
46
40
|
*/
|
|
47
|
-
async function extractUniversalApk(aabPath, opts = {}) {
|
|
48
|
-
if (!(await
|
|
41
|
+
export async function extractUniversalApk(aabPath, opts = {}) {
|
|
42
|
+
if (!(await fs.exists(aabPath))) {
|
|
49
43
|
throw new Error(`The file at '${aabPath}' either does not exist or is not accessible`);
|
|
50
44
|
}
|
|
51
|
-
const aabName =
|
|
52
|
-
const apkName = aabName.substring(0, aabName.length -
|
|
53
|
-
const tmpRoot = await
|
|
54
|
-
const tmpApksPath =
|
|
45
|
+
const aabName = path.basename(aabPath);
|
|
46
|
+
const apkName = aabName.substring(0, aabName.length - path.extname(aabName).length) + '.apk';
|
|
47
|
+
const tmpRoot = await tempDir.openDir();
|
|
48
|
+
const tmpApksPath = path.join(tmpRoot, `${aabName}.apks`);
|
|
55
49
|
try {
|
|
56
50
|
return await AAB_CACHE_GUARD.acquire(aabPath, async () => {
|
|
57
|
-
const aabHash = await
|
|
51
|
+
const aabHash = await fs.hash(aabPath);
|
|
58
52
|
const { keystore, keystorePassword, keyAlias, keyPassword } = opts;
|
|
59
53
|
let cacheHash = aabHash;
|
|
60
54
|
if (keystore) {
|
|
61
|
-
if (!(await
|
|
55
|
+
if (!(await fs.exists(keystore))) {
|
|
62
56
|
throw new Error(`The keystore file at '${keystore}' either does not exist ` + `or is not accessible`);
|
|
63
57
|
}
|
|
64
58
|
if (!keystorePassword || !keyAlias || !keyPassword) {
|
|
65
59
|
throw new Error('It is mandatory to also provide keystore password, key alias, ' +
|
|
66
60
|
'and key password if the keystore path is set');
|
|
67
61
|
}
|
|
68
|
-
const keystoreHash = await
|
|
69
|
-
const keyAliasHash =
|
|
62
|
+
const keystoreHash = await fs.hash(keystore);
|
|
63
|
+
const keyAliasHash = crypto.createHash('sha1');
|
|
70
64
|
keyAliasHash.update(keyAlias);
|
|
71
65
|
cacheHash = [cacheHash, keystoreHash, keyAliasHash.digest('hex')].join(':');
|
|
72
66
|
}
|
|
73
|
-
|
|
67
|
+
log.debug(`Calculated the cache key for '${aabPath}': ${cacheHash}`);
|
|
74
68
|
if (AAB_CACHE.has(cacheHash)) {
|
|
75
69
|
const cachedRoot = AAB_CACHE.get(cacheHash);
|
|
76
70
|
if (cachedRoot) {
|
|
77
|
-
const resultPath =
|
|
78
|
-
if (await
|
|
71
|
+
const resultPath = path.resolve(cachedRoot, apkName);
|
|
72
|
+
if (await fs.exists(resultPath)) {
|
|
79
73
|
return resultPath;
|
|
80
74
|
}
|
|
81
75
|
}
|
|
@@ -105,20 +99,20 @@ async function extractUniversalApk(aabPath, opts = {}) {
|
|
|
105
99
|
: []),
|
|
106
100
|
'--mode=universal',
|
|
107
101
|
];
|
|
108
|
-
|
|
102
|
+
log.debug(`Preparing universal .apks bundle from '${aabPath}'`);
|
|
109
103
|
await this.execBundletool(args, `Cannot build a universal .apks bundle from '${aabPath}'`);
|
|
110
|
-
|
|
111
|
-
await
|
|
104
|
+
log.debug(`Unpacking universal application bundle at '${tmpApksPath}' to '${tmpRoot}'`);
|
|
105
|
+
await unzipFile(tmpApksPath, tmpRoot);
|
|
112
106
|
let universalApkPath;
|
|
113
107
|
const fileDeletionPromises = [];
|
|
114
|
-
const allFileNames = await
|
|
108
|
+
const allFileNames = await fs.readdir(tmpRoot);
|
|
115
109
|
for (const fileName of allFileNames) {
|
|
116
|
-
const fullPath =
|
|
110
|
+
const fullPath = path.join(tmpRoot, fileName);
|
|
117
111
|
if (fileName === UNIVERSAL_APK) {
|
|
118
112
|
universalApkPath = fullPath;
|
|
119
113
|
}
|
|
120
114
|
else {
|
|
121
|
-
fileDeletionPromises.push(
|
|
115
|
+
fileDeletionPromises.push(fs.rimraf(fullPath));
|
|
122
116
|
}
|
|
123
117
|
}
|
|
124
118
|
try {
|
|
@@ -126,19 +120,19 @@ async function extractUniversalApk(aabPath, opts = {}) {
|
|
|
126
120
|
}
|
|
127
121
|
catch { }
|
|
128
122
|
if (!universalApkPath) {
|
|
129
|
-
|
|
123
|
+
log.debug(`The following items were extracted from the .aab bundle: ${allFileNames}`);
|
|
130
124
|
throw new Error(`${UNIVERSAL_APK} cannot be found in '${aabPath}' bundle. ` +
|
|
131
125
|
`Does the archive contain a valid application bundle?`);
|
|
132
126
|
}
|
|
133
|
-
const resultPath =
|
|
134
|
-
|
|
135
|
-
await
|
|
127
|
+
const resultPath = path.join(tmpRoot, apkName);
|
|
128
|
+
log.debug(`Found ${UNIVERSAL_APK} at '${universalApkPath}'. Caching it to '${resultPath}'`);
|
|
129
|
+
await fs.mv(universalApkPath, resultPath);
|
|
136
130
|
AAB_CACHE.set(cacheHash, tmpRoot);
|
|
137
131
|
return resultPath;
|
|
138
132
|
});
|
|
139
133
|
}
|
|
140
134
|
catch (e) {
|
|
141
|
-
await
|
|
135
|
+
await fs.rimraf(tmpRoot);
|
|
142
136
|
throw e;
|
|
143
137
|
}
|
|
144
138
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aab-utils.js","sourceRoot":"","sources":["../../../lib/tools/aab-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"aab-utils.js","sourceRoot":"","sources":["../../../lib/tools/aab-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ADB } from '../adb';
|
|
2
|
-
import type { APKInfo, PlatformInfo } from './types';
|
|
1
|
+
import type { ADB } from '../adb.js';
|
|
2
|
+
import type { APKInfo, PlatformInfo } from './types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Extract package and main activity name from application manifest.
|
|
5
5
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"android-manifest.d.ts","sourceRoot":"","sources":["../../../lib/tools/android-manifest.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"android-manifest.d.ts","sourceRoot":"","sources":["../../../lib/tools/android-manifest.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,WAAW,CAAC;AACnC,OAAO,KAAK,EAAC,OAAO,EAAE,YAAY,EAAe,MAAM,YAAY,CAAC;AAGpE;;;;;;;GAOG;AACH,wBAAsB,oCAAoC,CACxD,IAAI,EAAE,GAAG,EACT,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,CAYlB;AAED;;;;;;;GAOG;AACH,wBAAsB,4BAA4B,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAe9F;AAED;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,GAAG,EACT,GAAG,EAAE,MAAM,EACX,SAAS,GAAE,MAAM,GAAG,IAAW,GAC9B,OAAO,CAAC,MAAM,CAAC,CAMjB;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,GAAG,EACT,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAgEf;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,GAAG,EACT,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAuCf;AAED;;;;;GAKG;AACH,wBAAsB,iCAAiC,CACrD,IAAI,EAAE,GAAG,EACT,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,CAQlB;AAID;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAmCtF"}
|
|
@@ -1,20 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
exports.packageAndLaunchActivityFromManifest = packageAndLaunchActivityFromManifest;
|
|
7
|
-
exports.targetSdkVersionFromManifest = targetSdkVersionFromManifest;
|
|
8
|
-
exports.targetSdkVersionUsingPKG = targetSdkVersionUsingPKG;
|
|
9
|
-
exports.compileManifest = compileManifest;
|
|
10
|
-
exports.insertManifest = insertManifest;
|
|
11
|
-
exports.hasInternetPermissionFromManifest = hasInternetPermissionFromManifest;
|
|
12
|
-
exports.getAndroidPlatformAndPath = getAndroidPlatformAndPath;
|
|
13
|
-
const teen_process_1 = require("teen_process");
|
|
14
|
-
const logger_1 = require("../logger");
|
|
15
|
-
const support_1 = require("@appium/support");
|
|
16
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
17
|
-
const utils_1 = require("../utils");
|
|
1
|
+
import { exec } from 'teen_process';
|
|
2
|
+
import { log } from '../logger.js';
|
|
3
|
+
import { fs, zip, tempDir, util } from '@appium/support';
|
|
4
|
+
import path from 'node:path';
|
|
5
|
+
import { APKS_EXTENSION, readPackageManifest, unzipFile } from '../utils/index.js';
|
|
18
6
|
/**
|
|
19
7
|
* Extract package and main activity name from application manifest.
|
|
20
8
|
*
|
|
@@ -23,13 +11,13 @@ const utils_1 = require("../utils");
|
|
|
23
11
|
* @throws {error} If there was an error while getting the data from the given
|
|
24
12
|
* application package.
|
|
25
13
|
*/
|
|
26
|
-
async function packageAndLaunchActivityFromManifest(appPath) {
|
|
27
|
-
if (appPath.endsWith(
|
|
14
|
+
export async function packageAndLaunchActivityFromManifest(appPath) {
|
|
15
|
+
if (appPath.endsWith(APKS_EXTENSION)) {
|
|
28
16
|
appPath = await this.extractBaseApk(appPath);
|
|
29
17
|
}
|
|
30
|
-
const { name: apkPackage, launchableActivity: { name: apkActivity }, } = await
|
|
31
|
-
|
|
32
|
-
|
|
18
|
+
const { name: apkPackage, launchableActivity: { name: apkActivity }, } = await readPackageManifest.bind(this)(appPath);
|
|
19
|
+
log.info(`Package name: '${apkPackage}'`);
|
|
20
|
+
log.info(`Main activity name: '${apkActivity}'`);
|
|
33
21
|
return { apkPackage, apkActivity };
|
|
34
22
|
}
|
|
35
23
|
/**
|
|
@@ -40,13 +28,13 @@ async function packageAndLaunchActivityFromManifest(appPath) {
|
|
|
40
28
|
* @throws {error} If there was an error while getting the data from the given
|
|
41
29
|
* application package.
|
|
42
30
|
*/
|
|
43
|
-
async function targetSdkVersionFromManifest(appPath) {
|
|
44
|
-
|
|
31
|
+
export async function targetSdkVersionFromManifest(appPath) {
|
|
32
|
+
log.debug(`Extracting target SDK version of '${appPath}'`);
|
|
45
33
|
const originalAppPath = appPath;
|
|
46
|
-
if (appPath.endsWith(
|
|
34
|
+
if (appPath.endsWith(APKS_EXTENSION)) {
|
|
47
35
|
appPath = await this.extractBaseApk(appPath);
|
|
48
36
|
}
|
|
49
|
-
const { targetSdkVersion } = await
|
|
37
|
+
const { targetSdkVersion } = await readPackageManifest.bind(this)(appPath);
|
|
50
38
|
if (!targetSdkVersion) {
|
|
51
39
|
throw new Error(`Cannot extract targetSdkVersion of '${originalAppPath}'. Does ` +
|
|
52
40
|
`the package manifest define it?`);
|
|
@@ -61,7 +49,7 @@ async function targetSdkVersionFromManifest(appPath) {
|
|
|
61
49
|
* _dumpsys package_ command. It may speed up the method execution.
|
|
62
50
|
* @return The version of the target SDK.
|
|
63
51
|
*/
|
|
64
|
-
async function targetSdkVersionUsingPKG(pkg, cmdOutput = null) {
|
|
52
|
+
export async function targetSdkVersionUsingPKG(pkg, cmdOutput = null) {
|
|
65
53
|
const stdout = cmdOutput || (await this.shell(['dumpsys', 'package', pkg]));
|
|
66
54
|
const targetSdkVersionMatch = new RegExp(/targetSdk=([^\s\s]+)/g).exec(stdout);
|
|
67
55
|
return targetSdkVersionMatch && targetSdkVersionMatch.length >= 2
|
|
@@ -77,15 +65,15 @@ async function targetSdkVersionUsingPKG(pkg, cmdOutput = null) {
|
|
|
77
65
|
* @param manifestPackage - The name of the manifest package
|
|
78
66
|
* @param targetPackage - The name of the destination package
|
|
79
67
|
*/
|
|
80
|
-
async function compileManifest(manifest, manifestPackage, targetPackage) {
|
|
68
|
+
export async function compileManifest(manifest, manifestPackage, targetPackage) {
|
|
81
69
|
const { platform, platformPath } = await getAndroidPlatformAndPath(this.sdkRoot);
|
|
82
70
|
if (!platform || !platformPath) {
|
|
83
71
|
throw new Error('Cannot compile the manifest. The required platform does not exist (API level >= 17)');
|
|
84
72
|
}
|
|
85
73
|
const resultPath = `${manifest}.apk`;
|
|
86
|
-
const androidJarPath =
|
|
87
|
-
if (await
|
|
88
|
-
await
|
|
74
|
+
const androidJarPath = path.resolve(platformPath, 'android.jar');
|
|
75
|
+
if (await fs.exists(resultPath)) {
|
|
76
|
+
await fs.rimraf(resultPath);
|
|
89
77
|
}
|
|
90
78
|
try {
|
|
91
79
|
await this.initAapt2();
|
|
@@ -105,11 +93,11 @@ async function compileManifest(manifest, manifestPackage, targetPackage) {
|
|
|
105
93
|
androidJarPath,
|
|
106
94
|
'-v',
|
|
107
95
|
];
|
|
108
|
-
|
|
109
|
-
await
|
|
96
|
+
log.debug(`Compiling the manifest using '${util.quote([binaries.aapt2, ...args])}'`);
|
|
97
|
+
await exec(binaries.aapt2, args);
|
|
110
98
|
}
|
|
111
99
|
catch (e) {
|
|
112
|
-
|
|
100
|
+
log.debug('Cannot compile the manifest using aapt2. Defaulting to aapt. ' +
|
|
113
101
|
`Original error: ${e.message || e.stderr}`);
|
|
114
102
|
await this.initAapt();
|
|
115
103
|
const binaries = this.binaries;
|
|
@@ -127,15 +115,15 @@ async function compileManifest(manifest, manifestPackage, targetPackage) {
|
|
|
127
115
|
resultPath,
|
|
128
116
|
'-f',
|
|
129
117
|
];
|
|
130
|
-
|
|
118
|
+
log.debug(`Compiling the manifest using '${util.quote([binaries.aapt, ...args])}'`);
|
|
131
119
|
try {
|
|
132
|
-
await
|
|
120
|
+
await exec(binaries.aapt, args);
|
|
133
121
|
}
|
|
134
122
|
catch (e1) {
|
|
135
123
|
throw new Error(`Cannot compile the manifest. Original error: ${e1.message || e1.stderr}`, { cause: e1 });
|
|
136
124
|
}
|
|
137
125
|
}
|
|
138
|
-
|
|
126
|
+
log.debug(`Compiled the manifest at '${resultPath}'`);
|
|
139
127
|
}
|
|
140
128
|
/**
|
|
141
129
|
* Replace/insert the specially precompiled manifest file into the
|
|
@@ -150,46 +138,46 @@ async function compileManifest(manifest, manifestPackage, targetPackage) {
|
|
|
150
138
|
* @param dstApk - Full path to the resulting package.
|
|
151
139
|
* The file will be overridden if it already exists.
|
|
152
140
|
*/
|
|
153
|
-
async function insertManifest(manifest, srcApk, dstApk) {
|
|
154
|
-
|
|
155
|
-
await
|
|
156
|
-
await
|
|
157
|
-
const manifestName =
|
|
141
|
+
export async function insertManifest(manifest, srcApk, dstApk) {
|
|
142
|
+
log.debug(`Inserting manifest '${manifest}', src: '${srcApk}', dst: '${dstApk}'`);
|
|
143
|
+
await zip.assertValidZip(srcApk);
|
|
144
|
+
await unzipFile(`${manifest}.apk`);
|
|
145
|
+
const manifestName = path.basename(manifest);
|
|
158
146
|
try {
|
|
159
147
|
await this.initAapt();
|
|
160
148
|
const binaries = this.binaries;
|
|
161
|
-
await
|
|
162
|
-
|
|
149
|
+
await fs.copyFile(srcApk, dstApk);
|
|
150
|
+
log.debug('Moving manifest');
|
|
163
151
|
try {
|
|
164
|
-
await
|
|
152
|
+
await exec(binaries.aapt, ['remove', dstApk, manifestName]);
|
|
165
153
|
}
|
|
166
154
|
catch { }
|
|
167
|
-
await
|
|
168
|
-
cwd:
|
|
155
|
+
await exec(binaries.aapt, ['add', dstApk, manifestName], {
|
|
156
|
+
cwd: path.dirname(manifest),
|
|
169
157
|
});
|
|
170
158
|
}
|
|
171
159
|
catch (e) {
|
|
172
|
-
|
|
160
|
+
log.debug('Cannot insert manifest using aapt. Defaulting to zip. ' +
|
|
173
161
|
`Original error: ${e.message || e.stderr}`);
|
|
174
|
-
const tmpRoot = await
|
|
162
|
+
const tmpRoot = await tempDir.openDir();
|
|
175
163
|
try {
|
|
176
164
|
// Unfortunately NodeJS does not provide any reliable methods
|
|
177
165
|
// to replace files inside zip archives without loading the
|
|
178
166
|
// whole archive content into RAM
|
|
179
|
-
|
|
180
|
-
await
|
|
181
|
-
|
|
182
|
-
await
|
|
183
|
-
|
|
184
|
-
await
|
|
167
|
+
log.debug(`Extracting the source apk at '${srcApk}'`);
|
|
168
|
+
await zip.extractAllTo(srcApk, tmpRoot);
|
|
169
|
+
log.debug('Moving manifest');
|
|
170
|
+
await fs.mv(manifest, path.resolve(tmpRoot, manifestName));
|
|
171
|
+
log.debug(`Collecting the destination apk at '${dstApk}'`);
|
|
172
|
+
await zip.toArchive(dstApk, {
|
|
185
173
|
cwd: tmpRoot,
|
|
186
174
|
});
|
|
187
175
|
}
|
|
188
176
|
finally {
|
|
189
|
-
await
|
|
177
|
+
await fs.rimraf(tmpRoot);
|
|
190
178
|
}
|
|
191
179
|
}
|
|
192
|
-
|
|
180
|
+
log.debug(`Manifest insertion into '${dstApk}' is completed`);
|
|
193
181
|
}
|
|
194
182
|
/**
|
|
195
183
|
* Check whether package manifest contains Internet permissions.
|
|
@@ -197,12 +185,12 @@ async function insertManifest(manifest, srcApk, dstApk) {
|
|
|
197
185
|
* @param appPath - The full path to .apk(s) package.
|
|
198
186
|
* @return True if the manifest requires Internet access permission.
|
|
199
187
|
*/
|
|
200
|
-
async function hasInternetPermissionFromManifest(appPath) {
|
|
201
|
-
|
|
202
|
-
if (appPath.endsWith(
|
|
188
|
+
export async function hasInternetPermissionFromManifest(appPath) {
|
|
189
|
+
log.debug(`Checking if '${appPath}' requires internet access permission in the manifest`);
|
|
190
|
+
if (appPath.endsWith(APKS_EXTENSION)) {
|
|
203
191
|
appPath = await this.extractBaseApk(appPath);
|
|
204
192
|
}
|
|
205
|
-
const { usesPermissions } = await
|
|
193
|
+
const { usesPermissions } = await readPackageManifest.bind(this)(appPath);
|
|
206
194
|
return usesPermissions.some((name) => name === 'android.permission.INTERNET');
|
|
207
195
|
}
|
|
208
196
|
// #region Private functions
|
|
@@ -212,19 +200,19 @@ async function hasInternetPermissionFromManifest(appPath) {
|
|
|
212
200
|
* @param sdkRoot
|
|
213
201
|
* @return The resulting path to the newest installed platform.
|
|
214
202
|
*/
|
|
215
|
-
async function getAndroidPlatformAndPath(sdkRoot) {
|
|
216
|
-
const propsPaths = await
|
|
217
|
-
cwd:
|
|
203
|
+
export async function getAndroidPlatformAndPath(sdkRoot) {
|
|
204
|
+
const propsPaths = await fs.glob('*/build.prop', {
|
|
205
|
+
cwd: path.resolve(sdkRoot, 'platforms'),
|
|
218
206
|
absolute: true,
|
|
219
207
|
});
|
|
220
208
|
const platformsMapping = {};
|
|
221
209
|
for (const propsPath of propsPaths) {
|
|
222
|
-
const propsContent = await
|
|
223
|
-
const platformPath =
|
|
224
|
-
const platform =
|
|
210
|
+
const propsContent = await fs.readFile(propsPath, 'utf-8');
|
|
211
|
+
const platformPath = path.dirname(propsPath);
|
|
212
|
+
const platform = path.basename(platformPath);
|
|
225
213
|
const match = /ro\.build\.version\.sdk=(\d+)/.exec(propsContent);
|
|
226
214
|
if (!match) {
|
|
227
|
-
|
|
215
|
+
log.warn(`Cannot read the SDK version from '${propsPath}'. Skipping '${platform}'`);
|
|
228
216
|
continue;
|
|
229
217
|
}
|
|
230
218
|
platformsMapping[parseInt(match[1], 10)] = {
|
|
@@ -232,8 +220,8 @@ async function getAndroidPlatformAndPath(sdkRoot) {
|
|
|
232
220
|
platformPath,
|
|
233
221
|
};
|
|
234
222
|
}
|
|
235
|
-
if (
|
|
236
|
-
|
|
223
|
+
if (util.isEmpty(platformsMapping)) {
|
|
224
|
+
log.warn(`Found zero platform folders at '${path.resolve(sdkRoot, 'platforms')}'. ` +
|
|
237
225
|
`Do you have any Android SDKs installed?`);
|
|
238
226
|
return {
|
|
239
227
|
platform: null,
|
|
@@ -242,7 +230,7 @@ async function getAndroidPlatformAndPath(sdkRoot) {
|
|
|
242
230
|
}
|
|
243
231
|
const recentSdkVersion = Object.keys(platformsMapping).sort().reverse()[0];
|
|
244
232
|
const result = platformsMapping[recentSdkVersion];
|
|
245
|
-
|
|
233
|
+
log.debug(`Found the most recent Android platform: ${JSON.stringify(result)}`);
|
|
246
234
|
return result;
|
|
247
235
|
}
|
|
248
236
|
// #endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"android-manifest.js","sourceRoot":"","sources":["../../../lib/tools/android-manifest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"android-manifest.js","sourceRoot":"","sources":["../../../lib/tools/android-manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ADB } from '../adb';
|
|
2
|
-
import type { CertCheckOptions, KeystoreHash } from './types';
|
|
1
|
+
import type { ADB } from '../adb.js';
|
|
2
|
+
import type { CertCheckOptions, KeystoreHash } from './types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Execute apksigner utility with given arguments.
|
|
5
5
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apk-signing.d.ts","sourceRoot":"","sources":["../../../lib/tools/apk-signing.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"apk-signing.d.ts","sourceRoot":"","sources":["../../../lib/tools/apk-signing.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,WAAW,CAAC;AACnC,OAAO,KAAK,EAAoC,gBAAgB,EAAE,YAAY,EAAC,MAAM,YAAY,CAAC;AAmBlG;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA4BjF;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB/E;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiE9E;AAED;;;;;;;GAOG;AACH,wBAAsB,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBpE;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAkC1E;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,GAAG,EACT,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,gBAAqB,GAC1B,OAAO,CAAC,OAAO,CAAC,CAuFlB;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,CA+CtE;AAID;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAElE;AAED;;;;;;;;;GASG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA0BjE"}
|