Skip to content

Commit

Permalink
Update appstraction and remove path.ts
Browse files Browse the repository at this point in the history
  • Loading branch information
zner0L committed Mar 31, 2023
1 parent c5ad38d commit cbe81c8
Show file tree
Hide file tree
Showing 5 changed files with 159 additions and 28 deletions.
4 changes: 1 addition & 3 deletions examples/multiple-apps.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,7 @@ import { pause, startAnalysis } from '../src/index';
// so you can easily loop through an array of apps.
const apks = await readdir(apkFolder);
for (const apkFile of apks) {
const appAnalysis = await analysis.startAppAnalysis({
main: path.join(apkFolder, apkFile),
});
const appAnalysis = await analysis.startAppAnalysis(path.join(apkFolder, apkFile));

await analysis.resetDevice();
await analysis.ensureTrackingDomainResolution();
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
},
"prettier": "@baltpeter/prettier-config",
"dependencies": {
"appstraction": "^0.0.0",
"appstraction": "^0.1.2",
"cross-fetch": "^3.1.5",
"execa": "^7.0.0",
"p-timeout": "^6.1.1",
Expand Down
13 changes: 7 additions & 6 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@ import { dirname, join } from 'path';
import process from 'process';
import { temporaryFile } from 'tempy';
import { fileURLToPath } from 'url';
import type { AppPath } from './path';
import { getAppPathAll, getAppPathMain } from './path';
import { awaitMitmproxyEvent, awaitProcessClose, dnsLookup, killProcess } from './util';

/** A capability supported by this library. */
Expand Down Expand Up @@ -71,7 +69,7 @@ export type Analysis<
* @returns An object to control the analysis of the specified app.
*/
startAppAnalysis: (
appPath: AppPath,
appPath: Platform extends 'android' ? string | string[] : string,
options?: { resetApp?: boolean; noSigint?: boolean }
) => Promise<AppAnalysis<Platform, RunTarget, Capabilities>>;
/** Stop the analysis. This is important for clean up, e.g. stopping the emulator if it is managed by this library. */
Expand Down Expand Up @@ -333,7 +331,11 @@ export function startAnalysis<
});
},
startAppAnalysis: async (appPath, options) => {
const appPathMain = getAppPathMain(appPath);
if (typeof appPath !== 'string' && analysisOptions.platform !== 'android')
throw Error('Could not install app: Split app files are only supported on Android.');

// This might not be the main APK, but we don‘t care because we should get the same meta information out of all the APKs
const appPathMain = typeof appPath === 'string' ? appPath : appPath[0] ?? '';
const appMeta = await parseAppMeta(appPathMain);
if (!appMeta) throw new Error(`Could not start analysis with invalid app: "${appPathMain}"`);

Expand All @@ -342,7 +344,7 @@ export function startAnalysis<
traffic: {},
};

const installApp = () => platform.installApp(getAppPathAll(appPath).join(' '));
const installApp = () => platform.installApp(appPath);
const uninstallApp = () => platform.uninstallApp(appMeta.id);

let inProgressTrafficCollectionName: string | undefined;
Expand Down Expand Up @@ -517,4 +519,3 @@ export type {
SupportedPlatform,
SupportedRunTarget,
} from 'appstraction';
export { AppPath, getAppPathAll, getAppPathMain };
13 changes: 0 additions & 13 deletions src/path.ts

This file was deleted.

155 changes: 150 additions & 5 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,90 @@
resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.0.tgz#03c6bfcd3acb179ea69546c20d50895b9d623ada"
integrity sha512-Wg0+9615kHKlr9iLVcG5I+/CHnf6w3x5UADRv8Ad16yA0Bu5l9eVOROjV7aHPG6uC8ZPFIVVaoSjDChD+Y0pzg==

"@napi-rs/[email protected]":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@napi-rs/lzma-android-arm-eabi/-/lzma-android-arm-eabi-1.1.2.tgz#3866356a277ead52c6a04abff3600ad52e45d2e6"
integrity sha512-b30+yEjSU1XucdTu2V8pGvpCVlFYlXMFHn89OjV+RhkQj4z3DwSPTZu17iea7MRSuP4bZzZkUG7t18lNDD9O4Q==

"@napi-rs/[email protected]":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@napi-rs/lzma-android-arm64/-/lzma-android-arm64-1.1.2.tgz#6a4dcd77909c45710a598d99a769382356779ca9"
integrity sha512-SW83wFds4AK4+eNnFl8bN25ypZU12/dae3h4wxz4l1czNsxomr4zN/feuymDzRURFU1nJti4lLK6fmRJW4ej5g==

"@napi-rs/[email protected]":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@napi-rs/lzma-darwin-arm64/-/lzma-darwin-arm64-1.1.2.tgz#7074cf0ce8a2d805b163d57f321df7f93c8ea70a"
integrity sha512-YM3SDU5Stt+M5tR8FQke5Puk6KIWOnSb+cfNbaM4zRvASpJVqdCEpblaSsgyuhsCfC8VjeEfohL4hkuAq5Ovzw==

"@napi-rs/[email protected]":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@napi-rs/lzma-darwin-x64/-/lzma-darwin-x64-1.1.2.tgz#9d1e51fd4037eb0722f9cae9c8b51b5c6e17c36a"
integrity sha512-CO+mXmUIyUZZcQngGK5vY71xBNMbgfA3tu4QVkExlQE/JfeQ+JiIOB/ksOMNMkBJdK12nSrFitCUyuZ0eS8JXQ==

"@napi-rs/[email protected]":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@napi-rs/lzma-freebsd-x64/-/lzma-freebsd-x64-1.1.2.tgz#08b98cbc19e3e6db8ce81a95b1a791243bf32995"
integrity sha512-Za+QobA52xOMSlT2n30TFtA200qfZKPgSuDjVqURc+DyzcQLgG94n+C+J1YoY0iyfvlRdK0P32MBPHSq5fN/Fw==

"@napi-rs/[email protected]":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@napi-rs/lzma-linux-arm-gnueabihf/-/lzma-linux-arm-gnueabihf-1.1.2.tgz#6119d1718d82ac61ccfbb6413c24d9deef87f32b"
integrity sha512-DBLyr61rcsmjbBPiUag0O2CDUZ/g+puCqRQdgXIQkH6pDV+Mn7ey2xq12eBwmoB4qASL1xU1SVChBWjO7HIwdg==

"@napi-rs/[email protected]":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@napi-rs/lzma-linux-arm64-gnu/-/lzma-linux-arm64-gnu-1.1.2.tgz#2da3ee85b9fb1a6e8dd13dd09e29975abc9e433e"
integrity sha512-nR5nnc3tnXZyd1jn9dHarj8RQeUJmvm83Z46mfWFKBv/TtlP4U7eyg9n3A0eEyBTifPzuR5ZjVdaMXg0hrX9cA==

"@napi-rs/[email protected]":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@napi-rs/lzma-linux-arm64-musl/-/lzma-linux-arm64-musl-1.1.2.tgz#be737c17646d5088a430ca6df0146f43aa05c63e"
integrity sha512-N4gC6VJds/wL6PY23Cc8Z3QuztIMpNfBo++zLu2uHdRV67/XkM7JXfsgTCaZVR59lSZw+Pvi01w5i00BhmEZ/g==

"@napi-rs/[email protected]":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@napi-rs/lzma-linux-x64-gnu/-/lzma-linux-x64-gnu-1.1.2.tgz#7e7b890e4a8b8917d7733dff036e962b8cbafd7b"
integrity sha512-xfSXofZnDlbSik64AayKj5xgSVmYMsK1cmRPQGBDcpwK4qnFd+Sy/qa39+x+GT2pip9QnT6stb72BT69asTRbw==

"@napi-rs/[email protected]":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@napi-rs/lzma-linux-x64-musl/-/lzma-linux-x64-musl-1.1.2.tgz#47d0b6d7deb17b3a35b9293ae9231325aec314a8"
integrity sha512-wfrv3zRK+qw3+GT3o4FPGZWb8L0gtqpjAQgPiz91EtGyHWKZjvRz31zERUkU9DKEwSBZSxYoFu5zCVsvilQekA==

"@napi-rs/[email protected]":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@napi-rs/lzma-win32-arm64-msvc/-/lzma-win32-arm64-msvc-1.1.2.tgz#2582d99f20baf693bb609d0ddcaf69e49f2fdf16"
integrity sha512-9lwYWz4g3FMxt5Pu33jfGuoHvAnXaonXYMbjWCVq3t+ReHV38rEVnueWtJD2GQcrnV2Elu0zxU4zON1PwJ1KqQ==

"@napi-rs/[email protected]":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@napi-rs/lzma-win32-ia32-msvc/-/lzma-win32-ia32-msvc-1.1.2.tgz#d38dbb8f48b3050a17a0dd3c33a8197341624370"
integrity sha512-p9ZuF/5osCKES5oz5ZKyMck9jbVBhZ/zH4uD6fsKjLtp0VYBlvmfqSGUYQALkF6bqvL7xBeJz7qby416pnWqPg==

"@napi-rs/[email protected]":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@napi-rs/lzma-win32-x64-msvc/-/lzma-win32-x64-msvc-1.1.2.tgz#dbc715b85e8f15363959af1dbb08844e2214c177"
integrity sha512-EwNN9eH05KkeqO300UEYqZEbqzRD3R4anUJMIvhmJI1E3a/9mUbzEByrSBsjyPfYcHF5+KYenEpuPoup9a4eHQ==

"@napi-rs/lzma@^1.1.2":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@napi-rs/lzma/-/lzma-1.1.2.tgz#09ce791390d819918182fe9382a7075e90d21d55"
integrity sha512-WJLn/td0F7RQmQ0mhtGVQXjfXQND8CE9hAdHJovPm6fM3aNW68chn7DCAyhs7rmhX95PovTEP0iu9TZVUtnl3w==
optionalDependencies:
"@napi-rs/lzma-android-arm-eabi" "1.1.2"
"@napi-rs/lzma-android-arm64" "1.1.2"
"@napi-rs/lzma-darwin-arm64" "1.1.2"
"@napi-rs/lzma-darwin-x64" "1.1.2"
"@napi-rs/lzma-freebsd-x64" "1.1.2"
"@napi-rs/lzma-linux-arm-gnueabihf" "1.1.2"
"@napi-rs/lzma-linux-arm64-gnu" "1.1.2"
"@napi-rs/lzma-linux-arm64-musl" "1.1.2"
"@napi-rs/lzma-linux-x64-gnu" "1.1.2"
"@napi-rs/lzma-linux-x64-musl" "1.1.2"
"@napi-rs/lzma-win32-arm64-msvc" "1.1.2"
"@napi-rs/lzma-win32-ia32-msvc" "1.1.2"
"@napi-rs/lzma-win32-x64-msvc" "1.1.2"

"@nodelib/[email protected]":
version "2.1.5"
resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
Expand Down Expand Up @@ -943,6 +1027,11 @@
resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==

"@types/[email protected]":
version "0.12.1"
resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.1.tgz#d8f1c0d0dc23afad6dc16a9e993a0865774b4065"
integrity sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==

"@types/semver@^7.3.12":
version "7.3.13"
resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91"
Expand Down Expand Up @@ -1145,15 +1234,21 @@ ap@~0.2.0:
resolved "https://registry.yarnpkg.com/ap/-/ap-0.2.0.tgz#ae0942600b29912f0d2b14ec60c45e8f330b6110"
integrity sha512-ImdvquIuBSVpWRWhB441UjvTcZqic1RL+lTQaUKGdGEp1aiTvt/phAvY8Vvs32qya5FJBI8U+tzNBYzFDQY/lQ==

appstraction@^0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/appstraction/-/appstraction-0.0.0.tgz#85171227d3583a133907e6706605cf87088631d0"
integrity sha512-8ubEEPBEbmaxFNQhKumtIfES5vAbh83KZFPI9FzcPKe43iQzIM4X0djeyBb891TdRcgSd42AlT8//W361KwoxQ==
appstraction@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/appstraction/-/appstraction-0.1.2.tgz#45eb3a48b866c2a37a7f2c2e804a0c30dc864d0a"
integrity sha512-hzt2sP0xH+oBxsIkpN9/yPquWNYKunEeQKamw4850lGELHyL1c77H0fACm1F9UMxkft0WTa4rJ3svBqcIlKLlA==
dependencies:
"@napi-rs/lzma" "^1.1.2"
cross-fetch "^3.1.5"
execa "^6.1.0"
frida "^16.0.8"
fs-extra "^11.1.0"
ipa-extract-info "^1.2.6"
p-retry "^5.1.2"
pkijs "^3.0.14"
semver "^7.3.8"
tempy "^3.0.0"
ts-node "^10.9.1"

arg@^4.1.0:
Expand Down Expand Up @@ -1202,6 +1297,15 @@ array.prototype.flatmap@^1.3.1:
es-abstract "^1.20.4"
es-shim-unscopables "^1.0.0"

asn1js@^3.0.5:
version "3.0.5"
resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.5.tgz#5ea36820443dbefb51cc7f88a2ebb5b462114f38"
integrity sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==
dependencies:
pvtsutils "^1.3.2"
pvutils "^1.1.3"
tslib "^2.4.0"

astral-regex@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
Expand Down Expand Up @@ -1348,6 +1452,11 @@ buffer@^5.5.0:
base64-js "^1.3.1"
ieee754 "^1.1.13"

bytestreamjs@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/bytestreamjs/-/bytestreamjs-2.0.1.tgz#a32947c7ce389a6fa11a09a9a563d0a45889535e"
integrity sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==

call-bind@^1.0.0, call-bind@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
Expand Down Expand Up @@ -3635,6 +3744,14 @@ p-map@^4.0.0:
dependencies:
aggregate-error "^3.0.0"

p-retry@^5.1.2:
version "5.1.2"
resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-5.1.2.tgz#c16eaee4f2016f9161d12da40d3b8b0f2e3c1b76"
integrity sha512-couX95waDu98NfNZV+i/iLt+fdVxmI7CbrrdC2uDWfPdUAApyxT4wmDlyOtR5KtTDmkDO0zDScDjDou9YHhd9g==
dependencies:
"@types/retry" "0.12.1"
retry "^0.13.1"

p-timeout@^6.1.1:
version "6.1.1"
resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-6.1.1.tgz#bcee5e37d730f5474d973b6ff226751a1a5e6ff1"
Expand Down Expand Up @@ -3739,6 +3856,17 @@ pkg-dir@^5.0.0:
dependencies:
find-up "^5.0.0"

pkijs@^3.0.14:
version "3.0.14"
resolved "https://registry.yarnpkg.com/pkijs/-/pkijs-3.0.14.tgz#92571f61122fd1e0ccdbc328b6efab9467b0bc30"
integrity sha512-Fi9++44BaOY0VcOEJql27D/HzHIeMU9R48XclfL98Cp8Wh/gGfPbuS1RUwReHQHRIUfzW32eoNO1izxoBMZi6w==
dependencies:
asn1js "^3.0.5"
bytestreamjs "^2.0.0"
pvtsutils "^1.3.2"
pvutils "^1.1.3"
tslib "^2.4.0"

please-upgrade-node@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942"
Expand Down Expand Up @@ -3843,6 +3971,18 @@ punycode@^2.1.0:
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f"
integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==

pvtsutils@^1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.2.tgz#9f8570d132cdd3c27ab7d51a2799239bf8d8d5de"
integrity sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ==
dependencies:
tslib "^2.4.0"

pvutils@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.3.tgz#f35fc1d27e7cd3dfbd39c0826d173e806a03f5a3"
integrity sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==

queue-microtask@^1.2.2:
version "1.2.3"
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
Expand Down Expand Up @@ -3982,6 +4122,11 @@ restore-cursor@^3.1.0:
onetime "^5.1.0"
signal-exit "^3.0.2"

retry@^0.13.1:
version "0.13.1"
resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658"
integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==

reusify@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
Expand Down Expand Up @@ -4059,7 +4204,7 @@ semver@^6.3.0:
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==

semver@^7.3.5, semver@^7.3.7:
semver@^7.3.5, semver@^7.3.7, semver@^7.3.8:
version "7.3.8"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798"
integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==
Expand Down

0 comments on commit cbe81c8

Please sign in to comment.