diff --git a/src/api/android/adb/HeadsetSetup.ts b/src/api/android/adb/HeadsetSetup.ts index bba2b37..4dd7ba3 100644 --- a/src/api/android/adb/HeadsetSetup.ts +++ b/src/api/android/adb/HeadsetSetup.ts @@ -47,6 +47,7 @@ export class HeadsetSetup { await this.applyShellSettings(adb, device.serial); await this.applyOvrPrefs(adb, device.serial); await this.applyBroadcasts(adb, device.serial); + await this.checkAvoidingApps(adb, device.serial); await this.checkRequiredApps(adb, device.serial); } @@ -196,13 +197,26 @@ export class HeadsetSetup { } } + //Apps which should not be installed as can create conflict with other things + private async checkAvoidingApps(adb: Adb, serial: string) { + const APPS_TO_REMOVE: string[] = ["com.tpn.adbautoenable"]; + + for (const packageName of APPS_TO_REMOVE) { + const isInstalled = await this.isPackageInstalled(adb, packageName); + if (isInstalled) { + logger.warn(`[${serial}] '${packageName}' is installed — removing...`); + await this.uninstallPackage(adb, serial, packageName); + } + } + } + private async checkRequiredApps(adb: Adb, serial: string) { - const REQUIRED_APPS: { packageName: string; apkFile: string; permission: string }[] = [ - { packageName: "com.tpn.adbautoenable", apkFile: "com.tpn.adbautoenable.apk", permission: "android.permission.WRITE_SECURE_SETTINGS" }, - { packageName: "tdg.oculuswirelessadb", apkFile: "tdg.oculuswirelessadb.apk", permission: "android.permission.WRITE_SECURE_SETTINGS" }, + const REQUIRED_APPS: { packageName: string; apkFile: string; permission: string; needsToStart: boolean}[] = [ + { packageName: "tdg.oculuswirelessadb", apkFile: "tdg.oculuswirelessadb.apk", permission: "android.permission.WRITE_SECURE_SETTINGS", needsToStart: false }, + { packageName: "eu.project_simple.adbautoenable", apkFile: "eu.project_simple.adbautoenable.apk", permission: "android.permission.WRITE_SECURE_SETTINGS", needsToStart: true }, ]; - for (const { packageName, apkFile, permission } of REQUIRED_APPS) { + for (const { packageName, apkFile, permission, needsToStart } of REQUIRED_APPS) { const targetVersion = this.parseApkVersion(apkFile); logger.debug(`[${serial}] Checking '${packageName}'${targetVersion ? ` (target: v${targetVersion})` : ''}...`); @@ -223,6 +237,15 @@ export class HeadsetSetup { } await this.ensurePermission(adb, serial, packageName, permission); + + if (needsToStart) { + logger.debug(`[${serial}] First time installing '${packageName}', needs to start the application once...`); + await adb.subprocess.noneProtocol + .spawnWaitText( + ["monkey", "-p", packageName, "-c", "android.intent.category.LAUNCHER", "1"] + ); + } + logger.info(`[${serial}] All good updating '${packageName}' application :)`); } } diff --git a/toolkit/com.tpn.adbautoenable.apk b/toolkit/com.tpn.adbautoenable.apk deleted file mode 100644 index 408e0b5..0000000 Binary files a/toolkit/com.tpn.adbautoenable.apk and /dev/null differ diff --git a/toolkit/eu.project_simple.adbautoenable.apk b/toolkit/eu.project_simple.adbautoenable.apk new file mode 100644 index 0000000..fcbfde3 Binary files /dev/null and b/toolkit/eu.project_simple.adbautoenable.apk differ